/* Service information and estimate flow. Uses the existing Vesta design tokens. */
[hidden]{display:none!important}
.crumb{font-size:var(--step--1);margin-bottom:var(--s6)}
.service-intro{max-width:64rem}.service-intro h1{max-width:18ch}
.service-intro>.fine{margin-top:var(--s5)}
.service-jumps{display:flex;gap:var(--s5);flex-wrap:wrap;margin-top:var(--s6)}
.service-jumps a{min-height:44px;display:inline-flex;align-items:center}
.offer-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s6);margin-top:var(--s6)}
.offer-card{border:1px solid var(--line);border-radius:var(--r1);padding:var(--s6);display:flex;flex-direction:column;align-items:flex-start;gap:var(--s4)}
.offer-card h3{font-size:var(--step-2)}.offer-card h3 a{color:var(--text)}
.offer-card ul{padding-left:var(--s5);margin:0 0 var(--s4)}
.offer-card .label{margin:0}.offer-card .btn{margin-top:auto}
.offer-next{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s4);margin-top:var(--s6)}
#work .gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s5)}
#work .gallery .pair{grid-column:auto;grid-row:auto}
.detail-grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:var(--s8)}
.detail-grid>div>p{margin-top:var(--s5);max-width:var(--measure)}
.detail-grid>div>.btn{margin-top:var(--s6)}
.scope-panel{padding:var(--s6);border:1px solid var(--line);border-radius:var(--r1);background:var(--surface-2)}
.scope-panel h3{margin-bottom:var(--s5)}
.scope-panel details{border-bottom:1px solid var(--line);padding:var(--s3) 0}
.scope-panel summary{min-height:44px;cursor:pointer;display:list-item;font-weight:600;padding-block:var(--s2)}
.scope-panel details p{margin:var(--s3) 0 var(--s4);font-size:var(--step-0)}
.scope-panel .rooms{display:block}.scope-panel .fine{margin-top:var(--s5)}
.plain-facts{margin:0}.plain-facts>div{padding-block:var(--s4);border-bottom:1px solid var(--line)}
.plain-facts dt{font-weight:600}.plain-facts dd{margin:var(--s2) 0 0}
.estimate-layout{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--s7);align-items:start}
.estimate-builder fieldset,.form-wrap fieldset{border:0;padding:0;margin:0 0 var(--s7);min-width:0}
.estimate-builder legend,.form-wrap legend{font-size:var(--step-1);font-weight:600;padding:0;margin-bottom:var(--s5)}
.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4)}
.choice{display:flex;align-items:flex-start;gap:var(--s3);padding:var(--s5);border:1px solid var(--line);border-radius:var(--r1);cursor:pointer}
.choice:has(input:checked){outline:2px solid var(--accent);outline-offset:-2px;background:var(--surface-2)}
.choice small{display:block;font-size:var(--step--1);margin-top:var(--s2)}
input[type=radio]{width:20px;height:20px;accent-color:var(--accent);margin:var(--s1) 0 0;flex:none}
.fields-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s5)}
.field{display:flex;flex-direction:column;gap:var(--s2);min-width:0}
.field label{font-weight:600;line-height:1.4}
.field select,.field input,.field textarea{width:100%;min-width:0;min-height:48px;border:1px solid var(--line);border-radius:var(--r1);padding:var(--s3);background:var(--surface-2);color:var(--text);font:inherit;line-height:1.5}
.field textarea{resize:vertical}
.field-hint,.estimate-disclaimer,.collection{font-size:var(--step--1);line-height:1.5;color:var(--text-r)}
#frequency-wrap,#reset-type-wrap{margin-top:var(--s5);max-width:30rem}
.reset-menu{margin-top:var(--s5)}
.reset-item{display:grid;grid-template-columns:minmax(0,1fr) 6rem;gap:var(--s4);border-top:1px solid var(--line);padding:var(--s5) 0}
.reset-item>div>label{font-weight:600}.reset-item .unit-range{font-family:var(--f-mono);font-size:var(--step--1);margin-top:var(--s2);color:var(--accent)}
.remove-item,.text-button{background:none;border:0;color:var(--accent);text-decoration:underline;text-underline-offset:.18em;font:inherit;text-align:left;padding:var(--s2) 0;min-height:44px;cursor:pointer}
.remove-item{grid-column:1/-1;font-size:var(--step--1)}
.is-included select{opacity:.55}
.estimate-summary{border:1px solid var(--line);border-radius:var(--r1);padding:var(--s6);background:var(--surface-2);position:sticky;top:6rem}
.estimate-summary h2{font-size:var(--step-2);margin-bottom:var(--s5)}
.basket-line,.basket-total{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s4);margin:var(--s4) 0}
.basket-line span,.basket-total span{flex:1}.basket-line strong,.basket-total strong{font-weight:600;text-align:right;font-variant-numeric:tabular-nums}
.basket-total{border-top:1px solid var(--line);padding-top:var(--s4)}
.basket-total strong{font-size:var(--step-1)}
.estimate-summary .btn{width:100%;margin:var(--s5) 0 var(--s4);font:inherit;font-weight:600;cursor:pointer}
.estimate-summary .fine+.fine{margin-top:var(--s4)}
.estimate-disclaimer{margin-top:var(--s5)}
button:disabled{opacity:.55;cursor:not-allowed}
.form-wrap{max-width:48rem}.form-wrap>p{margin-top:var(--s5)}
.form-wrap form{margin-top:var(--s7)}.form-wrap .field{margin-bottom:var(--s5)}
.form-wrap .scope-panel{margin-bottom:var(--s6)}.form-wrap .scope-panel h2{font-size:var(--step-1)}
pre{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;font-size:var(--step--1);line-height:1.6}
.radio-stack{display:grid;gap:var(--s2)}.radio-stack label{min-height:44px;display:flex;align-items:center;gap:var(--s3);cursor:pointer}
.collection{margin:var(--s6) 0 var(--s5)}
.form-wrap .btn{font:inherit;font-weight:600;cursor:pointer}.form-wrap .fine{margin-top:var(--s5)}
#form-status{margin-top:var(--s4);color:var(--accent)}
.hp{display:none!important}
@media(max-width:63.99rem){.detail-grid{grid-template-columns:1fr;gap:var(--s6)}.estimate-layout{grid-template-columns:1fr}.estimate-summary{position:static}.nav-links{display:none}}
@media(max-width:39.99rem){.offer-grid,.choice-grid,.fields-grid,#work .gallery{grid-template-columns:1fr}.offer-card,.scope-panel,.estimate-summary{padding:var(--s5)}.basket-total{flex-wrap:wrap}.basket-total strong{margin-left:auto}.offer-grid{gap:var(--s5)}.form-wrap h1,.service-intro h1{font-size:var(--step-5)}.nav-in>.btn{font-size:var(--step--1);padding-inline:var(--s3)}}
@media print{.nav,.foot,.service-jumps,.btn,.theme{display:none!important}.estimate-layout{display:block}.estimate-summary{position:static}.estimate-builder{display:none}}

.service-group{border-top:1px solid var(--line);padding-block:var(--s3)}
.service-group>summary{font-weight:600;min-height:48px;cursor:pointer;padding-block:var(--s3)}
.group-count{font-size:var(--step--1);font-weight:400;margin-left:var(--s2)}
.item-limits{margin-top:var(--s3)}.item-limits summary{cursor:pointer;min-height:44px;padding-block:var(--s2);font-size:var(--step--1);text-decoration:underline}
.item-limits p{margin-block:var(--s2)}
.catalogue-group{margin-top:var(--s7)}.catalogue-group h3{margin-bottom:var(--s3)}
.remember-estimate{display:flex;align-items:flex-start;gap:var(--s3);font-size:var(--step--1);margin-block:var(--s4)}
.remember-estimate input{width:20px;height:20px;flex:none;margin-top:var(--s1);accent-color:var(--accent)}
.estimate-builder:focus-within~.estimate-summary{position:static}

/* Outreach refinement: direct contact, visible proof and shorter form handoff. */
#contact{scroll-margin-top:1rem}
.contact-section{text-align:left}
.contact-section h2{margin-inline:0}
.contact-section .cta{align-items:flex-start;margin-top:var(--s5)}
.contact-section .fine{margin:0;max-width:var(--measure)}
.contact-options{min-width:0}
.contact-method{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s2);padding-block:var(--s4);border-bottom:1px solid var(--hair);min-height:44px;text-decoration:none}
.contact-method span{color:var(--text-r);font-size:var(--step--1)}
.contact-method strong{font-weight:500;text-decoration:underline;text-underline-offset:.2em;overflow-wrap:anywhere;max-width:100%}
.checklist-sample h3{font-size:var(--step-1);margin-bottom:var(--s4)}
.checklist-sample dl{margin:0}
.checklist-sample dl>div{padding-block:var(--s4);border-top:1px solid var(--hair)}
.checklist-sample dt{font-weight:600}
.checklist-sample dd{margin:var(--s1) 0 0;color:var(--text-r)}
.checklist-sample .fine{margin-top:var(--s4)}
.scope-panel .rooms summary{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);font-weight:400}
.scope-panel .rooms summary b{min-width:0;overflow-wrap:normal}
.scope-panel .rooms summary span{flex:none}
.maintenance-intro>p{margin-block:var(--s4);max-width:var(--measure)}
.maintenance-intro>.btn{margin-block:var(--s4) var(--s6)}
.maintenance-layout>.scope-panel{margin-top:var(--s5)}
@media(min-width:64rem){
 .maintenance-intro{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);column-gap:var(--s8);align-items:start}
 .maintenance-intro>.label,.maintenance-intro>h2,.maintenance-intro>.lede,.maintenance-intro>.btn{grid-column:1}
 .maintenance-intro>.label{grid-row:1}.maintenance-intro>h2{grid-row:2}.maintenance-intro>.lede{grid-row:3}.maintenance-intro>.btn{grid-row:4;justify-self:start}
 .maintenance-intro>p:not(.label):not(.lede){grid-column:2;grid-row:2}
 .maintenance-intro>p:not(.label):not(.lede)+p{grid-row:3}
 .maintenance-layout .scope-panel .rooms{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--s7);align-items:start}
}
#consult-details .form-wrap>p{margin-top:var(--s3)}
#consult-details form{margin-top:var(--s5)}
#consult-details .compact-estimate{padding:var(--s4);margin-bottom:var(--s5)}
.compact-estimate h2{margin-bottom:var(--s2)}
#basket-service{margin:0;color:var(--text-r)}
#basket-amounts{margin:var(--s3) 0}
#basket-amounts>div{display:flex;justify-content:space-between;gap:var(--s4);padding-block:var(--s1)}
#basket-amounts dt{color:var(--text-r)}
#basket-amounts dd{margin:0;text-align:right;font-weight:600;flex-shrink:0}
.compact-estimate .estimate-breakdown{padding:0;border:0;margin-top:var(--s2)}
.compact-estimate .estimate-breakdown>summary{font-size:1rem;text-decoration:underline;text-underline-offset:.2em}
.estimate-actions{display:flex;flex-wrap:wrap;gap:var(--s5)}
.estimate-actions .text-button{font-size:1rem}

@media(min-width:64rem){.reset-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s6) var(--s7);align-items:start}.reset-groups .catalogue-group{margin-top:var(--s5)}}

/* Homepage service price lines */
#services .offer-card .service-price,.maintenance-intro .service-price{font-weight:500;color:inherit;font-size:var(--step-0)}
