.coupon-public-page .coupon-public-main { width: min(1140px, calc(100% - 32px)); margin: 24px auto 40px; }
.coupon-public-page .coupon-public-back { display: inline-block; margin-bottom: 15px; color: #1e4fb0; font-weight: 600; }
#apartment-coupon-calculator {
  --ac-ink: #0a1f44;
  --ac-muted: #46536e;
  --ac-paper: #f5f7fb;
  --ac-card: #fff;
  --ac-line: #d9e2f0;
  --ac-blue: #2f6bd8;
  --ac-blue-soft: #eef3fc;
  --ac-green: #0d6b45;
  --ac-green-soft: #e6f4ec;
  --ac-gold: #f0c86a;
  --ac-navy: #061530;
  --ac-navy-light: #163768;
  --ac-result-text: #eaf0fb;
  --ac-result-muted: #c2d2eb;
  --ac-mint: #61dfb0;
  --ac-coral: #ffb0a6;
  --ac-display: 'Unbounded', 'Golos Text', system-ui, sans-serif;
  --ac-mono: 'IBM Plex Mono', ui-monospace, monospace;
  background: var(--ac-paper);
  border-radius: 20px;
  color-scheme: light;
  color: var(--ac-ink);
  font: 400 15px/1.55 'Golos Text', system-ui, sans-serif;
  padding: clamp(16px, 3.5vw, 36px);
}
#apartment-coupon-calculator *, #apartment-coupon-calculator *::before, #apartment-coupon-calculator *::after { box-sizing: border-box; }
#apartment-coupon-calculator :is(h1, h2, p, dl, dd, fieldset) { margin: 0; }
#apartment-coupon-calculator :is(button, input, select) { font: inherit; }
#apartment-coupon-calculator :focus-visible { outline: 3px solid var(--ac-blue); outline-offset: 3px; }
#apartment-coupon-calculator [hidden] { display: none !important; }
.ac-wrap { max-width: 1060px; margin: 0 auto; }
.ac-brand { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 24px; border-bottom: 1px solid var(--ac-line); padding-bottom: 16px; }
.ac-brand strong { font-weight: 600; }
.ac-brand span { font-size: 13px; color: var(--ac-muted); }
.ac-hero { padding: clamp(24px, 4.5vw, 44px) 0 clamp(24px, 4vw, 36px); }
.ac-hero h1 { font: 700 clamp(25px, 4.6vw, 49px)/1.16 var(--ac-display); letter-spacing: -.045em; text-wrap: balance; max-width: 22ch; }
.ac-hero h1 em { color: var(--ac-green); font-style: normal; }
.ac-intro { display: grid; gap: 10px; max-width: 78ch; margin-top: 18px; color: var(--ac-muted); font-size: clamp(14px, 1.9vw, 16px); }
.ac-intro strong { color: var(--ac-ink); font-weight: 600; }
.ac-grid { display: grid; grid-template-columns: minmax(0, .93fr) minmax(0, 1.07fr); gap: 0; border: 1px solid var(--ac-line); border-radius: 24px; background: var(--ac-card); box-shadow: 0 16px 44px -30px #12305f77; }
.ac-inputs, .ac-results { min-width: 0; padding: clamp(20px, 3.4vw, 34px); }
.ac-inputs { display: grid; gap: 19px; align-content: start; }
.ac-results { display: grid; gap: 6px; align-content: start; border-radius: 0 23px 23px 0; background: radial-gradient(ellipse at 90% 0%, var(--ac-navy-light), var(--ac-navy) 75%); color: var(--ac-result-text); }
.ac-kicker { display: block; font: 600 11px/1.4 var(--ac-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--ac-blue); margin-bottom: 6px; }
.ac-results .ac-kicker { color: var(--ac-mint); }
.ac-inputs h2 { font: 600 clamp(16px, 2.6vw, 21px)/1.3 var(--ac-display); letter-spacing: -.035em; }
.ac-field { min-width: 0; display: grid; gap: 6px; }
.ac-field label, .ac-field-title { font-weight: 600; }
.ac-label { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 3px 12px; }
.ac-label output { color: var(--ac-blue); font: 600 14px/1.45 var(--ac-mono); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ac-small { color: var(--ac-muted); font-size: 12px; }
.ac-range { --fill: 0%; width: 100%; height: 26px; margin: 0; appearance: none; background: transparent; }
.ac-range::-webkit-slider-runnable-track { height: 7px; border-radius: 999px; background: linear-gradient(to right, var(--ac-blue) var(--fill), var(--ac-blue-soft) var(--fill)); }
.ac-range::-moz-range-track { height: 7px; border-radius: 999px; background: linear-gradient(to right, var(--ac-blue) var(--fill), var(--ac-blue-soft) var(--fill)); }
.ac-range::-webkit-slider-thumb { appearance: none; width: 21px; height: 21px; margin-top: -7px; border: 3px solid var(--ac-card); border-radius: 50%; background: var(--ac-blue); box-shadow: 0 0 0 1px var(--ac-blue), 0 2px 7px #0a1f4430; }
.ac-range::-moz-range-thumb { width: 16px; height: 16px; border: 3px solid var(--ac-card); border-radius: 50%; background: var(--ac-blue); box-shadow: 0 0 0 1px var(--ac-blue); }
.ac-funding { border-top: 1px solid var(--ac-line); padding-top: 15px; }
.ac-choice-buttons { display: flex; gap: 8px; flex-wrap: wrap; }
.ac-choice-buttons button { min-height: 42px; padding: 7px 13px; border-radius: 999px; border: 1px solid var(--ac-line); background: var(--ac-card); color: var(--ac-ink); font-size: 13px; font-weight: 600; text-align: left; }
.ac-choice-buttons button:hover { border-color: var(--ac-green); }
.ac-choice-buttons button[aria-pressed="true"] { border-color: var(--ac-green); background: var(--ac-green-soft); color: var(--ac-green); }
.ac-mortgage { display: grid; gap: 10px; }
.ac-term-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.ac-number-field { position: relative; display: block; min-width: 0; }
.ac-number-field input { width: 100%; min-height: 44px; padding: 8px 68px 8px 10px; border: 1px solid var(--ac-line); border-radius: 10px; background: var(--ac-paper); color: var(--ac-ink); font-variant-numeric: tabular-nums; }
.ac-term-fields input { padding-right: 40px; appearance: textfield; }
.ac-term-fields input::-webkit-inner-spin-button { appearance: none; }
.ac-number-field input[aria-invalid="true"] { border-color: #ad493d; }
.ac-number-field span { position: absolute; inset: 0 10px 0 auto; display: flex; align-items: center; pointer-events: none; color: var(--ac-muted); font-size: 12px; }
.ac-error { color: #8d352c; font-size: 13px; }
.ac-result-content { display: grid; gap: 20px; }
.ac-result-label { display: block; color: var(--ac-result-muted); font-size: 14px; }
.ac-final { display: block; margin-top: 6px; color: var(--ac-gold); font: 600 clamp(22px, 3.6vw, 42px)/1.18 var(--ac-display); letter-spacing: -.065em; font-variant-numeric: tabular-nums; }
.ac-pay { padding-top: 15px; border-top: 1px solid #c2d2eb38; }
.ac-pay strong { display: block; font: 500 clamp(19px, 2.6vw, 27px)/1.3 var(--ac-display); letter-spacing: -.04em; margin: 3px 0 11px; }
.ac-track { display: flex; height: 12px; overflow: hidden; background: var(--ac-gold); border-radius: 999px; }
.ac-track > span { flex: 0 0 auto; width: 0; height: 100%; transition: width .25s ease; }
.ac-track-coupon { background: var(--ac-mint); }
.ac-track-gap { background: var(--ac-gold); }
.ac-track-unfunded { background: var(--ac-coral); }
.ac-split, .ac-start { display: grid; gap: 7px; font-size: 13px; }
.ac-split { margin-top: 10px !important; }
.ac-split div, .ac-start div { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 1px 8px; }
.ac-split dt, .ac-start dt { color: var(--ac-result-muted); }
.ac-split dd, .ac-start dd { font: 500 13px/1.4 var(--ac-mono); color: var(--ac-result-text); font-variant-numeric: tabular-nums; }
.ac-swatch { width: 8px; height: 8px; display: inline-block; border-radius: 50%; margin-right: 6px; background: var(--ac-gold); }
.ac-swatch.coupon { background: var(--ac-mint); }
.ac-swatch.unfunded { background: var(--ac-coral); }
.ac-start { padding-top: 13px; border-top: 1px solid #c2d2eb38; }
.ac-assets div:last-child { padding-top: 8px; border-top: 1px solid #c2d2eb38; }
.ac-assets div:last-child :is(dt, dd) { color: var(--ac-gold); font-weight: 600; }
.ac-outcome { color: var(--ac-result-muted); font-size: 13px; }
.ac-outcome strong { color: var(--ac-result-text); font-weight: 600; }
.ac-outcome.ac-shortage, .ac-outcome.ac-shortage strong { color: var(--ac-coral); }
.ac-comparison { margin-top: 24px; padding: clamp(16px, 3vw, 28px); border: 1px solid var(--ac-line); border-radius: 20px; background: var(--ac-card); }
.ac-comparison h2 { font: 600 clamp(16px, 2.6vw, 22px)/1.3 var(--ac-display); letter-spacing: -.035em; }
.ac-comparison .ac-compare-lead { margin: 8px 0 14px; }
.ac-compare-table { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 14px; }
.ac-compare-table :is(th, td) { padding: 8px 10px; border-bottom: 1px solid var(--ac-line); text-align: right; }
.ac-compare-table th:first-child { width: 46%; text-align: left; }
.ac-compare-table thead th { color: var(--ac-ink); background: var(--ac-blue-soft); font-weight: 600; }
.ac-compare-table tbody th { color: var(--ac-muted); font-weight: 500; }
.ac-compare-table td { color: var(--ac-ink); font: 500 13px/1.5 var(--ac-mono); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.ac-compare-table .ac-compare-total :is(th, td) { color: var(--ac-ink); font-weight: 600; background: var(--ac-blue-soft); }
.ac-compare-table .ac-compare-budget :is(th, td) { color: var(--ac-green); background: var(--ac-green-soft); }
.ac-comparison .ac-compare-note { margin-top: 10px; }
.ac-comparison .ac-compare-difference { margin-top: 12px; color: var(--ac-green); font-size: 14px; }
@media (max-width: 640px) {
  .ac-compare-table { display: block; font-size: 13px; }
  .ac-compare-table :is(thead, tbody) { display: block; }
  .ac-compare-table tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ac-compare-table :is(th, td) { padding: 5px 6px; text-align: left; }
  .ac-compare-table thead th:first-child { display: none; }
  .ac-compare-table tbody th:first-child { grid-column: 1 / -1; width: auto; border-bottom: 0; padding-top: 8px; padding-bottom: 0; }
  .ac-compare-table td { font-size: 12px; }
}
.ac-details { border-bottom: 1px solid var(--ac-line); padding: 12px 0; }
.ac-details summary { font-weight: 600; min-height: 28px; }
.ac-details[open] summary { margin-bottom: 10px; }
.ac-details p, .ac-details .ac-breakdown { color: var(--ac-muted); font-size: 14px; }
.ac-details .ac-breakdown strong { color: var(--ac-ink); }
.ac-ledger { display: grid; gap: 8px; }
.ac-ledger div { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 3px 12px; }
.ac-ledger div:last-child { border-top: 1px solid var(--ac-line); padding-top: 8px; }
.ac-ledger dd { color: var(--ac-ink); font-family: var(--ac-mono); font-weight: 600; }
.ac-next { margin-top: 18px; }
.ac-next-body { display: grid; gap: 16px; padding: 16px; background: var(--ac-card); border: 1px solid var(--ac-line); border-radius: 16px; }
.ac-next-body select { width: 100%; min-width: 0; min-height: 44px; background: var(--ac-paper); color: var(--ac-ink); border: 1px solid var(--ac-line); border-radius: 10px; padding: 8px; }
.ac-next-body #richi-segment-tag { color: var(--ac-blue); font-weight: 600; }
.ac-next-body .aip-cta-btn { justify-self: start; display: inline-block; border-radius: 999px; padding: 11px 16px; background: var(--ac-blue); color: var(--ac-card); font-weight: 600; text-decoration: none; }
.ac-next-body .aip-cta-btn:hover { background: var(--ac-navy-light); }
@media (max-width: 640px) {
  .ac-grid { grid-template-columns: 1fr; }
  .ac-results { border-radius: 0 0 23px 23px; }
  .ac-final { font-size: clamp(24px, 6vw, 38px); }
}
@media (pointer: coarse) { .ac-range { height: 44px; } .ac-choice-buttons button { min-height: 44px; } }
@media (prefers-reduced-motion: reduce) { .ac-track > span { transition: none; } }
