/* DreamView hiking page; shared brand styles remain unchanged. */
.hiking-page { --hiking-ink: var(--dv-ink); --hiking-paper: var(--dv-cream); }
.hiking-hero > img { object-position: center 45%; }
.hiking-chapters { background: var(--dv-cream); border-bottom: 1px solid var(--dv-line); }
.hiking-chapters .wrap { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.hiking-chapters a { display: flex; align-items: center; min-height: 78px; font-size: 13px; }
.hiking-chapters a:hover { color: var(--dv-gold); }
.hiking-intro { display: grid; grid-template-columns: 1.05fr 1fr; gap: 8%; padding-block: 100px; }
.hiking-intro > div > p:not(.eyebrow) { color: var(--dv-body); }
.hiking-intro > div > p + p { margin-top: 22px; }
.map-section { background: var(--dv-cream); padding-block: 90px; }
.hiking-section-heading { display: grid; grid-template-columns: 1.1fr 1fr; gap: 8%; align-items: end; margin-bottom: 40px; }
.hiking-section-heading > p { color: var(--dv-body); }
.hiking-page .map-toolbar button, .hiking-page .map-view-switch button { font-family: var(--dv-sans); font-size: 12px; }
.map-toolbar { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 18px; }
.map-toolbar button { min-height: 44px; padding: 11px 23px; font-size: 11px; font-weight: 500; background: transparent; border: 1px solid #c8cbbf; cursor: pointer; color: var(--hiking-ink); transition: background .2s, color .2s; }
.map-toolbar button[aria-pressed="true"] { background: var(--hiking-ink); border-color: var(--hiking-ink); color: #fff; }
.map-toolbar button:hover:not(:disabled) { background: #dde2d8; color: var(--hiking-ink); }
.map-toolbar button:disabled { cursor: default; }
.map-frame { position: relative; border: 1px solid #d5d9cc; }
#trailmap { width: 100%; height: 540px; background: #e5e9dc; z-index: 1; font-family: var(--dv-sans); }
.map-view-switch { position: absolute; left: 12px; top: 12px; z-index: 2; display: flex; padding: 4px; background: #fff; box-shadow: 0 2px 10px #0003; }
.map-view-switch button { min-height: 38px; padding: 8px 16px; border: 0; background: #fff; color: var(--hiking-ink); font-size: 11px; font-weight: 500; cursor: pointer; }
.map-view-switch button[aria-pressed="true"] { background: var(--hiking-ink); color: #fff; }
.map-view-switch button:hover:not([aria-pressed="true"]) { background: var(--hiking-paper); }
.map-view-switch button:disabled { cursor: default; }
.map-view-status:empty { display: none; }
.map-view-status { margin-top: 12px; font-size: 12px; }
.trail-feet-scale { background: #fffffff0; border: 2px solid #26382f; border-top: 0; padding: 3px 5px; color: #26382f; font: 10px/1.4 var(--dv-sans); white-space: nowrap; box-sizing: content-box; text-align: center; }
.map-loading { position: absolute; inset: 0; z-index: 3; display: grid; place-content: center; text-align: center; background: #e5e9dc; color: var(--hiking-ink); padding: 32px; font-size: 14px; }
.map-loading[hidden] { display: none; }
.map-loading a { text-decoration: underline; text-underline-offset: 4px; margin-top: 12px; }
.map-legend { display: flex; flex-wrap: wrap; gap: 12px 28px; margin: 22px 0 12px; font-size: 11px; color: #434d43; }
.map-legend > span { display: inline-flex; align-items: center; gap: 10px; }
.legend-line { display: inline-block; width: 25px; border-top: 3px solid; }
.legend-line.shared { border-color: #9a742b; border-top-style: dashed; }
.legend-line.old-man { border-color: #a35439; }
.legend-line.deer { border-color: #245c50; }
.legend-line.castle { border-color: #435c8c; }
.legend-line.window { border-color: #77517c; }
.map-status { font-size: 13px; color: var(--hiking-ink); }
.map-note { font-size: 11px; line-height: 1.8; margin-top: 10px; max-width: 800px; }
.map-note a, .planning-details p a { text-decoration: underline; text-underline-offset: 3px; }
.trail-marker { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; border: 2px solid #fff; color: #fff; background: #26382f; box-shadow: 0 2px 7px #0004; font-size: 12px; font-weight: 600; }
.trail-marker.shared { background: #806022; }
.trail-marker.old-man { background: #a35439; }
.trail-marker.deer { background: #245c50; }
.trail-marker.castle { background: #435c8c; }
.trail-marker.window { background: #77517c; }
.trail-tooltip { font: 11px var(--dv-sans); border: none; border-radius: 0; padding: 6px 10px; box-shadow: 0 2px 8px #0002; }
.leaflet-popup-content { font: 12px/1.7 var(--dv-sans); }
.leaflet-popup-content strong { display: block; color: var(--hiking-ink); margin-bottom: 6px; }
.leaflet-container .leaflet-control-attribution { font-size: 10px; }
.leaflet-bar a { min-width: 36px; min-height: 36px; line-height: 36px; }

.routes-section { padding-block: 100px; }
.route-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px 7%; }
.route-story { border-top: 1px solid var(--dv-line); padding-top: 26px; }
.route-number { display: flex; align-items: center; gap: 18px; color: var(--dv-gold); font: 26px/1.5 var(--dv-serif); }
.route-number > span { font: 11px/1.6 var(--dv-sans); text-transform: uppercase; letter-spacing: 1px; }
.route-story h3 { font-size: 32px; margin-block: 18px; }
.route-story p { color: var(--dv-body); font-size: 15px; }
.route-story .route-detail { margin-top: 18px; font-size: 13px; }
.hiking-page .experience-faq { border-top: 1px solid var(--dv-line); }
@media (max-width: 760px) {
  .hiking-chapters .wrap { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; }
  .hiking-chapters a { min-height: 64px; font-size: 12px; }
  .hiking-chapters a:nth-child(-n+2) { border-bottom: 1px solid var(--dv-line); }
  .hiking-intro, .hiking-section-heading { display: block; }
  .hiking-intro { padding-block: 60px; }
  .hiking-intro > div + div, .hiking-section-heading > p { margin-top: 28px; }
  .map-section, .routes-section { padding-block: 60px; }
  .route-grid { grid-template-columns: 1fr; gap: 36px; }
  .map-toolbar button { flex: 1 1 40%; padding-inline: 12px; }
  .map-toolbar button:first-child { flex-basis: 100%; }
  #trailmap { height: 440px; }
  .map-legend { gap: 12px 20px; }
}
@media print { .hiking-page .map-section { display: none; } }
