:root {
  --budget-wine: var(--primary);
  --budget-wine-dark: var(--ink);
  --budget-rose: var(--primary-soft);
  --budget-cream: var(--gray1);
  --budget-line: var(--gray2);
  --budget-ink: var(--ink);
  --budget-muted: var(--muted);
}

.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.budget-shell { width:min(1400px, calc(100% - 64px)); margin-inline:auto; }
.budget-hero { position:relative; overflow:hidden; padding:56px 0 48px; background:linear-gradient(135deg,#fff 0%,var(--primary-soft) 100%); border-bottom:.5px solid rgba(0,0,0,.08); }
.budget-hero::after { content:""; position:absolute; width:440px; height:440px; right:-110px; top:-260px; border-radius:50%; background:rgba(var(--primary-rgb),.18); }
.budget-hero__glow { position:absolute; width:340px; height:340px; border-radius:50%; right:19%; bottom:-280px; background:rgba(48,196,168,.07); }
.budget-hero__inner { position:relative; z-index:1; }
.budget-kicker { display:inline-flex; align-items:center; gap:8px; color:var(--ink2); font-size:11px; font-weight:800; letter-spacing:1.6px; text-transform:uppercase; }
.budget-kicker::before { content:""; width:8px; height:8px; flex:0 0 8px; border-radius:50%; background:var(--primary); }
.budget-hero h1,.budget-method h2,.budget-faq h2 { font-family:var(--font-sans); color:var(--ink); font-weight:750; }
.budget-hero h1 { max-width:920px; margin:10px 0 8px; font-size:clamp(38px,4.4vw,62px); line-height:1.04; letter-spacing:-2px; }
.budget-hero__inner>p:last-child { max-width:760px; color:#51474a; font-size:17px; line-height:1.6; }

.budget-workspace { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(380px,.9fr); gap:18px; align-items:start; margin-top:24px; margin-bottom:54px; }
.budget-form-card,.budget-result-card { min-width:0; border:.5px solid rgba(0,0,0,.1); border-radius:var(--radius-lg); background:rgba(255,255,255,.97); box-shadow:var(--shadow); }
.budget-form-card { padding:24px; }
.budget-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; list-style:none; margin-bottom:10px; padding:0 0 22px; border-bottom:1px solid var(--budget-line); }
.budget-steps li { min-width:0; display:flex; align-items:center; gap:10px; color:var(--budget-muted); font-size:12px; font-weight:600; }
.budget-steps li::after { content:""; flex:1; height:1px; margin-left:7px; background:var(--budget-line); }
.budget-steps li:last-child::after { display:none; }
.budget-steps span { display:grid; place-items:center; width:30px; height:30px; flex:0 0 30px; border-radius:50%; background:#f2efed; color:#655d5f; }
.budget-steps .is-active { color:var(--budget-ink); }
.budget-steps .is-active span { background:var(--primary); color:#fff; }
.budget-form-grid { display:grid; grid-template-columns:1fr 1.12fr; }
.budget-form-grid--style { grid-template-columns:1.65fr .75fr; border-top:1px solid var(--budget-line); }
.budget-fieldset { min-width:0; padding:22px 20px; border:0; }
.budget-form-grid .budget-fieldset+.budget-fieldset { border-left:1px solid var(--budget-line); }
.budget-fieldset legend { width:100%; color:var(--budget-ink); font-family:var(--font-sans); font-size:16px; font-weight:700; letter-spacing:-.2px; }
.budget-fieldset legend span { display:inline-flex; width:24px; color:var(--budget-wine); font-family:Inter,sans-serif; font-weight:700; }
.budget-fieldset>p { margin:4px 0 14px; color:var(--budget-muted); font-size:12px; line-height:1.45; }
.budget-fieldset select,.budget-number { width:100%; min-height:44px; border:1px solid var(--gray2); border-radius:var(--radius-sm); background:#fff; color:var(--budget-ink); font-size:13px; }
.budget-fieldset select { padding:0 13px; }
.budget-range-row { display:grid; grid-template-columns:1fr 76px; gap:16px; align-items:center; }
.budget-range-row input[type=range] { width:100%; accent-color:var(--primary); }
.budget-number { display:grid; place-items:center; padding:6px; }
.budget-number input { width:100%; border:0; outline:0; text-align:center; font-weight:700; font-size:15px; }
.budget-number small { color:var(--budget-muted); font-size:9px; }
.budget-range-labels { display:flex; justify-content:space-between; margin:6px 92px 0 0; color:#948b8e; font-size:9px; }
.budget-style-options { display:grid; grid-template-columns:repeat(3,1fr); gap:9px; }
.budget-style-options label { cursor:pointer; }
.budget-style-options input { position:absolute; opacity:0; }
.budget-style-options span { display:grid; place-items:center; min-height:92px; padding:12px 8px; border:1px solid var(--gray2); border-radius:var(--radius-sm); text-align:center; transition:.18s ease; }
.budget-style-options b { color:var(--budget-ink); font-family:var(--font-sans); font-size:15px; font-weight:700; }
.budget-style-options small { margin-top:7px; color:var(--budget-muted); font-size:10px; line-height:1.3; }
.budget-style-options input:checked+span { border-color:var(--primary); background:var(--primary-soft); box-shadow:inset 0 0 0 1px var(--primary); }
.budget-style-options input:focus-visible+span { outline:3px solid rgba(141,23,58,.22); outline-offset:2px; }
.budget-services { border-top:1px solid var(--budget-line); }
.budget-service-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
.budget-service-grid label { display:flex; align-items:center; gap:8px; min-height:48px; padding:8px 10px; border:1px solid var(--gray2); border-radius:var(--radius-sm); color:var(--ink2); font-size:11px; cursor:pointer; transition:.15s ease; }
.budget-service-grid label:has(input:checked) { border-color:rgba(var(--primary-rgb),.95); background:var(--primary-soft); color:var(--ink); }
.budget-service-grid input { margin-left:auto; order:3; accent-color:var(--primary); }
.budget-service-grid span { width:22px; color:var(--budget-wine); font-size:17px; text-align:center; }

.budget-result-card { position:sticky; top:82px; padding:24px; }
.budget-result-heading { display:flex; align-items:center; gap:10px; }
.budget-result-heading>span { display:grid; place-items:center; width:34px; height:34px; border-radius:50%; background:var(--budget-rose); color:var(--budget-wine); }
.budget-result-heading h2 { font-family:var(--font-sans); font-size:19px; font-weight:750; letter-spacing:-.5px; }
.budget-total { max-width:100%; margin-top:24px; color:var(--ink); font-family:var(--font-sans); font-size:clamp(25px,1.55vw,32px); font-weight:750; line-height:1.08; letter-spacing:-1.15px; overflow-wrap:anywhere; text-align:center; }
.budget-total-context { margin-top:7px; color:var(--budget-muted); font-size:12px; text-align:center; }
.budget-result-facts { display:grid; grid-template-columns:repeat(3,1fr); margin:22px 0; padding:17px 0; border-block:1px solid var(--budget-line); }
.budget-result-facts>div { display:flex; gap:8px; min-width:0; padding:0 9px; }
.budget-result-facts>div+div { border-left:1px solid var(--budget-line); }
.budget-result-facts>div>span { color:var(--budget-wine); }
.budget-result-facts p { min-width:0; }
.budget-result-facts b,.budget-result-facts small { display:block; }
.budget-result-facts b { overflow:hidden; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.budget-result-facts small { margin-top:3px; color:var(--budget-muted); font-size:9px; }
.budget-result-card h3 { margin:0 0 13px; font-family:var(--font-sans); font-size:15px; font-weight:700; }
.budget-breakdown { display:grid; gap:10px; }
.budget-breakdown__row { display:grid; grid-template-columns:minmax(110px,1.15fr) minmax(80px,1fr) auto; gap:10px; align-items:center; font-size:10px; }
.budget-breakdown__label { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.budget-breakdown__track { height:7px; overflow:hidden; border-radius:999px; background:#eee9e7; }
.budget-breakdown__fill { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--primary),#e790a1); }
.budget-breakdown__value { color:var(--budget-muted); white-space:nowrap; }
.budget-disclaimer { display:flex; gap:9px; margin:20px 0 12px; padding:12px; border-radius:var(--radius-sm); background:var(--gray1); color:var(--muted); font-size:10px; line-height:1.45; }
.budget-cta { display:flex; align-items:center; justify-content:center; min-height:47px; border-radius:var(--radius-sm); font-family:var(--font-sans); font-size:14px; font-weight:700; transition:transform .16s ease,box-shadow .16s ease,background .16s ease; }
.budget-cta:hover { transform:translateY(-1px); }
.budget-cta--primary { position:relative; justify-content:center; padding:0 44px; text-align:center; background:var(--primary); color:#fff; box-shadow:0 8px 20px rgba(var(--primary-rgb),.24); }
.budget-cta--primary span { position:absolute; right:18px; }
.budget-cta--secondary { margin-top:9px; border:1px solid var(--gray2); color:var(--ink); background:#fff; }

.budget-method { padding:62px 0; background:var(--budget-cream); border-block:1px solid rgba(102,16,39,.07); }
.budget-method__grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:70px; align-items:start; }
.budget-method h2,.budget-faq h2 { margin:7px 0 12px; font-size:34px; line-height:1.1; letter-spacing:-1.2px; }
.budget-method__grid>div>p:last-child { color:var(--budget-muted); font-size:14px; line-height:1.7; }
.budget-method__items { display:grid; gap:12px; }
.budget-method__items article { display:flex; gap:16px; padding:17px; border:1px solid var(--budget-line); border-radius:14px; background:rgba(255,255,255,.7); }
.budget-method__items article>span { display:grid; place-items:center; width:36px; height:36px; flex:0 0 36px; border-radius:50%; background:var(--budget-rose); color:var(--budget-wine); font-size:10px; font-weight:800; }
.budget-method__items h3 { margin-bottom:4px; font-size:14px; }
.budget-method__items p { color:var(--budget-muted); font-size:12px; line-height:1.5; }
.budget-regions { padding-top:68px; }
.budget-regions h2 { margin:7px 0 10px; font-size:34px; line-height:1.1; letter-spacing:-1.2px; }
.budget-regions>p:not(.budget-kicker) { max-width:720px; color:var(--budget-muted); font-size:14px; line-height:1.65; }
.budget-regions__grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; margin-top:24px; }
.budget-regions__grid a { display:flex; min-height:48px; align-items:center; justify-content:space-between; padding:11px 14px; border:1px solid var(--budget-line); border-radius:12px; background:#fff; color:var(--budget-ink); font-size:12px; font-weight:700; text-decoration:none; }
.budget-regions__grid a::after { content:'→'; color:var(--budget-wine); }
.budget-regions__grid a:hover,.budget-regions__grid a:focus-visible { border-color:var(--primary); background:var(--primary-soft); outline:0; }
.budget-faq { padding-block:68px 84px; }
.budget-faq__list { margin-top:24px; border-top:1px solid var(--budget-line); }
.budget-faq details { padding:20px 4px; border-bottom:1px solid var(--budget-line); }
.budget-faq summary { color:var(--budget-ink); font-weight:650; cursor:pointer; }
.budget-faq details p { max-width:850px; margin-top:12px; color:var(--budget-muted); font-size:14px; line-height:1.65; }

@media (max-width:1020px) {
  .budget-workspace { grid-template-columns:minmax(0,1fr); }
  .budget-result-card { position:relative; top:auto; }
  .budget-service-grid { grid-template-columns:repeat(3,1fr); }
}
@media (max-width:720px) {
  .budget-shell { width:min(100% - 28px,1400px); }
  .budget-hero { padding:40px 0 34px; }
  .budget-hero h1 { font-size:43px; }
  .budget-hero__inner>p:last-child { font-size:14px; }
  .budget-workspace { margin-top:14px; }
  .budget-form-card,.budget-result-card { border-radius:17px; }
  .budget-form-card { padding:14px; }
  .budget-steps { gap:6px; }
  .budget-steps li { gap:6px; font-size:9px; }
  .budget-steps li { white-space:normal; }
  .budget-steps li::after { display:none; }
  .budget-form-grid,.budget-form-grid--style { grid-template-columns:1fr; }
  .budget-form-grid .budget-fieldset+.budget-fieldset { border-left:0; border-top:1px solid var(--budget-line); }
  .budget-fieldset { padding:19px 5px; }
  .budget-style-options { grid-template-columns:1fr; }
  .budget-style-options span { min-height:68px; }
  .budget-service-grid { grid-template-columns:1fr 1fr; }
  .budget-service-grid label { min-height:52px; font-size:10px; }
  .budget-result-card { padding:20px 16px; }
  .budget-total { font-size:clamp(25px,8vw,34px); }
  .budget-result-facts>div { padding:0 6px; }
  .budget-breakdown__row { grid-template-columns:minmax(90px,1fr) minmax(62px,.8fr) auto; gap:7px; }
  .budget-method__grid { grid-template-columns:1fr; gap:28px; }
  .budget-method,.budget-faq { padding-block:48px; }
  .budget-method h2,.budget-faq h2 { font-size:32px; }
  .budget-regions { padding-top:48px; }
  .budget-regions h2 { font-size:32px; }
  .budget-regions__grid { grid-template-columns:1fr 1fr; }
}

@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { scroll-behavior:auto!important; transition-duration:.01ms!important; }
}

body.is-dashboard-embed { background:transparent; }
body.is-dashboard-embed #site-header,
body.is-dashboard-embed #site-footer,
body.is-dashboard-embed .budget-hero,
body.is-dashboard-embed .budget-method,
body.is-dashboard-embed .budget-regions,
body.is-dashboard-embed .budget-faq { display:none!important; }
body.is-dashboard-embed .budget-workspace { width:100%; margin:0; padding:0; }
body.is-dashboard-embed .budget-form-card,
body.is-dashboard-embed .budget-result-card { box-shadow:none; }
