.single-page { padding-top: 88px; background: var(--color-sand-50); }
.single-page [id] { scroll-margin-top: 105px; }
.single-page .site-header { color: var(--color-charcoal); background: rgba(250,249,245,.96); border-color: var(--color-sand-200); backdrop-filter: blur(14px); }
.single-page .site-header .header-cta { color: #fff; background: var(--color-forest-950); }
.single-page .desktop-nav .current::after { transform: scaleX(1); }

.tour-intro { padding-block: 62px 70px; }
.breadcrumb { display: flex; align-items: center; gap: 10px; margin-bottom: 68px; color: var(--color-muted); font-size: 10px; letter-spacing: .06em; }
.breadcrumb a:hover { color: var(--color-charcoal); }
.tour-intro-grid { display: grid; grid-template-columns: 1.65fr .65fr; gap: 8%; align-items: end; }
.tour-intro .eyebrow { margin-bottom: 18px; }
.tour-intro h1 { margin: 0; font-size: clamp(3.7rem, 5.7vw, 6.2rem); }
.tour-intro-copy > p { margin-bottom: 38px; font-size: 18px; line-height: 1.65; }
.walked-meta { display: flex; align-items: center; gap: 25px; padding-top: 22px; border-top: 1px solid var(--color-sand-200); }
.walked-meta strong { font: 600 26px Manrope, sans-serif; }
.walked-meta strong span { color: var(--color-heath-500); font-size: 17px; }
.walked-meta strong small { color: var(--color-muted); font-size: 11px; font-weight: 400; }
.walked-meta > span { padding-left: 25px; color: var(--color-muted); border-left: 1px solid var(--color-sand-200); font-size: 10px; line-height: 1.45; letter-spacing: .05em; text-transform: uppercase; }

.tour-hero { width: min(var(--page-max), 100%); margin: 0 auto; }
.tour-hero img { aspect-ratio: 16/8.5; }
.tour-hero figcaption { display: flex; justify-content: space-between; width: min(var(--content), calc(100% - 128px)); margin: 12px auto 0; color: var(--color-muted); font-size: 9px; letter-spacing: .1em; text-transform: uppercase; }

.fact-strip { padding-block: 58px 135px; }
.fact-strip dl { display: grid; grid-template-columns: repeat(5, 1fr); margin: 0; padding-block: 25px; border-block: 1px solid var(--color-sand-200); }
.fact-strip dl div { padding-left: 28px; }
.fact-strip dl div:first-child { padding-left: 0; }
.fact-strip dl div + div { border-left: 1px solid var(--color-sand-200); }
.fact-strip dt { margin-bottom: 6px; color: var(--color-muted); font-size: 9px; letter-spacing: .14em; text-transform: uppercase; }
.fact-strip dd { margin: 0; font: 600 18px Manrope, sans-serif; }

.story-layout { display: grid; grid-template-columns: minmax(0, 760px) 330px; justify-content: space-between; gap: 70px; padding-bottom: 150px; }
.tour-story h2 { max-width: 660px; margin-bottom: 44px; }
.tour-story > p { color: var(--color-muted); }
.tour-story .story-lead { color: var(--color-charcoal); font-size: 22px; line-height: 1.64; }
.tour-story blockquote { margin: 60px 0; padding: 42px 0 42px 68px; color: var(--color-forest-800); border-block: 1px solid var(--color-sand-200); font: 500 clamp(1.55rem, 2.3vw, 2.25rem)/1.45 Manrope, sans-serif; letter-spacing: -.03em; }
.tour-story blockquote::before { content: '“'; float: left; margin: -15px 0 0 -68px; color: var(--color-heath-500); font-size: 75px; font-family: Georgia, serif; }
.tour-sidebar { position: sticky; top: 105px; align-self: start; padding: 30px; background: var(--color-sand-100); border-top: 2px solid var(--color-forest-800); }
.tour-sidebar h2 { margin-bottom: 26px; font-size: 24px; }
.tour-sidebar dl { margin: 0 0 30px; }
.tour-sidebar dl div { display: grid; grid-template-columns: 83px 1fr; gap: 12px; padding-block: 11px; border-bottom: 1px solid var(--color-sand-200); }
.tour-sidebar dt { color: var(--color-muted); font-size: 9px; letter-spacing: .08em; text-transform: uppercase; }
.tour-sidebar dd { margin: 0; font-size: 12px; line-height: 1.5; }
.tour-sidebar .button { display: flex; justify-content: space-between; width: 100%; }
.sidebar-link { display: flex; justify-content: space-between; margin-top: 13px; padding: 12px 3px 4px; border-bottom: 1px solid; font-size: 11px; font-weight: 600; }

.tour-video { padding: 130px var(--gutter) 145px; color: #fff; background: #111815; }
.tour-video-heading { display: flex; justify-content: space-between; align-items: end; margin-bottom: 60px; }
.tour-video-heading h2 { margin: 0; }
.tour-video-heading > p { max-width: 380px; margin-bottom: 8px; color: rgba(255,255,255,.58); font-size: 16px; }
.tour-video-frame { position: relative; width: min(var(--content), 100%); aspect-ratio: 16/8.5; margin: auto; overflow: hidden; }
.tour-video-frame::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(10,15,13,.37), transparent 50%); pointer-events: none; }
.tour-video-frame button { position: absolute; z-index: 2; inset: 50% auto auto 50%; display: grid; place-items: center; width: 122px; height: 122px; color: #fff; background: rgba(23,35,30,.7); border: 1px solid rgba(255,255,255,.55); border-radius: 50%; transform: translate(-50%,-50%); backdrop-filter: blur(7px); }
.tour-video-frame button span { margin-left: 4px; font-size: 26px; }
.tour-video-frame button small { position: absolute; top: 136px; white-space: nowrap; font-size: 9px; letter-spacing: .16em; text-transform: uppercase; }
.film-stamp { position: absolute; z-index: 2; right: 18px; bottom: 18px; display: flex; gap: 12px; padding: 8px 11px; background: rgba(17,24,21,.77); font-size: 9px; letter-spacing: .12em; text-transform: uppercase; }
.film-stamp span + span { padding-left: 12px; border-left: 1px solid rgba(255,255,255,.3); }

.highlights { padding-block: 150px 170px; }
.highlights-heading { margin-bottom: 105px; }
.highlight { display: grid; grid-template-columns: 58% 1fr; gap: 9%; align-items: center; margin-bottom: 135px; }
.highlight.reverse { grid-template-columns: 1fr 58%; }
.highlight.reverse .highlight-image { grid-column: 2; grid-row: 1; }
.highlight.reverse > div:last-child { grid-column: 1; grid-row: 1; }
.highlight-image { position: relative; aspect-ratio: 3/2; }
.highlight-image span { position: absolute; left: 14px; bottom: 12px; color: #fff; font-size: 10px; letter-spacing: .14em; }
.highlight > div:last-child { max-width: 390px; }
.highlight h3 { margin-bottom: 25px; font-size: clamp(2.3rem, 3.8vw, 4rem); }
.highlight > div:last-child > p:last-child { color: var(--color-muted); font-size: 16px; }

.route-map-section { padding: 125px max(0px, calc((100vw - 1440px) / 2)) 0; color: #fff; background: var(--color-forest-950); }
.route-map-heading { display: flex; justify-content: space-between; align-items: end; margin-bottom: 60px; }
.route-map-heading h2 { margin: 0; }
.route-map-heading > p { max-width: 390px; margin-bottom: 8px; color: rgba(255,255,255,.58); font-size: 15px; }
.route-map { position: relative; min-height: 650px; overflow: hidden; background: #30453b; }
.route-map > svg { display: block; width: 100%; height: 650px; }
.map-base { fill: #30453b; }
.contours path { fill: none; stroke: rgba(255,255,255,.08); stroke-width: 2; }
.minor-roads path { fill: none; stroke: rgba(244,241,233,.2); stroke-width: 2; stroke-dasharray: 8 8; }
.route-line { fill: rgba(208,196,134,.08); stroke: #e1d18a; stroke-width: 7; stroke-linecap: round; stroke-linejoin: round; }
.route-poi circle { fill: #e1d18a; stroke: #fff; stroke-width: 3; }
.route-labels text { fill: rgba(255,255,255,.64); font: 9px Inter, sans-serif; letter-spacing: .13em; }
.map-float { position: absolute; top: 50%; left: var(--gutter); width: 305px; padding: 26px; color: var(--color-charcoal); background: var(--color-sand-50); transform: translateY(-50%); box-shadow: var(--shadow-panel); }
.map-float > span { color: var(--color-forest-600); font-size: 9px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.map-float h3 { margin: 11px 0 25px; font-size: 26px; }
.map-float dl { display: grid; grid-template-columns: 1fr 1fr; margin: 0 0 22px; padding-block: 14px; border-block: 1px solid var(--color-sand-200); }
.map-float dt { color: var(--color-muted); font-size: 8px; letter-spacing: .1em; text-transform: uppercase; }
.map-float dd { margin: 4px 0 0; font: 600 13px Manrope, sans-serif; }
.map-float .button { display: flex; justify-content: space-between; }
.map-float > a:last-child { display: block; margin-top: 15px; padding-bottom: 5px; border-bottom: 1px solid; font-size: 10px; font-weight: 600; }
.map-float__actions { display: grid; gap: 12px; }
.map-float__actions > a:not(.button) { padding-bottom: 5px; border-bottom: 1px solid; font-size: 10px; font-weight: 600; }
.map-zoom { position: absolute; right: 18px; bottom: 18px; display: grid; }
.map-zoom button { width: 42px; height: 42px; color: #fff; background: rgba(23,35,30,.8); border: 0; border-bottom: 1px solid rgba(255,255,255,.2); }

.route-journey { display: grid; grid-template-columns: 34% 1fr; gap: 9%; padding-block: 160px; }
.journey-intro { align-self: start; position: sticky; top: 110px; }
.journey-intro > p:last-child { max-width: 340px; color: var(--color-muted); font-size: 15px; }
.journey-steps { counter-reset: journey; border-top: 1px solid var(--color-sand-200); }
.journey-step { display: grid; grid-template-columns: 55px 1fr; gap: 24px; padding-block: 45px; border-bottom: 1px solid var(--color-sand-200); }
.journey-step > span { color: var(--color-heath-500); font: 600 12px Manrope, sans-serif; }
.journey-step > div > p:first-child { margin-bottom: 9px; color: var(--color-muted); font-size: 9px; letter-spacing: .12em; text-transform: uppercase; }
.journey-step h3 { margin-bottom: 17px; font-size: 28px; }
.journey-step > div > p:last-child { margin: 0; color: var(--color-muted); font-size: 15px; }
.journey-step > img { grid-column: 2; aspect-ratio: 16/8; margin-top: 20px; }

.practical { padding-block: 130px; background: var(--color-sand-100); }
.practical-inner { display: grid; grid-template-columns: 1fr 1.45fr; gap: 10%; }
.practical-inner > div > p:last-child { max-width: 310px; color: var(--color-muted); font-size: 15px; }
.practical dl { display: grid; grid-template-columns: 1fr 1fr; gap: 0 35px; margin: 0; border-top: 1px solid var(--color-sand-200); }
.practical dl div { padding: 19px 0; border-bottom: 1px solid var(--color-sand-200); }
.practical dt { margin-bottom: 6px; color: var(--color-forest-600); font-size: 9px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.practical dd { margin: 0; font-size: 13px; line-height: 1.55; }

.rating-section { display: grid; grid-template-columns: 1fr 1.1fr; gap: 12%; align-items: center; padding-block: 155px; }
.rating-intro h2 { margin-bottom: 45px; }
.overall-rating { display: flex; align-items: center; gap: 20px; }
.overall-rating strong { font: 500 74px/1 Manrope, sans-serif; color: var(--color-forest-800); }
.overall-rating span { padding-left: 20px; color: var(--color-muted); border-left: 1px solid var(--color-sand-200); font-size: 10px; line-height: 1.45; letter-spacing: .07em; text-transform: uppercase; }
.rating-bars { display: grid; gap: 24px; }
.rating-bars > div { display: grid; grid-template-columns: 110px 1fr 35px; align-items: center; gap: 18px; }
.rating-bars span { font-size: 12px; }
.rating-bars i { height: 3px; background: var(--color-sand-200); }
.rating-bars b { display: block; width: var(--score); height: 100%; background: var(--color-forest-600); }
.rating-bars strong { font: 600 12px Manrope, sans-serif; text-align: right; }

.personal-tip { padding-block: 135px; color: #fff; background: var(--color-forest-800); }
.personal-tip h2 { max-width: 1050px; margin-bottom: 45px; font-size: clamp(2.35rem, 4vw, 4.3rem); line-height: 1.18; }
.personal-tip span { color: rgba(255,255,255,.55); font-size: 9px; letter-spacing: .12em; text-transform: uppercase; }

.tour-gallery { padding-block: 155px; }
.gallery-heading { display: flex; justify-content: space-between; align-items: end; margin-bottom: 65px; }
.gallery-heading h2 { margin: 0; }
.gallery-heading > p { max-width: 280px; margin-bottom: 8px; color: var(--color-muted); font-size: 15px; }
.gallery-grid { display: grid; grid-template-columns: 1.2fr .8fr 1fr; grid-template-rows: 330px 260px 310px; gap: 14px; }
.gallery-grid figure { position: relative; margin: 0; overflow: hidden; }
.gallery-grid figcaption { position: absolute; z-index: 2; left: 12px; bottom: 10px; padding: 5px 7px; color: #fff; background: rgba(23,35,30,.66); font-size: 8px; letter-spacing: .08em; text-transform: uppercase; }
.g1 { grid-row: 1 / 3; }.g2 { grid-column: 2 / 4; }.g3 { grid-column: 2; }.g4 { grid-column: 3; }.g5 { grid-column: 1 / 3; }.g6 { grid-column: 3; }
.gallery-grid--count-1 { grid-template: 600px / 1fr; }
.gallery-grid--count-1 .g1 { grid-area: 1 / 1; }
.gallery-grid--count-2 { grid-template: 460px / repeat(2,1fr); }
.gallery-grid--count-2 .g1,.gallery-grid--count-2 .g2 { grid-area: auto; }
.gallery-grid--count-3 { grid-template: 400px / repeat(3,1fr); }
.gallery-grid--count-3 .g1,.gallery-grid--count-3 .g2,.gallery-grid--count-3 .g3 { grid-area: auto; }
.gallery-grid--count-4 { grid-template: repeat(2,330px) / repeat(2,1fr); }
.gallery-grid--count-4 .g1,.gallery-grid--count-4 .g2,.gallery-grid--count-4 .g3,.gallery-grid--count-4 .g4 { grid-area: auto; }

.related { padding-bottom: 160px; }
.related-heading { margin-bottom: 60px; }
.related-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.related-grid article > .image-link { position: relative; display: block; aspect-ratio: 4/3; overflow: hidden; }
.related-grid article > .image-link span { position: absolute; right: 11px; bottom: 11px; padding: 6px 8px; background: rgba(250,249,245,.9); font-size: 10px; font-weight: 600; }
.related-grid article > p { margin: 18px 0 10px; color: var(--color-forest-600); font-size: 9px; font-weight: 600; letter-spacing: .11em; text-transform: uppercase; }
.related-grid h3 { min-height: 60px; margin-bottom: 17px; font-size: 24px; }
.related-grid article > a:last-child { padding-bottom: 3px; border-bottom: 1px solid; font-size: 10px; font-weight: 600; letter-spacing: .07em; text-transform: uppercase; }
.mobile-tour-actions { display: none; }

@media (max-width: 1100px) {
  .story-layout { grid-template-columns: minmax(0, 1fr) 310px; gap: 50px; }
  .tour-intro-grid { grid-template-columns: 1.4fr .7fr; gap: 6%; }
  .route-map { min-height: 600px; }
  .route-map > svg { height: 600px; }
  .gallery-grid { grid-template-rows: 290px 230px 280px; }
}

@media (max-width: 820px) {
  .single-page { padding-top: 72px; }
  .tour-intro { padding-top: 50px; }
  .breadcrumb { margin-bottom: 48px; }
  .tour-intro-grid { grid-template-columns: 1fr; gap: 35px; }
  .tour-intro-copy { max-width: 570px; }
  .tour-hero figcaption { width: calc(100% - 64px); }
  .fact-strip { padding-bottom: 105px; }
  .story-layout { grid-template-columns: 1fr; }
  .tour-story { max-width: 700px; }
  .tour-sidebar { position: static; display: grid; grid-template-columns: 1fr 1fr; gap: 0 30px; }
  .tour-sidebar h2 { grid-column: 1 / -1; }
  .tour-sidebar .button, .tour-sidebar .sidebar-link { align-self: end; }
  .tour-video-heading, .route-map-heading { align-items: start; flex-direction: column; gap: 20px; }
  .tour-video-frame { aspect-ratio: 16/9; }
  .highlight, .highlight.reverse { grid-template-columns: 1.15fr .85fr; gap: 7%; }
  .highlight.reverse .highlight-image { grid-column: 2; }
  .route-map-heading { width: calc(100% - 64px); }
  .map-float { left: 32px; }
  .route-journey { grid-template-columns: 1fr; }
  .journey-intro { position: static; max-width: 600px; margin-bottom: 50px; }
  .practical-inner { grid-template-columns: 1fr; }
  .practical dl { margin-top: 45px; }
  .rating-section { gap: 7%; }
  .gallery-grid { grid-template-columns: 1fr 1fr; grid-template-rows: 360px 260px 300px 260px; }
  .g1 { grid-row: 1 / 3; }.g2 { grid-column: 2; }.g3 { grid-column: 2; }.g4 { grid-column: 1; }.g5 { grid-column: 2; }.g6 { grid-column: 1 / -1; }
  .related-grid { gap: 18px; }
}

@media (max-width: 600px) {
  .single-page { padding-top: 68px; padding-bottom: 72px; }
  .tour-intro { padding-block: 38px 48px; }
  .breadcrumb { gap: 7px; margin-bottom: 42px; overflow: hidden; white-space: nowrap; }
  .breadcrumb span:last-child { overflow: hidden; text-overflow: ellipsis; }
  .tour-intro h1 { font-size: 2.75rem; }
  .tour-intro-copy > p { font-size: 17px; }
  .walked-meta { gap: 15px; }
  .walked-meta > span { padding-left: 15px; }
  .tour-hero img { aspect-ratio: 4/3; }
  .tour-hero figcaption { width: calc(100% - 40px); }
  .tour-hero figcaption span:last-child { display: none; }
  .fact-strip { width: calc(100% - 40px); padding: 30px 0 82px; overflow: visible; }
  .fact-strip dl { grid-template-columns: 1fr 1fr; overflow: visible; }
  .fact-strip dl div, .fact-strip dl div:first-child { min-height: 83px; padding: 17px 12px; border-bottom: 1px solid var(--color-sand-200); }
  .fact-strip dl div:nth-child(odd) { padding-left: 0; border-left: 0; }
  .fact-strip dl div:nth-child(even) { padding-left: 18px; border-left: 1px solid var(--color-sand-200); }
  .fact-strip dl div:last-child { grid-column: 1 / -1; min-height: 72px; padding-left: 0; border-left: 0; border-bottom: 0; }
  .story-layout { padding-bottom: 90px; }
  .tour-story h2 { margin-bottom: 30px; }
  .tour-story .story-lead { font-size: 19px; }
  .tour-story blockquote { margin-block: 42px; padding: 32px 0 32px 48px; font-size: 1.45rem; }
  .tour-story blockquote::before { margin-left: -48px; font-size: 58px; }
  .tour-sidebar { display: block; margin-inline: -20px; padding: 26px 20px; }
  .tour-sidebar .sidebar-link { display: flex; }
  .tour-video { padding-block: 80px 90px; }
  .tour-video-heading { margin-bottom: 40px; }
  .tour-video-heading h2 { font-size: 2.55rem; }
  .tour-video-frame { margin-inline: -20px; width: calc(100% + 40px); }
  .tour-video-frame button { width: 82px; height: 82px; }
  .tour-video-frame button small { top: 95px; }
  .film-stamp span:last-child { display: none; }
  .highlights { padding-block: 90px 105px; }
  .highlights-heading { margin-bottom: 60px; }
  .highlight, .highlight.reverse { display: flex; flex-direction: column; gap: 30px; margin-bottom: 85px; }
  .highlight.reverse .highlight-image { order: 0; width: 100%; }
  .highlight.reverse > div:last-child { order: 1; }
  .highlight-image { width: 100%; }
  .highlight h3 { font-size: 2.6rem; }
  .route-map-section { padding-top: 80px; }
  .route-map-heading { width: calc(100% - 40px); margin-bottom: 40px; }
  .route-map-heading h2 { font-size: 2.65rem; }
  .route-map { min-height: 480px; }
  .route-map > svg { height: 480px; width: 780px; transform: translateX(-205px); }
  .map-float { top: auto; left: 20px; bottom: 16px; width: calc(100% - 40px); padding: 18px; transform: none; }
  .map-float h3 { margin: 7px 0 14px; font-size: 22px; }
  .map-float dl { margin-bottom: 13px; padding-block: 9px; }
  .map-float .button { min-height: 46px; padding-block: 8px; }
  .map-float > a:last-child { margin-top: 9px; }
  .map-zoom { top: 15px; right: 15px; bottom: auto; }
  .route-journey { padding-block: 95px; }
  .journey-step { grid-template-columns: 36px 1fr; gap: 13px; padding-block: 34px; }
  .journey-step h3 { font-size: 24px; }
  .journey-step > img { aspect-ratio: 4/3; }
  .practical { padding-block: 85px; }
  .practical dl { grid-template-columns: 1fr; gap: 0; }
  .rating-section { grid-template-columns: 1fr; padding-block: 95px; }
  .rating-bars { margin-top: 60px; }
  .rating-bars > div { grid-template-columns: 90px 1fr 30px; gap: 12px; }
  .personal-tip { padding-block: 90px; }
  .personal-tip h2 { font-size: 2.15rem; }
  .tour-gallery { padding-block: 95px; }
  .gallery-heading { display: block; margin-bottom: 40px; }
  .gallery-heading > p { margin-top: 20px; }
  .gallery-grid { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 340px 210px 230px 260px; margin-inline: -20px; gap: 6px; }
  .g1 { grid-column: 1 / -1; grid-row: 1; }.g2 { grid-column: 1; grid-row: 2; }.g3 { grid-column: 2; grid-row: 2; }.g4 { grid-column: 1 / -1; grid-row: 3; }.g5 { grid-column: 1; grid-row: 4; }.g6 { grid-column: 2; grid-row: 4; }
	.gallery-grid--count-1 { grid-template: 430px / 1fr; }
	.gallery-grid--count-2 { grid-template: repeat(2,300px) / 1fr; }
	.gallery-grid--count-3 { grid-template: 340px repeat(2,230px) / repeat(2,1fr); }
	.gallery-grid--count-3 .g1 { grid-column: 1 / -1; }
	.gallery-grid--count-4 { grid-template: repeat(2,250px) / repeat(2,1fr); }
  .related { padding-bottom: 100px; }
  .related-grid { display: flex; margin-inline: -20px; padding-inline: 20px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .related-grid article { flex: 0 0 82vw; scroll-snap-align: center; }
  .mobile-tour-actions { position: fixed; z-index: 135; right: 20px; bottom: 12px; left: 20px; display: grid; grid-template-columns: 1fr 1fr; padding: 5px; background: rgba(250,249,245,.95); border: 1px solid var(--color-sand-200); border-radius: 9px; box-shadow: 0 12px 40px rgba(23,35,30,.2); transform: translateY(calc(100% + 30px)); transition: transform .25s var(--ease); backdrop-filter: blur(12px); }
  .mobile-tour-actions.is-visible { transform: none; }
  .mobile-tour-actions a { display: grid; min-height: 52px; padding: 8px 14px; border-radius: 6px; }
  .mobile-tour-actions a:first-child { border-right: 1px solid var(--color-sand-200); }
  .mobile-tour-actions a:last-child { color: #fff; background: var(--color-forest-950); }
  .mobile-tour-actions span { font-size: 13px; font-weight: 600; }
  .mobile-tour-actions small { color: var(--color-muted); font-size: 8px; letter-spacing: .05em; text-transform: uppercase; }
  .mobile-tour-actions a:last-child small { color: rgba(255,255,255,.55); }
}
