/* Geography from Natural Earth via geoBoundaries. All regions retain one shared projection and scale. */
.service-region .service-region-inner { grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:56px; }
.region-map-panel { min-width:0; width:100%; max-width:590px; margin-left:auto; }
.region-map-mount { width:100%; min-width:0; min-height:300px; }
.korea-region-map { display:block; width:100%; height:auto; max-height:490px; overflow:visible; }
.korea-region-map .map-province { fill:rgba(229,241,255,.10); stroke:#7799DD; stroke-width:.75; stroke-linejoin:round; }
.korea-region-map .map-service-area { fill:#7DB6E0; stroke:#D3EEFF; stroke-width:1; cursor:pointer; transition:fill .45s,stroke .45s; }
.korea-region-map .map-service-area.is-active { fill:#D9FFF0; stroke:#EFFFF8; stroke-width:1.6; }
.map-callout { cursor:pointer; }
.map-callout .map-leader { stroke:#9EC3F4; stroke-width:1.2; transition:stroke .3s; }
.map-callout .map-label-bg { fill:#2551C2; stroke:#87AAEA; stroke-width:.7; transition:fill .3s,stroke .3s; }
.map-callout text { fill:#E6F0FF; font-family:"Noto Sans KR",Arial,sans-serif; font-size:20px; font-weight:600; letter-spacing:-.04em; pointer-events:none; transition:fill .3s; }
.map-callout .map-dot { fill:#ECFAFF; }
.map-callout .map-dot-halo { fill:#CFFFF0; opacity:.12; }
.map-callout.is-active .map-leader { stroke:#D9FFF0; }
.map-callout.is-active .map-label-bg { fill:#D9FFF0; stroke:#F3FFFA; }
.map-callout.is-active text { fill:#124286; }
.map-callout.is-active .map-dot-halo { animation:region-map-glow 2.8s ease-in-out infinite; }
.region-map-panel[data-map-paused="true"] .map-dot-halo { animation:none; opacity:.22; }
@keyframes region-map-glow { 0%,100% { opacity:.15; } 50% { opacity:.65; } }
@media(max-width:1100px) {
  .service-region .service-region-inner { gap:36px; }
  .korea-region-map { max-height:445px; }
}
@media(max-width:760px) {
  .service-region .service-region-inner { grid-template-columns:minmax(0,1fr); gap:24px; }
  .region-map-panel { max-width:470px; margin:0 auto; }
  .region-map-mount { min-height:245px; }
  .korea-region-map { max-height:415px; }
}

@media(prefers-reduced-motion:reduce) {
  .korea-region-map .map-service-area,.map-callout .map-leader,.map-callout .map-label-bg,.map-callout text { transition:none; }
  .map-callout.is-active .map-dot-halo { animation:none; opacity:.22; }
}
@media(forced-colors:active) {
  .korea-region-map .map-province { fill:Canvas; stroke:CanvasText; }
  .korea-region-map .map-service-area { fill:Highlight; stroke:CanvasText; }
  .korea-region-map .map-service-area.is-active { fill:HighlightText; stroke:Highlight; stroke-width:2; }
  .map-callout .map-label-bg { fill:Canvas; stroke:CanvasText; }
  .map-callout text { fill:CanvasText; }
  .map-callout .map-leader { stroke:CanvasText; }
  .map-callout.is-active .map-label-bg { fill:Highlight; stroke:CanvasText; }
  .map-callout.is-active text { fill:HighlightText; }
}
.map-callout[role="button"]:focus { outline:none; }
.map-callout[role="button"]:focus-visible .map-label-bg { stroke:#FFFFFF; stroke-width:3.5; }
.map-label-hit-area { pointer-events:all; }
@media(forced-colors:active) { .map-callout[role="button"]:focus-visible .map-label-bg { stroke:HighlightText; stroke-width:4; } }
