*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--canvas);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:var(--step-0);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
body.nav-open{overflow:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
button,input,select,textarea{font:inherit}
button{color:inherit}
h1,h2,h3,h4{
  font-family:var(--font-display);
  line-height:1.08;
  letter-spacing:-.035em;
  margin:0;
  font-weight:750;
}
h1{font-size:var(--step-4);max-width:14ch}
h2{font-size:var(--step-3);max-width:18ch}
h3{font-size:var(--step-1)}
p{margin:0}
ul{margin:0}

.container{width:min(calc(100% - 2.5rem),var(--container));margin-inline:auto}
.section{padding:clamp(4.5rem,9vw,8rem) 0}
.section-tight{padding:clamp(3rem,6vw,5rem) 0}
.section-mineral{background:var(--mineral)}
.eyebrow{
  display:block;
  margin-bottom:1rem;
  color:var(--teal-dark);
  font:600 var(--step--1)/1.4 var(--font-detail);
  letter-spacing:.1em;
  text-transform:uppercase;
}
.lead{font-size:var(--step-1);color:var(--ink-soft);max-width:58ch}
.section-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(18rem,.65fr);
  gap:2rem;
  align-items:end;
  margin-bottom:3rem;
}

.skip-link{
  position:fixed;
  left:1rem;
  top:.5rem;
  z-index:10000;
  padding:.8rem 1rem;
  background:var(--ink);
  color:#fff;
  transform:translateY(-160%);
  border-radius:10px;
  text-decoration:none;
  font-weight:650;
}
.skip-link:focus{transform:none}
:focus-visible{outline:3px solid var(--berry);outline-offset:4px}

/* Showcase banner */
.showcase-banner{
  min-height:38px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.35rem;
  flex-wrap:wrap;
  padding:.45rem 1rem;
  text-align:center;
  background:var(--ink);
  color:#F8F4EE;
  font-size:.78rem;
  position:relative;
  z-index:100;
}
.showcase-banner a{
  color:#C7E3DD;
  text-underline-offset:3px;
  display:inline-flex;
  align-items:center;
  min-height:44px;
}

/* Nav */
.site-header{
  position:sticky;
  top:0;
  z-index:90;
  background:rgba(246,243,237,.72);
  border-bottom:1px solid transparent;
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  transition:background .35s var(--ease),border-color .35s var(--ease),box-shadow .35s var(--ease);
}
.site-header.is-scrolled{
  background:rgba(246,243,237,.92);
  border-bottom-color:var(--line);
  box-shadow:0 10px 40px rgba(24,49,54,.06);
}
.nav{
  min-height:76px;
  display:flex;
  align-items:center;
  gap:1.2rem;
}
.brand{
  font:750 1.05rem/1 var(--font-display);
  text-decoration:none;
  white-space:nowrap;
  display:inline-flex;
  align-items:center;
  min-height:44px;
}
.brand span{color:var(--teal)}
.nav-links{
  display:flex;
  align-items:center;
  gap:.15rem;
  margin:0 0 0 auto;
  padding:0;
  list-style:none;
}
.nav-links a{
  min-height:44px;
  display:flex;
  align-items:center;
  padding:.55rem .8rem;
  border-radius:12px;
  text-decoration:none;
  font-weight:600;
  font-size:.9rem;
}
.nav-links a:hover,
.nav-links a[aria-current="page"]{background:var(--mineral)}
.nav-actions{display:flex;gap:.55rem;flex-shrink:0}
.nav-toggle{
  display:none;
  width:48px;
  height:48px;
  flex:0 0 48px;
  border:1px solid var(--line);
  border-radius:14px;
  background:var(--paper);
  align-items:center;
  justify-content:center;
  cursor:pointer;
}
.nav-toggle svg{width:22px;height:22px}

/* Buttons */
.button{
  min-height:48px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.55rem;
  padding:.75rem 1.2rem;
  border:1px solid transparent;
  border-radius:14px;
  background:var(--berry);
  color:#fff;
  text-decoration:none;
  font-weight:750;
  cursor:pointer;
  transition:background .2s var(--ease),border-color .2s var(--ease),color .2s var(--ease);
}
.button:hover{background:var(--berry-dark)}
.button-secondary{
  background:transparent;
  color:var(--ink);
  border-color:var(--ink);
}
.button-secondary:hover{background:var(--ink);color:#fff}
.button-teal{background:var(--teal);color:#fff}
.button-teal:hover{background:var(--teal-dark)}
.button-ghost{
  background:transparent;
  color:#fff;
  border-color:rgba(255,255,255,.55);
}
.button-ghost:hover{background:#fff;color:var(--ink)}
.text-link{
  font-weight:750;
  text-underline-offset:4px;
  display:inline-flex;
  align-items:center;
  min-height:44px;
}

/* Hero â€” full-bleed editorial + inset card */
.hero{padding:0 0 5.5rem}
.hero-media{
  position:relative;
  min-height:min(78vh,780px);
  overflow:hidden;
  background:linear-gradient(135deg,var(--eucalyptus),var(--mineral));
}
.hero-media picture,
.hero-media img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}
.hero-media::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(105deg,rgba(24,49,54,.72) 0%,rgba(24,49,54,.28) 48%,rgba(24,49,54,.08) 100%),
    linear-gradient(0deg,rgba(24,49,54,.35),transparent 42%);
}
.hero-copy{
  position:relative;
  z-index:1;
  color:#fff;
  padding:clamp(4.5rem,10vw,8.5rem) clamp(1.25rem,6vw,5rem) clamp(5rem,10vw,8rem);
  max-width:56rem;
}
.hero-copy .eyebrow{color:#D7EEE9}
.hero-copy p{
  margin:1.35rem 0 2rem;
  max-width:46ch;
  font-size:var(--step-1);
  color:rgba(255,255,255,.92);
}
.hero-actions{display:flex;flex-wrap:wrap;gap:.75rem}
.hero .button-secondary{
  border-color:#fff;
  color:#fff;
}
.hero .button-secondary:hover{background:#fff;color:var(--ink)}

.appointment-card{
  position:relative;
  z-index:3;
  width:min(calc(100% - 2.5rem),68rem);
  margin:-4.25rem auto 0;
  background:rgba(255,253,249,.97);
  box-shadow:var(--shadow);
  border:1px solid rgba(255,255,255,.85);
  border-radius:var(--radius-lg);
  padding:clamp(1.35rem,4vw,2.35rem);
  display:grid;
  grid-template-columns:1.35fr repeat(3,1fr);
  gap:1.4rem;
  align-items:center;
}
.appointment-card strong{
  font-family:var(--font-display);
  font-size:var(--step-1);
  display:block;
  margin-top:.35rem;
}
.appointment-card p{color:var(--ink-soft);margin-top:.25rem}
.appointment-card small,
.label{
  font:500 .75rem/1.5 var(--font-detail);
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--ink-soft);
}

/* Intent chooser */
.intent-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1rem;
}
.intent-card{
  --spot-x:50%;
  --spot-y:50%;
  position:relative;
  isolation:isolate;
  min-height:13.5rem;
  padding:1.55rem;
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  background:var(--paper);
  display:flex;
  flex-direction:column;
  text-decoration:none;
  overflow:hidden;
  transition:border-color .2s var(--ease),box-shadow .2s var(--ease);
}
.intent-card::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  opacity:0;
  pointer-events:none;
  background:radial-gradient(420px circle at var(--spot-x) var(--spot-y),rgba(42,127,142,.18),transparent 55%);
  transition:opacity .25s var(--ease);
  z-index:0;
}
.intent-card.is-spotlit::before{opacity:1}
.intent-card > *{position:relative;z-index:1}
.intent-card:hover{
  border-color:var(--eucalyptus);
  box-shadow:var(--shadow-soft);
}
.intent-card svg{
  width:30px;
  height:30px;
  margin-bottom:auto;
  color:var(--teal);
}
.intent-card h3{margin:.95rem 0 .4rem}
.intent-card p{color:var(--ink-soft)}
.intent-card.urgent{
  background:#F7E8EC;
  border-color:#D8A6B2;
}
.intent-card.urgent svg{color:var(--berry-dark)}

/* Treatment finder accordion */
.finder{
  display:grid;
  grid-template-columns:.75fr 1.25fr;
  gap:clamp(2rem,7vw,6rem);
  align-items:start;
}
.finder aside{position:sticky;top:var(--header-offset)}
.accordion details,
.faq details,
.finder details{
  border-top:1px solid var(--line);
}
.accordion details:last-child,
.faq details:last-child,
.finder details:last-child{
  border-bottom:1px solid var(--line);
}
summary{
  min-height:62px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  cursor:pointer;
  font-family:var(--font-display);
  font-weight:700;
  list-style:none;
}
summary::-webkit-details-marker{display:none}
summary::after{
  content:"+";
  font:500 1.4rem var(--font-detail);
  color:var(--teal);
  flex-shrink:0;
}
details[open] summary::after{content:"–"}
.details-body{padding:0 0 1.5rem;color:var(--ink-soft)}
.details-links{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1rem}
.details-links a{
  min-height:44px;
  display:inline-flex;
  align-items:center;
  padding:.55rem .8rem;
  border-radius:12px;
  background:var(--mineral);
  font-weight:650;
  text-decoration:none;
}

/* Signature journey */
.journey{
  background:var(--ink);
  color:#EEF5F3;
}
.journey .eyebrow{color:#B8D8D1}
.journey-head{margin-bottom:2rem;max-width:42rem}
.journey-progress{
  --journey-p:0.25;
  height:3px;
  border-radius:999px;
  background:rgba(238,245,243,.12);
  margin:0 0 1.75rem;
  overflow:hidden;
}
.journey-progress span{
  display:block;
  height:100%;
  width:calc(var(--journey-p) * 100%);
  background:linear-gradient(90deg,#91AFA8,#2A7F8E);
  border-radius:inherit;
  transition:width .35s var(--ease);
}
.journey-grid{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:clamp(2rem,6vw,5rem);
  align-items:start;
}
.journey-visual{
  position:static;
  min-height:0;
  border-radius:var(--radius-lg);
  background:#DCE9E6;
  color:var(--ink);
  overflow:visible;
  display:grid;
  gap:1rem;
}
.js .journey-visual{
  position:relative;
  top:auto;
  min-height:34rem;
  overflow:hidden;
  display:block;
  gap:0;
}
.journey-state{
  position:static;
  padding:clamp(1.75rem,5vw,3rem);
  display:grid;
  align-content:start;
  gap:1rem;
  opacity:1;
  visibility:visible;
  background:#DCE9E6;
  border-radius:var(--radius-md);
}
.js .journey-state{
  position:absolute;
  inset:0;
  opacity:0;
  visibility:hidden;
  border-radius:0;
  transition:none;
  grid-template-rows:auto 1fr;
}
.js .journey-state.is-active{
  opacity:1;
  visibility:visible;
}
.journey-state .step-no{
  font:600 .76rem var(--font-detail);
  color:var(--teal-dark);
  letter-spacing:.1em;
}
.journey-state h3{font-size:var(--step-2)}
.journey-state p{color:var(--ink-soft)}
.journey-state ul{
  padding-left:1.15rem;
  color:var(--ink-soft);
  display:grid;
  gap:.35rem;
}
.journey-media{
  border-radius:var(--radius-sm);
  overflow:hidden;
  background:var(--mineral);
  aspect-ratio:4/5;
  max-height:16rem;
}
.journey-media img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.journey-checklist{
  list-style:none;
  padding:0;
  display:grid;
  gap:.65rem;
}
.journey-checklist li{
  display:flex;
  gap:.75rem;
  align-items:flex-start;
  padding:.85rem 1rem;
  background:rgba(255,255,255,.7);
  border-radius:14px;
  color:var(--ink);
}
.journey-checklist li::before{
  content:"";
  width:.7rem;
  height:.7rem;
  margin-top:.4rem;
  border-radius:50%;
  background:var(--teal);
  flex-shrink:0;
}
.journey-steps{display:grid;gap:1rem}
.journey-step{
  width:100%;
  min-height:8.5rem;
  padding:1.4rem 1.5rem;
  text-align:left;
  background:transparent;
  color:#D7E4E1;
  border:1px solid rgba(255,255,255,.18);
  border-radius:var(--radius-sm);
  cursor:pointer;
  transition:background .2s var(--ease),color .2s var(--ease),border-color .2s var(--ease);
}
.journey-step[aria-current="step"],
.journey-step.is-active{
  background:var(--canvas);
  color:var(--ink);
  border-color:var(--canvas);
}
.journey-step span{
  display:block;
  margin-bottom:.45rem;
  font:600 .73rem var(--font-detail);
  letter-spacing:.1em;
}
.journey-step strong{font:700 var(--step-1) var(--font-display)}
.journey-step p{
  margin-top:.4rem;
  color:inherit;
  opacity:.8;
}

/* Editorial / team */
.editorial-grid{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:clamp(2rem,6vw,5rem);
  align-items:center;
}
.media-frame{
  overflow:hidden;
  border-radius:var(--radius-lg);
  background:var(--mineral);
  aspect-ratio:4/5;
}
.media-frame.landscape{aspect-ratio:16/9}
.media-frame img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.editorial-copy h2{margin-bottom:1.25rem}
.editorial-copy .lead{margin-bottom:1rem}
.principles{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  overflow:hidden;
  margin-top:2rem;
}
.principles div{background:var(--paper);padding:1.5rem}
.principles strong{
  display:block;
  font-family:var(--font-display);
  margin-bottom:.35rem;
}
.principles p{color:var(--ink-soft);font-size:.95rem}

/* Trust strip */
.trust-strip{background:var(--teal-dark);color:#fff}
.trust-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1px;
  background:rgba(255,255,255,.22);
}
.trust-item{padding:1.55rem;background:var(--teal-dark)}
.trust-item .label{color:#C5DED8}
.trust-item strong{
  display:block;
  margin-top:.5rem;
  font-family:var(--font-display);
  font-weight:700;
}
.demo-tag{
  display:inline-block;
  margin-top:.55rem;
  font:500 .68rem/1.4 var(--font-detail);
  letter-spacing:.06em;
  text-transform:uppercase;
  color:#B8D8D1;
}

/* Emergency */
.emergency-callout{
  display:grid;
  grid-template-columns:1fr auto;
  gap:2rem;
  align-items:center;
  padding:clamp(2rem,6vw,3.75rem);
  background:#F2DFE4;
  border-radius:var(--radius-lg);
}
.emergency-callout p{margin-top:1rem;max-width:60ch;color:var(--ink-soft)}

/* FAQ / contact */
.faq{max-width:52rem}
.contact-split{
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:clamp(2rem,7vw,6rem);
}
.contact-copy h2{margin-bottom:1rem}
.contact-list{
  list-style:none;
  padding:0;
  margin:2rem 0 0;
  display:grid;
  gap:1rem;
}
.contact-list li{
  padding-bottom:1rem;
  border-bottom:1px solid var(--line);
}
.contact-list .label{display:block;margin-bottom:.2rem}
.contact-list a{
  display:inline-flex;
  align-items:center;
  min-height:44px;
  font-weight:650;
}
.contact-note{
  margin-top:.35rem;
  font-size:.85rem;
  color:var(--ink-soft);
}

form{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1rem;
  padding:clamp(1.25rem,4vw,2rem);
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
}
.field{display:grid;gap:.4rem}
.field-full{grid-column:1/-1}
label{font-weight:650}
input,select,textarea{
  width:100%;
  min-height:48px;
  border:1px solid #789094;
  border-radius:12px;
  background:#fff;
  color:var(--ink);
  padding:.75rem .9rem;
}
textarea{min-height:8rem;resize:vertical}
.form-note{
  grid-column:1/-1;
  color:var(--ink-soft);
  font-size:.9rem;
}
.form-status{
  grid-column:1/-1;
  padding:1rem 1.1rem;
  border-radius:12px;
  background:var(--mineral);
  font-weight:650;
}

/* Inner pages */
.page-hero{padding:clamp(4rem,8vw,7rem) 0 2rem}
.page-hero .lead{margin-top:1.4rem}
.breadcrumbs{
  font:500 .75rem var(--font-detail);
  text-transform:uppercase;
  letter-spacing:.08em;
  margin-bottom:1.5rem;
  color:var(--ink-soft);
}
.breadcrumbs a{color:var(--teal-dark)}
.page-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1rem;
}
.content-card{
  padding:1.55rem;
  border-radius:var(--radius-md);
  background:var(--paper);
  border:1px solid var(--line);
}
.content-card h3{margin-bottom:.7rem}
.content-card p{color:var(--ink-soft)}
.content-card a{
  display:inline-flex;
  align-items:center;
  min-height:44px;
  margin-top:1rem;
  font-weight:750;
}
.steps{
  counter-reset:steps;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1rem;
}
.steps>div{
  counter-increment:steps;
  padding:1.5rem;
  border-top:3px solid var(--teal);
  background:var(--paper);
  border-radius:0 0 var(--radius-sm) var(--radius-sm);
}
.steps>div::before{
  content:"0" counter(steps);
  font:600 .75rem var(--font-detail);
  color:var(--teal-dark);
  letter-spacing:.08em;
}
.steps h3{margin:.7rem 0 .45rem}
.steps p{color:var(--ink-soft)}
.notice{
  padding:1.25rem 1.4rem;
  border-left:4px solid var(--teal);
  background:var(--mineral);
  border-radius:0 var(--radius-sm) var(--radius-sm) 0;
}
.notice.urgent{
  border-color:var(--berry);
  background:#F6E7EA;
}
.notice a{font-weight:750}
.team-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1rem;
}
.team-card{
  padding:1.6rem;
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:var(--radius-md);
}
.team-card .role{
  font:600 .75rem var(--font-detail);
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--teal-dark);
  margin-bottom:.75rem;
}
.team-card h3{margin-bottom:.55rem}
.team-card p{color:var(--ink-soft)}
.demo-label{
  display:inline-block;
  margin-top:1rem;
  font:500 .72rem/1.4 var(--font-detail);
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--ink-soft);
}
.two-col{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(1.5rem,5vw,3rem);
}
.hours-panel{
  padding:1.6rem;
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:var(--radius-md);
}
.hours-panel .hours{
  margin-top:1rem;
  font:500 .82rem/1.9 var(--font-detail);
}

/* Footer */
.site-footer{
  padding:4rem 0 2rem;
  background:#DFE9E6;
}
.footer-grid{
  display:grid;
  grid-template-columns:1.4fr repeat(3,1fr);
  gap:2rem;
}
.footer-grid h3{
  font-size:.9rem;
  letter-spacing:0;
  margin-bottom:1rem;
}
.footer-links{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap:.55rem;
}
.footer-links a{
  display:inline-flex;
  align-items:center;
  min-height:44px;
  text-underline-offset:3px;
}
.hours{
  font:500 .78rem/1.85 var(--font-detail);
  color:var(--ink-soft);
}
.footer-bottom{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  flex-wrap:wrap;
  border-top:1px solid var(--line);
  padding-top:1.5rem;
  margin-top:3rem;
  font-size:.82rem;
  color:var(--ink-soft);
}
.footer-bottom a{
  display:inline-flex;
  align-items:center;
  min-height:44px;
}

/* Cookie banner -- full-width bottom bar (avoids covering hero CTAs) */
.cookie-banner{
  display:none;
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  inset:auto 0 0;
  z-index:9000;
  background:var(--ink);
  color:#fff;
  border-radius:0;
  padding:1rem 1.2rem;
  padding-bottom:calc(1rem + env(safe-area-inset-bottom, 0px));
  box-shadow:var(--shadow);
}
.cookie-banner.is-visible{display:block}
body.has-cookie{
  padding-bottom:5.5rem;
}
.cookie-inner{
  max-width:70rem;
  margin:auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
}
.cookie-inner p{font-size:.9rem;color:#D7E4E1}
.cookie-inner a{color:#fff}
.cookie-actions{display:flex;gap:.5rem;flex-shrink:0}
.cookie-actions button{
  min-height:44px;
  padding:.55rem .95rem;
  border-radius:12px;
  border:1px solid #A7C5BF;
  background:transparent;
  color:#fff;
  cursor:pointer;
  font-weight:600;
}
.cookie-actions .accept{
  background:var(--berry);
  border-color:var(--berry);
}

/* Reveals + motion layer */
.reveal{opacity:1;transform:none}
.js .reveal{
  opacity:0;
  transform:translateY(18px);
  transition:opacity .65s var(--ease),transform .65s var(--ease);
}
.js .reveal.is-visible{opacity:1;transform:none}
.has-gsap .reveal{
  transition:none;
}
.media-reveal{
  will-change:clip-path;
}
.media-reveal img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.button,
.nav-cta{
  will-change:transform;
}

/* Treatment ticker */
.treatment-ticker{
  border-block:1px solid var(--line);
  background:var(--paper);
  overflow:hidden;
  padding:1rem 0;
}
.treatment-ticker-inner{
  overflow:hidden;
  mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
}
.treatment-ticker-track{
  display:flex;
  gap:2.5rem;
  width:max-content;
  will-change:transform;
}
.treatment-ticker-track span{
  font:600 .82rem/1 var(--font-detail);
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--ink-soft);
  white-space:nowrap;
}
.treatment-ticker-track span::before{
  content:"";
  display:inline-block;
  width:.4rem;
  height:.4rem;
  margin-right:.75rem;
  border-radius:50%;
  background:var(--teal);
  vertical-align:middle;
}
.treatment-ticker.is-static .treatment-ticker-track{
  flex-wrap:wrap;
  width:auto;
  justify-content:center;
  gap:1rem 1.75rem;
  padding:0 1rem;
}

/* Responsive */
@media(max-width:1100px){
  .appointment-card{grid-template-columns:1.2fr 1fr 1fr; }
  .appointment-card .button{grid-column:1/-1;justify-self:start}
}
@media(max-width:1000px){
  .nav-links{
    position:fixed;
    inset:114px 0 auto;
    background:var(--canvas);
    padding:1rem 1.25rem 1.5rem;
    display:none;
    flex-direction:column;
    align-items:stretch;
    border-bottom:1px solid var(--line);
    max-height:calc(100vh - 114px);
    overflow:auto;
  }
  .nav-open .nav-links{display:flex}
  .nav-links a{font-size:1.05rem;padding:.9rem .75rem}
  .nav-toggle{display:flex;margin-left:auto}
  .nav-actions .button-secondary{display:none}
  .section-head,
  .finder,
  .editorial-grid,
  .contact-split,
  .two-col,
  .journey-grid{grid-template-columns:1fr}
  .finder aside{position:static}
  .footer-grid{grid-template-columns:1fr 1fr}
  .team-grid,.page-grid,.steps{grid-template-columns:1fr 1fr}
}
@media(max-width:760px){
  html{scroll-behavior:auto}
  .container{width:min(calc(100% - 1.5rem),var(--container))}
  .showcase-banner{font-size:.7rem;padding:.4rem .75rem}
  .nav{min-height:68px}
  .nav-actions .button{padding:.65rem .8rem;font-size:.8rem}
  .hero-media{min-height:40rem}
  .hero-media::after{
    background:
      linear-gradient(0deg,rgba(24,49,54,.78) 0%,rgba(24,49,54,.2) 55%,rgba(24,49,54,.12) 100%);
  }
  .hero-copy{padding:11.5rem 1.25rem 3.25rem}
  .appointment-card{
    margin-top:-2.25rem;
    grid-template-columns:1fr;
    width:min(calc(100% - 1.5rem),68rem);
  }
  .intent-grid,
  .page-grid,
  .principles,
  .trust-grid,
  .steps,
  .team-grid,
  .footer-grid{grid-template-columns:1fr}
  /* Mobile journey: vertical, no sticky trap */
  .js .journey-visual{
    display:grid;
    position:static;
    min-height:0;
    overflow:visible;
    gap:1rem;
    background:transparent;
  }
  .js .journey-state,
  .js .journey-state.is-active{
    position:static;
    opacity:1;
    visibility:visible;
    border-radius:var(--radius-md);
  }
  .journey-steps{display:none}
  .emergency-callout{grid-template-columns:1fr}
  form{grid-template-columns:1fr}
  .field-full{grid-column:auto}
  .footer-bottom,
  .cookie-inner{
    align-items:flex-start;
    flex-direction:column;
  }
  .cookie-banner{
    left:0;
    right:0;
    bottom:0;
    inset:auto 0 0;
    border-radius:0;
    padding:.9rem 1rem;
    padding-bottom:calc(.9rem + env(safe-area-inset-bottom, 0px));
  }
  body.has-cookie{
    padding-bottom:7.5rem;
  }
  .cookie-inner p{
    max-height:40vh;
    overflow:auto;
  }
  .cookie-actions{width:100%}
  .cookie-actions button{flex:1}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{
    scroll-behavior:auto!important;
    transition:none!important;
    animation:none!important;
  }
  .js .reveal{opacity:1;transform:none}
  .journey-grid{grid-template-columns:1fr}
  .js .journey-visual{
    position:static;
    display:grid;
    min-height:0;
    gap:1rem;
    background:transparent;
    overflow:visible;
  }
  .js .journey-state,
  .js .journey-state.is-active{
    position:static;
    opacity:1;
    visibility:visible;
    border-radius:var(--radius-md);
    background:#DCE9E6;
  }
  .journey-steps{display:none}
  .treatment-ticker-track{transform:none!important}
  .media-reveal{clip-path:none!important}
}
