/* The map is an illustration of connections, not a live coverage display. */
#iranNetworkMap { position: relative; width: 100%; isolation: isolate; }
#iranNetworkMap > svg, #iranNetworkMap > img { display: block; width: 100%; height: auto; overflow: visible; }
#iranNetworkMap .iran-network-svg { font-family: Shabnam, Tahoma, sans-serif; }
#iranNetworkMap .network-geography { filter: drop-shadow(0 14px 22px #563a9e12); }
#iranNetworkMap .network-land { fill: url(#iranLandGradient); stroke: #bfb1dd; stroke-width: 1.5; stroke-linejoin: round; }
#iranNetworkMap .network-province { fill: none; stroke: #b9a7d1; stroke-width: .7; stroke-linejoin: round; opacity: .5; }
#iranNetworkMap .network-grid { fill: url(#iranMapDots); opacity: .4; }
#iranNetworkMap .network-route-base { fill: none; stroke: #ae97d0; stroke-width: 1.15; stroke-dasharray: 3 5; opacity: .43; }
#iranNetworkMap .network-route-line { fill: none; stroke: url(#iranRouteGradient); stroke-width: 1.9; opacity: .17; transition: opacity .45s, stroke-width .45s; }
#iranNetworkMap .network-route-trail { fill: none; stroke: #25ae98; stroke-width: 3; stroke-linecap: round; stroke-dasharray: 3 97; stroke-dashoffset: 100; opacity: 0; animation: iranRouteTravel 7s linear infinite; transition: opacity .4s; }
#iranNetworkMap [data-route].is-active .network-route-line { opacity: .85; stroke-width: 2; }
#iranNetworkMap [data-route].is-active .network-route-trail { opacity: .9; }
#iranNetworkMap .network-city { cursor: pointer; outline: none; -webkit-tap-highlight-color: transparent; }
#iranNetworkMap .network-city-hit { fill: transparent; }
#iranNetworkMap .network-city-halo { fill: #7950bd; opacity: .07; transition: fill .3s, opacity .3s; }
#iranNetworkMap .network-city-pulse { fill: none; stroke: #9271be; stroke-width: 1; opacity: .55; transform-box: fill-box; transform-origin: center; animation: iranCityPulse 4.2s ease-out infinite; }
#iranNetworkMap .network-city-dot { fill: #7250a8; stroke: #fff; stroke-width: 2.6; transition: fill .3s, r .3s; }
#iranNetworkMap .network-city-ring { fill: none; stroke: #7250a8; stroke-width: 1.2; opacity: 0; transition: opacity .25s; }
#iranNetworkMap .network-city-label-bg { fill: #fff; stroke: #e5dfec; stroke-width: .7; opacity: .87; transition: fill .3s, stroke .3s; }
#iranNetworkMap .network-city-label { fill: #59496f; font-size: 11px; font-weight: 500; text-anchor: middle; direction: rtl; pointer-events: none; transition: fill .3s; }
#iranNetworkMap .network-city:hover .network-city-halo, #iranNetworkMap .network-city.is-active .network-city-halo { fill: #35b39c; opacity: .16; }
#iranNetworkMap .network-city:hover .network-city-dot, #iranNetworkMap .network-city.is-active .network-city-dot { fill: #20a88e; }
#iranNetworkMap .network-city.is-active .network-city-ring { opacity: .65; stroke: #20a88e; }
#iranNetworkMap .network-city.is-active .network-city-label-bg, #iranNetworkMap .network-city:hover .network-city-label-bg { fill: #f1fbf6; stroke: #a1d9c9; opacity: 1; }
#iranNetworkMap .network-city.is-active .network-city-label { fill: #166c5d; font-weight: 700; }
#iranNetworkMap .network-city:focus-visible .network-city-ring { opacity: 1; stroke: #63419d; stroke-width: 2.6; }
#iranNetworkMap .network-city:focus-visible .network-city-label-bg { stroke: #63419d; stroke-width: 1.5; }
#iranNetworkMap .network-water-label { font-size: 10px; fill: #b4a8c2; letter-spacing: .2px; direction: rtl; text-anchor: middle; }
#iranNetworkMap .network-coordinate { fill: #ad9cbd; font-size: 8px; font-family: Arial, sans-serif; letter-spacing: 1.5px; }
#iranNetworkMap .network-water-line { fill: none; stroke: #d8d0e2; stroke-width: .8; }
#iranNetworkMap .network-compass { fill: none; stroke: #9c88b5; stroke-width: 1; }
#iranNetworkMap .network-compass-label { font-size: 9px; fill: #9c88b5; font-family: Arial, sans-serif; text-anchor: middle; }
.landing-page.motion-paused #iranNetworkMap *, #iranNetworkMap .is-motion-paused * { animation-play-state: paused !important; }
@keyframes iranRouteTravel { to { stroke-dashoffset: 0; } }
@keyframes iranCityPulse { 0% { transform: scale(.78); opacity: .5; } 75%, 100% { transform: scale(1.6); opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
    #iranNetworkMap * { animation: none !important; transition: none !important; }
    #iranNetworkMap .network-route-trail { display: none; }
    #iranNetworkMap .network-city-pulse { opacity: .15; }
}
@media (max-width: 600px) {
    #iranNetworkMap .network-city-label { font-size: 12px; }
    #iranNetworkMap .network-city-hit { r: 29px; }
    #iranNetworkMap .network-water-label { font-size: 11px; }
}
