/* site.css: shared by every page. The "+ explore" menu (a full-screen index of
   the site, after the Perfect Days reference) and the Find us location card. */
:root {
  --m-bg: #F4F0E8; --m-ink: #12172A; --m-soft: #525C6E; --m-faint: #D9D3C6;
  --m-accent: #A0640C; --m-gold: #FAB142; --m-navy: #0C1D2E;
  --m-display: "Inter Tight", "Inter", system-ui, sans-serif;
  --m-athletic: "Archivo", "Arial Narrow", "Helvetica Neue", Arial, sans-serif;
  --m-text: "Inter", system-ui, sans-serif;
}

/* ------------------------------------------------------------ button -- */
.menu-btn { display: inline-flex; align-items: center; gap: 0.45rem; font-family: var(--m-text); font-weight: 600; font-size: 0.95rem; letter-spacing: 0.02em;
  color: var(--m-gold); background: color-mix(in oklab, var(--m-navy) 88%, transparent); border: 1px solid color-mix(in oklab, var(--m-gold) 55%, transparent);
  border-radius: 999px; padding: 0.6rem 1.05rem; cursor: pointer; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); transition: background 160ms, color 160ms; }
.menu-btn:hover { background: var(--m-gold); color: var(--m-navy); }
.menu-btn:focus-visible, .menu a:focus-visible, .menu__close:focus-visible { outline: 2px solid var(--m-gold); outline-offset: 3px; }
.menu-btn__sign { font-size: 1.15em; line-height: 1; }
.menu-btn--fixed { position: fixed; z-index: 80; top: calc(clamp(1rem, 3vw, 2rem) + env(safe-area-inset-top, 0px)); right: var(--sc-gutter, 1.25rem); }

/* ----------------------------------------------------------- overlay -- */
.menu { position: fixed; inset: 0; z-index: 100; background: var(--m-bg); color: var(--m-ink); overflow-y: auto; overscroll-behavior: contain;
  padding: calc(clamp(1rem, 3vw, 2rem) + env(safe-area-inset-top, 0px)) var(--sc-gutter, 1.25rem) calc(2rem + env(safe-area-inset-bottom, 0px));
  clip-path: inset(0 0 100% 0); visibility: hidden; transition: clip-path 520ms cubic-bezier(.7,0,.2,1), visibility 0s linear 520ms; }
html.menu-open { overflow: hidden; }
html.menu-open .menu { clip-path: inset(0 0 0 0); visibility: visible; transition: clip-path 560ms cubic-bezier(.7,0,.2,1), visibility 0s; }
.menu__top { display: flex; justify-content: flex-end; }
.menu__close { font-family: var(--m-text); font-weight: 600; font-size: clamp(1.4rem, 1rem + 1.4vw, 2rem); color: var(--m-ink); background: none; border: 0; cursor: pointer; padding: 0.2rem 0.4rem; display: inline-flex; gap: 0.4rem; align-items: center; }
.menu__word { display: block; margin: clamp(0.5rem, 2vh, 1.5rem) 0 clamp(1.5rem, 5vh, 3.5rem); font-family: var(--m-athletic); font-stretch: 80%; font-weight: 800; text-transform: uppercase;
  font-size: clamp(2rem, 8.6vw, 10.5rem); line-height: 0.86; letter-spacing: -0.01em; color: var(--m-faint); white-space: nowrap; }
.menu__grid { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2rem 3rem; align-items: end; }
.menu__main { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.15rem; }
.menu__main a { font-family: var(--m-display); font-weight: 600; font-size: clamp(1.6rem, 1rem + 2.4vw, 3.1rem); line-height: 1.12; letter-spacing: -0.03em; color: var(--m-ink); text-decoration: none; display: inline-flex; align-items: baseline; gap: 0.5rem; }
.menu__main a:hover { color: var(--m-accent); }
.menu__main a .ar { font-size: 0.55em; color: var(--m-accent); transition: transform 200ms; }
.menu__main a:hover .ar { transform: translateX(4px); }
.menu__main .is-lead a { color: var(--m-accent); }
.menu__sub { list-style: none; margin: clamp(1.2rem, 3vh, 2rem) 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.4rem 1.4rem; }
.menu__sub a { font-family: var(--m-text); font-size: 0.95rem; font-weight: 500; color: var(--m-soft); text-decoration: none; border-bottom: 1px solid var(--m-faint); padding-bottom: 2px; }
.menu__sub a:hover { color: var(--m-ink); border-color: var(--m-accent); }
.menu__side { display: grid; gap: 1.4rem; justify-items: end; text-align: right; }
.menu__stat b { display: block; font-family: var(--m-athletic); font-stretch: 80%; font-weight: 700; font-size: clamp(2.2rem, 1.5rem + 2vw, 3.2rem); line-height: 0.9; color: var(--m-accent); }
.menu__stat span { font-family: var(--m-text); font-size: 0.72rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--m-soft); }
.menu__social { display: flex; gap: 0.9rem; justify-content: flex-end; }
.menu__social a { font-family: var(--m-text); font-weight: 600; font-size: 0.9rem; color: var(--m-ink); }
.menu__li { opacity: 0; transform: translate3d(0, 14px, 0); transition: opacity 420ms, transform 420ms cubic-bezier(.2,.7,.2,1); }
html.menu-open .menu__li { opacity: 1; transform: none; transition-delay: calc(150ms + var(--k, 0) * 28ms); }
@media (max-width: 760px) {
  .menu__grid { grid-template-columns: minmax(0, 1fr); }
  .menu__side { justify-items: start; text-align: left; grid-template-columns: repeat(3, auto); gap: 1rem 1.4rem; }
  .menu__social { grid-column: 1 / -1; justify-content: flex-start; }
  .menu-btn { padding: 0.55rem 0.9rem; }
}
@media (prefers-reduced-motion: reduce) {
  .menu, html.menu-open .menu { transition: none; }
  .menu__li { opacity: 1; transform: none; transition: none; }
}

/* ------------------------------------------------------------ Find us -- */
.find__card { border-radius: 18px; overflow: hidden; background: radial-gradient(ellipse at top right, #25313B, transparent 65%), linear-gradient(135deg, #0C1E2D, #191D38);
  border: 1px solid color-mix(in oklab, #F3EFE5 14%, transparent); box-shadow: 0 30px 70px -34px rgba(4, 8, 18, 0.8); }
.find__stage { position: relative; aspect-ratio: 3 / 2; overflow: hidden; transition: aspect-ratio 400ms; }
.find__art { position: absolute; inset: 0; display: block; width: 100%; padding: 0; border: 0; background: none; cursor: pointer;
  transform-origin: 69% 16%; transition: transform 700ms cubic-bezier(.6,0,.2,1), opacity 500ms ease 150ms; }
.find__art img { display: block; width: 100%; height: 100%; object-fit: cover; }
.find__art:hover img { filter: brightness(1.05); }
.find__art:focus-visible { outline: 3px solid var(--m-gold); outline-offset: -6px; }
.find__map { position: absolute; inset: 0; background: #172936; clip-path: circle(0% at 69% 16%); visibility: hidden;
  transition: clip-path 750ms cubic-bezier(.6,0,.2,1) 120ms, visibility 0s linear 870ms; }
.find__map iframe { position: relative; z-index: 1; display: block; width: 100%; height: 100%; border: 0; background: transparent; }
.find__map-fallback { position: absolute; inset: 0; display: grid; place-content: center; text-align: center; gap: 0.5rem; color: #A7B1C0; font-family: var(--m-text); font-size: 0.95rem; }
.find__map-fallback a { color: var(--m-gold); font-weight: 600; }
.find__close { position: absolute; z-index: 2; right: 14px; top: 14px; font-family: var(--m-text); font-weight: 700; font-size: 0.9rem; color: var(--m-navy); background: #F3EFE5;
  border: 0; border-radius: 999px; padding: 0.7rem 1.1rem; cursor: pointer; box-shadow: 0 4px 18px rgba(0,0,0,.25); }
.find__close:focus-visible { outline: 3px solid var(--m-gold); outline-offset: 2px; }
.find__card.is-open .find__art { transform: scale(1.35); opacity: 0; pointer-events: none; }
.find__card.is-open .find__map { clip-path: circle(150% at 69% 16%); visibility: visible; transition: clip-path 750ms cubic-bezier(.6,0,.2,1) 120ms, visibility 0s; }
.find__copy { display: flex; flex-wrap: wrap; gap: 1rem 2rem; justify-content: space-between; align-items: center; padding: clamp(1.2rem, 2.5vw, 1.8rem) clamp(1.2rem, 3vw, 2.2rem); color: #F3EFE5; }
.find__copy h3 { margin: 0 0 0.35rem; font-family: var(--m-display); font-weight: 600; font-size: clamp(1.3rem, 1rem + 1vw, 1.7rem); letter-spacing: -0.02em; }
.find__copy address { font-style: normal; font-weight: 600; font-family: var(--m-text); }
.find__copy p { margin: 0.3rem 0 0; color: #A7B1C0; font-family: var(--m-text); font-size: 0.95rem; }
.find__copy .note { font-size: 0.75rem; margin-top: 0.5rem; }
.find__actions { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.find__btn { display: inline-flex; align-items: center; gap: 0.4rem; font-family: var(--m-text); font-weight: 700; font-size: 0.9rem; border-radius: 6px; padding: 0.8rem 1.15rem; text-decoration: none; cursor: pointer; border: 1px solid transparent; }
.find__btn--gold { background: var(--m-gold); color: var(--m-navy); }
.find__btn--ghost { background: transparent; color: #F3EFE5; border-color: color-mix(in oklab, #F3EFE5 40%, transparent); }
@media (max-width: 760px) {
  .find__card.is-open .find__stage { aspect-ratio: 4 / 5; }
}
@media (prefers-reduced-motion: reduce) {
  .find__art, .find__map, .find__card.is-open .find__map, .find__stage { transition: none; }
}

/* ------------------------------------------------------ white footer -- */
/* Full-bleed white band (box-shadow + clip-path trick) so the EAA logo reads. */
footer.foot { background: #fff; box-shadow: 0 0 0 100vmax #fff; clip-path: inset(0 -100vmax); color: #525C6E;
  border-top: 0; padding-block: clamp(1.8rem, 4vh, 2.6rem) clamp(1.2rem, 3vh, 1.8rem); }
footer.foot .foot__logo { display: block; height: 3.3rem; width: auto; margin: 0 0 0.9rem; opacity: 1; }
footer.foot p { color: #525C6E; }
footer.foot .foot__safe { margin-top: 0.75rem; }
footer.foot a { color: #12172A; text-decoration: none; }
footer.foot a:hover { color: #A0640C; }
footer.foot .foot__h { color: #12172A; }
footer.foot .foot__legal { border-top: 1px solid #E4DED2; color: #6B7385; }
