/* 3P — animated land-map hero background styles (vanilla, CSP-safe).
   Pairs with 3p-landmap.js. Scoped to .hero-bg so it only affects the hero. */
.hero-bg .landmap{position:absolute;inset:0;overflow:hidden;background:radial-gradient(120% 95% at 30% 22%, #14463e 0%, #0d3530 62%)}
.hero-bg .landmap svg{position:absolute;top:50%;left:50%;width:122%;height:122%;transform:translate(-50%,-50%)}
.hero-bg .landmap--mobile{background:radial-gradient(120% 80% at 50% 28%, #14463e 0%, #0d3530 70%)}
.hero-bg .landmap--mobile svg{top:0;left:0;width:100%;height:100%;transform:none}
/* hide the CMS hero <img> when JS mounts the map (kept in DOM for no-JS / SEO) */
.hero-bg .landmap ~ img{opacity:0}

.lm-layer{will-change:transform}
.lm-road-dash{stroke-dasharray:2 16;stroke-linecap:round}
@keyframes lm-dash{to{stroke-dashoffset:-180}}
@keyframes lm-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes lm-pulse{0%{transform:scale(.5);opacity:.55}70%{transform:scale(2.4);opacity:0}100%{opacity:0}}
@keyframes lm-breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}
@media (prefers-reduced-motion: no-preference){
  .lm-road-dash{animation:lm-dash 5.5s linear infinite}
  .lm-pin{transform-box:fill-box;transform-origin:bottom center;animation:lm-bob 4.6s ease-in-out infinite}
  .lm-pulse{transform-box:fill-box;transform-origin:center;animation:lm-pulse 3.2s ease-out infinite}
  .lm-contours{transform-box:fill-box;transform-origin:center;animation:lm-breathe 16s ease-in-out infinite}
}
