.cost-lab { --cl-ink:#141414; --cl-muted:#5c5c5c; --cl-orange:#ff9418; --cl-paper:#fff; --cl-line:#dadada; margin:60px 0; color:var(--cl-ink); background:#f4f4f4; border:1px solid var(--cl-line); border-radius:24px; overflow:hidden; scroll-margin-top:100px; }
.cost-lab, .cost-lab * { box-sizing:border-box; }
.cost-lab [hidden] { display:none!important; }
.cost-lab .cost-lab__header { padding:32px 32px 20px; background:var(--cl-ink); color:#fff; }
.cost-lab .cost-lab__eyebrow { margin:0 0 12px; color:#a75300; font-size:11px; line-height:1.5; font-weight:800; letter-spacing:.13em; }
.cost-lab .cost-lab__header .cost-lab__eyebrow { color:#ffac43; }
.cost-lab .cost-lab__header h2 { margin:0 0 14px; color:#fff; font-size:clamp(26px,4.5vw,36px); line-height:1.15; letter-spacing:-.035em; }
.cost-lab .cost-lab__header p:not(.cost-lab__eyebrow) { margin:0; color:#e4e4e4; font-size:16px; line-height:1.7; }
.cost-lab .cost-lab__notice { margin:0; padding:20px 32px; color:#373737; background:#f5f5f5; border-bottom:1px solid #e6d4bd; font-size:13px; line-height:1.65; }
.cost-lab .cost-lab__form { padding:28px 32px 24px; }
.cost-lab fieldset { min-width:0; margin:0; padding:0; border:0; }
.cost-lab legend { padding:0; margin:0 0 20px; color:var(--cl-ink); font-size:16px; font-weight:800; line-height:1.5; }
.cost-lab legend span { display:inline-flex; justify-content:center; align-items:center; width:28px; height:28px; margin-right:8px; border:1px solid #bcbcbc; border-radius:50%; font-size:11px; vertical-align:middle; }
.cost-lab .cost-lab__field-grid, .cost-lab .cost-lab__quotes, .cost-lab .cost-lab__totals { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:20px; }
.cost-lab .cost-lab__quotes { margin-top:26px; gap:18px; }
.cost-lab .cost-lab__quote { padding:20px; border:1px solid #cccccc; border-radius:14px; background:var(--cl-paper); }
.cost-lab .cost-lab__quote legend { float:left; width:100%; margin-bottom:16px; }
.cost-lab .cost-lab__quote legend + .cost-lab__field { clear:both; }
.cost-lab .cost-lab__quote--a legend span { background:var(--cl-orange); border-color:var(--cl-orange); }
.cost-lab .cost-lab__quote--b legend span { background:var(--cl-ink); border-color:var(--cl-ink); color:#fff; }
.cost-lab .cost-lab__field + .cost-lab__field { margin-top:14px; }
.cost-lab .cost-lab__field-grid .cost-lab__field + .cost-lab__field { margin-top:0; }
.cost-lab .cost-lab__field label { display:block; margin:0 0 7px; color:#363636; font-weight:650; font-size:12px; line-height:1.5; }
.cost-lab input[type="number"] { display:block; width:100%; min-width:0; min-height:47px; padding:10px 12px; border:1px solid #b4b4b4; border-radius:7px; color:var(--cl-ink); background:#fff; font-family:inherit; font-size:18px; font-weight:700; line-height:1.3; appearance:auto; }
.cost-lab input:focus-visible, .cost-lab button:focus-visible { outline:3px solid #a74e00; outline-offset:3px; }
.cost-lab input[aria-invalid="true"] { border:2px solid #9b310b; }
.cost-lab .cost-lab__field-error { display:block; margin-top:6px; color:#9b310b; font-size:12px; line-height:1.5; }
.cost-lab .cost-lab__actions { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-top:20px; }
.cost-lab .cost-lab__actions p { margin:0; color:var(--cl-muted); font-size:12px; line-height:1.5; }
.cost-lab button { cursor:pointer; font-family:inherit; line-height:1.4; }
.cost-lab .cost-lab__reset { flex-shrink:0; min-height:44px; border:1px solid #a3a3a3; border-radius:6px; padding:8px 12px; color:var(--cl-ink); background:#fff; font-size:12px; font-weight:700; }
.cost-lab .cost-lab__reset:hover { background:#eaeaea; }
.cost-lab .cost-lab__error-summary { margin:16px 0 0; padding:12px; border-left:3px solid #9b310b; color:#8d2c09; background:#fff; font-size:13px; line-height:1.6; }
.cost-lab .cost-lab__results { padding:28px 32px; background:#fff; border-top:1px solid var(--cl-line); }
.cost-lab .cost-lab__result-heading { display:flex; gap:15px; justify-content:space-between; align-items:baseline; margin-bottom:18px; }
.cost-lab .cost-lab__result-heading p { margin:0; }
.cost-lab .cost-lab__result-heading p:last-child { font-size:12px; color:#505050; }
.cost-lab .cost-lab__totals { gap:28px; }
.cost-lab .cost-lab__total { min-width:0; }
.cost-lab .cost-lab__total + .cost-lab__total { padding-left:28px; border-left:1px solid var(--cl-line); }
.cost-lab .cost-lab__quote-label { display:flex; align-items:center; gap:8px; margin:0 0 7px; font-size:13px; font-weight:800; color:#2b2b2b; }
.cost-lab .cost-lab__swatch { width:9px; height:9px; border-radius:50%; background:var(--cl-orange); }
.cost-lab .cost-lab__swatch--b { background:#595959; }
.cost-lab .cost-lab__money { margin:0 0 3px; color:var(--cl-ink); font-size:clamp(26px,4vw,34px); font-weight:800; letter-spacing:-.04em; line-height:1.25; overflow-wrap:anywhere; font-variant-numeric:tabular-nums; }
.cost-lab .cost-lab__money + p { margin:0 0 18px; color:var(--cl-muted); font-size:12px; line-height:1.5; }
.cost-lab .cost-lab__total dl { margin:0; font-size:12px; line-height:1.5; }
.cost-lab .cost-lab__total dl div { display:flex; justify-content:space-between; flex-wrap:wrap; gap:5px 8px; padding:6px 0; }
.cost-lab .cost-lab__total dt { color:#606060; }
.cost-lab .cost-lab__total dd { margin:0; color:#2b2b2b; font-weight:750; font-variant-numeric:tabular-nums; }
.cost-lab .cost-lab__chart { margin:24px 0; }
.cost-lab .cost-lab__chart-row { display:grid; grid-template-columns:20px minmax(0,1fr); align-items:center; gap:10px; margin-top:8px; font-size:11px; font-weight:800; }
.cost-lab .cost-lab__track { height:13px; border-radius:3px; background:#eeeeee; overflow:hidden; }
.cost-lab .cost-lab__bar { height:100%; width:0; border-radius:3px; }
.cost-lab .cost-lab__bar--a { background:var(--cl-orange); }
.cost-lab .cost-lab__bar--b { background:#595959; }
.cost-lab .cost-lab__difference { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:23px; background:#141414; border-radius:12px; color:#fff; }
.cost-lab .cost-lab__difference p { margin:0; color:#d3d3d3; font-size:12px; line-height:1.6; }
.cost-lab .cost-lab__difference strong { display:block; margin:4px 0; color:#fff; font-size:30px; line-height:1.3; letter-spacing:-.03em; overflow-wrap:anywhere; }
.cost-lab .cost-lab__download { max-width:190px; padding:12px 17px; border:1px solid var(--cl-orange); border-radius:7px; background:var(--cl-orange); color:#1a1a1a; font-size:12px; font-weight:800; }
.cost-lab .cost-lab__download:hover { background:#ffac43; }
.cost-lab .cost-lab__download:focus-visible { outline-color:#fff; }
.cost-lab .cost-lab__estimate-note { margin:14px 0 0; color:#606060; font-size:12px; line-height:1.6; }
.cost-lab .cost-lab__method { padding:20px 32px 25px; border-top:1px solid var(--cl-line); }
.cost-lab .cost-lab__method p { margin:0 0 10px; color:#575757; font-size:12px; line-height:1.7; }
.cost-lab .cost-lab__method p:last-child { margin:0; }
.cost-lab .cost-lab__method strong { color:#2b2b2b; }
.cost-lab .cost-lab__privacy { padding-top:10px; border-top:1px solid var(--cl-line); }
.cost-lab .cost-lab__sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media(max-width:600px) {
  .cost-lab { border-radius:18px; margin:36px 0; }
  .cost-lab .cost-lab__header, .cost-lab .cost-lab__form, .cost-lab .cost-lab__results { padding:24px 18px; }
  .cost-lab .cost-lab__notice, .cost-lab .cost-lab__method { padding:18px; }
  .cost-lab .cost-lab__field-grid, .cost-lab .cost-lab__quotes { grid-template-columns:1fr; gap:16px; }
  .cost-lab .cost-lab__quote { padding:18px; }
  .cost-lab .cost-lab__quote .cost-lab__field { max-width:none; }
  .cost-lab .cost-lab__actions, .cost-lab .cost-lab__result-heading, .cost-lab .cost-lab__difference { align-items:flex-start; flex-direction:column; }
  .cost-lab .cost-lab__totals { gap:16px; }
  .cost-lab .cost-lab__total + .cost-lab__total { padding-left:16px; }
  .cost-lab .cost-lab__total dl div { display:block; }
  .cost-lab .cost-lab__total dd { margin-top:3px; }
  .cost-lab .cost-lab__money { font-size:25px; }
  .cost-lab .cost-lab__download { max-width:none; width:100%; }
}
@media print {
  .cost-lab { break-inside:avoid; background:#fff; }
  .cost-lab .cost-lab__actions, .cost-lab .cost-lab__download { display:none; }
  .cost-lab .cost-lab__header, .cost-lab .cost-lab__difference { background:#fff; color:#111; border:1px solid #999; }
  .cost-lab .cost-lab__header h2, .cost-lab .cost-lab__header p:not(.cost-lab__eyebrow), .cost-lab .cost-lab__difference p, .cost-lab .cost-lab__difference strong { color:#111; }
}
