:root {
    --ink: #17312d;
    --forest: #103c36;
    --forest-2: #0a2d29;
    --jade: #1f6d5d;
    --paper: #f5f1e8;
    --cream: #fbf9f4;
    --gold: #d6ad65;
    --rust: #bf6248;
    --muted: #6b7773;
    --line: rgba(23, 49, 45, .15);
    --radius: 2px;
    --font-serif: Georgia, "Times New Roman", serif;
    --font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

html { scroll-behavior: smooth; }
body { color: var(--ink); background: var(--cream); font-family: var(--font-sans); line-height: 1.65; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; object-fit: cover; }
h1, h2, h3 { font-family: var(--font-serif); font-weight: 400; letter-spacing: -.035em; }
.container { --bs-gutter-x: 2rem; }
.btn { border-radius: var(--radius); font-size: .82rem; font-weight: 700; letter-spacing: .04em; padding: .78rem 1.25rem; text-transform: uppercase; }
.btn-lg { padding: 1rem 1.55rem; }
.btn-primary { --bs-btn-bg: var(--rust); --bs-btn-border-color: var(--rust); --bs-btn-hover-bg: #a94f39; --bs-btn-hover-border-color: #a94f39; }
.btn-outline-light { --bs-btn-border-color: rgba(255,255,255,.55); --bs-btn-hover-color: var(--forest); }
.form-control, .form-select { border: 1px solid rgba(23,49,45,.2); border-radius: var(--radius); padding: .82rem 1rem; }
.form-control:focus, .form-select:focus { border-color: var(--jade); box-shadow: 0 0 0 .2rem rgba(31,109,93,.12); }
.eyebrow { color: var(--jade); display: inline-block; font-size: .69rem; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; }
.text-gold { color: var(--gold) !important; }
.display-title { font-size: clamp(3.3rem, 7vw, 7rem); line-height: .95; }
.display-title-sm { font-size: clamp(2.7rem, 4.5vw, 4.8rem); line-height: 1; }
.lead-soft { color: var(--muted); font-family: var(--font-serif); font-size: 1.35rem; line-height: 1.55; }
.text-link { display: inline-flex; gap: .7rem; align-items: center; border-bottom: 1px solid currentColor; padding-bottom: .3rem; font-size: .82rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.text-link span { transition: transform .2s ease; }
.text-link:hover span { transform: translateX(.25rem); }
.skip-link { position: fixed; left: 1rem; top: -5rem; z-index: 3000; background: white; padding: 1rem; }
.skip-link:focus { top: 1rem; }

.site-header { background: var(--cream); border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 1030; }
.navbar { min-height: 78px; }
.brand-lockup { display: inline-flex; align-items: center; gap: .72rem; color: var(--ink); }
.brand-lockup .brand-mark { align-items: center; background: var(--forest); border-radius: 50%; color: var(--gold); display: inline-flex; font-family: var(--font-serif); font-size: 1.5rem; height: 42px; justify-content: center; width: 42px; }
.brand-lockup > span:last-child { display: flex; flex-direction: column; line-height: 1; }
.brand-lockup strong { font-family: var(--font-serif); font-size: 1.17rem; font-weight: 600; letter-spacing: -.02em; }
.brand-lockup small { color: var(--jade); font-size: .63rem; font-weight: 800; letter-spacing: .22em; margin-top: .28rem; text-transform: uppercase; }
.navbar .nav-link { color: var(--ink); font-size: .79rem; font-weight: 700; padding: 1.8rem .8rem; }
.navbar .nav-link:hover { color: var(--rust); }
.navbar .dropdown-menu { border: 0; border-radius: 0; box-shadow: 0 26px 80px rgba(10,45,41,.18); margin-top: 0; }
.mega-menu { left: 50% !important; min-width: 680px; transform: translateX(-42%); }
.mega-menu a { display: block; font-size: .9rem; padding: .28rem 0; }
.mega-menu a:hover { color: var(--rust); }
.mega-menu .menu-label { color: var(--muted); display: block; font-size: .62rem; font-weight: 800; letter-spacing: .16em; margin-bottom: .6rem; text-transform: uppercase; }
.mega-feature strong, .mega-feature small { display: block; }
.mega-feature strong { font-family: var(--font-serif); font-size: 1.4rem; }
.mega-feature small { color: var(--muted); margin-top: .3rem; }
.nav-search { color: var(--ink); font-size: .78rem; text-decoration: none; text-transform: uppercase; }
.search-panel { background: white; border-bottom: 1px solid var(--line); position: fixed; left: 0; right: 0; top: 78px; z-index: 1029; box-shadow: 0 20px 50px rgba(10,45,41,.14); }

.hero-home { background: var(--forest); color: white; min-height: calc(100vh - 78px); overflow: hidden; position: relative; }
.hero-home::before { background: radial-gradient(circle at 75% 20%, rgba(214,173,101,.15), transparent 34%), linear-gradient(110deg, rgba(10,45,41,.4), transparent); content: ""; inset: 0; position: absolute; }
.hero-home::after { border: 1px solid rgba(255,255,255,.08); border-radius: 50%; content: ""; height: 900px; position: absolute; right: -360px; top: -420px; width: 900px; }
.min-vh-hero { min-height: calc(100vh - 78px); position: relative; z-index: 1; }
.hero-eyebrow { color: var(--gold); margin-bottom: 1.4rem; }
.hero-home h1 { font-size: clamp(4.2rem, 8vw, 8.8rem); line-height: .82; margin-bottom: 2rem; }
.hero-home h1 em { color: var(--gold); font-weight: 400; }
.hero-lead { color: rgba(255,255,255,.75); font-family: var(--font-serif); font-size: clamp(1.2rem, 2vw, 1.55rem); max-width: 680px; }
.hero-proof { border-top: 1px solid rgba(255,255,255,.18); display: flex; flex-wrap: wrap; gap: 1.4rem 2.2rem; margin-top: 4rem; padding-top: 1.4rem; }
.hero-proof span { color: rgba(255,255,255,.65); font-size: .75rem; }
.hero-proof strong { color: white; }
.canvas-card { height: 620px; position: relative; width: 100%; }
#vietnam-route-canvas { height: 100%; opacity: .9; width: 100%; }
.canvas-label { display: flex; flex-direction: column; position: absolute; }
.canvas-label::before { background: var(--gold); border: 3px solid rgba(214,173,101,.25); border-radius: 50%; box-shadow: 0 0 0 6px rgba(214,173,101,.12); content: ""; height: 12px; left: -25px; position: absolute; top: 7px; width: 12px; }
.canvas-label strong { font-family: var(--font-serif); font-size: 1.15rem; }
.canvas-label span { color: rgba(255,255,255,.58); font-size: .66rem; letter-spacing: .06em; }
.canvas-label-north { right: 5%; top: 17%; }.canvas-label-central { left: 1%; top: 50%; }.canvas-label-south { right: 8%; top: 79%; }
.scroll-cue { bottom: 2rem; color: rgba(255,255,255,.55); font-size: .63rem; font-weight: 700; letter-spacing: .14em; position: absolute; right: 1rem; text-transform: uppercase; writing-mode: vertical-rl; z-index: 2; }

.intro-section { padding: 10rem 0 5rem; }
.destination-grid-section { padding: 2rem 0 10rem; }
.destination-grid { display: grid; grid-template-columns: 1.25fr .75fr; grid-template-rows: repeat(2, 340px); gap: 1.3rem; }
.destination-card { color: white; overflow: hidden; position: relative; }
.destination-card-large { grid-row: 1 / 3; }
.destination-card img { height: 100%; transition: transform .8s ease; width: 100%; }
.destination-card::after { background: linear-gradient(0deg, rgba(8,31,28,.92), rgba(8,31,28,.05) 70%); content: ""; inset: 0; position: absolute; }
.destination-card:hover img { transform: scale(1.035); }
.destination-overlay { bottom: 0; left: 0; padding: 2.1rem; position: absolute; right: 0; z-index: 1; }
.destination-overlay > span { color: var(--gold); font-size: .64rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.destination-overlay h3 { font-size: clamp(2rem, 3vw, 3.4rem); margin: .25rem 0 .5rem; }
.destination-overlay h3 a::after { content: ""; inset: 0; position: absolute; }
.destination-overlay p { color: rgba(255,255,255,.72); margin: 0; max-width: 580px; }

.journeys-section { background: var(--forest-2); color: white; padding: 9rem 0; }
.section-heading { align-items: end; display: flex; justify-content: space-between; margin-bottom: 3.4rem; }
.section-heading h2 { font-size: clamp(2.8rem, 5vw, 5.6rem); line-height: 1; margin: .6rem 0 0; }
.journey-card { background: rgba(255,255,255,.045); height: 100%; }
.journey-card img { aspect-ratio: 1.5; filter: saturate(.86); width: 100%; }
.journey-body { padding: 1.7rem; }
.journey-meta { color: var(--gold); display: flex; flex-wrap: wrap; gap: 1.2rem; font-size: .65rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.journey-body h3 { font-size: 2rem; line-height: 1.05; margin: 1rem 0; }
.journey-body p { color: rgba(255,255,255,.65); font-size: .9rem; }
.arrow-link { color: white; font-size: .75rem; font-weight: 700; text-transform: uppercase; }
.arrow-link:hover { color: var(--gold); }

.guides-section { padding: 10rem 0; }
.guide-list { border-top: 1px solid var(--line); }
.guide-row { align-items: center; border-bottom: 1px solid var(--line); display: grid; gap: 1.5rem; grid-template-columns: 50px 1fr 40px; padding: 1.7rem .5rem; transition: background .2s ease, padding .2s ease; }
.guide-row:hover { background: white; padding-left: 1.1rem; padding-right: 1.1rem; }
.guide-number { color: var(--rust); font-family: var(--font-serif); }
.guide-row strong { display: block; font-family: var(--font-serif); font-size: 1.35rem; }
.guide-row small { color: var(--muted); display: block; margin-top: .3rem; }
.guide-arrow { font-size: 1.3rem; }
.review-section { background: var(--paper); padding: 8rem 0; text-align: center; }
.review-mark { color: var(--gold); font-family: var(--font-serif); font-size: 8rem; height: 5rem; line-height: 1; }
.review-section blockquote { font-family: var(--font-serif); font-size: clamp(1.9rem, 4vw, 3.8rem); line-height: 1.2; margin: 0 auto 2rem; max-width: 1000px; }
.review-section p { color: var(--muted); }

.content-hero, .tour-hero { color: white; min-height: 68vh; position: relative; }
.content-hero > img, .tour-hero > img { height: 68vh; inset: 0; position: absolute; width: 100%; }
.content-hero-overlay, .tour-hero-shade { background: linear-gradient(90deg, rgba(7,28,25,.87), rgba(7,28,25,.22)), linear-gradient(0deg, rgba(7,28,25,.75), transparent 60%); inset: 0; position: absolute; }
.content-hero-inner, .tour-hero-content { display: flex; flex-direction: column; justify-content: end; min-height: 68vh; padding-bottom: 5.5rem; position: relative; z-index: 1; }
.content-hero h1, .tour-hero h1 { font-size: clamp(4rem, 8vw, 8rem); line-height: .88; margin: .8rem 0 1.2rem; max-width: 1000px; }
.content-hero-inner > p, .tour-hero-content > p { color: rgba(255,255,255,.78); font-family: var(--font-serif); font-size: 1.35rem; max-width: 700px; }
.breadcrumb-light { font-size: .73rem; margin-bottom: 3rem; }
.breadcrumb-light a, .breadcrumb-light .active { color: rgba(255,255,255,.68); }
.breadcrumb-light .breadcrumb-item + .breadcrumb-item::before { color: rgba(255,255,255,.42); }
.article-section { padding: 7rem 0 9rem; }
.article-aside { padding-top: 1rem; top: 110px; }
.aside-label { color: var(--muted); display: block; font-size: .67rem; font-weight: 800; letter-spacing: .14em; margin-bottom: .8rem; text-transform: uppercase; }
#article-toc a { border-left: 1px solid var(--line); color: var(--muted); display: block; font-size: .78rem; padding: .45rem 0 .45rem 1rem; }
#article-toc a:hover { border-color: var(--rust); color: var(--rust); }
.verified-card { border-top: 1px solid var(--line); margin-top: 2rem; padding-top: 1.2rem; }
.verified-card span, .verified-card small { color: var(--muted); display: block; font-size: .68rem; }
.verified-card strong { display: block; font-family: var(--font-serif); font-size: 1.2rem; margin: .15rem 0; }
.article-body { font-family: var(--font-serif); font-size: 1.18rem; line-height: 1.8; }
.article-body .article-lead { color: var(--jade); font-size: 1.65rem; line-height: 1.55; margin-bottom: 3.5rem; }
.article-body h2 { font-size: 2.7rem; margin: 3.7rem 0 1.2rem; scroll-margin-top: 110px; }
.article-body h3 { font-size: 1.8rem; margin: 2.6rem 0 .9rem; scroll-margin-top: 110px; }
.article-body a { color: var(--rust); text-decoration: underline; text-underline-offset: .2rem; }
.article-body li { margin-bottom: .55rem; }
.article-body blockquote { border-left: 3px solid var(--gold); color: var(--jade); font-size: 1.45rem; margin: 2.5rem 0; padding-left: 1.5rem; }
.quick-plan { background: var(--paper); padding: 1.5rem; }
.quick-plan p { color: var(--muted); font-size: .83rem; }
.related-section { background: var(--paper); padding: 8rem 0; }
.section-heading-dark { color: var(--ink); }
.related-card img { aspect-ratio: 1.5; margin-bottom: 1.3rem; width: 100%; }
.related-card > span { color: var(--rust); font-size: .63rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.related-card h3 { font-size: 2rem; margin: .4rem 0; }
.related-card p { color: var(--muted); font-size: .9rem; }
.inline-journeys { background: var(--forest); color: white; padding: 7rem 0; }
.inline-journeys h2 { font-size: 3.7rem; line-height: 1; }
.inline-tour { align-items: center; border-top: 1px solid rgba(255,255,255,.15); display: grid; gap: 1rem; grid-template-columns: 70px 1fr 30px; padding: 1.4rem .5rem; }
.inline-tour:last-child { border-bottom: 1px solid rgba(255,255,255,.15); }
.inline-tour span { color: var(--gold); font-size: .72rem; }
.inline-tour strong { font-family: var(--font-serif); font-size: 1.4rem; }

.page-intro { padding: 9rem 0 6rem; }
.page-intro-dark { background: var(--forest); color: white; }
.page-intro h1 { font-size: clamp(4.2rem, 8vw, 8rem); line-height: .86; margin: 1rem 0 2rem; max-width: 1050px; }
.page-intro h1 em { color: var(--gold); }
.page-intro p { color: rgba(255,255,255,.68); font-family: var(--font-serif); font-size: 1.4rem; max-width: 700px; }
.tour-listing { padding: 3rem 0 10rem; }
.tour-list-row { align-items: center; border-bottom: 1px solid var(--line); display: grid; gap: 5rem; grid-template-columns: 1.05fr .95fr; padding: 5rem 0; }
.tour-list-image { position: relative; }
.tour-list-image > span { background: var(--gold); color: var(--forest); font-family: var(--font-serif); font-size: 1.5rem; left: -1rem; padding: .7rem 1rem; position: absolute; top: -1rem; z-index: 1; }
.tour-list-image img { aspect-ratio: 1.45; width: 100%; }
.tour-list-copy .journey-meta { color: var(--rust); }
.tour-list-copy h2 { font-size: clamp(2.7rem, 4vw, 4.3rem); line-height: 1; margin: 1rem 0 1.4rem; }
.tour-list-copy p { color: var(--muted); font-family: var(--font-serif); font-size: 1.15rem; }
.tour-hero { min-height: 82vh; }
.tour-hero > img { height: 82vh; }
.tour-hero-content { min-height: 82vh; }
.back-link { color: rgba(255,255,255,.75); font-size: .75rem; margin-bottom: auto; margin-top: 2rem; }
.tour-price { color: rgba(255,255,255,.72); font-size: .8rem; }
.tour-price strong { color: white; }
.tour-overview { padding: 8rem 0; }
.route-card { background: var(--forest); color: white; padding: 2rem; }
.tour-route-canvas { height: 220px; width: 100%; }
.route-places { color: rgba(255,255,255,.65); font-size: .72rem; line-height: 1.7; }
.itinerary-section { background: var(--forest-2); color: white; padding: 8rem 0; }
.itinerary-section h2 { font-size: 4.2rem; line-height: 1; }
.itinerary-section .accordion { --bs-accordion-bg: transparent; --bs-accordion-color: white; --bs-accordion-border-color: rgba(255,255,255,.16); --bs-accordion-btn-color: white; --bs-accordion-btn-bg: transparent; --bs-accordion-active-color: var(--gold); --bs-accordion-active-bg: transparent; }
.itinerary-section .accordion-button { box-shadow: none; font-family: var(--font-serif); font-size: 1.35rem; padding: 1.5rem 0; }
.itinerary-section .accordion-button span { color: var(--gold); font-family: var(--font-sans); font-size: .65rem; font-weight: 800; letter-spacing: .1em; min-width: 90px; text-transform: uppercase; }
.itinerary-section .accordion-body { color: rgba(255,255,255,.65); padding-left: 90px; }
.enquiry-section { background: var(--paper); padding: 8rem 0; }
.enquiry-section h2 { font-size: 4rem; line-height: 1; }
.contact-section { padding: 7rem 0 10rem; }
.process-list { list-style: none; padding: 0; }
.process-list li { border-top: 1px solid var(--line); padding: 1.3rem 0; }
.process-list strong, .process-list span { display: block; }
.process-list span { color: var(--muted); font-size: .87rem; }
.contact-form, .enquiry-form { background: white; box-shadow: 0 20px 70px rgba(16,60,54,.08); padding: clamp(1.5rem, 4vw, 3.5rem); }
.search-page-form { display: flex; gap: 1rem; max-width: 760px; }
.search-results { padding: 2rem 0 9rem; }
.results-count { color: var(--muted); margin-bottom: 2rem; }
.search-result { border-top: 1px solid var(--line); max-width: 900px; padding: 2rem 0; }
.search-result > span { color: var(--rust); font-size: .64rem; font-weight: 800; text-transform: uppercase; }
.search-result h2 { font-size: 2.4rem; margin: .4rem 0; }
.search-result p { color: var(--muted); }
.empty-state { background: var(--paper); padding: 3rem; }
.thank-you-section, .not-found-section { align-items: center; display: flex; min-height: 72vh; padding: 6rem 0; }
.thank-you-section h1, .not-found-section h1 { font-size: clamp(3rem, 7vw, 7rem); line-height: .94; margin: 1rem 0 2rem; }
.thank-you-section p, .not-found-section p { color: var(--muted); font-family: var(--font-serif); font-size: 1.3rem; margin: 0 auto 2rem; max-width: 680px; }
.error-number { color: rgba(16,60,54,.08); display: block; font-family: var(--font-serif); font-size: 9rem; height: 7rem; line-height: 1; }

.site-footer { background: #082724; color: white; }
.footer-callout { align-items: center; border-bottom: 1px solid rgba(255,255,255,.15); display: flex; justify-content: space-between; padding: 5rem 0; }
.footer-callout h2 { font-size: clamp(2.5rem, 5vw, 5rem); margin: .5rem 0 0; }
.brand-light { color: white; }
.brand-light small { color: var(--gold); }
.footer-copy { color: rgba(255,255,255,.55); max-width: 380px; }
.footer-title { color: var(--gold); font-family: var(--font-sans); font-size: .66rem; font-weight: 800; letter-spacing: .15em; margin-bottom: 1rem; text-transform: uppercase; }
.site-footer .col-6 a { color: rgba(255,255,255,.65); display: block; font-size: .84rem; padding: .28rem 0; }
.site-footer .col-6 a:hover { color: white; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.15); color: rgba(255,255,255,.4); display: flex; font-size: .69rem; justify-content: space-between; padding: 1.5rem 0; }

@media (max-width: 991.98px) {
    .navbar .nav-link { padding: .75rem 0; }
    .mega-menu { box-shadow: none !important; min-width: 0; transform: none; }
    .offcanvas-body { display: block !important; }
    .canvas-card { display: none; }
    .destination-grid { grid-template-columns: 1fr 1fr; grid-template-rows: 480px 320px; }
    .destination-card-large { grid-column: 1 / 3; grid-row: auto; }
    .article-aside { display: none; }
    .tour-list-row { gap: 2.5rem; }
    .section-heading { align-items: start; flex-direction: column; gap: 2rem; }
}

@media (max-width: 767.98px) {
    .container { --bs-gutter-x: 1.3rem; }
    .navbar { min-height: 68px; }
    .search-panel { top: 68px; }
    .hero-home { min-height: calc(100svh - 68px); }
    .min-vh-hero { min-height: calc(100svh - 68px); }
    .hero-home h1 { font-size: clamp(3.5rem, 17vw, 5.5rem); }
    .hero-proof { gap: 1rem; margin-top: 2.5rem; }
    .hero-proof span { flex-basis: 42%; }
    .scroll-cue { display: none; }
    .intro-section { padding: 6rem 0 3rem; }
    .destination-grid-section { padding-bottom: 6rem; }
    .destination-grid { display: block; }
    .destination-card { height: 430px; margin-bottom: 1rem; }
    .destination-overlay { padding: 1.4rem; }
    .journeys-section, .guides-section, .related-section { padding: 6rem 0; }
    .section-heading h2 { font-size: 3.4rem; }
    .guide-row { grid-template-columns: 38px 1fr 24px; }
    .guide-row small { display: none; }
    .content-hero, .content-hero > img, .content-hero-inner { min-height: 74svh; height: 74svh; }
    .tour-hero, .tour-hero > img, .tour-hero-content { min-height: 82svh; height: 82svh; }
    .content-hero h1, .tour-hero h1 { font-size: 3.7rem; }
    .content-hero-inner, .tour-hero-content { padding-bottom: 3rem; }
    .article-section { padding: 4rem 0 6rem; }
    .article-body { font-size: 1.08rem; }
    .article-body h2 { font-size: 2.2rem; }
    .tour-list-row { display: block; padding: 3rem 0; }
    .tour-list-copy { padding-top: 2rem; }
    .tour-list-copy h2 { font-size: 2.8rem; }
    .itinerary-section, .tour-overview, .enquiry-section, .contact-section { padding: 5rem 0; }
    .itinerary-section h2, .enquiry-section h2 { font-size: 3rem; }
    .itinerary-section .accordion-body { padding-left: 0; }
    .footer-callout { align-items: start; flex-direction: column; gap: 2rem; }
    .footer-bottom { gap: .5rem; flex-direction: column; }
    .search-page-form { flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* Vietnam in Time v2 — travel editorial product system */
.site-topbar { background: var(--forest-2); color: rgba(255,255,255,.68); font-size: .62rem; letter-spacing: .08em; padding: .42rem 0; text-transform: uppercase; }
.site-topbar a { margin-left: 1.4rem; }
.site-topbar a:hover { color: var(--gold); }
.site-header .navbar { min-height: 82px; }
.nav-actions .btn-link { color: var(--ink); font-size: .68rem; padding-inline: .55rem; text-decoration: none; }
.saved-trigger span { align-items: center; background: var(--rust); border-radius: 50%; color: white; display: inline-flex; font-size: .55rem; height: 18px; justify-content: center; margin-left: .2rem; width: 18px; }
.mega-menu { left: 50% !important; min-width: min(1180px, calc(100vw - 40px)); padding: 2rem !important; transform: translateX(-50%); }
.mega-menu-destinations { gap: 2.2rem; grid-template-columns: 1.1fr repeat(3, 1fr); }
.mega-menu-journeys { gap: 2rem; grid-template-columns: repeat(3, 1fr) 1.25fr; }
.mega-menu-compact { gap: 3rem; grid-template-columns: 1fr 1.2fr; min-width: min(760px, calc(100vw - 40px)); }
.mega-menu.show { display: grid; }
.mega-menu > div > a { border-bottom: 1px solid rgba(23,49,45,.08); padding: .55rem 0; }
.mega-menu > div > a:last-child { border-bottom: 0; }
.mega-menu a strong, .mega-menu a small { display: block; }
.mega-menu a strong { font-family: var(--font-serif); font-size: 1rem; font-weight: 500; }
.mega-menu a small { color: var(--muted); font-size: .68rem; line-height: 1.4; margin-top: .12rem; }
.mega-menu-intro { background: var(--paper); margin: -2rem 0 -2rem -2rem; padding: 2rem; }
.mega-menu-intro > strong { display: block; font-family: var(--font-serif); font-size: 1.8rem; font-weight: 400; line-height: 1.05; margin: .8rem 0; }
.mega-menu-intro p { color: var(--muted); font-size: .78rem; }
.mega-menu-intro > a, .menu-all-link { border-bottom: 0 !important; color: var(--rust); font-size: .68rem !important; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.mega-menu-cta { background: var(--forest); color: white; margin: -2rem -2rem -2rem 0; padding: 2rem; }
.mega-menu-cta > strong { display: block; font-family: var(--font-serif); font-size: 1.7rem; font-weight: 400; line-height: 1.1; margin: .7rem 0; }
.mega-menu-cta p { color: rgba(255,255,255,.65); font-size: .78rem; }
.mega-experience-photo img { aspect-ratio: 1.7; width: 100%; }
.mega-experience-photo p { color: var(--muted); font-family: var(--font-serif); font-size: 1rem; margin: .8rem 0 .2rem; }
.mega-experience-photo > a { color: var(--rust); font-size: .7rem !important; font-weight: 800; text-transform: uppercase; }
.menu-practical-grid { display: grid; gap: .8rem; grid-template-columns: 1fr 1fr; }
.menu-practical-grid a { background: var(--paper); border: 0 !important; padding: 1rem !important; }
.search-panel { top: 112px; }

.hero-v2 { color: white; height: min(880px, calc(100svh - 112px)); min-height: 680px; overflow: hidden; position: relative; }
.hero-v2-image { height: 100%; inset: 0; position: absolute; width: 100%; }
.hero-v2-shade { background: linear-gradient(90deg, rgba(4,25,22,.9) 0%, rgba(4,25,22,.62) 43%, rgba(4,25,22,.08) 76%), linear-gradient(0deg, rgba(4,25,22,.72), transparent 48%); inset: 0; position: absolute; }
.hero-v2-inner { height: 100%; position: relative; z-index: 1; }
.hero-v2-copy { left: 1rem; max-width: 780px; position: absolute; top: 12%; }
.hero-v2-copy h1 { font-size: clamp(4.5rem, 8.5vw, 9.2rem); line-height: .82; margin: 1.2rem 0 2rem; }
.hero-v2-copy h1 em { color: var(--gold); font-weight: 400; }
.hero-v2-copy > p { color: rgba(255,255,255,.76); font-family: var(--font-serif); font-size: clamp(1.18rem, 1.8vw, 1.48rem); max-width: 660px; }
.hero-v2-actions { align-items: center; display: flex; gap: 1.8rem; margin-top: 2rem; }
.play-link { align-items: center; display: flex; font-size: .7rem; font-weight: 800; gap: .65rem; letter-spacing: .06em; text-transform: uppercase; }
.play-link span { align-items: center; border: 1px solid rgba(255,255,255,.42); border-radius: 50%; display: inline-flex; height: 40px; justify-content: center; width: 40px; }
.journey-finder { align-items: end; background: rgba(251,249,244,.97); bottom: 0; color: var(--ink); display: grid; gap: 0; grid-template-columns: 1.05fr repeat(3, 1fr) auto; left: 1rem; max-width: 1120px; position: absolute; }
.finder-heading { border-right: 1px solid var(--line); padding: 1.25rem 1.4rem; }
.finder-heading strong { display: block; font-family: var(--font-serif); font-size: 1.35rem; font-weight: 500; }
.journey-finder label { border-right: 1px solid var(--line); padding: .85rem 1rem; }
.journey-finder label > span { color: var(--muted); display: block; font-size: .56rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.journey-finder select { appearance: none; background: transparent; border: 0; color: var(--ink); font-family: var(--font-serif); font-size: .9rem; outline: none; padding: .32rem 1rem .2rem 0; width: 100%; }
.journey-finder .btn { align-self: stretch; min-width: 185px; }
.hero-v2-foot { bottom: 0; display: grid; gap: 1.4rem; grid-template-columns: repeat(4, auto); position: absolute; right: 1rem; transform: translateY(calc(100% + 1.6rem)); }
.hero-v2-foot span { color: rgba(255,255,255,.62); font-size: .63rem; }
.hero-v2-foot strong { color: white; }

.manifesto-section { padding: 10rem 0; }
.manifesto-grid { display: grid; gap: 8rem; grid-template-columns: 1.2fr .8fr; }
.manifesto-grid h2 { font-size: clamp(3.6rem, 6.5vw, 7.3rem); line-height: .92; margin: 1rem 0 0; max-width: 900px; }
.manifesto-copy > p { color: var(--muted); font-family: var(--font-serif); font-size: 1.4rem; line-height: 1.55; }
.editorial-proof { border-top: 1px solid var(--line); display: grid; gap: 0 1rem; grid-template-columns: 36px 1fr; margin-top: 2rem; }
.editorial-proof span, .editorial-proof p { border-bottom: 1px solid var(--line); margin: 0; padding: 1rem 0; }
.editorial-proof span { color: var(--rust); font-family: var(--font-serif); }
.editorial-proof p { color: var(--muted); font-size: .78rem; }
.editorial-proof strong { color: var(--ink); }

.destination-showcase { background: var(--paper); padding: 9rem 0; }
.showcase-heading { align-items: end; display: flex; justify-content: space-between; margin-bottom: 3rem; }
.showcase-heading h2 { font-size: clamp(3.1rem, 5.5vw, 6rem); line-height: .92; margin: .8rem 0 0; }
.showcase-heading > p { color: var(--muted); font-family: var(--font-serif); font-size: 1.22rem; max-width: 480px; }
.region-switcher { border-bottom: 1px solid var(--line); display: flex; flex-wrap: wrap; }
.region-switcher button { background: transparent; border: 0; border-bottom: 2px solid transparent; color: var(--muted); font-size: .66rem; font-weight: 800; letter-spacing: .06em; margin-bottom: -1px; padding: .8rem 1rem; text-transform: uppercase; }
.region-switcher button.active { border-color: var(--rust); color: var(--ink); }
.destination-mosaic { display: grid; gap: 1rem; grid-auto-rows: 270px; grid-template-columns: repeat(12, 1fr); }
.destination-tile { color: white; grid-column: span 4; overflow: hidden; position: relative; }
.destination-tile-1, .destination-tile-6 { grid-column: span 6; grid-row: span 2; }
.destination-tile-2, .destination-tile-7 { grid-column: span 6; }
.destination-tile img { height: 100%; transition: transform .8s ease; width: 100%; }
.destination-tile:hover img { transform: scale(1.035); }
.destination-tile-shade { background: linear-gradient(0deg, rgba(5,28,24,.88), transparent 68%); inset: 0; position: absolute; }
.destination-tile-copy { bottom: 0; left: 0; padding: 1.5rem; position: absolute; right: 0; }
.destination-tile-copy > span { color: var(--gold); font-size: .58rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.destination-tile-copy h3 { font-size: clamp(1.8rem, 3vw, 3.4rem); margin: .15rem 0; }
.destination-tile-copy h3 a::after { content: ""; inset: 0; position: absolute; }
.destination-tile-copy p { color: rgba(255,255,255,.7); font-size: .7rem; margin: 0; }
.destination-tile[hidden] { display: none; }
.showcase-footer { align-items: center; display: flex; justify-content: space-between; margin-top: 2.5rem; }
.showcase-footer p { color: var(--muted); margin: 0; }

.region-story { background: var(--forest-2); color: white; }
.region-story-grid { display: grid; grid-template-columns: 1fr 1fr; min-height: 780px; }
.region-story-image img { height: 100%; width: 100%; }
.region-story-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(3rem, 7vw, 8rem); }
.region-story-copy h2 { font-size: clamp(3.5rem, 6vw, 6.3rem); line-height: .92; margin: .8rem 0 2.2rem; }
.region-story-list { border-top: 1px solid rgba(255,255,255,.15); margin-bottom: 2rem; }
.region-story-list a { align-items: center; border-bottom: 1px solid rgba(255,255,255,.15); display: grid; gap: 1rem; grid-template-columns: 34px 1fr; padding: 1rem 0; }
.region-story-list a > span { color: var(--gold); font-family: var(--font-serif); grid-row: 1 / 3; }
.region-story-list strong { font-family: var(--font-serif); font-size: 1.35rem; font-weight: 400; }
.region-story-list small { color: rgba(255,255,255,.55); }
.region-story-copy > .btn { align-self: start; }

.experience-section { padding: 10rem 0; }
.experience-grid { display: grid; gap: 1rem; grid-template-columns: repeat(2, 1fr); }
.experience-card { align-items: center; border: 1px solid var(--line); display: grid; gap: 1rem; grid-template-columns: 45px 180px 1fr; padding: 1rem; transition: background .2s ease, transform .2s ease; }
.experience-card:hover { background: white; transform: translateY(-3px); }
.experience-card img { aspect-ratio: 1.45; height: 100%; }
.experience-index { color: var(--rust); font-family: var(--font-serif); font-size: 1.1rem; text-align: center; }
.experience-card h3 { font-size: 1.6rem; margin: 0; }
.experience-card p { color: var(--muted); font-size: .76rem; margin: .3rem 0; }
.experience-card div > span { color: var(--rust); font-size: .63rem; font-weight: 800; text-transform: uppercase; }

.journeys-v2 { background: var(--forest); color: white; padding: 9rem 0; }
.journey-feature-grid { display: grid; gap: 1.2rem; grid-template-columns: 1.25fr .75fr; }
.journey-feature { background: rgba(255,255,255,.045); display: grid; grid-template-columns: .9fr 1.1fr; }
.journey-feature-main { grid-row: span 2; grid-template-columns: 1fr; }
.journey-feature-image { min-height: 250px; position: relative; }
.journey-feature-main .journey-feature-image { min-height: 520px; }
.journey-feature-image img { height: 100%; width: 100%; }
.save-tour { background: rgba(251,249,244,.93); border: 0; border-radius: 30px; color: var(--ink); font-size: .61rem; font-weight: 800; letter-spacing: .05em; padding: .65rem .85rem; position: absolute; right: 1rem; text-transform: uppercase; top: 1rem; z-index: 2; }
.save-tour.saved { background: var(--rust); color: white; }
.journey-feature-copy { padding: 1.6rem; }
.journey-feature-main .journey-feature-copy { padding: 2rem; }
.journey-feature-copy h3 { font-size: clamp(2rem, 3.2vw, 3.8rem); line-height: 1; margin: .8rem 0; }
.journey-feature:not(.journey-feature-main) .journey-feature-copy h3 { font-size: 1.9rem; }
.journey-feature-copy p { color: rgba(255,255,255,.62); font-size: .82rem; }
.journey-actions { display: flex; gap: 1rem; justify-content: center; margin-top: 2.5rem; }

.planner-teaser { background: var(--paper); padding: 9rem 0; }
.planner-teaser-grid { align-items: center; display: grid; gap: 7rem; grid-template-columns: .9fr 1.1fr; }
.planner-teaser h2 { font-size: clamp(3.5rem, 5.5vw, 6rem); line-height: .94; margin: .8rem 0 1.5rem; }
.planner-teaser p { color: var(--muted); font-family: var(--font-serif); font-size: 1.18rem; }
.planner-preview { background: var(--forest-2); color: white; padding: 2rem; }
.planner-preview-top { display: flex; justify-content: space-between; }
.planner-preview-top span { color: var(--gold); font-size: .63rem; font-weight: 800; text-transform: uppercase; }
.planner-preview-top strong { font-family: var(--font-serif); font-weight: 400; }
#planner-preview-canvas { height: 360px; width: 100%; }
.planner-preview-route { display: flex; flex-wrap: wrap; justify-content: space-between; }
.planner-preview-route span { color: rgba(255,255,255,.55); font-size: .62rem; }
.guides-v2 { padding: 9rem 0; }
.guides-v2 h2 { font-size: clamp(3.2rem, 5vw, 5.6rem); line-height: .95; margin: .8rem 0 1.2rem; }
.guides-v2 .col-lg-4 > p { color: var(--muted); font-family: var(--font-serif); font-size: 1.1rem; }
.guide-ledger { border-top: 1px solid var(--line); }
.guide-ledger > a { align-items: center; border-bottom: 1px solid var(--line); display: grid; gap: 1rem; grid-template-columns: 40px 1fr 120px 24px; padding: 1.25rem .5rem; transition: background .2s ease; }
.guide-ledger > a:hover { background: white; }
.guide-ledger > a > span { color: var(--rust); font-family: var(--font-serif); }
.guide-ledger strong, .guide-ledger small { display: block; }
.guide-ledger strong { font-family: var(--font-serif); font-size: 1.25rem; }
.guide-ledger small, .guide-ledger time { color: var(--muted); font-size: .66rem; }
.review-v2 { background: var(--rust); color: white; padding: 8rem 0; }
.review-v2-grid { align-items: start; display: grid; gap: 2rem; grid-template-columns: 80px 1fr 220px; margin-top: 2rem; }
.review-v2-mark { color: var(--gold); font-family: var(--font-serif); font-size: 7rem; line-height: .8; }
.review-v2 blockquote { font-family: var(--font-serif); font-size: clamp(2.1rem, 4vw, 4.3rem); line-height: 1.1; margin: 0; }
.review-v2-byline { border-top: 1px solid rgba(255,255,255,.28); padding-top: 1rem; }
.review-v2-byline strong, .review-v2-byline span, .review-v2-byline small { display: block; }
.review-v2-byline span { color: rgba(255,255,255,.68); font-size: .72rem; margin: .3rem 0; }
.review-v2-byline small { color: var(--gold); }

.directory-hero, .tours-hero-v2, .guide-hub-hero { background: var(--forest-2); color: white; padding: 9rem 0 7rem; }
.directory-hero-grid { align-items: end; display: grid; gap: 5rem; grid-template-columns: 1.35fr .65fr; }
.directory-hero h1, .tours-hero-v2 h1, .guide-hub-hero h1 { font-size: clamp(4.6rem, 8vw, 8.5rem); line-height: .85; margin: 1rem 0; }
.directory-hero h1 em, .tours-hero-v2 h1 em, .guide-hub-hero h1 em { color: var(--gold); font-weight: 400; }
.directory-hero-grid p, .tours-hero-v2 p, .guide-hub-hero p { color: rgba(255,255,255,.68); font-family: var(--font-serif); font-size: 1.25rem; }
.directory-filter-bar { background: white; border-bottom: 1px solid var(--line); position: sticky; top: 112px; z-index: 1010; }
.directory-filter-bar .container { display: flex; overflow-x: auto; }
.directory-filter-bar a { border-bottom: 2px solid transparent; color: var(--muted); font-size: .68rem; font-weight: 800; padding: 1.2rem 1.3rem; text-transform: uppercase; white-space: nowrap; }
.directory-filter-bar a.active { border-color: var(--rust); color: var(--ink); }
.destination-directory { padding: 6rem 0 9rem; }
.directory-intro { align-items: center; border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; margin-bottom: 4rem; padding-bottom: 1rem; }
.directory-intro span { color: var(--rust); font-family: var(--font-serif); font-size: 1.2rem; }
.directory-intro p { color: var(--muted); font-size: .75rem; margin: 0; max-width: 620px; }
.directory-grid { display: grid; gap: 5rem 2rem; grid-template-columns: repeat(2, 1fr); }
.directory-card-image { display: block; overflow: hidden; position: relative; }
.directory-card-image img { aspect-ratio: 1.4; transition: transform .8s ease; width: 100%; }
.directory-card:hover img { transform: scale(1.035); }
.directory-card-image > span { background: var(--forest); bottom: 0; color: var(--gold); font-size: .58rem; font-weight: 800; left: 0; letter-spacing: .12em; padding: .65rem 1rem; position: absolute; text-transform: uppercase; }
.directory-card-copy { padding-top: 1.5rem; }
.directory-card-copy h2 { font-size: 3rem; line-height: 1; }
.directory-card-copy > p { color: var(--muted); }
.directory-card dl { border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); display: grid; grid-template-columns: repeat(3, 1fr); margin: 1.4rem 0; padding: .8rem 0; }
.directory-card dl div { padding-right: .7rem; }
.directory-card dt { color: var(--muted); font-size: .54rem; letter-spacing: .08em; text-transform: uppercase; }
.directory-card dd { font-family: var(--font-serif); font-size: .85rem; margin: .2rem 0 0; }
.compare-regions { background: var(--paper); padding: 8rem 0; }
.region-comparison { display: grid; gap: 1px; grid-template-columns: repeat(3, 1fr); }
.region-comparison article { background: white; padding: 2.4rem; }
.region-comparison article > span { color: var(--rust); font-size: .63rem; font-weight: 800; text-transform: uppercase; }
.region-comparison h3 { font-size: 2.1rem; margin: .6rem 0; }
.region-comparison p { color: var(--muted); }
.region-comparison strong { font-size: .72rem; }

.experience-directory { padding: 8rem 0; }
.experience-directory-grid { display: grid; gap: 7rem; }
.experience-directory-card { align-items: center; display: grid; gap: 2rem; grid-template-columns: 60px 1fr 1fr; }
.experience-directory-card:nth-child(even) { grid-template-columns: 60px 1fr 1fr; }
.experience-directory-number { color: var(--rust); font-family: var(--font-serif); font-size: 2rem; }
.experience-directory-card img { aspect-ratio: 1.45; width: 100%; }
.experience-directory-card h2 { font-size: 3.5rem; margin: .6rem 0; }
.experience-directory-card p { color: var(--muted); font-family: var(--font-serif); font-size: 1.1rem; }
.guide-search { background: white; display: flex; margin-top: 2rem; max-width: 700px; }
.guide-search input { border: 0; flex: 1; outline: 0; padding: 1rem 1.2rem; }
.guide-search button { background: var(--rust); border: 0; color: white; font-size: .68rem; font-weight: 800; padding: 0 1.4rem; text-transform: uppercase; }
.guide-decision-grid { padding: 6rem 0 9rem; }
.guide-category-grid { display: grid; gap: 1px; grid-template-columns: repeat(4, 1fr); margin-bottom: 6rem; }
.guide-category-grid a { background: var(--paper); padding: 1.5rem; }
.guide-category-grid span, .guide-category-grid strong, .guide-category-grid small { display: block; }
.guide-category-grid span { color: var(--rust); font-family: var(--font-serif); }
.guide-category-grid strong { font-family: var(--font-serif); font-size: 1.25rem; margin: .5rem 0; }
.guide-category-grid small { color: var(--muted); }
.guide-hub-list { border-top: 1px solid var(--line); }
.guide-hub-list article { align-items: center; border-bottom: 1px solid var(--line); display: grid; gap: 2rem; grid-template-columns: 50px 1fr 180px; padding: 2rem 0; }
.guide-hub-index { color: var(--rust); font-family: var(--font-serif); }
.guide-hub-list article > div:nth-child(2) > span { color: var(--jade); font-size: .6rem; font-weight: 800; text-transform: uppercase; }
.guide-hub-list h2 { font-size: 2rem; margin: .3rem 0; }
.guide-hub-list p { color: var(--muted); margin: 0; }
.guide-freshness small, .guide-freshness strong, .guide-freshness a { display: block; }
.guide-freshness small { color: var(--muted); font-size: .58rem; text-transform: uppercase; }
.guide-freshness strong { font-family: var(--font-serif); margin: .25rem 0 .7rem; }
.guide-freshness a { color: var(--rust); font-size: .65rem; font-weight: 800; text-transform: uppercase; }

.destination-hero-v2 { color: white; height: 78svh; min-height: 680px; position: relative; }
.destination-hero-v2 > img { height: 100%; inset: 0; position: absolute; width: 100%; }
.destination-hero-v2-shade { background: linear-gradient(90deg, rgba(5,28,24,.88), rgba(5,28,24,.15)), linear-gradient(0deg, rgba(5,28,24,.72), transparent 55%); inset: 0; position: absolute; }
.destination-hero-v2-content { display: flex; flex-direction: column; height: 100%; justify-content: end; padding-bottom: 5rem; position: relative; }
.destination-hero-v2 h1 { font-size: clamp(5rem, 10vw, 10rem); line-height: .82; margin: .7rem 0 1.4rem; }
.destination-hero-v2-content > p { color: rgba(255,255,255,.78); font-family: var(--font-serif); font-size: 1.4rem; max-width: 700px; }
.destination-hero-actions { display: flex; gap: 1rem; margin-top: 1rem; }
.destination-local-nav { background: white; border-bottom: 1px solid var(--line); position: sticky; top: 112px; z-index: 1010; }
.destination-local-nav .container { display: flex; overflow-x: auto; }
.destination-local-nav a { color: var(--muted); font-size: .63rem; font-weight: 800; padding: 1.1rem 1.2rem; text-transform: uppercase; white-space: nowrap; }
.destination-local-nav a:last-child { background: var(--rust); color: white; margin-left: auto; }
.destination-overview { background: var(--paper); padding: 7rem 0; }
.destination-overview-grid { display: grid; gap: 6rem; grid-template-columns: 1fr 1fr; }
.destination-overview h2 { font-size: clamp(2.8rem, 4.5vw, 5rem); line-height: 1; margin-top: .8rem; }
.destination-facts { display: grid; grid-template-columns: 1fr 1fr; }
.destination-facts div { border-bottom: 1px solid var(--line); padding: 1.3rem .8rem; }
.destination-facts span, .destination-facts strong { display: block; }
.destination-facts span { color: var(--muted); font-size: .57rem; font-weight: 800; text-transform: uppercase; }
.destination-facts strong { font-family: var(--font-serif); font-size: 1.05rem; margin-top: .3rem; }
.destination-guide-v2 { padding: 8rem 0; }
.destination-note { background: var(--paper); margin-top: 3rem; padding: 2rem; }
.destination-note > span { color: var(--rust); font-family: var(--font-sans); font-size: .61rem; font-weight: 800; text-transform: uppercase; }
.destination-note a { font-family: var(--font-sans); font-size: .68rem; font-weight: 800; text-transform: uppercase; }
.when-to-go { background: var(--forest-2); color: white; padding: 8rem 0; }
.when-to-go h2 { font-size: clamp(3.2rem, 5vw, 5.8rem); line-height: .95; margin: .8rem 0 1.3rem; }
.when-to-go p { color: rgba(255,255,255,.6); font-family: var(--font-serif); font-size: 1.1rem; }
.climate-card { background: rgba(255,255,255,.055); padding: 1.5rem; }
.climate-canvas { height: 360px; width: 100%; }
.climate-legend { display: flex; gap: 1.2rem; }
.climate-legend span { align-items: center; color: rgba(255,255,255,.55); display: flex; font-size: .6rem; gap: .4rem; }
.climate-legend i { border-radius: 50%; display: inline-block; height: 8px; width: 8px; }
.climate-legend .best { background: var(--gold); }.climate-legend .mixed { background: #8ca69d; }.climate-legend .wet { background: #517c8c; }
.destination-experiences, .nearby-destinations { padding: 8rem 0; }
.experience-mini-grid { display: grid; gap: 1rem; grid-template-columns: repeat(4, 1fr); }
.experience-mini-grid a { border-top: 1px solid var(--line); padding-top: 1rem; }
.experience-mini-grid img { aspect-ratio: 1.5; margin-bottom: 1rem; width: 100%; }
.experience-mini-grid span, .experience-mini-grid small { display: block; }
.experience-mini-grid span { font-family: var(--font-serif); font-size: 1.2rem; }
.experience-mini-grid small { color: var(--muted); margin-top: .3rem; }
.destination-journeys { background: var(--forest); color: white; padding: 8rem 0; }
.journey-mini { background: rgba(255,255,255,.05); height: 100%; position: relative; }
.journey-mini img { aspect-ratio: 1.35; width: 100%; }
.journey-mini > div { padding: 1rem; }
.journey-mini > div > span { color: var(--gold); font-size: .58rem; text-transform: uppercase; }
.journey-mini h3 { font-size: 1.45rem; margin-top: .4rem; }
.nearby-list { border-top: 1px solid var(--line); }
.nearby-list a { align-items: center; border-bottom: 1px solid var(--line); display: grid; gap: 1.5rem; grid-template-columns: 130px 1fr 30px; padding: 1rem 0; }
.nearby-list img { aspect-ratio: 1.4; width: 100%; }
.nearby-list strong, .nearby-list small { display: block; }
.nearby-list strong { font-family: var(--font-serif); font-size: 1.35rem; }
.nearby-list small { color: var(--muted); }

.tours-hero-v2 > .container, .guide-hub-hero > .container { max-width: 1200px; }
.tours-hero-v2 p, .guide-hub-hero p { max-width: 720px; }
.tour-filters-section { background: var(--paper); border-bottom: 1px solid var(--line); padding: 2rem 0; }
.tour-filters { align-items: end; display: grid; gap: 1rem; grid-template-columns: repeat(3, 1fr) auto auto; }
.tour-filters label > span { color: var(--muted); display: block; font-size: .58rem; font-weight: 800; margin-bottom: .3rem; text-transform: uppercase; }
.tour-filters select { background: white; border: 1px solid var(--line); min-height: 48px; padding: .7rem .9rem; width: 100%; }
.clear-filters { color: var(--rust); font-size: .65rem; font-weight: 800; padding: .8rem 0; text-transform: uppercase; }
.tour-results-meta { display: flex; justify-content: space-between; padding-top: 1.5rem; }
.tour-results-meta strong { font-family: var(--font-serif); font-size: 1.2rem; }
.tour-results-meta span { color: var(--muted); font-size: .68rem; }
.tour-collection-v2 { padding: 7rem 0 9rem; }
.tour-card-grid { display: grid; gap: 5rem 2rem; grid-template-columns: repeat(2, 1fr); }
.tour-card-v2-image { overflow: hidden; position: relative; }
.tour-card-v2-image img { aspect-ratio: 1.4; transition: transform .8s ease; width: 100%; }
.tour-card-v2:hover img { transform: scale(1.035); }
.tour-region { background: var(--forest); bottom: 0; color: var(--gold); font-size: .58rem; font-weight: 800; left: 0; padding: .65rem 1rem; position: absolute; text-transform: uppercase; }
.tour-card-v2-copy { padding-top: 1.4rem; }
.tour-card-v2-copy .journey-meta { color: var(--rust); }
.tour-card-v2 h2 { font-size: 3rem; line-height: 1; margin: .7rem 0 1rem; }
.tour-card-v2-copy > p { color: var(--muted); }
.tour-card-v2-foot { align-items: center; border-top: 1px solid var(--line); display: flex; justify-content: space-between; margin-top: 1.2rem; padding-top: 1rem; }
.tour-card-v2-foot > span { color: var(--muted); font-size: .72rem; }
.tour-card-v2-foot > a { color: var(--rust); font-size: .66rem; font-weight: 800; text-transform: uppercase; }
.custom-route-band { background: var(--rust); color: white; padding: 7rem 0; text-align: center; }
.custom-route-band h2 { font-size: clamp(3.5rem, 6vw, 6.5rem); margin: .6rem 0; }
.custom-route-band p { color: rgba(255,255,255,.7); font-family: var(--font-serif); font-size: 1.2rem; }

.planner-page { background: var(--paper); min-height: 100vh; padding-bottom: 7rem; }
.planner-page-intro { background: var(--forest-2); color: white; padding: 7rem max(1rem, calc((100vw - 1120px) / 2)); text-align: center; }
.planner-page-intro h1 { font-size: clamp(4rem, 7vw, 7rem); line-height: .88; margin: 1rem 0; }
.planner-page-intro p { color: rgba(255,255,255,.65); font-family: var(--font-serif); font-size: 1.2rem; margin: auto; max-width: 700px; }
.planner-form { background: white; box-shadow: 0 30px 90px rgba(15,49,43,.1); margin: -2rem auto 0; max-width: 1050px; padding: clamp(1.5rem, 4vw, 4rem); position: relative; }
.planner-progress { background: var(--paper); height: 3px; margin-bottom: 3rem; }
.planner-progress span { background: var(--rust); display: block; height: 100%; transition: width .3s ease; }
.planner-question { text-align: center; }
.planner-question > span { color: var(--rust); font-size: .62rem; font-weight: 800; text-transform: uppercase; }
.planner-question h2 { font-size: clamp(2.5rem, 4.2vw, 4.5rem); line-height: 1; margin: .6rem 0; }
.planner-question p { color: var(--muted); }
.choice-grid { display: grid; gap: 1rem; grid-template-columns: repeat(4, 1fr); margin-top: 2.5rem; }
.choice-grid label { cursor: pointer; }
.choice-grid input { opacity: 0; position: absolute; }
.choice-grid label > span { border: 1px solid var(--line); display: flex; flex-direction: column; min-height: 125px; padding: 1.4rem; transition: .2s ease; }
.choice-grid input:checked + span { background: var(--forest); border-color: var(--forest); color: white; transform: translateY(-3px); }
.choice-grid strong { font-family: var(--font-serif); font-size: 1.25rem; font-weight: 400; }
.choice-grid small { color: var(--muted); margin-top: .35rem; }
.choice-grid input:checked + span small { color: rgba(255,255,255,.6); }
.days-control { margin: 4rem auto; max-width: 720px; text-align: center; }
.days-control output { display: block; font-family: var(--font-serif); font-size: 5rem; margin-bottom: 2rem; }
.days-control input { accent-color: var(--rust); width: 100%; }
.days-control > div { color: var(--muted); display: flex; font-size: .65rem; justify-content: space-between; }
.budget-choice { margin: 2rem auto 0; max-width: 460px; }
.budget-choice label { color: var(--muted); font-size: .68rem; text-transform: uppercase; }
.budget-choice select { border: 1px solid var(--line); display: block; margin-top: .4rem; padding: .8rem; width: 100%; }
.planner-contact-grid { display: grid; gap: 1rem; grid-template-columns: 1fr 1fr; margin-top: 2.5rem; }
.planner-contact-grid label > span { color: var(--muted); display: block; font-size: .65rem; font-weight: 800; margin-bottom: .35rem; text-transform: uppercase; }
.planner-contact-grid input, .planner-contact-grid textarea { border: 1px solid var(--line); padding: .8rem; width: 100%; }
.planner-contact-grid .full { grid-column: 1 / 3; }
.planner-controls { align-items: center; display: flex; justify-content: space-between; margin-top: 3rem; }
.planner-controls [data-planner-next], .planner-controls [data-planner-submit] { margin-left: auto; }
.saved-trips-panel { --bs-offcanvas-width: min(440px, 100vw); }
.saved-trips-panel .offcanvas-header { align-items: start; border-bottom: 1px solid var(--line); padding: 1.5rem; }
.saved-trips-panel h2 { font-size: 2rem; margin: .3rem 0 0; }
.saved-trip { align-items: center; border-bottom: 1px solid var(--line); display: grid; gap: .8rem; grid-template-columns: 96px 1fr; padding: 1rem 0; }
.saved-trip img { aspect-ratio: 1.26; width: 100%; }
.saved-trip small { color: var(--muted); display: block; font-size: .62rem; }
.saved-trip h3 { font-size: 1.1rem; margin: .2rem 0; }
.saved-trip button { background: transparent; border: 0; color: var(--rust); font-size: .6rem; padding: 0; text-transform: uppercase; }
.saved-empty { color: var(--muted); font-family: var(--font-serif); padding: 2rem 0; }

.tour-hero-v2-detail .tour-hero-content { max-width: 950px; }
.tour-hero-v2-detail .tour-hero-actions { display: flex; flex-wrap: wrap; gap: 1rem; }
.tour-save-button.saved { background: var(--gold); border-color: var(--gold); color: var(--forest); }
.tour-facts-band { background: var(--paper); border-bottom: 1px solid var(--line); }
.tour-facts-band .container { display: grid; grid-template-columns: repeat(5, 1fr); }
.tour-facts-band .container > div { border-right: 1px solid var(--line); padding: 1.4rem; }
.tour-facts-band .container > div:first-child { border-left: 1px solid var(--line); }
.tour-facts-band span, .tour-facts-band strong { display: block; }
.tour-facts-band span { color: var(--muted); font-size: .56rem; font-weight: 800; text-transform: uppercase; }
.tour-facts-band strong { font-family: var(--font-serif); margin-top: .3rem; }
.tour-local-nav { background: white; border-bottom: 1px solid var(--line); position: sticky; top: 112px; z-index: 1000; }
.tour-local-nav .container { display: flex; overflow-x: auto; }
.tour-local-nav a { color: var(--muted); font-size: .6rem; font-weight: 800; padding: 1rem 1.3rem; text-transform: uppercase; white-space: nowrap; }
.route-card > p { color: var(--muted); font-size: .78rem; margin-top: 1rem; }
.itinerary-intro { position: sticky; top: 200px; }
.itinerary-intro > p { color: rgba(255,255,255,.65); }
.tour-reviews { background: var(--paper); padding: 8rem 0; }
.tour-review-grid { display: grid; gap: 1px; grid-template-columns: repeat(3, 1fr); margin-top: 2rem; }
.tour-review-grid blockquote { background: white; margin: 0; padding: 2rem; }
.tour-review-grid blockquote p { font-family: var(--font-serif); font-size: 1.5rem; line-height: 1.4; }
.tour-review-grid footer { color: var(--muted); font-size: .66rem; font-weight: 800; text-transform: uppercase; }
.search-hero-v2 { background: var(--forest-2); color: white; padding: 8rem 0 6rem; }
.search-hero-v2 h1 { font-size: clamp(4.5rem, 8vw, 8rem); line-height: .86; margin: 1rem 0 2rem; }
.search-page-form-v2 { background: white; display: grid; grid-template-columns: 1fr auto; max-width: 850px; }
.search-page-form-v2 input { border: 0; font-size: 1.1rem; min-width: 0; outline: 0; padding: 1.2rem 1.4rem; }
.search-suggestions { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 1rem; }
.search-suggestions span { color: rgba(255,255,255,.45); }
.search-suggestions a { color: var(--gold); }
.search-results-v2 { background: var(--paper); padding: 7rem 0 9rem; }
.search-results-heading { margin-bottom: 3rem; max-width: 820px; }
.search-results-heading h2 { font-size: clamp(2.7rem, 4.5vw, 5rem); line-height: 1; }
.search-result-grid { display: grid; gap: 4rem 2rem; grid-template-columns: repeat(2, 1fr); }
.search-result-card { display: grid; gap: 1.4rem; grid-template-columns: 42% 1fr; }
.search-result-image { background: var(--forest); display: grid; min-height: 240px; overflow: hidden; place-items: center; }
.search-result-image img { height: 100%; transition: transform .6s ease; width: 100%; }
.search-result-card:hover img { transform: scale(1.04); }
.search-result-image > span { color: var(--gold); font-family: var(--font-serif); font-size: 4rem; }
.search-result-card > div > span { color: var(--rust); font-size: .58rem; font-weight: 800; text-transform: uppercase; }
.search-result-card h3 { font-size: 2rem; line-height: 1.05; margin: .45rem 0; }
.search-result-card p { color: var(--muted); font-size: .85rem; }
.search-result-link { color: var(--rust); font-size: .62rem; font-weight: 800; text-transform: uppercase; }

@media (max-width: 1199.98px) {
    .mega-menu { left: auto !important; min-width: 0; transform: none; }
    .mega-menu-destinations, .mega-menu-journeys { grid-template-columns: repeat(2, 1fr); }
    .mega-menu-intro, .mega-menu-cta { margin: 0; }
    .journey-finder { grid-template-columns: 1fr 1fr; max-width: 640px; }
    .finder-heading { grid-column: 1 / 3; }
    .journey-finder .btn { min-height: 58px; }
    .hero-v2-foot { display: none; }
    .manifesto-grid { gap: 4rem; }
    .experience-card { grid-template-columns: 36px 130px 1fr; }
    .journey-feature-grid { grid-template-columns: 1fr; }
    .journey-feature-main { grid-row: auto; }
}

@media (max-width: 991.98px) {
    .site-header .navbar { min-height: 72px; }
    .search-panel { top: 72px; }
    #siteMenu {
        --bs-offcanvas-width: min(420px, 100vw);
        background: var(--cream);
        border-left: 0;
        box-shadow: -18px 0 50px rgba(10,45,41,.18);
        height: 100dvh;
        max-width: 100vw;
    }
    #siteMenu .offcanvas-header {
        border-bottom: 1px solid var(--line);
        min-height: 73px;
        padding: .9rem 1.2rem;
    }
    #siteMenu .offcanvas-body {
        align-items: stretch !important;
        display: flex !important;
        flex-direction: column;
        overflow-x: hidden;
        overflow-y: auto;
        padding: .4rem 1.2rem 1.5rem;
    }
    #siteMenu .navbar-nav { margin: 0 !important; width: 100%; }
    #siteMenu .nav-item { border-bottom: 1px solid var(--line); width: 100%; }
    #siteMenu .nav-link {
        align-items: center;
        display: flex;
        font-family: var(--font-serif);
        font-size: 1.25rem;
        justify-content: space-between;
        padding: 1rem .15rem;
        white-space: normal;
    }
    #siteMenu .dropdown-toggle::after { margin-left: 1rem; }
    #siteMenu .dropdown-menu {
        background: transparent;
        box-shadow: none;
        margin: 0;
        min-width: 0;
        position: static !important;
        transform: none !important;
        width: 100%;
    }
    #siteMenu .mega-menu.show { display: block; padding: 0 0 .85rem !important; }
    #siteMenu .mega-menu > div { margin: 0; padding: 0; }
    #siteMenu .mega-menu-intro, #siteMenu .mega-menu-cta, #siteMenu .mega-experience-photo, #siteMenu .menu-practical-grid { display: none; }
    #siteMenu .menu-label { color: var(--rust); margin: .9rem 0 .35rem; }
    #siteMenu .mega-menu a { border: 0; padding: .48rem .15rem; }
    #siteMenu .mega-menu a strong { font-family: var(--font-sans); font-size: .87rem; font-weight: 700; }
    #siteMenu .mega-menu a small { color: var(--muted); display: block; font-size: .72rem; }
    #siteMenu .nav-actions {
        align-items: stretch !important;
        flex-direction: column;
        gap: .55rem !important;
        padding-top: 1.25rem;
        width: 100%;
    }
    #siteMenu .nav-actions .btn { justify-content: center; margin: 0; width: 100%; }
    #siteMenu .nav-actions .btn-link { border: 1px solid var(--line); text-decoration: none; }
    .hero-v2 { height: 860px; }
    .hero-v2-copy { max-width: 700px; top: 9%; }
    .journey-finder { bottom: 2rem; }
    .manifesto-grid, .region-story-grid, .planner-teaser-grid, .directory-hero-grid, .destination-overview-grid { gap: 3rem; grid-template-columns: 1fr; }
    .destination-mosaic { grid-auto-rows: 300px; }
    .destination-tile, .destination-tile-1, .destination-tile-2, .destination-tile-6, .destination-tile-7 { grid-column: span 6; grid-row: span 1; }
    .region-story-grid { min-height: 0; }
    .region-story-image img { height: 600px; }
    .experience-grid { grid-template-columns: 1fr; }
    .review-v2-grid { grid-template-columns: 60px 1fr; }
    .review-v2-byline { grid-column: 2; }
    .directory-filter-bar, .destination-local-nav { top: 72px; }
    .experience-directory-card { grid-template-columns: 45px 1fr; }
    .experience-directory-card img { grid-column: 2; }
    .experience-directory-card > div:last-child { grid-column: 2; }
    .guide-category-grid, .experience-mini-grid { grid-template-columns: repeat(2, 1fr); }
    .tour-filters { grid-template-columns: 1fr 1fr; }
    .tour-card-grid { grid-template-columns: 1fr; }
    .choice-grid { grid-template-columns: repeat(2, 1fr); }
    .tour-facts-band .container { grid-template-columns: repeat(3, 1fr); }
    .tour-facts-band .container > div { border-bottom: 1px solid var(--line); }
    .tour-local-nav { top: 72px; }
    .itinerary-intro { position: static; }
    .tour-review-grid, .search-result-grid { grid-template-columns: 1fr; }
}

@media (max-width: 767.98px) {
    .tour-itinerary-header h2 { font-size:3.25rem; }
    .tour-itinerary-accordion .accordion-button { padding:1rem; }
    .tour-day-number { padding-right:.75rem; }
    .tour-day-heading strong { font-size:1.2rem; }
    .tour-day-details { grid-template-columns:1fr; }
    .tour-day-details > div,.tour-day-details > div + div { border-bottom:1px solid var(--line); border-right:0; padding: .85rem 0; }
    .tour-day-details > div:last-child { border-bottom:0; }
    .hero-v2 { height: 880px; min-height: 0; }
    .hero-v2-shade { background: linear-gradient(90deg, rgba(4,25,22,.9), rgba(4,25,22,.32)), linear-gradient(0deg, rgba(4,25,22,.86), transparent); }
    .hero-v2-copy { left: .65rem; right: .65rem; top: 7%; }
    .hero-v2-copy h1 { font-size: clamp(3.8rem, 17vw, 5.4rem); }
    .hero-v2-actions { align-items: start; flex-direction: column; }
    .journey-finder { bottom: 1rem; grid-template-columns: 1fr 1fr; left: .65rem; right: .65rem; }
    .finder-heading { grid-column: 1 / 3; }
    .journey-finder label { border-bottom: 1px solid var(--line); }
    .journey-finder .btn { grid-column: 1 / 3; }
    .manifesto-section, .destination-showcase, .experience-section, .journeys-v2, .planner-teaser, .guides-v2 { padding: 6rem 0; }
    .manifesto-grid { gap: 2rem; }
    .showcase-heading { align-items: start; flex-direction: column; gap: 1.5rem; }
    .destination-mosaic { display: block; }
    .destination-tile { height: 430px; margin-bottom: .8rem; }
    .showcase-footer { align-items: start; flex-direction: column; gap: 1rem; }
    .region-story-image img { height: 430px; }
    .region-story-copy { padding: 4rem 1.2rem; }
    .experience-card { align-items: stretch; grid-template-columns: 30px 100px 1fr; }
    .experience-card p { display: none; }
    .journey-feature, .journey-feature-main { grid-template-columns: 1fr; }
    .journey-feature-main .journey-feature-image, .journey-feature-image { min-height: 340px; }
    .journey-actions { flex-direction: column; }
    .guide-ledger > a { grid-template-columns: 30px 1fr 20px; }
    .guide-ledger time { display: none; }
    .review-v2-grid { display: block; }
    .review-v2-mark { height: 5rem; }
    .review-v2-byline { margin-top: 2rem; }
    .directory-hero, .tours-hero-v2, .guide-hub-hero { padding: 6rem 0 4rem; }
    .directory-hero h1, .tours-hero-v2 h1, .guide-hub-hero h1 { font-size: 4.2rem; }
    .directory-grid, .region-comparison { grid-template-columns: 1fr; }
    .directory-card dl { grid-template-columns: 1fr; }
    .directory-card dl div { border-bottom: 1px solid var(--line); padding: .7rem 0; }
    .directory-intro { align-items: start; flex-direction: column; gap: .8rem; }
    .experience-directory-card { display: block; }
    .experience-directory-number { margin-bottom: 1rem; }
    .experience-directory-card img { margin-bottom: 1.5rem; }
    .guide-category-grid, .experience-mini-grid { grid-template-columns: 1fr; }
    .guide-hub-list article { align-items: start; grid-template-columns: 35px 1fr; }
    .guide-freshness { grid-column: 2; }
    .destination-hero-v2 { height: 82svh; min-height: 620px; }
    .destination-hero-v2 h1 { font-size: 5rem; }
    .destination-hero-actions { align-items: stretch; flex-direction: column; }
    .destination-facts { grid-template-columns: 1fr; }
    .climate-legend { flex-wrap: wrap; }
    .tour-filters { grid-template-columns: 1fr; }
    .tour-results-meta { align-items: start; flex-direction: column; gap: .4rem; }
    .tour-card-v2 h2 { font-size: 2.5rem; }
    .choice-grid, .planner-contact-grid { grid-template-columns: 1fr; }
    .planner-contact-grid .full { grid-column: auto; }
    .planner-form { margin-top: 0; }
    .planner-controls { gap: 1rem; }
    .planner-controls .btn { flex: 1; }
    .tour-facts-band .container { grid-template-columns: 1fr 1fr; }
    .tour-facts-band .container > div { border-left: 0 !important; padding: 1rem; }
    .tour-review-grid { display: block; }
    .tour-review-grid blockquote { margin-bottom: 1px; }
    .search-page-form-v2 { grid-template-columns: 1fr; }
    .search-page-form-v2 .btn { width: 100%; }
    .search-result-card { grid-template-columns: 1fr; }
    .search-result-image { min-height: 260px; }
    .footer-callout h2 br { display: none; }
}

/* v3 journey product and conversion flow */
.hub-breadcrumb { margin-bottom: 2rem; }
.hub-breadcrumb .breadcrumb { margin: 0; }
.hub-breadcrumb .breadcrumb-item,.hub-breadcrumb .breadcrumb-item a { color: rgba(255,255,255,.64); font-size: .66rem; }
.hub-breadcrumb .breadcrumb-item.active { color: white; }
.guide-route-cta { align-items: center; background: var(--forest); color: white; display: flex; gap: 3rem; justify-content: space-between; margin-top: 5rem; padding: 2.5rem 3rem; }
.guide-route-cta h2 { font-size: clamp(2rem, 3vw, 3.5rem); margin: .5rem 0; }
.guide-route-cta p { color: rgba(255,255,255,.6); margin: 0; max-width: 720px; }

.tour-product-hero { color: white; height: 78svh; min-height: 700px; position: relative; }
.tour-product-hero > img { height: 100%; inset: 0; position: absolute; width: 100%; }
.tour-product-hero-shade { background: linear-gradient(90deg, rgba(4,29,25,.94) 0%, rgba(4,29,25,.72) 38%, rgba(4,29,25,.08) 75%), linear-gradient(0deg, rgba(4,29,25,.72), transparent 55%); inset: 0; position: absolute; }
.tour-product-hero-inner { display: flex; flex-direction: column; height: 100%; justify-content: space-between; padding-bottom: 5rem; padding-top: 3rem; position: relative; }
.tour-product-hero .breadcrumb { margin: 0; }
.tour-product-hero .breadcrumb-item,.tour-product-hero .breadcrumb-item a { color: rgba(255,255,255,.62); font-size: .65rem; }
.tour-product-hero .breadcrumb-item.active { color: white; }
.tour-product-hero-copy { max-width: 920px; }
.tour-product-hero h1 { font-size: clamp(4rem, 7.2vw, 8rem); line-height: .86; margin: .8rem 0 1.5rem; max-width: 1000px; }
.tour-product-hero-copy > p { color: rgba(255,255,255,.76); font-family: var(--font-serif); font-size: clamp(1.1rem, 1.8vw, 1.45rem); max-width: 760px; }
.tour-product-proof { align-items: stretch; display: flex; gap: 0; margin-top: 2rem; }
.tour-product-proof > a,.tour-product-proof > span { border-left: 1px solid rgba(255,255,255,.25); min-width: 180px; padding: 0 1.4rem; }
.tour-product-proof > :first-child { border-left: 0; padding-left: 0; }
.tour-product-proof strong,.tour-product-proof small { display: block; }
.tour-product-proof strong { font-family: var(--font-serif); font-size: 1.25rem; font-weight: 400; }
.tour-product-proof small { color: rgba(255,255,255,.53); font-size: .6rem; margin-top: .2rem; }
.tour-product-proof .review-stars { color: var(--gold); font-size: .7rem; letter-spacing: .08em; }

.tour-specification { background: var(--paper); border-bottom: 1px solid var(--line); }
.tour-specification .container { display: grid; grid-template-columns: repeat(6, 1fr); }
.tour-specification .container > div { border-right: 1px solid var(--line); padding: 1.35rem 1rem; }
.tour-specification .container > div:first-child { border-left: 1px solid var(--line); }
.tour-specification span,.tour-specification strong { display: block; }
.tour-specification span { color: var(--rust); font-size: .55rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.tour-specification strong { font-family: var(--font-serif); font-size: .94rem; font-weight: 400; line-height: 1.25; margin-top: .35rem; }

.tour-product-nav { background: white; border-bottom: 1px solid var(--line); position: sticky; top: 112px; z-index: 1000; }
.tour-product-nav .container { align-items: stretch; display: flex; overflow-x: auto; }
.tour-product-nav a { color: var(--muted); font-size: .6rem; font-weight: 800; padding: 1rem 1.2rem; text-transform: uppercase; white-space: nowrap; }
.tour-product-nav a:hover { color: var(--rust); }
.tour-product-nav .tour-nav-cta { background: var(--rust); color: white; margin-left: auto; }

.tour-product-overview { background: white; padding: 8rem 0; }
.tour-product-layout { display: grid; gap: 5rem; grid-template-columns: minmax(0, 1fr) 360px; }
.tour-section-heading h2 { font-size: clamp(3.2rem, 5vw, 5.6rem); line-height: .94; margin: .7rem 0 2rem; }
.tour-story { max-width: 820px; }
.tour-story > p:first-child { font-family: var(--font-serif); font-size: 1.35rem; line-height: 1.65; }
.tour-highlights { border-top: 1px solid var(--line); margin-top: 4rem; padding-top: 2.5rem; }
.tour-highlight-grid { display: grid; gap: 1px; grid-template-columns: 1fr 1fr; margin-top: 1.4rem; }
.tour-highlight-grid article { background: var(--paper); min-height: 155px; padding: 1.4rem; }
.tour-highlight-grid article > span { color: var(--rust); font-family: var(--font-serif); font-size: 1.1rem; }
.tour-highlight-grid article p { font-family: var(--font-serif); font-size: 1.18rem; line-height: 1.35; margin: 1.2rem 0 0; }
.tour-booking-column { position: relative; }
.tour-booking-card { background: var(--paper); border-top: 4px solid var(--rust); box-shadow: 0 24px 70px rgba(17,52,46,.11); padding: 2rem; position: sticky; top: 190px; }
.tour-booking-price { border-bottom: 1px solid var(--line); margin: .7rem 0 1.2rem; padding-bottom: 1.2rem; }
.tour-booking-price small,.tour-booking-price strong { display: block; }
.tour-booking-price small { color: var(--muted); font-size: .62rem; text-transform: uppercase; }
.tour-booking-price strong { color: var(--forest); font-family: var(--font-serif); font-size: 2.7rem; font-weight: 400; line-height: 1.05; margin: .2rem 0; }
.tour-booking-card > p { color: var(--muted); font-size: .75rem; }
.tour-booking-card .btn { margin-top: .65rem; }
.tour-booking-card ul { border-top: 1px solid var(--line); list-style: none; margin: 1.5rem 0 1rem; padding: 1rem 0 0; }
.tour-booking-card li { color: var(--muted); font-size: .68rem; padding: .35rem 0 .35rem 1.4rem; position: relative; }
.tour-booking-card li::before { color: var(--jade); content: "✓"; left: 0; position: absolute; }
.tour-booking-contact { color: var(--rust); font-size: .63rem; font-weight: 800; text-transform: uppercase; }
.tour-save-inline.saved { background: var(--forest); color: white; }

.tour-product-itinerary { background: #eeebe3; color: var(--ink); padding: 8rem 0; }
.tour-itinerary-header { align-items: end; display: flex; gap: 3rem; justify-content: space-between; margin-bottom: 3rem; }
.tour-itinerary-header > div { max-width: 840px; }
.tour-itinerary-header h2 { font-size: clamp(3.2rem, 5vw, 5.5rem); line-height: .95; margin: .7rem 0 1rem; }
.tour-itinerary-header p { color: var(--muted); max-width: 700px; }
.tour-itinerary-layout { align-items:start; display:grid; gap:clamp(2rem,4vw,5rem); grid-template-columns:270px minmax(0,1fr); }
.tour-itinerary-index { position:sticky; top:150px; }
.tour-itinerary-index > ol { border-top:1px solid var(--line); list-style:none; margin:1rem 0 1.5rem; max-height:52vh; overflow:auto; padding:0; scrollbar-width:thin; }
.tour-itinerary-index li { border-bottom:1px solid var(--line); }
.tour-itinerary-index li button { align-items:center; background:transparent; border:0; color:var(--ink); display:grid; gap:.75rem; grid-template-columns:30px 1fr; padding:.72rem .2rem; text-align:left; width:100%; }
.tour-itinerary-index li button:hover strong { color:var(--rust); }
.tour-itinerary-index li span { color:var(--rust); font-family:var(--font-serif); font-size:.92rem; }
.tour-itinerary-index li strong { font-size:.7rem; font-weight:700; overflow:hidden; text-overflow:ellipsis; transition:color .2s ease; white-space:nowrap; }
.tour-itinerary-note { background:var(--forest); color:white; padding:1.2rem; }
.tour-itinerary-note strong { color:var(--gold); font-family:var(--font-serif); font-size:1.1rem; font-weight:400; }
.tour-itinerary-note p { color:rgba(255,255,255,.62); font-size:.7rem; line-height:1.55; margin:.35rem 0 0; }
.tour-itinerary-accordion { display:grid; gap:1rem; }
.tour-itinerary-accordion .accordion-item { background:white; border:1px solid rgba(23,49,45,.12); box-shadow:0 16px 48px rgba(10,45,41,.055); color:var(--ink); overflow:hidden; }
.tour-itinerary-accordion .accordion-button { align-items:center; background:white; box-shadow:none; color:var(--ink); display:grid; gap:1.2rem; grid-template-columns:70px minmax(0,1fr) auto 20px; padding:1.25rem 1.4rem; }
.tour-itinerary-accordion .accordion-button:not(.collapsed) { background:var(--forest); color:white; }
.tour-itinerary-accordion .accordion-button:not(.collapsed)::after { filter:brightness(0) invert(1); }
.tour-itinerary-accordion .accordion-button::after { grid-column:4; margin-left:.5rem; }
.tour-day-number { align-items:center; border-right:1px solid var(--line); display:flex; flex-direction:column; justify-content:center; min-height:54px; padding-right:1.2rem; }
.tour-day-number small { color:var(--muted); font-family:var(--font-sans); font-size:.52rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.tour-day-number b { color:var(--rust); font-family:var(--font-serif); font-size:1.8rem; font-weight:400; line-height:1; }
.accordion-button:not(.collapsed) .tour-day-number { border-color:rgba(255,255,255,.18); }
.accordion-button:not(.collapsed) .tour-day-number small { color:rgba(255,255,255,.55); }
.accordion-button:not(.collapsed) .tour-day-number b { color:var(--gold); }
.tour-day-heading { display:flex; flex-direction:column; min-width:0; }
.tour-day-heading small { color:var(--rust); font-size:.55rem; font-weight:800; letter-spacing:.12em; margin-bottom:.22rem; text-transform:uppercase; }
.tour-day-heading strong { font-family:var(--font-serif); font-size:clamp(1.25rem,2vw,1.65rem); font-weight:400; line-height:1.15; }
.accordion-button:not(.collapsed) .tour-day-heading small { color:var(--gold); }
.tour-day-transport { background:#f1eee7; color:var(--muted); font-size:.57rem; font-weight:700; max-width:150px; overflow:hidden; padding:.42rem .6rem; text-overflow:ellipsis; text-transform:uppercase; white-space:nowrap; }
.accordion-button:not(.collapsed) .tour-day-transport { background:rgba(255,255,255,.1); color:rgba(255,255,255,.7); }
.tour-itinerary-accordion .accordion-body { padding:0; }
.tour-day-content { padding:clamp(1.4rem,3vw,2.2rem); }
.tour-day-content.has-image { display:grid; gap:2rem; grid-template-columns:minmax(0,1fr) minmax(240px,38%); }
.tour-day-description { color:#495955; font-family:var(--font-serif); font-size:1.08rem; line-height:1.7; margin:0 0 1.5rem; }
.tour-day-activities { border-top:1px solid var(--line); padding-top:1.2rem; }
.tour-day-activities > small { color:var(--rust); font-size:.56rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.tour-day-activities ul { display:grid; gap:.5rem; list-style:none; margin:.8rem 0 0; padding:0; }
.tour-day-activities li { color:#495955; font-size:.78rem; padding-left:1.25rem; position:relative; }
.tour-day-activities li::before { color:var(--rust); content:"✓"; font-weight:800; left:0; position:absolute; }
.tour-day-details { border-top:1px solid var(--line); display:grid; gap:0; grid-template-columns:repeat(3,minmax(0,1fr)); margin:1.5rem 0 0; }
.tour-day-details > div { border-right:1px solid var(--line); padding:1rem 1rem 0 0; }
.tour-day-details > div + div { padding-left:1rem; }
.tour-day-details > div:last-child { border-right:0; }
.tour-day-details dt { color:var(--muted); font-size:.52rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.tour-day-details dd { color:var(--ink); font-size:.72rem; font-weight:700; line-height:1.45; margin:.3rem 0 0; }
.tour-day-special { background:#f3f0e8; border-left:3px solid var(--gold); margin-top:1.5rem; padding:1rem; }
.tour-day-special strong { color:var(--rust); display:block; font-size:.58rem; letter-spacing:.1em; text-transform:uppercase; }
.tour-day-special p { color:#596763; font-size:.72rem; margin:.25rem 0 0; }
.tour-day-image img { aspect-ratio:1.18; height:100%; max-height:360px; width:100%; }
.tour-day-image figcaption { color:var(--muted); font-size:.56rem; margin-top:.45rem; text-transform:uppercase; }

.tour-route-section { background: var(--paper); padding: 8rem 0; }
.tour-route-section h2 { font-size: clamp(3.2rem, 5vw, 5.2rem); line-height: .95; margin: .7rem 0 1.2rem; }
.tour-route-section p { color: var(--muted); }
.tour-route-list { border-top: 1px solid var(--line); list-style: none; margin: 2rem 0 0; padding: 0; }
.tour-route-list li { align-items: center; border-bottom: 1px solid var(--line); display: grid; grid-template-columns: 55px 1fr; padding: .8rem 0; }
.tour-route-list li span { color: var(--rust); font-family: var(--font-serif); }
.tour-route-list li strong { font-family: var(--font-serif); font-size: 1.15rem; font-weight: 400; }
.tour-route-visual { background: var(--forest); color: white; padding: 2rem; }
.tour-route-visual .tour-route-canvas { height: 360px; width: 100%; }
.tour-route-visual small { color: rgba(255,255,255,.45); display: block; font-size: .58rem; margin-top: 1rem; text-align: center; }

.tour-inclusions { padding: 8rem 0; }
.tour-inclusion-grid { display: grid; gap: 1px; grid-template-columns: 1fr 1fr; }
.tour-inclusion-grid > div { background: var(--paper); padding: clamp(2rem, 4vw, 4rem); }
.tour-inclusion-grid h2 { font-size: clamp(2.5rem, 4vw, 4.4rem); line-height: .96; margin: .7rem 0 2rem; }
.tour-exclusions { background: #ebe7df !important; }
.tour-check-list,.tour-cross-list { list-style: none; margin: 0; padding: 0; }
.tour-check-list li,.tour-cross-list li { border-top: 1px solid rgba(23,49,45,.12); color: var(--muted); padding: .9rem 0 .9rem 2rem; position: relative; }
.tour-check-list li::before,.tour-cross-list li::before { left: 0; position: absolute; }
.tour-check-list li::before { color: var(--jade); content: "✓"; }.tour-cross-list li::before { color: var(--rust); content: "—"; }

.tour-product-reviews { background: var(--forest); color: white; padding: 8rem 0; }
.tour-reviews-heading { align-items: end; display: flex; justify-content: space-between; margin-bottom: 3rem; }
.tour-reviews-heading h2 { font-size: clamp(3.2rem, 5vw, 5.5rem); margin: .5rem 0 0; }
.tour-reviews-heading > strong { color: var(--gold); font-family: var(--font-serif); font-size: 4.5rem; font-weight: 400; }
.tour-reviews-heading > strong small { color: rgba(255,255,255,.45); font-size: 1rem; }
.tour-product-reviews .tour-review-grid blockquote { background: rgba(255,255,255,.06); }
.tour-product-reviews .tour-review-grid blockquote p { color: white; }
.tour-product-reviews .tour-review-grid footer span,.tour-product-reviews .tour-review-grid footer strong { display: block; }
.tour-product-reviews .tour-review-grid footer span { color: rgba(255,255,255,.45); margin-top: .25rem; }

.tour-faq { background: var(--paper); padding: 8rem 0; }
.tour-faq h2 { font-size: clamp(2.8rem, 4vw, 4.5rem); line-height: .98; margin-top: .6rem; }
.tour-faq .accordion-item { background: transparent; }
.tour-faq .accordion-button { background: transparent; box-shadow: none; font-family: var(--font-serif); font-size: 1.2rem; padding: 1.3rem 0; }
.tour-faq .accordion-body { color: var(--muted); padding-left: 0; }

.tour-proposal { background: var(--rust); color: white; padding: 8rem 0; }
.tour-proposal-grid { align-items: start; display: grid; gap: 5rem; grid-template-columns: .85fr 1.15fr; }
.tour-proposal h2 { font-size: clamp(3.4rem, 5vw, 5.8rem); line-height: .92; margin: .8rem 0 1.5rem; }
.tour-proposal-grid > div > p { color: rgba(255,255,255,.7); font-family: var(--font-serif); font-size: 1.15rem; }
.tour-proposal-points { border-top: 1px solid rgba(255,255,255,.2); margin-top: 2rem; }
.tour-proposal-points span { border-bottom: 1px solid rgba(255,255,255,.2); display: grid; font-size: .58rem; grid-template-columns: 45px 1fr; padding: .8rem 0; }
.tour-proposal-points strong { font-size: .65rem; text-transform: uppercase; }
.tour-proposal-form { background: white; color: var(--ink); padding: clamp(1.5rem, 3vw, 3rem); }
.tour-related { padding: 8rem 0; }
.tour-related-card { display: block; }
.tour-related-card img { aspect-ratio: 1.45; margin-bottom: 1.2rem; transition: transform .6s ease; width: 100%; }
.tour-related-card:hover img { transform: scale(1.025); }
.tour-related-card > span { color: var(--rust); font-size: .59rem; font-weight: 800; text-transform: uppercase; }
.tour-related-card h3 { font-size: 2rem; line-height: 1.05; margin: .5rem 0 1rem; }
.tour-related-card b { color: var(--rust); font-size: .62rem; text-transform: uppercase; }
.tour-mobile-cta { display: none; }

@media (max-width: 1199.98px) {
    .tour-specification .container { grid-template-columns: repeat(3, 1fr); }
    .tour-product-layout { gap: 3rem; grid-template-columns: minmax(0, 1fr) 320px; }
}
@media (max-width: 991.98px) {
    .tour-product-nav { top: 72px; }
    .tour-product-layout,.tour-proposal-grid { grid-template-columns: 1fr; }
    .tour-booking-card { position: static; }
    .tour-booking-column { grid-row: 1; }
    .tour-inclusion-grid { grid-template-columns: 1fr; }
    .guide-route-cta { align-items: start; flex-direction: column; }
}
@media (max-width: 767.98px) {
    .tour-product-hero { height: 760px; min-height: 0; }
    .tour-product-hero-inner { padding-bottom: 3rem; }
    .tour-product-hero h1 { font-size: clamp(3.4rem, 15vw, 5rem); }
    .tour-product-proof > span { display: none; }
    .tour-specification .container { grid-template-columns: 1fr 1fr; }
    .tour-specification .container > div { border-bottom: 1px solid var(--line); }
    .tour-product-nav .tour-nav-cta { display: none; }
    .tour-product-overview,.tour-product-itinerary,.tour-route-section,.tour-inclusions,.tour-product-reviews,.tour-faq,.tour-proposal,.tour-related { padding: 5.5rem 0; }
    .tour-highlight-grid { grid-template-columns: 1fr; }
    .tour-itinerary-header { align-items: start; flex-direction: column; }
    .tour-itinerary-layout { grid-template-columns:1fr; }
    .tour-itinerary-index { display:none; }
    .tour-itinerary-accordion .accordion-button { gap:.8rem; grid-template-columns:58px minmax(0,1fr) 20px; }
    .tour-itinerary-accordion .accordion-button::after { grid-column:3; grid-row:1; }
    .tour-day-transport { display:none; }
    .tour-day-content.has-image { grid-template-columns:1fr; }
    .tour-day-image { order:-1; }
    .tour-reviews-heading { align-items: start; flex-direction: column; }
    .tour-proposal-grid { gap: 2.5rem; }
    .guide-route-cta { margin-inline: -.75rem; padding: 2rem 1.2rem; }
    .tour-mobile-cta { align-items: center; background: white; border-top: 1px solid var(--line); bottom: 0; display: flex; justify-content: space-between; left: 0; padding: .7rem .9rem; position: fixed; right: 0; z-index: 1050; }
    .tour-mobile-cta small,.tour-mobile-cta strong { display: block; }
    .tour-mobile-cta small { color: var(--muted); font-size: .55rem; text-transform: uppercase; }
    .tour-mobile-cta strong { font-family: var(--font-serif); }
}

/* v3.3 topical-authority editorial system */
.content-preview-banner { background:#f0c86e; color:#17312d; position:relative; z-index:1040; }
.content-preview-banner .container { align-items:center; display:flex; gap:1rem; justify-content:center; padding-bottom:.65rem; padding-top:.65rem; }
.content-preview-banner strong { font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; }
.content-preview-banner span { font-size:.72rem; }
.topic-parent-banner { background:#e8e2d7; border-bottom:1px solid var(--line); color:var(--ink); }
.topic-parent-banner .container { align-items:center; display:flex; gap:1rem; justify-content:space-between; padding-bottom:1rem; padding-top:1rem; }
.topic-parent-banner span { color:var(--muted); font-size:.62rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.topic-parent-banner strong { font-family:var(--font-serif); font-size:1.02rem; font-weight:400; }
.topic-parent-banner a { color:var(--rust); font-weight:700; }

.editorial-byline { background:var(--paper); border-left:3px solid var(--gold); display:grid; font-family:var(--font-sans); gap:0; grid-template-columns:repeat(4,minmax(0,1fr)); margin:0 0 3rem; }
.editorial-byline > div { border-right:1px solid var(--line); padding:1rem 1.15rem; }
.editorial-byline > div:last-child { border-right:0; }
.editorial-byline span,.editorial-byline strong,.editorial-byline small { display:block; }
.editorial-byline span { color:var(--muted); font-size:.54rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.editorial-byline strong { font-family:var(--font-serif); font-size:.9rem; font-weight:400; line-height:1.3; margin-top:.3rem; }
.editorial-byline strong a { color:inherit; text-decoration:none; }
.editorial-byline small { color:var(--muted); font-size:.52rem; line-height:1.35; margin-top:.25rem; }
.editorial-byline-compact { grid-template-columns:repeat(3,minmax(0,1fr)); }
.article-sources { background:#f1eee6; border-top:3px solid var(--gold); display:block; margin:4rem 0 0; padding:clamp(1.4rem,3vw,2.4rem); }
.article-body .article-sources h2 { font-size:clamp(1.7rem,3vw,2.35rem); margin:.5rem 0 1.2rem; }
.article-sources ol { font-family:var(--font-sans); font-size:.74rem; margin:0; overflow-wrap:anywhere; padding-left:1.2rem; }
.article-sources li { margin:.45rem 0; }
.article-sources a { color:var(--jade); text-decoration-thickness:1px; }

.topic-supporting-section { background:var(--forest); color:white; padding:clamp(5.5rem,9vw,9rem) 0; }
.topic-section-heading { align-items:end; display:grid; gap:4rem; grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr); margin-bottom:3.5rem; }
.topic-section-heading h2 { font-size:clamp(2.8rem,5vw,5.2rem); line-height:.96; margin:.65rem 0 0; }
.topic-section-heading > p { color:rgba(255,255,255,.62); font-family:var(--font-serif); font-size:1.1rem; margin:0; }
.news-hub-list .topic-section-heading > p { color:var(--muted); }
.topic-supporting-grid { display:grid; gap:1px; grid-template-columns:repeat(3,minmax(0,1fr)); }
.topic-supporting-card { background:rgba(255,255,255,.065); min-height:280px; padding:clamp(1.5rem,3vw,2.4rem); position:relative; transition:background .2s ease,transform .2s ease; }
.topic-supporting-card:hover { background:rgba(255,255,255,.11); transform:translateY(-3px); }
.topic-supporting-card > span { color:var(--gold); font-size:.55rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.topic-supporting-card h3 { font-size:clamp(1.75rem,2.5vw,2.35rem); line-height:1.02; margin:.8rem 0 1rem; }
.topic-supporting-card h3 a::after { content:""; inset:0; position:absolute; }
.topic-supporting-card p { color:rgba(255,255,255,.6); font-size:.78rem; margin:0 0 2rem; }
.topic-supporting-card > a:last-child { bottom:1.6rem; color:var(--gold); font-size:.62rem; font-weight:800; position:absolute; text-transform:uppercase; }
.topic-related-section { background:var(--cream); }
.topic-related-section .related-card { height:100%; }

.news-hub-hero { background:var(--forest-2); color:white; padding:4rem 0 7rem; }
.news-hub-intro { align-items:end; display:grid; gap:5rem; grid-template-columns:1.2fr .8fr; }
.news-hub-intro h1 { font-size:clamp(4rem,8vw,8rem); line-height:.84; margin:1rem 0 0; }
.news-hub-intro h1 em { color:var(--gold); }
.news-hub-intro p { color:rgba(255,255,255,.67); font-family:var(--font-serif); font-size:1.25rem; margin-bottom:2rem; }
.news-hub-list { padding:clamp(5.5rem,9vw,9rem) 0; }
.news-card-grid { display:grid; gap:1.4rem; grid-template-columns:repeat(2,minmax(0,1fr)); }
.news-card { background:white; }
.news-card-featured { display:grid; grid-column:1 / -1; grid-template-columns:1.2fr .8fr; }
.news-card-image { display:block; overflow:hidden; }
.news-card-image img { aspect-ratio:1.55; height:100%; transition:transform .6s ease; width:100%; }
.news-card:hover .news-card-image img { transform:scale(1.025); }
.news-card-copy { padding:clamp(1.5rem,3vw,2.6rem); }
.news-card-copy > span { color:var(--rust); font-size:.58rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.news-card-copy h2 { font-size:clamp(2rem,3.4vw,3.7rem); line-height:1; margin:.7rem 0 1.1rem; }
.news-card:not(.news-card-featured) .news-card-copy h2 { font-size:clamp(1.8rem,2.6vw,2.7rem); }
.news-card-copy p { color:var(--muted); font-family:var(--font-serif); }
.news-empty { background:var(--paper); max-width:800px; padding:clamp(2rem,5vw,4rem); }
.news-empty h3 { font-size:clamp(2.3rem,4vw,4rem); line-height:1; margin:.7rem 0 1rem; }
.news-empty p { color:var(--muted); }
.hub-pillar-editorial { background:white; border-top:4px solid var(--gold); margin-bottom:5rem; max-width:none; padding:clamp(2rem,5vw,4.5rem); }
.hub-pillar-editorial .hub-pillar-heading { align-items:end; display:grid; gap:3rem; grid-template-columns:1fr auto; margin-bottom:2rem; }
.hub-pillar-editorial .hub-pillar-heading h2 { font-size:clamp(2.7rem,5vw,5rem); line-height:.96; margin:.6rem 0 0; }
.hub-pillar-proof { border-left:1px solid var(--line); display:grid; gap:.7rem; padding-left:1.5rem; }
.hub-pillar-proof span,.hub-pillar-proof strong { display:block; }
.hub-pillar-proof span { color:var(--muted); font-family:var(--font-sans); font-size:.57rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.hub-pillar-proof strong { color:var(--ink); font-family:var(--font-serif); font-size:.9rem; font-weight:400; letter-spacing:0; margin-top:.2rem; text-transform:none; }
.hub-pillar-editorial > :not(.hub-pillar-heading) { margin-left:auto; margin-right:auto; max-width:880px; }
.hub-pillar-editorial-news { background:var(--paper); }

@media (max-width: 991.98px) {
    .editorial-byline { grid-template-columns:1fr 1fr; }
    .editorial-byline > div:nth-child(2) { border-right:0; }
    .editorial-byline > div:nth-child(n+3) { border-top:1px solid var(--line); }
    .topic-section-heading,.news-hub-intro { align-items:start; gap:2rem; grid-template-columns:1fr; }
    .topic-supporting-grid { grid-template-columns:1fr 1fr; }
    .news-card-featured { grid-template-columns:1fr; }
    .hub-pillar-editorial .hub-pillar-heading { align-items:start; grid-template-columns:1fr; }
    .hub-pillar-proof { border-left:0; border-top:1px solid var(--line); grid-template-columns:1fr 1fr; padding-left:0; padding-top:1rem; }
}

@media (max-width: 767.98px) {
    .content-preview-banner .container { align-items:flex-start; flex-direction:column; gap:.1rem; }
    .topic-parent-banner .container { align-items:flex-start; flex-direction:column; gap:.3rem; }
    .editorial-byline,.editorial-byline-compact { grid-template-columns:1fr; }
    .editorial-byline > div { border-right:0; border-top:1px solid var(--line); }
    .editorial-byline > div:first-child { border-top:0; }
    .topic-supporting-grid,.news-card-grid { grid-template-columns:1fr; }
    .topic-supporting-card { min-height:240px; }
    .news-hub-hero { padding:2rem 0 5rem; }
    .news-hub-intro h1 { font-size:clamp(3.6rem,16vw,5.4rem); }
}

/* v3.4 premium editorial templates */
.section-number {
    color:rgba(23,49,45,.16);
    display:block;
    font-family:var(--font-serif);
    font-size:clamp(2.4rem,4vw,4.5rem);
    line-height:.8;
    margin-bottom:1.4rem;
}
.section-number-light { color:rgba(255,255,255,.18); }

.destination-local-nav .container {
    scrollbar-width:none;
}
.destination-local-nav .container::-webkit-scrollbar { display:none; }
.destination-local-nav a {
    letter-spacing:.08em;
    transition:background .2s ease,color .2s ease;
}
.destination-local-nav a:not(:last-child):hover { background:var(--paper); color:var(--ink); }

.destination-overview {
    background:#eee9df;
    padding:clamp(4.5rem,8vw,7rem) 0;
}
.destination-overview-shell {
    background:var(--cream);
    box-shadow:0 28px 80px rgba(10,45,41,.075);
    display:grid;
    grid-template-columns:minmax(0,1.12fr) minmax(360px,.88fr);
    min-height:480px;
}
.destination-overview-copy {
    padding:clamp(2.5rem,5vw,5rem);
}
.destination-overview-copy h2 {
    font-size:clamp(2.6rem,4.35vw,4.65rem);
    line-height:.98;
    margin:.75rem 0 1.5rem;
    max-width:760px;
    overflow-wrap:anywhere;
}
.destination-overview-copy > p {
    color:var(--muted);
    font-family:var(--font-serif);
    font-size:1.05rem;
    margin:0;
    max-width:560px;
}
.destination-facts {
    align-content:stretch;
    background:var(--forest);
    color:white;
    display:grid;
    grid-auto-rows:minmax(150px,1fr);
    grid-template-columns:repeat(2,minmax(0,1fr));
    margin:0;
}
.destination-facts div {
    border-bottom:1px solid rgba(255,255,255,.12);
    border-right:1px solid rgba(255,255,255,.12);
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    min-width:0;
    padding:clamp(1.35rem,2.5vw,2.25rem);
}
.destination-facts div:nth-child(even) { border-right:0; }
.destination-facts dt {
    color:var(--gold);
    font-size:.56rem;
    font-weight:800;
    letter-spacing:.13em;
    text-transform:uppercase;
}
.destination-facts dd {
    font-family:var(--font-serif);
    font-size:clamp(1.1rem,1.7vw,1.45rem);
    line-height:1.3;
    margin:.55rem 0 0;
    overflow-wrap:anywhere;
}
.destination-facts-empty {
    align-self:stretch;
    background:var(--forest);
    color:white;
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    padding:clamp(2.5rem,5vw,5rem);
}
.destination-facts-empty p {
    color:rgba(255,255,255,.68);
    font-family:var(--font-serif);
    font-size:1.3rem;
    margin:1rem 0 0;
}

.destination-guide-v2,
.article-section-premium {
    background:var(--cream);
    padding:clamp(5.5rem,9vw,9rem) 0;
}
.editorial-section-heading {
    align-items:end;
    display:grid;
    gap:clamp(2rem,6vw,7rem);
    grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);
    margin:0 auto clamp(3rem,6vw,5rem);
    max-width:1180px;
}
.editorial-section-heading h2 {
    font-size:clamp(3rem,5.5vw,5.7rem);
    line-height:.93;
    margin:.7rem 0 0;
}
.editorial-section-heading > p {
    border-left:1px solid var(--gold);
    color:var(--muted);
    font-family:var(--font-serif);
    font-size:1.08rem;
    margin:0;
    padding-left:1.5rem;
}
.editorial-layout {
    align-items:start;
    display:grid;
    gap:clamp(2rem,5vw,5rem);
    grid-template-columns:minmax(0,820px) minmax(260px,300px);
    justify-content:center;
    margin:0 auto;
    max-width:1180px;
}
.editorial-main {
    background:white;
    box-shadow:0 24px 70px rgba(10,45,41,.065);
    min-width:0;
    padding:clamp(2rem,4.5vw,5rem);
}
.editorial-byline-count-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.editorial-byline-count-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.editorial-byline-count-4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
.editorial-main.article-body {
    color:#344844;
    font-size:clamp(1.04rem,1.3vw,1.17rem);
    line-height:1.82;
}
.editorial-main.article-body .article-lead {
    border-bottom:1px solid var(--line);
    color:var(--ink);
    font-size:clamp(1.35rem,2.1vw,1.75rem);
    line-height:1.48;
    margin:0 0 3.25rem;
    padding-bottom:2.6rem;
}
.editorial-main.article-body h2 {
    color:var(--ink);
    font-size:clamp(2.25rem,3.5vw,3.25rem);
    line-height:1.05;
}
.editorial-main.article-body h3 {
    color:var(--ink);
    font-size:clamp(1.65rem,2.6vw,2.15rem);
    line-height:1.12;
}
.editorial-main img {
    height:auto;
    margin:2rem 0;
    width:100%;
}
.editorial-rail { min-width:0; }
.editorial-rail-sticky {
    display:grid;
    gap:1.25rem;
    position:sticky;
    top:172px;
}
.editorial-rail .article-aside {
    background:#f0ece3;
    border-top:3px solid var(--gold);
    padding:1.6rem;
}
.editorial-rail #article-toc:empty::after {
    color:var(--muted);
    content:"A concise guide with no extra sections.";
    display:block;
    font-family:var(--font-serif);
    font-size:.85rem;
    line-height:1.5;
}
.editorial-rail #article-toc a {
    border-left:0;
    border-top:1px solid var(--line);
    padding:.7rem 0;
}
.editorial-rail #article-toc a:last-child { border-bottom:1px solid var(--line); }
.quick-plan-premium {
    background:var(--forest);
    color:white;
    overflow:hidden;
    padding:clamp(1.5rem,2.5vw,2.2rem);
    position:relative;
}
.quick-plan-premium::after {
    border:1px solid rgba(214,173,101,.2);
    border-radius:50%;
    content:"";
    height:190px;
    position:absolute;
    right:-100px;
    top:-90px;
    width:190px;
}
.quick-plan-premium h3 {
    color:white;
    font-size:clamp(1.75rem,2.3vw,2.25rem);
    line-height:1.02;
    margin:.8rem 0 1rem;
    position:relative;
    z-index:1;
}
.quick-plan-premium p {
    color:rgba(255,255,255,.65);
    font-family:var(--font-serif);
    font-size:.94rem;
    line-height:1.55;
    margin-bottom:1.5rem;
}
.quick-plan-premium .btn {
    align-items:center;
    display:flex;
    font-size:.67rem;
    justify-content:space-between;
    white-space:normal;
}
.destination-note {
    background:#f0ece3;
    border-left:3px solid var(--gold);
    margin-top:3.5rem;
    padding:clamp(1.5rem,3vw,2.4rem);
}
.destination-note p {
    color:#50605c;
    font-family:var(--font-serif);
    font-size:1rem;
    line-height:1.6;
    margin:.7rem 0 1rem;
}
.guide-route-cta {
    box-shadow:0 24px 60px rgba(10,45,41,.12);
    margin-left:auto;
    margin-right:auto;
    max-width:1180px;
}

.seasonal-layout {
    align-items:center;
    display:grid;
    gap:clamp(3rem,7vw,7rem);
    grid-template-columns:minmax(300px,.78fr) minmax(0,1.22fr);
}
.seasonal-copy h2 {
    font-size:clamp(3rem,5.2vw,5.6rem);
    line-height:.93;
    margin:.75rem 0 1.3rem;
}
.seasonal-copy p { max-width:520px; }
.climate-card {
    background:rgba(255,255,255,.065);
    border:1px solid rgba(255,255,255,.1);
    box-shadow:0 30px 70px rgba(0,0,0,.12);
    padding:clamp(1.25rem,3vw,2.4rem);
}
.climate-card-heading {
    align-items:end;
    border-bottom:1px solid rgba(255,255,255,.12);
    display:flex;
    justify-content:space-between;
    margin-bottom:1.1rem;
    padding-bottom:1rem;
}
.climate-card-heading span {
    color:var(--gold);
    font-size:.57rem;
    font-weight:800;
    letter-spacing:.12em;
    text-transform:uppercase;
}
.climate-card-heading strong {
    font-family:var(--font-serif);
    font-size:1rem;
    font-weight:400;
}

.experience-mini-grid { gap:1.5rem; }
.experience-mini-grid a {
    border-top:0;
    min-width:0;
    padding-top:0;
}
.experience-mini-image {
    display:block;
    margin-bottom:1.25rem;
    overflow:hidden;
}
.experience-mini-grid .experience-mini-image img {
    margin:0;
    transition:transform .6s ease;
}
.experience-mini-grid a:hover .experience-mini-image img { transform:scale(1.035); }
.experience-mini-grid a > span:not(.experience-mini-image) {
    font-size:1.45rem;
    line-height:1.12;
}
.experience-mini-grid a > b {
    color:var(--rust);
    display:block;
    font-size:.57rem;
    letter-spacing:.08em;
    margin-top:1rem;
    text-transform:uppercase;
}
.journey-mini {
    box-shadow:0 18px 50px rgba(0,0,0,.12);
    overflow:hidden;
}
.destination-journeys .row { margin-left:0; margin-right:0; }
.journey-mini img { transition:transform .65s ease; }
.journey-mini:hover img { transform:scale(1.035); }
.nearby-list a {
    transition:background .2s ease,padding .2s ease;
}
.nearby-list a:hover {
    background:white;
    padding-left:1rem;
    padding-right:1rem;
}

.topic-supporting-section { overflow:hidden; }
.topic-supporting-grid {
    gap:1.15rem;
}
.topic-supporting-card {
    background:rgba(255,255,255,.07);
    display:flex;
    flex-direction:column;
    min-height:0;
    overflow:hidden;
    padding:0;
}
.topic-supporting-card:hover {
    background:rgba(255,255,255,.1);
}
.topic-supporting-image {
    display:block;
    overflow:hidden;
    position:relative;
    z-index:1;
}
.topic-supporting-image img {
    aspect-ratio:1.5;
    transition:transform .65s ease;
    width:100%;
}
.topic-supporting-card:hover .topic-supporting-image img { transform:scale(1.035); }
.topic-supporting-copy {
    display:flex;
    flex:1;
    flex-direction:column;
    padding:clamp(1.4rem,2.5vw,2rem);
}
.topic-supporting-copy > span {
    color:var(--gold);
    font-size:.55rem;
    font-weight:800;
    letter-spacing:.12em;
    text-transform:uppercase;
}
.topic-supporting-card h3 {
    font-size:clamp(1.65rem,2.4vw,2.2rem);
    margin:.75rem 0 .85rem;
}
.topic-supporting-card p {
    margin:0 0 1.6rem;
}
.topic-supporting-copy > b {
    color:var(--gold);
    font-size:.6rem;
    letter-spacing:.08em;
    margin-top:auto;
    text-transform:uppercase;
}
.topic-guide-index {
    border-top:1px solid rgba(255,255,255,.18);
    display:grid;
    gap:3rem;
    grid-template-columns:240px minmax(0,1fr);
    margin-top:4rem;
    padding-top:2rem;
}
.topic-guide-index-heading strong {
    color:rgba(255,255,255,.6);
    display:block;
    font-family:var(--font-serif);
    font-size:1.05rem;
    font-weight:400;
    margin-top:.5rem;
}
.topic-guide-index-links {
    display:grid;
    grid-template-columns:1fr 1fr;
}
.topic-guide-index-links a {
    align-items:center;
    border-bottom:1px solid rgba(255,255,255,.12);
    display:grid;
    gap:.8rem;
    grid-template-columns:32px minmax(0,1fr) 18px;
    padding:.85rem .8rem;
}
.topic-guide-index-links a:nth-child(odd) { border-right:1px solid rgba(255,255,255,.12); }
.topic-guide-index-links a:hover { background:rgba(255,255,255,.06); }
.topic-guide-index-links span,
.topic-guide-index-links b {
    color:var(--gold);
    font-size:.62rem;
}
.topic-guide-index-links strong {
    font-family:var(--font-serif);
    font-size:1rem;
    font-weight:400;
}
.topic-related-section .related-card {
    background:white;
    box-shadow:0 16px 50px rgba(10,45,41,.055);
    padding-bottom:1.6rem;
}
.related-card-image {
    display:block;
    overflow:hidden;
}
.topic-related-section .related-card img {
    margin:0 0 1.3rem;
    transition:transform .6s ease;
}
.topic-related-section .related-card:hover img { transform:scale(1.035); }
.topic-related-section .related-card > span,
.topic-related-section .related-card > h3,
.topic-related-section .related-card > p,
.topic-related-section .related-card > .related-card-link {
    display:block;
    margin-left:1.5rem;
    margin-right:1.5rem;
}
.related-card-link {
    color:var(--rust);
    font-size:.6rem;
    font-weight:800;
    letter-spacing:.08em;
    margin-top:1.1rem;
    text-transform:uppercase;
}

@media (max-width: 1199.98px) {
    .destination-overview-shell { grid-template-columns:minmax(0,1fr) minmax(330px,.8fr); }
    .editorial-layout { grid-template-columns:minmax(0,1fr) 280px; }
}

@media (max-width: 991.98px) {
    .destination-overview-shell,
    .editorial-section-heading,
    .editorial-layout,
    .seasonal-layout {
        grid-template-columns:1fr;
    }
    .destination-overview-shell { min-height:0; }
    .editorial-section-heading { gap:1.5rem; }
    .editorial-section-heading > p { max-width:650px; }
    .editorial-rail-sticky {
        grid-template-columns:1fr 1fr;
        position:static;
    }
    .editorial-rail .article-aside,
    .quick-plan-premium { min-height:100%; }
    .editorial-byline-count-2,
    .editorial-byline-count-3,
    .editorial-byline-count-4 { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .seasonal-layout { gap:3rem; }
    .topic-guide-index { grid-template-columns:1fr; }
}

@media (max-width: 767.98px) {
    .destination-overview,
    .destination-guide-v2,
    .article-section-premium,
    .when-to-go,
    .destination-experiences,
    .destination-journeys,
    .nearby-destinations {
        padding-bottom:5rem;
        padding-top:5rem;
    }
    .destination-overview .container,
    .destination-guide-v2 .container,
    .article-section-premium .container {
        --bs-gutter-x:1.35rem;
    }
    .destination-overview-copy { padding:2rem 1.35rem 2.5rem; }
    .destination-overview-copy h2 { font-size:clamp(2.25rem,10vw,3.35rem); }
    .destination-facts { grid-auto-rows:minmax(125px,auto); }
    .destination-facts div { padding:1.25rem; }
    .destination-facts dd { font-size:1.08rem; }
    .editorial-section-heading h2 { font-size:clamp(2.8rem,12vw,4.2rem); }
    .editorial-main { box-shadow:none; padding:1.7rem 1.25rem; }
    .editorial-main.article-body .article-lead { font-size:1.3rem; }
    .editorial-byline-count-2,
    .editorial-byline-count-3,
    .editorial-byline-count-4 { grid-template-columns:1fr; }
    .editorial-rail-sticky { grid-template-columns:1fr; }
    .editorial-byline { margin-bottom:2.2rem; }
    .seasonal-copy h2 { font-size:clamp(2.8rem,12vw,4.2rem); }
    .climate-card-heading { align-items:start; flex-direction:column; gap:.35rem; }
    .climate-canvas { height:280px; }
    .topic-section-heading { margin-bottom:2.5rem; }
    .topic-guide-index-links { grid-template-columns:1fr; }
    .topic-guide-index-links a:nth-child(odd) { border-right:0; }
    .nearby-list a { gap:1rem; grid-template-columns:90px minmax(0,1fr) 20px; }
    .nearby-list small {
        display:-webkit-box;
        overflow:hidden;
        -webkit-box-orient:vertical;
        -webkit-line-clamp:2;
    }
}

/* v3.5 editorial administration, navigation alignment and premium enquiry */
.hub-landing-copy { background:#faf9f5; border-bottom:1px solid var(--line); padding:2.5rem 0; }
.hub-landing-copy .article-body { color:var(--muted); font-family:var(--font-serif); font-size:1.15rem; margin:0; max-width:880px; }
.hub-landing-copy .article-body > :last-child { margin-bottom:0; }
.blog-hub-hero { background:#382f29; }

.tour-proposal-intro { position:sticky; top:150px; }
.tour-proposal-points span { align-items:start; grid-template-columns:45px 145px 1fr; padding:1rem 0; }
.tour-proposal-points small { color:rgba(255,255,255,.58); font-size:.69rem; line-height:1.55; }
.proposal-assurance { background:rgba(19,49,44,.22); border-left:2px solid var(--gold); margin-top:2rem; padding:1.2rem 1.35rem; }
.proposal-assurance strong { display:block; font-family:var(--font-serif); font-size:1.1rem; font-weight:400; }
.proposal-assurance p { color:rgba(255,255,255,.65); font-size:.72rem; line-height:1.65; margin:.4rem 0 0; }
.tour-proposal-form { box-shadow:0 30px 90px rgba(67,27,16,.2); padding:clamp(1.6rem,3vw,3.2rem); }
.proposal-form-heading { border-bottom:1px solid var(--line); margin-bottom:1.6rem; padding-bottom:1.35rem; }
.proposal-form-heading > span { color:var(--rust); font-size:.58rem; font-weight:800; letter-spacing:.15em; text-transform:uppercase; }
.proposal-form-heading h3 { font-size:clamp(2rem,3vw,3rem); line-height:1; margin:.55rem 0 .5rem; }
.proposal-form-heading p { color:var(--muted); font-size:.69rem; margin:0; }
.tour-proposal-form .form-label { color:#425550; font-size:.6rem; font-weight:800; letter-spacing:.06em; margin-bottom:.38rem; text-transform:uppercase; }
.tour-proposal-form .form-control,.tour-proposal-form .form-select { background:#faf9f6; border:1px solid #d8ddd9; border-radius:0; min-height:51px; padding:.78rem .9rem; }
.tour-proposal-form textarea.form-control { min-height:145px; }
.tour-proposal-form .form-control:focus,.tour-proposal-form .form-select:focus { background:white; border-color:#2f7468; box-shadow:0 0 0 .2rem rgba(47,116,104,.1); }
.proposal-priorities { display:grid; gap:.55rem; grid-template-columns:repeat(3,1fr); }
.proposal-priorities label { cursor:pointer; position:relative; }
.proposal-priorities input { opacity:0; position:absolute; }
.proposal-priorities span { align-items:center; background:#faf9f6; border:1px solid #d8ddd9; display:flex; font-size:.66rem; justify-content:center; min-height:44px; padding:.55rem; text-align:center; transition:.18s ease; }
.proposal-priorities input:checked + span { background:var(--forest); border-color:var(--forest); color:white; }
.proposal-priorities input:focus-visible + span { outline:2px solid var(--gold); outline-offset:2px; }
.proposal-submit { border-top:1px solid var(--line); margin-top:.4rem; padding-top:1.2rem; }
.proposal-consent { align-items:flex-start; color:var(--muted); display:flex; font-size:.65rem; gap:.6rem; line-height:1.5; margin-bottom:1rem; }
.proposal-consent input { accent-color:var(--forest); flex:none; margin-top:.15rem; }
.proposal-submit .btn { align-items:center; display:flex; justify-content:space-between; padding:1rem 1.2rem; }
.proposal-submit > small { color:var(--muted); display:block; font-size:.59rem; line-height:1.5; margin-top:.7rem; text-align:center; }

@media (min-width:992px) {
    .site-header > .container { position:relative; }
    .site-header .navbar,.site-header .nav-item.dropdown { position:static; }
    .site-header .navbar .nav-link { font-size:.86rem; letter-spacing:.005em; padding-left:.82rem; padding-right:.82rem; }
    .site-header .mega-menu {
        left:50% !important;
        margin-top:0 !important;
        right:auto !important;
        top:100% !important;
        transform:translateX(-50%) !important;
        width:min(1180px,calc(100vw - 2rem));
    }
    .site-header .mega-menu-compact { width:min(820px,calc(100vw - 2rem)); }
}

@media (max-width:991.98px) {
    .tour-proposal-intro { position:static; }
}

@media (max-width:575.98px) {
    .tour-proposal-points span { grid-template-columns:36px 1fr; }
    .tour-proposal-points small { grid-column:2; }
    .proposal-priorities { grid-template-columns:repeat(2,1fr); }
}

/* v3.6 departures, booking flow and tour section navigation */
.tour-product-nav .container { scrollbar-width:none; scroll-behavior:smooth; }
.tour-product-nav .container::-webkit-scrollbar { display:none; }
.tour-product-nav a { position:relative; transition:color .18s ease,background-color .18s ease; }
.tour-product-nav a.active { color:var(--ink); }
.tour-product-nav a.active::after { background:var(--rust); bottom:0; content:""; height:3px; left:1rem; position:absolute; right:1rem; }
.tour-product-nav .tour-contact-tab { color:var(--rust); }
.tour-product-overview,.tour-product-itinerary,.tour-route-section,.tour-inclusions,.tour-departures,.tour-product-reviews,.tour-faq { scroll-margin-top:190px; }

.tour-departures { background:#f4f1e9; padding:8rem 0; }
.tour-departures-heading { align-items:end; display:grid; gap:3rem; grid-template-columns:minmax(0,1.4fr) minmax(280px,.6fr); margin-bottom:3rem; }
.tour-departures-heading h2 { font-size:clamp(3.2rem,5vw,5.8rem); line-height:.92; margin:.65rem 0 0; }
.tour-departures-heading > p { color:var(--muted); font-family:var(--font-serif); font-size:1.08rem; line-height:1.65; margin:0; }
.departure-list { border-top:1px solid #cfd5d1; }
.departure-row { align-items:center; background:white; border-bottom:1px solid #dfe3df; display:grid; gap:1.25rem; grid-template-columns:84px minmax(250px,1.5fr) minmax(130px,.75fr) minmax(125px,.6fr) auto; min-height:126px; padding:1rem 1.25rem; transition:box-shadow .2s ease,transform .2s ease; }
.departure-row:hover { box-shadow:0 18px 55px rgba(16,60,54,.09); position:relative; transform:translateY(-2px); z-index:1; }
.departure-date { align-items:center; background:var(--forest); color:white; display:flex; flex-direction:column; justify-content:center; min-height:88px; text-align:center; }
.departure-date span,.departure-date small { font-size:.55rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.departure-date strong { color:var(--gold); font-family:var(--font-serif); font-size:2.15rem; font-weight:400; line-height:1; margin:.12rem 0; }
.departure-window span,.departure-price span { color:var(--muted); display:block; font-size:.55rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.departure-window strong,.departure-price strong { display:block; font-family:var(--font-serif); font-size:1.08rem; font-weight:400; margin:.25rem 0; }
.departure-window small,.departure-price small,.departure-availability small { color:var(--muted); display:block; font-size:.63rem; }
.departure-status { background:#e3f1e9; color:#206342; display:inline-block; font-size:.55rem; font-weight:800; letter-spacing:.05em; margin-bottom:.45rem; padding:.38rem .58rem; text-transform:uppercase; }
.status-limited .departure-status { background:#fff0cc; color:#835e12; }
.status-sold_out { opacity:.72; }
.status-sold_out .departure-status { background:#e9ebea; color:#606a66; }
.departure-action .btn { min-width:145px; }
.departure-help { align-items:center; border-bottom:1px solid #cfd5d1; display:grid; gap:1rem; grid-template-columns:auto 1fr auto; padding:1.2rem 0; }
.departure-help span { font-family:var(--font-serif); font-size:1.05rem; }
.departure-help p { color:var(--muted); font-size:.7rem; margin:0; }
.departure-help a { color:var(--rust); font-size:.62rem; font-weight:800; text-transform:uppercase; }
.departure-empty { align-items:center; background:var(--forest); color:white; display:grid; gap:3rem; grid-template-columns:1fr auto; padding:clamp(2rem,5vw,4rem); }
.departure-empty h3 { font-size:clamp(2.5rem,4vw,4.5rem); line-height:1; margin:.55rem 0 1rem; }
.departure-empty p { color:rgba(255,255,255,.66); margin:0; max-width:720px; }

.booking-hero { color:white; height:620px; min-height:560px; overflow:hidden; position:relative; }
.booking-hero > img { height:100%; left:0; object-fit:cover; position:absolute; top:0; width:100%; }
.booking-hero-shade { background:linear-gradient(90deg,rgba(5,35,31,.95) 0%,rgba(5,35,31,.72) 52%,rgba(5,35,31,.2) 100%); inset:0; position:absolute; }
.booking-hero-inner { display:flex; flex-direction:column; height:100%; justify-content:flex-end; padding-bottom:5rem; position:relative; }
.booking-hero h1 { font-size:clamp(4rem,7vw,7.2rem); line-height:.87; margin:.8rem 0 1.3rem; }
.booking-hero h1 em { color:var(--gold); font-weight:400; }
.booking-hero p { color:rgba(255,255,255,.7); font-family:var(--font-serif); font-size:1.1rem; max-width:720px; }
.booking-page { background:#f3f1eb; padding:7rem 0 9rem; }
.booking-layout { align-items:start; display:grid; gap:3.5rem; grid-template-columns:minmax(320px,.72fr) minmax(0,1.28fr); }
.booking-summary-column { position:sticky; top:145px; }
.booking-summary-card { background:white; box-shadow:0 20px 70px rgba(16,60,54,.08); }
.booking-summary-card > img { aspect-ratio:1.55; width:100%; }
.booking-summary-copy { padding:1.6rem; }
.booking-summary-copy > span { color:var(--rust); font-size:.58rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.booking-summary-copy h2 { font-size:2rem; line-height:1; margin:.55rem 0 1.4rem; }
.booking-summary-copy dl { border-top:1px solid var(--line); margin:0; }
.booking-summary-copy dl div { border-bottom:1px solid var(--line); display:flex; justify-content:space-between; padding:.75rem 0; }
.booking-summary-copy dt { color:var(--muted); font-size:.6rem; text-transform:uppercase; }
.booking-summary-copy dd { font-family:var(--font-serif); font-size:.92rem; margin:0; text-align:right; }
.booking-summary-copy > p { background:var(--paper); color:var(--muted); font-size:.68rem; margin:1rem 0; padding:.8rem; }
.booking-summary-copy > a { color:var(--rust); font-size:.62rem; font-weight:800; text-transform:uppercase; }
.booking-confidence { background:var(--forest); color:white; padding:1.5rem; }
.booking-confidence > strong { color:var(--gold); font-family:var(--font-serif); font-size:1.15rem; font-weight:400; }
.booking-confidence ul { list-style:none; margin:1rem 0 0; padding:0; }
.booking-confidence li { color:rgba(255,255,255,.65); font-size:.67rem; padding:.3rem 0 .3rem 1.25rem; position:relative; }
.booking-confidence li::before { color:var(--gold); content:"✓"; left:0; position:absolute; }
.booking-request-form { background:white; box-shadow:0 25px 90px rgba(16,60,54,.09); padding:clamp(1.6rem,4vw,3.5rem); }
.booking-request-form > header { border-bottom:1px solid var(--line); margin-bottom:2rem; padding-bottom:1.5rem; }
.booking-request-form > header > span { color:var(--rust); font-size:.58rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.booking-request-form > header h2 { font-size:clamp(2.7rem,4vw,4.6rem); line-height:.95; margin:.6rem 0; }
.booking-request-form > header p { color:var(--muted); font-size:.75rem; margin:0; }
.booking-request-form fieldset { border:0; border-bottom:1px solid var(--line); margin:0 0 2rem; padding:0 0 2rem; }
.booking-request-form legend { align-items:center; display:flex; font-family:var(--font-serif); font-size:1.4rem; gap:.7rem; margin-bottom:1.25rem; }
.booking-request-form legend span { align-items:center; background:var(--forest); border-radius:50%; color:var(--gold); display:inline-flex; font-family:var(--font-sans); font-size:.55rem; height:30px; justify-content:center; width:30px; }
.booking-request-form .form-label { color:#425550; font-size:.6rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.booking-request-form .form-control,.booking-request-form .form-select { background:#faf9f6; border-color:#d8ddd9; border-radius:0; min-height:52px; }
.booking-submit > label { align-items:flex-start; color:var(--muted); display:flex; font-size:.66rem; gap:.65rem; line-height:1.5; margin-bottom:1rem; }
.booking-submit input { accent-color:var(--forest); flex:none; margin-top:.18rem; }
.booking-submit .btn { align-items:center; display:flex; justify-content:space-between; padding:1rem 1.25rem; }
.booking-submit > small { color:var(--muted); display:block; font-size:.58rem; margin-top:.75rem; text-align:center; }

.contact-section-tour { background:#f3f1eb; }
.selected-tour-contact-card { background:white; box-shadow:0 20px 65px rgba(16,60,54,.08); position:sticky; top:145px; }
.selected-tour-contact-card img { aspect-ratio:1.5; width:100%; }
.selected-tour-contact-card > div { padding:1.5rem; }
.selected-tour-contact-card span { color:var(--rust); font-size:.58rem; font-weight:800; text-transform:uppercase; }
.selected-tour-contact-card h2 { font-size:2rem; line-height:1.05; margin:.45rem 0 .7rem; }
.selected-tour-contact-card p { color:var(--muted); font-size:.72rem; }
.selected-tour-contact-card a { color:var(--rust); display:block; font-size:.62rem; overflow-wrap:anywhere; }
.simple-contact-heading { background:var(--forest); color:white; margin:-1rem -1rem 2rem; padding:1.2rem 1.35rem; }
.simple-contact-heading span,.simple-contact-heading strong,.simple-contact-heading small { display:block; }
.simple-contact-heading span { color:var(--gold); font-size:.56rem; font-weight:800; text-transform:uppercase; }
.simple-contact-heading strong { font-family:var(--font-serif); font-size:1.3rem; font-weight:400; margin:.25rem 0; }
.simple-contact-heading small { color:rgba(255,255,255,.5); overflow-wrap:anywhere; }

@media (max-width:991.98px) {
    .tour-product-overview,.tour-product-itinerary,.tour-route-section,.tour-inclusions,.tour-departures,.tour-product-reviews,.tour-faq { scroll-margin-top:145px; }
    .tour-product-nav .container { padding-left:calc(var(--bs-gutter-x) * .5); padding-right:calc(var(--bs-gutter-x) * .5); }
    .tour-product-nav a { flex:none; }
    .tour-product-nav a.active::after { left:.7rem; right:.7rem; }
    .tour-departures-heading,.booking-layout { grid-template-columns:1fr; }
    .booking-summary-column,.selected-tour-contact-card { position:static; }
    .departure-row { grid-template-columns:74px minmax(180px,1fr) minmax(120px,.7fr); }
    .departure-price { grid-column:2; }
    .departure-action { grid-column:3; grid-row:2; }
}

@media (max-width:767.98px) {
    .tour-departures,.booking-page { padding:5rem 0; }
    .tour-departures-heading { gap:1.25rem; }
    .departure-row { align-items:start; gap:.8rem; grid-template-columns:68px minmax(0,1fr); padding:1rem; }
    .departure-date { grid-row:1 / 3; min-height:82px; }
    .departure-availability,.departure-price,.departure-action { grid-column:2; grid-row:auto; }
    .departure-action .btn { width:100%; }
    .departure-help { align-items:start; grid-template-columns:1fr; }
    .departure-empty { align-items:start; grid-template-columns:1fr; }
    .booking-hero { height:620px; }
    .booking-hero-inner { padding-bottom:3.5rem; }
    .booking-hero h1 { font-size:clamp(3.4rem,14vw,5rem); }
    .booking-layout { gap:2rem; }
}
