/* The Savies — shared styles. Most layout lives inline in each page's templates. */
@font-face{font-family:Cinzel;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/cinzel-400.woff2) format("woff2")}
@font-face{font-family:Cinzel;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/cinzel-500.woff2) format("woff2")}
@font-face{font-family:Lora;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/lora-400.woff2) format("woff2")}
@font-face{font-family:Lora;font-style:italic;font-weight:400;font-display:swap;src:url(/assets/fonts/lora-400-italic.woff2) format("woff2")}
@font-face{font-family:Lora;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/lora-500.woff2) format("woff2")}
@font-face{font-family:Lora;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/lora-600.woff2) format("woff2")}

*{-webkit-tap-highlight-color:transparent}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:Lora,Georgia,serif;background:#FFFFFF;color:#0B2D5B;overflow-x:hidden}
a{color:#A84600}a:hover{color:#7A3300}
input,button,select,textarea{font-family:inherit}
button{cursor:pointer}
button:disabled{cursor:default;opacity:.55}
strong{font-weight:600}
img,video{max-width:100%}
:focus-visible{outline:2px solid #CC5500;outline-offset:2px}
input:focus,textarea:focus,select:focus{outline:2px solid #CC5500;outline-offset:0;border-color:#0B2D5B !important}
summary{cursor:pointer;list-style:none}
summary::-webkit-details-marker{display:none}
details[open] summary .faq-plus{transform:rotate(45deg)}
.faq-plus{display:inline-block;transition:transform 200ms ease}
[id]{scroll-margin-top:16px}

.btn-o{transition:background-color 150ms ease,color 150ms ease,border-color 150ms ease}
.btn-o:hover{background:#CC5500 !important;border-color:#CC5500 !important;color:#FFFFFF !important}
.btn-lb:hover{background:#FFFFFF !important;color:#0B2D5B !important}
[role="tab"]{transition:background-color 150ms ease}
[role="tab"][aria-selected="false"]:hover{background:#F3F6FA !important}
.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.swipe{scrollbar-width:none}.swipe::-webkit-scrollbar{display:none}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.pre-line{white-space:pre-line}

/* Hero over a photo */
.hero-photo > div, .hero-photo > div *{color:#FFFFFF !important}
.hero-photo .btn-o{color:#0B2D5B !important}
.hero-photo .btn-o:hover{color:#FFFFFF !important}
.hero-photo h1 img{filter:brightness(0) invert(1)}
.hero-photo [role="dialog"], .hero-photo [role="dialog"] *{color:#0B2D5B !important}

/* Album tiles */
.tile .tile-cap{opacity:1;transition:opacity 200ms ease}
@media (min-width:1024px) and (hover:hover){.tile .tile-cap{opacity:0}.tile:hover .tile-cap,.tile:focus-visible .tile-cap{opacity:1}}
.tile img,.tile video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.tile:focus-visible{outline:2px solid #CC5500;outline-offset:2px}

/* Toasts / page loader */
.loading{min-height:100vh;display:flex;align-items:center;justify-content:center}

/* Garland (layered watercolour flowers) */
.gl{position:relative;aspect-ratio:1304/601}
.gl img{position:absolute;display:block;height:auto;max-width:none;pointer-events:none;user-select:none}
.gl-fl{position:absolute;inset:0}
.bq-on .gl-fl{animation:bqnod 7s ease-in-out infinite}
.bq-on .gl-fol{animation:gldraw 2.2s cubic-bezier(.4,.1,.3,1) both}
.bq-on .gl-flw{animation:bqpet .9s cubic-bezier(.2,.85,.3,1.08) both}
.gl-loop.bq-on .gl-fol{animation:glfolloop 14s cubic-bezier(.4,.1,.3,1) infinite both}
.gl-loop.bq-on .gl-flw{animation:glflwloop 14s ease-out infinite both}
@keyframes gldraw{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes bqpet{from{transform:scale(.1) rotate(-60deg);opacity:0}50%{opacity:1}to{transform:none;opacity:1}}
@keyframes bqnod{0%,100%{transform:rotate(0)}50%{transform:rotate(2.2deg)}}
@keyframes glfolloop{0%{clip-path:inset(0 100% 0 0);opacity:1}16%{clip-path:inset(0 0 0 0);opacity:1}90%{clip-path:inset(0 0 0 0);opacity:1}95%{clip-path:inset(0 0 0 0);opacity:0}100%{clip-path:inset(0 100% 0 0);opacity:0}}
@keyframes glflwloop{0%{transform:scale(.1) rotate(-60deg);opacity:0}3.25%{opacity:1}6.5%{transform:none;opacity:1}70%{transform:none;opacity:1}76%{transform:scale(.6);opacity:0}100%{transform:scale(.1) rotate(-60deg);opacity:0}}
@media (prefers-reduced-motion: reduce){.gl *{animation:none !important}html{scroll-behavior:auto}}

/* Couple admin on small screens */
@media (max-width: 899px){
  .admin-root{flex-direction:column !important}
  .admin-root > aside{width:auto !important;padding:16px !important;gap:12px !important}
  .admin-root > aside nav{flex-direction:row !important;overflow-x:auto;gap:4px}
  .admin-root > main{padding:28px 16px !important;overflow:visible !important}
  .admin-root > main > div[style*="grid-template-columns: repeat(4"]{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
  .admin-root > main > div[style*="grid-template-columns: repeat(6"]{grid-template-columns:repeat(3,minmax(0,1fr)) !important}
  .admin-root table{display:block;overflow-x:auto}
}

/* "Along the way" photo grid (desktop) */
.ar45{aspect-ratio:4/5}

/* Older browsers (Safari < 15) without aspect-ratio */
@supports not (aspect-ratio: 1 / 1){
  .gl{height:0 !important;padding-bottom:46.09%}
  .tile{aspect-ratio:auto !important;height:0 !important;padding-bottom:110% !important}
  .ar45{height:340px}
}
