.calculator-section { background:var(--surface); border-block:1px solid var(--line); }
.calculator-intro h2 { font-size:var(--type-heading); line-height:var(--leading-heading); letter-spacing:-.02em; }
.calculator-layout { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.85fr); gap:clamp(32px,6vw,96px); align-items:start; }
.calculator-form,.calculator-summary,.calculator-fields>* { min-width:0; }
.calculator-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.calculator-wide { grid-column:1/-1; }
.calculator-fields label { display:block; font-size:var(--type-ui); font-weight:600; }
.calculator-fields :is(input,select,textarea) { display:block; width:100%; margin-top:8px; min-height:48px; padding:12px 14px; color:var(--ivory); background:var(--black); border:1px solid var(--control-border); border-radius:0; font-size:var(--type-body); font-weight:400; color-scheme:dark; }
.calculator-fields select { padding-right:32px; text-overflow:ellipsis; }
.calculator-fields textarea { resize:vertical; min-height:112px; }
.calculator-fields textarea::placeholder { color:var(--muted); opacity:1; }
.calculator-fields :is(input,select,textarea):focus-visible { outline:2px solid var(--lime); outline-offset:3px; }
.calculator-fields [aria-invalid=true] { border-color:var(--lime); }
.calculator-optional { color:var(--muted); font-weight:400; }
.calculator-help,.calculator-caption { color:var(--muted); font-size:var(--type-ui); line-height:1.65; }
#calc-menu-note { margin:-12px 0 0; }
.calculator-summary { padding-top:24px; }
.calculator-summary h3 { font-size:var(--type-title); line-height:1.15; margin:0 0 24px; }
.calculator-caption { margin-bottom:8px; }
.calculator-total { font-family:var(--serif); font-size:clamp(2.5rem,4vw,3.75rem); line-height:1.12; letter-spacing:-.02em; font-variant-numeric:tabular-nums; color:var(--lime); margin:0 0 12px; overflow-wrap:anywhere; }
.calculator-breakdown { margin:24px 0; }
.calculator-breakdown>div { display:flex; justify-content:space-between; gap:16px; border-top:1px solid var(--line); padding:16px 0; font-size:var(--type-ui); }
.calculator-breakdown dt { min-width:0; color:var(--muted); }
.calculator-breakdown dd { margin:0; text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
.calculator-summary-note { font-size:var(--type-ui); color:var(--muted); }
.calculator-review { width:100%; margin-top:8px; }
.calculator-review:disabled { cursor:not-allowed; opacity:.55; }
.calculator-disclaimer { margin-top:20px; }
#calc-error:empty,#calc-per-person:empty,#calc-breakdown:empty { display:none; }
#calc-error { color:var(--ivory); margin-top:24px; }
#calc-addons { padding:0; border:0; margin:0; }
#calc-addons legend { font-size:var(--type-ui); margin-bottom:12px; }
#calc-addon-options { display:grid; gap:8px; }
#calc-addon-options label { display:flex; align-items:center; gap:12px; min-height:44px; }
#calc-addon-options input { width:20px; min-height:20px; height:20px; margin:0; accent-color:var(--lime); }
.calculator-copy { background:none; padding:0; border:0; border-bottom:1px solid currentColor; }
.calculator-review-note { color:var(--muted); font-size:var(--type-ui); margin:16px 0 0; }
.calculator-fields [hidden],.calculator-summary [hidden] { display:none; }
@media(max-width:900px) {
  .calculator-layout { grid-template-columns:minmax(0,1fr); gap:40px; }
  .calculator-summary { max-width:100%; }
  .calculator-total { font-size:clamp(2.5rem,8vw,3.75rem); }
}
@media(max-width:480px) {
  .calculator-fields { gap:20px 16px; }
  .calculator-fields label:has(select),.calculator-fields label:has(textarea),#calc-date { min-width:0; }
  .calculator-breakdown>div { flex-wrap:wrap; gap:4px 16px; }
  .calculator-breakdown dd { margin-left:auto; }
}
@media(max-width:360px) { .calculator-fields { grid-template-columns:minmax(0,1fr); } }
