@import url("https://fonts.googleapis.com/css2?family=PT+Serif:wght@600;700;800&display=swap");

:root {
  --navy:#0b2034; --navy-2:#153b52; --teal:#1c6675; --gold:#edb63e;
  --cream:#f5f1e8; --white:#fff; --text:#20384a; --muted:#587080;
  --line:rgba(11,32,52,.16); --display:"PT Serif",Georgia,serif;
  --sans:"Avenir Next",Avenir,"Segoe UI",Arial,sans-serif; --content:1180px;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; overflow-x:clip; }
body { margin:0; overflow-x:clip; color:var(--text); background:var(--cream); font:18px/1.68 var(--sans); }
img { display:block; max-width:100%; }
a { color:inherit; }
h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { color:var(--navy); font-family:var(--display); text-wrap:balance; }
h2 { margin-bottom:24px; font-size:clamp(2.5rem,5vw,4.8rem); font-weight:600; letter-spacing:normal; line-height:1.05; }
h3 { font-size:clamp(1.35rem,2vw,1.9rem); font-weight:600; line-height:1.12; }
p { text-wrap:pretty; }
.site-header { position:sticky; z-index:30; top:0; display:flex; min-height:76px; align-items:center; justify-content:space-between; gap:20px; padding:11px max(22px,calc((100vw - var(--content))/2)); border-bottom:1px solid rgba(255,255,255,.13); background:rgba(11,32,52,.97); color:white; }
.brand { display:flex; align-items:center; gap:16px; text-decoration:none; }
.brand img { width:210px; max-height:52px; object-fit:contain; object-position:left; }
.brand span { padding-left:16px; border-left:1px solid rgba(255,255,255,.35); font-size:12px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.button { display:inline-flex; min-height:58px; align-items:center; justify-content:center; padding:17px 26px; border:2px solid transparent; border-radius:4px; font-size:18px; font-weight:850; line-height:1.2; text-align:center; text-decoration:none; transition:transform .18s ease,background .18s ease; }
.button:hover { transform:translateY(-2px); }
.button:focus-visible,a:focus-visible,summary:focus-visible { outline:3px solid var(--gold); outline-offset:4px; }
.button-header { max-width:370px; min-height:45px; padding:11px 17px; border-color:var(--gold); }
.button-primary { background:var(--gold); color:var(--navy); box-shadow:0 12px 28px rgba(0,0,0,.18); }
.hero { display:grid; grid-template-columns:minmax(0,.95fr) minmax(450px,1.05fr); min-height:calc(100vh - 76px); background:var(--navy); color:white; }
.hero-copy { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; padding:clamp(62px,8vw,112px) clamp(28px,6vw,88px) clamp(70px,8vw,112px) max(28px,calc((100vw - var(--content))/2)); }
.eyebrow,.plain-label,.section-intro>p { color:var(--teal); font-size:14px; font-weight:900; letter-spacing:.075em; line-height:1.35; text-transform:uppercase; }
.hero .eyebrow { margin-bottom:24px; color:#b9dce0; }
h1 { max-width:720px; margin-bottom:25px; color:white; font-size:clamp(3.5rem,6.2vw,6.4rem); font-weight:800; letter-spacing:normal; line-height:1; }
.hero-lede { max-width:620px; margin-bottom:26px; color:#d2e1e7; font-size:clamp(1.05rem,1.5vw,1.25rem); }
.offer { display:grid; width:min(100%,480px); gap:3px; margin-bottom:0; padding:19px 22px; border:2px solid var(--gold); border-radius:4px; background:var(--gold); color:var(--navy); text-decoration:none; box-shadow:0 12px 28px rgba(0,0,0,.2); transition:transform .18s ease,background .18s ease; }
.offer:hover { transform:translateY(-2px); background:#f4c657; }
.offer strong { color:var(--navy); font-size:clamp(1.35rem,2vw,1.65rem); line-height:1.05; }
.offer span { color:#163247; font-size:18px; font-weight:850; line-height:1.35; }
.microcopy { color:#e0ebef; font-size:14px; }
.microcopy { margin:12px 0 0; }
.hero-image { position:relative; min-height:620px; margin:0; overflow:hidden; background:var(--navy-2); }
.hero-image:after { position:absolute; inset:0; background:linear-gradient(0deg,rgba(11,32,52,.86),transparent 42%); content:""; }
.hero-image>img { width:100%; height:100%; object-fit:cover; object-position:60% center; }
.hero-image figcaption { position:absolute; z-index:1; right:28px; bottom:28px; left:28px; display:grid; gap:3px; color:white; }
.hero-image figcaption strong { font-size:clamp(20px,1.8vw,28px); line-height:1.05; }
.hero-image figcaption span { max-width:660px; color:#f0f5f6; font-size:clamp(15px,1.2vw,18px); font-weight:650; line-height:1.4; }
.pain,.whole-picture,.doctor,.practice-proof,.call-flow,.booking,.faq,.final-cta,footer { padding-right:max(22px,calc((100vw - var(--content))/2)); padding-left:max(22px,calc((100vw - var(--content))/2)); }
.pain { padding-top:clamp(76px,9vw,130px); padding-bottom:clamp(76px,9vw,130px); background:white; }
.section-intro { display:grid; grid-template-columns:.55fr 1.45fr; gap:clamp(24px,6vw,92px); margin-bottom:clamp(42px,6vw,74px); }
.section-intro h2 { max-width:850px; }
.pain-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.pain-grid article { position:relative; min-height:520px; overflow:hidden; background:var(--navy); }
.pain-grid img { width:100%; height:100%; object-fit:cover; }
.pain-grid article:after { position:absolute; inset:35% 0 0; background:linear-gradient(transparent,rgba(5,20,32,.94)); content:""; }
.pain-grid article div { position:absolute; z-index:1; right:0; bottom:0; left:0; padding:28px; color:white; }
.pain-grid h3 { margin:5px 0 0; color:white; }
.pain-grid span { color:#f0f6f7; font-size:16px; }
.bridge { display:grid; max-width:900px; justify-items:start; gap:8px; margin:70px auto 0; text-align:left; }
.bridge p { margin:0; color:var(--teal); font-weight:800; }
.bridge strong { margin-bottom:20px; color:var(--navy); font:600 clamp(2rem,4vw,3.7rem)/1.08 var(--display); }
.whole-picture { padding-top:clamp(76px,9vw,124px); padding-bottom:clamp(76px,9vw,124px); background:var(--navy); color:white; }
.section-intro.light h2 { color:white; }
.section-intro.light p { color:var(--gold); }
.health-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid rgba(255,255,255,.18); }
.health-grid article { padding:32px 30px 12px 0; border-bottom:1px solid rgba(255,255,255,.18); }
.health-grid article+article { padding-left:30px; border-left:1px solid rgba(255,255,255,.18); }
.health-grid span { color:var(--gold); font-weight:850; }
.health-grid h3 { margin:22px 0 12px; color:white; }
.health-grid p { color:#c4d6dd; }
.doctor { display:grid; grid-template-columns:.72fr 1.28fr; gap:clamp(48px,8vw,116px); align-items:center; padding-top:clamp(76px,9vw,126px); padding-bottom:clamp(76px,9vw,126px); background:var(--cream); }
.doctor-photo { overflow:hidden; box-shadow:18px 18px 0 var(--gold); }
.doctor-photo img { width:100%; aspect-ratio:1; object-fit:cover; }
.doctor-copy p:not(.plain-label) { max-width:690px; color:#405b6d; }
.credentials { display:flex; flex-wrap:wrap; gap:8px; margin:28px 0 0; padding:0; list-style:none; }
.credentials li { padding:9px 13px; border:1px solid var(--line); background:white; font-size:14px; font-weight:800; }
.practice-proof { display:grid; grid-template-columns:1fr 1fr; gap:clamp(42px,8vw,110px); align-items:center; padding-top:clamp(70px,8vw,110px); padding-bottom:clamp(70px,8vw,110px); background:white; }
.practice-proof img { width:100%; min-height:410px; object-fit:cover; }
.proof-copy p:not(.plain-label) { max-width:650px; color:#465f70; }
.call-flow { display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(48px,8vw,110px); padding-top:clamp(76px,9vw,126px); padding-bottom:clamp(76px,9vw,126px); background:var(--navy-2); color:white; }
.call-flow h2 { color:white; }
.call-flow .plain-label { color:var(--gold); }
.call-copy>p:not(.plain-label) { color:#e2ecef; font-size:18px; }
.call-benefits { display:grid; grid-template-columns:1fr 1fr; margin:0; padding:0; border-top:1px solid rgba(255,255,255,.18); list-style:none; }
.call-benefits li { display:grid; grid-template-columns:52px 1fr; column-gap:14px; padding:24px 24px 22px 0; border-bottom:1px solid rgba(255,255,255,.22); }
.call-benefits li:nth-child(even) { padding-right:0; padding-left:22px; border-left:1px solid rgba(255,255,255,.18); }
.benefit-icon { grid-row:1 / 3; display:grid; width:46px; height:46px; place-items:center; border:2px solid var(--gold); border-radius:50%; color:var(--gold); font-size:17px; font-weight:900; line-height:1; }
.call-benefits strong { grid-column:2; color:white; font-size:19px; line-height:1.3; }
.call-benefits p { grid-column:2; margin:6px 0 0; color:#d9e7eb; font-size:16px; line-height:1.55; }
.booking { display:grid; grid-template-columns:.88fr 1.12fr; gap:clamp(50px,7vw,100px); padding-top:clamp(76px,9vw,126px); padding-bottom:clamp(76px,9vw,126px); background:#0c2c3f; color:white; }
.booking h2 { color:white; }
.booking .plain-label { color:var(--gold); }
.booking-intro>p:not(.plain-label):not(.disclaimer) { color:#d0dfe4; }
.booking-promise { display:grid; gap:3px; margin:26px 0; padding:19px 0; border-top:1px solid rgba(255,255,255,.18); border-bottom:1px solid rgba(255,255,255,.18); }
.booking-promise strong { color:var(--gold); font-size:20px; }
.disclaimer { color:#d0dee3; font-size:14px; }
.calendar-shell { min-height:650px; padding:12px; background:white; color:var(--text); box-shadow:16px 16px 0 var(--gold); }
.calendar-status { display:flex; min-height:626px; flex-direction:column; align-items:center; justify-content:center; gap:12px; padding:35px; text-align:center; }
.calendar-status strong { color:var(--navy); font:600 2rem/1.08 var(--display); }
.calendar-status span { max-width:420px; color:var(--muted); }
.calendly-inline-widget { display:block; width:100%; min-width:300px; height:700px; border:0; }
.faq { display:grid; grid-template-columns:.65fr 1.35fr; gap:clamp(42px,8vw,115px); padding-top:clamp(76px,9vw,126px); padding-bottom:clamp(76px,9vw,126px); background:var(--cream); }
.faq details { border-top:1px solid var(--line); }
.faq details:last-child { border-bottom:1px solid var(--line); }
.faq summary { padding:22px 36px 22px 0; color:var(--navy); font-weight:850; cursor:pointer; }
.faq details p { padding:0 25px 20px 0; color:var(--muted); }
.final-cta { display:grid; justify-items:center; padding-top:82px; padding-bottom:90px; background:var(--gold); text-align:center; }
.final-cta p { margin-bottom:8px; font-weight:850; }
.final-cta h2 { max-width:880px; }
.final-cta .button { background:var(--navy); color:white; }
.final-cta span { margin-top:13px; font-size:14px; font-weight:800; }
footer { display:grid; grid-template-columns:1fr .8fr 1.4fr; gap:35px; padding-top:48px; padding-bottom:48px; background:#071827; color:#d2dfe4; font-size:14px; }
footer strong,footer a { color:white; }
footer p { margin-bottom:0; }
.mobile-cta { display:none; }
.legal-page { min-height:70vh; padding:80px max(22px,calc((100vw - 900px)/2)); background:white; }
.legal-page h1 { color:var(--navy); font-size:clamp(3rem,6vw,5rem); }
.legal-page h2 { margin-top:42px; font-size:2rem; }
@media (max-width:920px) {
  .hero,.doctor,.practice-proof,.call-flow,.booking,.faq { grid-template-columns:1fr; }
  .hero-copy { min-height:650px; padding-right:24px; }
  .hero-image { min-height:600px; }
  .health-grid { grid-template-columns:1fr; }
  .health-grid article+article { padding-left:0; border-left:0; }
  .doctor-photo { max-width:560px; }
  .calendar-shell { width:100%; max-width:760px; }
  footer { grid-template-columns:1fr 1fr; }
  footer>p { grid-column:1/3; }
}
@media (max-width:620px) {
  body { padding-bottom:69px; font-size:17px; }
  .site-header { position:relative; min-height:66px; padding:10px 17px; }
  .brand img { width:172px; }
  .brand span,.button-header { display:none; }
  .hero { min-height:auto; }
  .hero-copy { min-height:0; padding:58px 20px 62px; }
  h1 { font-size:clamp(3.25rem,15vw,4.6rem); }
  .offer { width:100%; }
  .hero-image { min-height:460px; }
  .hero-image figcaption { right:18px; bottom:18px; left:18px; }
  .section-intro { grid-template-columns:1fr; gap:2px; }
  .pain-grid { grid-template-columns:1fr; }
  .pain-grid article { min-height:430px; }
  .bridge { margin-top:48px; }
  .doctor-photo { box-shadow:9px 9px 0 var(--gold); }
  .practice-proof img { min-height:300px; }
  .call-benefits { grid-template-columns:1fr; }
  .call-benefits li,.call-benefits li:nth-child(even) { padding:20px 0; border-left:0; }
  .calendar-shell { min-height:620px; padding:5px; box-shadow:8px 8px 0 var(--gold); }
  .calendar-status { min-height:608px; padding:24px 16px; }
  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:12px 16px; border-radius:4px; background:var(--gold); color:var(--navy); font-size:16px; font-weight:900; line-height:1.15; text-align:center; text-decoration:none; box-shadow:0 8px 28px rgba(0,0,0,.3); }
}
@media (max-width: 520px) {
  .calendly-inline-widget { width: 100%; min-width: 0; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto; } .button { transition:none; } }
