.route-section{padding-block:clamp(4rem,8vw,7rem);background:#1e2821;color:#eef1ea}
.route-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.65fr);gap:3rem;align-items:end;margin-bottom:2rem}
.route-heading h2{margin:.4rem 0 0;font-family:var(--font-serif);font-size:clamp(2.5rem,5vw,4.6rem);font-weight:400;line-height:1.03}
.route-heading p{margin:0;color:#b9c2b9}
.route-explorer{position:relative;display:grid;grid-template-columns:minmax(0,1.7fr) minmax(320px,.7fr);border:1px solid #59645b;background:#111914}
.official-map-embed{width:100%;height:min(72vh,760px);min-height:520px;border:1px solid #59645b;background:#111914}.official-map-embed iframe{display:block;width:100%;height:100%;border:0}
.route-map{min-height:570px;background:#d9ddd8}
.route-profile{display:flex;min-width:0;flex-direction:column;padding:1.4rem;border-left:1px solid #59645b;background:#263129}
.route-profile-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}
.route-profile-header span{font-size:.62rem;font-weight:700;letter-spacing:.13em;color:#b8c2b9}
.route-readout{white-space:nowrap;font-family:var(--font-serif);font-size:1.2rem;color:#fff}
.elevation-chart{min-height:260px;margin-top:auto}
.elevation-chart svg{display:block;width:100%;height:auto;min-height:260px;outline:none;touch-action:none}
.elevation-chart svg:focus-visible{outline:2px solid #f1a36c;outline-offset:4px}
.elevation-grid{stroke:#566159;stroke-width:1}
.elevation-axis{fill:#aeb8af;font:24px var(--font-sans)}
.elevation-area{fill:rgba(216,115,53,.24)}
.elevation-line{fill:none;stroke:#e38a51;stroke-width:4;stroke-linejoin:round;stroke-linecap:round}
.elevation-cursor{stroke:#f1eee6;stroke-width:2;stroke-dasharray:6 5}
.elevation-point{fill:#f1eee6;stroke:#d87335;stroke-width:4}
.route-legend{display:grid;gap:.75rem;margin-top:1.2rem;padding-top:1.2rem;border-top:1px solid #59645b;color:#c5cdc6;font-size:.75rem}
.route-legend-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.route-status{display:inline-flex;padding:.3rem .5rem;border:1px solid #d78a58;color:#f0b78f;font-size:.58rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase}
.route-notice{margin-top:1.5rem;padding:1.1rem 1.25rem;border-left:3px solid #d87335;background:#303b33;color:#d1d8d1;font-size:.82rem}
.route-notice p{margin:0}
.route-notice a{color:#fff}
.route-error{position:absolute;inset:50% auto auto 50%;z-index:500;width:min(85%,430px);transform:translate(-50%,-50%);padding:1rem;background:#fff;color:#222;box-shadow:0 10px 30px rgba(0,0,0,.18)}
.route-profile-empty{display:flex;min-height:220px;align-items:center;margin:0;color:#b9c2b9;font-size:.82rem;line-height:1.8}
.is-schematic .route-profile{background:#283129}
.leaflet-container{font-family:var(--font-sans)}
.leaflet-tooltip{border:0;border-radius:0;background:#24372c;color:#fff;box-shadow:none;font-size:.65rem;font-weight:700;letter-spacing:.08em}
.leaflet-tooltip-right::before{border-right-color:#24372c}
.official-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem}
.official-gallery figure{margin:0;border:1px solid var(--color-line);background:var(--color-surface)}
.official-gallery img{width:100%;aspect-ratio:4/3;object-fit:cover}
.official-gallery figcaption{padding:1rem;color:var(--color-muted);font-size:.72rem;line-height:1.6}
.official-gallery figcaption strong{display:block;color:var(--color-text);font-size:.86rem}
.official-gallery figcaption a{word-break:break-word}
@media(max-width:980px){.route-explorer{grid-template-columns:1fr}.route-profile{border-top:1px solid #59645b;border-left:0}.route-map{min-height:470px}.route-heading{grid-template-columns:1fr}.elevation-chart{min-height:230px}.elevation-chart svg{min-height:230px}.official-map-embed{height:68vh;min-height:430px}}
@media(max-width:620px){.route-section{padding-block:3.5rem}.route-map{min-height:430px}.route-profile{padding:1rem}.route-profile-header{align-items:flex-start;flex-direction:column}.elevation-chart,.elevation-chart svg{min-height:190px}.elevation-axis{font-size:28px}.official-gallery{grid-template-columns:1fr}}
