/* The regional alternative is scoped to pages that include its preview controls. */
.index-v4 .v4-earth-switch { display:flex; justify-content:center; gap:4px; width:max-content; margin:28px auto 0; padding:4px; border:1px solid #dce0e3; border-radius:30px; }
.index-v4 .v4-earth-switch button { border:0; background:transparent; color:#626a72; border-radius:24px; padding:9px 17px; font:500 12px/1.5 var(--font); cursor:pointer; }
.index-v4 .v4-earth-switch button[aria-pressed="true"] { color:#fff; background:#16191b; }
.index-v4.navy-mode .v4-earth-switch button[aria-pressed="true"] { background:var(--navy); }
.index-v4 :is(.v4-regional-map,.v4-globe)[hidden] { display:none!important; }
.index-v4 .v4-regional-map { position:relative; width:min(1440px,calc(100vw - 48px)); max-width:none; height:clamp(500px,48vw,680px); left:50%; transform:translateX(-50%); margin:12px 0 24px; isolation:isolate; }
.index-v4 .v4-regional-map canvas { display:block; position:relative; z-index:1; width:100%; height:100%; touch-action:pan-y; cursor:default; }
.index-v4 .v4-map-shadow { position:absolute; z-index:0; left:12%; right:12%; top:48%; bottom:18%; background:radial-gradient(ellipse,#3551741c 0%,#5c7b9e09 48%,transparent 72%); transform:translateY(22px); filter:blur(26px); pointer-events:none; }
.index-v4 .v4-map-labels,.index-v4 .v4-map-leaders { position:absolute; inset:0; z-index:2; width:100%; height:100%; pointer-events:none; overflow:visible; }
.index-v4 .v4-map-leaders line { stroke:#416288; stroke-width:1; opacity:.65; }
.index-v4 .v4-map-labels button { position:absolute; pointer-events:auto; display:flex; gap:8px; align-items:center; border:1px solid #e3e8ee; border-radius:28px; padding:9px 15px; background:#fff; color:#111419; font:500 14px/1.2 var(--font); box-shadow:0 4px 18px #213e4e10; cursor:pointer; white-space:nowrap; }
.index-v4 .v4-map-labels button span { color:#78808a; font-size:11px; font-weight:400; }
.index-v4 .v4-map-labels button::before { content:""; width:5px; height:5px; background:#2456bd; border-radius:50%; }
.index-v4 .v4-map-labels button[aria-pressed="true"] { border-color:#2855ae; box-shadow:0 0 0 3px #2855ae16; }
.index-v4 .v4-map-labels button[hidden] { display:none; }
.index-v4 .v4-map-tools { position:absolute; z-index:3; display:flex; align-items:center; justify-content:space-between; gap:20px; left:48px; right:48px; bottom:16px; font-size:11px; color:#707780; }
.index-v4 .v4-map-tools > div { display:flex; align-items:center; gap:8px; }
.index-v4 .v4-map-tools button { background:#fff; border:1px solid #dce0e3; border-radius:50%; width:34px; height:34px; color:#34404c; font:400 17px/1 var(--font); cursor:pointer; }
.index-v4 .v4-map-tools [data-map-reset] { border:0; width:auto; border-radius:0; font-size:11px; margin-left:8px; }
.index-v4 .v4-map-tools button:hover:not(:disabled) { background:#fff; border-color:#aeb8c3; }
.index-v4 .v4-map-tools button:disabled { background:#fff; color:#aeb4bb; cursor:default; opacity:1; }
.index-v4 .v4-regional-map :is(canvas,.v4-map-labels,.v4-map-leaders,.v4-map-shadow,.v4-map-tools) { visibility:hidden; opacity:0; }
.index-v4 .v4-regional-map[data-map-state="ready"] :is(canvas,.v4-map-labels,.v4-map-leaders,.v4-map-shadow,.v4-map-tools) { visibility:visible; opacity:1; }
.index-v4 .v4-map-fallback { display:none; width:100%; height:100%; object-fit:contain; }
.index-v4 .v4-regional-map[data-map-state="fallback"] .v4-map-fallback { display:block; }
.index-v4 .v4-regional-map[data-map-state="fallback"] canvas { display:none; }
.index-v4 .v4-map-loading { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; color:var(--ink-2,#62686d); font-size:12px; pointer-events:none; }
.index-v4 .v4-map-loading::before { content:""; display:block; flex:none; width:28px; height:28px; box-sizing:border-box; border:2px solid #e3e5e7; border-top-color:var(--ink,#101114); border-radius:50%; animation:matrix-regional-map-spin .8s linear infinite; }
body.navy-mode .index-v4 .v4-map-loading::before,body.navy-mode.index-v4 .v4-map-loading::before { border-top-color:var(--navy,#244dab); }
@keyframes matrix-regional-map-spin { to { transform:rotate(360deg); } }
@media(prefers-reduced-motion:reduce) { .index-v4 .v4-map-loading::before { animation:none; } }
.index-v4 .v4-regional-map:not([data-map-state="loading"]) .v4-map-loading { display:none; }
.index-v4 .v4-earth-switch button:focus-visible,.index-v4 .v4-regional-map :is(canvas,button):focus-visible { outline:2px solid #2855ae; outline-offset:4px; }
@media(max-width:900px) {
 .index-v4 .v4-regional-map { width:calc(100vw - 32px); margin-left:0; margin-right:0; height:clamp(350px,49vw,460px); }
 .index-v4 .v4-map-tools { left:16px; right:16px; }
}
@media(max-width:600px) {
 .index-v4 .v4-regional-map { height:clamp(270px,78vw,350px); margin-top:8px; margin-bottom:20px; }
 .index-v4 .v4-map-labels button { gap:5px; padding:7px 10px; font-size:12px; }
 .index-v4 .v4-map-labels button span { display:none; }
 .index-v4 .v4-map-tools { gap:8px; font-size:10px; }
 .index-v4 .v4-map-tools > div { gap:5px; }
 .index-v4 .v4-map-tools button { width:32px; height:32px; }
 .index-v4 .v4-earth-switch { margin-top:24px; }
}

/* Compact controls are specific to the Services V4 previews. */
.services-overview-v4 .v4-map-wheel-hint { position:absolute; bottom:62px; left:50%; transform:translateX(-50%); z-index:3; padding:4px 9px; border-radius:12px; background:#fffffff0; color:#626b75; font:400 11px/1.4 var(--font); white-space:nowrap; pointer-events:none; opacity:0; transition:opacity .18s ease; }
.services-overview-v4 .v4-regional-map[data-map-state="ready"]:is(:hover,:focus-within) .v4-map-wheel-hint { opacity:1; }
@media(pointer:coarse) { .services-overview-v4 .v4-map-wheel-hint { display:none; } }
.services-overview-v4 .v4-regional-map { height:clamp(460px,44vw,620px); }
.services-overview-v4 .v4-map-tools { justify-content:center; }
.services-overview-v4 .v4-map-tools [data-map-reset] { position:static; margin-left:0; width:34px; height:34px; border:1px solid #dce0e3; border-radius:50%; font-size:18px; display:grid; place-items:center; }
@media(max-width:900px) { .services-overview-v4 .v4-regional-map { height:clamp(325px,45vw,425px); } }
@media(max-width:600px) { .services-overview-v4 .v4-regional-map { height:clamp(250px,72vw,325px); } }
