.map{position:relative;display:grid;place-items:center;margin-top:1.5rem;height:300px;border-radius:var(--radius-panel);overflow:hidden;background:var(--stripe-off-warm)}.map--placeholder{--w:var(--stripe-width-inset);height:240px}.map__note{position:relative;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.1em;color:var(--muted)}.map__directions,.map__note{font-size:.69rem;text-transform:uppercase}.map__directions{position:absolute;left:.875rem;top:.875rem;z-index:1;background:var(--ink);color:var(--sand);letter-spacing:.13em;text-decoration:none;padding:.6rem 1.1rem;border-radius:var(--radius-pill);box-shadow:var(--shadow-card);transition:background-color .2s var(--ease)}.map__directions:hover{background:var(--accent-deep)}.contact{display:grid;grid-template-columns:1.1fr .9fr;grid-gap:3.5rem;gap:3.5rem;align-items:start}.contact__form-panel{background:var(--card);border-radius:var(--radius-panel);padding:clamp(1.75rem,1rem + 2.5vw,3rem);box-shadow:var(--shadow-panel)}.contact__form-title{font-family:var(--font-display);font-size:1.875rem;font-weight:500;margin-bottom:.375rem}.contact__form-intro{font-size:.875rem;line-height:1.6;color:var(--muted);margin-bottom:1.875rem}.contact__row{display:grid;grid-template-columns:1fr 1fr;grid-gap:1.125rem;gap:1.125rem}.field{margin-bottom:1.125rem}.field label{display:block;font-size:.69rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:.5rem}.field input,.field select,.field textarea{width:100%;background:var(--sand);border:1px solid var(--line-input);border-radius:4px;padding:.8rem .875rem;font-family:var(--font-sans);font-size:.9375rem;color:var(--ink);transition:border-color .2s var(--ease)}.field textarea{resize:vertical}.field input::placeholder,.field textarea::placeholder{color:#9aa0b0}.field :is(input,select,textarea):focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(90,120,166,.18)}.contact__submit{width:100%;margin-top:.75rem;background:var(--ink);color:var(--sand);font-family:var(--font-sans);font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;padding:1rem;border:none;border-radius:var(--radius-pill);cursor:pointer;transition:background-color .2s var(--ease)}.contact__submit:hover{background:var(--accent-deep)}.contact__submit:disabled{opacity:.6;cursor:progress}.contact__honeypot{position:absolute;width:1px;height:1px;overflow:hidden;-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap}.contact__error{margin-top:1rem;padding:.875rem 1rem;border-left:2px solid var(--accent-deep);border-radius:0 var(--radius-frame) var(--radius-frame) 0;background:var(--stripe-off-warm);font-family:var(--font-sans);font-size:.8125rem;line-height:1.65;color:var(--ink)}.contact__success{text-align:center;padding:1.875rem .625rem}.contact__success-mark{display:grid;place-items:center;width:64px;height:64px;margin:0 auto 1.5rem;border-radius:50%;background:var(--stripe);font-family:var(--font-display);font-size:1.75rem}.contact__success-title{font-family:var(--font-display);font-size:1.875rem;font-weight:500}.contact__success-text{max-width:380px;margin:.875rem auto 1.75rem;font-size:.9375rem;line-height:1.7;color:var(--muted)}.contact__reset{background:none;border:1px solid var(--ink);color:var(--ink);font-family:var(--font-sans);font-size:.75rem;letter-spacing:.13em;text-transform:uppercase;padding:.8rem 1.625rem;border-radius:var(--radius-pill);cursor:pointer;transition:background-color .2s var(--ease),color .2s var(--ease)}.contact__info,.contact__reset:hover{background:var(--ink);color:var(--sand)}.contact__info{border-radius:var(--radius-panel);padding:clamp(1.75rem,1rem + 2vw,2.5rem)}.contact__info-title{font-family:var(--font-display);font-size:1.5rem;font-weight:500;margin-bottom:1.375rem}.contact__hours>div,.contact__info-list>div{display:flex;gap:.75rem;font-size:.9rem;line-height:1.9;color:var(--on-ink-body)}.contact__info-list>div{margin-bottom:1rem}.contact__hours dt,.contact__info-list dt{flex:none;width:80px;padding-top:.2rem;font-size:.69rem;letter-spacing:.1em;text-transform:uppercase;color:var(--on-ink-label)}.contact__info a{color:var(--on-ink-body);text-decoration:none}.contact__info a:hover{text-decoration:underline;text-underline-offset:4px}.contact__info-rule{border:none;height:1px;background:var(--line-on-ink);margin:1.5rem 0}.contact__info-label{font-size:.69rem;letter-spacing:.12em;text-transform:uppercase;color:var(--on-ink-label);margin-bottom:.625rem}.contact__hours dt{padding-top:0}@media (max-width:960px){.contact{grid-template-columns:1fr;gap:2rem}}@media (max-width:520px){.contact__row{grid-template-columns:1fr;gap:0}}