@import url('fonts.css');

/* =========================================================================
   RESKIN ZONE — ReFigure Chiropractic
   Mood: warm, human, coastal-calm. Warm paper + welcoming clay + grounding
   eucalyptus. Not clinical blue, not AI-cream. Serif warmth over clean sans.
   ========================================================================= */
:root{
  /* surfaces */
  --paper:      oklch(0.978 0.014 78);   /* warm off-white base */
  --paper-2:    oklch(0.955 0.021 72);   /* deeper warm section */
  --card:       oklch(0.995 0.006 85);   /* near-white warm card */
  --ink:        oklch(0.28 0.03 45);     /* warm near-black — headings/body */
  --ink-soft:   oklch(0.44 0.03 48);     /* secondary text */
  --muted:      oklch(0.55 0.025 55);    /* tertiary / captions */

  /* brand */
  --clay:       oklch(0.64 0.14 42);     /* terracotta — warm accent */
  --clay-deep:  oklch(0.50 0.13 40);     /* AA-safe clay for fills/links */
  --clay-tint:  oklch(0.935 0.030 58);   /* soft clay wash */
  --eucalypt:      oklch(0.50 0.062 165);/* grounding green — trust/health */
  --eucalypt-deep: oklch(0.40 0.055 165);
  --eucalypt-tint: oklch(0.945 0.022 165);
  --gold:       oklch(0.80 0.13 78);     /* review stars */

  /* utility */
  --line:   oklch(0.90 0.014 70);
  --line-2: oklch(0.85 0.02 62);
  --shadow-sm: 0 1px 2px oklch(0.4 0.03 45 / .06), 0 2px 8px oklch(0.4 0.03 45 / .05);
  --shadow-md: 0 6px 24px oklch(0.4 0.04 45 / .10), 0 2px 6px oklch(0.4 0.03 45 / .06);
  --shadow-lg: 0 18px 50px oklch(0.35 0.05 45 / .16);

  --font-body: 'Figtree', system-ui, -apple-system, Segoe UI, sans-serif;
  --font-display: 'Newsreader', Georgia, 'Times New Roman', serif;

  --r-sm: 12px; --r: 18px; --r-lg: 26px; --r-pill: 999px;
  --wrap: 1140px;
  --gutter: clamp(1.1rem, 4vw, 2.2rem);
}

/* ---------- base / reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:74px; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--font-body); font-weight:400; font-size:clamp(1rem,0.96rem + 0.2vw,1.075rem);
  line-height:1.68; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:clip;
}
body.nav-locked{ overflow:hidden; }
img,svg{ display:block; max-width:100%; }
a{ color:var(--clay-deep); text-underline-offset:3px; }
h1,h2,h3,h4{ font-family:var(--font-display); font-weight:500; color:var(--ink);
  line-height:1.1; letter-spacing:-0.01em; margin:0 0 .5em; }
p{ margin:0 0 1rem; }
:focus-visible{ outline:3px solid var(--clay); outline-offset:2px; border-radius:4px; }

.skip{ position:absolute; left:-9999px; top:0; background:var(--ink); color:var(--paper);
  padding:.7rem 1.1rem; border-radius:0 0 var(--r-sm) 0; z-index:200; }
.skip:focus{ left:0; }

/* ---------- layout ---------- */
.wrap{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:var(--gutter); }
.section{ padding-block:clamp(3.4rem, 7vw, 6rem); }
.section--tint{ background:var(--paper-2); }
.section--eucalypt{ background:var(--eucalypt-deep); color:var(--paper); }
.section--eucalypt h2,.section--eucalypt h3{ color:var(--paper); }
.eyebrow{ font-family:var(--font-body); font-weight:700; font-size:.8rem; letter-spacing:.09em;
  text-transform:uppercase; color:var(--clay-deep); margin:0 0 .8rem; display:inline-block; }
.section--eucalypt .eyebrow{ color:oklch(0.86 0.07 165); }
.lead{ font-size:clamp(1.1rem,1.02rem + .5vw,1.3rem); color:var(--ink-soft); line-height:1.6; max-width:62ch; }
.h-sec{ font-size:clamp(1.9rem, 1.4rem + 2.2vw, 3rem); max-width:20ch; }
.center{ text-align:center; margin-inline:auto; }
.center .lead{ margin-inline:auto; }

/* ---------- buttons ---------- */
.btn{ --b:var(--clay-deep); --t:#fff;
  display:inline-flex; align-items:center; gap:.55rem; justify-content:center;
  font-family:var(--font-body); font-weight:700; font-size:1rem; line-height:1;
  padding:.95rem 1.5rem; border-radius:var(--r-pill); border:2px solid transparent;
  background:var(--b); color:var(--t); text-decoration:none; cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease; box-shadow:var(--shadow-sm); }
.btn:hover{ transform:translateY(-2px); box-shadow:var(--shadow-md); }
.btn:active{ transform:translateY(0); }
.btn--ghost{ background:transparent; color:var(--ink); border-color:var(--line-2); box-shadow:none; }
.btn--ghost:hover{ border-color:var(--clay); background:oklch(1 0 0 / .4); }
.btn--light{ background:var(--paper); color:var(--eucalypt-deep); }
.btn--lg{ padding:1.1rem 1.8rem; font-size:1.06rem; }
.btn svg{ width:1.05em; height:1.05em; }
.btn-row{ display:flex; flex-wrap:wrap; gap:.8rem; align-items:center; }
.center .btn-row{ justify-content:center; }
.callink{ font-weight:700; color:var(--ink); text-decoration:none; display:inline-flex; align-items:center; gap:.4rem; }
.callink:hover{ color:var(--clay-deep); }

/* ---------- header / nav ---------- */
.site-header{ position:fixed; top:0; left:0; right:0; z-index:100; background:oklch(0.978 0.014 78 / .82);
  backdrop-filter:saturate(1.4) blur(10px); border-bottom:1px solid transparent; transition:border-color .2s, box-shadow .2s, background .2s, transform .38s cubic-bezier(.2,.7,.2,1); }
.site-header.is-scrolled{ border-bottom-color:var(--line); box-shadow:var(--shadow-sm); }
.header-inner{ display:flex; align-items:center; justify-content:space-between; gap:1rem; min-height:70px; }
.brand{ display:flex; align-items:center; gap:.6rem; text-decoration:none; color:var(--ink); font-weight:800;
  font-family:var(--font-body); letter-spacing:-0.01em; font-size:1.15rem; }
.brand__mark{ width:34px; height:34px; border-radius:9px; flex:none; }
.brand b{ color:var(--clay-deep); font-weight:800; }
.brand__type{ display:flex; flex-direction:column; line-height:1.05; }
.brand__type b{ font-weight:800; color:var(--clay-deep); }
.brand__type > span{ font-weight:500; color:var(--muted); font-size:.78rem; letter-spacing:.02em; margin-top:2px; }
.nav{ display:flex; align-items:center; gap:.3rem; }
.nav a{ color:var(--ink); text-decoration:none; font-weight:600; font-size:.96rem; padding:.5rem .7rem; border-radius:var(--r-sm); }
.nav a:hover{ color:var(--clay-deep); background:var(--clay-tint); }
.nav .btn{ margin-left:.4rem; }
.nav__toggle{ display:none; background:none; border:0; cursor:pointer; padding:.4rem; color:var(--ink); }
.nav__toggle svg{ width:28px; height:28px; }

@media (max-width: 900px){
  .nav__toggle{ display:inline-flex; }
  .nav{ position:fixed; inset:70px 0 auto 0; flex-direction:column; align-items:stretch; gap:.2rem;
    background:var(--paper); padding:1rem var(--gutter) 1.6rem; border-bottom:1px solid var(--line);
    box-shadow:var(--shadow-md); transform:translateY(-140%); transition:transform .28s ease; }
  .nav.is-open{ transform:translateY(0); }
  .nav a{ padding:.85rem .6rem; font-size:1.05rem; border-bottom:1px solid var(--line); border-radius:0; }
  .nav .btn{ margin:.7rem 0 0; }
}

/* ---------- header hidden over the hero, slides in once you scroll down ---------- */
.site-header.over-hero{ transform:translateY(-108%); box-shadow:none; border-bottom-color:transparent; }

/* ---------- hero: full-screen, scroll-away video ---------- */
.hero{ position:sticky; top:0; z-index:0; height:100svh; min-height:600px; overflow:hidden;
  display:flex; align-items:center; background:#1a1512; }
.hero-video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.hero-scrim{ position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg, oklch(0.15 0.02 40 / .22), transparent 26%, transparent 74%, oklch(0.15 0.02 40 / .30)); }
.hero-inner{ position:relative; z-index:2; width:100%; }
.hero-content{ max-width:660px; color:#fff; will-change:opacity, transform; }
.hero-content h1{ color:#fff; font-weight:500; letter-spacing:-0.02em; line-height:1.02; margin-bottom:.4em;
  font-size:clamp(2.7rem, 1.7rem + 4.6vw, 5rem); text-shadow:0 2px 34px oklch(0.15 0.02 40 / .5); }
.hero-content h1 em{ font-style:italic; color:oklch(0.87 0.10 55); }
.hero-lead{ font-size:clamp(1.1rem,1rem + .6vw,1.4rem); color:oklch(1 0 0 / .93); max-width:44ch; line-height:1.55;
  text-shadow:0 1px 18px oklch(0.15 0.02 40 / .55); }
.eyebrow--light{ color:oklch(0.88 0.09 60); }
.hero-scroll{ position:absolute; z-index:2; left:50%; bottom:1.8rem; transform:translateX(-50%);
  width:46px; height:46px; border-radius:50%; display:grid; place-items:center; text-decoration:none;
  color:#fff; background:oklch(1 0 0 / .12); border:1px solid oklch(1 0 0 / .4); backdrop-filter:blur(4px); }
.hero-scroll:hover{ background:oklch(1 0 0 / .22); }
.hero-scroll svg{ width:22px; height:22px; animation:bob 1.8s ease-in-out infinite; }
/* headline / value prop (dark text on warm paper) */
.hero-text{ padding-top:clamp(3.4rem,7vw,5.5rem); }
.hero-title{ font-family:var(--font-display); font-weight:500; letter-spacing:-0.02em; line-height:1.04;
  font-size:clamp(2.4rem, 1.6rem + 3.2vw, 4.1rem); max-width:16ch; margin:.3rem auto .2rem; color:var(--ink); }
.hero-title em{ font-style:italic; color:var(--clay-deep); }
.hero-text .statement{ margin-top:2.2rem; }
/* warm frosted panel over the video — dark text, not white-on-video */
.hero-panel{ max-width:560px; background:oklch(0.985 0.014 78 / .90); backdrop-filter:blur(12px) saturate(1.3);
  border:1px solid oklch(1 0 0 / .55); border-radius:var(--r-lg); padding:clamp(1.5rem,3vw,2.3rem); box-shadow:var(--shadow-lg); }
.hero-panel .eyebrow{ margin-bottom:.55rem; }
.hero-panel .hero-title{ text-align:left; max-width:none; margin:0 0 .5rem; font-size:clamp(2rem,1.4rem + 2.2vw,3.1rem); }
.hero-panel p{ color:var(--ink-soft); margin:0 0 1.3rem; font-size:1.06rem; max-width:44ch; }
@media (max-width:560px){ .hero-panel{ padding:1.3rem 1.2rem; } .hero-panel p{ font-size:1rem; } }
@keyframes bob{ 0%,100%{ transform:translateY(0);} 50%{ transform:translateY(6px);} }
/* content panel scrolls up and over the sticky hero */
.content{ position:relative; z-index:3; background:var(--paper); }
.btn--glass{ background:oklch(1 0 0 / .14); color:#fff; border-color:oklch(1 0 0 / .45); box-shadow:none; backdrop-filter:blur(6px); }
.btn--glass:hover{ background:oklch(1 0 0 / .26); border-color:#fff; }

/* ---------- intro statement + inline trust ---------- */
.intro{ padding-block:clamp(3.2rem,7vw,5.5rem); }
.statement{ font-family:var(--font-display); font-weight:400; line-height:1.34; color:var(--ink);
  font-size:clamp(1.5rem,1.1rem + 1.8vw,2.35rem); max-width:900px; margin:.4rem auto 0; }
.statement b{ color:var(--clay-deep); font-weight:600; }
.statement em{ font-style:italic; color:var(--eucalypt-deep); }
.trust-inline{ display:flex; flex-wrap:wrap; gap:.7rem 2rem; justify-content:center; align-items:center;
  margin-top:2rem; font-weight:600; font-size:.95rem; }
.trust-inline .ti{ display:inline-flex; align-items:center; gap:.45rem; text-decoration:none; color:var(--ink-soft); }
.trust-inline a.ti:hover{ color:var(--clay-deep); }
.trust-inline .stars{ color:var(--gold); letter-spacing:1px; }
.trust-inline b{ color:var(--ink); }

/* ---------- generic grids / cards ---------- */
.grid{ display:grid; gap:1.2rem; }
.grid-3{ grid-template-columns:repeat(3,1fr); }
.grid-2{ grid-template-columns:repeat(2,1fr); }
.card{ background:var(--card); border:1px solid var(--line); border-radius:var(--r-lg); padding:1.6rem 1.5rem;
  box-shadow:var(--shadow-sm); transition:transform .2s ease, box-shadow .2s ease, border-color .2s; height:100%; }
.card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:var(--line-2); }
.card h3{ font-size:1.42rem; margin-bottom:.35rem; }
.card p{ color:var(--ink-soft); margin-bottom:0; }
.card .ic{ width:52px; height:52px; border-radius:14px; display:grid; place-items:center; margin-bottom:1rem;
  background:var(--clay-tint); color:var(--clay-deep); }
.card--green .ic{ background:var(--eucalypt-tint); color:var(--eucalypt-deep); }
.card .ic svg{ width:26px; height:26px; }
.card a.more{ display:inline-flex; align-items:center; gap:.35rem; margin-top:1rem; font-weight:700;
  text-decoration:none; color:var(--clay-deep); }
.card a.more:hover{ gap:.6rem; }

/* pill list */
.pills{ display:flex; flex-wrap:wrap; gap:.5rem; list-style:none; padding:0; margin:1.2rem 0 0; }
.pills li{ background:var(--card); border:1px solid var(--line); border-radius:var(--r-pill);
  padding:.45rem .95rem; font-size:.9rem; font-weight:600; color:var(--ink-soft); }

/* ---------- story (Andrew) ---------- */
.story-grid{ display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(1.6rem,4vw,3.2rem); align-items:center; }
.story-photo{ aspect-ratio:4/5; border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-lg); background:var(--paper-2); }
.story-photo img{ width:100%; height:100%; object-fit:cover; }
.pull{ font-family:var(--font-display); font-style:italic; line-height:1.35; color:var(--clay-deep);
  font-size:clamp(1.3rem,1.1rem + 1vw,1.7rem); border-left:3px solid var(--clay); margin:1.4rem 0; padding:.1rem 0 .1rem 1.2rem; }
.creds{ list-style:none; padding:0; margin:1.4rem 0 0; display:grid; gap:.7rem; }
.creds li{ display:flex; gap:.7rem; align-items:flex-start; color:var(--ink-soft); }
.creds svg{ width:1.3em; height:1.3em; color:var(--clay-deep); flex:none; margin-top:.15em; }

/* ---------- team ---------- */
.team-grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:1.1rem; }
.member{ margin:0; }
.member__photo{ aspect-ratio:3/4; border-radius:var(--r-lg); overflow:hidden; background:var(--paper-2); box-shadow:var(--shadow-sm); }
.member__photo img{ width:100%; height:100%; object-fit:cover; transition:transform .4s ease; }
.member:hover .member__photo img{ transform:scale(1.045); }
.member figcaption{ margin-top:.85rem; }
.member figcaption b{ display:block; font-family:var(--font-display); font-size:1.12rem; font-weight:600; color:var(--ink); }
.member figcaption span{ color:var(--muted); font-size:.85rem; }

/* ---------- cta card ---------- */
.card--cta{ background:linear-gradient(150deg, var(--clay-tint), var(--eucalypt-tint)); border-color:transparent;
  display:flex; flex-direction:column; justify-content:center; }
.card--cta h3{ color:var(--ink); }

/* ---------- watch / video gallery ---------- */
.section--dark{ background:var(--ink); color:oklch(0.9 0.02 70); }
.section--dark h2{ color:#fff; }
.video-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.1rem; }
.ytlite{ position:relative; aspect-ratio:16/9; border:0; padding:0; margin:0; cursor:pointer; border-radius:var(--r);
  overflow:hidden; background:#000; box-shadow:var(--shadow-md); }
.ytlite img{ width:100%; height:100%; object-fit:cover; opacity:.85; transition:opacity .25s ease, transform .5s ease; }
.ytlite:hover img{ opacity:1; transform:scale(1.04); }
.ytlite .play{ position:absolute; inset:0; margin:auto; width:64px; height:64px; border-radius:50%;
  background:oklch(1 0 0 / .16); border:2px solid #fff; backdrop-filter:blur(3px); display:grid; place-items:center; transition:.2s; }
.ytlite .play::after{ content:''; width:0; height:0; margin-left:5px;
  border-left:18px solid #fff; border-top:11px solid transparent; border-bottom:11px solid transparent; }
.ytlite:hover .play{ background:var(--clay); border-color:var(--clay); transform:scale(1.06); }
.ytlite__t{ position:absolute; left:0; right:0; bottom:0; padding:1.6rem .9rem .8rem; text-align:left; color:#fff;
  font-weight:700; font-size:.95rem; line-height:1.25; background:linear-gradient(transparent, oklch(0.1 0.02 40 / .88)); }
.ytlite iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }

/* ---------- first visit steps ---------- */
.steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; counter-reset:step; }
.step{ position:relative; padding-top:.5rem; }
.step .n{ font-family:var(--font-display); font-size:2.4rem; color:var(--clay); font-weight:600; line-height:1; }
.step h3{ font-size:1.25rem; margin:.5rem 0 .3rem; }
.step p{ color:var(--ink-soft); margin:0; }

/* ---------- location ---------- */
.loc-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.4rem,3vw,2.6rem); align-items:stretch; }
.loc-card{ background:var(--card); border:1px solid var(--line); border-radius:var(--r-lg); padding:1.8rem; box-shadow:var(--shadow-sm); }
.loc-card h3{ font-size:1.5rem; }
.info-list{ list-style:none; padding:0; margin:1.1rem 0 0; display:grid; gap:.9rem; }
.info-list li{ display:flex; gap:.8rem; align-items:flex-start; color:var(--ink-soft); }
.info-list b{ color:var(--ink); display:block; }
.info-list svg{ width:1.35em; height:1.35em; color:var(--clay-deep); flex:none; margin-top:.15em; }
.hours{ width:100%; border-collapse:collapse; margin-top:.4rem; font-size:.96rem; }
.hours th,.hours td{ text-align:left; padding:.45rem 0; border-bottom:1px solid var(--line); color:var(--ink-soft); font-weight:500; }
.hours th{ color:var(--ink); font-weight:600; font-family:var(--font-body); }
.hours .sat td{ color:var(--clay-deep); font-weight:700; }
.map-embed{ border-radius:var(--r-lg); overflow:hidden; border:1px solid var(--line); min-height:320px; height:100%; background:var(--paper-2); }
.map-embed iframe{ width:100%; height:100%; min-height:320px; border:0; display:block; }
.map-panel{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.7rem;
  text-decoration:none; color:var(--ink-soft); text-align:center; padding:2rem;
  background:linear-gradient(155deg, var(--eucalypt-tint), var(--clay-tint));
  transition:box-shadow .2s ease; }
.map-panel:hover{ box-shadow:inset 0 0 0 2px var(--clay); }
.map-panel .map-pin{ width:66px; height:66px; border-radius:50%; display:grid; place-items:center;
  background:var(--card); color:var(--clay-deep); box-shadow:var(--shadow-sm); }
.map-panel .map-pin svg{ width:32px; height:32px; }
.map-panel b{ color:var(--ink); font-size:1.15rem; }
.map-panel .map-open{ display:inline-flex; align-items:center; gap:.4rem; font-weight:700; color:var(--clay-deep); }

/* ---------- FAQ ---------- */
.faq{ max-width:820px; margin-inline:auto; }
.faq details{ background:var(--card); border:1px solid var(--line); border-radius:var(--r); margin-bottom:.7rem; overflow:hidden; }
.faq summary{ cursor:pointer; list-style:none; padding:1.15rem 1.3rem; font-weight:700; font-size:1.06rem;
  display:flex; justify-content:space-between; gap:1rem; align-items:center; color:var(--ink); }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:'+'; font-size:1.5rem; color:var(--clay-deep); font-weight:400; transition:transform .2s; line-height:1; }
.faq details[open] summary::after{ transform:rotate(45deg); }
.faq details[open] summary{ color:var(--clay-deep); }
.faq .a{ padding:0 1.3rem 1.25rem; color:var(--ink-soft); }
.faq .a p:last-child{ margin-bottom:0; }

/* ---------- CTA band ---------- */
.cta-band{ background:var(--clay-deep); color:#fff; border-radius:var(--r-lg); padding:clamp(2rem,5vw,3.4rem);
  text-align:center; position:relative; overflow:hidden; box-shadow:var(--shadow-lg); }
.cta-band::before{ content:''; position:absolute; inset:0; background:radial-gradient(70% 120% at 50% -20%, oklch(1 0 0 / .16), transparent 60%); }
.cta-band > *{ position:relative; }
.cta-band h2{ color:#fff; font-size:clamp(1.9rem,1.4rem + 2vw,2.8rem); }
.cta-band p{ color:oklch(1 0 0 / .9); max-width:52ch; margin-inline:auto; font-size:1.1rem; }

/* ---------- footer ---------- */
.site-footer{ background:var(--ink); color:oklch(0.9 0.02 70); padding-block:3rem 2rem; }
.footer-grid{ display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:2rem; }
.site-footer h4{ color:#fff; font-family:var(--font-body); font-weight:700; font-size:.9rem; letter-spacing:.06em;
  text-transform:uppercase; margin:0 0 1rem; }
.site-footer a{ color:oklch(0.86 0.02 70); text-decoration:none; }
.site-footer a:hover{ color:#fff; }
.footer-links{ list-style:none; padding:0; margin:0; display:grid; gap:.55rem; }
.footer-brand .brand{ color:#fff; margin-bottom:.8rem; }
.footer-brand .brand b{ color:oklch(0.78 0.11 55); }
.footer-brand p{ color:oklch(0.82 0.02 70); max-width:34ch; font-size:.95rem; }
.footer-base{ border-top:1px solid oklch(1 0 0 / .12); margin-top:2.4rem; padding-top:1.4rem;
  display:flex; flex-wrap:wrap; gap:.6rem 1.4rem; justify-content:space-between; color:oklch(0.72 0.02 70); font-size:.83rem; }

/* mobile sticky call/book bar */
.callbar{ position:fixed; left:0; right:0; bottom:0; z-index:90; display:none; gap:.6rem; padding:.6rem;
  background:var(--card); border-top:1px solid var(--line); box-shadow:0 -4px 20px oklch(0.3 0.04 45 / .12); }
.callbar .btn{ flex:1; padding:.85rem; }
@media (max-width:640px){ .callbar{ display:flex; } body{ padding-bottom:76px; } }

/* ---------- reveal ---------- */
.reveal-ready [data-reveal]{ opacity:0; transform:perspective(1200px) translateY(30px) rotateX(6deg) scale(.99);
  transform-origin:50% 100%; transition:opacity .7s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1); }
.reveal-ready [data-reveal].is-in{ opacity:1; transform:none; }

/* ---------- responsive ---------- */
@media (max-width: 900px){
  .hero-grid{ grid-template-columns:1fr; }
  .portrait{ max-width:420px; margin-inline:auto; }
  .story-grid{ grid-template-columns:1fr; }
  .story-portrait{ max-width:440px; }
  .grid-3{ grid-template-columns:1fr 1fr; }
  .cond-grid{ grid-template-columns:1fr 1fr; }
  .steps{ grid-template-columns:1fr; gap:1.6rem; }
  .loc-grid{ grid-template-columns:1fr; }
  .footer-grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width: 560px){
  .grid-3,.grid-2{ grid-template-columns:1fr; }
  .cond-grid{ grid-template-columns:1fr; }
  .footer-grid{ grid-template-columns:1fr; }
  .review-badge{ right:8px; }
}

/* ---------- responsive: team + video + hero + mobile nav over hero ---------- */
@media (max-width: 1000px){
  .team-grid{ grid-template-columns:repeat(3,1fr); }
  .video-grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width: 900px){
  .site-header.over-hero .nav.is-open > a{ color:var(--ink); }
  .site-header.over-hero .nav.is-open .btn{ background:var(--clay-deep); color:#fff; }
}
@media (max-width: 640px){
  .team-grid{ grid-template-columns:repeat(2,1fr); }
  .video-grid{ grid-template-columns:1fr; }
  .hero{ min-height:560px; }
  .trust-inline{ gap:.5rem 1.2rem; font-size:.88rem; }
}

/* ================= inner pages ================= */
body.inner{ padding-top:70px; } /* clear the fixed header */
.page-hero{ background:var(--paper-2); border-bottom:1px solid var(--line); padding-block:clamp(2.6rem,5vw,3.8rem); }
.crumbs{ font-size:.85rem; color:var(--muted); margin-bottom:.9rem; }
.crumbs a{ color:var(--muted); text-decoration:none; }
.crumbs a:hover{ color:var(--clay-deep); }
.page-hero h1{ font-size:clamp(2.1rem,1.5rem + 2.4vw,3.3rem); max-width:20ch; margin:0 0 .4rem; }
.page-hero p{ color:var(--ink-soft); max-width:62ch; font-size:1.12rem; margin:0; }
.prose{ max-width:72ch; }
.prose h2{ font-size:clamp(1.5rem,1.2rem + 1vw,2rem); margin:2rem 0 .6rem; }
.prose p{ color:var(--ink-soft); }
.prose ul{ color:var(--ink-soft); padding-left:1.15rem; margin:0 0 1rem; }
.prose li{ margin-bottom:.45rem; }

/* team bios */
.bio{ display:grid; grid-template-columns:290px 1fr; gap:clamp(1.4rem,3vw,2.8rem); align-items:start; }
.bio + .bio{ margin-top:clamp(2.4rem,5vw,3.6rem); padding-top:clamp(2.4rem,5vw,3.6rem); border-top:1px solid var(--line); }
.bio__photo{ border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-md); aspect-ratio:3/4; background:var(--paper-2); }
.bio__photo img{ width:100%; height:100%; object-fit:cover; }
.bio__role{ color:var(--clay-deep); font-weight:700; font-size:.82rem; letter-spacing:.07em; text-transform:uppercase; }
.bio h2{ font-size:1.75rem; margin:.25rem 0 .7rem; }
.bio p{ color:var(--ink-soft); }
.bio .pills{ margin-top:1rem; }
@media(max-width:720px){ .bio{ grid-template-columns:1fr; } .bio__photo{ max-width:260px; } }

/* service sections (icon + copy, no missing media) */
.svc-list{ display:grid; gap:clamp(1rem,2vw,1.4rem); }
.svc{ background:var(--card); border:1px solid var(--line); border-radius:var(--r-lg); padding:clamp(1.5rem,3vw,2.2rem);
  box-shadow:var(--shadow-sm); display:grid; grid-template-columns:auto 1fr; gap:1.4rem; align-items:start; }
.svc .ic{ width:58px; height:58px; border-radius:16px; display:grid; place-items:center; background:var(--clay-tint); color:var(--clay-deep); }
.svc:nth-child(even) .ic{ background:var(--eucalypt-tint); color:var(--eucalypt-deep); }
.svc .ic svg{ width:28px; height:28px; }
.svc h2{ font-size:1.5rem; margin:.1rem 0 .5rem; }
.svc p{ color:var(--ink-soft); margin:0 0 .6rem; }
.svc .who{ font-size:.92rem; color:var(--muted); }
.svc .who b{ color:var(--ink); font-weight:600; }
@media(max-width:560px){ .svc{ grid-template-columns:1fr; } }

/* contact page */
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.6rem,3vw,2.8rem); align-items:start; }
.field{ display:block; margin-bottom:1rem; }
.field span{ display:block; font-weight:600; font-size:.92rem; margin-bottom:.35rem; color:var(--ink); }
.field input, .field textarea{ width:100%; font:inherit; color:var(--ink); background:var(--card);
  border:1px solid var(--line-2); border-radius:var(--r-sm); padding:.8rem .9rem; }
.field input:focus, .field textarea:focus{ outline:none; border-color:var(--clay); box-shadow:0 0 0 3px var(--clay-tint); }
.honey{ position:absolute; left:-9999px; }
@media(max-width:720px){ .contact-grid{ grid-template-columns:1fr; } }
