.visit-request{scroll-margin-top:100px;background:#f3f6f2}
.visit-request .visit-request-layout{display:grid;grid-template-columns:minmax(0,0.9fr) minmax(0,1.1fr);gap:clamp(24px,5vw,80px);align-items:start}
.visit-request .visit-request-copy,.visit-request .visit-request-panel{min-width:0}
.visit-request h2{margin-bottom:20px}
.visit-request .visit-request-copy>p{margin-bottom:18px}
.visit-request .visit-travel-note{padding:16px 18px;border-radius:12px;background:#e5ede4;color:#183c30}
.visit-request .visit-reassurance{padding-left:20px;line-height:1.65}
.visit-request .visit-reassurance li{margin:10px 0}
.visit-request .visit-request-panel{padding:clamp(20px,3vw,32px);border:1px solid #d3dfd6;border-radius:20px;background:white}
.visit-request .visit-form{margin:0;display:grid;gap:18px}
.visit-request .visit-field{display:flex;flex-direction:column;gap:7px;min-width:0}
.visit-request .visit-field label{font-weight:600;font-size:14px;line-height:1.45}
.visit-request .visit-field input,.visit-request .visit-field select,.visit-request .visit-field textarea{width:100%;min-width:0;max-width:100%;min-height:48px;padding:12px 13px;border:1px solid #aebfb4;border-radius:9px;background:#fff;color:#17382d;font:inherit;font-size:16px;line-height:1.4}
.visit-request .visit-field textarea{resize:vertical;min-height:100px}
.visit-request .visit-field-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
.visit-request .visit-field [aria-invalid=true]{border-color:#a22c24;box-shadow:0 0 0 1px #a22c24}
.visit-request .visit-field-error{color:#94251e;font-size:13px;line-height:1.45;overflow-wrap:anywhere}
.visit-request .visit-field-error:empty{display:none}
.visit-request .visit-confirmation-note{font-size:14px;line-height:1.6;padding:14px 16px;border-radius:9px;background:#f3f6f2;margin:0}
.visit-request .visit-whatsapp,.visit-request #visitEmailSend{width:100%;min-height:48px;white-space:normal;line-height:1.45;text-align:center;justify-content:center;padding:13px 16px}
.visit-request .visit-whatsapp{background:#1e624a;color:white}
.visit-request button:disabled,.visit-request a[aria-disabled=true]{opacity:.6;cursor:wait}
.visit-request .visit-email-details{border-top:1px solid #d9e3dc;padding-top:12px}
.visit-request :is(.visit-email-details,.visit-optional-details,.visit-explanation)>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:48px;cursor:pointer;font-weight:600;line-height:1.5;padding:12px 0;list-style:none}
.visit-request :is(.visit-email-details,.visit-optional-details,.visit-explanation)>summary>span{flex:0 0 auto;font-size:22px;line-height:1;color:#54745b}
.visit-request .visit-email-fields,.visit-request .visit-optional-fields{display:grid;gap:18px;padding-top:12px}
.visit-request .visit-explanation{margin-bottom:18px}
.visit-request .visit-status{margin:0;color:#1a553c;font-size:15px;line-height:1.65;overflow-wrap:anywhere}
.visit-request .visit-status:empty{display:none}
.visit-request .visit-status.is-error{color:#94251e}
.visit-request .visit-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.visit-request :is(input,select,textarea,button,a,summary):focus-visible{outline:3px solid #337a5b;outline-offset:3px}
.visit-request #visitHeading:focus{outline:2px solid #337a5b;outline-offset:7px;border-radius:3px}
.visit-request p.fine-print{margin:0;font-size:13px;line-height:1.6}
@media(max-width:950px){.visit-request .visit-request-layout{grid-template-columns:1fr;gap:28px}.visit-request .visit-request-copy{max-width:720px}}
@media(max-width:480px){.visit-request .visit-field-row{grid-template-columns:1fr}.visit-request .visit-request-panel{padding:20px 16px;border-radius:15px}.visit-request .visit-field input[type=date]{appearance:none;min-width:0;width:100%}}
@media(max-width:700px){body.estimate-page .visit-request{padding-block:38px}body.estimate-page .visit-request h2{font-size:34px;margin-bottom:14px}body.estimate-page .visit-request .visit-request-copy>p{margin-bottom:12px;font-size:14px;line-height:1.65}body.estimate-page .visit-request .visit-travel-note{padding:12px 14px}body.estimate-page .visit-request .visit-request-layout{gap:20px}}
