.location-region .island-card--map { width:min(600px,calc(100% - 12px)); height:510px; top:50%; background:#0c2635; }
.location-region .island-story:has(.island-card--map.is-open) { height:540px; }
.island-card--map [data-location-map] { height:100%; }
.island-card--map .island-card__close { top:12px; right:12px; width:38px; height:38px; font-size:26px; }
.location-map { height:100%; display:flex; flex-direction:column; color:#f5f8f9; }
.location-map__heading { padding:17px 62px 13px 20px; }
.location-map__heading small { display:block; font-size:10px; letter-spacing:.1em; color:#9bb7c5; }
.location-map__heading h3 { margin:5px 0 0; font:500 23px/1.1 var(--font-body,Arial,sans-serif); letter-spacing:-.02em; }
.location-map__viewport { position:relative; flex:1; min-height:130px; overflow:hidden; background:#e8eee9; }
.location-map__tiles { position:absolute; inset:0; }
.location-map__tiles img { position:absolute; width:256px; height:256px; max-width:none; }
.location-map__pin { position:absolute; left:50%; top:50%; width:30px; height:40px; transform:translate(-50%,-100%); filter:drop-shadow(0 3px 4px #163a4d55); }
.location-map__scale { position:absolute; left:14px; bottom:11px; border:solid #123448; border-width:0 2px 2px; height:20px; text-align:center; font:11px/16px Arial,sans-serif; color:#123448; background:#ffffffc9; }
.location-map__status { position:absolute; z-index:2; top:8px; left:10px; right:10px; margin:0; padding:7px 10px; border-radius:6px; background:#fff; color:#183b4c; font:12px/1.4 Arial,sans-serif; }
.location-map__zoom { position:absolute; top:12px; right:12px; display:grid; border-radius:10px; overflow:hidden; box-shadow:0 2px 8px #12344826; }
.location-map__zoom button { display:grid; place-items:center; width:44px; height:44px; padding:0; border:0; background:#fff; color:#123448; font:24px/1 Arial,sans-serif; cursor:pointer; }
.location-map__zoom button + button { border-top:1px solid #d2dce0; }
.location-map__zoom button:disabled { color:#aaa; cursor:default; }
.location-map__overview { position:absolute; bottom:12px; right:12px; min-height:36px; border:0; border-radius:20px; padding:8px 14px; background:#fff; color:#123448; font:12px/1.3 Arial,sans-serif; cursor:pointer; }
.location-map button:focus-visible { outline:3px solid #278fb4; outline-offset:-3px; }
.location-map__attribution { padding:4px 12px; font:10px/1.3 Arial,sans-serif; color:#b3c6cd; text-align:right; }
.location-map__attribution a { color:inherit; text-decoration:underline; }
.location-map__actions { padding:7px 16px 13px; display:flex; flex-direction:column; gap:9px; text-align:center; }
.location-map__open { display:flex; align-items:center; justify-content:space-between; min-height:44px; padding:10px 17px; border-radius:24px; background:#91d4e6; color:#092838; font-size:14px; font-weight:600; }
.location-map__details { color:#b9d5df; font-size:11px; }
.location-map a:focus-visible { outline:2px solid white; outline-offset:3px; }
.location-map__fallback { display:flex; height:100%; flex-direction:column; justify-content:center; align-items:center; gap:20px; padding:20px; }
@media(max-width:900px) { .location-region .island-card--map { top:12px; left:12px; right:12px; width:calc(100% - 24px); transform:translate3d(0,0,0) scale(.96); } .location-region .island-card--map.is-open { transform:none; } }
@media(max-width:760px) { .location-region .island-story:has(.island-card--map.is-open) { height:500px; } .location-region .island-card--map { height:470px; } }
@media(max-height:600px) and (min-width:761px) { .location-region .island-card--map { height:420px; } }
