/* Shared contact form. Prepares an email draft, without a submission backend. */
.contact-dialog{position:fixed;inset:0;width:min(610px,calc(100% - 32px));max-height:calc(100svh - 48px);margin:auto;padding:40px 44px 30px;border:1px solid var(--lab-edge);border-radius:24px;background:var(--paper);color:var(--lab-copy);box-shadow:0 28px 90px -25px #050a3055;overflow:auto;overscroll-behavior:contain;font-family:var(--sans)}
.contact-dialog::backdrop{background:#090e2b70;backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}
.contact-dialog[open]{animation:contact-open .28s cubic-bezier(.2,.7,.2,1) both}.contact-dialog[open]::backdrop{animation:contact-backdrop .2s ease-out both}
.contact-dialog>.eyebrow{font-size:.6rem;margin-bottom:15px;padding-right:25px;color:var(--lab-muted)}.contact-dialog h2{font:400 2.8rem/1.12 var(--sans);letter-spacing:-.055em;margin:0}.contact-dialog>p:not(.eyebrow){font-size:.8rem;line-height:1.7;margin-top:14px;color:var(--lab-muted)}
.contact-close{position:absolute;top:14px;right:14px;width:44px;height:44px;border:0;border-radius:50%;background:transparent;color:var(--lab-muted);font:300 1.65rem var(--sans);cursor:pointer;transition:background .15s,color .15s}.contact-close:hover{background:color-mix(in srgb,var(--lab-copy) 6%,transparent);color:var(--lab-copy)}
.contact-form{display:grid;gap:21px;margin-top:28px}.contact-field-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.contact-form label{display:block;font-size:.68rem;font-weight:500;line-height:1.5;min-width:0}.field-optional{font-weight:400;font-size:.57rem;margin-left:7px;color:var(--lab-muted)}
.contact-form input,.contact-form textarea{display:block;width:100%;min-height:45px;margin-top:8px;border:1px solid color-mix(in srgb,var(--lab-copy) 19%,transparent);border-radius:9px;background:color-mix(in srgb,var(--lab-surface) 70%,transparent);color:var(--lab-copy);padding:11px 13px;font:400 .84rem/1.55 var(--sans);box-shadow:none;transition:border-color .18s,box-shadow .18s;box-sizing:border-box}.contact-form textarea{resize:vertical;min-height:100px;max-height:260px}.contact-form input:hover,.contact-form textarea:hover{border-color:color-mix(in srgb,var(--lab-copy) 35%,transparent)}.contact-form input:focus,.contact-form textarea:focus{outline:0;border-color:var(--teal);box-shadow:0 0 0 3px color-mix(in srgb,var(--teal) 12%,transparent)}
.contact-submit-row{display:flex;gap:20px;align-items:center;margin-top:2px}.contact-submit-row>button{border:1px solid transparent;border-radius:30px;background:var(--lab-copy);color:var(--paper);min-height:46px;padding:12px 21px;font:500 .72rem var(--sans);display:flex;align-items:center;justify-content:center;gap:19px;cursor:pointer;transition:transform .2s,box-shadow .2s}.contact-submit-row>button:hover{transform:translateY(-1px);box-shadow:0 5px 15px -5px var(--lab-shadow)}.contact-submit-row>button:active{transform:none}.contact-submit-row>p{font-size:.58rem;line-height:1.7;color:var(--lab-muted)}
.contact-dialog .contact-direct{font-size:.63rem!important;margin-top:24px!important;padding-top:20px;border-top:1px solid color-mix(in srgb,var(--lab-copy) 12%,transparent)}.contact-direct a{display:inline-block;margin-left:5px;color:var(--lab-copy);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--lab-copy) 30%,transparent);text-underline-offset:4px}
.contact-dialog button:focus-visible,.contact-direct a:focus-visible{outline:2px solid var(--teal);outline-offset:4px}
@keyframes contact-open{from{opacity:0;transform:translateY(9px) scale(.985)}to{opacity:1;transform:none}}
@keyframes contact-backdrop{from{opacity:0}to{opacity:1}}
@media(max-width:600px){.contact-dialog{padding:32px 24px 24px;width:calc(100% - 24px);border-radius:19px;max-height:calc(100svh - 28px)}.contact-dialog h2{font-size:2.35rem}.contact-dialog>p:not(.eyebrow){font-size:.75rem}.contact-field-row{grid-template-columns:1fr;gap:19px}.contact-form{gap:19px;margin-top:23px}.contact-form input,.contact-form textarea{font-size:1rem}.contact-submit-row{align-items:flex-start;flex-direction:column;gap:12px}.contact-submit-row>button{width:100%;font-size:.75rem}.contact-submit-row>p{font-size:.6rem}.contact-dialog .contact-direct{font-size:.6rem!important;margin-top:19px!important}.contact-direct a{margin-left:0;display:block;padding-block:5px}.route-option{font-size:.58rem;gap:5px}}
@media(prefers-reduced-motion:reduce){.contact-dialog,.contact-dialog::backdrop,.contact-dialog *{animation:none!important;transition:none!important}}
@media(prefers-reduced-transparency:reduce){.contact-dialog::backdrop{backdrop-filter:none;-webkit-backdrop-filter:none;background:#090e2bb3}}
