.calc-panel [hidden]{display:none!important}.compact-grid{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}.compact-field{display:block;font-size:.875rem;color:#bbb;line-height:1.5;margin:.8rem 0}.compact-field select,.compact-field input,#inquiryText{display:block;width:100%;min-width:0;background:#20201d;color:#fff;border:1px solid #55554c;border-radius:8px;padding:.75rem;font:inherit;font-size:1rem;margin-top:.4rem}.compact-field select{max-width:100%}.calc-panel .calc-hint{font-size:.875rem;line-height:1.6;color:#b8b8af;text-transform:none;letter-spacing:0}.service-extra{padding:0 1rem 1rem}.service-box{border:1px solid #383831;border-radius:12px;margin:.7rem 0}.calculator .service-box .calc-option{border:0;margin:0}.service-box:has(.calc-option>input:checked){border-color:#f15a16}.check-line{display:flex;gap:.7rem;align-items:center;font-size:1rem;margin:1rem 0}.check-line input{accent-color:#f15a16;width:20px;height:20px}.calc-panel details{margin:1rem 0}.calc-panel summary{cursor:pointer;color:#ff925d;font-size:1rem;padding:.5rem 0}.calc-result #exclusions{font-size:.875rem;line-height:1.6;color:#d0b6a8;padding-left:1.2rem}.breakdown-row{padding:.75rem 0;border-bottom:1px solid #444}.calc-result .breakdown-row span{font-size:.875rem;text-transform:none;letter-spacing:0;color:#bbb;line-height:1.6}.breakdown-row b{font-size:1rem}.calc-result #calcSummary{line-height:1.6;font-size:.875rem}.calc-panel input[aria-invalid=true]{outline:2px solid #ff925d}#inquiryText{height:240px;resize:vertical}.calculator-page .calculator-copy{align-self:start}.calc-panel{min-width:0}@media(max-width:600px){.compact-grid{grid-template-columns:1fr;gap:0}.calc-panel{padding:1.2rem}.compact-field select{font-size:1rem}}

.vat-switch{display:flex;gap:.75rem;flex-wrap:wrap}.vat-switch label{flex:1;min-width:130px;padding:.9rem;border:1px solid #55554c;border-radius:8px;font-size:1rem;cursor:pointer}.vat-switch label:has(input:checked){border-color:#f15a16;background:#f15a161a}.vat-switch input{accent-color:#f15a16}.compact-field textarea{width:100%;background:#20201d;color:#fff;border:1px solid #55554c;border-radius:8px;padding:.75rem;font:inherit;resize:vertical}.inquiry-fields{border-top:1px solid #444;padding-top:1rem}


/* Size the form independently of the landing-page two-column layout.
   Reflow by available form width, including resized laptop windows. */
section.calculator.calculator-page{display:block;width:100%;box-sizing:border-box;padding:1.5rem clamp(1rem,2.5vw,3rem) 3rem}
.calculator-page .calculator-copy{display:none}
.calculator-page #priceCalculator{display:block;width:100%;max-width:1800px;margin:0 auto;box-sizing:border-box;container:calculator / inline-size}
#priceCalculator .calc-workspace,#priceCalculator .calc-workspace > div{min-width:0;max-width:100%;box-sizing:border-box}
#priceCalculator .calc-workspace{display:grid;grid-template-columns:minmax(0,1fr);gap:1.4rem;align-items:start}
#priceCalculator .calc-estimate{position:static;min-width:0}
#priceCalculator fieldset{min-width:0}
#priceCalculator input:not([type=checkbox]):not([type=radio]),#priceCalculator select,#priceCalculator textarea{box-sizing:border-box;max-width:100%}
#priceCalculator .calc-option{grid-template-columns:20px minmax(0,1fr)}
#priceCalculator .calc-option span{min-width:0}
#priceCalculator .vat-switch label{min-width:0;flex-basis:8rem;box-sizing:border-box}
#priceCalculator #areaDisplay{font-size:clamp(2.5rem,9cqi,4rem)}
#priceCalculator #calcTotal{font-size:clamp(1.8rem,5cqi,3rem);overflow-wrap:normal}
@container calculator (min-width:640px){
 #priceCalculator .calc-workspace{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
 #priceCalculator .calc-estimate{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.7rem 1.5rem;align-items:start}
 #priceCalculator .calc-estimate .calc-result{grid-column:1;grid-row:1 / span 4}
 #priceCalculator .calc-estimate .vat-switch{grid-column:1}
 #priceCalculator .calc-estimate > :not(.vat-switch):not(.calc-result){grid-column:2}
 #priceCalculator .compact-grid{grid-template-columns:1fr;gap:0}
 #priceCalculator .service-choices{display:block;margin:0}
 #priceCalculator .service-box{margin:0 0 .5rem}
 #priceCalculator .calc-option{padding:.65rem .8rem;gap:.65rem}
 #priceCalculator .service-extra{padding:0 .8rem .6rem}
 #priceCalculator .compact-field{margin:.45rem 0}
 #priceCalculator .compact-field :is(input,select,textarea){padding:.55rem;font-size:.9rem}
 #priceCalculator .calc-hint{font-size:.8rem;line-height:1.4;margin:.5rem 0}
 #priceCalculator .calc-estimate .vat-switch{margin:0 0 .7rem}
 #priceCalculator .calc-estimate .inquiry-fields{margin:0;padding-top:.4rem}
 #priceCalculator .calc-result{padding:1rem}
}
@container calculator (min-width:1050px){
 #priceCalculator .calc-workspace{grid-template-columns:minmax(0,.9fr) minmax(0,1.15fr) minmax(0,1fr);gap:1.5rem}
 #priceCalculator .calc-estimate{grid-column:auto;display:block}
 #priceCalculator .calc-services{padding:0 1.2rem;border-left:1px solid #383831;border-right:1px solid #383831}
}
@media(min-width:900px){
 .calculator-page #priceCalculator{padding:1.25rem}
 #priceCalculator .calc-panel-heading{padding-bottom:.7rem;margin-bottom:1rem}
 .page-main:has(.calculator-page) .page-intro{min-height:0;padding:1.5rem 2.5vw 1rem}
 .page-main:has(.calculator-page) .page-intro h1{font-size:2.5rem;margin:.1em 0}
 .page-main:has(.calculator-page) .page-intro h1 br{display:none}
 .page-main:has(.calculator-page) .page-intro h1 em:before{content:" "}
 .page-main:has(.calculator-page) .page-intro>p:last-child{margin:.5rem 0 0;font-size:.95rem}
}

/* Compact help, using the existing calculator palette. */
.area-assistant{margin:18px 0;padding:14px;border:1px solid #49483e;border-radius:12px}.area-assistant summary,.service-description summary{cursor:pointer;color:var(--accent,#f15a16)}.area-assistant .compact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,140px),1fr));gap:12px}.area-assistant .calc-cta{width:100%;white-space:normal}.area-assistant button:disabled{opacity:.45;cursor:not-allowed}.service-description{margin:10px 0}.selection-summary{margin:16px 0;border-top:1px solid #49483e;padding-top:14px}.selection-summary p{overflow-wrap:anywhere}
