/* The entrance road is map geometry; utility numbers mark their source points. */
#psInfrastructure, #psInfrastructure * { pointer-events: none; }
#psLandmarks, #psLandmarks * { pointer-events: none; }
#psLandmarks .ps-bridge-landmark, #psLandmarks .ps-bridge-landmark * { pointer-events: auto; cursor: pointer; }
.ps-bridge-card-background { fill: #fffef4; fill-opacity: .96; stroke: #748772; stroke-width: 1; }
.ps-bridge-landmark:hover .ps-bridge-card-background, .ps-bridge-landmark:focus-visible .ps-bridge-card-background { stroke: #b29657; stroke-width: 2; }
.ps-bridge-panorama-pill { fill: #dec68e; stroke: #fffef4; stroke-width: 1; }
.ps-bridge-panorama-degree { fill: #234b39; font: 700 9px Arial, sans-serif; }
.ps-bridge-logo-background { fill: #123b37; }
.ps-bridge-name { fill: #536b56; font: 600 10px Arial, sans-serif; letter-spacing: .6px; }
.ps-bridge-description { fill: #234b39; font: 600 13px Arial, sans-serif; }
.ps-map[data-season="winter"] .ps-bridge-card-background { fill: #fff; stroke: #75909b; }
.ps-entrance-shoulder, .ps-entrance-surface, .ps-entrance-junction-verge {
  fill: none; stroke-linecap: butt; stroke-linejoin: round;
}
.ps-entrance-shoulder { stroke: #948f72; stroke-opacity: .68; filter: url(#ps-entrance-verge-feather); }
.ps-entrance-surface { stroke: url(#ps-entrance-asphalt); }
.ps-entrance-junction { fill: url(#ps-entrance-asphalt); }
.ps-entrance-junction-verge { stroke: #948f72; stroke-width: 3; stroke-opacity: .68; filter: url(#ps-entrance-verge-feather); }
.ps-map[data-season="winter"] .ps-entrance-shoulder,
.ps-map[data-season="winter"] .ps-entrance-junction-verge { stroke: #e5ecef; stroke-opacity: .85; }
.ps-map[data-season="winter"] .ps-entrance-surface { stroke: url(#ps-entrance-asphalt-winter); }
.ps-map[data-season="winter"] .ps-entrance-junction { fill: url(#ps-entrance-asphalt-winter); }
.ps-infrastructure-badge circle { fill: #fffef4; stroke: #355641; stroke-width: 1.5; }
.ps-infrastructure-badge text { fill: #294d39; font: 700 12px Arial, sans-serif; }
.ps-infrastructure-key {
  display: flex; flex-wrap: nowrap; gap: 8px 20px; margin: 0 0 14px; padding: 0;
  max-width: 100%; overflow-x: auto; scrollbar-width: thin;
  color: #49624e; list-style: none; font-family: inherit; font-size: 11px; line-height: 1.6;
}
.ps-infrastructure-key li { display: flex; flex: 0 0 auto; align-items: center; gap: 6px; min-width: 0; }
.ps-infrastructure-key-number {
  display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px;
  flex: 0 0 18px; border: 1px solid #bacbb0; border-radius: 50%; background: #fffef4;
  color: #355641; font: 700 10px Arial, sans-serif;
}
.ps-infrastructure-key svg { width: 17px; height: 17px; flex: 0 0 17px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.ps-infrastructure-key-label { min-width: 0; white-space: nowrap; }
@media (max-width: 760px) {
  .ps-infrastructure-key { gap: 7px 14px; font-size: 10px; margin-bottom: 12px; }
  #planSelector .ps-infrastructure-key { gap: 8px; font-size: 12px; }
  .ps-infrastructure-key li { gap: 4px; }
  .ps-infrastructure-key-number { width: 16px; height: 16px; flex-basis: 16px; }
  .ps-infrastructure-key svg { width: 14px; height: 14px; flex-basis: 14px; }
}
