@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Sora:wght@500;600;700&display=swap");

:root {
  --navy:#0b2034; --navy-2:#153b52; --teal:#1c6675; --ink:#20384a; --cream:#f5f1e8;
  --white:#fff; --ice:#e9e0d2; --gold:#edb63e; --action:#edb63e;
  --muted:#5b6e78; --line:rgba(17,32,43,.16); --content:1180px;
  --display:"Sora",Arial,sans-serif; --body:"DM Sans",Arial,sans-serif;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; overflow-x:clip; }
body { margin:0; overflow-x:clip; color:var(--ink); background:var(--cream); font:18px/1.55 var(--body); }
img { display:block; max-width:100%; }
a { color:inherit; }
h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { font-family:var(--display); letter-spacing:-.04em; text-wrap:balance; }
h2 { margin-bottom:24px; font-size:clamp(2.4rem,5vw,4.7rem); line-height:1.02; }
h3 { font-size:clamp(1.45rem,2.2vw,2.2rem); line-height:1.08; }
p { text-wrap:pretty; }
.section { padding:clamp(76px,9vw,126px) max(22px,calc((100vw - var(--content))/2)); }
.dark { background:var(--navy); color:white; }
.dark h2,.dark h3 { color:white; }
.kicker { margin-bottom:18px; color:var(--teal); font-size:13px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; }
.dark .kicker { color:var(--action); }
.button { display:inline-flex; min-height:58px; align-items:center; justify-content:center; gap:14px; padding:16px 24px; border:0; border-radius:2px; font-weight:700; line-height:1.15; text-align:center; text-decoration:none; transition:transform .18s ease,filter .18s ease; }
.button:hover { transform:translateY(-2px); filter:brightness(1.04); }
.button:focus-visible,a:focus-visible,summary:focus-visible { outline:3px solid var(--gold); outline-offset:4px; }
.button-primary,.button-small,.mobile-cta { background:var(--action); color:var(--navy); box-shadow:0 12px 30px rgba(0,0,0,.2); }
.button-small { min-height:44px; padding:10px 18px; font-size:15px; }
.site-header { position:sticky; z-index:30; top:0; display:flex; min-height:76px; align-items:center; justify-content:space-between; gap:24px; padding:10px max(20px,calc((100vw - var(--content))/2)); border-bottom:1px solid rgba(255,255,255,.12); background:rgba(7,26,44,.97); }
.brand { display:flex; align-items:center; gap:18px; color:white; text-decoration:none; }
.brand img { width:220px; }
.brand span { padding-left:18px; border-left:1px solid rgba(255,255,255,.3); font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.hero { display:grid; min-height:calc(100svh - 76px); grid-template-columns:1.05fr .95fr; grid-template-rows:minmax(0,1fr) auto auto; background:var(--navy); color:white; }
.hero-copy { grid-column:1; grid-row:1; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; padding:clamp(30px,4vh,60px) clamp(30px,5vw,72px) clamp(30px,4vh,60px) max(24px,calc((100vw - var(--content))/2)); }
.hero .kicker { color:var(--action); }
h1 { max-width:720px; margin-bottom:28px; font-size:clamp(3.4rem,min(6vw,9svh),7rem); line-height:.94; }
h1 em { display:block; margin-top:10px; color:var(--action); font-style:normal; }
.hero-lede { max-width:650px; margin-bottom:34px; color:#d7e4e8; font-size:clamp(1.1rem,1.7vw,1.4rem); }
.microcopy { margin:14px 0 0; color:#a9bec7; font-size:13px; }
.hero-visual { position:relative; grid-column:2; grid-row:1; min-height:0; margin:0; overflow:hidden; background:var(--navy-2); }
.hero-visual:after { position:absolute; inset:0; background:linear-gradient(0deg,rgba(7,26,44,.9),transparent 48%); content:""; }
.hero-visual img { width:100%; height:100%; object-fit:cover; object-position:59% center; }
.hero-visual figcaption { position:absolute; z-index:1; right:32px; bottom:32px; left:32px; display:grid; gap:4px; }
.hero-visual strong { font:600 clamp(1.2rem,2vw,1.7rem)/1.1 var(--display); }
.hero-visual span { color:#dbe7ea; font-size:15px; }
.proof-rail { grid-column:1/-1; grid-row:2; display:grid; grid-template-columns:repeat(4,1fr); background:white; }
.proof-rail strong { display:grid; min-height:92px; place-items:center; padding:20px; border-right:1px solid var(--line); color:var(--navy); font-size:14px; letter-spacing:.03em; text-align:center; }
.signal-rail { grid-column:1/-1; grid-row:3; display:flex; overflow:hidden; justify-content:center; background:var(--action); }
.signal-rail span { padding:14px 22px; color:var(--navy); font-size:11px; font-weight:700; letter-spacing:.13em; white-space:nowrap; }
.signal-rail span+span:before { margin-right:42px; content:"+"; }
.section-heading { display:grid; max-width:860px; margin-bottom:clamp(42px,6vw,72px); }
.section-heading>p:last-child { max-width:680px; color:var(--muted); font-size:1.1rem; }
.section-heading.compact { max-width:760px; }
.offer-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.offer-card { position:relative; min-height:390px; padding:clamp(30px,4vw,52px); overflow:hidden; background:white; box-shadow:0 18px 40px rgba(19,40,50,.08); }
.offer-card:after { position:absolute; right:-45px; bottom:-55px; width:180px; height:180px; border:32px solid var(--ice); border-radius:50%; content:""; }
.offer-card>span { color:var(--teal); font-size:13px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.offer-card h3 { max-width:480px; margin:58px 0 18px; }
.offer-card p { max-width:520px; color:var(--muted); }
.offer-card b { position:absolute; z-index:1; bottom:34px; color:var(--navy); font-size:14px; }
.offer-card.complete { grid-column:1/3; min-height:310px; background:var(--navy-2); color:white; }
.offer-card.complete h3 { margin-top:34px; color:white; }
.offer-card.complete p { color:#c6d9df; }
.offer-card.complete b { color:var(--action); }
.clarity { display:grid; grid-template-columns:.95fr 1.05fr; gap:clamp(50px,8vw,110px); align-items:center; }
.clarity-image { position:relative; }
.clarity-image:after { position:absolute; right:-18px; bottom:-18px; width:45%; height:45%; border-right:18px solid var(--action); border-bottom:18px solid var(--action); content:""; }
.clarity-image img { width:100%; aspect-ratio:4/5; object-fit:cover; }
.clarity-copy>p:not(.kicker) { color:#c8d8dd; }
.clarity ul { display:grid; gap:0; margin:32px 0 0; padding:0; list-style:none; }
.clarity li { padding:16px 0; border-top:1px solid rgba(255,255,255,.17); font-weight:600; }
.clarity li:before { margin-right:12px; color:var(--action); content:"+"; }
.steps { display:grid; grid-template-columns:repeat(5,1fr); margin:0; padding:0; border-top:1px solid var(--line); list-style:none; }
.steps li { display:flex; min-height:260px; flex-direction:column; padding:28px 22px; border-right:1px solid var(--line); }
.steps b { color:var(--teal); font-size:13px; }
.steps strong { margin:58px 0 12px; font:600 1.15rem/1.2 var(--display); }
.steps span { color:var(--muted); font-size:15px; }
.system { background:white; }
.system-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.system-grid article { display:grid; grid-template-rows:290px 1fr; background:var(--cream); }
.system-grid img { width:100%; height:100%; object-fit:cover; }
.system-grid article:nth-child(2) img { object-position:center 38%; }
.system-grid div { padding:28px; }
.system-grid span { color:var(--teal); font-size:13px; font-weight:700; }
.system-grid h3 { margin:24px 0 12px; font-size:1.65rem; }
.system-grid p { color:var(--muted); font-size:16px; }
.doctor { display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(48px,8vw,110px); align-items:center; }
.doctor-copy>p:not(.kicker) { max-width:700px; color:#c7d8de; }
.doctor>img { width:100%; aspect-ratio:1; object-fit:cover; box-shadow:18px 18px 0 var(--action); }
.credential-list { display:flex; flex-wrap:wrap; gap:8px; margin:28px 0 34px; }
.credential-list span { padding:9px 12px; border:1px solid rgba(255,255,255,.25); font-size:13px; font-weight:600; }
.faith { text-align:center; background:linear-gradient(135deg,rgba(167,227,91,.16),transparent 40%),var(--ice); }
.faith blockquote { max-width:980px; margin:0 auto 18px; color:var(--navy); font:600 clamp(2.5rem,5vw,5.1rem)/1.06 var(--display); letter-spacing:-.04em; }
.faith cite { color:var(--teal); font-size:13px; font-style:normal; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.faith>p:last-child { max-width:620px; margin:30px auto 0; color:var(--muted); }
.booking { display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(45px,8vw,100px); align-items:center; background:var(--navy-2); color:white; }
.booking h2 { color:white; }
.booking>div:first-child>p:last-child { color:#c6d7dd; }
.booking-card { padding:clamp(32px,5vw,56px); background:white; color:var(--ink); box-shadow:16px 16px 0 var(--action); }
.booking-card>strong { color:var(--teal); font-size:13px; letter-spacing:.08em; text-transform:uppercase; }
.booking-card ul { display:grid; gap:12px; margin:26px 0; padding-left:20px; }
.booking-card .button { width:100%; }
.disclaimer { margin:20px 0 0; color:var(--muted); font-size:13px; }
.faq { display:grid; grid-template-columns:.65fr 1.35fr; gap:clamp(44px,8vw,110px); }
.faq details { border-top:1px solid var(--line); }
.faq details:last-child { border-bottom:1px solid var(--line); }
.faq summary { padding:22px 40px 22px 0; color:var(--navy); font-weight:700; cursor:pointer; }
.faq details p { padding:0 28px 22px 0; color:var(--muted); }
footer { display:grid; grid-template-columns:1fr .8fr 1.3fr; gap:40px; padding:48px max(22px,calc((100vw - var(--content))/2)); background:#071827; color:#c3d2d8; font-size:14px; }
footer img { width:210px; margin-bottom:15px; }
footer a { color:white; }
.mobile-cta { display:none; }
.legal-page { min-height:75vh; padding:80px max(22px,calc((100vw - 900px)/2)); background:white; }
.legal-page h1 { color:var(--navy); }
.legal-page h2 { margin-top:42px; font-size:2rem; }

@media (max-width:900px) {
  .hero,.clarity,.doctor,.booking,.faq { grid-template-columns:1fr; }
  .hero { min-height:0; grid-template-rows:auto auto auto auto; }
  .hero-copy { grid-column:1; grid-row:1; }
  .proof-rail { grid-column:1; grid-row:2; }
  .signal-rail { grid-column:1; grid-row:3; }
  .hero-visual { grid-column:1; grid-row:4; min-height:0; aspect-ratio:3/2; }
  .proof-rail { grid-template-columns:1fr 1fr; }
  .steps { grid-template-columns:1fr 1fr; }
  .system-grid { grid-template-columns:1fr; }
  .system-grid article { grid-template-columns:.9fr 1.1fr; grid-template-rows:none; }
  .doctor>img { max-width:560px; }
  footer { grid-template-columns:1fr 1fr; }
  footer>p { grid-column:1/3; }
}
@media (max-width:700px) {
  body { padding-bottom:70px; font-size:17px; }
  .site-header { position:relative; min-height:66px; padding:10px 17px; }
  .brand img { width:175px; }
  .brand span,.button-small { display:none; }
  .hero-copy { padding:30px 20px 20px; }
  h1 { font-size:clamp(3rem,14vw,4.6rem); }
  .hero-lede { font-size:1.05rem; }
  .hero-copy .button { width:100%; }
  .hero-visual { aspect-ratio:4/3; }
  .hero-visual figcaption { right:18px; bottom:18px; left:18px; }
  .proof-rail strong { min-height:72px; padding:14px 10px; font-size:12px; }
  .signal-rail { justify-content:flex-start; overflow-x:auto; }
  .signal-rail span+span:before { margin-right:20px; }
  .offer-grid { grid-template-columns:1fr; }
  .offer-card,.offer-card.complete { grid-column:auto; min-height:350px; }
  .offer-card:after { display:none; }
  .offer-card h3 { margin-top:38px; }
  .clarity-image img { aspect-ratio:4/3; }
  .clarity-image:after { right:-8px; bottom:-8px; border-width:8px; }
  .steps { grid-template-columns:1fr; }
  .steps li { min-height:0; padding:22px 0; border-right:0; border-bottom:1px solid var(--line); }
  .steps strong { margin:20px 0 8px; }
  .system-grid article { grid-template-columns:1fr; grid-template-rows:230px 1fr; }
  .doctor>img { box-shadow:9px 9px 0 var(--action); }
  .booking-card { padding:30px 22px; box-shadow:9px 9px 0 var(--action); }
  footer { grid-template-columns:1fr; }
  footer>p { grid-column:auto; }
  .mobile-cta { position:fixed; z-index:40; right:9px; bottom:8px; left:9px; display:flex; min-height:60px; align-items:center; justify-content:center; padding:14px 18px; font-weight:700; text-align:center; text-decoration:none; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto; } .button { transition:none; } }
