/* Section 03: a geographic coverage atlas in WindWay's existing palette. */
.corridor-heading .corridor-title-grid { grid-template-columns: 1.12fr .88fr; gap: clamp(36px, 7vw, 100px); }
.corridor-title-grid h2 { letter-spacing: -.055em; }
.corridor-title-grid h2 em { color: var(--signal); font-style: normal; }
.corridor-explainer > span { color: var(--signal); font-size: .875rem; font-weight: 800; letter-spacing: .1em; }
.corridor-explainer > p { margin: 18px 0; max-width: 520px; color: #b7beb7; line-height: 1.7; }
.corridor-explainer > strong { display: block; font-size: 1rem; font-weight: 700; }
.corridor-explorer { margin-top: 56px; border: 1px solid #353e35; background: #101511; }
.corridor-toolbar { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); border-bottom: 1px solid #353e35; }
.corridor-toolbar > .corridor-picker-context { grid-column: 1 / -1; border-top: 1px solid #353e35; padding-block: 18px; flex-direction: row; align-items: center; justify-content: space-between; gap: 20px; }
.corridor-toolbar > .corridor-picker-context p { margin: 0; }
.corridor-picker { min-width: 0; padding: 26px 32px; display: block; border-right: 1px solid #353e35; }
.corridor-picker > span:first-child { display: block; color: #a6b19f; font-size: .875rem; font-weight: 750; letter-spacing: .08em; }
.corridor-select-wrap { position: relative; display: block; margin-top: 11px; }
.corridor-select-wrap select { width: 100%; min-height: 48px; padding: 6px 44px 6px 0; appearance: none; border: 0; border-radius: 0; background: transparent; color: var(--signal); font-family: inherit; font-size: clamp(1.2rem, 2vw, 1.8rem); font-weight: 750; line-height: 1.3; cursor: pointer; }
.corridor-select-wrap select option { background: #101511; color: #f2f4ee; font-size: 1rem; }
.corridor-select-wrap select:focus-visible { outline: 2px solid var(--signal); outline-offset: 7px; }
.corridor-select-wrap > svg { position: absolute; top: 50%; right: 0; width: 28px; height: 28px; transform: translateY(-50%); pointer-events: none; fill: none; stroke: var(--signal); stroke-width: 1.7; }
.corridor-picker-context { display: flex; flex-direction: column; justify-content: center; padding: 26px 32px; }
.corridor-nameplate { font-size: .875rem; font-weight: 850; letter-spacing: .11em; }
.corridor-picker-context p { margin: 12px 0 0; font-size: 1rem; line-height: 1.5; color: #aeb9aa; }
.corridor-map-figure { margin: 0; background: radial-gradient(ellipse at 58% 32%, #1a2418 0%, #111711 48%, #101511 80%); }
.map-topline { padding: 21px 28px 0; display: flex; justify-content: space-between; align-items: center; gap: 20px; }
.map-topline > span { color: #a6b19f; font-size: .75rem; letter-spacing: .16em; font-weight: 700; }
.map-motion-toggle { min-height: 40px; display: inline-flex; align-items: center; justify-content: center; gap: 9px; padding: 7px 12px; border: 1px solid #495342; background: transparent; color: #d1d9ca; font-size: .875rem; cursor: pointer; }
.map-motion-toggle:hover { border-color: var(--signal); color: var(--signal); }
.map-motion-toggle:focus-visible, .corridor-overview-select:focus-visible { outline: 2px solid var(--signal); outline-offset: 4px; }
.map-motion-toggle:disabled { opacity: .55; cursor: default; }
.map-motion-icon { width: 9px; height: 11px; border-inline: 2px solid currentColor; }
.map-motion-toggle[aria-pressed="true"] .map-motion-icon { width: 0; height: 0; border: 6px solid transparent; border-left: 9px solid currentColor; border-right: 0; }
.map-canvas { position: relative; }
.europe-map { display: block; width: 100%; height: auto; overflow: visible; }
.map-graticule { stroke: #71806b; stroke-opacity: .13; stroke-width: .65; }
.map-country { fill: #283128; stroke: #53604d; stroke-width: .9; stroke-linejoin: round; transition: fill .65s ease, stroke .65s ease, opacity .65s ease; }
.map-country[data-active="true"][data-region="origin"] { fill: #c7ff38; stroke: #dfff88; stroke-width: 1.3; }
.map-country[data-active="true"][data-region="destination"] { fill: #344721; stroke: #b7e344; stroke-width: 1.3; }
.map-hatching { pointer-events: none; transition: opacity .65s ease; }
.map-connections { opacity: 1; transition: opacity .5s ease; }
.route-track { fill: none; stroke: #c7ff38; stroke-width: 1.3; stroke-opacity: .48; }
.route-flow { fill: none; stroke-width: 2.4; stroke-linecap: round; stroke-dasharray: 8 31; animation: corridor-flow 4.5s linear infinite; }
.route-out { stroke: #c7ff38; }
.route-back { stroke: #f2f4ee; stroke-width: 1.4; stroke-dasharray: 4 35; opacity: .85; }
.route-endpoint { fill: #d7ff78; stroke: #172015; stroke-width: 2; }
.map-hub { fill: #101511; stroke: #f2f4ee; stroke-width: 2; }
.map-hub-ring { fill: none; stroke: #c7ff38; stroke-width: 1; opacity: .55; }
.map-country-labels { font-family: Helvetica, Arial, sans-serif; font-size: 13px; font-weight: 700; letter-spacing: 1.1px; text-anchor: middle; pointer-events: none; }
.map-country-label { fill: #819077; font-size: 12px; opacity: 0; transition: opacity .5s ease, fill .5s ease; }
.map-country-label[data-context="true"] { opacity: 1; }
.map-country-label[data-active="true"] { fill: #f2f4ee; font-size: 13px; opacity: 1; paint-order: stroke; stroke: #26321e; stroke-width: 3px; }
.context-country-label { fill: #819077; font-size: 12px; }
.map-region-annotations { display: none; }
.region-leader { fill: none; stroke: #c7ff38; stroke-width: 1; opacity: .6; }
.map-region-name { fill: #ecf4e1; font: 700 28px Helvetica, Arial, sans-serif; letter-spacing: -.5px; }
.map-region-name.is-long { font-size: 24px; }
.map-region-count { fill: #adbe9e; font: 14px Helvetica, Arial, sans-serif; }
.map-editorial-note { position: absolute; left: 5.4%; top: 5%; width: min(38%, 430px); pointer-events: none; transition: opacity .3s ease; }
#corridor-editorial-title { margin: 0 0 19px; color: #f2f4ee; font-size: clamp(2rem, 3.9vw, 4.1rem); font-weight: 700; line-height: .98; letter-spacing: -.05em; }
#corridor-editorial-title.is-long { font-size: clamp(1.7rem, 3vw, 3rem); }
#corridor-editorial-title::after { content: ''; display: block; width: 72px; height: 1px; margin-top: 22px; background: var(--signal); }
.map-editorial-note > small { display: block; max-width: 100%; min-height: 3em; color: #92a085; font-size: .875rem; font-weight: 600; line-height: 1.5; letter-spacing: .035em; overflow-wrap: anywhere; }
.map-caption { display: flex; align-items: center; justify-content: space-between; gap: 22px; padding: 20px 28px 24px; border-top: 1px solid #2e382b; }
.map-legend { display: flex; flex-wrap: wrap; gap: 12px 25px; }
.map-legend > span { display: inline-flex; align-items: center; gap: 9px; }
.map-legend i { display: inline-block; width: 12px; height: 12px; flex-shrink: 0; }
.legend-fill { background: var(--signal); border: 1px solid var(--signal); transition: background .5s ease; }
.legend-line { border: 1px solid #718268; background: #283128; }
.legend-hatched { border: 1px solid #b7e344; background: repeating-linear-gradient(120deg, #344721 0 3px, #85a82d 3px 4px); }
.map-legend b, .map-direction-note { color: #aebba6; font-size: .875rem; font-weight: 400; line-height: 1.5; }
.map-direction-note { max-width: 370px; text-align: right; }
.corridor-coverage { border-top: 1px solid #3a4731; display: grid; grid-template-columns: minmax(0,1fr) 168px minmax(0,1fr); }
.corridor-region { padding: 31px 35px; background: #151f10; }
.corridor-region-destination { background: #121a11; }
.corridor-region-kicker { color: #b9dc86; font-size: .875rem; letter-spacing: .1em; font-weight: 700; }
.corridor-region h3, .corridor-region h3.is-long { margin: 15px 0 12px; min-height: 2.4em; font-size: clamp(1.5rem, 2.3vw, 2rem); letter-spacing: -.025em; line-height: 1.2; overflow-wrap: anywhere; }
.corridor-region p { color: #c1cbb9; margin: 0; min-height: 4.8em; font-size: 1rem; line-height: 1.6; }
.corridor-two-way { padding: 23px 12px; display: flex; flex-direction: column; align-items: center; justify-content: center; border-inline: 1px solid #3a4731; text-align: center; }
.corridor-two-way > span { color: var(--signal); font-size: 4rem; line-height: 1; }
.corridor-two-way strong { margin-top: 12px; font-size: .875rem; }
.corridor-two-way small { margin-top: 5px; font-size: .875rem; color: #aebba6; }
.corridor-overview-copy { padding: 32px 35px; border-top: 1px solid #353e35; }
.corridor-overview-copy > span { color: var(--signal); font-size: .875rem; letter-spacing: .1em; font-weight: 750; }
.corridor-overview-copy h3 { font-size: clamp(1.8rem, 3vw, 3rem); margin: 15px 0; letter-spacing: -.03em; }
.corridor-overview-copy p { max-width: 730px; color: #bdc6b6; font-size: 1rem; line-height: 1.65; }
.corridor-overview-select { display: inline-flex; align-items: center; justify-content: space-between; gap: 25px; min-height: 48px; max-width: 100%; text-align: left; background: var(--signal); color: var(--ink); border: 1px solid var(--signal); padding: 10px 16px; margin-top: 6px; font: 750 1rem Helvetica, Arial, sans-serif; cursor: pointer; }
.corridor-overview-select:hover { background: #dcff83; }
.corridor-footnote { padding: 20px 28px; display: flex; justify-content: space-between; gap: 22px; border-top: 1px solid #30392c; align-items: center; }
.corridor-footnote p { color: #a6b19f; font-size: .875rem; line-height: 1.6; margin: 0; max-width: 750px; }
.corridor-footnote a { flex-shrink: 0; color: #91a383; font-size: .75rem; text-decoration: underline; text-underline-offset: 3px; }
.corridor-explorer [hidden] { display: none !important; }
.corridor-explorer[data-corridor="overview"] .map-connections,
.corridor-explorer[data-corridor="overview"] .map-hatching,
.corridor-explorer[data-corridor="overview"] .map-region-annotations,
.corridor-explorer[data-corridor="overview"] .map-editorial-note { opacity: 0; }
.corridor-explorer[data-corridor="overview"] .legend-fill { background: var(--signal); border-color: var(--signal); }
.corridor-explorer[data-motion="paused"] .route-flow,
.corridor-explorer[data-corridor="overview"] .route-flow,
.corridor-explorer.is-offscreen .route-flow { animation-play-state: paused; }
@keyframes corridor-flow { to { stroke-dashoffset: -156; } }
@media (max-width: 1080px) {
  .corridor-heading .corridor-title-grid { gap: 40px; grid-template-columns: 1fr .9fr; }
  .corridor-picker, .corridor-picker-context { padding: 24px; }
  .corridor-coverage { grid-template-columns: minmax(0,1fr) 140px minmax(0,1fr); }
  .corridor-region { padding: 28px 24px; }
  .map-caption { align-items: flex-start; }
}
@media (max-width: 820px) {
  .corridor-heading .corridor-title-grid { grid-template-columns: minmax(0,1fr); gap: 28px; }
  .corridor-explainer > p { max-width: 630px; }
  .corridor-toolbar { grid-template-columns: minmax(0,1fr); }
  .corridor-picker { border-right: 0; }
  .corridor-home-picker { border-bottom: 1px solid #353e35; }
  .corridor-picker-context { padding: 16px 24px; border-top: 1px solid #30392c; flex-direction: row; align-items: center; justify-content: space-between; gap: 18px; }
  .corridor-picker-context p { margin: 0; text-align: right; font-size: .875rem; }
  .corridor-nameplate { font-size: .75rem; }
  .map-caption { flex-direction: column; gap: 12px; }
  .map-direction-note { text-align: left; max-width: none; }
  .map-editorial-note { left: 4%; top: 5%; }
  #corridor-editorial-title, #corridor-editorial-title.is-long { font-size: clamp(1.55rem, 4vw, 2.2rem); }
  .map-editorial-note > small { display: none; }
  .corridor-coverage { grid-template-columns: minmax(0,1fr) 116px minmax(0,1fr); }
  .corridor-region { padding: 27px 20px; }
  .corridor-region-kicker { font-size: .75rem; }
  .corridor-footnote { flex-direction: column; align-items: flex-start; gap: 12px; }
}
@media (max-width: 560px) {
  .corridor-explorer { margin-top: 32px; }
  .corridor-picker { padding: 21px 18px; }
  .corridor-select-wrap select { font-size: clamp(1rem, 4.1vw, 1.12rem); padding-right: 28px; }
  .corridor-picker-context { padding: 15px 18px; flex-direction: column; align-items: flex-start; gap: 7px; }
  .corridor-toolbar > .corridor-picker-context { flex-direction: column; align-items: flex-start; gap: 7px; }
  .corridor-picker-context p { text-align: left; }
  .map-topline { padding: 15px 14px 0; gap: 10px; flex-wrap: wrap; }
  .map-topline > span { font-size: .75rem; letter-spacing: .035em; }
  .map-motion-toggle { padding: 6px 8px; font-size: .875rem; }
  .map-country-labels, .map-region-annotations { display: none; }
  .map-canvas { display: flex; flex-direction: column; }
  .map-editorial-note { position: static; order: -1; width: 100%; padding: 22px 18px 10px; }
  #corridor-editorial-title, #corridor-editorial-title.is-long { margin-bottom: 14px; font-size: 2.2rem; }
  .corridor-explorer[data-corridor="overview"] .map-editorial-note { display: none; }
  .map-country { stroke-width: 1.8; }
  .map-country[data-active="true"] { stroke-width: 2; }
  .route-track { stroke-width: 2.2; stroke-opacity: .8; }
  .route-out { stroke-width: 4; }
  .route-back { stroke-width: 2.5; }
  .map-caption { padding: 15px 18px 18px; }
  .map-legend { gap: 7px 15px; }
  .corridor-coverage { grid-template-columns: minmax(0,1fr); }
  .corridor-region { padding: 25px; }
  .corridor-region h3, .corridor-region h3.is-long { margin: 12px 0; min-height: 0; font-size: 1.75rem; }
  .corridor-region p { min-height: 0; }
  .corridor-two-way { flex-direction: row; gap: 10px; border-inline: 0; border-block: 1px solid #3a4731; padding: 12px 18px; flex-wrap: wrap; }
  .corridor-two-way > span { font-size: 2.5rem; }
  .corridor-two-way strong, .corridor-two-way small { margin: 0; }
  .corridor-overview-copy { padding: 25px; }
  .corridor-footnote { padding: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .corridor-explorer *, .corridor-explorer *::before, .corridor-explorer *::after { animation: none !important; transition: none !important; }
  .route-flow { stroke-dasharray: none; stroke-width: 1.5; opacity: .6; }
}
