.contact-map-preview{position:relative;margin-top:20px;height:210px;overflow:hidden;border:1px solid var(--line);background:#20201e}
.contact-map-preview>iframe{display:block;width:100%;height:100%;border:0;pointer-events:none}
.footer-map-preview{width:min(270px,100%);height:92px;margin:0 0 14px;border-color:#ffffff20}
.footer-map-preview .contact-map-caption{padding:8px 10px;font-size:11px;letter-spacing:.15px}
.footer-map-preview .contact-map-caption svg{width:16px;height:16px}
.contact-map-trigger{position:absolute;inset:0;display:flex;align-items:flex-end;color:#fff}
.contact-map-trigger:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}
.contact-map-caption{display:flex;align-items:center;justify-content:space-between;gap:18px;width:100%;padding:12px 16px;background:#101010ed;border-top:1px solid #ffffff24;font:600 14px/1.4 var(--heading);transition:background .2s}
.contact-map-caption>span{display:flex;align-items:center;gap:9px}
.contact-map-caption svg,.contact-map-actions svg{width:20px;height:20px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.7}
.contact-map-caption>span>svg{color:var(--accent)}
.contact-item .contact-map-trigger:hover{color:#fff}
.contact-map-trigger:hover .contact-map-caption{background:#242424}
.contact-map-dialog{width:min(960px,calc(100% - 48px));max-width:none;max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);margin:auto;padding:0;border:1px solid #ffffff30;background:#111;color:#fff;overflow:auto;box-shadow:0 24px 90px #0009}
.contact-map-dialog::backdrop{background:#000b;backdrop-filter:blur(5px)}
.contact-map-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:25px 28px 22px}
.contact-map-heading .eyebrow{display:block;font-size:11px;letter-spacing:1.6px;margin-bottom:9px}
.contact-map-heading h2{font-size:26px;line-height:1.25;margin:0}
.contact-map-heading p{font-size:15px;line-height:1.6;color:#bdbdbd;margin:10px 0 0}
.contact-map-close{display:grid;place-items:center;flex-shrink:0;width:42px;height:42px;padding:10px;border:1px solid #ffffff35;background:#1b1b1b;color:#fff;cursor:pointer}
.contact-map-close svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5}
.contact-map-close:hover{border-color:var(--accent);color:var(--accent)}
.contact-map-dialog :focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.contact-map-interactive{display:block;width:100%;height:clamp(240px,48vh,440px);height:clamp(240px,48dvh,440px);border:0;background:#e6e6e3}
.contact-map-actions{padding:22px 28px 26px;border-top:1px solid var(--line)}
.contact-map-actions p{margin:0 0 16px;color:#bdbdbd;font-size:15px;line-height:1.5}
.contact-map-actions>div{display:flex;flex-wrap:wrap;align-items:center;gap:18px 26px}
.contact-map-actions .button{display:inline-flex;align-items:center;gap:10px;padding:14px 22px;font-size:14px}
.contact-map-actions .text-link{font-size:13px}
.contact-map-is-open,.contact-map-is-open body{overflow:hidden}
@media(max-width:600px){.contact-map-preview{height:190px}.contact-map-dialog{width:calc(100% - 24px);max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px)}.contact-map-heading{padding:20px;gap:12px}.contact-map-heading h2{font-size:22px}.contact-map-heading p{font-size:14px}.contact-map-close{width:38px;height:38px}.contact-map-interactive{height:38vh;height:38dvh;min-height:220px}.contact-map-actions{padding:20px}.contact-map-actions>div{gap:18px}.contact-map-actions .button{width:100%;justify-content:center}.contact-map-actions .text-link{margin:auto}}
@media(prefers-reduced-motion:reduce){.contact-map-caption{transition:none}}
