/* A quiet, accessible service form within the contact section. */
.service-request[hidden], .service-request [hidden] { display:none!important; }
.service-request { padding-bottom:40px; scroll-margin-top:var(--header-offset,110px); }
.service-request-card { max-width:840px; margin-inline:auto; padding:clamp(22px,3.5vw,38px); border:1px solid #dce5df; border-radius:16px; background:#f7f9f7; color:#142c24; box-shadow:0 3px 12px #00291b0d; }
.service-request-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:24px; }
.contact .service-request h3 { margin:0; font-size:clamp(26px,3vw,32px); line-height:1.15; letter-spacing:-.6px; }
.contact .service-request p { margin:8px 0 0; color:#445d51; font-size:14px; line-height:1.55; }
.service-request-close { flex:0 0 44px; display:grid; place-items:center; width:44px; height:44px; border:1px solid #cbd8cf; border-radius:12px; background:#edf2ee; color:#193f2e; }
.service-request-close:hover { background:#e0e9e3; }
.service-request-close .icon { width:20px; height:20px; }
.service-request-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.service-request-field { min-width:0; display:flex; flex-direction:column; gap:8px; }
.service-request-field--wide { grid-column:1/-1; }
.service-request label { display:block; color:#19382a; font-size:14px; font-weight:700; line-height:1.4; }
.service-request label span { color:#53695d; font-weight:400; font-size:13px; }
.service-request input,.service-request textarea { display:block; width:100%; min-width:0; min-height:48px; padding:12px 14px; border:1px solid #9bae9f; border-radius:11px; background:#fff; color:#142c24; font-size:16px; line-height:1.5; box-shadow:0 1px 2px #001b1503; }
.service-request textarea { min-height:130px; resize:vertical; }
.service-request input:hover,.service-request textarea:hover { border-color:#627e6c; }
.service-request input:focus-visible,.service-request textarea:focus-visible,.service-request button:focus-visible,.service-request a:focus-visible { outline:3px solid #007d49; outline-offset:3px; }
.service-request input:user-invalid,.service-request textarea:user-invalid { border-color:#a53928; }
.contact .service-request .service-request-privacy { margin-top:20px; font-size:13px; }
.service-request-privacy a { display:inline-flex; align-items:center; min-height:44px; color:#00623b; text-decoration:underline; text-underline-offset:3px; }
.service-request-actions { display:flex; align-items:center; flex-wrap:wrap; gap:10px 20px; margin-top:10px; }
.contact .service-request .button { min-height:48px; padding:13px 22px; border-color:#006e41; border-radius:11px; background:#007a46; color:#fff; font-size:15px; }
.contact .service-request .button:hover { background:#00623a; transform:none; }
.contact .service-request .button:disabled { opacity:.65; cursor:wait; }
.contact .service-request .service-request-delivery { flex:1 1 230px; margin:0; font-size:13px; }
.contact .service-request .service-request-status:empty { margin:0; }
.contact .service-request .service-request-status:not(:empty) { margin-top:20px; padding:13px 15px; border:1px solid #c3d5c8; border-radius:11px; background:#e9f1eb; color:#214d36; }
.contact .service-request .service-request-status[data-kind="error"] { border-color:#e4c3b6; background:#fcf0e9; color:#78371f; }
.service-request-fallback { display:flex; align-items:center; flex-wrap:wrap; gap:4px 22px; margin-top:12px; }
.service-request-fallback a { display:inline-flex; align-items:center; min-height:44px; color:#00623b; font-size:14px; font-weight:600; text-decoration:underline; text-underline-offset:3px; overflow-wrap:anywhere; }
@media(max-width:560px) { .service-request { padding-bottom:28px; } .service-request-fields { grid-template-columns:minmax(0,1fr); gap:18px; } .service-request-heading { margin-bottom:22px; } .service-request-field--wide { grid-column:auto; } .contact .service-request .button { width:100%; } .service-request-actions { align-items:stretch; } .contact .service-request .service-request-delivery { flex-basis:100%; } }
@media print { .service-request { display:none!important; } }
