/* Two short steps; native validation and optional photo disclosure. */
.quote-main{display:grid;gap:32px;padding-block:24px 32px;align-items:start}
.quote-intro,.quote-form{min-width:0}
.quote-intro h1{font-size:clamp(42px,4.5vw,56px);line-height:1.04;margin:0 0 12px}
.quote-lede{font-size:17px;line-height:1.5;margin-bottom:18px}
.quote-photo{margin:0;border-radius:10px;overflow:hidden;background:var(--brand-dark)}
.quote-photo img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;object-position:center 60%;display:block}
.quote-next{margin-top:18px}
.quote-next h2{font-size:15px;line-height:1.4;letter-spacing:-.015em;margin-bottom:6px}
.quote-next p{font-size:14px;line-height:1.65;max-width:54ch}
.quote-direct{display:flex;align-items:center;gap:26px;flex-wrap:wrap;margin-top:10px}
.quote-direct a{display:inline-flex;align-items:center;min-height:44px;font-size:15px;font-weight:600;text-decoration:underline;text-decoration-color:#92999e;text-underline-offset:5px}
.quote-area{font-size:12px;line-height:1.5;margin-top:4px}
.quote-form{padding:24px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 36px #171b2005;scroll-margin-top:calc(var(--header-height) + 20px)}
.quote-form h2{font-size:28px;line-height:1.15;letter-spacing:-.045em;margin:0 0 18px}
.quote-progress{font-size:11px;line-height:1.5;color:var(--muted);margin-bottom:16px}
.quote-steps{position:relative}
.quote-step{min-width:0}
.quote-step-intro{font-size:13px;line-height:1.65;margin:-6px 0 18px;max-width:42ch}
.quote-form .quote-contact-fields{grid-template-columns:1fr;gap:18px}
.quote-form .field-help{display:block;font-size:11px;line-height:1.6;margin-top:5px;color:var(--muted)}
.quote-form .field-error{display:block;font-weight:400;color:#a1251d}
.quote-form .field-error:empty{display:none}
.quote-fields input[aria-invalid=true]{border-color:#a1251d}
.quote-auto-hint{font-size:12px;line-height:1.65;margin-top:20px;max-width:40ch}
.quote-continue{width:100%;margin-top:18px;justify-content:center}
.quote-final-actions{display:flex;align-items:center;gap:20px;margin-top:12px}
.quote-final-actions .quote-submit{margin:0;flex:1}
.quote-back{min-height:50px;padding:10px 2px;background:none;border:0;color:var(--ink);font-size:13px;font-weight:600;text-decoration:underline;text-underline-offset:5px}
.quote-form fieldset{border:0;padding:0;margin:0;min-width:0}
.quote-form [hidden]{display:none!important}
.quote-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.form-availability{padding:10px 12px;background:var(--surface);border-radius:6px;font-size:12px;line-height:1.65;margin-bottom:16px;color:var(--ink)}
.quote-form a{text-decoration:underline;text-underline-offset:3px}
.quote-fields{display:grid;gap:12px}
.quote-form label{font-size:13px;font-weight:600;line-height:1.5}
.quote-form label>span,.quote-photo-details summary>span{color:var(--muted);font-weight:400}
.quote-fields input,.quote-note textarea{display:block;width:100%;min-width:0;margin-top:6px;background:var(--bg);color:var(--ink);border:1px solid #c7ccce;border-radius:5px;padding:10px 12px;font:inherit;font-size:16px;line-height:1.5;min-height:46px;transition:border-color .18s,background .18s}
.quote-fields input:hover,.quote-note textarea:hover{border-color:#8b969d}
.quote-fields input:focus,.quote-note textarea:focus{background:#fff}
.quote-note{display:block;margin-top:15px}
.quote-note textarea{resize:vertical;min-height:70px}
.quote-note textarea::placeholder{color:#72787e;font-size:13px}
.quote-photo-details{border-top:1px solid var(--line);margin-top:12px}
.quote-photo-details summary{font-size:13px;font-weight:600;cursor:pointer;min-height:44px;padding-block:12px}
.photo-upload{padding:0 0 16px}
#photo-empty{font-size:12px;line-height:1.6;margin-bottom:12px;max-width:40ch}
.photo-actions{display:flex;gap:10px;flex-wrap:wrap}
.photo-picker{position:relative;display:flex;align-items:center;justify-content:center;min-height:44px;padding:10px 15px;border:1px solid #c7ccce;border-radius:6px;background:var(--bg);cursor:pointer;overflow:hidden}
.photo-picker input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.photo-picker:focus-within{outline:2px solid #28618a;outline-offset:3px}
#photo-help{font-size:11px;line-height:1.5;margin-top:12px}
#photo-selection{margin:0 0 12px}
#photo-preview{width:100%;height:180px;object-fit:contain;border-radius:6px;background:var(--surface)}
#photo-name{font-size:12px;margin-top:6px;overflow-wrap:anywhere}
.photo-remove{border:0;background:none;text-decoration:underline;text-underline-offset:3px;font:inherit;font-size:12px;min-height:44px;padding:8px 0;color:var(--ink)}
.field-error{font-size:13px;color:#a1251d;margin-top:8px}
.field-error:empty{display:none}
.quote-trap{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.quote-submit{display:flex;width:100%;justify-content:center;white-space:normal;text-align:center;margin-top:10px}
.quote-submit:disabled{opacity:.5;cursor:not-allowed}
.quote-form[aria-busy=true] .quote-submit{cursor:wait}
.pac-container{font-family:inherit;border-radius:6px;box-shadow:0 12px 28px #171b2024;z-index:1200}
.pac-item{min-height:44px;padding:10px 12px;font-size:13px;line-height:1.6;cursor:pointer}
.pac-item-query{font-size:14px}
.form-privacy{font-size:11px;line-height:1.6;text-align:center;margin:12px auto 0;max-width:47ch}
.quote-status{font-size:14px;line-height:1.6;margin-top:20px;padding:14px;border-radius:6px;background:var(--surface);color:var(--ink)}
.quote-status:empty{display:none}
.quote-status[data-state=error]{color:#8f2721;background:#fcf2f0}
.quote-status[data-state=success]{color:#20513a;background:#edf5ef}
.form-noscript{font-size:13px;line-height:1.6;margin-top:16px}
@media(min-width:941px){
 .quote-main{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:clamp(40px,6.5vw,96px)}
 .quote-intro{padding-top:6px}
}
