/* SIMUL8OR PAYWALL / UPGRADE GATE — kit v0.3, Version A (Ledger). */
.s8-paywall-layer{position:fixed;z-index:2400;inset:0;display:none;align-items:center;justify-content:center;padding:var(--s8-5);overflow:auto;background:rgba(3,5,8,.78)}
.s8-paywall-layer.is-open{display:flex}
.s8-paywall-layer .pw{flex:none;max-width:660px;margin:auto 0}
.pw{position:relative;width:100%;background:var(--s8-panel);border:1px solid var(--s8-line-2);border-radius:var(--s8-r-lg);box-shadow:var(--s8-pop-lg);overflow:hidden}
.pw__head{position:relative;display:grid;justify-items:center;gap:var(--s8-3);padding:var(--s8-7) var(--s8-6) var(--s8-5);text-align:center}
.pw__h{font-size:35px;line-height:1.14;letter-spacing:-.022em;font-weight:600;color:#fff;margin:0;text-wrap:balance}
.pw__h em{font-style:normal;color:var(--s8-gold-hi)}
.pw__sub{margin:0;max-width:46ch;font-size:var(--s8-fs-base);line-height:1.5;color:var(--s8-fg-2);text-wrap:pretty}
.pw__proof{display:inline-flex;align-items:center;gap:9px;font-size:var(--s8-fs-sm);color:var(--s8-fg-2)}
.pw__proof b{color:#fff;font-weight:600;font-variant-numeric:tabular-nums}
.pw__stars{color:var(--s8-gold);letter-spacing:.12em;font-size:var(--s8-fs-sm)}
.a .pw__body{display:grid;gap:var(--s8-7);padding:0 var(--s8-6) var(--s8-7)}
.a .pw__head{gap:var(--s8-4);padding:var(--s8-7) 0 0}
.a .pw__act{gap:var(--s8-4)}
.pw__plans{display:grid;grid-template-columns:1fr 1fr;gap:var(--s8-3)}
.pw-plan{position:relative;display:grid;gap:2px;padding:var(--s8-4) var(--s8-4) var(--s8-3);border:1px solid var(--s8-line-2);border-radius:var(--s8-r-lg);background:var(--s8-inset);text-align:left;cursor:pointer;font:inherit;color:var(--s8-fg);transition:border-color var(--s8-t) var(--s8-ease),background var(--s8-t) var(--s8-ease)}
.pw-plan:hover{border-color:var(--s8-line-3);background:var(--s8-panel-2)}
.pw-plan__term{display:flex;align-items:center;gap:8px;padding-right:26px;font-size:var(--s8-fs-micro);font-weight:700;letter-spacing:var(--s8-ls-caps);text-transform:uppercase;color:var(--s8-fg-3)}
.pw-plan__price{display:flex;align-items:baseline;gap:4px;font-size:var(--s8-fs-2xl);font-weight:600;letter-spacing:-.02em;color:#fff;font-variant-numeric:tabular-nums;line-height:1.15}
.pw-plan__price span{font-size:var(--s8-fs-sm);font-weight:500;color:var(--s8-fg-3);letter-spacing:0}
.pw-plan__note{font-size:var(--s8-fs-xs);color:var(--s8-fg-4);font-variant-numeric:tabular-nums}
.pw-plan__save{margin-left:auto;padding:0 6px;height:16px;display:inline-flex;align-items:center;white-space:nowrap;font-style:normal;border-radius:var(--s8-r-xs);background:var(--s8-gold-tint);border:1px solid var(--s8-gold-line);color:var(--s8-gold-hi);font-size:var(--s8-fs-micro);font-weight:700;letter-spacing:.06em}
.pw-plan.is-on{border-color:var(--s8-gold-line);background:linear-gradient(180deg,rgba(245,177,74,.09),rgba(245,177,74,.02))}
.pw-plan.is-on .pw-plan__term{color:var(--s8-gold-hi)}
.pw-plan__tick{position:absolute;right:12px;top:12px;width:16px;height:16px;border-radius:50%;border:1px solid var(--s8-line-3);display:flex;align-items:center;justify-content:center}
.pw-plan.is-on .pw-plan__tick{background:var(--s8-gold);border-color:var(--s8-gold)}
.pw-plan__tick svg{width:9px;height:9px;stroke:#2e1d02;stroke-width:3;fill:none;stroke-linecap:round;stroke-linejoin:round;opacity:0}
.pw-plan.is-on .pw-plan__tick svg{opacity:1}
.pw__feats{display:grid;grid-template-columns:1fr 1fr;gap:var(--s8-3) var(--s8-5);margin:0;padding:0;list-style:none}
.pw__feats li{display:grid;grid-template-columns:16px minmax(0,1fr);gap:10px;align-items:start;font-size:var(--s8-fs-md);line-height:1.35;color:var(--s8-fg);text-wrap:pretty}
.pw__feats svg{width:16px;height:16px;margin-top:2px;stroke:var(--s8-up);stroke-width:2.4;fill:none;stroke-linecap:round;stroke-linejoin:round}
.pw__compare-scroll{min-width:0}
.pw__rule{display:flex;align-items:center;gap:var(--s8-3);font-size:var(--s8-fs-micro);font-weight:600;letter-spacing:var(--s8-ls-caps);text-transform:uppercase;color:var(--s8-fg-4)}
.pw__rule::after{content:"";flex:1;height:1px;background:var(--s8-line)}
.pw-cmp{width:100%;border-collapse:collapse;font-size:var(--s8-fs-sm)}
.pw-cmp th{height:28px;padding:0 8px;text-align:center;font-size:var(--s8-fs-micro);font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--s8-fg-4);border-bottom:1px solid var(--s8-line-2);white-space:nowrap}
.pw-cmp th:first-child,.pw-cmp td:first-child{text-align:left;padding-left:12px}
.pw-cmp td{height:38px;padding:0 8px;text-align:center;color:var(--s8-fg-2);border-bottom:1px solid var(--s8-line);white-space:nowrap;font-variant-numeric:tabular-nums}
.pw-cmp tbody tr:last-child td{border-bottom:0}
.pw-cmp .n{color:var(--s8-fg);font-weight:500}.pw-cmp .y{color:var(--s8-up);font-weight:500}.pw-cmp .x{color:var(--s8-fg-4)}.pw-cmp .l{color:var(--s8-warn)}.pw-cmp .cost{color:var(--s8-fg-2);font-weight:500}
.pw-cmp tr.is-us td{height:44px;background:linear-gradient(180deg,rgba(245,177,74,.10),rgba(245,177,74,.05));border-top:1px solid var(--s8-gold-line);border-bottom:1px solid var(--s8-gold-line);color:#fff;font-weight:600}
.pw-cmp tr.is-us td:first-child{box-shadow:inset 3px 0 0 var(--s8-gold)}
.pw-cmp tr.is-us .y{color:var(--s8-gold-hi)}
.pw-cmp tr.is-us .us{display:flex;align-items:center;gap:7px;color:#fff}
.pw-cmp tr.is-us .us b{font-weight:600}
.pw-cmp tr.is-us .us i{padding:1px 4px;border:1px solid var(--s8-gold-line);border-radius:var(--s8-r-xs);color:var(--s8-gold-hi);font-style:normal;font-size:var(--s8-fs-micro);font-weight:700;letter-spacing:.08em}
.pw__act{display:grid;gap:var(--s8-3);justify-items:center}
.pw-cta{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;height:52px;border:0;border-radius:var(--s8-r-lg);background:var(--s8-reward-grad);color:#3a2503;font:inherit;font-size:var(--s8-fs-lg);font-weight:700;letter-spacing:-.005em;cursor:pointer;box-shadow:0 12px 34px -14px rgba(245,177,74,.75);transition:background var(--s8-t) var(--s8-ease),transform var(--s8-t-fast) var(--s8-ease)}
.pw-cta:hover{background:linear-gradient(180deg,#ffd98a,var(--s8-gold))}.pw-cta:active{transform:translateY(1px);background:linear-gradient(180deg,var(--s8-gold),var(--s8-gold-lo))}
.pw-cta svg{width:17px;height:17px;stroke:currentColor;stroke-width:2.2;fill:none;stroke-linecap:round;stroke-linejoin:round}
.pw__reassure{display:flex;align-items:center;justify-content:center;gap:7px;font-size:var(--s8-fs-xs);color:var(--s8-fg-3);text-align:center}
.pw__reassure svg{width:12px;height:12px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}
.pw__guarantee{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;padding:6px 11px;border:1px solid var(--s8-up-line);border-radius:var(--s8-r-pill);background:var(--s8-up-tint);color:var(--s8-up);font-size:var(--s8-fs-xs);font-weight:600}
.pw__guarantee svg{width:12px;height:12px;stroke:currentColor;stroke-width:2.2;fill:none;stroke-linecap:round;stroke-linejoin:round}
.pw__pay{display:flex;gap:var(--s8-2);justify-content:center}
.pw-payopt{display:inline-flex;align-items:center;gap:7px;height:var(--s8-h-sm);padding:0 12px;border:1px solid var(--s8-line-2);border-radius:var(--s8-r);background:var(--s8-inset);color:var(--s8-fg-3);font:inherit;font-size:var(--s8-fs-xs);font-weight:600;cursor:pointer;transition:border-color var(--s8-t-fast) var(--s8-ease),color var(--s8-t-fast) var(--s8-ease)}
.pw-payopt i{width:9px;height:9px;border-radius:50%;border:1px solid var(--s8-line-3)}
.pw-payopt:hover{border-color:var(--s8-line-3);color:var(--s8-fg-2)}
.pw-payopt.is-on{border-color:var(--s8-line-3);color:var(--s8-fg);background:var(--s8-panel-2)}
.pw-payopt.is-on i{background:var(--s8-gold);border-color:var(--s8-gold);box-shadow:0 0 0 2px var(--s8-gold-tint)}
.pw__foot{padding:var(--s8-3) var(--s8-5);background:var(--s8-inset);border-top:1px solid var(--s8-line);text-align:center}
.pw-decline{border:0;background:none;font:inherit;font-size:var(--s8-fs-xs);color:var(--s8-fg-4);cursor:pointer;padding:4px 8px;border-radius:var(--s8-r-sm)}
.pw-decline:hover{color:var(--s8-fg-2);text-decoration:underline;text-underline-offset:2px}
@media(max-width:700px){.s8-paywall-layer{align-items:flex-end;padding:0}.s8-paywall-layer .pw{max-height:100dvh;overflow:auto;border-radius:var(--s8-r-lg) var(--s8-r-lg) 0 0}.pw__head{padding:var(--s8-6) var(--s8-4) var(--s8-5)}.a .pw__body{gap:var(--s8-6);padding:0 var(--s8-4) var(--s8-6)}.pw__plans,.pw__feats{grid-template-columns:1fr}.pw-cmp{min-width:610px}.pw__compare-scroll{overflow-x:auto}.pw__h{font-size:29px}}
@media(prefers-reduced-motion:reduce){.pw-plan,.pw-cta{transition:none}}

/* ── Checkout wiring (reused production stripe-elements-paywall.js) ──
   The production script drives selection state via the `.on` class (not `.is-on`)
   and owns the Stripe Elements step-2 view. These rules make the S8 controls
   respond to `.on` and style the step-2 pay view with brand-kit tokens. */
.pw-plan.on{border-color:var(--s8-gold-line);background:linear-gradient(180deg,rgba(245,177,74,.09),rgba(245,177,74,.02))}
.pw-plan.on .pw-plan__term{color:var(--s8-gold-hi)}
.pw-plan.on .pw-plan__tick{background:var(--s8-gold);border-color:var(--s8-gold)}
.pw-plan.on .pw-plan__tick svg{opacity:1}
.pw-payopt.on{border-color:var(--s8-line-3);color:var(--s8-fg);background:var(--s8-panel-2)}
.pw-payopt.on i{background:var(--s8-gold);border-color:var(--s8-gold);box-shadow:0 0 0 2px var(--s8-gold-tint)}

/* Step 2 — Stripe Elements card view */
.pw__payview{display:grid;gap:var(--s8-6);padding:var(--s8-7) var(--s8-6) var(--s8-6)}
.pw-pay__recap{display:flex;align-items:baseline;justify-content:center;gap:var(--s8-3);margin-bottom:var(--s8-4)}
.pw-pay__price{display:flex;align-items:baseline;gap:2px;font-size:var(--s8-fs-3xl);font-weight:600;letter-spacing:-.02em;color:#fff;font-variant-numeric:tabular-nums;line-height:1.1}
.pw-pay__price .gpw-price-d{font-size:var(--s8-fs-xl)}
.pw-pay__price .gpw-price-per{font-size:var(--s8-fs-md);font-weight:500;color:var(--s8-fg-3)}
.pw-pay__sub{font-size:var(--s8-fs-sm);color:var(--s8-fg-3);font-variant-numeric:tabular-nums}
.pw-pay__field{display:grid}
/* Match the Stripe Elements .Label appearance (normal case, from the read-only appearance config). */
.pw-pay__label{display:block;margin-bottom:4px;font-family:Inter,system-ui,sans-serif;font-size:11.5px;font-weight:700;color:rgba(245,240,255,.68);transition:transform .5s cubic-bezier(.19,1,.22,1),opacity .5s cubic-bezier(.19,1,.22,1)}
/* Mirror the Stripe Elements .Input appearance (set in stripe-elements-paywall.js,
   read-only) so the email field matches the card fields directly below it. */
.pw-pay__input{box-sizing:border-box;width:100%;padding:9px 12px;border:1px solid rgba(245,177,74,.28);border-radius:8px;background:rgba(8,6,18,.58);color:#f5f0ff;font-family:Inter,system-ui,sans-serif;font-size:13px;line-height:1.21;box-shadow:0 1px 0 rgba(255,255,255,.04) inset;transition:background .15s ease,border .15s ease,box-shadow .15s ease,color .15s ease}
.pw-pay__input::placeholder{color:rgba(245,240,255,.38)}
.pw-pay__input:focus{outline:none;border-color:rgba(245,177,74,.72);box-shadow:0 1px 0 rgba(255,255,255,.06) inset,0 0 0 3px rgba(245,177,74,.14)}
#payment-element{margin-top:var(--s8-4)}
.pw-pay__consent{margin:var(--s8-3) 0;font-size:var(--s8-fs-xs);line-height:1.4;color:var(--s8-fg-4);text-wrap:pretty}
.pw-pay__err{font-size:var(--s8-fs-xs);color:var(--s8-down);min-height:0}
.pw-pay__err:empty{display:none}
.pw-pay__err:not(:empty){margin-top:7px}
.pw-pay__cta{margin-top:0}
.pw-cta:disabled{opacity:.55;cursor:default;box-shadow:none}
.pw-pay__secure{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:var(--s8-2);font-size:var(--s8-fs-xs);color:var(--s8-fg-3)}
.pw-pay__secure svg{width:12px;height:12px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}
.pw-back{display:none}
@media(max-width:700px){.pw__payview{padding:var(--s8-7) var(--s8-4) var(--s8-5)}}
