#haven-contact-dialog{background:var(--paper,#f7f9fc);border:1px solid var(--line,#d8e2eb);color:var(--ink,#17344f);max-width:560px;width:calc(100% - 2rem);max-height:calc(100dvh - 2rem);margin:auto;padding:clamp(1.25rem,4vw,2rem);overflow:auto;box-shadow:0 24px 80px rgba(16,40,56,.3)}
#haven-contact-dialog:not([open]){display:none}
#haven-contact-dialog::backdrop{background:rgba(16,40,56,.65)}
#haven-contact-dialog .contact-dialog-head{align-items:start;display:flex;gap:1rem;justify-content:space-between;margin-bottom:1.25rem}
#haven-contact-dialog .contact-dialog-brand{color:var(--bronze-dark,#89683f);font-size:.75rem;font-weight:700;letter-spacing:.16em;margin:0 0 .65rem}
#haven-contact-dialog h2{font-family:Cinzel,serif;font-size:clamp(1.6rem,5vw,2rem);font-weight:500;line-height:1.2;margin:0}
#haven-contact-dialog .contact-dialog-close{align-items:center;background:transparent;border:1px solid var(--line,#d8e2eb);color:var(--ink,#17344f);cursor:pointer;display:flex;flex:0 0 44px;font:24px/1 sans-serif;height:44px;justify-content:center;padding:0}
#haven-contact-dialog form{display:grid;gap:1rem}
#haven-contact-dialog .contact-dialog-grid{display:grid;gap:1rem;grid-template-columns:1fr 1fr}
#haven-contact-dialog .contact-dialog-field{display:grid;gap:.4rem;font-size:.9rem;font-weight:600}
#haven-contact-dialog input:not([type=checkbox]),#haven-contact-dialog textarea{background:#fff;border:1px solid #b9c9d5;color:var(--ink,#17344f);font:inherit;font-weight:400;min-height:48px;min-width:0;padding:.75rem;width:100%}
#haven-contact-dialog textarea{min-height:120px;resize:vertical}
#haven-contact-dialog :is(input,textarea,button):focus-visible{outline:2px solid var(--blue,#3d82ad);outline-offset:2px}
#haven-contact-dialog .contact-dialog-optional{color:var(--muted,#627587);font-weight:400}
#haven-contact-dialog .contact-dialog-consent{align-items:start;display:flex;font-size:.8rem;gap:.6rem;line-height:1.5}
#haven-contact-dialog .contact-dialog-consent input{flex:0 0 auto;margin:.2rem 0 0}
#haven-contact-dialog .contact-dialog-consent a{color:var(--blue,#245d86);text-decoration:underline}
#haven-contact-dialog [type=submit]{background:var(--blue,#3d82ad);border:1px solid var(--blue,#3d82ad);color:#fff;cursor:pointer;font:inherit;font-weight:700;min-height:48px;padding:.85rem 1rem;width:100%}
#haven-contact-dialog [type=submit]:hover{background:var(--ink,#17344f)}
#haven-contact-dialog [data-contact-status]{background:#e9f3ed;border-left:3px solid #2f6b4f;color:#17344f;font-size:.9rem;line-height:1.5;margin:0;padding:.85rem 1rem}
#haven-contact-dialog [data-contact-status][data-error=true]{background:#fff0ee;border-color:#a13333}
html:has(#haven-contact-dialog[open]){overflow:hidden}
@media(max-width:480px){#haven-contact-dialog{width:calc(100% - 1rem);max-height:calc(100dvh - 1rem)}#haven-contact-dialog .contact-dialog-grid{grid-template-columns:1fr}}
