/* ============================================================
   COMPLETE OUTDOORS — Swim by Spring (Oct 2026) landing page
   page-swim-by-spring.php only. Ported from the approved concept
   (docs/prototypes/swim-by-spring/, v3).

   Scoping: everything sits under .co-root.sbs, on top of co-pages.css
   (which still styles the shared pieces this page reuses: .btn, .eyebrow,
   .consent, .sticky, .sr-only, .proof-stars and the Design Center booking
   picker). Class names are sbs- prefixed so co-pages.js's scroll-reveal
   (.card/.step/.photo/...) never grabs them.

   Campaign accent (--camp) is seasonal and off-palette by design: it is
   used for text/ornament on navy only, never as a button. Gold stays the
   single key CTA per view.

   Motion: every animation lives inside prefers-reduced-motion:
   no-preference. Under reduce there is no animation or transition at all,
   and the bats and fog are not rendered.
   ============================================================ */

@font-face{
  font-family:'Creepster';
  src:url('../fonts/creepster.woff2') format('woff2');
  font-weight:400;font-style:normal;font-display:swap;
}

html:has(body.co-lp--sbs){scroll-behavior:smooth;scroll-padding-top:84px;}
body.co-lp--sbs{margin:0;padding:0;background:var(--co-sand-50);overflow-x:hidden;}

.co-root.sbs{
  --camp:#F2842A; --camp-deep:#c9611a;
  --page:var(--co-sand-50); --shell:var(--co-sand-100); --trav:var(--co-sand-200);
  --stone:#6b6357; --ctrl:#8A8172; --navy-800:#0a1623; --navy-muted:#93acc4;
  --gold-ink:#7D6229; --gold-wash:#faf5ea; --gold-400:#e0c894; --sky-ink:#0D5F70;
  --spooky:'Creepster','Montserrat',system-ui,sans-serif;
  --shadow:0 18px 40px -18px rgba(13,28,46,.35);
  overflow-x:clip;
}
.co-root.sbs [hidden]{display:none !important;}
/* Salient pads every <p> 27px at the bottom and indents lists/dd; this page spaces with grid gaps. */
.co-root.sbs p,.co-root.sbs dd,.co-root.sbs dt,.co-root.sbs ol,.co-root.sbs ul{padding-bottom:0;}
.co-root.sbs dd{padding-left:0;}
.co-root.sbs .sbs-wrap{max-width:1180px;margin:0 auto;padding-inline:24px;}
@media (max-width:520px){.co-root.sbs .sbs-wrap{padding-inline:16px;}}
.co-root.sbs h1,.co-root.sbs h2,.co-root.sbs h3{margin:0;text-wrap:balance;}
.co-root.sbs h2{font-size:clamp(1.75rem,2.6vw,2.25rem);line-height:1.2;}
.co-root.sbs h3{font-size:1.25rem;line-height:1.25;}
.co-root.sbs .sbs-sec{padding-block:clamp(56px,8vw,96px);position:relative;}
.co-root.sbs .sbs-light{background:var(--page);}
.co-root.sbs .sbs-shell{background:var(--shell);}
.co-root.sbs .sbs-dark{background:var(--navy);color:#fff;}
.co-root.sbs .sbs-dark h2,.co-root.sbs .sbs-dark h3{color:#fff;}
.co-root.sbs .sbs-dark .eyebrow{color:var(--gold-400);}
.co-root.sbs .sbs-dark .eyebrow::before{background:var(--gold-400);}
.co-root.sbs .eyebrow{color:var(--gold-ink);margin:0;}
.co-root.sbs .eyebrow::before{width:28px;background:currentColor;}
.co-root.sbs .sbs-head{display:grid;gap:14px;margin-bottom:40px;max-width:760px;}
.co-root.sbs .sbs-head--flush{margin:0;}
.co-root.sbs .sbs-lead{font-size:1.125rem;line-height:1.65;max-width:62ch;margin:0;}
.co-root.sbs .sbs-dark .sbs-lead{color:var(--navy-muted);}
.co-root.sbs .sbs-accent{font-family:var(--display);font-weight:700;color:var(--camp-deep);}
.co-root.sbs .sbs-dark .sbs-accent{color:var(--camp);}
.co-root.sbs :focus-visible{outline:3px solid var(--navy);outline-offset:3px;}
.co-root.sbs .sbs-dark :focus-visible,.co-root.sbs .sbs-hero :focus-visible,
.co-root.sbs .sbs-top :focus-visible,.co-root.sbs .sbs-foot :focus-visible{outline-color:var(--gold);}
.co-root.sbs #plan,.co-root.sbs #top{scroll-margin-top:72px;}
.co-root.sbs .sbs-btn-lg{padding:1em 1.7em;min-height:54px;font-size:1rem;}
.co-root.sbs .btn svg{width:18px;height:18px;flex:none;}

/* ── Top bar: logo (not a link), phone, ONE back link ── */
.co-root.sbs .sbs-top{position:sticky;top:0;z-index:40;background:rgba(10,22,35,.94);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid rgba(255,255,255,.08);}
.co-root.sbs .sbs-top .sbs-wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px;}
.co-root.sbs .sbs-logo{height:34px;width:auto;display:block;}
.co-root.sbs .sbs-top-r{display:flex;align-items:center;gap:18px;font-family:var(--display);font-size:.875rem;font-weight:600;}
.co-root.sbs .sbs-top-r a{text-decoration:none;}
.co-root.sbs .sbs-top-phone{color:var(--gold-400);}
.co-root.sbs .sbs-back{display:inline-flex;align-items:center;gap:6px;color:var(--navy-muted);}
.co-root.sbs .sbs-back:hover,.co-root.sbs .sbs-top-phone:hover{color:#fff;}
@media (max-width:640px){.co-root.sbs .sbs-back span{display:none;}.co-root.sbs .sbs-logo{height:28px;}}

/* ── Hero ── */
.co-root.sbs .sbs-hero{position:relative;overflow:hidden;color:#fff;
  background:radial-gradient(1200px 600px at 12% 0%,#1d3a55 0%,var(--navy) 55%,var(--navy-800) 100%);}
.co-root.sbs .sbs-hero-grid{display:grid;grid-template-columns:1.05fr 1fr;align-items:stretch;min-height:640px;}
.co-root.sbs .sbs-hero-copy{padding:64px 32px 64px 0;display:flex;flex-direction:column;justify-content:center;gap:22px;position:relative;z-index:3;}
.co-root.sbs .sbs-hero-img{position:relative;margin-right:calc(-1 * max(24px,(100vw - 1180px) / 2 + 24px));}
.co-root.sbs .sbs-hero-img img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:40% 50%;}
.co-root.sbs .sbs-hero-img::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(90deg,var(--navy) 0%,rgba(13,28,46,.6) 18%,rgba(13,28,46,0) 45%),linear-gradient(0deg,rgba(13,28,46,.55),rgba(13,28,46,0) 30%);}
.co-root.sbs .sbs-hero h1{color:#fff;font-size:inherit;line-height:1;}
.co-root.sbs .sbs-h1-a{font-family:var(--display);font-weight:600;font-size:clamp(1.9rem,3.4vw,2.9rem);line-height:1;letter-spacing:-.01em;display:block;}
.co-root.sbs .sbs-scared{font-family:var(--spooky);font-weight:400;color:var(--camp);font-size:clamp(4.6rem,10.5vw,8.6rem);
  line-height:.86;display:block;letter-spacing:.01em;text-shadow:0 6px 30px rgba(242,132,42,.25);margin:4px 0 6px -4px;}
.co-root.sbs .sbs-h1-b{font-family:var(--display);font-weight:600;font-size:clamp(1.3rem,2.3vw,1.9rem);line-height:1.2;display:block;max-width:22ch;}
.co-root.sbs .sbs-brush{display:block;width:min(420px,80%);height:14px;margin-top:10px;color:var(--camp);}
.co-root.sbs .sbs-hero-sub{font-size:1.125rem;line-height:1.6;color:#dfe7ef;max-width:48ch;margin:0;}
.co-root.sbs .sbs-hero-sub strong{color:var(--gold);}
.co-root.sbs .sbs-hero-actions{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:center;}
.co-root.sbs .sbs-phone-text{font-family:var(--display);font-weight:600;color:var(--navy-muted);font-size:.9375rem;}
.co-root.sbs .sbs-phone-text a{color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.35);}
.co-root.sbs .sbs-phone-text a:hover{border-color:var(--gold);}
.co-root.sbs .sbs-chip{display:inline-flex;align-items:center;gap:10px;align-self:flex-start;font-family:var(--display);font-weight:600;
  font-size:.8125rem;letter-spacing:.14em;text-transform:uppercase;color:var(--navy);background:var(--camp);
  padding:8px 16px 8px 12px;border-radius:999px;clip-path:polygon(2% 8%,98% 0,100% 88%,4% 100%);}
.co-root.sbs .sbs-chip--closed{background:var(--navy-muted);padding-left:16px;}
@media (max-width:520px){.co-root.sbs .sbs-chip{font-size:.6875rem;letter-spacing:.07em;padding:7px 12px 7px 10px;gap:8px;white-space:nowrap;}}
@media (max-width:359px){.co-root.sbs .sbs-chip{white-space:normal;}}
.co-root.sbs .sbs-dot{width:8px;height:8px;border-radius:50%;background:var(--navy);}
.co-root.sbs .sbs-offer-card{background:rgba(255,255,255,.06);border:1px solid rgba(212,181,118,.35);border-radius:16px;
  padding:18px 20px;display:grid;grid-template-columns:auto 1fr;column-gap:14px;row-gap:6px;align-items:center;max-width:520px;}
.co-root.sbs .sbs-offer-card>.sbs-jack{grid-row:1 / span 3;width:40px;height:40px;}
.co-root.sbs .sbs-oc-lbl{font-family:var(--display);font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-400);font-weight:600;}
.co-root.sbs .sbs-oc-ttl{font-family:var(--display);font-weight:600;font-size:1.25rem;color:#fff;line-height:1.25;}
.co-root.sbs .sbs-oc-txt{color:#dfe7ef;font-size:.9375rem;line-height:1.5;}
.co-root.sbs .sbs-countdown{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:baseline;font-family:var(--display);color:var(--navy-muted);
  font-size:.8125rem;letter-spacing:.1em;text-transform:uppercase;font-weight:600;margin:0;}
.co-root.sbs .sbs-num{font-size:1.9rem;color:#fff;letter-spacing:0;font-variant-numeric:tabular-nums;}
.co-root.sbs .sbs-spider{position:absolute;left:clamp(8px,3vw,40px);top:0;width:26px;z-index:3;color:#e8e3d8;transform-origin:top center;}
.co-root.sbs .sbs-spider svg{display:block;width:100%;}
.co-root.sbs .sbs-thread{width:1px;height:150px;background:linear-gradient(rgba(232,227,216,0),rgba(232,227,216,.67));margin:0 auto;}
.co-root.sbs .sbs-spider.sbs-s2{left:auto;right:clamp(8px,4vw,56px);}
.co-root.sbs .sbs-s2 .sbs-thread{height:90px;}
@media (max-width:900px){
  .co-root.sbs .sbs-hero-grid{grid-template-columns:1fr;min-height:0;}
  .co-root.sbs .sbs-hero-img{order:-1;margin-inline:-24px;height:min(78vw,420px);}
  .co-root.sbs .sbs-hero-img::after{background:linear-gradient(0deg,var(--navy) 0%,rgba(13,28,46,.3) 35%,rgba(13,28,46,0) 60%);}
  .co-root.sbs .sbs-hero-copy{padding:0 0 56px;margin-top:-48px;}
  .co-root.sbs .sbs-spider{display:none;}
}
@media (max-width:520px){.co-root.sbs .sbs-hero-img{margin-inline:-16px;}}

/* ── Spooky layer: bats, fog, drip, cobwebs, tombstone, moon ── */
.co-root.sbs .sbs-fog{position:absolute;left:0;right:0;bottom:0;height:180px;pointer-events:none;z-index:1;overflow:hidden;}
.co-root.sbs .sbs-fog i{position:absolute;bottom:-40px;left:-50%;width:200%;height:200px;
  background:radial-gradient(40% 60% at 20% 70%,rgba(223,231,239,.14),transparent 70%),radial-gradient(35% 50% at 60% 80%,rgba(223,231,239,.12),transparent 70%),radial-gradient(30% 45% at 85% 65%,rgba(223,231,239,.10),transparent 70%);}
.co-root.sbs .sbs-fog i:nth-child(2){opacity:.8;bottom:-70px;}
.co-root.sbs .sbs-bats{position:absolute;inset:0;pointer-events:none;z-index:2;overflow:hidden;}
.co-root.sbs .sbs-bat{position:absolute;left:102%;width:34px;color:#060f19;opacity:0;}
.co-root.sbs .sbs-bat svg{width:100%;display:block;transform-origin:center;}
.co-root.sbs .sbs-bat.b1{top:18%;}
.co-root.sbs .sbs-bat.b2{top:30%;width:24px;}
.co-root.sbs .sbs-bat.b3{top:10%;width:18px;}
.co-root.sbs .sbs-final .sbs-bat{color:#14293f;}
.co-root.sbs .sbs-drip{display:block;width:100%;height:34px;background:var(--page);margin-top:-1px;}
.co-root.sbs .sbs-drip path{fill:var(--navy-800);}
.co-root.sbs .sbs-moon{position:absolute;right:8%;top:14%;width:clamp(90px,14vw,170px);aspect-ratio:1;border-radius:50%;z-index:1;opacity:.9;
  background:radial-gradient(circle at 38% 38%,#fbf6e9,#e9dfc6 60%,#cfc3a6);box-shadow:0 0 60px 20px rgba(233,223,198,.25);}
.co-root.sbs .sbs-moon::after{content:"";position:absolute;inset:0;border-radius:50%;
  background:radial-gradient(circle at 62% 60%,rgba(0,0,0,.08) 0 9%,transparent 10%),radial-gradient(circle at 35% 68%,rgba(0,0,0,.06) 0 6%,transparent 7%),radial-gradient(circle at 55% 30%,rgba(0,0,0,.05) 0 7%,transparent 8%);}

@media (prefers-reduced-motion:no-preference){
  .co-root.sbs .sbs-fog i{animation:sbs-fog 38s linear infinite;}
  .co-root.sbs .sbs-fog i:nth-child(2){animation-duration:55s;animation-direction:reverse;}
  .co-root.sbs .sbs-bat{animation:sbs-bat 16s linear infinite;}
  .co-root.sbs .sbs-bat svg{animation:sbs-flap .28s ease-in-out infinite alternate;}
  .co-root.sbs .sbs-bat.b1{animation-delay:1.5s;}
  .co-root.sbs .sbs-bat.b2{animation-delay:6s;animation-duration:19s;}
  .co-root.sbs .sbs-bat.b3{animation-delay:11s;animation-duration:22s;}
  .co-root.sbs .sbs-scared{animation:sbs-flicker 7s infinite;}
  .co-root.sbs .sbs-num{animation:sbs-glow 3.2s ease-in-out infinite;}
  .co-root.sbs .sbs-dot{animation:sbs-pulse 1.6s ease-in-out infinite;}
  .co-root.sbs .sbs-spider{animation:sbs-drop 1.8s cubic-bezier(.3,1.4,.5,1) .4s both,sbs-sway 6s ease-in-out 2.2s infinite;}
  .co-root.sbs .sbs-spider.sbs-s2{animation-delay:.9s,3s;}
  .co-root.sbs .sbs-bar i{transition:width .35s ease;}
  .co-root.sbs .sbs-pk{transition:left .35s ease;}
  .co-root.sbs .sbs-faq summary::after{transition:transform .2s;}
}
@keyframes sbs-fog{from{transform:translateX(0)}to{transform:translateX(25%)}}
@keyframes sbs-bat{0%{left:102%;opacity:0;transform:translateY(0)}6%{opacity:.85}30%{transform:translateY(-26px)}55%{transform:translateY(14px)}80%{transform:translateY(-10px);opacity:.85}100%{left:-8%;opacity:0;transform:translateY(0)}}
@keyframes sbs-flap{from{transform:scaleY(1)}to{transform:scaleY(.55)}}
@keyframes sbs-flicker{0%,18%,22%,62%,64%,100%{opacity:1;text-shadow:0 6px 30px rgba(242,132,42,.25)}20%,63%{opacity:.72;text-shadow:none}}
@keyframes sbs-glow{50%{color:#ffd9b0;text-shadow:0 0 14px rgba(242,132,42,.55)}}
@keyframes sbs-pulse{50%{opacity:.25}}
@keyframes sbs-drop{from{transform:translateY(-160px)}to{transform:translateY(0)}}
@keyframes sbs-sway{50%{transform:rotate(4deg)}}
@media (prefers-reduced-motion:reduce){
  html:has(body.co-lp--sbs){scroll-behavior:auto;}
  .co-root.sbs .sbs-bats,.co-root.sbs .sbs-fog{display:none !important;}
  .co-root.sbs *,.co-root.sbs *::before,.co-root.sbs *::after{animation:none !important;transition:none !important;}
}

/* ── Proof strip ── */
.co-root.sbs .sbs-strip{background:var(--navy-800);color:#fff;padding-block:22px;border-top:1px solid rgba(255,255,255,.06);}
.co-root.sbs .sbs-strip .sbs-wrap{display:flex;flex-wrap:wrap;gap:14px 28px;justify-content:space-between;align-items:center;}
.co-root.sbs .sbs-strip-i{display:flex;align-items:center;gap:10px;font-family:var(--display);font-weight:600;font-size:.8125rem;letter-spacing:.1em;text-transform:uppercase;color:#fff;}
@media (min-width:1100px){.co-root.sbs .sbs-strip .sbs-wrap{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;}}
@media (min-width:641px) and (max-width:1099px){.co-root.sbs .sbs-strip .sbs-wrap{display:grid;grid-template-columns:1fr 1fr;}}
.co-root.sbs .sbs-strip-i svg{width:26px;height:26px;color:var(--gold-400);flex:none;}
@media (max-width:640px){.co-root.sbs .sbs-strip .sbs-wrap{display:grid;grid-template-columns:1fr;gap:12px;justify-content:start;}}

/* ── Problem cards ── */
.co-root.sbs .sbs-cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
@media (max-width:860px){.co-root.sbs .sbs-cards3{grid-template-columns:1fr;}}
.co-root.sbs .sbs-pcard{position:relative;overflow:hidden;background:#fff;border:1px solid var(--trav);border-radius:16px;padding:28px;display:grid;gap:12px;align-content:start;box-shadow:var(--shadow);}
.co-root.sbs .sbs-pcard p{margin:0;color:var(--ink);}
.co-root.sbs .sbs-tag{font-family:var(--display);font-weight:600;font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--stone);}
.co-root.sbs .sbs-ic{width:44px;height:44px;border-radius:10px;background:var(--navy);display:grid;place-items:center;color:var(--camp);}
.co-root.sbs .sbs-ic svg{width:24px;height:24px;}
.co-root.sbs .sbs-web{position:absolute;top:-2px;right:-2px;width:74px;height:74px;color:#d6cebd;pointer-events:none;}

/* ── Why October: two tracks, the losing one ends in a tombstone ── */
.co-root.sbs .sbs-tracks{display:grid;gap:18px;}
.co-root.sbs .sbs-track{display:grid;grid-template-columns:180px 1fr;gap:18px;align-items:center;}
.co-root.sbs .sbs-track-name{font-family:var(--display);font-weight:600;font-size:1rem;color:#fff;}
.co-root.sbs .sbs-track-name small{display:block;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--navy-muted);margin-top:2px;}
.co-root.sbs .sbs-phases{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;list-style:none;margin:0;padding:0;}
.co-root.sbs .sbs-phase{margin:0;padding:14px;border-radius:6px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);display:grid;gap:2px;min-height:76px;align-content:center;}
.co-root.sbs .sbs-phase .m{font-family:var(--display);font-weight:600;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--navy-muted);}
.co-root.sbs .sbs-phase .w{font-family:var(--display);font-weight:600;color:#fff;font-size:.9375rem;}
.co-root.sbs .sbs-win .sbs-phase:last-child{background:var(--sky);border-color:var(--sky);}
.co-root.sbs .sbs-win .sbs-phase:last-child .m{color:var(--sky-ink);}
.co-root.sbs .sbs-win .sbs-phase:last-child .w{color:var(--navy);}
.co-root.sbs .sbs-tomb{border-radius:44px 44px 6px 6px;text-align:center;justify-items:center;background:linear-gradient(#3a4452,#2a323d);border-color:#5a6573;}
.co-root.sbs .sbs-tomb .m{color:#c9d6e3;}
.co-root.sbs .sbs-tomb .w{color:#e8e3d8;font-size:1.0625rem;letter-spacing:.02em;}
@media (max-width:760px){.co-root.sbs .sbs-track{grid-template-columns:1fr;}.co-root.sbs .sbs-phases{grid-template-columns:repeat(2,1fr);}}
.co-root.sbs .sbs-track-foot{font-size:.8125rem;color:var(--navy-muted);margin:14px 0 0;max-width:none;}
.co-root.sbs .sbs-why-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:20px;align-items:center;margin-top:32px;}
.co-root.sbs .sbs-why-foot p{max-width:58ch;color:#dfe7ef;margin:0;}

/* ── Guide + reviews ── */
.co-root.sbs .sbs-guide{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start;}
@media (max-width:860px){.co-root.sbs .sbs-guide{grid-template-columns:1fr;gap:32px;}}
.co-root.sbs .sbs-guide-copy{display:grid;gap:18px;}
.co-root.sbs .sbs-guide-copy p{margin:0;}
.co-root.sbs .sbs-guide-copy .sbs-pos{font-family:var(--display) !important;font-weight:600;font-size:1.25rem;color:var(--navy);border-left:3px solid var(--gold);padding-left:16px;line-height:1.35;}
.co-root.sbs .sbs-reviews{display:grid;gap:12px;}
.co-root.sbs .sbs-review{margin:0;background:#fff;border:1px solid var(--trav);border-radius:16px;padding:18px 20px;display:grid;gap:8px;}
.co-root.sbs .sbs-review .proof-stars{margin:0;color:var(--gold-ink);font-size:.875rem;letter-spacing:.12em;}
.co-root.sbs .sbs-review blockquote{margin:0;padding:0;border:0;background:none;}
.co-root.sbs .sbs-review blockquote::before,.co-root.sbs .sbs-review blockquote::after{content:none;display:none;}
.co-root.sbs .sbs-review blockquote p{margin:0;font-size:.9375rem;line-height:1.6;color:var(--ink);font-style:normal;max-width:none;}
.co-root.sbs .sbs-review figcaption{font-size:.8125rem;}
.co-root.sbs .sbs-review cite{font-style:normal;font-family:var(--display) !important;font-weight:600;color:var(--navy);}
.co-root.sbs .sbs-review figcaption span{color:var(--stone);font-family:var(--display);font-weight:500;}

/* ── Three steps ── */
.co-root.sbs .sbs-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;list-style:none;margin:0;padding:0;}
@media (max-width:860px){.co-root.sbs .sbs-steps{grid-template-columns:1fr;}}
.co-root.sbs .sbs-stepcard{margin:0;background:#fff;border-radius:16px;padding:28px;display:grid;gap:10px;align-content:start;border:1px solid var(--trav);}
.co-root.sbs .sbs-stepcard .n{font-family:var(--display);font-weight:700;font-size:.8125rem;letter-spacing:.16em;color:var(--gold-ink);}
.co-root.sbs .sbs-stepcard p{margin:0;color:var(--stone);}

/* ── Offer + planner ── */
.co-root.sbs .sbs-planner-sec{overflow:hidden;}
.co-root.sbs .sbs-planner-sec::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(700px 400px at 90% 10%,rgba(242,132,42,.12),transparent 60%),radial-gradient(600px 400px at 0% 100%,rgba(177,241,252,.07),transparent 60%);}
.co-root.sbs .sbs-planner-grid{position:relative;display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:start;}
@media (max-width:960px){.co-root.sbs .sbs-planner-grid{grid-template-columns:1fr;gap:32px;}}
@media (max-width:900px){.co-root.sbs .sbs-planner-sec .sbs-spider{display:none;}}
.co-root.sbs .sbs-offer-big{display:grid;gap:16px;}
.co-root.sbs .sbs-ob-ttl{font-family:var(--display);font-weight:600;font-size:clamp(1.6rem,2.6vw,2.2rem);color:var(--gold) !important;line-height:1.15;}
.co-root.sbs .sbs-ob-txt{color:#dfe7ef;font-size:1.0625rem;max-width:46ch;margin:0;}
.co-root.sbs .sbs-light-stat{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:center;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:16px 18px;}
.co-root.sbs .sbs-light-stat .big{font-family:var(--display);font-weight:700;font-size:2.4rem;color:var(--gold);line-height:1;font-variant-numeric:tabular-nums;}
.co-root.sbs .sbs-light-stat p{color:#dfe7ef;font-size:.9375rem;margin:0;}
@media (max-width:420px){.co-root.sbs .sbs-light-stat{grid-template-columns:1fr;gap:8px;}}
.co-root.sbs .sbs-offer-list{display:grid;gap:10px;margin:4px 0 0;padding:0;list-style:none;}
.co-root.sbs .sbs-offer-list li{display:grid;grid-template-columns:22px 1fr;gap:10px;color:#fff;font-size:.9375rem;margin:0;}
.co-root.sbs .sbs-offer-list svg{width:20px;height:20px;color:var(--sky);margin-top:2px;}
.co-root.sbs .sbs-fine{font-size:.8125rem;color:var(--navy-muted);line-height:1.5;max-width:52ch;margin:0;}

.co-root.sbs .sbs-planner{background:#fff;color:var(--ink);border-radius:16px;box-shadow:0 30px 60px -24px rgba(0,0,0,.55);overflow:hidden;position:relative;scroll-margin-top:80px;}
.co-root.sbs .sbs-pl-head{background:var(--page);padding:18px 24px;border-bottom:1px solid var(--trav);display:grid;gap:12px;}
.co-root.sbs .sbs-pl-top{display:flex;justify-content:space-between;align-items:center;gap:12px;font-family:var(--display);font-weight:600;font-size:.8125rem;letter-spacing:.14em;text-transform:uppercase;color:var(--navy);}
.co-root.sbs .sbs-pl-top .count{color:var(--stone);letter-spacing:.08em;}
.co-root.sbs .sbs-bar{position:relative;height:6px;background:var(--trav);border-radius:999px;overflow:visible;margin:4px 11px;}
.co-root.sbs .sbs-bar i{display:block;height:100%;width:25%;background:linear-gradient(90deg,var(--navy),var(--sky-ink));border-radius:999px;}
.co-root.sbs .sbs-pk{position:absolute;top:50%;left:25%;width:22px;height:22px;margin:-11px 0 0 -11px;}
.co-root.sbs .sbs-pl-body{padding:26px 24px 24px;margin:0;}
.co-root.sbs .sbs-pl-step{display:grid;gap:16px;border:0;margin:0;padding:0;min-width:0;}
.co-root.sbs .sbs-q{font-family:var(--display);font-weight:600;font-size:1.375rem;color:var(--navy);line-height:1.25;padding:0;margin:0 0 16px;float:none;width:100%;}
.co-root.sbs .sbs-q:focus{outline:none;}
.co-root.sbs .sbs-help{color:var(--stone);font-size:.9375rem;margin:-8px 0 0;}
.co-root.sbs .sbs-opts{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.co-root.sbs .sbs-opts.one{grid-template-columns:1fr;}
@media (max-width:520px){.co-root.sbs .sbs-opts{grid-template-columns:1fr;}}
.co-root.sbs .sbs-opt{position:relative;}
.co-root.sbs .sbs-opt input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer;z-index:1;}
.co-root.sbs .sbs-opt label{display:grid;gap:2px;padding:14px 16px 14px 48px;border:1.5px solid var(--ctrl);border-radius:12px;cursor:pointer;background:#fff;
  transition:border-color .15s,background .15s;min-height:64px;align-content:center;position:relative;font-family:var(--display);margin:0;text-transform:none;letter-spacing:0;}
.co-root.sbs .sbs-opt label::before{content:"";position:absolute;left:16px;top:50%;width:20px;height:20px;margin-top:-10px;border:1.5px solid var(--ctrl);border-radius:50%;background:#fff;}
.co-root.sbs .sbs-opt input[type=checkbox]+label::before{border-radius:5px;}
.co-root.sbs .sbs-opt label b{font-weight:600;color:var(--navy);font-size:.9875rem;line-height:1.3;}
.co-root.sbs .sbs-opt label span{font-family:var(--body);font-size:.8125rem;color:var(--stone);line-height:1.4;}
.co-root.sbs .sbs-opt input:hover+label{border-color:var(--navy);}
.co-root.sbs .sbs-opt input:checked+label{border-color:var(--navy);background:var(--gold-wash);box-shadow:inset 0 0 0 1px var(--navy);}
.co-root.sbs .sbs-opt input:checked+label::before{background:var(--navy);border-color:var(--navy);box-shadow:inset 0 0 0 4px #fff;}
.co-root.sbs .sbs-opt input[type=checkbox]:checked+label::before{box-shadow:none;background:var(--navy) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") center/14px no-repeat;}
.co-root.sbs .sbs-opt input:focus-visible+label{outline:3px solid var(--navy);outline-offset:2px;}
.co-root.sbs .sbs-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.co-root.sbs .sbs-fields .full{grid-column:1 / -1;}
@media (max-width:520px){.co-root.sbs .sbs-fields{grid-template-columns:1fr;}}
.co-root.sbs .sbs-field{display:grid;gap:6px;margin:0;}
.co-root.sbs .sbs-field>label{font-family:var(--display);font-weight:600;font-size:.8125rem;color:var(--navy);letter-spacing:.02em;text-transform:none;margin:0;}
.co-root.sbs .sbs-field input[type=text],.co-root.sbs .sbs-field input[type=tel],.co-root.sbs .sbs-field input[type=email]{
  font:inherit;font-family:var(--body) !important;font-size:1rem !important;line-height:1.4 !important;padding:13px 14px !important;border:1.5px solid var(--ctrl) !important;
  border-radius:6px !important;background:#fff !important;color:var(--ink) !important;width:100%;height:auto !important;min-height:48px;margin:0 !important;box-shadow:none !important;}
.co-root.sbs .sbs-field input:focus{outline:3px solid var(--navy);outline-offset:1px;border-color:var(--navy) !important;}
.co-root.sbs .sbs-field input[aria-invalid=true]{border-color:var(--red) !important;}
.co-root.sbs .sbs-consent-wrap .consent{font-size:.8125rem;line-height:1.45;}
.co-root.sbs .sbs-consent-cap{margin:4px 0 0 26px;}
.co-root.sbs .sbs-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.co-root.sbs .sbs-pl-err{color:#8f3524;font-size:.875rem;font-weight:600;min-height:1.2em;margin:12px 0 0;max-width:none;}
.co-root.sbs .sbs-pl-err:empty{margin:0;}
.co-root.sbs .sbs-pl-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;}
.co-root.sbs .sbs-pl-back{background:none;border:0;font-family:var(--display);font-weight:600;color:var(--stone);cursor:pointer;font-size:.9375rem;padding:10px 4px;}
.co-root.sbs .sbs-pl-back:hover{color:var(--navy);}
.co-root.sbs .sbs-pl-back[disabled]{visibility:hidden;}
.co-root.sbs .sbs-pl-next{min-width:140px;}
.co-root.sbs .sbs-pl-trust{display:flex;gap:8px;align-items:center;justify-content:center;font-size:.8125rem;color:var(--stone);padding:14px 24px;border-top:1px solid var(--trav);background:var(--page);text-align:center;}
.co-root.sbs .sbs-pl-trust svg{width:16px;height:16px;color:var(--sky-ink);flex:none;}
.co-root.sbs .sbs-noscript{padding:0 24px 20px;margin:0;}
.co-root.sbs .sbs-done{padding:26px 24px 24px;display:grid;gap:14px;}
.co-root.sbs .sbs-done>p{margin:0;max-width:none;}
.co-root.sbs .sbs-done .sbs-done-big{font-family:var(--display) !important;font-weight:600;font-size:1.75rem;color:var(--navy);line-height:1.2;}
.co-root.sbs .sbs-done-big:focus{outline:none;}
.co-root.sbs .sbs-done-big .sbs-accent{font-size:1em;}
.co-root.sbs .sbs-book{border:1px solid var(--trav);border-radius:12px;background:var(--page);padding:18px;}
.co-root.sbs .sbs-book .bkp-days,.co-root.sbs .sbs-book .bkp-times{margin-bottom:12px;}
.co-root.sbs .sbs-recap{display:grid;gap:6px;font-size:.875rem;background:var(--gold-wash);border-radius:12px;padding:14px 16px;margin:0;}
.co-root.sbs .sbs-recap:empty{display:none;}
.co-root.sbs .sbs-recap div{display:grid;grid-template-columns:120px 1fr;gap:10px;}
.co-root.sbs .sbs-recap dt{font-family:var(--display) !important;font-weight:600;color:var(--gold-ink);font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;margin:0;}
.co-root.sbs .sbs-recap dd{margin:0;color:var(--ink);}
@media (max-width:420px){.co-root.sbs .sbs-recap div{grid-template-columns:1fr;gap:0;}}

/* ── Dream gallery ── */
.co-root.sbs .sbs-dream-copy{display:grid;grid-template-columns:1fr 1fr;gap:48px;margin-bottom:36px;align-items:end;}
@media (max-width:860px){.co-root.sbs .sbs-dream-copy{grid-template-columns:1fr;gap:18px;}}
.co-root.sbs .sbs-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:start;}
@media (max-width:760px){.co-root.sbs .sbs-gallery{grid-template-columns:1fr;}}
.co-root.sbs .sbs-photo{margin:0;display:grid;gap:8px;align-content:start;}
.co-root.sbs .sbs-photo-frame{position:relative;border-radius:16px;overflow:hidden;background:var(--navy);aspect-ratio:4/3;}
.co-root.sbs .sbs-photo-frame img{position:absolute;inset:0;width:100% !important;height:100% !important;max-width:none !important;object-fit:cover;display:block;}
.co-root.sbs .sbs-photo figcaption{font-size:.8125rem;color:var(--stone);}

/* ── FAQ ── */
.co-root.sbs .sbs-faq{display:grid;gap:10px;max-width:860px;}
.co-root.sbs .sbs-faq details{background:#fff;border:1px solid var(--trav);border-radius:12px;padding:0 20px;}
.co-root.sbs .sbs-faq summary{cursor:pointer;list-style:none;padding:18px 0;font-family:var(--display);font-weight:600;color:var(--navy);display:flex;justify-content:space-between;gap:16px;align-items:center;}
.co-root.sbs .sbs-faq summary::-webkit-details-marker{display:none;}
.co-root.sbs .sbs-faq summary::after{content:"+";font-size:1.4rem;color:var(--gold-ink);line-height:1;flex:none;}
.co-root.sbs .sbs-faq details[open] summary::after{transform:rotate(45deg);}
.co-root.sbs .sbs-faq details p{padding:0 0 18px;margin:0;color:var(--stone);max-width:68ch;}

/* ── Final CTA with moon ── */
.co-root.sbs .sbs-final{overflow:hidden;}
.co-root.sbs .sbs-final-bg{position:absolute;inset:0;background-size:cover;background-position:60% 60%;opacity:.28;}
.co-root.sbs .sbs-final::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,var(--navy) 30%,rgba(13,28,46,.55));}
.co-root.sbs .sbs-final .sbs-wrap{position:relative;z-index:3;display:grid;gap:20px;justify-items:start;}
.co-root.sbs .sbs-final h2{font-size:clamp(2rem,4vw,3.25rem);line-height:1.08;max-width:18ch;}
.co-root.sbs .sbs-final .sbs-moon{z-index:2;}
.co-root.sbs .sbs-final .sbs-bats{z-index:2;}
@media (max-width:640px){.co-root.sbs .sbs-final .sbs-moon{top:6%;right:4%;opacity:.55;}}

/* ── Footer ── */
.co-root.sbs .sbs-foot{background:var(--navy-800);color:var(--navy-muted);padding-block:48px;font-size:.875rem;}
.co-root.sbs .sbs-foot .sbs-wrap{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:32px;}
@media (max-width:760px){.co-root.sbs .sbs-foot .sbs-wrap{grid-template-columns:1fr;}}
.co-root.sbs .sbs-foot-a,.co-root.sbs .sbs-foot-b{display:grid;gap:12px;align-content:start;}
.co-root.sbs .sbs-foot img{height:36px;width:auto;}
.co-root.sbs .sbs-foot address{font-style:normal;line-height:1.7;color:#dfe7ef;margin:0;}
.co-root.sbs .sbs-foot a{color:var(--gold-400);}
.co-root.sbs .sbs-foot-fine{max-width:none;}

/* ── Sticky mobile bar: reuses co-pages .sticky (hidden >=1024px) ── */
.co-root.sbs .sbs-sticky{display:flex;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));border-top:1px solid rgba(242,132,42,.4);}
.co-root.sbs .sbs-sticky .btn--gold{flex:1 1 auto;}
.co-root.sbs .sbs-sticky .sbs-sticky-call{flex:0 0 auto;white-space:nowrap;}
/* Out of the way while the planner itself is on screen (and after it succeeds). */
.co-root.sbs .sbs-sticky.is-off{transform:translateY(110%);visibility:hidden;}
@media (prefers-reduced-motion:no-preference){.co-root.sbs .sbs-sticky{transition:transform .25s ease,visibility .25s;}}
@media (max-width:360px){.co-root.sbs .sbs-sticky .btn{font-size:.8rem;padding:.6em .8em;}}
@media (min-width:1024px){.co-root.sbs .sbs-sticky{display:none;}}

/* Stale-page guard: set by JS if a cached live copy is still open past the deadline. */
.co-root.sbs.sbs-expired [data-live-only]{display:none !important;}
