/* Compact, clearly grouped form. Native inputs and their field names are preserved. */
.contact-dialog{
 --contact-padding:32px;--contact-gap:24px;--contact-field-gap:8px;
 position:fixed;inset:0;margin:auto;width:560px;height:fit-content;
 max-width:calc(100vw - 32px);max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);
 overflow:auto;overscroll-behavior:contain;padding:var(--contact-padding);
 border:1px solid #ffffffa6;border-radius:28px;background:#fff;color:var(--ink);
 box-shadow:0 24px 80px #14200f26;
}
.contact-dialog::backdrop{background:#17221680;backdrop-filter:blur(4px)}
.contact-dialog-top{position:absolute;top:16px;right:16px;display:block;width:44px;height:44px;margin:0;padding:0}
.contact-close{display:grid;place-items:center;width:44px;height:44px;margin:0;padding:12px;border:0;border-radius:50%;background:transparent;color:#626b59;cursor:pointer;transition:background .18s,color .18s}
.contact-close:hover{background:#f0f3ec;color:#354b2d}
.contact-close:focus-visible{outline:2px solid #5c754c;outline-offset:2px}
.contact-dialog h2{margin:0 0 28px;padding:0 calc(60px - var(--contact-padding)) 0 0;font:500 28px/1.25 var(--sans);letter-spacing:-.03em}
#contact-form{margin:0}
.contact-dialog .contact-field-label,.contact-dialog .contact-methods legend{display:block;margin:0 0 var(--contact-field-gap);padding:0;color:#384332;font:500 14px/1.4 var(--sans)}
.contact-methods{min-width:0;margin:0 0 var(--contact-gap);padding:0;border:0}
.contact-dialog .contact-methods legend{margin-bottom:10px}
.contact-method-options{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;padding:0;background:transparent}
.contact-method-options label{position:relative;display:block;min-width:0;cursor:pointer}
.contact-method-options input{position:absolute;width:1px;height:1px;margin:0;opacity:0}
.contact-method-pill{display:flex;align-items:center;justify-content:flex-start;gap:12px;min-height:56px;padding:11px 14px;border:1px solid #d4dbce;border-radius:12px;background:#fff;color:#525d4b;font:500 14px/1.3 var(--sans);transition:background .18s,border-color .18s,color .18s}
.contact-method-options label:hover .contact-method-pill{background:#f6f8f3;border-color:#acb8a2}
.contact-method-icon{display:grid;place-items:center;width:28px;height:28px;flex:0 0 28px;color:#354b2d}
.contact-method-icon>img,.contact-method-icon>svg{display:block;width:24px;height:24px;object-fit:contain}
.contact-method-check{display:grid;place-items:center;width:18px;height:18px;flex:0 0 18px;margin-left:auto;border:1px solid #88947f;border-radius:50%;background:transparent}
.contact-method-check::after{content:"";width:6px;height:6px;border-radius:50%;background:transparent}
.contact-method-options input:checked+.contact-method-pill{border-color:#5c754c;background:#edf2e8;color:#354b2d}
.contact-method-options input:checked+.contact-method-pill .contact-method-check{border-color:#354b2d}
.contact-method-options input:checked+.contact-method-pill .contact-method-check::after{background:#354b2d}
.contact-method-options input:focus-visible+.contact-method-pill{outline:2px solid #5c754c;outline-offset:3px}
#contact-phone{display:block;box-sizing:border-box;width:100%;min-height:56px;margin:0;padding:14px 16px;border:1px solid #c9d2c1;border-radius:12px;background:#f8faf6;color:#171c15;font:400 17px/1.4 var(--sans);outline-offset:3px;transition:background .18s,border-color .18s}
#contact-phone::placeholder{color:#77816e;opacity:1}
#contact-phone:hover{border-color:#9dab91}
#contact-phone:focus{border-color:#5c754c;background:#fff;outline:2px solid #5c754c}
#contact-phone[aria-invalid=true]{border-color:#aa4039;background:#fff9f8}
#contact-phone[aria-invalid=true]:focus{outline-color:#aa4039}
.contact-field-error{display:block;margin:var(--contact-field-gap) 0 0;color:#aa4039;font:400 12px/1.45 var(--sans)}
.contact-field-error:empty{display:none}
.contact-consent{display:flex;align-items:center;gap:10px;min-height:44px;margin:16px 0 0;color:#59634f;font:400 13px/1.5 var(--sans);cursor:pointer}
.contact-consent input{appearance:none;-webkit-appearance:none;display:grid;place-content:center;width:20px;height:20px;flex:0 0 20px;margin:0;border:1px solid #89967e;border-radius:5px;background:#fff;cursor:pointer}
.contact-consent input:checked{border-color:#354b2d;background:#354b2d}
.contact-consent input:checked::before{content:"";width:6px;height:10px;margin-top:-2px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.contact-consent input:focus-visible{outline:2px solid #5c754c;outline-offset:3px}
.contact-consent input[aria-invalid=true]{border-color:#aa4039}
.contact-consent a{color:#354b2d;text-decoration:underline;text-decoration-color:#9ca890;text-underline-offset:3px}
.contact-consent a:hover{text-decoration-color:currentColor}
.contact-dialog .contact-submit{width:100%;min-height:56px;margin:16px 0 0;padding:16px 20px;justify-content:center;border-radius:12px;background:#354b2d;color:#fff;font:500 14px/1.4 var(--sans);letter-spacing:-.01em;transition:background .18s}
.contact-dialog .contact-submit:hover{background:#415b35;transform:none;box-shadow:none}
.contact-dialog .contact-submit:active{background:#2b3f24;transform:none;box-shadow:none}
.contact-dialog .contact-submit:focus-visible{outline:2px solid #5c754c;outline-offset:3px}
#contact-form-status{margin:var(--contact-gap) 0 0;padding:14px 16px;border-radius:12px;background:#edf2e8;color:#354b2d;font:400 13px/1.5 var(--sans)}
@media(max-width:560px){
 .contact-dialog{--contact-padding:24px;border-radius:24px}
 .contact-dialog h2{font-size:26px;margin-bottom:24px}
 .contact-consent{align-items:flex-start;padding-block:8px}
 .contact-consent input{margin-top:1px}
}
@media(max-width:360px){.contact-dialog{--contact-padding:20px}.contact-dialog h2{font-size:24px}.contact-dialog .contact-submit{font-size:13px}}
@media(prefers-reduced-motion:reduce){.contact-dialog[open]{animation:none}.contact-dialog button,.contact-method-pill,#contact-phone{transition:none}}
@media(forced-colors:active){
 .contact-method-pill,.contact-method-check{border-color:ButtonText}
 .contact-method-options input:checked+.contact-method-pill{outline:1px solid Highlight;outline-offset:-1px}
 .contact-method-options input:checked+.contact-method-pill .contact-method-check::after{background:Highlight;forced-color-adjust:none}
 .contact-consent input{appearance:auto;-webkit-appearance:auto}
 .contact-consent input:checked::before{display:none}
}
