/* Property calculators (opt-in via site.calculators; loaded only on the pages that show them) */
.calc-wrap { margin: 40px 0 32px; padding-top: 28px; border-top: .5px solid var(--line); }
.calc-wrap > .muted { max-width: 70ch; }
.calc-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: 24px; margin-top: 18px; }
.calc { border: 1px solid var(--heading); border-radius: 4px; padding: 22px; background: var(--bg, #fff); min-width: 0; }
.calc h3 { font-size: 1.35rem; margin: 0 0 14px; }
.calc-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.calc-field { display: flex; flex-direction: column; gap: 4px; margin: 0 0 14px; min-width: 0; }
.calc-field label, .calc legend { font-size: .72rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.calc-input { display: flex; align-items: center; border: 1px solid var(--line); border-radius: 4px; background: #fff; }
.calc-input:focus-within { outline: 3px solid var(--accent); outline-offset: 1px; }
.calc-input span { padding: 0 0 0 12px; color: var(--muted); }
.calc-input span.calc-unit { padding: 0 12px 0 0; }
.calc-input input { flex: 1; min-width: 0; width: 100%; border: 0; background: transparent; font: inherit; font-size: 1.05rem; color: var(--ink); padding: 11px 12px; outline: none; }
.calc fieldset { border: 0; padding: 0; margin: 0 0 14px; min-width: 0; }
.calc legend { padding: 0; margin-bottom: 6px; }
.calc-choice { display: flex; align-items: center; gap: 10px; padding: 7px 0; cursor: pointer; }
.calc-choice input { width: 18px; height: 18px; accent-color: #000; margin: 0; flex: none; }
.calc .btn { border: 0; cursor: pointer; font: inherit; background: #000; color: #fff; box-shadow: none; }
.calc .btn:hover { background: #222; transform: none; box-shadow: none; }
.calc-result { margin: 18px 0 0; padding: 16px 0 0; border-top: .5px solid var(--line); }
.calc-kicker { font-size: .72rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; margin: 0 0 4px; }
.calc-big { font-size: 1.9rem; font-weight: 600; line-height: 1.2; margin: 0 0 10px; color: var(--heading); overflow-wrap: anywhere; }
.calc-result p.calc-big:only-child { font-size: 1rem; font-weight: 400; color: var(--muted); }
.calc-sub { margin: 0 0 10px; color: var(--muted); }
.calc-flag { margin: 0 0 10px; padding: 8px 12px; border-left: 3px solid #000; background: var(--bg-soft); }
.calc-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 10px 16px; margin: 0; }
.calc-facts dt { font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.calc-facts dd { margin: 2px 0 0; font-weight: 600; }
.calc-table-wrap { overflow-x: auto; }
.calc-table { width: 100%; border-collapse: collapse; font-size: .92rem; }
.calc-table th, .calc-table td { text-align: left; padding: 6px 8px 6px 0; border-bottom: .5px solid var(--line); white-space: nowrap; }
.calc-table th { font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); font-weight: 600; }
.calc-note { font-size: .85rem; color: var(--muted); margin: 14px 0 0; line-height: 1.5; }
.calc-note strong { color: var(--ink); }
@media (max-width: 420px) { .calc { padding: 16px; } .calc-row { grid-template-columns: 1fr; gap: 0; } }
.calc-grid > .calc:only-child { max-width: 560px; }

