/* ==========================================================================
   NewStarts Calculators — layered on top of site.css (same tokens, fonts, buttons,
   fields and cards). Everything here is scoped to .calc-* / .rc-* classes so
   no existing page is affected.
   ========================================================================== */

/* ---------- Hero meta chips ---------- */
.calc-meta{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.calc-meta li{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:99px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);font-size:.86rem;font-weight:550;color:#DCE5F8}
.calc-meta li svg{width:15px;height:15px;color:#8DB3EE}

/* ---------- Listing page ---------- */
.calc-group+.calc-group{margin-top:clamp(40px,5vw,64px)}
.calc-group .sec-head{position:static;margin-bottom:22px}
.calc-group .sec-head h2{font-size:clamp(1.45rem,2.2vw,1.9rem);margin-bottom:6px}
.calc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.calc-card{min-height:100%}
.calc-card .calc-card-ic{display:grid;place-items:center;width:44px;height:44px;margin-bottom:16px;border-radius:12px;background:var(--g-icon);color:var(--orange-d)}
.calc-card .calc-card-ic svg{width:22px;height:22px}
.calc-card .svc-card-meta span:first-child{font-size:.88rem;font-weight:600;color:var(--ink)}
@media (max-width:1024px){.calc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.calc-grid{grid-template-columns:1fr}}

/* ---------- Calculator layout ---------- */
.calc-wrap{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:clamp(20px,3vw,36px);align-items:start}
.calc-form{padding:clamp(20px,3vw,32px);background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--sh-2)}
.calc-form h2{font-size:1.3rem;margin:0 0 4px}
.calc-form .calc-form-lede{color:var(--slate);font-size:.95rem;margin:0 0 22px}
.calc-fields{display:flex;flex-wrap:wrap;gap:18px 14px}
.calc-fields>*{flex:1 1 100%;min-width:0}
.calc-fields>.field-half{flex:1 1 calc(50% - 7px)}
.calc-fields .field label,.calc-fields .field-label{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.calc-fields .field .opt{font-weight:500;color:var(--muted);font-size:.8rem}
.calc-hint{margin:0;font-size:.82rem;color:var(--muted);line-height:1.45}
.calc-words{margin:0;font-size:.82rem;color:var(--orange-d);font-weight:600;min-height:1.2em}
.calc-fields .input-prefix input{min-width:0}
.calc-fields .input-suffix{display:flex;align-items:center;padding:0;overflow:hidden;width:100%;min-height:48px;border:1.5px solid var(--line);border-radius:11px;background:#fff;transition:border-color .2s,box-shadow .2s}
.calc-fields .input-suffix:focus-within{border-color:var(--orange-d);box-shadow:0 0 0 4px var(--orange-tint)}
.calc-fields .input-suffix input{border:0!important;box-shadow:none!important;min-height:45px;min-width:0}
.calc-fields .input-suffix span{padding:0 12px;align-self:stretch;display:grid;place-items:center;background:var(--mist);border-left:1.5px solid var(--line);font-weight:600;color:var(--slate);font-size:.92rem;white-space:nowrap}
.calc-fields input[type=date]{min-height:48px}

/* Invalid state — own class so the site-wide form validator never touches it. */
.field.c-bad input,.field.c-bad select,.field.c-bad .input-prefix,.field.c-bad .input-suffix{border-color:#D92D20}
.field.c-bad .err{display:block}
.field .err{margin-top:2px}

/* Segmented radio group */
.calc-seg{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;border:0}
.calc-seg legend{padding:0;margin:0 0 6px;font-size:.88rem;font-weight:600;color:var(--ink);width:100%}
.calc-seg label{position:relative;flex:1 1 auto}
.calc-seg input{position:absolute;opacity:0;width:1px;height:1px}
.calc-seg label span{display:flex;align-items:center;justify-content:center;min-height:44px;padding:8px 12px;border:1.5px solid var(--line);border-radius:11px;background:#fff;font-size:.93rem;font-weight:600;color:var(--slate);text-align:center;line-height:1.25;cursor:pointer;transition:border-color .2s,background .2s,color .2s}
.calc-seg label:hover span{border-color:var(--line-2);color:var(--ink)}
.calc-seg input:checked+span{border-color:var(--orange-d);background:var(--orange-tint);color:var(--orange-dd)}
.calc-seg input:focus-visible+span{outline:2.5px solid var(--orange-d);outline-offset:2px}
.calc-seg-tight label{flex:0 1 auto}
.calc-seg-tight label span{min-width:64px}

/* Checkbox rows */
.calc-check{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;background:#fff;cursor:pointer;transition:border-color .2s,background .2s}
.calc-check:hover{border-color:var(--line-2)}
.calc-check input{width:18px;height:18px;margin:2px 0 0;flex:none;accent-color:var(--orange-d)}
.calc-check b{display:block;font-size:.93rem;font-weight:600;color:var(--ink)}
.calc-check small{display:block;font-size:.82rem;color:var(--muted);line-height:1.4;margin-top:2px}
.calc-check:has(input:checked){border-color:var(--orange-line);background:#F7FAFF}

/* Collapsible sub-group */
.calc-more{border:1.5px dashed var(--line-2);border-radius:14px;background:var(--mist)}
.calc-more>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;list-style:none;cursor:pointer;font-weight:600;color:var(--ink);font-size:.95rem}
.calc-more>summary::-webkit-details-marker{display:none}
.calc-more>summary small{font-weight:500;color:var(--muted);font-size:.82rem}
.calc-more>summary svg{width:18px;height:18px;transition:transform .25s var(--ease);flex:none}
.calc-more[open]>summary svg{transform:rotate(180deg)}
.calc-more .calc-fields{padding:4px 16px 18px}
.calc-sub{margin:6px 0 -4px;font-family:var(--f-display);font-size:1rem;font-weight:650;color:var(--ink)}

.calc-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.calc-actions .btn-primary{flex:1 1 220px}
.calc-actions .btn-ghost{flex:0 1 auto}
.calc-form-error{display:none;margin:14px 0 0;padding:10px 14px;border-radius:10px;background:#FEF3F2;color:#B42318;font-size:.88rem;font-weight:550}
.calc-form-error.is-on{display:block}

/* ---------- Result: fee receipt ---------- */
.calc-result{position:sticky;top:calc(var(--hdr) + 20px)}
.rc{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--sh-3);overflow:hidden}
.rc-head{position:relative;padding:24px 26px 30px;background:var(--g-navy);color:#DCE5F8;isolation:isolate}
.rc-head::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:12px;z-index:1;
  background:radial-gradient(circle at 8px 12px,#fff 6px,transparent 6.5px) 0 0/16px 12px repeat-x}
.rc-kicker{margin:0 0 6px;font-size:.9rem;font-weight:600;color:#A9B8DB}
.rc-total{margin:0;font-family:var(--f-display);font-weight:720;font-size:clamp(2.1rem,4.2vw,2.9rem);line-height:1.05;letter-spacing:-.03em;color:#fff;font-variant-numeric:tabular-nums;word-break:break-word}
.rc-sub{margin:10px 0 0;font-size:.93rem;color:#C5D0EC}
.rc-badge{position:absolute;top:20px;right:20px;display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:99px;background:rgba(255,196,72,.14);border:1px solid rgba(255,196,72,.45);color:#FFD98A;font-size:.8rem;font-weight:650}
.rc-badge svg{width:14px;height:14px}
.rc-body{padding:18px 26px 8px}
.rc-group+.rc-group{margin-top:14px;padding-top:14px;border-top:1px solid var(--mist-2)}
.rc-group-t{margin:0 0 6px;font-size:.84rem;font-weight:650;color:var(--muted)}
.rc-row{display:flex;align-items:baseline;gap:10px;padding:7px 0;font-size:.95rem}
.rc-row .rc-l{color:var(--slate);flex:0 1 auto}
.rc-row .rc-l small{display:block;color:var(--muted);font-size:.8rem;line-height:1.35;margin-top:1px}
.rc-row .rc-dots{flex:1 1 20px;min-width:14px;border-bottom:1.5px dotted var(--line-2);transform:translateY(-4px)}
.rc-row .rc-v{flex:none;font-weight:650;color:var(--ink);font-variant-numeric:tabular-nums;text-align:right;max-width:58%}
.rc-row.is-minus .rc-v{color:var(--green)}
.rc-row.is-total{margin-top:6px;padding-top:12px;border-top:1.5px solid var(--ink)}
.rc-row.is-total .rc-l{color:var(--ink);font-weight:650}
.rc-row.is-total .rc-v{font-family:var(--f-display);font-size:1.12rem}
.rc-row.is-total .rc-dots{visibility:hidden}
.rc-table-wrap{overflow-x:auto;margin:14px 0 4px;border:1px solid var(--line);border-radius:12px}
.rc-table{width:100%;border-collapse:collapse;font-size:.88rem;font-variant-numeric:tabular-nums}
.rc-table th,.rc-table td{padding:9px 12px;text-align:right;border-bottom:1px solid var(--mist-2);white-space:nowrap}
.rc-table th:first-child,.rc-table td:first-child{text-align:left;white-space:normal}
.rc-table thead th{background:var(--mist);font-weight:650;color:var(--ink);font-size:.82rem}
.rc-table tbody tr:last-child td{border-bottom:0}
.rc-table .is-best{color:var(--green);font-weight:700}
.rc-table tr.is-strong td{font-weight:700;color:var(--ink)}
.rc-notes{margin:14px 0 0;padding:12px 14px;border-radius:12px;background:var(--mist);list-style:none;display:grid;gap:6px}
.rc-notes li{display:flex;gap:8px;font-size:.84rem;color:var(--slate);line-height:1.45}
.rc-notes li svg{width:15px;height:15px;flex:none;margin-top:2px;color:var(--orange-d)}
.rc-notes li.is-warn svg{color:#B54708}
.rc-foot{display:flex;flex-wrap:wrap;gap:8px;padding:14px 26px 22px}
.rc-foot .btn{flex:1 1 150px}
.rc-empty{padding:34px 26px 38px;text-align:center;color:var(--slate)}
.rc-empty svg{width:42px;height:42px;color:var(--orange-d);margin:0 auto 12px}
.rc-empty p{margin:0 auto;max-width:28ch;font-size:.95rem}
.rc.is-stale .rc-body,.rc.is-stale .rc-head .rc-total{opacity:.45;transition:opacity .2s}
.rc.is-updated .rc-total{animation:rcPulse .5s var(--ease)}
@keyframes rcPulse{0%{opacity:.4;transform:translateY(4px)}100%{opacity:1;transform:none}}

/* ---------- Explainer below the calculator ---------- */
.calc-explain{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,4vw,48px);align-items:start}
.calc-explain h2{font-size:clamp(1.35rem,2vw,1.7rem)}
.calc-explain p,.calc-explain li{color:var(--slate)}
.calc-explain ol,.calc-explain ul{padding-left:1.2em;margin:0 0 1em}
.calc-explain li+li{margin-top:6px}
.calc-explain .rc-table-wrap{margin-top:0;background:#fff}
.calc-explain .rc-table td,.calc-explain .rc-table th{white-space:normal}
.calc-caption{font-size:.84rem;color:var(--muted);margin:10px 0 0}
.calc-disclaimer{display:flex;gap:10px;margin-top:28px;padding:16px;border-radius:var(--r);background:#FFFAEB;border:1px solid #FEDF89;color:#7A2E0E;font-size:.9rem}
.calc-disclaimer svg{flex:none;width:18px;height:18px;margin-top:2px;color:#B54708}
.calc-related{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}

@media (max-width:1024px){
  .calc-wrap{grid-template-columns:minmax(0,1fr)}
  .calc-result{position:static}
  .calc-explain{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:600px){
  .calc-fields>.field-half{flex-basis:100%}
  .rc-head{padding:22px 20px 28px}
  .rc-body{padding:16px 20px 6px}
  .rc-foot{padding:12px 20px 20px}
  .rc-badge{position:static;margin-bottom:10px}
  .rc-row{font-size:.92rem}
  .rc-row .rc-v{max-width:55%}
}
@media (prefers-reduced-motion:reduce){.rc.is-updated .rc-total{animation:none}}
@media print{
  .site-header,.site-footer,.float-stack,.bot,.page-hero,.calc-form,.rc-foot,.calc-explain,.cta-band,.m-drawer{display:none!important}
  .calc-wrap{display:block}.rc{box-shadow:none}
}

/* Site components set display on .field etc., so make [hidden] win inside calculators. */
.calc-form [hidden],.calc-result [hidden]{display:none!important}
.calc-actions .btn{min-height:52px;font-size:1.02rem}
.calc-explain .rc-table th,.calc-explain .rc-table td{text-align:left}
@media (max-width:600px){.page-calc .cta-band-actions,.page-calc .cta-band-actions .btn{width:100%;white-space:normal}}
