/* BCC travel field guide. All assets local; motion only on direct interaction. */
.travel-page { --map-paper:#eee8dc; --map-clay:#974426; --map-green:#244c3d; }
.page-main > .travel-page { width:100%; margin:0; }
.travel-page .sheet-label span { color:var(--ink-2); }
.travel-intro { display:grid; grid-template-columns:1.25fr 1fr; gap:7%; padding-block:58px 38px; align-items:end; }
.travel-intro h1 { font:500 clamp(45px,5.6vw,78px)/1.04 var(--serif); letter-spacing:-.045em; margin-bottom:18px; }
.travel-intro .sheet-label { margin-bottom:24px; }
.travel-deck { max-width:510px; font:400 clamp(19px,1.7vw,24px)/1.5 var(--serif); color:var(--ink-2); margin:0; }
.travel-intro-note { max-width:420px; justify-self:end; padding-bottom:5px; font-size:15px; }
.travel-intro-note p { margin-bottom:18px; }
.travel-current { border-block:1px solid var(--rule-2); padding-block:15px; display:flex; justify-content:space-between; gap:16px 28px; align-items:center; font-size:12px; }
.travel-current p { margin:0; max-width:690px; }
.travel-current>div { display:flex; flex-wrap:wrap; gap:6px 20px; flex-shrink:0; font-weight:600; }
.date-dot { display:inline-block; width:7px; height:7px; margin-right:8px; background:var(--clay); border-radius:50%; }
.travel-explorer { margin-block:28px 70px; border:1px solid var(--rule-2); background:var(--card); }
.map-loading { padding:44px; }
.map-loading p { margin:0; }
.travel-toolbar { display:flex; justify-content:space-between; align-items:center; gap:15px; padding:12px 18px; border-bottom:1px solid var(--rule-2); }
.travel-view-switch { display:flex; gap:5px; border:1px solid var(--rule); border-radius:6px; padding:4px; }
.travel-toolbar button { border:0; background:none; cursor:pointer; font-size:13px; font-weight:600; min-height:42px; padding:0 17px; border-radius:3px; }
.travel-view-switch button[aria-pressed=true] { background:var(--forest); color:var(--card); }
.travel-actions { display:flex; gap:5px; }
.travel-actions button:hover { background:var(--paper-2); }
.map-layout { display:grid; grid-template-columns:minmax(0,1fr) 310px; }
.map-column { min-width:0; background:var(--map-paper); }
.map-topline { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:5px 12px; padding:12px 20px; border-bottom:1px solid var(--rule); min-height:60px; }
.map-topline p { margin:0; font:500 15px/1.3 var(--serif); }
.map-topline>div { display:flex; gap:12px; }
.map-topline button { border:0; border-bottom:1px solid transparent; background:none; padding:9px 0; cursor:pointer; font-size:11px; }
.map-topline button[aria-pressed=true] { border-bottom-color:var(--map-clay); font-weight:700; }
.travel-map-stage { position:relative; height:575px; overflow:hidden; touch-action:pan-y; cursor:grab; background:var(--map-paper); }
.travel-map-stage.is-dragging { cursor:grabbing; }
.travel-map-stage:focus-visible { outline-offset:-4px; }
#travel-svg { display:block; width:100%; height:100%; max-width:none; }
.map-relief { opacity:.48; mix-blend-mode:multiply; }
.map-road-case { stroke:var(--card); fill:none; stroke-width:5; stroke-linecap:round; stroke-linejoin:round; }
.map-road { stroke:#827569; fill:none; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.map-road.scenic { stroke:var(--map-clay); stroke-width:2.5; }
.map-road.seasonal { stroke:var(--map-clay); stroke-dasharray:4 3; }
.map-road.regional { stroke:#8b9189; stroke-width:1.4; }
.airport-connection { fill:none; stroke:var(--clay); stroke-width:2; stroke-dasharray:5 7; }
.map-grid { stroke:var(--ink); stroke-opacity:.05; stroke-width:1; fill:none; }
.map-marker { cursor:pointer; }
.map-marker .marker-shape { fill:var(--card); stroke:var(--map-green); stroke-width:1.8; }
.map-marker.overlook .marker-shape { fill:var(--map-clay); stroke:var(--card); stroke-width:2; }
.map-marker.trailhead .marker-shape { fill:var(--card); stroke:var(--map-clay); }
.map-marker.selected .marker-shape { fill:var(--forest); stroke:var(--card); stroke-width:2.5; }
.map-marker.selected .selection-ring { stroke:var(--forest); stroke-width:1; fill:none; }
.map-marker text { font:600 11px var(--sans); fill:var(--forest); text-anchor:middle; pointer-events:none; }
.map-marker.overlook text { fill:var(--card); }
.map-marker.selected text { fill:var(--card); }
.marker-hit { fill:transparent; }
.map-label { font:600 11px var(--sans); fill:var(--ink); paint-order:stroke; stroke:var(--map-paper); stroke-width:4px; stroke-linejoin:round; pointer-events:none; }
.map-label.selected { font-size:12px; font-weight:700; }
.map-airport-label { font:600 17px var(--sans); fill:var(--forest); paint-order:stroke; stroke:var(--map-paper); stroke-width:5px; }
.map-airport-city { font:400 11px var(--sans); fill:var(--ink-2); }
.map-region-label { font:500 20px var(--serif); letter-spacing:5px; fill:#767f70; opacity:.58; }
.map-road-label { font:600 10px var(--sans); fill:var(--ink-2); paint-order:stroke; stroke:var(--map-paper); stroke-width:4px; }
.map-compass { position:absolute; top:22px; left:24px; display:grid; justify-items:center; gap:0; font:600 11px var(--mono); pointer-events:none; }
.map-compass span { font:400 27px var(--serif); line-height:1; }
.map-controls { position:absolute; top:18px; right:18px; display:grid; background:var(--card); border:1px solid var(--rule-2); border-radius:4px; box-shadow:0 3px 10px #0000000c; }
.map-controls button,.map-pan-controls button { background:none; border:0; min-width:42px; min-height:42px; padding:0; cursor:pointer; font:400 22px var(--sans); }
.map-controls button+button { border-top:1px solid var(--rule); }
.map-controls button:hover,.map-pan-controls button:hover { background:var(--paper-2); }
.map-controls button:disabled { opacity:.35; cursor:default; }
.map-pan-controls { position:absolute; right:18px; bottom:18px; display:flex; background:var(--card); border:1px solid var(--rule-2); border-radius:4px; }
.map-pan-controls button { font-size:18px; }
.map-scale { position:absolute; bottom:22px; left:24px; font:500 10px/1.8 var(--mono); }
.map-scale::before { content:''; display:block; width:var(--scale-width,80px); height:5px; border:1px solid var(--ink-2); border-top:0; }
.map-geography { position:absolute; left:23px; top:46%; writing-mode:vertical-rl; transform:rotate(180deg); font:italic 16px var(--serif); letter-spacing:.045em; color:#626956; pointer-events:none; }
.map-legend { display:flex; flex-wrap:wrap; gap:8px 17px; align-items:center; padding:12px 20px 0; font-size:10px; }
.map-legend span { display:flex; align-items:center; gap:6px; }
.map-legend i { display:inline-block; width:9px; height:9px; border-radius:50%; background:var(--map-clay); }
.map-legend .legend-road { height:2px; width:20px; border-radius:0; }
.map-legend .legend-facility { border-radius:0; background:var(--map-green); }
.map-legend .legend-trail { width:0; height:0; border-radius:0; border-left:5px solid transparent; border-right:5px solid transparent; border-bottom:9px solid var(--map-clay); background:none; }
.map-caption,.map-help { font-size:10.5px; color:var(--ink-2); margin:10px 20px 0; line-height:1.6; }
.map-help { margin:5px 20px 16px; }
.map-sidebar { border-left:1px solid var(--rule-2); display:flex; flex-direction:column; min-width:0; }
.sidebar-head { padding:22px 20px 12px; }
.sidebar-head .sheet-label { margin-bottom:7px; font-size:10px; }
.sidebar-head h3 { font:500 28px/1.15 var(--serif); margin-bottom:18px; }
.park-filter-row,.scenic-order-row { display:flex; align-items:center; gap:10px; margin-bottom:12px; }
.map-sidebar label { font-size:11px; }
.map-sidebar select { min-height:39px; min-width:0; border:1px solid var(--rule-2); border-radius:3px; background:var(--card); color:var(--ink); font:400 12px var(--sans); padding:6px 8px; }
.park-filter-row select,.scenic-order-row select { flex:1; }
.unit-row { display:flex; align-items:center; gap:6px; }
.unit-row p { flex:1; margin:0; color:var(--ink-2); font-size:11px; }
.unit-row label { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.unit-row select { min-height:30px; padding:3px 5px; font-size:10px; }
.travel-stop-list { padding:0; margin:0; list-style:none; max-height:456px; overflow:auto; scrollbar-width:thin; overscroll-behavior:contain; border-top:1px solid var(--rule); }
.travel-stop-list li { border-bottom:1px solid var(--rule); }
.travel-stop-list button { width:100%; display:grid; grid-template-columns:28px 1fr 14px; align-items:center; gap:10px; text-align:left; border:0; padding:14px 18px; background:none; cursor:pointer; min-height:70px; }
.travel-stop-list button:hover { background:var(--paper); }
.travel-stop-list button[aria-pressed=true] { background:#e7ece3; box-shadow:inset 3px 0 var(--forest); }
.travel-stop-list button:focus-visible { outline-offset:-4px; }
.stop-symbol { width:25px; height:25px; display:grid; place-items:center; border:1px solid var(--rule-2); color:var(--clay); font:500 11px var(--mono); border-radius:50%; }
.stop-symbol.facility { border-radius:3px; color:var(--forest); }
.stop-symbol.airport { border:0; font:600 13px var(--sans); width:auto; color:var(--forest); }
.stop-text strong { display:block; font:600 12px/1.4 var(--sans); }
.stop-text small { display:block; margin-top:3px; font:400 10px/1.5 var(--sans); color:var(--ink-2); }
.stop-arrow { color:var(--ink-2); font-size:15px; }
.sidebar-foot { padding:13px 20px; margin:auto 0 0; font:400 10.5px/1.6 var(--sans); color:var(--ink-2); }
.travel-selection { display:grid; grid-template-columns:44px minmax(0,1fr) 220px; gap:24px; padding:28px 30px; border-top:1px solid var(--rule-2); background:#f6f3ec; }
.selection-number { display:grid; place-items:center; align-self:start; width:40px; height:40px; border-radius:50%; color:var(--card); background:var(--forest); font:500 15px var(--mono); margin-top:3px; }
.selection-copy .sheet-label { font-size:10px; margin-bottom:8px; }
.selection-copy h3 { font:500 31px/1.15 var(--serif); margin-bottom:12px; }
.selection-copy p { font-size:13px; margin-bottom:10px; }
.selection-copy .selection-access { color:var(--ink-2); }
.selection-copy .selection-source { font-size:10px; margin:13px 0 0; color:var(--ink-2); }
.selection-directions { border-left:1px solid var(--rule-2); padding-left:24px; display:flex; flex-direction:column; align-items:stretch; gap:8px; }
.selection-directions p { font-size:11px; margin:0 0 4px; }
.selection-directions>p:first-child { font-weight:600; }
.selection-directions .btn { font-size:12px; min-height:41px; }
.selection-directions #direction-note { color:var(--ink-2); font-size:10px; margin-top:4px; }
.selection-directions>a:last-child { font-size:10px; }
.share-output { padding:18px 24px; border-bottom:1px solid var(--rule-2); background:var(--paper); }
.share-output label,.share-output p { font-size:12px; }
.share-output input { display:block; width:100%; padding:10px; border:1px solid var(--rule-2); font:400 13px var(--sans); margin-top:5px; }
.share-output p { margin:7px 0 0; }
.travel-drive { display:grid; grid-template-columns:1fr 1fr; gap:9%; padding-block:0 66px; border-bottom:1px solid var(--rule-2); }
.travel-drive h2,.travel-reading h2,.travel-sources h2 { font:500 clamp(30px,3vw,42px)/1.1 var(--serif); letter-spacing:-.022em; margin-bottom:22px; }
.drive-intro>p:not(.sheet-label) { font-size:14px; }
.drive-intro .drive-distance { margin-block:28px 14px; color:var(--ink-2); }
.drive-distance strong { color:var(--forest); font:500 25px var(--serif); }
.small-note,.drive-intro p.small-note { font-size:11px; line-height:1.7; color:var(--ink-2); }
.sequence-heading { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; padding-bottom:18px; border-bottom:1px solid var(--rule-2); }
.sequence-heading h3 { font:500 20px var(--serif); }
.sequence-heading a { font-size:11px; }
.scenic-sequence { list-style:none; padding:0; margin:0 0 16px; }
.scenic-sequence li { display:grid; grid-template-columns:28px 1fr auto; gap:12px; align-items:center; border-bottom:1px solid var(--rule); padding:12px 0; font-size:12px; }
.scenic-sequence .sequence-index { color:var(--clay); font:400 11px var(--mono); }
.scenic-sequence small { color:var(--ink-2); font-size:10px; }
.travel-reading { padding-block:60px; }
.reading-heading { display:flex; align-items:center; justify-content:space-between; gap:36px; margin-bottom:35px; }
.reading-heading p:not(.sheet-label) { max-width:600px; font-size:14px; }
.reading-heading .btn { flex-shrink:0; font-size:12px; }
.guide-practical { display:grid; grid-template-columns:1fr 1fr; gap:26px 7%; margin-bottom:34px; }
.guide-practical article { border-top:2px solid var(--forest); padding-top:17px; }
.guide-practical h3 { font:500 22px var(--serif); margin-bottom:12px; }
.guide-practical p,.guide-practical li { font-size:13px; }
.guide-details { border-top:1px solid var(--rule-2); }
.guide-details:last-of-type { border-bottom:1px solid var(--rule-2); }
.guide-details>summary { font:500 24px var(--serif); cursor:pointer; padding:20px 0; }
.guide-stop { display:grid; grid-template-columns:220px 1fr; gap:28px; padding-block:22px; border-top:1px solid var(--rule); scroll-margin-top:24px; }
.guide-stop h4 { font:500 20px/1.35 var(--serif); margin:0 0 8px; }
.guide-stop p { font-size:13px; margin-bottom:9px; }
.guide-stop .small-note { font-size:11px; }
.guide-links { display:flex; flex-wrap:wrap; gap:8px 20px; font-size:11px; }
.shuttle-stop-list { columns:2; padding-left:24px; margin-bottom:24px; }
.shuttle-stop-list li { font-size:13px; padding:6px 12px 6px 0; break-inside:avoid; }
.shuttle-stop-list small { color:var(--ink-2); }
.travel-sources { padding-block:46px 70px; border-top:1px solid var(--rule-2); }
.source-intro { display:grid; grid-template-columns:repeat(3,1fr); gap:30px; font-size:13px; }
.source-details { margin-top:26px; border-block:1px solid var(--rule-2); }
.source-details summary { padding:18px 0; font-size:14px; cursor:pointer; font-weight:600; }
.source-ledger { list-style:none; padding:0; columns:2; column-gap:40px; }
.source-ledger li { break-inside:avoid; font-size:12px; padding:12px 0; border-top:1px solid var(--rule); }
.source-ledger small { display:block; color:var(--ink-2); font-size:10px; line-height:1.6; margin-top:5px; }
.data-downloads { display:flex; flex-wrap:wrap; gap:10px 24px; font-size:11px; margin-top:20px; }
@media (max-width:1050px) {
 .travel-intro { gap:5%; }.travel-intro h1 { font-size:58px; }
 .travel-current { align-items:start; flex-direction:column; gap:8px; }
 .map-layout { grid-template-columns:minmax(0,1fr) 275px; }
 .map-topline { padding-inline:15px; }.travel-map-stage { height:560px; }
 .travel-selection { grid-template-columns:32px minmax(0,1fr) 185px; gap:16px; padding:24px 22px; }
 .selection-number { width:30px; height:30px; }.selection-directions { padding-left:16px; }
 .reading-heading { align-items:start; flex-direction:column; gap:10px; }
}
@media (max-width:740px) {
 .travel-intro { grid-template-columns:1fr; gap:25px; padding-block:32px 27px; }
 .travel-intro h1 { font-size:53px; }.travel-intro .sheet-label { font-size:10px; margin-bottom:18px; }
 .travel-intro-note { justify-self:start; max-width:none; font-size:13px; }.travel-intro-note p { margin-bottom:12px; }
 .travel-deck { font-size:21px; }.travel-current { font-size:11px; }
 .travel-current>div { gap:14px; font-size:11px; }
 .travel-explorer { margin-top:20px; margin-bottom:42px; }
 .travel-toolbar { padding:10px; flex-wrap:wrap; gap:6px; }
 .travel-view-switch { width:100%; }.travel-view-switch button { flex:1; padding:0 8px; }
 .travel-actions { width:100%; justify-content:space-between; }.travel-actions button { font-size:11px; min-height:34px; padding:0 8px; }
 .map-layout { grid-template-columns:1fr; }.map-sidebar { border-left:0; border-top:1px solid var(--rule-2); }
 .map-topline { padding:10px 14px; min-height:70px; }.map-topline p { font-size:14px; }
 .travel-map-stage { height:470px; }.map-geography { left:13px; font-size:13px; }
 .map-controls { right:10px; top:12px; }.map-pan-controls { right:10px; bottom:12px; }
 .map-controls button,.map-pan-controls button { min-height:44px; min-width:40px; }
 .map-compass { left:15px; top:15px; }.map-scale { left:15px; bottom:17px; }
 .map-pan-controls button { min-width:34px; }.map-legend { gap:9px 13px; padding-inline:14px; font-size:9px; }
 .map-caption,.map-help { margin-inline:14px; font-size:10px; }
 .sidebar-head { padding:20px 16px 12px; }.sidebar-head h3 { font-size:27px; }
 .travel-stop-list { max-height:285px; }.travel-stop-list button { min-height:68px; padding:12px 16px; }
 .stop-text strong { font-size:13px; }.stop-text small { font-size:11px; }.sidebar-foot { padding:12px 16px; }
 .travel-selection { grid-template-columns:30px minmax(0,1fr); padding:22px 16px; gap:12px; }
 .selection-copy h3 { font-size:28px; }.selection-directions { grid-column:1/-1; border-left:0; border-top:1px solid var(--rule-2); padding:18px 0 0; display:grid; grid-template-columns:1fr 1fr; gap:10px; }
 .selection-directions p,.selection-directions>a:last-child { grid-column:1/-1; }.selection-directions .btn { min-height:44px; }
 .travel-drive { grid-template-columns:1fr; gap:30px; padding-bottom:40px; }
 .drive-intro .drive-distance { margin-top:22px; }.travel-drive h2 { font-size:36px; }
 .travel-reading { padding-block:40px; }.guide-practical { grid-template-columns:1fr; gap:20px; }
 .guide-stop { grid-template-columns:1fr; gap:10px; }.guide-stop h4 { margin-bottom:4px; }
 .shuttle-stop-list { columns:1; }.source-intro { grid-template-columns:1fr; gap:8px; }.source-ledger { columns:1; }
 .travel-sources { padding-top:35px; }.guide-details>summary { font-size:22px; }
}
@media (max-width:360px) {
 .travel-intro h1 { font-size:46px; }.travel-map-stage { height:440px; }
 .map-pan-controls { display:grid; grid-template-columns:repeat(2,44px); }.map-pan-controls button { min-height:44px; min-width:44px; }
 .map-legend { font-size:8.5px; gap:8px 9px; }.travel-current>div { flex-direction:column; gap:8px; }
 .selection-directions { grid-template-columns:1fr; }.selection-directions a { grid-column:1; }
}
@media (prefers-reduced-motion:reduce) {
 .page-travel-map,.page-travel-map * { scroll-behavior:auto !important; transition:none !important; animation:none !important; }
}
@media print {
 @page { margin:0.5in; }
 .travel-page { --serif:Georgia,'Times New Roman',serif; --sans:Arial,sans-serif; --mono:'Courier New',monospace; }
 .site-header,.site-footer,.travel-explorer,.reading-heading>.btn,.travel-intro-note,.travel-current>div,.travel-sources details,.data-downloads,.sequence-heading>a { display:none !important; }
 body { font:10pt/1.45 sans-serif; background:white; color:black; }.wrap { width:auto; margin:0; }
 .travel-intro { display:block; padding:0 0 15px; }.travel-intro h1 { font-size:32pt; }.travel-deck { font-size:13pt; }
 .travel-current { padding:10px 0; }.travel-drive { display:block; padding:20px 0; }.drive-intro { break-inside:avoid; }
 .drive-sequence { margin-top:18px; }.travel-reading,.travel-sources { padding:20px 0; }.reading-heading { margin-bottom:15px; }
 .travel-reading h2,.travel-sources h2,.travel-drive h2 { font-size:22pt; }
 .reading-heading { break-inside:avoid; break-before:page; }
 .guide-details>summary { display:block; break-after:avoid-page; page-break-after:avoid; list-style:none; }
 .guide-map-link { display:none; }
 .guide-practical { display:block; }.guide-practical article { break-inside:avoid; margin-bottom:15px; }
 .guide-details>summary { font-size:17pt; }.guide-stop { display:block; break-inside:avoid; padding:12px 0; }
 .guide-stop h4 { font-size:14pt; }.guide-stop p,.guide-practical p,.guide-practical li { font-size:10pt; }
 .source-intro { display:block; }.guide-links { font-size:9pt; }.shuttle-stop-list { columns:2; }
 a { color:black; }.travel-page p { orphans:3; widows:3; }
}
.imported-plan{padding:20px 24px;border:1px solid var(--rule);margin-bottom:20px;background:#f0eadf}.imported-plan h3{font:400 26px/1.2 var(--serif);margin:0 0 10px}.imported-plan p{max-width:75ch;font-size:13px;line-height:1.7}.imported-plan ol{display:flex;flex-wrap:wrap;gap:10px 28px;padding-left:24px}.imported-plan button{font:inherit;text-decoration:underline;text-underline-offset:4px;background:transparent;color:var(--ink);border:0;cursor:pointer;min-height:36px;text-align:left}.map-marker.planned-stop .marker-shape{stroke:#833d27;stroke-width:3}.selection-directions>a:last-child{display:block;margin-top:12px}.imported-plan[hidden],#selected-planner[hidden]{display:none}

.selected-journeys{display:grid;gap:10px;padding:14px 0}.selected-journeys[hidden]{display:none}.selected-journeys p{margin:0}.selected-journeys a{display:block}.vp-journey-link{margin-block:14px}
