.contact-dialog { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: 24px; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity 180ms ease, visibility 0s linear 220ms; }
.contact-dialog[data-open="true"] { opacity: 1; visibility: visible; pointer-events: auto; transition-delay: 0s; }
.contact-dialog-backdrop { position: absolute; inset: 0; background: rgba(23, 24, 23, .52); backdrop-filter: blur(8px); }
.contact-dialog-panel { position: relative; z-index: 1; width: min(100%, 690px); max-height: min(850px, calc(100dvh - 48px)); overflow: auto; padding: 42px; border: 1px solid rgba(23, 24, 23, .12); border-radius: 24px; background: var(--white, #fffefb); box-shadow: 0 28px 80px rgba(30, 24, 19, .26); transform: translateY(12px) scale(.985); transition: transform 220ms var(--ease-out, cubic-bezier(.23, 1, .32, 1)); }
.contact-dialog[data-open="true"] .contact-dialog-panel { transform: translateY(0) scale(1); }
.contact-dialog-close { position: absolute; top: 16px; right: 16px; width: 38px; height: 38px; padding: 0; border: 1px solid var(--line, rgba(23, 24, 23, .14)); border-radius: 11px; background: rgba(245, 243, 238, .78); color: var(--ink, #171817); cursor: pointer; font: 400 25px/1 Arial, sans-serif; transition: transform 150ms var(--ease-out, ease-out), background-color 160ms ease; }
.contact-dialog-close:hover { background: #fff; }
.contact-dialog-close:active { transform: scale(.94); }
.contact-dialog-kicker { display: block; margin-bottom: 14px; color: var(--red-dark, #c92e2a); font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.contact-dialog-copy { max-width: 550px; padding-right: 42px; }
.contact-dialog-copy h2 { margin: 0 0 14px; color: var(--ink, #171817); font: 600 clamp(30px, 4vw, 44px)/1.06 "Manrope", Arial, sans-serif; letter-spacing: -.045em; text-wrap: balance; }
.contact-dialog-copy p { margin: 0; color: var(--ink-soft, #3f423f); font-size: 16px; line-height: 1.58; }
.contact-form { display: grid; gap: 19px; margin-top: 30px; }
.contact-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.contact-field { display: grid; gap: 8px; color: var(--ink, #171817); font-size: 13px; font-weight: 600; }
.contact-field b { color: var(--red, #ed3f3b); }
.contact-field input, .contact-field textarea { width: 100%; min-height: 49px; padding: 12px 14px; border: 1px solid var(--line, rgba(23, 24, 23, .14)); border-radius: 11px; outline: 0; background: rgba(245, 243, 238, .58); color: var(--ink, #171817); font: 400 16px/1.4 "DM Sans", Arial, sans-serif; transition: border-color 150ms ease, box-shadow 150ms ease, background-color 150ms ease; }
.contact-field textarea { min-height: 112px; resize: vertical; }
.contact-field input:focus, .contact-field textarea:focus { border-color: rgba(237, 63, 59, .72); background: #fff; box-shadow: 0 0 0 4px rgba(237, 63, 59, .11); }
.contact-field input[aria-invalid="true"], .contact-field textarea[aria-invalid="true"] { border-color: var(--red, #ed3f3b); }
.contact-consent { display: flex; align-items: flex-start; gap: 10px; color: var(--ink-soft, #3f423f); font-size: 13px; line-height: 1.45; cursor: pointer; }
.contact-consent input { width: 17px; height: 17px; margin: 1px 0 0; accent-color: var(--red, #ed3f3b); flex: 0 0 auto; }
.contact-consent a { color: var(--red-dark, #c92e2a); text-decoration: underline; text-decoration-color: rgba(201, 46, 42, .35); text-underline-offset: 3px; }
.contact-honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.contact-turnstile { min-height: 0; }
.contact-form-status { min-height: 20px; margin: -5px 0 0; color: var(--ink-soft, #3f423f); font-size: 13px; line-height: 1.4; }
.contact-form-status[data-state="error"] { color: #b22926; }
.contact-form-status[data-state="success"] { color: #176536; }
.contact-form-submit { justify-self: start; min-width: 190px; }
.contact-form[data-sending="true"] .contact-form-submit { pointer-events: none; opacity: .68; }
body.contact-dialog-open { overflow: hidden; }
@media (max-width: 620px) { .contact-dialog { padding: 12px; align-items: end; } .contact-dialog-panel { max-height: calc(100dvh - 24px); padding: 31px 22px 26px; border-radius: 20px; } .contact-form-grid { grid-template-columns: 1fr; gap: 15px; } .contact-dialog-copy { padding-right: 34px; } .contact-dialog-copy h2 { font-size: 31px; } .contact-form { margin-top: 25px; gap: 17px; } .contact-form-submit { width: 100%; } }
@media (prefers-reduced-motion: reduce) { .contact-dialog, .contact-dialog-panel, .contact-dialog-close { transition: none; } }
