.cost-tool {
  --ct-paper: var(--sand); --ct-surface: #fff; --ct-dark: var(--pine-dark);
  --ct-ink: var(--ink); --ct-muted: var(--pine); --ct-line: var(--line);
  --ct-accent: var(--ember); --ct-soft: #e7f0c7; --ct-error: #9b2424;
  --ct-gap: 1.25rem; --ct-radius: 1.5rem; --ct-font: Inter, sans-serif;
  --ct-display: Manrope, Inter, sans-serif;
  color: var(--ct-ink); background: var(--ct-paper); font-family: var(--ct-font);
  padding-block: 1.25rem 4rem;
}
.cost-tool *, .cost-tool *::before, .cost-tool *::after { box-sizing: border-box; min-width: 0; }
.cost-tool ::selection { background: var(--ct-accent); color: var(--ct-dark); }
.cost-tool :focus-visible { outline: 3px solid var(--ct-muted); outline-offset: 4px; }
.cost-tool .ct-result :focus-visible { outline-color: var(--ct-accent); }
.cost-tool .ct-breadcrumb { font-size: .75rem; color: var(--ct-muted); margin-bottom: .65rem; }
.cost-tool .ct-breadcrumb a { display: inline-flex; align-items: center; min-height: 44px; text-decoration: underline; text-underline-offset: 3px; }
.cost-tool h1 { font-family: var(--ct-display); font-size: clamp(1.75rem, 4vw, 3rem); font-weight: 800; letter-spacing: -.035em; line-height: 1.13; color: var(--ct-dark); max-width: 23ch; }
.cost-tool .ct-intro { color: var(--ct-muted); max-width: 58ch; font-size: .9375rem; line-height: 1.5; margin-block: .65rem 1.25rem; }
.cost-tool .ct-calculator { display: grid; background: var(--ct-surface); border: 1px solid var(--ct-line); border-radius: var(--ct-radius); }
.cost-tool .ct-compact { display: none; }
.cost-tool .ct-form { padding: 1.25rem; }
.cost-tool label { display: block; font-size: .9375rem; font-weight: 700; margin-bottom: .4rem; }
.cost-tool .ct-input { position: relative; }
.cost-tool input, .cost-tool select { width: 100%; min-height: 48px; font-size: 16px; font-family: inherit; border: 1px solid var(--ct-muted); border-radius: .75rem; background: var(--ct-surface); color: var(--ct-ink); padding: .65rem .9rem; caret-color: var(--ct-muted); }
.cost-tool .ct-input input { padding-right: 4rem; font-variant-numeric: tabular-nums; }
.cost-tool .ct-unit { position: absolute; right: 1rem; top: .8rem; font-size: .875rem; color: var(--ct-muted); pointer-events: none; }
.cost-tool .ct-help { font-size: .75rem; line-height: 1.45; color: var(--ct-muted); margin-top: .4rem; }
.cost-tool .ct-field + .ct-field { margin-top: 1rem; }
.cost-tool .ct-error { color: var(--ct-error); font-size: .8125rem; margin-top: .4rem; }
.cost-tool [aria-invalid="true"] { border-color: var(--ct-error); border-width: 2px; }
.cost-tool .ct-options { margin-top: .65rem; }
.cost-tool summary { min-height: 44px; cursor: pointer; font-size: .875rem; color: var(--ct-muted); font-weight: 700; padding-block: .75rem; }
.cost-tool .ct-form-footer { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; margin-top: .25rem; }
.cost-tool .ct-reset { min-width: 44px; min-height: 44px; text-decoration: underline; text-underline-offset: 4px; font-size: .8125rem; font-weight: 600; color: var(--ct-muted); }
.cost-tool .ct-reset:hover { text-decoration-thickness: 2px; }
.cost-tool .ct-result { background: var(--ct-dark); color: var(--ct-surface); padding: 1.5rem; border-radius: 0 0 var(--ct-radius) var(--ct-radius); display: flex; flex-direction: column; }
.cost-tool .ct-result-label { font-size: .8125rem; color: var(--ct-soft); font-weight: 600; }
.cost-tool .ct-number { font-family: var(--ct-display); font-size: clamp(1.8rem, 5vw, 2.7rem); line-height: 1.16; letter-spacing: -.03em; font-weight: 800; margin-block: .55rem; min-height: 2.35rem; font-variant-numeric: tabular-nums; }
.cost-tool .ct-result-note { color: var(--ct-soft); font-size: .8125rem; line-height: 1.6; min-height: 2.6rem; }
.cost-tool .ct-bar { display: flex; height: 10px; gap: 3px; border-radius: 999px; overflow: hidden; margin-block: 1.3rem; }
.cost-tool .ct-bar span { flex-basis: 0; }
.cost-tool .ct-bar-work { background: var(--ct-accent); flex-grow: 120; }
.cost-tool .ct-bar-wait { background: var(--ct-surface); flex-grow: 0; }
.cost-tool .ct-bar-reserve { background: var(--ct-soft); flex-grow: 30; }
.cost-tool .ct-breakdown { display: grid; grid-template-columns: 1fr auto; gap: .5rem; font-size: .8125rem; line-height: 1.5; }
.cost-tool .ct-breakdown dt { color: var(--ct-soft); }
.cost-tool .ct-breakdown dd { text-align: right; font-weight: 600; font-variant-numeric: tabular-nums; }
.cost-tool .ct-cta { margin-top: 1.5rem; align-self: flex-start; }
.cost-tool .ct-phone { font-size: .8125rem; color: var(--ct-soft); margin-top: .75rem; }
.cost-tool .ct-example-note { font-size: .8125rem; line-height: 1.6; color: var(--ct-muted); margin-top: .85rem; max-width: 78ch; }
.cost-tool .ct-article { max-width: 72ch; margin: 3rem auto 0; overflow-wrap: anywhere; }
.cost-tool .ct-article h2 { font-family: var(--ct-display); color: var(--ct-dark); font-weight: 800; line-height: 1.25; font-size: 1.65rem; margin-block: 2.5rem 1rem; letter-spacing: -.025em; }
.cost-tool .ct-article h3 { font-family: var(--ct-display); color: var(--ct-dark); font-weight: 700; font-size: 1.15rem; margin-block: 1.5rem .5rem; }
.cost-tool .ct-article p, .cost-tool .ct-article ul { font-size: 1rem; line-height: 1.85; margin-bottom: 1rem; color: var(--ct-muted); }
.cost-tool .ct-article ul { padding-left: 1.3rem; list-style: disc; }
.cost-tool .ct-article a { color: var(--ct-dark); text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.cost-tool .ct-article a:hover { text-decoration-thickness: 2px; }
.cost-tool .ct-equation { background: var(--ct-soft); padding: 1.25rem; border-radius: 1rem; color: var(--ct-dark); }
.cost-tool .ct-review-date { font-size: .8125rem; color: var(--ct-muted); margin-top: 2rem; }
.cost-tool .ct-context-image { width: 100%; border-radius: var(--ct-radius); margin-top: 2.5rem; }
.cost-tool .ct-context-image img { width: 100%; height: auto; border-radius: var(--ct-radius); }
.cost-tool [hidden] { display: none !important; }
@media (min-width: 768px) {
  .cost-tool { padding-top: 2rem; }
  .cost-tool .ct-calculator { grid-template-columns: 1fr 1fr; max-width: 66rem; }
  .cost-tool .ct-form { padding: 2rem; }
  .cost-tool .ct-result { padding: 2rem; border-radius: 0 var(--ct-radius) var(--ct-radius) 0; }
  .cost-tool .ct-intro { margin-bottom: 1.75rem; }
}
@media (max-width: 767px) {
  .cost-tool { padding-top: .25rem; }
  .cost-tool .ct-breadcrumb { margin-bottom: .2rem; }
  .cost-tool .ct-intro { margin-bottom: .85rem; }
  .cost-tool .ct-form { padding: 1rem 1.1rem .5rem; }
  .cost-tool .ct-compact { display: block; padding: .85rem 1.1rem; border-radius: var(--ct-radius) var(--ct-radius) 0 0; background: var(--ct-soft); color: var(--ct-dark); }
  .cost-tool .ct-compact p:first-child { font-size: .75rem; font-weight: 600; }
  .cost-tool .ct-compact p:last-child { font-family: var(--ct-display); font-size: 1.5rem; font-weight: 800; line-height: 1.3; margin-top: .2rem; font-variant-numeric: tabular-nums; }
  .cost-tool .ct-field + .ct-field { margin-top: .6rem; }
  .cost-tool .ct-form-footer { margin-top: 0; }
  .cost-tool .ct-result { padding: 1.1rem; }
  .cost-tool .ct-number { font-size: 1.8rem; }
  .cost-tool .ct-article .site-table td::before { min-width: 6rem; }
}
@media (prefers-reduced-motion: reduce) {
  .cost-tool a { transition: none; }
  .cost-tool .btn:hover { transform: none; }
}

.cost-tool .ct-result .ct-breakdown { margin-top: 1.5rem; }
.cost-tool .ct-number { overflow-wrap: anywhere; }

@media (max-width: 640px) {
  .cost-tool .ct-article .site-table td { display: block; overflow-wrap: anywhere; }
  .cost-tool .ct-article .site-table td::before { display: block; min-width: 0; margin-bottom: .35rem; }
}
