.quote-section{background:var(--soft);scroll-margin-top:110px}
.quote-layout{display:grid;grid-template-columns:minmax(240px,.7fr) minmax(0,1.3fr);gap:64px;align-items:start}
.quote-intro h2{margin:22px 0;font-size:clamp(2rem,3.2vw,3.1rem)}
.quote-intro>p{color:var(--muted);max-width:390px;font-size:1rem}
.quote-photo-tip{border-top:2px solid var(--purple);margin-top:35px;padding-top:24px;max-width:390px}
.quote-photo-tip h3{font-size:1.125rem;letter-spacing:-.02em;margin-bottom:12px}
.quote-photo-tip p{color:var(--muted);font-size:.9375rem}
.quote-request{background:white;border:1px solid var(--line);border-radius:6px;padding:34px;min-width:0}
.quote-required-note{font-size:.875rem;color:var(--muted);margin-bottom:25px}
.quote-fields{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.quote-field{min-width:0}
.quote-field>label{display:block;font-size:1rem;font-weight:650;margin-bottom:8px;line-height:1.5}
.quote-field label span{font-weight:400;color:var(--muted);font-size:.875rem}
.quote-field input,.quote-field textarea{display:block;width:100%;border:1px solid #a9a9b7;border-radius:4px;background:white;padding:12px 13px;font:inherit;font-size:1rem;color:var(--ink);min-height:48px}
.quote-field textarea{resize:vertical;min-height:125px}
.quote-field input::placeholder,.quote-field textarea::placeholder{color:#757581}
.quote-field input:focus-visible,.quote-field textarea:focus-visible,.photo-picker input:focus-visible{outline:3px solid #c6b7ff;outline-offset:2px;border-color:var(--purple)}
.quote-field input[readonly]{background:var(--soft)}
.quote-request .field-help{font-size:.875rem;color:var(--muted);margin:7px 0 0;line-height:1.6}
.quote-request fieldset{padding:0;border:0;min-width:0;margin:30px 0}
.quote-request legend{font-size:1rem;font-weight:650;padding:0;line-height:1.5}
.treatment-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
.treatment-choice{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:4px;padding:12px;min-height:48px;cursor:pointer;font-size:.9375rem;line-height:1.45}
.treatment-choice:has(input:checked){background:#f3efff;border-color:var(--purple)}
.treatment-choice input{width:19px;height:19px;flex:0 0 19px;margin:0;accent-color:var(--purple)}
.treatment-choice input:focus-visible{outline:3px solid var(--purple);outline-offset:4px}
.selected-package:not([hidden]){margin-top:25px}
.photo-picker{border:1px dashed #9f94c0;background:#faf8ff;border-radius:5px;padding:22px;margin-top:15px}
.photo-picker>label{font-weight:650;font-size:1rem;display:block;margin-bottom:12px}
.photo-picker input{display:block;width:100%;min-width:0;font:inherit;font-size:.875rem;line-height:1.6}
.photo-picker input::file-selector-button{font:inherit;background:var(--purple);color:white;border:0;border-radius:4px;padding:11px 14px;margin-right:10px;min-height:44px;cursor:pointer}
.photo-picker p{font-size:.875rem;color:var(--muted);line-height:1.6;margin:13px 0 0}
.photos-summary{font-size:.875rem;color:var(--muted);margin-top:14px}
.photo-previews{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;list-style:none;padding:0;margin:14px 0 0}
.photo-preview{min-width:0;border:1px solid var(--line);border-radius:4px;overflow:hidden;background:#fff}
.photo-preview img,.photo-type{width:100%;height:110px;object-fit:cover;background:var(--soft)}
.photo-type{display:flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:650;color:var(--muted)}
.photo-caption{padding:8px 9px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;color:var(--muted)}
.photo-remove{border:0;background:transparent;color:var(--purple-dark);padding:8px 9px;min-height:44px;font-size:.875rem;text-decoration:underline;text-underline-offset:3px}
.quote-error{padding:12px 14px;border-left:3px solid #a02525;background:#fff0f0;color:#841e1e;font-size:.9375rem;margin:14px 0;overflow-wrap:anywhere}
.quote-error a{text-decoration:underline}
.quote-request [aria-invalid="true"]{outline:2px solid #a02525;outline-offset:2px}
.quote-field input,.photo-picker input,.treatment-choice input{scroll-margin-top:120px;scroll-margin-bottom:80px}
.quote-submit-row{display:flex;align-items:center;gap:22px;margin-top:28px}
.quote-submit-row .button{flex-shrink:0;border:0;font-size:1rem;min-height:50px}
.quote-submit-row p{font-size:.875rem;color:var(--muted);line-height:1.6}
.quote-delivery-note{font-size:.875rem;color:var(--muted);margin-top:18px!important;line-height:1.6}
.quote-delivery-note a{text-decoration:underline;text-underline-offset:3px}
.quote-request button:disabled{opacity:.65;cursor:wait}
.quote-honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.quote-request [hidden]{display:none!important}
@media(max-width:1000px){.quote-layout{grid-template-columns:1fr;gap:32px}.quote-intro>p,.quote-photo-tip{max-width:720px}.quote-photo-tip{margin-top:24px;padding-top:20px}.quote-intro h2 br{display:none}}
@media(max-width:640px){.quote-layout{gap:28px}.quote-request{padding:24px 18px}.quote-fields{grid-template-columns:1fr;gap:20px}.treatment-grid{grid-template-columns:1fr}.photo-picker{padding:18px 14px}.photo-previews{grid-template-columns:repeat(2,minmax(0,1fr))}.quote-submit-row{display:block}.quote-submit-row .button{width:100%;justify-content:center}.quote-submit-row p{margin-top:16px}.quote-section{scroll-margin-top:90px}}
