/* Scoped Studio42 calculator. Price and workflow rules live in PHP. */
.s42-quote-calc { --quote-bg:#0d0c0c; --quote-ink:#f3eee5; --quote-red:#e44750; --quote-line:#57504e; width:100%; min-width:0; display:block; padding:clamp(16px,3vw,36px); background:var(--quote-bg); color:var(--quote-ink); border:1px solid var(--quote-line); box-sizing:border-box; }
.contact-inner > .s42-quote-calc { grid-column:1/-1; }
.s42-quote-calc *, .s42-quote-admin * { box-sizing:border-box; }
.s42-quote-calc [hidden] { display:none!important; }
.s42-quote-calc .s42-hp { position:absolute!important; width:1px!important; height:1px!important; overflow:hidden; clip-path:inset(50%); padding:0!important; border:0!important; }
.s42-quote-head h3 { font-size:clamp(24px,3vw,40px); line-height:1.15; letter-spacing:-.04em; margin:0 0 12px; }
.s42-quote-head p { margin:0 0 14px; }
.s42-quote-calc p { line-height:1.55; }
.s42-quote-calc a { color:var(--quote-ink); text-decoration:underline; }
.s42-quote-calc label { display:block; color:var(--quote-ink); font-size:15px; line-height:1.55; }
.s42-quote-calc input:not([type=checkbox]):not([type=radio]):not([type=hidden]),.s42-quote-calc select,.s42-quote-calc textarea { display:block; width:100%; min-width:0; max-width:100%; margin-top:7px; padding:12px; min-height:48px; border:1px solid var(--quote-line); background:#141212; color:var(--quote-ink); font:inherit; font-size:16px; color-scheme:dark; border-radius:0; }
.s42-quote-calc input[type=file] { font-size:13px!important; }
.s42-quote-calc input[type=radio],.s42-quote-calc input[type=checkbox] { width:21px; height:21px; margin:0 10px 0 0; vertical-align:middle; accent-color:var(--quote-red); flex-shrink:0; }
.s42-quote-calc :focus-visible { outline:2px solid var(--quote-red); outline-offset:4px; }
.s42-quote-calc button { min-height:48px; padding:12px 18px; border:1px solid var(--quote-line); border-radius:0; background:#211818; color:var(--quote-ink); font:inherit; cursor:pointer; }
.s42-quote-calc button:hover,.s42-quote-calc button[aria-pressed=true] { border-color:var(--quote-red); background:#321419; }
.s42-quote-calc .quote-submit,.s42-quote-calc [data-next] { background:#b72432; border-color:#b72432; color:#fff; }
.s42-quote-calc .quote-submit { width:100%; margin-top:22px; font-size:15px; line-height:1.4; white-space:normal; }
.s42-quote-calc button:disabled { opacity:.5; cursor:not-allowed; }
.s42-quote-calc details { padding:12px 0; border-bottom:1px solid var(--quote-line); }
.s42-quote-calc summary { display:list-item; cursor:pointer; font-size:14px; line-height:1.5; color:var(--quote-ink); }
.s42-quote-calc details p { font-size:14px; color:#d3cbc2; }
.s42-quote-calc details summary::after { content:none; }
.s42-quote-calc small { display:block; color:#d3cbc2; font-size:13px; line-height:1.5; }
.s42-quote-block { margin:28px 0; padding:0; border:0; min-width:0; }
.s42-quote-block legend { margin:0 0 8px; font:inherit; font-size:clamp(21px,2.2vw,28px); font-weight:600; color:var(--quote-ink); }
.s42-service-grid,.s42-extra-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:20px; }
.s42-service-card,.s42-quote-calc .s42-choice { display:flex; align-items:flex-start; flex-wrap:wrap; gap:6px; padding:14px; border:1px solid var(--quote-line); margin-top:8px; }
.s42-service-card { align-items:center; }
.s42-service-card:has(:checked),.s42-choice:has(:checked) { background:#321419; border-color:var(--quote-red); }
.s42-choice:has(:disabled) { opacity:.65; }
.s42-mode-switch,.s42-contact-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:18px 0; }
.s42-estimate { position:sticky; top:96px; z-index:5; padding:15px; background:#191011; border:1px solid var(--quote-red); margin:20px 0; max-height:46dvh; overflow:auto; }
.s42-total-row { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.s42-total-row span { font-size:13px; }
.s42-estimate [data-total] { font-size:clamp(22px,4vw,38px); font-weight:500; line-height:1.2; white-space:nowrap; font-variant-numeric:tabular-nums; letter-spacing:-.04em; }
.s42-estimate details { padding-bottom:0; border:0; }
.s42-estimate [data-calc-status]:empty { display:none; }
.s42-estimate [data-calc-status] { font-size:12px; margin:8px 0 0; }
.s42-progress { font-size:13px; color:#d3cbc2; scroll-margin-top:250px; }
.s42-quote-calc progress { display:block; width:100%; height:5px; accent-color:var(--quote-red); }
.s42-wizard-nav { display:flex; justify-content:space-between; gap:16px; margin-top:24px; }
.s42-wizard-nav [data-next] { margin-left:auto; }
.s42-quote-calc [data-form-error] { border-left:3px solid var(--quote-red); padding:12px; background:#321419; }
body.s42-quote-in-view .s42-assistant-launcher,body.s42-quote-in-view .s42-assistant-widget,body.s42-quote-in-view .mobile-cta { display:none!important; }
@media(max-width:600px) { .s42-service-grid,.s42-extra-grid,.s42-mode-switch,.s42-contact-pair { grid-template-columns:1fr; } .s42-estimate { top:78px; padding:12px; } .s42-total-row { align-items:flex-start; flex-direction:column; gap:4px; } .s42-estimate [data-total] { font-size:clamp(22px,8vw,30px); } .s42-quote-block { margin-top:22px; } }
@media(prefers-reduced-motion:reduce) { .s42-quote-calc * { scroll-behavior:auto!important; transition:none!important; } }
