/* Separate geographic vector, flags, editable labels and interactive routes. */
.contact-hero{position:relative;padding:48px 0 34px;min-height:0;background:radial-gradient(ellipse at 50% 40%,#fff 0,#f0f9ff 58%,#e8f5ff 100%);overflow:hidden}
.contact-hero>.wrap{width:100%;max-width:none}
.contact-hero h1{font-size:clamp(36px,3.7vw,60px);margin:0 20px 18px;letter-spacing:-.04em}
.contact-hero .eyebrow{margin-bottom:14px}
.contact-hero>.wrap>p{font-size:15px;max-width:760px;padding:0 24px;margin-bottom:0}
.contact-hero .button-row{margin:22px 0 0}
.contact-map-stage{position:relative;width:min(100%,1500px);aspect-ratio:1600/640;margin:12px auto 0;container-type:inline-size}
.contact-vector-map{width:100%;height:auto;opacity:.85}
.contact-map-routes{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.map-route{fill:none;stroke:#fff;stroke-width:2.4;filter:drop-shadow(0 0 3px #80c9ef);opacity:.85;transition:stroke .25s,stroke-width .25s}
.map-route.is-active{stroke:#47aeda;stroke-width:3.5}
.map-aura{fill:url(#bc-map-aura);transform-box:fill-box;transform-origin:center}
.map-ripple{fill:none;stroke:#6abada;stroke-width:1;opacity:0;transform-box:fill-box;transform-origin:center}
.map-dot{fill:#fff;stroke:#54b4df;stroke-width:2}
.map-countries{list-style:none;padding:0;margin:0}
.map-country{position:absolute;left:var(--x);top:var(--y);margin:0;transform:translate(var(--dx),var(--dy));z-index:2}
.map-country-label{display:flex;align-items:center;gap:9px;white-space:nowrap;border:1px solid #b8daee;border-radius:10px;background:#ffffffef;padding:6px 11px;color:#133456;font-size:clamp(11px,1.02vw,15px);font-weight:700;line-height:1.3;min-height:36px;box-shadow:0 4px 14px #4c9ac00a;transition:box-shadow .25s,border-color .25s,background .25s}
.map-country-label img{width:28px;height:21px;object-fit:contain;border-radius:2px}
.map-country-label:hover,.map-country-label:focus-visible,.map-country-label[aria-pressed=true]{border-color:#489fc4;background:#fff;box-shadow:0 5px 20px #459cbd26}
.contact-hero .contact-cards{width:calc(100% - 80px);max-width:1140px;margin:12px auto 0;gap:16px}
.contact-hero .contact-cards>div,.contact-hero .contact-cards>a{padding:20px;border-radius:18px}
.contact-hero .contact-cards p{font-size:12px}
.map-ready .map-point,.map-ready .map-country-label,.map-ready .map-route{opacity:0}
.map-playing .map-point{animation:map-point-in .3s ease var(--country-delay) both}
.map-playing .map-country-label{animation:map-label-in .35s ease calc(var(--country-delay) + .15s) both}
.map-playing .map-route{animation:map-point-in .45s ease var(--country-delay) both}
.map-playing .map-aura{animation:map-breathe 3.6s ease-in-out calc(var(--country-delay) + .3s) infinite}
.map-playing .map-ripple{animation:map-ripple 3.6s ease-out calc(var(--country-delay) + .3s) infinite}
@keyframes map-point-in{from{opacity:0}to{opacity:1}}
@keyframes map-label-in{from{opacity:0;translate:0 7px}to{opacity:1;translate:0 0}}
@keyframes map-breathe{0%,100%{transform:scale(.8);opacity:.5}50%{transform:scale(1.2);opacity:1}}
@keyframes map-ripple{0%{transform:scale(.6);opacity:0}18%{opacity:.45}85%,100%{transform:scale(2);opacity:0}}
@media(max-width:1100px){
 .contact-map-stage{margin-top:22px}
 .map-country-label{padding:5px 7px;gap:6px;font-size:11px}
 .map-country-label img{width:24px;height:18px}
}
@media(max-width:760px){
 .contact-hero{padding:35px 0 28px}
 .contact-hero>.wrap>p{font-size:14px;max-width:540px}
 .contact-hero h1{font-size:clamp(34px,7vw,44px)}
 .contact-map-stage{aspect-ratio:auto;margin-top:28px}
 .contact-map-routes{height:auto;aspect-ratio:1600/640;inset:0 0 auto}
 .contact-vector-map{opacity:1}
 .map-countries{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:20px 20px 8px;max-width:580px;margin:auto}
 .map-country{position:static;transform:none;min-width:0}
 .map-country-label{width:100%;min-height:46px;font-size:13px;gap:9px;padding:9px 11px;white-space:normal;text-align:left}
 .map-country-label img{width:28px;height:21px;flex-shrink:0}
 .contact-hero .contact-cards{width:calc(100% - 40px);grid-template-columns:1fr;margin-top:22px;max-width:540px;gap:10px}
 .contact-hero .contact-cards>div,.contact-hero .contact-cards>a{padding:16px}
}
@media(prefers-reduced-motion:reduce){.map-ready .map-point,.map-ready .map-country-label,.map-ready .map-route{opacity:1;animation:none}.map-playing .map-aura,.map-playing .map-ripple{animation:none}.map-country-label,.map-route{transition:none}}
