.contact-launch{position:fixed;right:20px;bottom:20px;z-index:80;min-height:48px;padding:.75rem 1rem;border:1px solid var(--navy);background:var(--yellow);color:var(--navy);box-shadow:6px 6px 0 var(--pink);font:800 .82rem/1 Arial,sans-serif;cursor:pointer}
.contact-launch:hover,.contact-launch:focus-visible{transform:translate(-2px,-2px);box-shadow:8px 8px 0 var(--pink)}
.contact-dialog{width:min(620px,calc(100% - 28px));max-height:min(88vh,760px);margin:auto;padding:0;border:1px solid var(--navy);background:var(--cream);color:var(--navy);box-shadow:12px 12px 0 var(--pink);overflow:auto}
.contact-dialog::backdrop{background:rgba(23,35,62,.72);backdrop-filter:blur(3px)}
.contact-form{padding:1.4rem}
.contact-form .micro{font:700 .75rem/1.3 monospace;letter-spacing:.08em;text-transform:uppercase}
.contact-form-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-bottom:1rem;border-bottom:1px solid var(--navy)}
.contact-close{width:42px;height:42px;border:1px solid var(--navy);background:transparent;color:inherit;font:400 1.6rem/1 Arial,sans-serif;cursor:pointer}
.contact-form h2{font:500 clamp(2.5rem,8vw,4.5rem)/.88 Georgia,serif;letter-spacing:-.055em;margin:1.5rem 0 .8rem}
.contact-form>p{max-width:34rem;margin:0 0 1.4rem}
.contact-fields{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.contact-fields label{display:grid;gap:.4rem;font-weight:800;font-size:.86rem}
.contact-fields label:last-child{grid-column:1/-1}
.contact-fields input,.contact-fields select,.contact-fields textarea{width:100%;min-height:48px;border:1px solid var(--navy);border-radius:0;background:white;color:var(--navy);padding:.75rem;font:inherit}
.contact-fields textarea{min-height:130px;resize:vertical}
.contact-fields input:focus,.contact-fields select:focus,.contact-fields textarea:focus{outline:3px solid var(--yellow);outline-offset:1px}
.contact-submit{width:100%;min-height:52px;margin-top:1rem;border:1px solid var(--navy);background:var(--green);color:white;padding:.8rem 1rem;font-weight:800;cursor:pointer}
.contact-form .contact-note{margin:.75rem 0 0;font-size:.78rem;line-height:1.45}
body.contact-open{overflow:hidden}
@media(max-width:620px){.contact-launch{right:14px;bottom:14px}.contact-dialog{max-height:92vh}.contact-form{padding:1rem}.contact-fields{grid-template-columns:1fr}.contact-fields label:last-child{grid-column:auto}}
@media(prefers-reduced-motion:no-preference){.contact-launch{transition:transform .15s ease,box-shadow .15s ease}.contact-dialog[open]{animation:contact-in .18s ease-out}@keyframes contact-in{from{opacity:0;transform:translateY(12px)}}}
