/* ==========================================================================
   Gezonde Hoeve — design system
   Palette: pale meadow grey-green ground, deep pine ink, logo sand, cold water
   Type:    Spectral (display) + Karla (body/UI)
   ========================================================================== */

:root{
  /* light theme — the complete palette lives here */
  --paper:        #F0F1EB;
  --paper-2:      #E5E7DE;
  --surface:      #FBFBF7;
  --ink:          #171C18;
  --ink-2:        #3D453D;
  --ink-3:        #6C7369;
  --brass:        #7A6335;   /* accent for text on light */
  --sand:         #C2B59B;   /* logo sand — rules, decor, dark grounds */
  --water:        #3F5E67;   /* cold water accent (aquatrainer) */
  --line:         rgba(23,28,24,.14);
  --line-strong:  rgba(23,28,24,.28);
  --on-ink:       #F0F1EB;
  --shadow:       0 1px 2px rgba(23,28,24,.05), 0 12px 34px -18px rgba(23,28,24,.28);
  --logo:         url("../img/logo-ink.png");
  --logo-invert:  url("../img/logo-sand.png");

  --font-display: "Archivo","Helvetica Neue",Helvetica,Arial,sans-serif;
  --font-body:    "Archivo","Helvetica Neue",Helvetica,Arial,sans-serif;

  --fs-display: clamp(2.75rem, 6.4vw, 5rem);
  --fs-h1:      clamp(2.15rem, 4.6vw, 3.35rem);
  --fs-h2:      clamp(1.7rem, 3.1vw, 2.45rem);
  --fs-h3:      clamp(1.2rem, 1.7vw, 1.4rem);
  --fs-lead:    clamp(1.1rem, 1.5vw, 1.3rem);
  --fs-body:    1.0625rem;
  --fs-small:   .9375rem;
  --fs-label:   .7rem;

  --gutter:  clamp(1.25rem, 5vw, 3rem);
  --section: clamp(4rem, 9vw, 8rem);
  --measure: 62ch;
  --radius:  2px;
}

@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:       #131612;
    --paper-2:     #1A1E19;
    --surface:     #1E231E;
    --ink:         #E8EAE2;
    --ink-2:       #B9BFB4;
    --ink-3:       #8C9388;
    --brass:       #C9BCA1;
    --sand:        #C2B59B;
    --water:       #93B7C0;
    --line:        rgba(232,234,226,.16);
    --line-strong: rgba(232,234,226,.34);
    --on-ink:      #131612;
    --shadow:      0 1px 2px rgba(0,0,0,.5), 0 14px 38px -20px rgba(0,0,0,.8);
    --logo:        url("../img/logo-sand.png");
    --logo-invert: url("../img/logo-ink.png");
  }
}
:root[data-theme="dark"]{
  --paper:       #131612;
  --paper-2:     #1A1E19;
  --surface:     #1E231E;
  --ink:         #E8EAE2;
  --ink-2:       #B9BFB4;
  --ink-3:       #8C9388;
  --brass:       #C9BCA1;
  --sand:        #C2B59B;
  --water:       #93B7C0;
  --line:        rgba(232,234,226,.16);
  --line-strong: rgba(232,234,226,.34);
  --on-ink:      #131612;
  --shadow:      0 1px 2px rgba(0,0,0,.5), 0 14px 38px -20px rgba(0,0,0,.8);
  --logo:        url("../img/logo-sand.png");
  --logo-invert: url("../img/logo-ink.png");
}

/* ---------- base ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--paper);
  color:var(--ink-2);
  font-family:var(--font-body);
  font-size:var(--fs-body);
  line-height:1.7;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,video{ max-width:100%; display:block; }
a{ color:inherit; }
h1,h2,h3,h4{
  font-family:var(--font-display);
  color:var(--ink);
  font-weight:600;
  line-height:1.08;
  letter-spacing:-.022em;
  text-wrap:balance;
  margin:0;
}
p{ margin:0; }
:focus-visible{ outline:2px solid var(--brass); outline-offset:3px; border-radius:1px; }
::selection{ background:var(--sand); color:#171C18; }

.container{ width:100%; max-width:1180px; margin-inline:auto; padding-inline:var(--gutter); }
.container--wide{ max-width:1400px; }
.measure{ max-width:var(--measure); }
.stack{ display:flex; flex-direction:column; }
.stack-sm{ gap:.75rem } .stack-md{ gap:1.25rem } .stack-lg{ gap:2rem } .stack-xl{ gap:3rem }

/* ---------- type helpers ---------- */
.eyebrow{
  font-family:var(--font-body);
  font-size:.76rem;
  font-weight:700;
  letter-spacing:.11em;
  text-transform:uppercase;
  color:var(--brass);
  display:flex; align-items:center; gap:.75rem;
  margin:0;
}
.eyebrow--center{ justify-content:center; }
.display{ font-size:var(--fs-display); line-height:1.02; letter-spacing:-.02em; }
.h1{ font-size:var(--fs-h1); }
.h2{ font-size:var(--fs-h2); }
.h3{ font-size:var(--fs-h3); line-height:1.25; }
.lead{ font-size:var(--fs-lead); line-height:1.6; color:var(--ink-2); }
.small{ font-size:var(--fs-small); }
.muted{ color:var(--ink-3); }
.serif-italic{ font-family:var(--font-display); font-weight:600; }

/* ---------- buttons ---------- */
.btn{
  --btn-bg:var(--ink); --btn-fg:var(--on-ink); --btn-bd:var(--ink);
  display:inline-flex; align-items:center; gap:.6rem;
  background:var(--btn-bg); color:var(--btn-fg);
  border:1px solid var(--btn-bd);
  padding:.85rem 1.6rem;
  font-family:var(--font-body); font-size:.875rem; font-weight:700;
  letter-spacing:.045em; text-transform:uppercase; text-decoration:none;
  border-radius:var(--radius); cursor:pointer;
  transition:background .25s ease, color .25s ease, border-color .25s ease, transform .25s ease;
}
.btn:hover{ transform:translateY(-1px); --btn-bg:var(--brass); --btn-bd:var(--brass); --btn-fg:#FBFBF7; }
.btn--ghost{ --btn-bg:transparent; --btn-fg:var(--ink); --btn-bd:var(--line-strong); }
.btn--ghost:hover{ --btn-bg:var(--ink); --btn-fg:var(--on-ink); --btn-bd:var(--ink); }
.btn--light{ --btn-bg:transparent; --btn-fg:#F0F1EB; --btn-bd:rgba(240,241,235,.5); }
.btn--light:hover{ --btn-bg:#F0F1EB; --btn-fg:#171C18; --btn-bd:#F0F1EB; }
.btn .arw{ transition:transform .25s ease; }
.btn:hover .arw{ transform:translateX(3px); }

.link-arrow{
  display:inline-flex; align-items:center; gap:.5rem;
  font-size:.8125rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  color:var(--brass); text-decoration:none;
  padding-bottom:.35rem; border-bottom:1px solid currentColor;
  width:fit-content; transition:gap .25s ease, color .2s ease;
}
.link-arrow:hover{ gap:.9rem; }

/* ---------- header ---------- */
.site-header{
  position:fixed; inset:0 0 auto 0; z-index:80;
  transition:background .35s ease, box-shadow .35s ease, border-color .35s ease;
  border-bottom:1px solid transparent;
}
.site-header__inner{
  display:flex; align-items:center; justify-content:space-between; gap:1.5rem;
  padding-block:.95rem;
}
.brand{ display:flex; align-items:center; text-decoration:none; flex:none; }
.brand__mark{
  display:block; flex:none;
  width:216px; height:auto; aspect-ratio:610/140;
  background:var(--logo-invert) center/contain no-repeat;
  transition:background-image .01s;
}
@media (min-width:1300px){ .brand__mark{ width:288px; } }
@media (max-width:1000px){ .brand__mark{ width:238px; } }
@media (max-width:420px){ .brand__mark{ width:198px; } }
.site-header.is-solid .brand__mark{ background-image:var(--logo); }
.brand__fallback{ position:absolute; left:-9999px; }

.nav{ display:flex; align-items:center; gap:clamp(1rem,2.1vw,1.9rem); }
.nav a{
  font-size:.8125rem; font-weight:600; letter-spacing:.05em; text-transform:uppercase;
  text-decoration:none; color:#F0F1EB; position:relative; padding-block:.4rem; white-space:nowrap;
  transition:color .2s ease;
}
.site-header.is-solid .nav a{ color:var(--ink-2); }
.nav a::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:1px;
  background:currentColor; transform:scaleX(0); transform-origin:left; transition:transform .3s ease;
}
.nav a:hover::after,.nav a[aria-current="page"]::after{ transform:scaleX(1); }
.nav a[aria-current="page"]{ color:var(--sand); }
.site-header.is-solid .nav a[aria-current="page"]{ color:var(--brass); }
.nav__tel{ display:none; }
.header-cta{ flex:none; }
.header-cta .btn{ --btn-bg:transparent; --btn-fg:#F0F1EB; --btn-bd:rgba(240,241,235,.45); padding:.7rem 1.15rem; font-size:.78rem; }
.site-header.is-solid .header-cta .btn{ --btn-fg:var(--ink); --btn-bd:var(--line-strong); }
.site-header.is-solid .header-cta .btn:hover{ --btn-bg:var(--ink); --btn-fg:var(--on-ink); }

.site-header.is-solid{
  background:color-mix(in srgb, var(--paper) 92%, transparent);
  backdrop-filter:blur(14px) saturate(1.1);
  -webkit-backdrop-filter:blur(14px) saturate(1.1);
  border-bottom-color:var(--line);
}
/* interior pages start solid */
body[data-header="solid"] .site-header{
  background:color-mix(in srgb, var(--paper) 92%, transparent);
  backdrop-filter:blur(14px) saturate(1.1);
  -webkit-backdrop-filter:blur(14px) saturate(1.1);
  border-bottom-color:var(--line);
}
body[data-header="solid"] .brand__mark{ background-image:var(--logo); }
body[data-header="solid"] .nav a{ color:var(--ink-2); }
body[data-header="solid"] .nav a[aria-current="page"]{ color:var(--brass); }
body[data-header="solid"] .header-cta .btn{ --btn-fg:var(--ink); --btn-bd:var(--line-strong); }

.burger{
  display:none; background:none; border:0; padding:.5rem; cursor:pointer; color:#F0F1EB;
}
.site-header.is-solid .burger,body[data-header="solid"] .burger{ color:var(--ink); }
.burger span{ display:block; width:24px; height:1.5px; background:currentColor; margin:5px 0; transition:transform .3s ease, opacity .3s ease; }
.burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(6.5px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-6.5px) rotate(-45deg); }

@media (max-width:1000px){
  .burger{ display:block; }
  .header-cta{ display:none; }
  .nav{
    position:fixed; inset:0; background:var(--paper);
    flex-direction:column; justify-content:center; align-items:flex-start;
    gap:.35rem; padding:6rem var(--gutter) 3rem;
    transform:translateX(100%); transition:transform .45s cubic-bezier(.6,0,.2,1);
    overflow-y:auto;
  }
  .nav.is-open{ transform:none; }
  .nav a,.site-header.is-solid .nav a,body[data-header="solid"] .nav a{
    color:var(--ink); font-family:var(--font-display); font-size:1.9rem;
    text-transform:none; letter-spacing:-.01em; font-weight:400; padding-block:.5rem;
  }
  .nav a::after{ display:none; }
  .nav .nav__tel{
    margin-top:1.5rem; font-family:var(--font-body); font-size:.9rem; letter-spacing:.12em;
    text-transform:uppercase; color:var(--brass); font-weight:700;
  }
}

/* ---------- hero ---------- */
.hero{ position:relative; min-height:min(94svh,940px); display:flex; align-items:flex-end; isolation:isolate; }
.hero--short{ min-height:min(72svh,680px); }
.hero__media{ position:absolute; inset:0; z-index:-2; overflow:hidden; background:var(--paper-2); }
.hero__media img{ width:100%; height:100%; object-fit:cover; animation:drift 26s ease-in-out infinite alternate; }
@keyframes drift{ from{ transform:scale(1.04) translate3d(0,0,0);} to{ transform:scale(1.12) translate3d(-1.4%,-1%,0);} }
.hero::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(180deg, rgba(15,20,16,.62) 0%, rgba(15,20,16,.2) 32%, rgba(15,20,16,.55) 68%, rgba(15,20,16,.9) 100%),
    linear-gradient(95deg, rgba(14,19,15,.6) 0%, rgba(14,19,15,.3) 38%, rgba(14,19,15,0) 66%);
}
.hero__inner{ padding-block:clamp(4rem,11vh,8rem) clamp(3rem,7vh,5rem); color:#F0F1EB; }
.hero__inner .eyebrow{ color:#E3D9C2; }
.hero h1,.hero .display{ color:#FBFBF7; text-shadow:0 1px 26px rgba(12,16,12,.45); }
.hero__inner .eyebrow,.hero__lead{ text-shadow:0 1px 16px rgba(12,16,12,.5); }
.hero__lead{ color:rgba(240,241,235,.86); max-width:46ch; }
.hero__actions{ display:flex; flex-wrap:wrap; gap:.85rem; margin-top:.5rem; }

.hero__scroll{
  position:absolute; right:calc(var(--gutter) - .25rem); bottom:clamp(3rem,7vh,5rem);
  writing-mode:vertical-rl;
  font-size:.65rem; letter-spacing:.14em; text-transform:uppercase; color:rgba(240,241,235,.55);
  display:flex; align-items:center; gap:.75rem;
}
.hero__scroll::after{ content:""; width:1px; height:3.5rem; background:linear-gradient(rgba(240,241,235,.65),transparent); }
@media (max-width:900px){ .hero__scroll{ display:none; } }

/* page hero (interior) */
.pagehead{ padding-top:clamp(8rem,15vh,11rem); padding-bottom:clamp(2.5rem,5vw,4rem); }
.pagehead + .section{ padding-top:clamp(2rem,4vw,3.5rem); }
.pagehead__inner{ display:flex; flex-direction:column; gap:1.25rem; }

/* ---------- sections ---------- */
.section{ padding-block:var(--section); position:relative; }
.section--tight{ padding-block:clamp(3rem,6vw,5rem); }
.section--alt{ background:var(--paper-2); }
.section--ink,.band__inner{
  --ink:#FBFBF7;
  --ink-2:rgba(240,241,235,.80);
  --ink-3:rgba(240,241,235,.58);
  --brass:#C2B59B;
  --line:rgba(240,241,235,.18);
  --line-strong:rgba(240,241,235,.34);
  --surface:rgba(240,241,235,.06);
  color:var(--ink-2);
}
.section--ink{ background:#171C18; }

.section-head{ display:flex; flex-direction:column; gap:1rem; max-width:34ch; }
.section-head--wide{ max-width:52ch; }
.section-head--center{ align-items:center; text-align:center; max-width:56ch; margin-inline:auto; }

/* ---------- split (image + text) ---------- */
.split{ display:grid; gap:clamp(2rem,5vw,4.5rem); align-items:center; grid-template-columns:1fr; }
@media (min-width:900px){
  .split{ grid-template-columns:1fr 1fr; }
  .split--wide-media{ grid-template-columns:1.15fr .85fr; }
  .split--wide-text{ grid-template-columns:.85fr 1.15fr; }
  .split--flip .split__media{ order:2; }
}
.split__body{ display:flex; flex-direction:column; gap:1.35rem; }
.figure{ position:relative; overflow:hidden; background:var(--paper-2); border-radius:var(--radius); }
.figure img{ width:100%; height:100%; object-fit:cover; }
.figure--tall{ aspect-ratio:4/5; }
.figure--square{ aspect-ratio:1/1; }
.figure--wide{ aspect-ratio:3/2; }
.figure--pano{ aspect-ratio:16/9; }
.figure__cap{
  margin-top:.75rem; font-size:.8125rem; letter-spacing:.02em; color:var(--ink-3);
}
/* thin inset frame — signature detail */
.framed{ position:relative; }
.framed::after{
  content:""; position:absolute; inset:.6rem; border:1px solid rgba(240,241,235,.4); pointer-events:none;
}

/* ---------- the three words band ---------- */
.triad{ display:grid; gap:0; grid-template-columns:1fr; border-top:1px solid var(--line); }
@media (min-width:820px){ .triad{ grid-template-columns:repeat(3,1fr); } }
.triad__item{
  padding:clamp(2rem,4vw,3.2rem) clamp(1.25rem,3vw,2.6rem) clamp(2rem,4vw,3.2rem) 0;
  border-bottom:1px solid var(--line);
  display:flex; flex-direction:column; gap:.85rem;
}
@media (min-width:820px){
  .triad__item{ border-bottom:0; border-right:1px solid var(--line); padding-left:clamp(1.25rem,3vw,2.6rem); }
  .triad__item:first-child{ padding-left:0; }
  .triad__item:last-child{ border-right:0; }
}
.triad__word{
  font-family:var(--font-display); font-weight:600; letter-spacing:-.02em;
  font-size:clamp(1.9rem,3.3vw,2.6rem); color:var(--ink); line-height:1.05;
}
.triad__num{
  font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--brass); font-weight:700;
  font-variant-numeric:tabular-nums;
}

/* ---------- cards ---------- */
.cards{ display:grid; gap:clamp(1.75rem,3.5vw,2.75rem); grid-template-columns:1fr; }
@media (min-width:700px){ .cards--2{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:860px){ .cards--3{ grid-template-columns:repeat(3,1fr); } }
@media (min-width:700px){ .cards--4{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1000px){ .cards--4{ grid-template-columns:repeat(4,1fr); } }
.card{ display:flex; flex-direction:column; gap:1rem; text-decoration:none; color:inherit; height:100%; }
.card .figure{ aspect-ratio:4/3; }
.card .figure img{ transition:transform .8s cubic-bezier(.2,.7,.2,1); }
.card:hover .figure img{ transform:scale(1.045); }
.card__title{ font-family:var(--font-display); font-size:1.45rem; color:var(--ink); line-height:1.2; }
.card__body{ display:flex; flex-direction:column; gap:.7rem; flex:1; }
.card__body .link-arrow{ margin-top:auto; padding-top:.35rem; }
.card__rule{ height:1px; background:var(--line); }
.card:hover .card__rule{ background:var(--brass); }

/* feature list (facilities / benefits) */
.featlist{ display:grid; gap:0; grid-template-columns:1fr; }
@media (min-width:760px){ .featlist--2{ grid-template-columns:repeat(2,1fr); column-gap:clamp(2rem,5vw,4rem); } }
.feat{ display:flex; flex-direction:column; gap:.5rem; padding-block:1.6rem; border-bottom:1px solid var(--line); }
.feat__title{ font-family:var(--font-display); font-size:1.2rem; color:var(--ink); }
.feat__idx{ font-size:.7rem; letter-spacing:.08em; color:var(--brass); font-weight:700; font-variant-numeric:tabular-nums; }

/* ticks */
.ticks{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.85rem; }
.ticks li{ display:grid; grid-template-columns:1.2rem 1fr; gap:.85rem; align-items:start; }
.ticks li::before{
  content:""; width:7px; height:7px; margin-top:.62rem; border-radius:50%;
  background:var(--brass); box-shadow:0 0 0 4px color-mix(in srgb, var(--brass) 18%, transparent);
}

/* stat / metric row */
.metrics{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(1.5rem,3vw,2.5rem) clamp(1.5rem,3vw,2.5rem); }
@media (min-width:1200px){ .metrics--row{ grid-template-columns:repeat(4,minmax(0,1fr)); } }
.metric{ display:flex; flex-direction:column; gap:.35rem; border-top:1px solid var(--line-strong); padding-top:1rem; }
.metric__val{ font-family:var(--font-display); font-size:clamp(2rem,3.4vw,2.7rem); color:var(--ink); line-height:1; font-variant-numeric:tabular-nums; }
.metric__lab{ font-size:.75rem; letter-spacing:.07em; text-transform:uppercase; color:var(--ink-3); font-weight:700; }

/* quote */
.quote{ display:flex; flex-direction:column; gap:1.75rem; max-width:34ch; }
.quote__text{ font-family:var(--font-display); font-weight:600; font-size:clamp(1.5rem,2.7vw,2.15rem); line-height:1.35; color:var(--ink); }
.quote__by{ font-size:.78rem; letter-spacing:.07em; text-transform:uppercase; font-weight:700; color:var(--brass); }
.quote__role{ color:var(--ink-3); letter-spacing:.02em; text-transform:none; font-weight:400; font-size:.85rem; }

/* team */
.team{ display:grid; gap:clamp(1.5rem,3vw,2.5rem); grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); }
.team__name{ font-family:var(--font-display); font-size:1.25rem; color:var(--ink); }
.team__role{ font-size:.78rem; letter-spacing:.07em; text-transform:uppercase; color:var(--brass); font-weight:700; }

/* accordion */
.faq{ border-top:1px solid var(--line); }
.faq__item{ border-bottom:1px solid var(--line); }
.faq__q{
  width:100%; background:none; border:0; cursor:pointer; text-align:left;
  display:flex; justify-content:space-between; align-items:center; gap:1.5rem;
  padding:1.5rem 0; font-family:var(--font-display); font-size:1.15rem; color:var(--ink); line-height:1.3;
}
.faq__q::after{ content:"+"; font-family:var(--font-body); font-size:1.4rem; color:var(--brass); flex:none; transition:transform .3s ease; }
.faq__q[aria-expanded="true"]::after{ transform:rotate(45deg); }
.faq__a{ display:grid; grid-template-rows:0fr; transition:grid-template-rows .4s cubic-bezier(.4,0,.2,1); }
.faq__a > div{ overflow:hidden; }
.faq__item.is-open .faq__a{ grid-template-rows:1fr; }
.faq__a p{ padding-bottom:1.5rem; max-width:66ch; }

/* gallery */
.gallery{ columns:1; column-gap:clamp(.75rem,1.6vw,1.25rem); }
@media (min-width:620px){ .gallery{ columns:2; } }
@media (min-width:1000px){ .gallery{ columns:3; } }
.gallery figure{ margin:0 0 clamp(.75rem,1.6vw,1.25rem); break-inside:avoid; overflow:hidden; border-radius:var(--radius); background:var(--paper-2); }
.gallery img{ width:100%; transition:transform .9s cubic-bezier(.2,.7,.2,1), filter .5s ease; }
.gallery figure:hover img{ transform:scale(1.04); }

/* full-bleed band */
.band{ position:relative; isolation:isolate; min-height:min(64svh,560px); display:flex; align-items:center; }
.band__media{ position:absolute; inset:0; z-index:-2; overflow:hidden; }
.band__media img{ width:100%; height:100%; object-fit:cover; }
.band::before{ content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(95deg, rgba(14,19,15,.92) 0%, rgba(14,19,15,.78) 34%, rgba(14,19,15,.5) 62%, rgba(14,19,15,.3) 100%),
             linear-gradient(180deg, rgba(14,19,15,.28) 0%, rgba(14,19,15,0) 40%);
}
.band__inner{ color:#F0F1EB; padding-block:clamp(3.5rem,8vw,6rem); max-width:44ch; display:flex; flex-direction:column; gap:1.4rem; }

/* video */
.videoframe{ position:relative; overflow:hidden; border-radius:var(--radius); background:var(--ink); aspect-ratio:16/9; }
.videoframe video{ width:100%; height:100%; object-fit:cover; }

/* contact */
.contact-grid{ display:grid; gap:clamp(2.5rem,5vw,4.5rem); grid-template-columns:1fr; }
@media (min-width:900px){ .contact-grid{ grid-template-columns:1fr 1fr; } }
.infolist{ display:flex; flex-direction:column; gap:0; border-top:1px solid var(--line); }
.info{ display:flex; flex-direction:column; gap:.3rem; padding-block:1.35rem; border-bottom:1px solid var(--line); }
.info__lab{ font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; color:var(--brass); font-weight:700; }
.info__val{ font-family:var(--font-display); font-size:1.3rem; color:var(--ink); text-decoration:none; }
a.info__val:hover{ color:var(--brass); }
.hours{ display:grid; grid-template-columns:1fr auto; gap:.4rem 1.5rem; font-variant-numeric:tabular-nums; }
.hours dt{ color:var(--ink-2); } .hours dd{ margin:0; color:var(--ink); }

.form{ display:flex; flex-direction:column; gap:1.25rem; }
.field{ display:flex; flex-direction:column; gap:.45rem; }
.field label{ font-size:.72rem; letter-spacing:.07em; text-transform:uppercase; font-weight:700; color:var(--ink-3); }
.field input,.field textarea,.field select{
  font-family:var(--font-body); font-size:1rem; color:var(--ink);
  background:var(--surface); border:1px solid var(--line-strong); border-radius:var(--radius);
  padding:.85rem 1rem; width:100%; transition:border-color .2s ease, background .2s ease;
}
.field textarea{ resize:vertical; min-height:9rem; }
.field input:focus,.field textarea:focus,.field select:focus{ border-color:var(--brass); outline:none; }
.form__note{ font-size:.85rem; color:var(--ink-3); }
.field-row{ display:grid; gap:1.25rem; grid-template-columns:1fr; }
@media (min-width:560px){ .field-row{ grid-template-columns:1fr 1fr; } }

.mapframe{ aspect-ratio:16/10; border-radius:var(--radius); overflow:hidden; background:var(--paper-2); border:1px solid var(--line); }
.mapframe iframe{ width:100%; height:100%; border:0; filter:saturate(.75); }

/* CTA */
.cta{ text-align:center; display:flex; flex-direction:column; align-items:center; gap:1.5rem; }

/* ---------- footer ---------- */
.site-footer{ background:var(--ink); color:rgba(240,241,235,.62); padding-block:clamp(3.5rem,7vw,5.5rem) 2rem; }
.site-footer a{ color:rgba(240,241,235,.78); text-decoration:none; }
.site-footer a:hover{ color:var(--sand); }
.footer-grid{ display:grid; gap:clamp(2.25rem,4vw,3.5rem); grid-template-columns:1fr; }
@media (min-width:760px){ .footer-grid{ grid-template-columns:1.4fr 1fr 1fr; } }
.footer__mark{ display:block; width:clamp(220px, 22vw, 280px); aspect-ratio:610/140; background:url("../img/logo-sand.png") center/contain no-repeat; }
.footer__title{ font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:var(--sand); font-weight:700; margin-bottom:1.1rem; }
.footer__list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.6rem; font-size:.95rem; }
.footer__bottom{
  margin-top:clamp(2.5rem,5vw,4rem); padding-top:1.5rem; border-top:1px solid rgba(240,241,235,.14);
  display:flex; flex-wrap:wrap; gap:.75rem 1.5rem; justify-content:space-between;
  font-size:.8125rem; color:rgba(240,241,235,.45);
}

/* ---------- reveal ---------- */
.reveal{ opacity:0; transform:translateY(14px); transition:opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1); }
.reveal.is-in{ opacity:1; transform:none; }
.reveal[data-d="1"]{ transition-delay:.09s } .reveal[data-d="2"]{ transition-delay:.18s }
.reveal[data-d="3"]{ transition-delay:.27s } .reveal[data-d="4"]{ transition-delay:.36s }

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
  .reveal{ opacity:1; transform:none; }
  .hero__media img{ animation:none; transform:scale(1.02); }
}

.skip{ position:absolute; left:-9999px; }
.skip:focus{ left:var(--gutter); top:.75rem; z-index:200; background:var(--surface); color:var(--ink); padding:.7rem 1.1rem; border:1px solid var(--brass); }
