.ai-office-map{--ink:#edf5ff;--accent:#81e8f1;--line:#ffffff24;font-family:var(--ai-font-body);background:#142440;border:1px solid var(--line);color:var(--ink);overflow:hidden}
.ai-office-map *{box-sizing:border-box}.ai-office-map [hidden]{display:none!important}.ai-office-map button,.ai-office-map a{font:inherit}.ai-office-map button{cursor:pointer}.ai-office-map button:focus-visible,.ai-office-map a:focus-visible,.ai-office-map__canvas:focus-visible{outline:3px solid #8ceffa;outline-offset:-3px}
.ai-office-map__stage{display:grid;grid-template-columns:1fr}.ai-office-map__map-wrap{position:relative;min-width:0;height:clamp(390px,43vw,610px);background:radial-gradient(ellipse at 50% 55%,#203d60 0%,#182c49 65%,#142440 100%)}
.ai-office-map__canvas{position:absolute;inset:0;cursor:grab}.ai-office-map__canvas:active{cursor:grabbing}.ai-office-map__canvas .ol-viewport{position:absolute!important;inset:0}
.ai-office-map__canvas .ol-zoom{top:22px;left:22px;background:#0f1c32e8;border:1px solid #ffffff26;padding:3px;border-radius:0}.ai-office-map__canvas .ol-control button{background:transparent;color:#e1f9ff;width:33px;height:33px;font-size:21px;border-radius:0}.ai-office-map__canvas .ol-control button:hover{background:#ffffff18}
.ai-office-map__fullscreen,.ai-office-map__reset{position:absolute;z-index:3;top:22px;border:1px solid #ffffff26;background:#0f1c32e8;padding:12px 16px;font-size:var(--ai-type-label-size)!important;color:#dfefff;white-space:nowrap}
.ai-office-map__reset{right:22px}.ai-office-map__fullscreen{right:205px}.ai-office-map__fullscreen:hover,.ai-office-map__reset:hover{background:#203d60}
.ai-office-map__hint{position:absolute;bottom:18px;left:24px;margin:0;color:#9dbbd2;font-size:var(--ai-type-small-size);pointer-events:none}.ai-office-map__credit{position:absolute;bottom:18px;right:24px;color:#8fa9c0;text-decoration:none;font-size:var(--ai-type-small-size)!important}
.ai-office-map__label{background:#0d1a2fe8;border:1px solid #82def328;color:#eefaff;padding:8px 12px;font-size:var(--ai-type-label-size)!important;box-shadow:0 6px 16px #0002;white-space:nowrap;cursor:pointer}
.ai-office-map__label:hover,.ai-office-map__label[aria-pressed=true]{background:#214361;border-color:#81e8f1;color:var(--ai-color-white)}
.ai-office-map__popup{background:#0d1a2f;color:var(--ai-color-white);border:1px solid #6dd5e8;box-shadow:0 6px 30px #4bddf333;display:grid;gap:5px;padding:12px 18px;text-align:center;position:relative;min-width:130px;pointer-events:none}.ai-office-map__popup strong{font-size:15px}.ai-office-map__popup span{font-size:var(--ai-type-label-size);color:#8de2f0}
.ai-office-map__details{padding:30px 32px 0;background:#101d34;color:#edf5ff;display:grid;grid-template-columns:minmax(230px,.7fr) 2fr;gap:18px 44px;min-width:0;min-height:350px;border-top:1px solid #ffffff24}
.ai-office-map__eyebrow{font-size:var(--ai-type-label-size);font-weight:600;letter-spacing:.12em;color:#81e8f1}.ai-office-map__details h3{font-size:30px;line-height:1.2;letter-spacing:-.03em;font-weight:500;margin:14px 0 18px}
.ai-office-map__intro p,.ai-office-map__address{font-size:var(--ai-type-body-size);line-height:var(--ai-type-copy-leading);color:#becddd;margin:14px 0}.ai-office-map__note{font-size:var(--ai-type-small-size);line-height:1.6;color:#96adc3;margin:12px 0}.ai-office-map__phone{display:block;color:var(--ai-color-white);text-decoration:none;font-size:15px!important;margin:12px 0}
.ai-office-map__directions{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#234c69;color:var(--ai-color-white);text-decoration:none;padding:13px 16px;font-size:var(--ai-type-label-size)!important;margin:18px 0 24px}.ai-office-map__directions:hover{background:#316989;color:var(--ai-color-white)}
.ai-office-map__list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 24px;align-content:start}.ai-office-map__list button{display:flex;justify-content:space-between;align-items:center;text-align:left;background:transparent;color:#edf5ff;border:0;border-top:1px solid #ffffff24;padding:18px 6px;font-size:var(--ai-type-control-size);gap:10px}.ai-office-map__list button small{display:block;font-size:var(--ai-type-control-size);color:#90aec9;margin-top:6px}.ai-office-map__list button:hover,.ai-office-map__list button[aria-pressed=true]{background:#81e8f10c;color:#81e8f1}
.ai-office-map__email{grid-column:1/-1;display:flex;justify-content:space-between;color:#81e8f1;text-decoration:none;font-size:14px!important;border-top:1px solid #ffffff24;padding:20px 0}
.ai-office-map__error{position:absolute;bottom:42px;left:24px;right:24px;z-index:3;background:#101d34;border:1px solid #ffffff30;padding:12px;font-size:var(--ai-type-label-size)}
.ai-office-map:fullscreen{border:0;overflow:auto;height:100%;width:100%}.ai-office-map:fullscreen .ai-office-map__map-wrap{height:65vh;min-height:380px}
@media(max-width:1000px){.ai-office-map__details{grid-template-columns:240px 1fr;gap:24px;padding:26px 24px 0}.ai-office-map__list{grid-template-columns:repeat(2,minmax(0,1fr))}.ai-office-map__label{font-size:var(--ai-type-label-size)!important;padding:7px 9px}}
@media(max-width:700px){.ai-office-map__map-wrap{height:360px}.ai-office-map__details{grid-template-columns:1fr;min-height:0;gap:12px;padding:26px 20px 0}.ai-office-map__list{gap:0 14px}.ai-office-map__list button{font-size:var(--ai-type-control-size);padding:16px 6px}.ai-office-map__label{display:none}.ai-office-map__reset{top:16px;right:14px;font-size:var(--ai-type-label-size)!important;padding:10px}.ai-office-map__fullscreen{top:16px;left:58px;right:auto;padding:10px}.ai-office-map__fullscreen span{display:none}.ai-office-map__canvas .ol-zoom{left:14px;top:16px}.ai-office-map__hint{bottom:36px;left:18px;font-size:var(--ai-type-small-size)}.ai-office-map__credit{bottom:14px;left:18px;right:auto}.ai-office-map:fullscreen .ai-office-map__map-wrap{height:55vh;min-height:320px}}
@media(prefers-reduced-motion:reduce){.ai-office-map *{scroll-behavior:auto!important}}
.ai-office-map__leaders{position:absolute;inset:0;width:100%;height:100%;max-width:none;pointer-events:none;overflow:hidden}.ai-office-map__leaders path{fill:none;stroke:#74d8ef;stroke-width:1;opacity:.65;vector-effect:non-scaling-stroke}

/* Keep office details beside the map, within one independently scrolling panel. */
.ai-office-map__stage{grid-template-columns:minmax(0,1fr) 320px;height:clamp(560px,48vw,660px)}
.ai-office-map__map-wrap{height:100%}
.ai-office-map__details{display:block;height:100%;min-height:0;padding:30px 24px 0;border-top:0;border-left:1px solid var(--line);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#657892 #101d34;scrollbar-gutter:stable}
.ai-office-map__list{grid-template-columns:1fr;gap:0;margin-top:24px}
.ai-office-map__list button{width:100%;padding:15px 6px}
.ai-office-map__email{margin-top:18px}
.ai-office-map__details [data-office-detail]{scroll-margin-top:24px}
.ai-office-map:fullscreen .ai-office-map__stage{height:100%}
.ai-office-map:fullscreen .ai-office-map__map-wrap{height:100%;min-height:0}
@media(max-width:1000px){
 .ai-office-map__stage{grid-template-columns:minmax(0,1fr) 280px}
 .ai-office-map__details{padding:26px 20px 0}
 .ai-office-map__fullscreen{right:184px;padding:12px}
 .ai-office-map__reset{right:16px;padding:12px}
}
@media(max-width:760px){
 .ai-office-map__stage{grid-template-columns:1fr;height:auto}
 .ai-office-map__map-wrap{height:360px}
 .ai-office-map__details{height:auto;max-height:440px;border-left:0;border-top:1px solid var(--line)}
 .ai-office-map__list{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}
 .ai-office-map__label{display:none}
 .ai-office-map__fullscreen{left:58px;right:auto;padding:10px}
 .ai-office-map__fullscreen span{display:none}
 .ai-office-map:fullscreen .ai-office-map__stage{height:auto}
 .ai-office-map:fullscreen .ai-office-map__map-wrap{height:55vh;min-height:320px}
}

/* Touch controls keep the visual map pins while the office list is the alternative. */
.ai-office-map__fullscreen,.ai-office-map__reset{min-width:44px;min-height:44px}
.ai-office-map__canvas .ol-zoom button{width:44px;height:44px;margin:0;display:block}
@media(max-width:760px){.ai-office-map__fullscreen{left:68px}}
