/* rev S1: glass pricing card over the final frame of a scroll animation (Phase 1: M3 hero -> AUTO TINT card) */
.s1-dim{position:absolute;inset:0;z-index:8;pointer-events:none;opacity:0;
  background:radial-gradient(120% 90% at 50% 52%,rgba(5,6,7,.38) 0%,rgba(5,6,7,.72) 60%,rgba(5,6,7,.9) 100%);
  -webkit-backdrop-filter:saturate(.85);backdrop-filter:saturate(.85)}
.s1-shimmer{position:absolute;inset:0;z-index:4;pointer-events:none;opacity:0;overflow:hidden;mix-blend-mode:screen}
.s1-shimmer:before{content:"";position:absolute;top:-30%;bottom:-30%;left:-40%;width:28%;transform:translateX(var(--sx,0)) rotate(14deg);
  background:linear-gradient(90deg,transparent,rgba(160,245,255,.07) 35%,rgba(220,252,255,.16) 50%,rgba(160,245,255,.07) 65%,transparent)}
.s1-card-on .copy,.s1-card-on .ibox,.s1-card-on .connector,.s1-card-on .scroll-hint{opacity:var(--s1o,1)!important}
.s1-card{position:absolute;z-index:9;left:50%;top:50%;width:min(760px,calc(100vw - 32px));transform:translate(-50%,-50%);
  visibility:hidden;opacity:0;pointer-events:none;color:#fff;border-radius:26px;padding:38px 40px 32px;
  background:linear-gradient(155deg,rgba(255,255,255,.13),rgba(255,255,255,.035) 42%,rgba(63,230,240,.05));
  -webkit-backdrop-filter:blur(22px) saturate(1.35);backdrop-filter:blur(22px) saturate(1.35);
  border:1px solid rgba(63,230,240,.32);
  box-shadow:0 0 0 1px rgba(255,255,255,.04) inset,0 1px 0 rgba(255,255,255,.22) inset,0 0 38px rgba(63,230,240,.22),0 0 110px rgba(63,230,240,.1),0 40px 90px rgba(0,0,0,.55)}
.s1-card.is-in{visibility:visible;pointer-events:auto}
/* moving cyan light along the glass edge */
.s1-card:before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1.5px;pointer-events:none;
  background:conic-gradient(from var(--ga,0deg),transparent 0 55%,rgba(63,230,240,.0) 60%,rgba(130,245,255,.95) 72%,rgba(63,230,240,0) 84%,transparent);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}
/* one-time sheen across the glass on entry */
.s1-card:after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.14) 45%,transparent 60%) no-repeat;background-size:250% 100%;background-position:var(--sh,130%) 0}
.s1-eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.22em;color:var(--cy);margin:0 0 10px}
.s1-h{font-size:40px;line-height:1;font-weight:800;letter-spacing:-.04em;margin:0 0 26px}
.s1-tiers{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.s1-tier{position:relative;border-radius:18px;padding:22px 22px 20px;background:rgba(8,12,14,.42);border:1px solid rgba(255,255,255,.1)}
.s1-tier-hi{border-color:rgba(63,230,240,.55);background:linear-gradient(160deg,rgba(63,230,240,.13),rgba(8,12,14,.45) 60%);box-shadow:0 0 28px rgba(63,230,240,.16) inset}
.s1-k{font-family:var(--mono);font-size:11px;letter-spacing:.2em;margin:0 0 14px;opacity:.9}
.s1-tier-hi .s1-k{color:var(--cy)}
.s1-from{font-size:13px;opacity:.65;margin:0;font-weight:500}
.s1-amt{font-size:58px;line-height:1;font-weight:800;letter-spacing:-.045em;margin:4px 0 12px}
.s1-tier-hi .s1-amt{text-shadow:0 0 28px rgba(63,230,240,.35)}
.s1-cap{font-family:var(--mono);font-size:11.5px;letter-spacing:.06em;opacity:.7;margin:0}
.s1-vary{font-size:14px;opacity:.72;margin:18px 2px 0;font-weight:500}
.s1-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:22px;flex-wrap:wrap}
.s1-chips{display:flex;gap:8px;margin:0;flex-wrap:wrap}
.s1-chip{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;padding:8px 12px;border-radius:999px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.04)}
.s1-chip-cy{color:var(--cy);border-color:rgba(63,230,240,.5);background:rgba(63,230,240,.07)}
@media (max-width:767px){
  .s1-card{top:auto;bottom:84px;padding:22px 18px 18px;border-radius:22px}
  .s1-dim{background:linear-gradient(180deg,rgba(5,6,7,.22) 0%,rgba(5,6,7,.3) 30%,rgba(5,6,7,.78) 52%,rgba(5,6,7,.92) 100%)}
  .s1-eyebrow{font-size:9.5px;margin-bottom:8px}
  .s1-h{font-size:26px;margin-bottom:14px}
  .s1-tiers{gap:10px}
  .s1-tier{padding:16px 13px 14px;border-radius:15px}
  .s1-k{font-size:9.5px;letter-spacing:.14em;margin-bottom:10px}
  .s1-from{font-size:11.5px}
  .s1-amt{font-size:40px;margin:3px 0 9px}
  .s1-cap{font-size:9.5px;letter-spacing:.02em;line-height:1.4}
  .s1-vary{font-size:12px;margin-top:12px}
  .s1-foot{margin-top:14px;gap:12px}
  .s1-chip{font-size:9px;padding:7px 10px}
  .s1-foot .ds-btn{width:100%;justify-content:center}
}
@media (prefers-reduced-motion:reduce){.s1-shimmer{display:none}}

/* ===== rev S1 Phase 2: PPF (Tesla final frame) + COMMERCIAL (after the C1 snake) cards; residential markup for R3 ===== */
/* module-managed opacities stay untouched: the section copy is faded with filter (multiplies, never overrides) */
.s1-fadeable.s1-card-on .tp-copy,.s1-fadeable.s1-card-on .tp-ibox,.s1-fadeable.s1-card-on .tp-hint,
.s1-fadeable.s1-card-on .cm-copy,.s1-fadeable.s1-card-on .cm-chip,.s1-fadeable.s1-card-on .cm-steps,.s1-fadeable.s1-card-on .cm-hint{filter:opacity(var(--s1o,1))}
.s1-fadeable.s1-card-on .tp-copy *,.s1-fadeable.s1-card-on .cm-copy *{pointer-events:none}
.s1-host .s1-btn{white-space:nowrap}
.s1-list{list-style:none;margin:0;padding:0;display:grid;gap:12px 22px}
.s1-list-2{grid-template-columns:1fr 1fr}
.s1-list li{position:relative;padding-left:22px;font-size:18px;font-weight:600;letter-spacing:-.01em}
.s1-list li:before{content:"";position:absolute;left:0;top:.42em;width:9px;height:9px;border-radius:50%;background:var(--cy);box-shadow:0 0 12px rgba(63,230,240,.8)}
.s1-card-com .s1-h{font-size:38px;line-height:1.04;margin-bottom:24px}
.s1-ppf-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:16px;align-items:stretch}
.s1-more{border-radius:18px;padding:20px 20px 14px;background:rgba(8,12,14,.42);border:1px solid rgba(255,255,255,.1)}
.s1-more .s1-k{margin-bottom:8px}
.s1-more-list{list-style:none;margin:0;padding:0}
.s1-more-list li{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:9px 0;border-top:1px solid rgba(255,255,255,.08);font-size:15.5px;font-weight:600}
.s1-more-list li:first-child{border-top:0}
.s1-more-list em{font-style:normal;font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--cy);opacity:.9;white-space:nowrap}
.s1-card-ppf .s1-cap{line-height:1.5}
@media (max-width:767px){
  .s1-host>.s1-card{top:auto;bottom:84px}
  .s1-list{gap:8px 12px}
  .s1-list li{font-size:14px;padding-left:17px}
  .s1-list li:before{width:7px;height:7px}
  .s1-card-com .s1-h{font-size:24px;margin-bottom:14px}
  .s1-ppf-grid{grid-template-columns:1fr;gap:10px}
  .s1-card-ppf .s1-amt{font-size:36px;margin-bottom:6px}
  .s1-more{padding:12px 14px 6px;border-radius:15px}
  .s1-more-list li{font-size:13px;padding:6px 0}
  .s1-more-list em{font-size:9px}
  .s1-card-ppf .s1-vary{margin-top:8px}
}
/* commercial (S1, Nov 2): full-bleed building, so the card is centred like the auto / residential / PPF cards */
#commercial .s1-card .s1-h{margin:0 0 24px;font-size:38px;line-height:1.04}
#commercial .s1-card .s1-eyebrow{margin:0 0 10px}
@media (min-width:768px){#commercial>.s1-card-com{width:min(720px,calc(100vw - 64px))}}
@media (max-width:767px){#commercial .s1-card .s1-h{margin-bottom:14px;font-size:24px}}

/* rev S1 deposit note (2026-11-02): one muted line under the CTA on all four price cards + the footer CTA. Flows on its own row of the foot. */
.s1-foot .cv-dep,.r3-foot .cv-dep{flex:1 0 100%;margin:-6px 2px 0;text-align:right;font-size:12.5px;line-height:1.3;font-weight:500;letter-spacing:.005em;color:inherit;opacity:.62;white-space:nowrap}
.cv-dep-book{margin:12px 0 0;font-size:14px;line-height:1.35;font-weight:500;opacity:.66}
@media (max-width:767px){
  .s1-foot .cv-dep,.r3-foot .cv-dep{margin:-4px 0 0;text-align:center;font-size:11.5px}
  .cv-dep-book{margin-top:10px;font-size:13px}
}

/* ===== FREE SCROLL (mobile / touch, html.cv-mob): price cards are normal in-flow page content =====
   No overlay, no dim, no fixed/sticky layer, no touch-action/overscroll capture. The block behind each card is that
   section's final frame (darkened), so the card's backdrop blur still reads as frosted glass. */
.cv-cardflow{--cy:#3fe6f0;--mono:"JB Mono",ui-monospace,Menlo,monospace;--sans:"Inter Tight",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  position:relative;display:block;padding:28px 0 30px;overflow:hidden;background:#07080a;color:#fff;font-family:var(--sans)}
.cv-cardflow:before{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(7,8,10,1) 0%,rgba(7,8,10,.35) 18%,rgba(7,8,10,.35) 78%,rgba(7,8,10,1) 100%),var(--cf-bg) center/cover no-repeat}
html.cv-mob .s1-card.cv-flow,html.cv-mob .r3-card.cv-flow,.s1-card.cv-flow,.r3-card.cv-flow{position:relative!important;left:auto!important;top:auto!important;right:auto!important;bottom:auto!important;
  transform:none!important;opacity:1!important;visibility:visible!important;pointer-events:auto!important;z-index:1;
  width:auto;max-width:760px;margin:0 auto;touch-action:auto;overscroll-behavior:auto}
/* before s1-cards.js moves them: the two cards that already sit outside their section must not flash as absolute layers */
html.cv-mob #s1-ppf,html.cv-mob #s1-com{display:none}
html.cv-mob #s1-ppf.cv-flow,html.cv-mob #s1-com.cv-flow{display:block}
html.cv-mob .s1-dim,html.cv-mob .s1-shimmer,html.cv-mob .r3-dim{display:none!important}
