/* Form and consent additions using the existing layout; green marks form completion. */
[hidden]{display:none!important}
.lead-form [data-service-tip]:empty{display:none}
.lead-form [data-form-status]:empty{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.lead-form .form-privacy > span{display:block}
.lead-form .form-privacy > span + span{margin-top:.4rem}
.lead-form [data-form-status]{color:#655f54}
.lead-form [data-form-fallback] a{color:#765918}
.lead-form{--form-success:#256442;--form-success-hover:#1d5034}
.lead-form .form-progress{grid-column:1/-1;min-width:0}
.lead-form .form-progress-heading{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.25rem .75rem;margin-bottom:.65rem;font-size:.85rem;color:var(--muted)}
.lead-form .form-progress-heading strong{color:var(--form-success);font-size:.85rem}
.lead-form .form-progress-track{position:relative;height:7px;border-radius:999px;overflow:hidden;background:#dce5da}
/* Keep native progress semantics; animate one consistent visual fill in every browser. */
.lead-form progress{position:absolute;inset:0;display:block;width:100%;height:100%;margin:0;border:0;opacity:0}
.lead-form .form-progress-fill{display:block;width:100%;height:100%;border-radius:inherit;background:var(--form-success);transform:scaleX(var(--form-progress-ratio,0));transform-origin:left center;transition:transform .42s cubic-bezier(.22,1,.36,1)}
@media(prefers-reduced-motion:reduce){.lead-form .form-progress-fill{transition:none}}
.lead-form .form-completion-prompt{margin:0;color:var(--muted);font-size:.85rem;line-height:1.5}
.lead-form.is-ready .form-completion-prompt{color:var(--form-success);font-weight:700}
.lead-form > .btn[type=submit]{background:var(--form-success);color:#fff;border-color:var(--form-success)}
.lead-form > .btn[type=submit]:hover{background:var(--form-success-hover);border-color:var(--form-success-hover);box-shadow:0 5px 14px rgba(37,100,66,.16)}
.lead-form > .btn[type=submit]:focus-visible{outline:3px solid var(--form-success);outline-offset:4px}
.lead-form > .btn[type=submit]:disabled{opacity:.7;cursor:wait;transform:none;box-shadow:none}
.lead-form .form-fields{display:contents}.lead-form .field-project_type,.lead-form .field-message{grid-column:1/-1}.lead-form .field{min-width:0}.lead-form .field label{margin-bottom:.45rem}.lead-form .field-error{display:block;color:#9c281b;font-size:.85rem}.lead-form [aria-invalid=true]{border-color:#9c281b}.lead-form .form-privacy,.lead-form .form-note{grid-column:1/-1}.lead-confirmation [data-reference]{font-weight:800;overflow-wrap:anywhere}.lead-confirmation [data-new-lead]{font:inherit;cursor:pointer}.lead-form .honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.form-stage > .lead-confirmation{position:relative;inset:auto;min-height:0;width:100%;margin:0;align-content:start;gap:.25rem;padding:clamp(1.5rem,3vw,2.25rem);box-sizing:border-box}.form-stage > .lead-confirmation h3{margin:0}.form-stage > .lead-confirmation p{margin:.65rem 0 1rem}.form-stage > .lead-confirmation .btn{margin-top:.5rem}.form-stage > .lead-confirmation [data-new-lead]{margin-top:.25rem}
.consent-banner{position:fixed;bottom:1rem;left:1rem;z-index:2000;width:min(520px,calc(100vw - 2rem));padding:1.5rem;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow);max-height:85dvh;overflow:auto}.consent-banner h2{font-size:1.25rem;margin-bottom:.7rem}.consent-banner p{font-size:.9rem;margin:.7rem 0}.consent-actions{display:flex;flex-wrap:wrap;gap:.5rem}.consent-actions .btn{flex:1;font-size:.85rem;padding:.65rem .8rem}.consent-banner label{display:flex;align-items:center;gap:.6rem;margin:1rem 0}.consent-banner input{width:auto}.legal-page{max-width:900px;margin:auto;padding:3rem 1rem}
@media(max-width:600px){.lead-form .field{grid-column:1/-1}}
.lead-confirmation [data-new-lead]{border:0;border-bottom:1px solid currentColor;background:transparent;color:inherit;padding:.6rem .2rem;min-height:44px;font-weight:600}

/* Desktop: keep the complete request visible beneath the existing header. */
@media(min-width:1081px){
 .contact-section,.request-page .contact-section{padding-top:24px;scroll-margin-top:106px}
 .home-page #contact{padding-top:48px;scroll-margin-top:96px}
 .contact-grid{row-gap:32px;column-gap:clamp(2rem,4vw,3.5rem)}
 .contact-copy .eyebrow{margin-bottom:.4rem}
 .contact-copy h1,.contact-copy h2{max-width:none;font-size:2rem;line-height:1.15;margin-bottom:1.25rem}
 .contact-copy p:not(.eyebrow){margin-top:.6rem;font-size:.9rem;line-height:1.5}
 .contact-copy .page-reassurance{margin-top:1rem;line-height:1.6}
 .contact-support .request-steps{gap:.4rem}
 .contact-support .request-steps li{padding:.6rem 0;gap:.35rem}
 .contact-support .request-steps strong,.contact-support .request-steps span{font-size:.85rem;line-height:1.5}
 .contact-support .contact-actions{margin-top:1.25rem;margin-bottom:1.25rem;gap:.6rem}
 .contact-support .contact-actions .btn{min-height:44px;padding:.6rem 1rem;font-size:.85rem}
 .contact-support .customer-review-card{padding:1.25rem 1rem}
 .contact-support .customer-review-card blockquote{margin-bottom:1rem}
 .contact-support .customer-review-card blockquote p{font-size:.9rem;line-height:1.55}
 .contact-support .customer-review-card figcaption{grid-template-columns:minmax(0,1fr) auto;gap:.4rem .5rem;align-items:center}
 .contact-support .customer-review-card figcaption strong{grid-column:1/-1;font-size:.9rem}
 .contact-support .customer-review-card figcaption span{font-size:.8rem}
 .contact-support .customer-review-card figcaption .text-link{font-size:.8rem}
 .contact-grid > .form-stage > .lead-form{padding:1.25rem;gap:.65rem;align-content:space-between}
 .lead-form .form-fields{display:grid;grid-column:1/-1;grid-template-columns:repeat(6,minmax(0,1fr));gap:.85rem .75rem}
 .lead-form .field-project_type,.lead-form .field-city{grid-column:span 3}
 .lead-form .field-message{grid-column:1/-1}
 .lead-form .field-name,.lead-form .field-email,.lead-form .field-phone{grid-column:span 2}
 .lead-form .field label{font-size:.85rem;margin-bottom:.35rem}
 .lead-form input,.lead-form select{min-height:46px;height:46px;padding:.65rem .75rem;font-size:1rem}
 .lead-form select{padding-right:2.4rem}
 .lead-form textarea{min-height:96px;height:96px;padding:.65rem .75rem;font-size:1rem}
 .lead-form .form-progress-heading{margin-bottom:.4rem}
 .lead-form [data-service-tip]{font-size:.8rem;line-height:1.4;margin-top:.35rem}
 .lead-form .form-completion-prompt{font-size:.8rem;line-height:1.4}
 .lead-form > .btn[type=submit]{min-height:48px;padding:.7rem 1rem}
 .lead-form .form-privacy{font-size:.8rem;line-height:1.4}
 .lead-form .form-privacy > span + span{margin-top:.25rem}
}

@media(max-width:600px){
 .consent-banner{bottom:.5rem;left:.5rem;width:calc(100vw - 1rem);padding:.85rem;max-height:70dvh}
 .consent-banner h2{font-size:1rem;margin:0 0 .4rem}
 .consent-banner p{font-size:.8rem;line-height:1.45;margin:.4rem 0 .65rem}
 .consent-actions{gap:.35rem;flex-wrap:nowrap}
 .consent-actions .btn{min-height:44px;min-width:0;padding:.5rem .3rem;font-size:.75rem}
 .consent-banner .consent-links{margin:.6rem 0 0}
}
