
.calc-hero{padding:56px 40px 40px}
.calc-hero-inner{max-width:1280px;margin:0 auto}
.calc-hero h1{font-size:56px;line-height:1;letter-spacing:-0.035em;font-weight:400;margin-bottom:16px}
.calc-hero h1 em{font-style:italic;color:var(--accent)}
.calc-hero .lede{font-family:'Fraunces',serif;font-size:20px;line-height:1.5;color:var(--ink-2);max-width:60ch;font-weight:400}

.calc-wrap{padding:24px 40px 96px}
.calc-inner{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1fr 1.2fr;gap:24px;align-items:start}

/* INPUT PANEL */
.calc-panel{background:var(--surface);border:1px solid var(--rule);border-radius:var(--card-radius);padding:32px;position:sticky;top:80px}
.calc-panel h3{font-family:'Fraunces',serif;font-size:22px;font-weight:500;letter-spacing:-0.01em;margin-bottom:24px}
.field{margin-bottom:24px}
.field-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}
.field label{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:0.12em;text-transform:uppercase;color:var(--muted);font-weight:500}
.field .display{font-family:'Fraunces',serif;font-size:22px;font-weight:500;color:var(--accent);letter-spacing:-0.01em}
.field input[type="range"]{-webkit-appearance:none;appearance:none;width:100%;height:6px;background:var(--rule);border-radius:3px;outline:none;cursor:pointer}
.field input[type="range"]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:22px;height:22px;background:var(--accent);border-radius:50%;cursor:pointer;border:3px solid var(--surface);box-shadow:0 2px 8px var(--accent-tint);transition:transform 0.15s ease}
.field input[type="range"]::-webkit-slider-thumb:hover{transform:scale(1.1)}
.field input[type="range"]::-moz-range-thumb{width:22px;height:22px;background:var(--accent);border-radius:50%;cursor:pointer;border:3px solid var(--surface)}
.field-hint{display:flex;justify-content:space-between;margin-top:6px;font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--muted);letter-spacing:0.08em}

.term-toggle{display:grid;grid-template-columns:1fr 1fr 1fr;gap:4px;background:var(--bg-2);padding:4px;border-radius:6px}
.term-toggle button{background:transparent;border:0;padding:10px;font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--muted);letter-spacing:0.08em;cursor:pointer;border-radius:4px;transition:all 0.15s ease;font-weight:500}
.term-toggle button.active{background:var(--surface);color:var(--accent);box-shadow:0 1px 3px rgba(0,0,0,0.08)}

.reset-btn{width:100%;background:transparent;border:1px solid var(--rule);color:var(--ink-2);padding:12px;border-radius:var(--btn-radius);font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:0.14em;text-transform:uppercase;cursor:pointer;margin-top:8px;transition:all 0.15s ease}
.reset-btn:hover{background:var(--bg-2);color:var(--ink)}

/* RESULTS */
.calc-results{display:flex;flex-direction:column;gap:16px}
.result-hero{background:linear-gradient(135deg,#4F2D84 0%,#3a1f66 100%);color:#fff;padding:40px;border-radius:var(--card-radius);position:relative;overflow:hidden}
.result-hero::before{content:"";position:absolute;top:-40px;right:-40px;width:200px;height:200px;background:radial-gradient(circle, rgba(255,255,255,0.08), transparent);border-radius:50%}
.result-label{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:0.16em;text-transform:uppercase;color:rgba(255,255,255,0.7);margin-bottom:12px}
.result-total{font-family:'Fraunces',serif;font-size:72px;line-height:1;letter-spacing:-0.04em;font-weight:400;margin-bottom:8px}
.result-total .sup{font-size:32px;vertical-align:top;font-weight:500;opacity:0.8}
.result-sub{font-family:'Fraunces',serif;font-size:18px;color:rgba(255,255,255,0.8);font-style:italic}

.breakdown{background:var(--surface);border:1px solid var(--rule);border-radius:var(--card-radius);overflow:hidden}
.breakdown-row{display:grid;grid-template-columns:auto 1fr auto;gap:16px;padding:18px 24px;border-bottom:1px solid var(--rule);align-items:center}
.breakdown-row:last-child{border-bottom:0}
.breakdown-row .swatch{width:14px;height:14px;border-radius:3px;flex-shrink:0}
.breakdown-row .name{font-family:'Instrument Sans',sans-serif;font-size:14px;color:var(--ink-2);font-weight:500}
.breakdown-row .amt{font-family:'Fraunces',serif;font-size:20px;font-weight:500;color:var(--ink);letter-spacing:-0.01em}
.breakdown-row.total{background:var(--bg-2)}
.breakdown-row.total .name{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);font-weight:600}
.breakdown-row.total .amt{color:var(--accent);font-size:22px}

.stacked-bar{height:10px;display:flex;border-radius:5px;overflow:hidden;margin:0 24px 20px}
.stacked-bar > div{transition:width 0.25s ease}

/* Loan summary */
.loan-summary{background:var(--surface);border:1px solid var(--rule);border-radius:var(--card-radius);padding:24px}
.loan-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.loan-stat{padding:0 20px;border-right:1px solid var(--rule);text-align:center}
.loan-stat:first-child{padding-left:0}
.loan-stat:last-child{padding-right:0;border-right:0}
.loan-stat .lab{font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:0.12em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.loan-stat .val{font-family:'Fraunces',serif;font-size:22px;font-weight:500;color:var(--ink);letter-spacing:-0.02em}

/* CTA card */
.calc-cta{background:var(--bg-2);border:1px solid var(--rule);border-radius:var(--card-radius);padding:32px;display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center}
.calc-cta h4{font-family:'Fraunces',serif;font-size:22px;font-weight:500;letter-spacing:-0.01em;margin-bottom:6px}
.calc-cta p{font-size:14px;color:var(--ink-2)}

/* Amortization preview */
.amort{background:var(--surface);border:1px solid var(--rule);border-radius:var(--card-radius);padding:28px}
.amort-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:20px}
.amort-head h4{font-family:'Fraunces',serif;font-size:20px;font-weight:500;letter-spacing:-0.01em}
.amort-head .meta{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--muted);letter-spacing:0.08em}
.amort-chart{height:120px;display:flex;align-items:flex-end;gap:2px;background:linear-gradient(to top, var(--bg-2) 0%, transparent 100%);border-radius:4px;padding:8px}
.amort-bar{flex:1;display:flex;flex-direction:column;justify-content:flex-end;gap:1px;min-width:0}
.amort-bar .principal{background:var(--accent);border-radius:2px 2px 0 0}
.amort-bar .interest{background:var(--accent-3);border-radius:2px 2px 0 0}
.amort-legend{display:flex;gap:20px;margin-top:16px;font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--muted);letter-spacing:0.06em}
.amort-legend .item{display:flex;align-items:center;gap:8px}
.amort-legend .swatch{width:10px;height:10px;border-radius:2px}

/* Disclaimer */
.calc-disclaimer{margin-top:40px;padding:20px 24px;background:var(--bg-2);border-left:3px solid var(--accent);border-radius:0 6px 6px 0;font-size:12px;color:var(--muted);line-height:1.6;max-width:1280px;margin-left:auto;margin-right:auto}
.calc-disclaimer strong{color:var(--ink-2);font-family:'Instrument Sans',sans-serif}

@media (max-width:1000px){
  .calc-inner{grid-template-columns:1fr}
  .calc-panel{position:static}
  .result-total{font-size:56px}
  .loan-summary-grid{grid-template-columns:1fr}
  .loan-stat{border-right:0;border-bottom:1px solid var(--rule);padding:16px 0;text-align:left;display:flex;justify-content:space-between;align-items:baseline}
  .loan-stat:last-child{border-bottom:0}
  .calc-cta{grid-template-columns:1fr}
}
@media (max-width:600px){
  .calc-hero,.calc-wrap{padding-left:24px;padding-right:24px}
  .calc-hero h1{font-size:36px}
  .result-total{font-size:44px}
  .calc-panel,.calc-cta{padding:24px}
}

/* ---- Added for affordability / rent-vs-buy tools ---- */
.tool-tabs{display:flex;gap:4px;flex-wrap:wrap;margin-top:28px}
.tool-tabs a{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:0.12em;text-transform:uppercase;color:var(--muted);padding:10px 14px;border:1px solid var(--rule);border-radius:999px;background:var(--surface);transition:all .15s ease}
.tool-tabs a:hover{color:var(--accent);border-color:var(--accent-2)}
.tool-tabs a.active{background:var(--accent);border-color:var(--accent);color:#fff}
.field .display.small{font-size:18px}
.seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;background:var(--bg-2);padding:4px;border-radius:6px}
.seg button{background:transparent;border:0;padding:10px 6px;font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--muted);letter-spacing:0.08em;cursor:pointer;border-radius:4px;transition:all 0.15s ease;font-weight:500}
.seg button.active{background:var(--surface);color:var(--accent);box-shadow:0 1px 3px rgba(0,0,0,0.08)}
.panel-sub{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--accent);margin:28px 0 16px;padding-top:20px;border-top:1px solid var(--rule)}
.result-row{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:24px;padding-top:20px;border-top:1px solid rgba(255,255,255,0.18)}
.result-row .lab{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:rgba(255,255,255,0.65);margin-bottom:4px}
.result-row .v{font-family:'Fraunces',serif;font-size:26px;font-weight:500;letter-spacing:-0.02em}
.tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.tier{background:var(--surface);border:1px solid var(--rule);border-radius:var(--card-radius);padding:20px}
.tier.pick{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}
.tier .k{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);margin-bottom:10px;display:flex;justify-content:space-between}
.tier.pick .k{color:var(--accent)}
.tier .p{font-family:'Fraunces',serif;font-size:28px;font-weight:500;letter-spacing:-0.02em;color:var(--ink);line-height:1}
.tier .m{font-size:13px;color:var(--muted);margin-top:6px}
.tier .r{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:0.1em;color:var(--muted);margin-top:12px;padding-top:10px;border-top:1px solid var(--rule)}
.meter{background:var(--surface);border:1px solid var(--rule);border-radius:var(--card-radius);padding:24px}
.meter-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:14px}
.meter-head h4{font-family:'Fraunces',serif;font-size:20px;font-weight:500;letter-spacing:-0.01em}
.meter-head span{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--muted);letter-spacing:0.08em}
.meter-track{position:relative;height:12px;border-radius:6px;background:linear-gradient(90deg,var(--accent-2) 0 28%,var(--bg-3) 28% 43%,var(--rule) 43% 100%)}
.meter-mark{position:absolute;top:-6px;width:3px;height:24px;background:var(--ink);border-radius:2px;transform:translateX(-50%);transition:left .25s ease}
.meter-scale{display:flex;justify-content:space-between;margin-top:10px;font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--muted);letter-spacing:0.08em}
.meter p{font-size:14px;margin-top:14px}
.verdict{background:var(--surface);border:1px solid var(--rule);border-radius:var(--card-radius);padding:24px 28px;border-left:3px solid var(--accent)}
.verdict h4{font-family:'Fraunces',serif;font-size:22px;font-weight:500;letter-spacing:-0.01em;margin-bottom:6px}
.verdict h4 em{font-style:italic;color:var(--accent)}
.verdict p{font-size:14px}
.chart{background:var(--surface);border:1px solid var(--rule);border-radius:var(--card-radius);padding:24px 28px}
.chart-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:16px;gap:16px;flex-wrap:wrap}
.chart-head h4{font-family:'Fraunces',serif;font-size:20px;font-weight:500;letter-spacing:-0.01em}
.chart svg{display:block;width:100%;height:200px;overflow:visible}
.chart .legend{display:flex;gap:20px;margin-top:12px;font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--muted);letter-spacing:0.06em}
.chart .legend i{display:inline-block;width:14px;height:3px;border-radius:2px;margin-right:8px;vertical-align:middle}
.cmp{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.cmp .tier .p{font-size:26px}
@media (max-width:1000px){.tiers{grid-template-columns:1fr}.cmp{grid-template-columns:1fr}}

.chart-dot{position:absolute;width:10px;height:10px;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 3px var(--surface);pointer-events:none}
.calc-hero .field-hint{font-family:inherit}
