/* A wide, open calculator using JP Studio's existing type and colours. */
.estimate-page{--paper:#fafaf9;--ink:#23221f;--accent:var(--ink);--muted:rgb(35 34 31 / 66%);--line:rgb(35 34 31 / 18%);background:var(--paper);color:var(--ink)}
.estimate-page .site-frame{max-width:none;border:0;width:100%}
.estimate-page .estimate-wrap{width:calc(100% - var(--gutter)*2);max-width:1160px;margin-inline:auto}
.estimate-intro{padding-block:42px 52px;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.8fr);gap:clamp(32px,7vw,105px);align-items:end}
.estimate-eyebrow{font-size:12px;font-weight:600;line-height:1.5;letter-spacing:.015em;color:var(--muted);margin:0 0 20px}
.estimate-intro h1{font-size:clamp(48px,5.6vw,78px);font-weight:500;line-height:1.03;letter-spacing:-.06em;max-width:14ch;text-wrap:initial}
.estimate-intro-copy{padding-bottom:4px}
.estimate-intro-copy p{font-size:16px;line-height:1.75;color:var(--muted);max-width:39ch}
.estimate-intro-copy .estimate-anonymous{font-size:13px;font-weight:500;margin-top:19px;color:var(--ink);display:flex;align-items:center;gap:9px}
.estimate-anonymous::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--ink);flex:none}
.estimate-layout{display:block;padding-block:20px 72px;border-top:1px solid var(--line)}
.estimate-layout[hidden],.estimate-aside[hidden]{display:none!important}
.estimate-flow{min-width:0}
.estimate-progress{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;padding:0;margin:0;gap:24px;scroll-margin-top:calc(104px + env(safe-area-inset-top))}
.estimate-progress li{min-width:0}
.estimate-progress button{display:flex;align-items:center;gap:12px;width:100%;padding:11px 0 20px;min-height:64px;border:0;border-bottom:2px solid var(--line);background:transparent;text-align:left;color:var(--muted);font:inherit;font-size:14px;font-weight:500;cursor:pointer;transition:color 160ms ease,border-color 160ms ease}
.estimate-progress button span{display:inline-flex;align-items:center;justify-content:center;position:relative;width:31px;height:31px;flex:none;border:1px solid var(--line);border-radius:50%;font-size:11px;font-weight:600;line-height:1}
.estimate-progress button[aria-current=step]{border-bottom-color:var(--ink);color:var(--ink);font-weight:600}
.estimate-progress button[aria-current=step] span{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.estimate-progress button[data-complete=true]{color:var(--ink);border-bottom-color:rgb(35 34 31 / 45%)}
.estimate-progress button[data-complete=true] span{font-size:0;border-color:var(--ink)}
.estimate-progress button[data-complete=true] span::after{content:'✓';font-size:13px}
.estimate-progress button:disabled{opacity:.45;cursor:default}
.estimate-progress button:not(:disabled):hover{color:var(--ink);border-bottom-color:var(--ink)}
.estimate-stage{margin-top:43px;animation:estimate-step-enter 240ms ease both}
.estimate-stage[hidden],.estimate-page [data-estimate-error][hidden],.estimate-page [data-estimate-ai-note][hidden]{display:none!important}
.estimate-step{border:0;margin:0;padding:0;min-width:0;width:100%}
.estimate-question{font-size:clamp(29px,3vw,41px);font-weight:500;line-height:1.2;letter-spacing:-.045em;margin:0 0 16px;scroll-margin-top:112px;outline:0;max-width:24ch}
.estimate-question span{display:inline-block;max-width:100%}
.estimate-hint{font-size:15px;line-height:1.7;color:var(--muted);max-width:66ch;margin-bottom:30px}
.estimate-options{display:flex;flex-wrap:wrap;gap:14px 38px;padding-block:14px 30px;border-bottom:1px solid var(--line)}
.estimate-choice{display:inline-flex;align-items:center;gap:12px;max-width:100%;min-height:58px;padding-block:10px;font-size:21px;font-weight:500;line-height:1.4;cursor:pointer}
.estimate-choice input,.estimate-addon input{-webkit-appearance:none;appearance:none;position:relative;width:26px;height:26px;flex:none;margin:0;border:1.5px solid rgb(35 34 31 / 50%);border-radius:50%;background:transparent;cursor:pointer;transition:border-color 160ms ease,background 160ms ease}
.estimate-choice input::before{content:'';position:absolute;top:50%;left:50%;width:12px;height:12px;transform:translate(-50%,-50%);border-radius:50%;background:var(--ink);opacity:0}
.estimate-choice input:checked{border-color:var(--ink)}
.estimate-choice input:checked::before{opacity:1}
.estimate-choice:has(input:checked)>span{text-decoration:underline;text-underline-offset:8px;text-decoration-thickness:1.5px}
.estimate-choice:hover input,.estimate-addon:hover input{border-color:var(--ink)}
.estimate-choice input:focus-visible,.estimate-addon input:focus-visible{outline:2px solid var(--ink);outline-offset:5px}
.estimate-options-description{font-size:15px;line-height:1.75;min-height:50px;max-width:65ch;color:var(--muted);margin-top:23px}
.estimate-addons{display:block;border-top:1px solid var(--line)}
.estimate-addon{display:grid;grid-template-columns:26px minmax(0,1fr) auto;align-items:center;gap:20px;min-width:0;min-height:96px;padding-block:21px;border-bottom:1px solid var(--line);cursor:pointer;transition:border-color 160ms ease}
.estimate-addon-copy{min-width:0}
.estimate-addon input::before{content:'';position:absolute;top:50%;left:50%;width:11px;height:6px;border-left:2px solid var(--paper);border-bottom:2px solid var(--paper);transform:translate(-50%,-65%) rotate(-45deg);opacity:0}
.estimate-addon input:checked{background:var(--ink);border-color:var(--ink)}
.estimate-addon input:checked::before{opacity:1}
.estimate-addon:has(input:checked){border-bottom-color:rgb(35 34 31 / 48%)}
.estimate-addon strong{display:block;font-weight:500;font-size:20px;line-height:1.45;letter-spacing:-.025em}
.estimate-addon small{display:block;font-size:13px;line-height:1.65;color:var(--muted);margin-top:5px;max-width:62ch}
.estimate-addon-price{font-size:15px;font-weight:500;line-height:1.55;text-align:right;font-variant-numeric:tabular-nums;max-width:23ch;color:var(--muted)}
.estimate-addon:has(input:checked) .estimate-addon-price{color:var(--ink)}
.estimate-addon-price.estimate-covered{font-size:12px}
.estimate-care{margin-top:25px;padding-block:21px;border-top:1px solid var(--line);border-bottom:0;grid-template-columns:26px minmax(0,1fr)}
.estimate-care>span{min-width:0}
.estimate-ai-note{font-size:13px;line-height:1.8;max-width:74ch;color:var(--muted);margin-top:13px}
.estimate-actions{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:33px;flex-wrap:wrap}
.estimate-actions-end{justify-content:flex-end}
.estimate-next,.estimate-request{font:inherit;font-size:14px;font-weight:600;line-height:1.5;min-height:54px;border:1px solid var(--ink);border-radius:999px;background:var(--ink);color:var(--paper);padding:15px 25px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:24px;transition:background 160ms ease,border-color 160ms ease}
.estimate-next:hover,.estimate-request:hover{background:#41403b;border-color:#41403b}
.estimate-back,.estimate-reset,.estimate-edit{border:0;padding:10px 0;min-height:44px;background:none;color:var(--muted);font:inherit;font-size:13px;cursor:pointer;text-decoration:underline;text-underline-offset:5px}
.estimate-back{display:inline-flex;align-items:center;gap:12px;color:var(--ink);font-weight:500}
.estimate-back::before{content:'←';font-size:18px;text-decoration:none}
.estimate-back:hover,.estimate-reset:hover,.estimate-edit:hover{color:var(--ink)}
.estimate-page .estimate-flow button:focus-visible,.estimate-page .estimate-aside button:focus-visible,.estimate-page .estimate-flow a:focus-visible{outline:2px solid var(--ink);outline-offset:5px}
.estimate-error{margin:24px 0 0;padding-left:14px;border-left:2px solid var(--ink);font-size:14px;line-height:1.7}
.estimate-aside{padding-top:30px;margin-top:48px;border-top:1px solid var(--line);min-width:0}
.estimate-aside h2{font-size:21px;font-weight:500;line-height:1.4;letter-spacing:-.035em;margin-bottom:26px}
.estimate-recap{margin:0;display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1fr) minmax(0,1.6fr);gap:40px}
.estimate-recap>div{position:relative;min-width:0;padding:0}
.estimate-recap dt{font-size:12px;line-height:1.5;color:var(--muted);margin-bottom:9px}
.estimate-recap dd{font-size:16px;font-weight:500;line-height:1.65;letter-spacing:-.015em;margin:0;overflow-wrap:anywhere;color:var(--ink)}
.estimate-edit{font-size:12px;min-height:40px;padding-block:8px;margin-top:5px}
.estimate-edit:disabled{visibility:hidden}
.estimate-reset{font-size:12px;margin-top:18px}
.estimate-source-note{font-size:12px;line-height:1.8;margin-top:14px;color:var(--muted);max-width:78ch}
.estimate-source-note a,.estimate-source a,.estimate-info a{text-decoration:underline;text-underline-offset:5px}
.estimate-result-heading{padding-bottom:32px;margin-bottom:32px;border-bottom:1px solid var(--line)}
.estimate-result-heading .estimate-eyebrow{margin-bottom:16px;font-size:14px;font-weight:500;color:var(--ink)}
.estimate-amount{display:flex;align-items:baseline;flex-wrap:wrap;gap:0 18px;font-size:clamp(46px,6vw,82px);font-weight:500;line-height:1.1;letter-spacing:-.06em;margin:0;outline:0;scroll-margin-top:112px;font-variant-numeric:tabular-nums}
.estimate-amount span{white-space:nowrap}
.estimate-amount .estimate-range-separator{font-weight:400;color:var(--muted);font-size:.65em;align-self:center}
.estimate-vat{font-size:13px;line-height:1.7;color:var(--muted);margin-top:16px}
.estimate-explanation{font-size:15px;line-height:1.8;margin-top:25px;max-width:72ch;color:var(--muted)}
.estimate-result-details{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.85fr);gap:clamp(32px,6vw,80px)}
.estimate-result-primary,.estimate-result-secondary{min-width:0}
.estimate-breakdown{margin:0;border-top:1px solid var(--line)}
.estimate-breakdown>div{display:flex;justify-content:space-between;align-items:baseline;gap:24px;padding-block:17px;border-bottom:1px solid var(--line);font-size:14px;line-height:1.7}
.estimate-breakdown dt{min-width:0;color:var(--muted)}
.estimate-breakdown dd{white-space:nowrap;margin:0;font-weight:500;font-variant-numeric:tabular-nums}
.estimate-breakdown .estimate-total{font-weight:600;border-bottom-color:var(--ink)}
.estimate-breakdown .estimate-total dt{color:var(--ink)}
.estimate-included{font-size:13px;line-height:1.8;margin-top:23px;color:var(--muted)}
.estimate-planning{margin-top:29px;padding-top:23px;border-top:1px solid var(--line)}
.estimate-result-primary>.estimate-planning:first-child{margin-top:0;padding-top:0;border-top:0}
.estimate-planning strong{font-size:15px;line-height:1.6;font-weight:600;letter-spacing:-.015em}
.estimate-planning p{font-size:13px;line-height:1.8;color:var(--muted);margin-top:9px;max-width:58ch}
.estimate-result-note{margin-top:28px}
.estimate-result-secondary>.estimate-result-note:first-child{margin-top:0}
.estimate-result-note h3{font-size:16px;font-weight:600;line-height:1.5;letter-spacing:-.025em;margin-bottom:14px}
.estimate-result-note ul{padding-left:18px;margin:0;list-style:disc}
.estimate-result-note li,.estimate-result-note p{font-size:13px;line-height:1.85;color:var(--muted);max-width:64ch}
.estimate-result-note li+li{margin-top:10px}
.estimate-source{font-size:12px;line-height:1.8;color:var(--muted);margin-top:29px}
.estimate-discuss-note{font-size:13px;line-height:1.8;margin-top:18px;max-width:72ch;color:var(--muted)}
.estimate-info{border-top:1px solid var(--line);padding-block:40px 50px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:80px}
.estimate-info h2{font-size:27px;font-weight:500;line-height:1.3;letter-spacing:-.04em;margin-bottom:15px}
.estimate-info p{font-size:14px;line-height:1.85;color:var(--muted);max-width:55ch}
.estimate-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;clip-path:inset(50%)}
.estimate-noscript{margin-block:24px;padding-block:20px;border-block:1px solid var(--line);font-size:14px;line-height:1.8}
@keyframes estimate-step-enter{from{opacity:.6;transform:translateY(6px)}to{opacity:1;transform:none}}
@media(max-width:1000px){.estimate-intro{gap:40px}.estimate-options{gap:12px 28px}.estimate-choice{font-size:19px}.estimate-result-details{gap:36px}.estimate-recap{gap:28px}.estimate-addon-price{max-width:19ch}}
@media(max-width:760px){.estimate-intro{grid-template-columns:1fr;gap:25px;padding-block:24px 36px}.estimate-intro h1{font-size:clamp(46px,8vw,62px);max-width:16ch}.estimate-intro-copy p{max-width:55ch;font-size:15px}.estimate-intro-copy .estimate-anonymous{font-size:12px;margin-top:14px}.estimate-layout{padding-block:15px 50px}.estimate-progress{gap:16px}.estimate-progress button{font-size:12px;gap:8px;padding-bottom:16px}.estimate-progress button span{width:27px;height:27px;font-size:10px}.estimate-stage{margin-top:34px}.estimate-question{font-size:31px}.estimate-hint{font-size:14px;margin-bottom:25px}.estimate-options{gap:10px 26px;padding-bottom:23px}.estimate-choice{font-size:19px;min-height:56px}.estimate-addon{gap:16px;min-height:94px}.estimate-addon strong{font-size:18px}.estimate-addon-price{font-size:13px;max-width:17ch}.estimate-addon-price.estimate-covered{font-size:11px}.estimate-actions{margin-top:29px}.estimate-aside{margin-top:39px;padding-top:26px}.estimate-aside h2{font-size:20px}.estimate-recap{gap:24px;grid-template-columns:repeat(2,minmax(0,1fr))}.estimate-recap>div:last-child{grid-column:1/-1}.estimate-recap dd{font-size:15px}.estimate-result-details{grid-template-columns:1fr;gap:32px}.estimate-amount{font-size:clamp(40px,6.5vw,58px);gap:0 13px}.estimate-result-heading{margin-bottom:27px;padding-bottom:26px}.estimate-info{gap:35px;padding-block:32px 40px}.estimate-info h2{font-size:24px}.estimate-info p{font-size:13px}}
@media(max-width:520px){.estimate-intro h1{font-size:48px}.estimate-progress{gap:12px}.estimate-progress button{display:block;font-size:12px;min-height:78px;padding:10px 0 13px;line-height:1.45}.estimate-progress button span{display:flex;margin-bottom:10px;width:27px;height:27px}.estimate-question{font-size:29px;max-width:20ch}.estimate-hint{font-size:13px}.estimate-options{gap:10px 24px;padding-top:8px}.estimate-choice{font-size:19px;gap:10px}.estimate-choice input,.estimate-addon input{width:25px;height:25px}.estimate-addon{grid-template-columns:25px minmax(0,1fr);gap:6px 15px;padding-block:20px;min-height:105px;align-items:start}.estimate-addon input{margin-top:2px;grid-row:1/3}.estimate-addon strong{font-size:18px}.estimate-addon small{font-size:12px;line-height:1.7}.estimate-addon-price{grid-column:2;text-align:left;font-size:13px;max-width:none;color:var(--ink);padding-top:2px}.estimate-addon-price.estimate-covered{font-size:12px;color:var(--muted)}.estimate-care{min-height:0;margin-top:20px;padding-top:23px;grid-template-columns:25px minmax(0,1fr)}.estimate-ai-note{font-size:12px}.estimate-actions{gap:16px}.estimate-next,.estimate-request{min-height:52px;font-size:13px;padding:14px 20px;gap:18px}.estimate-back{font-size:13px;gap:8px}.estimate-amount{font-size:38px;gap:0 10px;line-height:1.15;letter-spacing:-.055em}.estimate-amount .estimate-range-separator{font-size:.6em}.estimate-breakdown>div{gap:18px;font-size:12px;padding-block:15px}.estimate-result-heading .estimate-eyebrow{font-size:13px}.estimate-vat{font-size:12px}.estimate-explanation{font-size:14px}.estimate-result-note h3{font-size:15px}.estimate-recap{gap:22px 18px}.estimate-recap dt{font-size:11px}.estimate-recap dd{font-size:14px}.estimate-edit{font-size:11px}.estimate-aside h2{margin-bottom:23px}.estimate-source-note{font-size:11px}.estimate-info{grid-template-columns:1fr;gap:30px}.estimate-info h2{font-size:24px}.estimate-discuss-note{font-size:12px}}
@media(max-width:360px){.estimate-progress{gap:9px}.estimate-progress button{font-size:11px}.estimate-intro h1{font-size:44px}.estimate-choice{font-size:18px}.estimate-options{gap:8px 19px}.estimate-next,.estimate-request{font-size:12px;padding-inline:17px;gap:12px}.estimate-amount{font-size:33px;gap:0 9px}}
@media(max-width:760px){.estimate-progress{scroll-margin-top:calc(92px + env(safe-area-inset-top))}}
@media(forced-colors:active){.estimate-choice input,.estimate-addon input{appearance:auto;background:none;border:0}.estimate-choice input::before,.estimate-addon input::before{display:none}.estimate-progress button[aria-current=step] span{background:Highlight;color:HighlightText}.estimate-next,.estimate-request{border:1px solid ButtonText}}
@media(prefers-reduced-motion:reduce){.estimate-page{scroll-behavior:auto}.estimate-page *, .estimate-page *::before,.estimate-page *::after{transition:none!important;animation:none!important}}
