:root {
  --navy:#17324d;
  --navy-soft:#29475f;
  --teal:#177b76;
  --teal-bright:#18a885;
  --mint:#e9f8f3;
  --mint-2:#f5fcf9;
  --coral:#e87062;
  --gold:#eab85a;
  --cream:#fffaf2;
  --paper:#fffefb;
  --rose:#fff3f0;
  --lavender:#f4f1fb;
  --muted:#65717d;
  --line:#dfe9e5;
  --shadow:0 18px 50px rgba(23,50,77,.11);
  --shadow-soft:0 10px 28px rgba(23,50,77,.075);
  --display:"Montserrat","Avenir Next",Arial,system-ui,sans-serif;
  --sans:"Avenir Next",Arial,system-ui,sans-serif;
}

* { box-sizing:border-box }
html { scroll-behavior:smooth; overflow-x:hidden }
body { margin:0; overflow-x:hidden; background:#fff; color:var(--navy); font-family:var(--sans); font-size:16px; line-height:1.55; text-rendering:optimizeLegibility }
body.modal-open { position:fixed; inset-inline:0; width:100%; overflow:hidden }
.wrap { width:min(100% - 44px,980px); margin-inline:auto }
h2,h3,p { margin-top:0 }
h2,h3 { color:var(--navy); letter-spacing:-.028em }
h2 { max-width:19ch; margin:0 auto 12px; font-family:var(--display); font-size:clamp(1.9rem,5vw,2.8rem); font-weight:800; line-height:1.1; text-align:center; text-wrap:balance }
h3 { font-size:1.25rem; line-height:1.2 }
img { display:block; max-width:100%; height:auto }
section { position:relative; padding:68px 0 }
a,button { -webkit-tap-highlight-color:transparent }
a:focus-visible,button:focus-visible { outline:3px solid rgba(23,123,118,.38); outline-offset:3px }

.eyebrow,.kicker,.story-step {
  display:flex;
  width:max-content;
  max-width:100%;
  align-items:center;
  justify-content:center;
  margin:0 auto 13px;
  border-radius:999px;
  background:var(--mint);
  color:var(--teal);
  font-size:.76rem;
  font-weight:900;
  letter-spacing:.075em;
  line-height:1.25;
  padding:7px 13px;
  text-align:center;
  text-transform:uppercase;
}
.green { background:#e7f9ed; color:#148a58 }
.section-lead { max-width:640px; margin:0 auto 34px; color:var(--muted); font-size:1.02rem; text-align:center }

.hero {
  display:flex;
  flex-direction:column;
  align-items:center;
  padding:25px 0 42px;
  background:#fff;
  text-align:center;
}
.hero:before {
  content:"";
  position:absolute;
  z-index:-1;
  inset:0 calc(50% - 50vw);
  background:#fff;
}
.hero .eyebrow { margin-bottom:5px; background:rgba(255,255,255,.86); border:1px solid #dcebe5; color:var(--navy-soft) }
.headline-art { width:min(640px,100%); margin:0 auto -18px; -webkit-user-select:none; user-select:none }
.product-art { position:relative; z-index:1; width:min(590px,100%); background:#fff }
.hero-copy { max-width:650px; margin:2px auto 22px; color:#536373; font-size:1.06rem; line-height:1.6 }
.hero-copy strong { color:var(--teal); font-weight:900 }
.hero-offer {
  display:flex;
  width:min(100%,560px);
  flex-direction:column;
  align-items:center;
  margin-top:4px;
  padding:19px 20px 20px;
  border:1px solid #cae8dd;
  border-radius:24px;
  background:rgba(255,255,255,.92);
  box-shadow:var(--shadow-soft);
  color:var(--navy);
  text-decoration:none;
}
.hero-offer small { font-size:.76rem; font-weight:900; letter-spacing:.13em }
.hero-offer>strong { margin:1px 0 11px; color:var(--teal); font-family:var(--display); font-size:clamp(3.4rem,13vw,5rem); font-weight:800; letter-spacing:-.07em; line-height:.95 }
.hero-offer span {
  display:flex;
  width:100%;
  min-height:58px;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:13px 18px;
  border-radius:16px;
  background:linear-gradient(100deg,#16766f,#19a47e);
  box-shadow:0 10px 24px rgba(23,123,118,.22);
  color:#fff;
  font-weight:900;
  letter-spacing:.035em;
}
.hero-offer span b { font-size:1.35rem; animation:softArrow 1.5s ease-in-out infinite }
@keyframes softArrow { 0%,100% { transform:translateY(-2px) } 50% { transform:translateY(4px) } }

.video-section { padding:61px 0 72px; background:linear-gradient(180deg,#fff 0%,var(--cream) 100%) }
.video-section:before { content:""; position:absolute; top:0; left:50%; width:74px; height:1px; transform:translateX(-50%); background:var(--gold) }
.story-step { background:#fff3d9; color:#8b6321 }
.video-shell { width:min(100%,410px); aspect-ratio:9/16; margin:26px auto 0; overflow:hidden; border:6px solid #fff; border-radius:28px; background:#f2e9dc; box-shadow:0 22px 60px rgba(56,47,32,.16) }
.video-shell wistia-player { display:block; width:100% }

.preview { isolation:isolate }
.preview:before {
  content:"";
  position:absolute;
  z-index:-1;
  inset:0 calc(50% - 50vw);
  background:
    radial-gradient(circle at 8% 11%,rgba(65,176,157,.12),transparent 22%),
    radial-gradient(circle at 92% 47%,rgba(232,112,98,.09),transparent 24%),
    linear-gradient(180deg,#f7fcfa 0%,#eef8f5 55%,#fdfdfb 100%);
}
.pages { display:flex; width:min(100%,710px); flex-direction:column; align-items:center; gap:24px; margin-inline:auto }
.pages img { width:100%; border:1px solid rgba(23,50,77,.1); border-radius:18px; background:#fff; box-shadow:var(--shadow) }
.includes { margin:42px auto 0; padding:25px 22px; border:1px solid #d6ebe3; border-radius:24px; background:rgba(255,255,255,.87); box-shadow:var(--shadow-soft); text-align:center }
.includes h3 { margin-bottom:18px; font-family:var(--display); font-size:1.35rem }
.chips { display:flex; flex-wrap:wrap; justify-content:center; gap:10px }
.chips span { padding:9px 14px; border-radius:999px; background:var(--mint-2); color:#355c58; font-size:.9rem; font-weight:800 }

.clinic-use { background:linear-gradient(180deg,#f5fbf8 0%,#edf8f4 100%) }
.clinic-kicker { background:#fff; border:1px solid #d6eae2 }
.clinic-gallery { display:grid; width:min(100%,900px); grid-template-columns:1.12fr 1fr 1fr; align-items:start; gap:18px; margin:32px auto 0 }
.clinic-photo { overflow:hidden; margin:0; border:1px solid #d5e8e0; border-radius:22px; background:#fff; box-shadow:var(--shadow-soft) }
.clinic-photo img { width:100%; height:auto; background:#fff }
.clinic-photo figcaption { min-height:66px; display:flex; align-items:center; justify-content:center; padding:13px 14px 15px; color:#35554f; font-size:.9rem; font-weight:900; line-height:1.35; text-align:center }

.social-proof { background:linear-gradient(180deg,#fff9f6,#fff3ef) }
.social-proof .kicker { background:#ffe8e2; color:#ad5148 }
.testimonial-stack { display:flex; width:min(100%,760px); flex-direction:column; gap:17px; margin:32px auto 0 }
.testimonial-stack img { width:100%; border:1px solid rgba(23,50,77,.08); border-radius:18px; box-shadow:var(--shadow-soft) }

.access-flow { background:var(--paper) }
.access-steps { position:relative; display:flex; width:min(100%,680px); flex-direction:column; gap:18px; margin:38px auto 0 }
.access-steps:before { content:""; position:absolute; top:28px; bottom:28px; left:29px; width:2px; border-radius:4px; background:linear-gradient(180deg,var(--gold),var(--coral),var(--teal)) }
.access-step { position:relative; z-index:1; display:grid; width:calc(100% - 28px); grid-template-columns:60px 1fr; align-items:center; gap:17px; padding:19px 21px 19px 0; border:1px solid #e3e9e6; border-radius:22px; background:#fff; box-shadow:var(--shadow-soft) }
.access-step:nth-child(even) { align-self:flex-end }
.step-number { display:grid; width:58px; height:58px; place-items:center; border:5px solid var(--paper); border-radius:50%; background:linear-gradient(145deg,var(--navy),var(--teal)); box-shadow:0 7px 18px rgba(23,50,77,.18); color:#fff; font-family:var(--display); font-size:1.35rem; font-weight:800 }
.access-step small { color:var(--coral); font-size:.72rem; font-weight:900; letter-spacing:.09em }
.access-step h3 { margin:2px 0 4px; font-family:var(--display); font-size:1.22rem }
.access-step p { margin:0; color:var(--muted); font-size:.94rem }

.bonuses { background:linear-gradient(180deg,#f4faf7 0%,#eaf6f1 100%) }
.bonus-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:20px; margin-top:34px }
.bonus-card { overflow:hidden; border:1px solid #d5e7df; border-radius:24px; background:#fff; box-shadow:var(--shadow-soft) }
.bonus-card:last-child { grid-column:1/-1; width:calc(50% - 10px); justify-self:center }
.bonus-card img { width:100%; background:#fff; object-fit:contain }
.bonus-copy { display:flex; flex-direction:column; padding:18px 20px 21px; background:#fff }
.bonus-copy small { color:var(--coral); font-size:.74rem; font-weight:900; letter-spacing:.095em }
.bonus-copy h3 { margin:4px 0 8px; font-family:var(--display); font-size:1.28rem }
.bonus-copy p { margin:0; color:var(--muted); font-size:.96rem; line-height:1.48 }
.bonus-price { display:flex; flex-wrap:wrap; align-items:center; gap:5px 7px; margin-top:15px; padding-top:13px; border-top:1px solid #edf0ee; color:#84908e; font-size:.86rem; font-weight:900 }
.bonus-price strong { color:#0f9161; font-size:1rem }

.pricing-section { background:linear-gradient(180deg,#fff9f1 0%,#f7faf8 100%) }
.pricing { display:grid; grid-template-columns:1fr 1fr; align-items:start; gap:25px; margin-top:40px }
.plan { position:relative; padding:28px; border:1px solid #e0e7e3; border-radius:28px; background:#fff; box-shadow:var(--shadow-soft) }
.plan h3 { margin:12px 0; font-family:var(--display); font-size:1.65rem; text-align:center }
.plan-label { display:block; color:var(--muted); font-size:.78rem; font-weight:900; letter-spacing:.075em; text-align:center; text-transform:uppercase }
.complete { scroll-margin-top:24px; padding-top:42px; border:2px solid var(--teal); background:linear-gradient(180deg,#fff 0%,#f5fcf9 100%); box-shadow:0 23px 60px rgba(23,123,118,.17) }
.complete>img { width:86%; margin:-10px auto -10px }
.popular { position:absolute; top:-18px; left:50%; transform:translateX(-50%); padding:8px 18px; border:3px solid #fff; border-radius:999px; background:linear-gradient(100deg,var(--navy),var(--teal)); box-shadow:0 8px 20px rgba(23,50,77,.2); color:#fff; font-size:.77rem; font-weight:900; letter-spacing:.055em; text-transform:uppercase; white-space:nowrap }
.complete-value { display:flex; flex-direction:column; margin:13px 0 9px; padding:14px; border-radius:17px; background:var(--mint); color:#315a55; text-align:center }
.complete-value strong { color:var(--teal); font-family:var(--display); font-size:1.1rem; letter-spacing:.045em }
.complete-value span { font-size:.86rem; font-weight:800 }
.price { display:flex; flex-direction:column; margin:16px 0; text-align:center }
.price del { color:#8c969e; font-size:.95rem }
.price b,.modal-price { font-family:var(--sans); font-weight:800; letter-spacing:-.045em; line-height:.98 }
.price b { color:var(--teal); font-size:clamp(3.55rem,9vw,5.2rem) }
.price small { margin:5px 0 13px; color:var(--muted) }
.save,.modal-save { display:block; width:max-content; margin:0 auto 8px; padding:6px 12px; border-radius:999px; font-size:.79rem; font-weight:900 }
.save { border:1px solid #b8e4cf; background:#e3f7eb; color:#0b8557 }
.complete-offer { margin-top:20px; padding-top:20px; border-top:1px solid #d9e8e2 }
.complete-offer .price { margin:13px 0 12px }
.button { display:flex; min-height:55px; align-items:center; justify-content:center; padding:13px 18px; border-radius:16px; background:linear-gradient(100deg,#16816f,#16ac7a); box-shadow:0 10px 25px rgba(23,123,118,.23); color:#fff; font-weight:800; letter-spacing:.02em; text-align:center; text-decoration:none }
.complete-button { min-height:60px; font-size:1.02rem }
.purchase-security { display:flex; flex-wrap:wrap; justify-content:center; gap:5px 14px; margin-top:12px; color:#4f6a64; font-size:.89rem; font-weight:900; text-align:center }
.plan ul,.modal ul { margin:20px 0; padding:0; list-style:none }
.plan li,.modal li { position:relative; padding:7px 0 7px 27px; font-size:.96rem }
.yes li:before,.modal li:before { content:"✓"; position:absolute; left:0; color:#12a66c; font-weight:900 }
.complete-list { margin:18px 0 24px!important }
.complete-list li { padding-block:8px; color:#405750; font-size:1rem; line-height:1.42 }
.complete-list strong { color:#294841 }
.bonus-name { color:#29413c; font-weight:900 }
.basic { border-color:#e4e4e1; background:#fbfbf9; box-shadow:0 8px 24px rgba(23,50,77,.05) }
.basic .price b { color:#5d6a73 }
.basic .button { background:#6c7880; box-shadow:none }
.basic-included { margin-bottom:14px!important }
.not-included-title { margin:18px 0 -12px; color:#7d858b; font-size:.82rem; font-weight:900; letter-spacing:.035em; text-transform:uppercase }
.no { color:#92999e }
.no li { text-decoration:line-through }
.no li:before { content:"×"; position:absolute; left:2px; color:#d65d62; font-weight:900 }
.guarantee { display:flex; width:min(100%,450px); flex-direction:column; margin:30px auto 0; padding:20px; border:1px solid #d2e8df; border-radius:19px; background:var(--mint); text-align:center }
.guarantee span { color:var(--teal); font-size:1.8rem }
.guarantee b { font-family:var(--display); font-size:1.14rem }
.guarantee small { color:var(--muted) }
body>footer { padding:30px 15px; background:#f7f9f8; color:#84908e; font-size:.82rem; text-align:center }

.modal[hidden] { display:none }
.modal { position:fixed; z-index:1000; inset:0; width:100%; height:100%; height:100dvh; overflow-x:hidden; overflow-y:auto; background:linear-gradient(180deg,#edf9f5 0%,#fffaf3 50%,#f8fbfa 100%); overscroll-behavior:contain; -webkit-overflow-scrolling:touch }
.modal:focus { outline:none }
.modal-card { width:100%; min-height:100%; min-height:100dvh; overflow:visible; background:radial-gradient(circle at 10% 20%,rgba(232,112,98,.09),transparent 24%),radial-gradient(circle at 90% 40%,rgba(23,123,118,.1),transparent 26%) }
.modal-top { position:sticky; z-index:3; top:0; display:grid; min-height:60px; grid-template-columns:44px minmax(0,1fr) 44px; align-items:center; padding:calc(8px + env(safe-area-inset-top)) 14px 8px; background:linear-gradient(100deg,var(--navy),var(--teal)); box-shadow:0 7px 20px rgba(23,50,77,.18); color:#fff }
.modal-top small { font-size:.77rem; font-weight:900; letter-spacing:.06em; line-height:1.18; text-align:center }
.modal-top button { display:grid; width:40px; height:40px; place-items:center; border:0; border-radius:50%; background:rgba(255,255,255,.16); color:#fff; cursor:pointer; font-size:1.45rem; line-height:1 }
.modal-close { justify-self:end }
.modal-body { width:min(100% - 36px,660px); margin-inline:auto; padding:28px 0 calc(32px + env(safe-area-inset-bottom)); text-align:center }
.modal-kicker { display:inline-flex; min-height:36px; align-items:center; justify-content:center; margin-bottom:10px; padding:7px 16px; border:1px solid #f1b9b9; border-radius:999px; background:#fff0f0; color:#c83d3d; font-size:.84rem; font-weight:800; letter-spacing:.07em }
.modal-body h2 { max-width:16ch; margin:0 auto 10px; color:#d33f49; font-family:var(--display); font-size:clamp(1.9rem,6vw,2.8rem); font-weight:800; line-height:1.08; text-wrap:balance; -webkit-user-select:none; user-select:none }
.modal-subtitle { max-width:520px; margin:0 auto 22px!important; color:#536677; font-size:1rem!important; line-height:1.5 }
.modal-product { display:grid; width:min(100%,570px); grid-template-columns:minmax(0,1.12fr) minmax(185px,.88fr); align-items:center; gap:7px; margin:0 auto 16px; padding:9px 14px 9px 5px; border:1px solid #cce6dc; border-radius:26px; background:#fff; box-shadow:var(--shadow-soft) }
.modal-product>img { width:100%; max-width:300px; margin-inline:auto }
.modal-offer { display:flex; width:100%; min-width:0; flex-direction:column; align-items:center }
.modal-offer>strong { margin:7px 0 1px; color:var(--navy); font-family:var(--display); font-size:1.08rem; font-weight:700 }
.modal-offer del { color:#8a949c; font-size:.92rem; font-weight:800 }
.modal-offer small { color:var(--muted); font-size:.82rem; font-weight:800 }
.modal-price { margin:2px 0; color:var(--teal); font-size:clamp(2.9rem,10vw,4.5rem); white-space:nowrap }
.modal-save { margin:0 auto; border:1px solid #b9e2cf; background:#e2f6eb; color:#0b8557; letter-spacing:.025em }
.modal-value { display:flex; width:min(100%,570px); flex-direction:column; margin:0 auto 17px; padding:14px 16px; border:1px solid #efd392; border-radius:18px; background:#fff8e8; color:#625640 }
.modal-value strong { color:#b96817; font-family:var(--display); font-size:1.05rem; letter-spacing:.015em }
.modal-value span { margin-top:3px; font-size:.92rem; line-height:1.4 }
.modal-includes { width:min(100%,570px); margin:0 auto 17px; padding:19px 20px 16px; border:1px solid #d8e7e2; border-radius:22px; background:rgba(255,255,255,.94); box-shadow:var(--shadow-soft); text-align:left }
.modal-includes h3 { margin:0 0 10px; font-family:var(--display); font-size:1.25rem; text-align:center }
.modal-includes ul { margin:0 }
.modal-includes li { padding:7px 0 7px 29px; color:#40554f; font-size:.96rem; line-height:1.38 }
.modal-includes li:before { top:7px; display:grid; width:20px; height:20px; place-items:center; border-radius:50%; background:#daf4e5; font-size:.78rem }
.upgrade-button { width:min(100%,570px); min-height:64px; margin:0 auto; background:linear-gradient(110deg,#116d69,#18a87c,#167e73,#1cad7b); background-size:240% 100%; box-shadow:0 13px 30px rgba(23,123,118,.27); font-size:1.05rem; animation:upgradeGradient 3.2s ease-in-out infinite }
@keyframes upgradeGradient { 0%,100% { background-position:0 50% } 50% { background-position:100% 50% } }
.modal-trust { display:flex; flex-wrap:wrap; justify-content:center; gap:6px 18px; margin:12px 0; color:#49635d; font-size:.91rem; font-weight:900 }
.decline { display:flex; width:min(100%,570px); min-height:53px; align-items:center; justify-content:center; margin:0 auto; padding:12px 15px; border:1px solid #dfe3e1; border-radius:16px; background:#f4f5f4; color:#727b81; font-size:.83rem; font-weight:900; line-height:1.25; text-decoration:none }

@media(hover:hover) and (pointer:fine) {
  .button:hover,.hero-offer:hover span { transform:translateY(-2px); box-shadow:0 14px 30px rgba(23,123,118,.28) }
  .decline:hover { color:#c45559 }
}

@media(max-width:700px) {
  .wrap { width:calc(100% - 40px) }
  section { padding:54px 0 }
  h2 { max-width:18ch; font-size:clamp(1.72rem,7.4vw,2.15rem); line-height:1.12 }
  .hero { padding-top:18px; padding-bottom:40px }
  .hero .eyebrow { font-size:.75rem }
  .headline-art { width:100%; max-width:100%; margin:0 auto -10px }
  .product-art { width:100%; max-width:100%; margin-inline:auto }
  .hero-copy { font-size:1rem; text-align:left }
  .hero-offer { padding:17px 16px 18px; border-radius:20px }
  .hero-offer>strong { font-size:clamp(3.15rem,15vw,3.75rem) }
  .hero-offer span { min-height:56px; font-size:.95rem }
  .video-section { padding:52px 0 62px }
  .video-shell { width:min(100%,390px); border-width:5px; border-radius:24px }
  .pages { gap:18px }
  .pages img { border-radius:15px }
  .includes { margin-top:29px; padding:21px 15px }
  .chips { display:grid; grid-template-columns:1fr 1fr }
  .chips span { padding:9px 8px; border-radius:12px; font-size:.86rem }
  .clinic-gallery { width:min(100%,520px); grid-template-columns:1fr; gap:16px; margin-top:26px }
  .clinic-feature { grid-column:auto }
  .clinic-photo { border-radius:17px }
  .clinic-feature { width:100%; justify-self:center }
  .clinic-photo figcaption { min-height:auto; padding:13px 12px 15px; font-size:.92rem }
  .testimonial-stack { gap:14px }
  .testimonial-stack img { border-radius:14px }
  .access-steps { gap:14px; margin-top:30px }
  .access-steps:before { top:25px; bottom:25px; left:24px }
  .access-step { width:calc(100% - 10px); grid-template-columns:50px minmax(0,1fr); gap:13px; padding:15px 14px 15px 0; border-radius:18px }
  .access-step:nth-child(even) { margin-left:10px }
  .step-number { width:48px; height:48px; border-width:4px; font-size:1.12rem }
  .access-step h3 { font-size:1.12rem }
  .access-step p { font-size:.93rem; line-height:1.45 }
  .access-step small { font-size:.75rem }
  .pricing,.bonus-grid { grid-template-columns:1fr }
  .bonus-card:last-child { grid-column:auto; width:100% }
  .bonus-copy { padding:17px 18px 20px }
  .bonus-copy h3 { font-size:1.24rem }
  .pricing { gap:38px }
  .plan { padding:25px 20px }
  .complete { padding-top:40px }
  .complete>img { width:100%; margin-top:-8px; border-radius:17px }
  .plan h3 { font-size:1.45rem }
  .price b { font-size:clamp(3.05rem,15vw,4rem) }
  .modal-top { min-height:58px; grid-template-columns:42px minmax(0,1fr) 42px; padding-inline:10px }
  .modal-top small { font-size:.78rem }
  .modal-top button { width:38px; height:38px }
  .modal-body { width:calc(100% - 40px); padding-top:23px }
  .modal-body h2 { max-width:15ch; font-size:clamp(1.8rem,8vw,2.2rem); line-height:1.08 }
  .modal-subtitle { margin-bottom:18px!important; font-size:.96rem!important }
  .modal-product { grid-template-columns:1fr; gap:0; padding:11px 13px 15px; border-radius:22px }
  .modal-product>img { width:min(100%,310px); max-width:none; margin-bottom:4px }
  .modal-offer>strong { margin-top:1px; font-size:1.05rem }
  .modal-price { font-size:clamp(3rem,15vw,3.45rem) }
  .modal-value { padding:12px 14px }
  .modal-includes { padding:17px 16px 14px }
  .modal-includes li { font-size:.92rem }
  .upgrade-button { min-height:62px; font-size:1rem }
  .decline { min-height:52px; font-size:.86rem }
}

@media(max-width:360px) {
  .wrap { width:calc(100% - 32px) }
  .headline-art { width:100%; margin-inline:auto }
  .hero-offer>strong { font-size:3.25rem }
  .chips { grid-template-columns:1fr }
  .clinic-gallery { grid-template-columns:1fr }
  .clinic-feature { grid-column:auto }
  .clinic-photo figcaption { min-height:auto; font-size:.88rem }
  .modal-body { width:calc(100% - 28px) }
  .modal-price { font-size:3.1rem }
}

@media(prefers-reduced-motion:reduce) {
  * { scroll-behavior:auto!important; transition:none!important; animation:none!important }
}
