/* Request an Estimate and Contact pages: form beside an office/contact panel. */
.form-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:36px;align-items:start;}
.form-layout .quote-form{max-width:none;}
@media (max-width:960px){.form-layout{grid-template-columns:1fr;}}

/* ---------- side panel ---------- */
.contact-aside{position:sticky;top:150px;background:var(--surface);border:1px solid var(--line);border-top:2px solid var(--rust-dim);border-radius:8px;overflow:hidden;}
@media (max-width:960px){.contact-aside{position:static;}}
.office-map{height:220px;width:100%;background:#e9edf0;border-bottom:1px solid var(--line);}
.contact-aside .aside-body{padding:22px 24px 24px;}
.contact-aside h2{font-size:0.72rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--rust);margin:0 0 10px;font-weight:600;}
.contact-aside h2:not(:first-child){margin-top:22px;}
.contact-aside address{font-style:normal;color:var(--concrete);line-height:1.6;font-size:0.95rem;}
.contact-aside address strong{color:var(--ink);font-weight:600;}
.contact-aside .aside-link{display:inline-block;margin-top:6px;color:var(--rust-bright);font-weight:600;font-size:0.9rem;text-decoration:underline;text-underline-offset:3px;}
.contact-aside dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:0.95rem;}
.contact-aside dt{color:var(--steel);}
.contact-aside dd{margin:0;color:var(--ink);}
.contact-aside dd a{color:var(--rust-bright);}
.contact-aside ol.next-steps{margin:0;padding:0;list-style:none;counter-reset:step;}
.contact-aside ol.next-steps li{counter-increment:step;position:relative;padding:0 0 12px 36px;color:var(--concrete);font-size:0.92rem;line-height:1.5;}
.contact-aside ol.next-steps li::before{content:counter(step);position:absolute;left:0;top:-1px;width:24px;height:24px;border-radius:50%;border:1px solid var(--rust-dim);color:var(--rust-bright);font-size:0.78rem;font-weight:700;display:flex;align-items:center;justify-content:center;}
.contact-aside .aside-hemmie{display:flex;align-items:center;gap:12px;width:100%;margin-top:18px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--ink);cursor:pointer;text-align:left;font:inherit;font-size:0.9rem;}
.contact-aside .aside-hemmie:hover{border-color:var(--rust-dim);}
.contact-aside .aside-hemmie img{width:38px;height:38px;border-radius:50%;background:#fff;flex:none;}
.contact-aside .aside-hemmie b{display:block;color:var(--rust-bright);}

/* ---------- form pieces ---------- */
.service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px;margin:4px 0 0;}
@media (max-width:560px){.service-grid{grid-template-columns:1fr;}}
.service-grid label{display:flex;gap:10px;align-items:flex-start;color:var(--concrete);font-size:0.95rem;cursor:pointer;line-height:1.4;}
.service-grid input{margin-top:3px;flex:none;}
.service-fieldset{border:0;padding:0;margin:0 0 18px;}
.service-fieldset legend.req{font-size:inherit;letter-spacing:normal;text-transform:none;color:inherit;margin:0 0 8px;}
.field-hint{color:var(--steel);display:block;margin-top:6px;font-size:0.85rem;}
.field-hint.ok{color:var(--rust-bright);}
.form-error{color:var(--rust-bright);font-size:0.88rem;margin:6px 0 0;min-height:1.2em;}
.docs-row{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:18px;align-items:start;}
@media (max-width:640px){.docs-row{grid-template-columns:1fr;}}
.docs-row .secure-upload{display:flex;gap:10px;align-items:flex-start;color:var(--concrete);margin-top:30px;font-size:0.95rem;line-height:1.45;cursor:pointer;}
@media (max-width:640px){.docs-row .secure-upload{margin-top:0;}}
.docs-row .secure-upload input{margin-top:4px;flex:none;}
textarea.grow{min-height:110px;resize:vertical;field-sizing:content;max-height:480px;}
.submit-block{margin-top:10px;}
.submit-block .btn{border:none;cursor:pointer;font-size:1rem;padding:14px 30px;}
.submit-block .submit-lead{color:var(--ink);margin:12px 0 4px;font-size:0.95rem;}
.submit-block .submit-legal{color:var(--steel);font-size:0.82rem;margin:0;}
.submit-block .submit-legal a{color:var(--rust-bright);text-decoration:underline;}
