/* ============================================================
   ELVA — Revenue Recovery Calculator (Insurance sub-family)
   Loads ON TOP of elva-pages-insurance-sub.css (same .elva-ins-sub
   wrapper) — hero shell, prose, faq, suite grid, cta-box, crumb, btn
   are already defined there and reused as-is. This file only adds
   what's unique to the calculator page: the local "vivid" data-viz
   palette, the interactive calculator panel, and the evidence/card
   layouts specific to this page's design.
   ============================================================ */

.elva-ins-sub{
  --v-violet:#7B2BFF; --v-blue:#0A63F5; --v-teal:#00A88A; --v-amber:#F0A000; --v-coral:#EE3B24; --v-pink:#FF2D78;
  --grad-vivid:linear-gradient(100deg,#7B2BFF,#0A63F5 52%,#00C2A0);
  --dur-fast:.16s; --dur-med:.32s;
}

/* extra hero copy line + section index number (not in the base file) */
.elva-ins-sub .hero-body{ margin-top:16px; font-size:16px; line-height:1.6; color:var(--ink-2); max-width:60ch; }
/* this page's hero highlight uses the local "vivid" palette, not the sitewide spectrum */
.elva-ins-sub .hero h1 .elva-spectrum{ background:var(--grad-vivid); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:transparent; }
.elva-ins-sub .sec-head{ display:flex; align-items:baseline; gap:14px; }
.elva-ins-sub .sec-k{ font-family:var(--font-mono); font-size:12px; font-weight:600; letter-spacing:.1em; color:var(--v-violet); }

/* ---- calculator ---- */
.elva-ins-sub .calc-wrap{ position:relative; margin-top:58px; }
.elva-ins-sub .calc{
  display:grid; grid-template-columns:1.05fr .95fr; align-items:stretch;
  background:#fff; border:1px solid var(--cream-2); border-radius:24px; overflow:hidden;
  box-shadow:0 40px 90px -50px rgba(20,20,40,.35);
}
.elva-ins-sub .panel{ padding:38px 36px; display:grid; gap:28px; align-content:space-between; }
.elva-ins-sub .panel-k{ font-family:var(--font-mono); font-size:10.5px; font-weight:500; letter-spacing:.17em; text-transform:uppercase; color:var(--v-blue); display:inline-flex; align-items:center; gap:10px; }
.elva-ins-sub .panel.out{ background:linear-gradient(170deg,#F7F4FF,#F2F7FF 55%,#F0FBF8); border-left:1px solid var(--cream-2); gap:14px; align-content:start; }
.elva-ins-sub .panel.out .panel-k{ color:var(--v-violet); }

.elva-ins-sub .ptiles{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.elva-ins-sub .ptile{ position:relative; display:grid; gap:4px; padding:14px 16px; background:#fff; border:1.5px solid var(--cream-2); border-radius:var(--r-md); cursor:pointer; transition:border-color var(--dur-fast), background var(--dur-fast), box-shadow var(--dur-med); }
.elva-ins-sub .ptile input{ position:absolute; opacity:0; pointer-events:none; }
.elva-ins-sub .ptile b{ font-size:14px; font-weight:600; letter-spacing:-.01em; color:var(--ink-1); }
.elva-ins-sub .ptile span{ font-family:var(--font-mono); font-size:10px; letter-spacing:.07em; color:var(--ink-3); }
.elva-ins-sub .ptile:hover{ border-color:var(--ink-4); }
.elva-ins-sub .ptile.on{ border-color:var(--v-blue); background:rgba(10,99,245,.05); box-shadow:0 0 0 3px rgba(10,99,245,.1); }
.elva-ins-sub .ptile.on b{ color:var(--v-blue); }
.elva-ins-sub .ptile.on span{ color:#3573E8; }

.elva-ins-sub .field{ display:grid; gap:11px; }
.elva-ins-sub .field-top{ display:flex; align-items:center; justify-content:space-between; gap:14px; }
.elva-ins-sub .field-lbl{ font-size:14.5px; font-weight:600; letter-spacing:-.01em; color:var(--ink-1); }
.elva-ins-sub .pill{ font-family:var(--font-mono); font-size:15px; font-weight:500; color:var(--ink-0); background:#fff; border:1px solid var(--cream-shadow); border-radius:10px; padding:7px 15px; min-width:82px; text-align:center; box-shadow:var(--sh-1); font-variant-numeric:tabular-nums; }

.elva-ins-sub input[type=range]{ -webkit-appearance:none; appearance:none; width:100%; height:20px; background:transparent; margin:0; cursor:grab; display:block; }
.elva-ins-sub input[type=range]:active{ cursor:grabbing; }
.elva-ins-sub input[type=range]::-webkit-slider-runnable-track{ height:5px; border-radius:5px; background:linear-gradient(90deg,var(--v-violet) 0,var(--v-blue) var(--fill,40%),#E4E4EC var(--fill,40%),#E4E4EC 100%); }
.elva-ins-sub input[type=range]::-webkit-slider-thumb{ -webkit-appearance:none; appearance:none; width:20px; height:20px; margin-top:-7.5px; border-radius:50%; background:#fff; border:2px solid var(--v-blue); box-shadow:0 3px 10px -2px rgba(10,99,245,.55); transition:transform var(--dur-fast) var(--ease-out); }
.elva-ins-sub input[type=range]:hover::-webkit-slider-thumb{ transform:scale(1.12); }
.elva-ins-sub input[type=range]::-moz-range-track{ height:5px; border-radius:5px; background:#E4E4EC; }
.elva-ins-sub input[type=range]::-moz-range-progress{ height:5px; border-radius:5px; background:linear-gradient(90deg,var(--v-violet),var(--v-blue)); }
.elva-ins-sub input[type=range]::-moz-range-thumb{ width:18px; height:18px; border-radius:50%; background:#fff; border:2px solid var(--v-blue); box-shadow:0 3px 10px -2px rgba(10,99,245,.55); }
.elva-ins-sub .scale{ display:flex; justify-content:space-between; font-family:var(--font-mono); font-size:10px; letter-spacing:.06em; color:var(--ink-4); margin-top:-4px; }
.elva-ins-sub .field-sub{ font-size:12.5px; line-height:1.5; color:var(--ink-3); }

.elva-ins-sub .ht{ position:relative; overflow:hidden; border-radius:var(--r-xl); background:#fff; border:1px solid rgba(238,59,36,.24); box-shadow:0 22px 44px -30px rgba(238,59,36,.55); padding:26px 28px 24px; display:grid; gap:10px; }
.elva-ins-sub .ht::before{ content:''; position:absolute; left:0; top:0; bottom:0; width:4px; background:linear-gradient(180deg,var(--v-coral),var(--v-amber)); }
.elva-ins-sub .ht-k{ font-family:var(--font-mono); font-size:10.5px; font-weight:500; letter-spacing:.15em; text-transform:uppercase; color:var(--v-coral); }
.elva-ins-sub .ht-big{ font-family:var(--font-display); font-weight:600; letter-spacing:-.05em; font-size:clamp(46px,5.6vw,70px); line-height:.94; color:var(--v-coral); font-variant-numeric:tabular-nums; display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; }
.elva-ins-sub .ht-big .per{ font-family:var(--font-body); font-size:14px; font-weight:500; letter-spacing:-.01em; color:var(--ink-3); }
.elva-ins-sub .ht-sub{ font-size:13.5px; line-height:1.55; color:var(--ink-2); font-variant-numeric:tabular-nums; min-height:42px; }
.elva-ins-sub .ht-sub b{ font-family:var(--font-mono); font-weight:500; color:var(--ink-0); }

.elva-ins-sub .mtiles{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:4px; }
.elva-ins-sub .mtile{ background:#fff; border:1px solid var(--cream-2); border-radius:var(--r-md); padding:16px 18px; display:grid; gap:9px; box-shadow:var(--sh-1); }
.elva-ins-sub .mtile .k{ font-family:var(--font-mono); font-size:9.5px; letter-spacing:.13em; text-transform:uppercase; color:var(--ink-3); line-height:1.4; }
.elva-ins-sub .mtile .v{ font-family:var(--font-display); font-weight:600; font-size:clamp(20px,2.2vw,25px); letter-spacing:-.035em; line-height:1; color:var(--ink-0); font-variant-numeric:tabular-nums; }
.elva-ins-sub .mtile.u{ border-color:rgba(123,43,255,.28); } .elva-ins-sub .mtile.u .v{ color:var(--v-violet); }
.elva-ins-sub .mtile.d{ border-color:rgba(0,168,138,.3); } .elva-ins-sub .mtile.d .v{ color:var(--v-teal); }

.elva-ins-sub .share{ display:flex; align-items:center; gap:13px; border-radius:var(--r-md); background:rgba(10,99,245,.07); border:1px solid rgba(10,99,245,.16); padding:15px 18px; }
.elva-ins-sub .share svg{ width:18px; height:18px; flex:none; stroke:var(--v-blue); fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.elva-ins-sub .share p{ font-size:13.5px; line-height:1.5; color:var(--ink-1); margin:0; }
.elva-ins-sub .share b{ font-family:var(--font-mono); font-weight:500; color:var(--v-blue); font-variant-numeric:tabular-nums; }

.elva-ins-sub .out-cta{ display:grid; gap:12px; margin-top:4px; }
.elva-ins-sub .out-cta .sub{ display:flex; justify-content:center; gap:8px; font-size:13px; color:var(--ink-2); }
.elva-ins-sub .out-note{ font-family:var(--font-mono); font-size:10.5px; line-height:1.75; color:var(--ink-3); border-top:1px solid var(--cream-2); padding-top:16px; margin:0; }
.elva-ins-sub .btn-vivid{ background:var(--grad-vivid); color:#fff; border:none; box-shadow:0 16px 32px -14px rgba(123,43,255,.55); }
.elva-ins-sub .btn-vivid:hover{ transform:translateY(-1px); box-shadow:0 20px 40px -14px rgba(123,43,255,.7); }
.elva-ins-sub .btn-block{ width:100%; justify-content:center; }

/* ---- Why This Adds Up: evidence stats with data-viz ---- */
.elva-ins-sub .stats{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:38px; }
.elva-ins-sub .stat{ position:relative; overflow:hidden; background:#fff; border:1px solid var(--cream-2); border-radius:var(--r-xl); padding:30px 30px 26px; box-shadow:var(--sh-2); display:grid; gap:18px; align-content:start; }
.elva-ins-sub .stat p{ font-size:15px; line-height:1.62; color:var(--ink-2); margin:0; }
.elva-ins-sub .stat p strong{ color:var(--ink-0); font-weight:600; }
.elva-ins-sub .gap-viz{ display:grid; gap:14px; }
.elva-ins-sub .gap-row{ display:grid; grid-template-columns:104px 1fr auto; align-items:center; gap:16px; }
.elva-ins-sub .gap-k{ font-family:var(--font-mono); font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-3); }
.elva-ins-sub .gap-bar{ height:14px; border-radius:7px; background:#EDEDF2; overflow:hidden; }
.elva-ins-sub .gap-bar span{ display:block; height:100%; border-radius:7px; background:linear-gradient(90deg,var(--v-blue),#4B9BFF); }
.elva-ins-sub .gap-row.infl .gap-bar span{ background:linear-gradient(90deg,var(--v-coral),var(--v-amber)); }
.elva-ins-sub .gap-v{ font-family:var(--font-display); font-weight:600; font-size:24px; letter-spacing:-.04em; color:var(--v-blue); font-variant-numeric:tabular-nums; }
.elva-ins-sub .gap-note{ font-family:var(--font-mono); font-size:10.5px; color:var(--ink-4); margin:0; }
.elva-ins-sub .figs{ display:flex; align-items:flex-end; gap:34px; flex-wrap:wrap; }
.elva-ins-sub .figs div{ display:grid; gap:8px; }
.elva-ins-sub .figs b{ font-family:var(--font-display); font-weight:600; font-size:clamp(38px,4.2vw,52px); letter-spacing:-.05em; line-height:.9; color:var(--v-violet); }
.elva-ins-sub .figs div:nth-child(3) b{ color:var(--v-teal); }
.elva-ins-sub .figs div:nth-child(5) b{ color:var(--v-blue); }
.elva-ins-sub .figs span{ font-family:var(--font-mono); font-size:10px; letter-spacing:.13em; text-transform:uppercase; color:var(--ink-3); }
.elva-ins-sub .figs .sep{ width:1px; height:44px; background:var(--cream-2); align-self:center; }
.elva-ins-sub .kicker{ position:relative; overflow:hidden; margin-top:26px; border-radius:var(--r-xl); padding:30px 36px; background:linear-gradient(110deg,rgba(123,43,255,.1),rgba(10,99,245,.09) 52%,rgba(0,194,160,.1)); border:1px solid rgba(123,43,255,.24); max-width:940px; }
.elva-ins-sub .kicker::before{ content:''; position:absolute; left:0; top:0; bottom:0; width:5px; background:var(--grad-vivid); }
.elva-ins-sub .kicker p{ font-family:var(--font-display); font-size:clamp(17px,1.9vw,21px); font-weight:600; letter-spacing:-.025em; line-height:1.42; color:var(--ink-0); margin:0; }

/* ---- The Two Places Revenue Hides ---- */
.elva-ins-sub .hide-grid{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:40px; }
.elva-ins-sub .hide{ position:relative; overflow:hidden; background:#fff; border:1px solid var(--cream-2); border-radius:var(--r-xl); padding:32px 30px 26px; box-shadow:var(--sh-2); display:flex; flex-direction:column; gap:20px; }
.elva-ins-sub .hide h3{ font-size:clamp(19px,2vw,23px); }
.elva-ins-sub .hide-row{ display:grid; gap:9px; padding-top:18px; border-top:1px solid var(--cream-2); }
.elva-ins-sub .hide-row p{ font-size:14.5px; line-height:1.6; color:var(--ink-2); margin:0; }
.elva-ins-sub .hide-k{ font-family:var(--font-mono); font-size:10px; letter-spacing:.11em; text-transform:uppercase; padding:5px 10px; border-radius:var(--r-pill); width:fit-content; }
.elva-ins-sub .hide-k.risk{ background:rgba(238,59,36,.12); color:#C42C18; }
.elva-ins-sub .hide-k.does{ background:rgba(0,168,138,.14); color:#00745F; }

.elva-ins-sub .tok{ font-family:var(--font-mono); font-size:.94em; letter-spacing:.02em; padding:1px 6px; border-radius:5px; border:1px dashed rgba(123,43,255,.45); background:rgba(123,43,255,.08); color:var(--v-violet); white-space:nowrap; }
.elva-ins-sub .elva-data{ margin-top:34px; max-width:900px; display:grid; gap:12px; }
.elva-ins-sub .elva-data p{ font-size:16.5px; line-height:1.7; color:var(--ink-2); margin:0; }
.elva-ins-sub .elva-data strong{ color:var(--ink-0); font-weight:600; }

/* ---- How This Is Calculated ---- */
.elva-ins-sub .method{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:36px; }
.elva-ins-sub .mth{ position:relative; background:#fff; border:1px solid var(--cream-2); border-radius:var(--r-lg); padding:26px 28px; box-shadow:var(--sh-1); display:grid; gap:11px; align-content:start; }
.elva-ins-sub .mth h3{ font-size:16.5px; }
.elva-ins-sub .mth h3 span{ font-family:var(--font-mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--v-violet); display:block; margin-bottom:9px; font-weight:500; }
.elva-ins-sub .mth:nth-child(2) h3 span{ color:var(--v-teal); }
.elva-ins-sub .mth:nth-child(2)::before{ background:var(--v-teal); }
.elva-ins-sub .mth::before{ content:''; position:absolute; left:0; top:0; bottom:0; width:3px; border-radius:3px 0 0 3px; background:var(--v-violet); }
.elva-ins-sub .mth p{ font-size:14.5px; line-height:1.6; color:var(--ink-2); margin:0; }
.elva-ins-sub .limits{ margin-top:38px; border:1px solid var(--cream-2); border-left:4px solid var(--v-amber); border-radius:var(--r-lg); background:#fff; padding:26px 30px; max-width:900px; display:grid; gap:12px; box-shadow:var(--sh-1); }
.elva-ins-sub .limits h3{ font-size:16px; }
.elva-ins-sub .limits p{ font-size:14.5px; line-height:1.6; color:var(--ink-2); margin:0; }

/* ---- responsive ---- */
@media (max-width:1080px){
  .elva-ins-sub .calc{ grid-template-columns:1fr; }
  .elva-ins-sub .panel.out{ border-left:none; border-top:1px solid var(--cream-2); }
  .elva-ins-sub .stats, .elva-ins-sub .hide-grid, .elva-ins-sub .method{ grid-template-columns:1fr; }
}
@media (max-width:640px){
  .elva-ins-sub .panel{ padding:26px 22px; }
  .elva-ins-sub .ptiles, .elva-ins-sub .mtiles{ grid-template-columns:1fr; }
  .elva-ins-sub .figs{ gap:20px; }
}
