/* RDA Autism & ADHD Practice */

:root{
  --navy:        #08003F;
  --navy-700:    #14094E;
  --navy-50:     #EEEDF5;
  --blue:        #004AAD;
  --blue-50:     #E9F0FB;
  --gold:        #F8CB2E;
  --gold-200:    #FFDE59;
  --gold-50:     #FFF7DA;
  --green:       #00BF63;
  --green-50:    #E5F8EE;

  --cream:       #FAF6EE;
  --sand:        #F2ECDD;
  --ink:         #0B0E1A;
  --muted:       #5C6377;
  --line:        #ECE6D6;
  --white:       #FFFFFF;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
html, body{ overflow-x:clip; max-width:100%; }
body{
  font-family:'Inter', system-ui, -apple-system, 'Helvetica Neue', sans-serif;
  color:var(--ink);
  background:#fff;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  font-feature-settings:'ss01','cv11';
}
.font-display{ font-family:'Fraunces', 'Georgia', serif; font-optical-sizing:auto; }

img{ max-width:100%; display:block; }

/* ── Layout ── */
.container-x{ width:100%; max-width:1240px; margin:0 auto; padding:0 28px; }
.container-narrow{ width:100%; max-width:880px; margin:0 auto; padding:0 28px; }
.section{ padding:128px 0; }
.section-sm{ padding:80px 0; }
@media (max-width:768px){
  .section{ padding:80px 0; }
  .section-sm{ padding:56px 0; }
  .container-x{ padding:0 22px; }
}

.eyebrow{
  display:inline-block; font-size:12px; letter-spacing:.18em;
  text-transform:uppercase; color:var(--blue); font-weight:600;
}

.h-display{
  font-family:'Fraunces', serif;
  font-weight:400;
  font-size:clamp(40px, 6.5vw, 88px);
  line-height:.98;
  letter-spacing:-.035em;
  color:var(--navy);
}
.h-display .it{ font-style:italic; font-weight:400; color:var(--navy); }
.h-display .gold-mark{
  background:linear-gradient(180deg, transparent 0% 64%, var(--gold-200) 64% 92%, transparent 92% 100%);
  padding:0 .12em;
}

.h-title{
  font-family:'Fraunces', serif;
  font-weight:400;
  font-size:clamp(32px, 4.5vw, 56px);
  line-height:1.02;
  letter-spacing:-.025em;
  color:var(--navy);
}
.h-title .it{ font-style:italic; }

.h-subtitle{
  color:var(--muted); font-size:19px; max-width:640px; line-height:1.55;
}

.lede{
  font-size:22px; line-height:1.45; color:var(--muted); max-width:640px; letter-spacing:-.01em;
}

/* ── Buttons ── */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  padding:14px 26px; border-radius:999px; font-weight:500;
  transition:transform .18s ease, background .18s, color .18s, border-color .18s;
  font-size:15px; letter-spacing:-.005em; white-space:nowrap; cursor:pointer;
  text-decoration:none; border:1px solid transparent; line-height:1;
}
.btn:active{ transform:translateY(1px); }
.btn-primary{ background:var(--navy); color:#fff; }
.btn-primary:hover{ background:var(--navy-700); }
.btn-gold{ background:var(--gold); color:var(--navy); }
.btn-gold:hover{ background:var(--gold-200); }
.btn-outline{ background:transparent; color:var(--navy); border-color:var(--navy); }
.btn-outline:hover{ background:var(--navy); color:#fff; }
.btn-ghost{ background:transparent; color:var(--ink); }
.btn-ghost:hover{ background:var(--cream); }
.btn-lg{ padding:18px 32px; font-size:16px; }
.btn-sm{ padding:11px 20px; font-size:14px; }

/* ── Header ── */
.site-header{
  background:rgba(255,255,255,.86);
  backdrop-filter:saturate(160%) blur(18px);
  -webkit-backdrop-filter:saturate(160%) blur(18px);
  position:sticky; top:0; z-index:50;
  border-bottom:1px solid rgba(8,0,63,.06);
}
.header-row{
  display:flex; align-items:center; justify-content:space-between;
  padding:18px 28px; gap:24px; max-width:1240px; margin:0 auto;
}
.nav-link{
  position:relative; font-size:15px; color:var(--ink); font-weight:400;
  text-decoration:none; padding:6px 2px; transition:color .15s;
}
.nav-link:hover{ color:var(--navy); }
.nav-link.active{ color:var(--navy); }
.nav-link.active::after{
  content:''; position:absolute; left:0; right:0; bottom:-4px; height:2px;
  background:var(--navy); border-radius:1px;
}

.nav-desktop{ display:none; }
@media (min-width:1024px){
  .nav-desktop{ display:flex; align-items:center; gap:32px; }
}

.rda-logo{ display:inline-flex; align-items:center; text-decoration:none; }
.rda-logo img{ height:42px; width:auto; display:block; }

.menu-toggle{
  width:44px; height:44px; border-radius:12px;
  display:flex; align-items:center; justify-content:center;
  background:transparent; color:var(--navy); border:1px solid var(--line); cursor:pointer;
  transition:.18s;
}
.menu-toggle:hover{ background:var(--cream); }
@media (min-width:1024px){ .menu-toggle{ display:none; } }

.mobile-panel{
  position:fixed; inset:0; z-index:60;
  background:#fff;
  transform:translateX(100%); transition:transform .32s cubic-bezier(.4,0,.2,1);
  display:flex; flex-direction:column;
}
.mobile-panel.open{ transform:translateX(0); }
.mobile-panel .mp-head{
  display:flex; justify-content:space-between; align-items:center;
  padding:18px 22px; border-bottom:1px solid var(--line);
}
.mobile-panel .mp-links{
  display:flex; flex-direction:column; padding:24px 22px;
  gap:2px; flex:1;
}
.mobile-panel .mp-links a{
  display:flex; justify-content:space-between; align-items:center;
  padding:22px 0; font-size:26px; font-family:'Fraunces', serif;
  color:var(--navy); text-decoration:none;
  border-bottom:1px solid var(--line); font-weight:400; letter-spacing:-.02em;
}
.mobile-panel .mp-links a:last-child{ border-bottom:none; }
.mobile-panel .mp-foot{ padding:22px; display:flex; flex-direction:column; gap:10px; border-top:1px solid var(--line); }

/* ── Hero ── */
.hero{
  position:relative; overflow:hidden;
  background:var(--cream);
  padding:96px 0 112px;
}
@media (max-width:768px){ .hero{ padding:64px 0 80px; } }

.hero-grid{
  display:grid; grid-template-columns:1fr; gap:60px; align-items:center;
}
@media (min-width:1024px){
  .hero-grid{ grid-template-columns:1.1fr 1fr; gap:80px; }
}

.hero-h{
  font-family:'Fraunces', serif; font-weight:400;
  font-size:clamp(44px, 7vw, 92px);
  line-height:.96; letter-spacing:-.04em;
  color:var(--navy);
  margin:24px 0 28px;
}
.hero-h .it{ font-style:italic; }
.hero-h .mk{
  background:linear-gradient(180deg, transparent 0% 66%, var(--gold-200) 66% 94%, transparent 94% 100%);
  padding:0 .08em;
}

.hero-sub{
  font-size:20px; line-height:1.5; color:var(--muted); max-width:520px;
  letter-spacing:-.005em;
}

.hero-actions{
  display:flex; flex-wrap:wrap; gap:10px; margin-top:36px;
}

.hero-photo{
  position:relative;
  aspect-ratio:4/5;
  border-radius:24px; overflow:hidden;
  background:var(--navy);
}
.hero-photo img{ width:100%; height:100%; object-fit:cover; }

/* ── Credential strip ── */
.creds{
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding:36px 0;
  background:#fff;
}
.creds-label{
  font-size:11px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--muted); font-weight:600; text-align:center; margin-bottom:24px;
}
.creds-grid{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:24px 36px;
}
.creds-grid img{
  height:36px !important;
  width:auto !important;
  max-width:110px !important;
  object-fit:contain;
  opacity:.7;
  filter:grayscale(60%);
  transition:opacity .2s, filter .2s;
  flex-shrink:0;
}
.creds-grid img:hover{ opacity:1; filter:grayscale(0%); }
@media (min-width:768px){
  .creds-grid{ gap:32px 48px; }
  .creds-grid img{ height:44px !important; max-width:130px !important; }
}

/* ── Sections ── */
.kicker{
  display:flex; align-items:baseline; gap:14px;
  margin-bottom:48px;
}
.kicker .num{
  font-family:'Fraunces', serif; font-weight:400; font-style:italic;
  font-size:18px; color:var(--blue);
  min-width:36px;
}
.kicker .lbl{
  font-size:13px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--muted); font-weight:600;
}
.kicker .line{
  flex:1; height:1px; background:var(--line);
}

/* Two-col layout */
.two-col{ display:grid; grid-template-columns:1fr; gap:56px; align-items:start; }
@media (min-width:1024px){ .two-col{ grid-template-columns:1fr 1.1fr; gap:96px; } }
.two-col h2{
  font-family:'Fraunces', serif; font-size:clamp(34px, 4.4vw, 52px);
  font-weight:400; line-height:1.02; letter-spacing:-.03em; color:var(--navy);
}
.two-col h2 .it{ font-style:italic; }
.two-col p{ color:var(--muted); font-size:17px; line-height:1.65; margin-top:18px; }

/* ── Pillars (Why) ── */
.pillars{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:1px; background:var(--line); border:1px solid var(--line); border-radius:24px; overflow:hidden;
}
.pillar{
  background:#fff; padding:40px 32px;
}
.pillar-num{
  font-family:'Fraunces', serif; font-weight:400; font-style:italic;
  font-size:16px; color:var(--blue); margin-bottom:16px;
}
.pillar-title{
  font-family:'Fraunces', serif; font-weight:500; font-size:24px;
  color:var(--navy); margin-bottom:14px; letter-spacing:-.02em; line-height:1.1;
}
.pillar-text{ color:var(--muted); font-size:15.5px; line-height:1.62; }

/* ── Team ── */
.team-grid{
  display:grid; grid-template-columns:1fr; gap:80px;
}
@media (min-width:1024px){ .team-grid{ grid-template-columns:1fr 1fr; gap:48px; } }

.team-card{ display:block; }
.team-card .photo{
  aspect-ratio:4/5;
  border-radius:24px; overflow:hidden; background:var(--navy);
}
.team-card .photo img{ width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.team-card:hover .photo img{ transform:scale(1.03); }
.team-card .meta{ padding-top:28px; }
.team-card .role{
  font-size:13px; color:var(--muted); font-weight:500;
  letter-spacing:.04em; margin-bottom:10px;
}
.team-card .name{
  font-family:'Fraunces', serif; font-size:36px; font-weight:400;
  color:var(--navy); letter-spacing:-.025em; line-height:1.05;
}
.team-card .bio{ font-size:16px; color:var(--muted); margin-top:16px; line-height:1.6; max-width:520px; }

/* Compact horizontal team card (home page preview) */
.team-compact{
  display:grid; grid-template-columns:120px 1fr; gap:24px;
  align-items:start;
  padding:24px; border:1px solid var(--line); border-radius:20px;
  background:#fff; transition:border-color .2s, transform .2s;
}
.team-compact:hover{ border-color:var(--blue); transform:translateY(-2px); }
.team-compact .photo{
  width:120px; height:120px;
  border-radius:16px; overflow:hidden;
  background:var(--navy); flex-shrink:0;
}
.team-compact .photo img{ width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.team-compact:hover .photo img{ transform:scale(1.05); }
.team-compact .meta{ padding-top:2px; min-width:0; }
.team-compact .role{
  font-size:12px; color:var(--muted); font-weight:500;
  letter-spacing:.04em;
}
.team-compact .name{
  font-family:'Fraunces', serif; font-size:24px; font-weight:500;
  color:var(--navy); letter-spacing:-.025em; line-height:1.1; margin-top:6px;
}
.team-compact .bio{
  font-size:14.5px; color:var(--muted); margin-top:12px;
  line-height:1.55;
}
.team-compact .bio-link{
  display:inline-block; margin-top:12px;
  font-size:13px; color:var(--blue); font-weight:500;
  text-decoration:none; border-bottom:1px solid rgba(0,74,173,.3);
}
.team-compact .bio-link:hover{ border-color:var(--blue); }

@media (max-width:520px){
  .team-compact{ grid-template-columns:88px 1fr; gap:18px; padding:20px; }
  .team-compact .photo{ width:88px; height:88px; border-radius:12px; }
  .team-compact .name{ font-size:21px; }
}

/* Big bio block */
.bio-block{
  display:grid; grid-template-columns:1fr; gap:48px; align-items:start;
}
@media (min-width:980px){ .bio-block{ grid-template-columns:.9fr 1.2fr; gap:80px; } }
.bio-photo{ position:relative; max-width:480px; }
.bio-photo .img-wrap{
  aspect-ratio:4/5;
  border-radius:24px; overflow:hidden;
  background:var(--navy);
}
.bio-photo img{ width:100%; height:100%; object-fit:cover; }
.bio-meta-role{
  font-size:13px; color:var(--muted); font-weight:500; letter-spacing:.04em;
}
.bio-name{
  font-family:'Fraunces', serif; font-size:clamp(44px, 5.5vw, 68px); font-weight:400;
  color:var(--navy); letter-spacing:-.035em; line-height:1; margin-top:12px;
}
.bio-text{
  font-size:18px; color:var(--muted); line-height:1.65; margin-top:24px; max-width:560px;
}
.bio-text + .bio-text{ margin-top:16px; }

/* ── Process ── */
.steps{
  display:grid; grid-template-columns:1fr; gap:1px;
  background:var(--line);
  border:1px solid var(--line);
  border-radius:24px; overflow:hidden;
}
@media (min-width:768px){ .steps{ grid-template-columns:repeat(3,1fr); } }
.step{
  background:#fff;
  padding:48px 36px;
}
.step .num{
  font-family:'Fraunces', serif; font-weight:400; font-style:italic;
  font-size:14px; color:var(--blue); letter-spacing:.06em;
  margin-bottom:20px;
}
.step .title{
  font-family:'Fraunces', serif; font-weight:500; font-size:26px;
  color:var(--navy); margin-bottom:14px; letter-spacing:-.02em; line-height:1.1;
}
.step .text{ color:var(--muted); font-size:16px; line-height:1.62; }

/* ── Fees ── */
.fee-block{
  background:#fff; border:1px solid var(--line); border-radius:24px;
  padding:36px; margin-bottom:24px;
}
.fee-block-title{
  font-family:'Fraunces', serif; font-size:28px; font-weight:500;
  color:var(--navy); letter-spacing:-.025em; margin-bottom:8px; line-height:1.1;
}
.fee-block-sub{ color:var(--muted); font-size:15.5px; margin-bottom:24px; line-height:1.65; max-width:640px; }
.fee-row{
  display:grid; grid-template-columns:1fr; gap:12px;
  padding:24px 0; border-top:1px solid var(--line);
}
@media (min-width:640px){
  .fee-row{ grid-template-columns:1.2fr 1.3fr .8fr; align-items:center; gap:24px; }
}
.fee-label{ font-weight:500; color:var(--navy); font-size:16.5px; letter-spacing:-.01em; }
.fee-tag{ font-size:11px; color:var(--muted); text-transform:uppercase; letter-spacing:.18em; font-weight:600; margin-bottom:4px; }
.fee-format{ font-size:14.5px; color:var(--muted); }
.fee-price{
  font-family:'Fraunces', serif; font-weight:400; font-size:28px;
  color:var(--navy); letter-spacing:-.02em;
}
.fee-note{ font-size:14px; color:var(--muted); margin-top:20px; padding-top:20px; border-top:1px solid var(--line); }

/* ── Hero trust strip (small badges) ── */
.hero-trust{
  margin-top:40px;
  display:flex; flex-wrap:wrap; gap:10px 28px;
  font-size:13.5px; color:var(--ink); font-weight:500;
}
.hero-trust .t{ display:inline-flex; align-items:center; gap:8px; letter-spacing:-.005em; }
.hero-trust .t::before{
  content:''; width:6px; height:6px; border-radius:50%;
  background:var(--green); flex-shrink:0;
}

/* ── Map embed ── */
.map-wrap{
  aspect-ratio:5/3;
  border-radius:16px; overflow:hidden;
  background:var(--cream);
  border:1px solid var(--line);
}
.map-wrap iframe{ width:100%; height:100%; border:0; display:block; }

/* ── Location stack (photo + map) ── */
.loc-visual{
  display:flex; flex-direction:column; gap:14px;
}
.loc-visual .img-wrap{ aspect-ratio:5/4; border-radius:20px; overflow:hidden; background:var(--navy); }
.loc-visual .img-wrap img{ width:100%; height:100%; object-fit:cover; }

/* ── Process visual ── */
.process-hero{
  display:grid; grid-template-columns:1fr; gap:48px; align-items:center;
  margin-bottom:80px;
}
@media (min-width:980px){ .process-hero{ grid-template-columns:1.1fr 1fr; gap:80px; } }
.process-hero .img-wrap{
  aspect-ratio:5/4;
  border-radius:24px; overflow:hidden;
  background:var(--cream);
}
.process-hero .img-wrap img{ width:100%; height:100%; object-fit:cover; }

/* ── Credential pills ── */
.cred-pills{
  display:flex; flex-wrap:wrap; gap:8px; margin-top:24px;
}
.cred-pill{
  font-size:12px; letter-spacing:.04em;
  color:var(--navy); background:var(--cream);
  padding:8px 14px; border-radius:999px;
  border:1px solid var(--line);
  font-weight:500;
}

/* ── Square aspect override (for small source photos) ── */
.bio-photo .img-wrap.square{ aspect-ratio:1/1; }
.team-card .photo.square{ aspect-ratio:1/1; }

/* ── Locations ── */
.loc-grid{
  display:grid; grid-template-columns:1fr; gap:32px;
}
@media (min-width:768px){ .loc-grid{ grid-template-columns:repeat(3,1fr); gap:24px; } }

.loc-card{
  display:flex; flex-direction:column;
}
.loc-photo{
  aspect-ratio:5/4;
  border-radius:20px; overflow:hidden; background:var(--navy);
}
.loc-photo img{ width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.loc-card:hover .loc-photo img{ transform:scale(1.04); }

.loc-meta{ padding-top:24px; }
.loc-tag{ font-size:12px; color:var(--muted); font-weight:500; letter-spacing:.06em; }
.loc-name{
  font-family:'Fraunces', serif; font-size:32px; font-weight:400;
  color:var(--navy); letter-spacing:-.025em; margin-top:8px; line-height:1;
}
.loc-info{ margin-top:18px; }
.loc-info p{ font-size:15.5px; color:var(--muted); margin:6px 0; line-height:1.55; }
.loc-info strong{ color:var(--navy); font-weight:500; }
.loc-info a{ color:var(--navy); font-weight:500; text-decoration:none; border-bottom:1px solid rgba(8,0,63,.2); transition:border-color .15s; }
.loc-info a:hover{ border-color:var(--navy); }

/* ── Forms ── */
.form-grid{ display:grid; grid-template-columns:1fr; gap:16px; }
@media (min-width:640px){ .form-grid{ grid-template-columns:1fr 1fr; } }
.input, .textarea, select.input{
  width:100%; padding:16px 18px; border-radius:12px;
  border:1px solid var(--line); background:#fff;
  font-size:15.5px; color:var(--ink); font-family:inherit;
  transition:border-color .15s, box-shadow .15s;
  -webkit-appearance:none; appearance:none;
}
.input:focus, .textarea:focus, select.input:focus{
  outline:none; border-color:var(--navy); box-shadow:0 0 0 3px rgba(8,0,63,.08);
}
.textarea{ min-height:140px; resize:vertical; }
.label{ font-size:13px; font-weight:500; color:var(--ink); margin-bottom:8px; display:block; letter-spacing:-.005em; }

/* ── Callback band ── */
.cta-band{
  background:var(--navy); color:#fff;
  border-radius:24px; padding:80px 56px;
}
.cta-band h2{ font-family:'Fraunces', serif; font-size:clamp(36px,4.8vw,60px); font-weight:400; line-height:1.02; letter-spacing:-.03em; color:#fff; }
.cta-band h2 .it{ font-style:italic; color:var(--gold-200); }
.cta-band p{ color:rgba(255,255,255,.78); font-size:18px; margin-top:18px; max-width:540px; line-height:1.5; }

@media (max-width:640px){ .cta-band{ padding:48px 28px; border-radius:20px; } }

/* ── Feedback band ── */
.feedback-band{
  background:var(--cream); border-radius:24px; padding:64px 56px;
}
.feedback-band h2{ color:var(--navy); font-family:'Fraunces',serif; font-size:clamp(30px,3.5vw,42px); font-weight:400; line-height:1.05; letter-spacing:-.025em; }
.feedback-band h2 .it{ font-style:italic; }

@media (max-width:640px){ .feedback-band{ padding:40px 28px; } }

/* ── Footer ── */
.site-footer{
  background:var(--navy); color:rgba(255,255,255,.7);
  padding:96px 0 36px;
}
.site-footer h4{
  color:#fff; font-size:13px; font-weight:600;
  margin-bottom:20px; letter-spacing:.06em; text-transform:uppercase;
}
.site-footer a{ color:rgba(255,255,255,.7); text-decoration:none; transition:color .15s; font-size:14.5px; }
.site-footer a:hover{ color:#fff; }
.site-footer .crisis{
  border:1px solid rgba(255,255,255,.12);
  border-radius:18px; padding:28px 32px; margin-bottom:64px;
}
.site-footer .crisis h4{ color:var(--gold-200); margin-bottom:12px; font-size:13px; }
.site-footer .crisis p{ color:rgba(255,255,255,.72); font-size:14.5px; line-height:1.6; margin:0; }
.site-footer .crisis strong{ color:#fff; font-weight:500; }

.footer-grid{
  display:grid; grid-template-columns:1fr; gap:48px;
}
@media (min-width:768px){
  .footer-grid{ grid-template-columns:2fr 1fr 1fr 1fr; gap:48px; }
}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.1); padding-top:28px; margin-top:64px;
  display:flex; flex-wrap:wrap; justify-content:space-between; gap:14px;
  font-size:13px; color:rgba(255,255,255,.5);
}
.footer-bottom .built-by{ color:rgba(255,255,255,.6); }
.footer-bottom .built-by a{
  color:var(--gold-200); font-weight:500; text-decoration:none;
  border-bottom:1px solid rgba(255,222,89,.35);
  font-size:13px;
}
.footer-bottom .built-by a:hover{ border-color:var(--gold-200); }

/* ── Inline success banner (after form post) ── */
.form-success{
  display:none; padding:18px 22px; border-radius:14px;
  background:var(--green-50); border:1px solid var(--green);
  color:var(--navy); font-size:15px; line-height:1.5; margin-bottom:24px;
}
.form-success.show{ display:flex; gap:12px; align-items:flex-start; }
.form-success .ok{
  width:24px; height:24px; border-radius:50%; background:var(--green);
  color:#fff; display:flex; align-items:center; justify-content:center;
  font-size:14px; font-weight:600; flex-shrink:0;
}
.form-success strong{ color:var(--navy); font-weight:600; }

.site-footer .rda-logo img{ filter:brightness(0) invert(1); height:48px; }

/* ── Page hero ── */
.page-hero{
  background:var(--cream);
  padding:96px 0 64px;
}
.page-hero .crumbs{
  font-size:12px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--blue); font-weight:600; margin-bottom:24px;
}
.page-hero h1{
  font-family:'Fraunces', serif; font-weight:400;
  font-size:clamp(48px, 7vw, 88px); line-height:.96; letter-spacing:-.04em;
  color:var(--navy); max-width:14ch;
}
.page-hero h1 .it{ font-style:italic; }
.page-hero h1 .mk{
  background:linear-gradient(180deg, transparent 0% 66%, var(--gold-200) 66% 94%, transparent 94% 100%);
  padding:0 .08em;
}
.page-hero p{ font-size:20px; color:var(--muted); margin-top:24px; max-width:560px; line-height:1.5; }

/* ── FAQ ── */
details.faq{ border-bottom:1px solid var(--line); padding:4px 0; }
details.faq summary{
  cursor:pointer; list-style:none; padding:24px 0; font-weight:500;
  color:var(--navy); display:flex; justify-content:space-between; align-items:center;
  font-size:18px; gap:24px; letter-spacing:-.01em;
}
details.faq summary::-webkit-details-marker{ display:none; }
details.faq summary::after{ content:''; width:14px; height:14px; flex-shrink:0;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23004AAD' stroke-width='2'><path d='M12 5v14M5 12h14'/></svg>") center/contain no-repeat;
  transition:transform .25s; }
details.faq[open] summary::after{ transform:rotate(45deg); }
details.faq .faq-body{ padding:0 0 24px; color:var(--muted); line-height:1.65; font-size:16px; max-width:720px; }

/* ── Media card ── */
.media-card{
  display:grid; grid-template-columns:1fr; gap:48px; align-items:center;
}
@media (min-width:980px){ .media-card{ grid-template-columns:1fr 1fr; gap:80px; } }
.media-card .img-wrap{
  aspect-ratio:5/4;
  border-radius:20px; overflow:hidden;
  background:var(--navy);
}
.media-card .img-wrap img{ width:100%; height:100%; object-fit:cover; }

/* ── Misc ── */
.reveal{ opacity:0; transform:translateY(20px); transition:opacity .7s ease, transform .7s ease; }
.reveal.in{ opacity:1; transform:translateY(0); }

.toast{
  position:fixed; bottom:24px; left:50%; transform:translateX(-50%) translateY(20px);
  background:var(--navy); color:#fff; padding:14px 22px; border-radius:999px;
  font-size:14px; font-weight:500; opacity:0; pointer-events:none;
  transition:.25s; z-index:200;
  display:flex; gap:10px; align-items:center;
}
.toast.show{ opacity:1; transform:translateX(-50%) translateY(0); }

.section-head{ max-width:780px; margin:0 auto 72px; }
.section-head.center{ text-align:center; }
.section-head .h-title{ margin-top:18px; }
.section-head .h-subtitle{ margin:22px auto 0; }

.divider{ border-top:1px solid var(--line); }

/* Small responsive helpers */
@media (max-width:767px){
  .hide-sm{ display:none !important; }
}

/* ── Inline mid-page CTA ── */
.cta-inline{
  display:grid; grid-template-columns:1fr; gap:24px;
  padding:36px 40px; border-radius:24px;
  background:var(--cream); border:1px solid var(--line);
  align-items:center;
}
@media(min-width:768px){
  .cta-inline{ grid-template-columns:1fr auto; gap:48px; padding:40px 48px; }
}
.cta-inline-label{ font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--blue); font-weight:600; margin:0; }
.cta-inline-title{ font-family:'Fraunces', serif; font-size:clamp(22px,2.6vw,30px); font-weight:500; color:var(--navy); letter-spacing:-.025em; margin:8px 0 0; line-height:1.1; }

/* ── Sticky mobile CTA bar (conversion) ── */
.sticky-cta{
  display:none;
  position:fixed; left:0; right:0; bottom:0;
  z-index:45;
  background:rgba(255,255,255,.94);
  backdrop-filter:saturate(160%) blur(14px);
  -webkit-backdrop-filter:saturate(160%) blur(14px);
  border-top:1px solid var(--line);
  padding:10px 16px calc(10px + env(safe-area-inset-bottom));
  gap:8px;
  box-shadow:0 -8px 28px rgba(8,0,63,.08);
}
.sticky-cta .btn{ flex:1; padding:14px 18px; font-size:15px; }
.sticky-cta .btn-icon{ flex:0 0 auto; padding:14px; }
.sticky-cta .btn-icon svg{ width:18px; height:18px; }
@media (max-width:768px){
  .sticky-cta{ display:flex; }
  body{ padding-bottom:78px; }
  .site-footer{ padding-bottom:96px; }
}

/* ── NHS comparison strip ── */
.compare{
  display:grid; grid-template-columns:1fr; gap:16px;
  margin-top:48px;
}
@media (min-width:768px){ .compare{ grid-template-columns:1fr 1fr; gap:0; } }
.compare-col{
  background:#fff; border:1px solid var(--line);
  padding:36px;
}
.compare-col:first-child{ border-radius:24px 24px 0 0; }
.compare-col:last-child{ border-radius:0 0 24px 24px; border-top:0; }
@media (min-width:768px){
  .compare-col:first-child{ border-radius:24px 0 0 24px; border-right:0; }
  .compare-col:last-child{ border-radius:0 24px 24px 0; border-top:1px solid var(--line); }
}
.compare-col.rda{ background:var(--navy); color:#fff; border-color:var(--navy); }
.compare-col .compare-label{
  font-size:12px; letter-spacing:.18em; text-transform:uppercase; font-weight:600;
  color:var(--muted);
}
.compare-col.rda .compare-label{ color:var(--gold-200); }
.compare-col .compare-name{
  font-family:'Fraunces', serif; font-size:26px; font-weight:500;
  letter-spacing:-.025em; margin-top:8px; line-height:1.1;
}
.compare-col.rda .compare-name{ color:#fff; }
.compare-col .compare-list{
  list-style:none; padding:0; margin:24px 0 0;
  display:flex; flex-direction:column; gap:14px;
}
.compare-col .compare-list li{
  display:flex; gap:12px; align-items:flex-start;
  font-size:15.5px; line-height:1.5;
  color:var(--muted);
}
.compare-col.rda .compare-list li{ color:rgba(255,255,255,.85); }
.compare-col .compare-list li::before{
  content:''; width:18px; height:18px; flex-shrink:0; margin-top:2px;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235C6377' stroke-width='2.4' stroke-linecap='round'><line x1='5' y1='12' x2='19' y2='12'/></svg>");
  background-repeat:no-repeat; background-position:center;
}
.compare-col.rda .compare-list li::before{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F8CB2E' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>");
}

/* ── Inline "what's included" ── */
.inclusions{
  display:grid; grid-template-columns:1fr; gap:14px;
  margin-top:28px; padding:24px; border-radius:18px;
  background:var(--cream); border:1px solid var(--line);
}
@media (min-width:640px){ .inclusions{ grid-template-columns:1fr 1fr; } }
.inclusion{ display:flex; gap:12px; align-items:flex-start; font-size:14.5px; color:var(--ink); }
.inclusion::before{
  content:''; width:18px; height:18px; flex-shrink:0; margin-top:2px;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300BF63' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>");
  background-repeat:no-repeat; background-position:center;
}

/* ── Booking modal ── */
.bk-modal{
  position:fixed; inset:0; z-index:200;
  display:none; align-items:center; justify-content:center;
  padding:24px;
}
.bk-modal.open{ display:flex; }
.bk-backdrop{
  position:absolute; inset:0;
  background:rgba(8,0,63,.65);
  backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  animation:bkFade .25s ease;
}
@keyframes bkFade{ from{ opacity:0 } to{ opacity:1 } }
@keyframes bkRise{ from{ opacity:0; transform:translateY(20px) scale(.985) } to{ opacity:1; transform:translateY(0) scale(1) } }
.bk-panel{
  position:relative; z-index:2;
  background:#fff; border-radius:24px;
  width:100%; max-width:560px;
  max-height:min(92vh, 760px);
  overflow:hidden; overflow-y:auto;
  box-shadow:0 30px 90px rgba(0,0,0,.35);
  animation:bkRise .35s cubic-bezier(.2,.8,.2,1);
}
.bk-panel-wide{
  max-width:840px;
  height:min(92vh, 820px);
  display:flex; flex-direction:column;
  overflow:hidden;
}
.bk-head{
  display:flex; justify-content:space-between; align-items:start;
  gap:24px; padding:28px 32px 18px;
  border-bottom:1px solid var(--line);
}
.bk-title-sm{
  font-family:'Fraunces', serif; font-weight:400;
  font-size:22px; line-height:1.2; letter-spacing:-.02em;
  color:var(--navy); margin:6px 0 0;
}
.bk-iframe-wrap{
  flex:1; position:relative; background:var(--cream);
}
.bk-iframe-wrap iframe{
  position:absolute; inset:0;
  width:100%; height:100%; border:0; display:block;
}
.bk-iframe-loading{
  position:absolute; inset:0; z-index:1;
  display:flex; align-items:center; justify-content:center;
  color:var(--muted); font-size:14px;
}
.bk-close{
  position:absolute; top:14px; right:14px; z-index:3;
  width:40px; height:40px; border-radius:50%;
  background:rgba(8,0,63,.06); border:none;
  display:flex; align-items:center; justify-content:center;
  color:var(--navy); cursor:pointer; transition:background .15s;
}
.bk-close:hover{ background:rgba(8,0,63,.12); }
.bk-body{ padding:48px 40px 40px; }
.bk-eyebrow{
  font-size:11px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--blue); font-weight:600;
}
.bk-title{
  font-family:'Fraunces', serif; font-weight:400;
  font-size:clamp(28px, 4vw, 38px); line-height:1.05; letter-spacing:-.03em;
  color:var(--navy); margin:12px 0 10px;
}
.bk-sub{ color:var(--muted); font-size:15.5px; line-height:1.55; margin-bottom:24px; }
.bk-form{ display:flex; flex-direction:column; gap:14px; }
.bk-grid{ display:grid; grid-template-columns:1fr; gap:14px; }
@media (min-width:520px){ .bk-grid{ grid-template-columns:1fr 1fr; } }
.bk-fineprint{ font-size:12.5px; color:var(--muted); line-height:1.5; margin-top:8px; }
.bk-fineprint a{ color:var(--navy); text-decoration:none; border-bottom:1px solid rgba(8,0,63,.25); }

@media (max-width:520px){
  .bk-modal{ padding:0; }
  .bk-panel{ max-width:none; border-radius:20px 20px 0 0; max-height:96vh; margin-top:auto; }
  .bk-body{ padding:40px 24px 32px; }
  .bk-title{ font-size:26px; }
  .bk-panel-wide{ height:100vh; max-height:100vh; border-radius:0; }
  .bk-head{ padding:18px 20px 14px; }
  .bk-title-sm{ font-size:18px; }
}

/* Hero text doesn't overshoot tiny phones */
@media (max-width:380px){
  .hero-h{ font-size:42px !important; letter-spacing:-.03em; }
  .h-display, .h-title{ letter-spacing:-.02em; }
  .container-x{ padding:0 18px; }
}

/* Ensure card content never overflows on phones */
.fee-block, .card, .feedback-band, .cta-band{ max-width:100%; }
.fee-row > * { min-width:0; }
.fee-price{ word-break:keep-all; }

/* Mobile tweak - kicker line shouldn't wrap weirdly */
@media (max-width:480px){
  .kicker{ flex-wrap:wrap; gap:8px; margin-bottom:32px; }
  .kicker .line{ display:none; }
  .section{ padding:64px 0; }
}

/* CTA stack on small */
@media (max-width:640px){
  .cta-band p{ font-size:16px; }
  .feedback-band h2{ font-size:26px; }
}
