/* SkyZeg public design system · Module 16
   Directly served, dependency-free. CMS content and existing template hooks remain authoritative. */
:root {
    color-scheme: light;
    --sz-bg: #fff;
    --sz-surface: #fff;
    --sz-paper: #f6f5f1;
    --sz-tint: #eef3fc;
    --sz-ink: #18243b;
    --sz-muted: #5d687a;
    --sz-primary: #1c45a6;
    --sz-primary-dark: #15357f;
    --sz-navy: #101f3e;
    --sz-accent: #1c45a6;
    --sz-border: #dbe0e8;
    --sz-radius: 12px;
    --sz-radius-lg: 20px;
    --sz-container: 1280px;
    --sz-gutter: clamp(20px, 4vw, 64px);
    --sz-section: clamp(52px, 7vw, 100px);
    --sz-shadow: 0 16px 40px rgb(16 31 62 / 8%);
    --sz-serif: Georgia, "Times New Roman", serif;
    --sz-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 24px; }
body { margin: 0; background: var(--sz-bg); color: var(--sz-ink); font: 17px/1.7 var(--sz-sans); -webkit-font-smoothing: antialiased; }
button, input, select, textarea { font: inherit; }
button, select { cursor: pointer; }
button, a { -webkit-tap-highlight-color: transparent; }
[hidden] { display: none !important; }
img, svg { max-width: 100%; }
img { display: block; height: auto; }
figure { margin: 0; }
a { color: inherit; text-decoration: none; }
a, button, input, select, textarea, summary { touch-action: manipulation; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible, [tabindex]:focus-visible { outline: 3px solid var(--sz-primary); outline-offset: 4px; }
::selection { background: #d5e2ff; color: #101f3e; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { text-wrap: balance; overflow-wrap: anywhere; }
h1, h2 { font-family: var(--sz-serif); font-weight: 400; letter-spacing: -.035em; line-height: 1.12; }
h2 { font-size: clamp(30px, 3.5vw, 44px); margin-bottom: 24px; }
h3 { font-size: 22px; line-height: 1.3; letter-spacing: -.025em; }
p { margin-bottom: 1.2em; }
main { min-height: 50vh; }
main:focus { outline: none; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 1000; top: 12px; left: 12px; padding: 12px 20px; border-radius: 6px; background: #fff; color: var(--sz-primary); box-shadow: var(--sz-shadow); transform: translateY(-180%); }
.skip-link:focus { transform: translateY(0); }

/* Shell: one navigation tree, progressively enhanced at the same breakpoint as JS. */
.site-header { position: relative; z-index: 50; border-bottom: 1px solid var(--sz-border); background: #fff; }
.site-header__inner { width: min(calc(100% - var(--sz-gutter) * 2), var(--sz-container)); margin: auto; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 0 32px; padding-top: 16px; }
.site-brand { display: inline-flex; align-items: center; gap: 10px; flex-shrink: 0; color: var(--sz-primary); }
.site-brand__mark { display: grid; place-items: center; width: 36px; height: 36px; }
.site-brand__mark svg { width: 35px; height: 32px; fill: currentColor; }
.site-brand__name { font-size: 29px; font-weight: 750; letter-spacing: -.06em; line-height: 1.1; }
.public-menu { display: contents; }
.site-nav { display: flex; justify-content: flex-end; align-items: center; gap: 12px; }
.nav-utilities { grid-column: 2; grid-row: 1; }
.primary-links { grid-column: 1 / -1; grid-row: 2; display: flex; align-items: center; flex-wrap: wrap; gap: 0 28px; padding: 12px 0 0; }
.primary-links > a { position: relative; display: inline-flex; align-items: center; gap: 8px; min-height: 48px; padding: 10px 0 14px; font-size: 14px; font-weight: 600; overflow-wrap: anywhere; border-bottom: 2px solid transparent; }
.primary-links > a:hover, .primary-links > a[aria-current] { color: var(--sz-primary); border-color: var(--sz-primary); }
.primary-links > .nav-search { margin-left: auto; }
.nav-search svg { width: 18px; height: 18px; flex-shrink: 0; }
.mobile-menu-trigger { display: none; }
.language-switcher { position: relative; font-size: 13px; }
.language-switcher__trigger { display: inline-flex; align-items: center; gap: 7px; min-height: 44px; padding: 8px 12px; background: #fff; color: var(--sz-ink); border: 1px solid var(--sz-border); border-radius: 6px; font-weight: 650; }
.language-switcher__trigger:hover { border-color: var(--sz-primary); }
.language-switcher__globe svg { display: block; width: 17px; height: 17px; }
.language-switcher__menu { display: flex; flex-wrap: wrap; gap: 4px; max-width: 440px; padding: 8px; background: #fff; border: 1px solid var(--sz-border); border-radius: 10px; }
.language-switcher-ready .language-switcher__menu { display: none; position: absolute; top: calc(100% + 8px); right: 0; width: 250px; max-height: min(440px, 60vh); overflow-y: auto; box-shadow: var(--sz-shadow); }
.language-switcher--open .language-switcher__menu { display: block; }
.language-switcher__option { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 10px 12px; min-height: 44px; border-radius: 5px; overflow-wrap: anywhere; }
.language-switcher__option:hover, .language-switcher__option--active { background: var(--sz-tint); color: var(--sz-primary); }
.language-switcher__option-code { color: var(--sz-muted); font-size: 11px; }
.currency-switcher { display: flex; align-items: center; border: 1px solid var(--sz-border); border-radius: 6px; }
.currency-switcher select { width: 80px; min-height: 44px; border: 0; padding: 8px; border-radius: 6px; background: #fff; color: var(--sz-ink); font-size: 13px; font-weight: 600; }
.currency-switcher button { min-width: 44px; min-height: 44px; border: 0; border-left: 1px solid var(--sz-border); background: #fff; color: var(--sz-primary); border-radius: 0 6px 6px 0; }
.currency-switcher button:hover { background: var(--sz-tint); }
.site-nav__cta, .home-hero__primary-cta, .journey-detail__primary-cta, .journeys-listing__empty-cta, .home-story__cta, .content-cta, .plan-trip-submit {
    display: inline-flex; justify-content: center; align-items: center; gap: 18px; min-height: 50px; padding: 13px 22px; background: var(--sz-primary); color: #fff; border: 1px solid var(--sz-primary); border-radius: 6px; font: 600 14px/1.5 var(--sz-sans); text-align: center; transition: background .18s ease, transform .18s ease; }
.site-nav__cta:hover, .home-hero__primary-cta:hover, .journey-detail__primary-cta:hover, .journeys-listing__empty-cta:hover, .home-story__cta:hover, .content-cta:hover, .plan-trip-submit:hover { background: var(--sz-primary-dark); border-color: var(--sz-primary-dark); }
.site-nav__cta { min-height: 44px; padding: 10px 18px; }
.site-footer { margin-top: var(--sz-section); padding: 60px 0 32px; background: var(--sz-navy); color: #fff; border-top: 6px solid var(--sz-primary); }
.site-footer__inner, .content-footer-nav, .footer-details { width: min(calc(100% - var(--sz-gutter) * 2), var(--sz-container)); margin-inline: auto; }
.site-footer__inner { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 28px; }
.site-brand--footer { color: #fff; }
.site-footer__copyright { grid-column: 1 / -1; grid-row: 2; margin: 0; font-size: 12px; color: #c0cadc; }
.site-footer__link { display: inline-flex; align-items: center; gap: 24px; padding-bottom: 8px; border-bottom: 1px solid #8295bd; font-size: 18px; }
.content-footer-nav { display: flex; flex-wrap: wrap; gap: 8px 28px; margin-top: 24px; font-size: 14px; }
.content-footer-nav a { display: inline-flex; align-items: center; min-height: 44px; }
.footer-discovery { border-top: 1px solid #34425e; margin-top: 32px; padding-top: 20px; }
.footer-details { color: #c0cadc; margin-top: 16px; margin-bottom: 0; max-width: var(--sz-container); font-size: 14px; overflow-wrap: anywhere; }
.site-footer a:hover { text-decoration: underline; text-underline-offset: 5px; }
.site-footer a:focus-visible { outline-color: #fff; }

/* Homepage: editorial split hero, photography is supplied by CMS assignments only. */
.home-hero { width: min(calc(100% - var(--sz-gutter) * 2), var(--sz-container)); margin: 36px auto 0; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 6vw, 80px); align-items: center; }
.home-hero__content { padding: 32px 0; min-width: 0; }
.home-hero__eyebrow, .journeys-hero__eyebrow, .journeys-listing__eyebrow, .journey-detail__eyebrow, .journey-detail-hero__eyebrow, .home-story__eyebrow, .inspiration-card__eyebrow, .search-result__type { margin: 0 0 20px; color: var(--sz-primary); font-size: 11px; line-height: 1.5; letter-spacing: .14em; font-weight: 700; text-transform: uppercase; }
.home-hero__eyebrow-mark { display: inline-block; width: 24px; height: 2px; margin: 0 10px 3px 0; background: currentColor; }
.home-hero__title { font-size: clamp(44px, 5.4vw, 76px); margin: 0 0 24px; max-width: 11ch; }
.home-hero__summary { color: var(--sz-muted); font-size: 18px; line-height: 1.7; max-width: 46ch; }
.home-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 24px; margin-top: 32px; }
.home-hero__secondary-cta, .journey-detail__secondary-cta { display: inline-flex; gap: 14px; align-items: center; min-height: 48px; font-size: 14px; font-weight: 600; border-bottom: 1px solid var(--sz-border); }
.home-hero__secondary-cta:hover, .journey-detail__secondary-cta:hover { color: var(--sz-primary); border-color: var(--sz-primary); }
.home-hero__trust { display: flex; gap: 12px; align-items: center; margin-top: 32px; color: var(--sz-muted); font-size: 12px; }
.home-hero__trust-line { width: 28px; height: 1px; flex-shrink: 0; background: var(--sz-border); }
.home-hero__trust p { margin: 0; }
.home-hero__visual { position: relative; align-self: stretch; min-height: 520px; border-radius: 10px; background: var(--sz-tint); overflow: hidden; }
.home-hero__photograph { width: 100%; height: 100%; position: absolute; inset: 0; object-fit: cover; }
.home-hero__visual figcaption { position: absolute; bottom: 0; inset-inline: 0; padding: 24px; background: linear-gradient(transparent, rgb(0 0 0 / 75%)); color: #fff; font-size: 12px; }
.home-hero__visual figcaption span { display: block; }
.home-hero__graphic { width: 100%; height: 100%; min-height: 520px; display: grid; place-items: center; background: #eaf0fc; color: var(--sz-primary); }
.home-hero__graphic svg { width: 70%; height: auto; opacity: .15; }
.home-hero__image-label { position: absolute; inset-inline: 24px; bottom: 26px; padding: 20px 0 0; border-top: 1px solid #becbea; color: var(--sz-primary); font: 26px/1.25 var(--sz-serif); }
.home-section, main > section[data-section]:not([class]) { width: min(calc(100% - var(--sz-gutter) * 2), var(--sz-container)); margin: var(--sz-section) auto; }
.home-section__header, .journeys-listing__header { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: 32px; }
.home-section__heading { max-width: 720px; }
.home-section__heading h2 { margin-bottom: 12px; }
.home-section__heading p { color: var(--sz-muted); max-width: 60ch; margin-bottom: 0; }
.home-section__link { display: inline-flex; align-items: center; min-height: 44px; gap: 16px; color: var(--sz-primary); border-bottom: 1px solid var(--sz-primary); flex-shrink: 0; font-size: 14px; font-weight: 600; }
.home-section__link:hover { color: var(--sz-primary-dark); }
.journey-grid, .destination-grid, .inspiration-grid, .travel-style-grid, .journeys-listing__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.journey-card, .journey-list-card, .inspiration-card, .travel-style-card { position: relative; min-width: 0; border-radius: var(--sz-radius); background: var(--sz-surface); border: 1px solid var(--sz-border); overflow: hidden; transition: transform .2s ease, box-shadow .2s ease; }
.journey-card:hover, .journey-list-card:hover, .inspiration-card:hover, .travel-style-card:hover { box-shadow: var(--sz-shadow); transform: translateY(-4px); }
.journey-card:focus-within, .journey-list-card:focus-within { outline: 2px solid var(--sz-primary); outline-offset: 4px; }
.journey-card__media, .journey-list-card__media, .inspiration-card__media, .travel-style-card__media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--sz-tint); }
.journey-card__media figure, .journey-list-card__media figure, .inspiration-card__media figure, .travel-style-card__media figure { width: 100%; height: 100%; }
.journey-card__media img, .journey-list-card__media img, .inspiration-card__media img, .travel-style-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.journey-card:hover img, .journey-list-card:hover img, .inspiration-card:hover img, .travel-style-card:hover img { transform: scale(1.035); }
.journey-card__placeholder, .journey-list-card__placeholder, .inspiration-card__placeholder, .travel-style-card__placeholder, .destination-card__placeholder { width: 100%; height: 100%; display: grid; place-items: center; background: var(--sz-tint); color: #7186b1; font: 72px/1 var(--sz-serif); }
.journey-card__duration, .journey-list-card__duration { position: absolute; top: 16px; left: 16px; background: #fff; color: var(--sz-ink); padding: 6px 12px; border-radius: 4px; font-size: 12px; font-weight: 650; }
.journey-card__body, .journey-list-card__body, .inspiration-card__body, .travel-style-card__body { padding: 24px; }
.journey-card__body { display: flex; align-items: start; justify-content: space-between; gap: 12px; }
.journey-card__content { flex: 1; min-width: 0; }
.journey-card h3, .journey-list-card h2, .journey-list-card h3, .inspiration-card h3, .travel-style-card h3 { margin: 0 0 12px; font: 400 26px/1.2 var(--sz-serif); letter-spacing: -.025em; }
.journey-card__title-link::after { content: ""; position: absolute; inset: 0; }
.journey-card__body p, .journey-list-card__summary, .inspiration-card__summary, .travel-style-card p { font-size: 14px; color: var(--sz-muted); margin: 0 0 16px; }
.journey-card__arrow, .journey-list-card__arrow, .inspiration-card__arrow, .travel-style-card__arrow { color: var(--sz-primary); flex-shrink: 0; font-size: 22px; }
.journey-list-card__title-row, .inspiration-card__title-row { display: flex; align-items: start; justify-content: space-between; gap: 12px; }
.journey-list-card__location { margin: 0 0 10px; color: var(--sz-primary); font-size: 11px; text-transform: uppercase; letter-spacing: .1em; }
.journey-list-card__meta { border-top: 1px solid var(--sz-border); padding-top: 16px; font-size: 14px; }
.journey-list-card__meta p { margin-bottom: 0; }
.public-card-price { margin: 16px 0 0; padding-top: 16px; border-top: 1px solid var(--sz-border); font-size: 14px; color: var(--sz-ink); }
.public-card-price strong, .public-money { font-variant-numeric: tabular-nums; }
.destination-card { position: relative; min-height: 400px; border-radius: var(--sz-radius); overflow: hidden; color: #fff; background: var(--sz-navy); transition: transform .2s ease; }
.destination-card:hover { transform: translateY(-4px); }
.destination-card__media, .destination-card__media figure { position: absolute; inset: 0; }
.destination-card__media img { width: 100%; height: 100%; object-fit: cover; }
.destination-card__placeholder { background: #263e68; color: #a8bbdf; }
.destination-card__overlay { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 15%, rgb(9 21 44 / 92%) 100%); }
.destination-card__content { position: relative; display: flex; flex-direction: column; justify-content: end; min-height: 400px; padding: 28px; }
.destination-card h3 { margin: 0; font: 400 34px/1.15 var(--sz-serif); }
.destination-card__title-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.destination-card__summary { margin: 16px 0 0; font-size: 14px; color: #e4eaf4; }
.destination-card__meta { margin: 0 0 12px; font-size: 12px; }
.destination-card a { text-underline-offset: 5px; }
.destination-card a:focus-visible { outline-color: #fff; }
.discovery-home-link { display: block; height: 100%; }
.travel-style-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.travel-style-card__number { display: inline-block; font-size: 11px; color: var(--sz-muted); margin-bottom: 12px; }
.travel-style-card__body { display: flex; align-items: start; gap: 10px; justify-content: space-between; }
.home-story { background: var(--sz-paper); padding: var(--sz-section) 0; margin: var(--sz-section) 0; }
.home-story__inner { width: min(calc(100% - var(--sz-gutter) * 2), var(--sz-container)); margin: auto; display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: clamp(32px, 6vw, 80px); }
.home-story__visual { min-width: 0; }
.home-story__figure { position: relative; }
.home-story__figure img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--sz-radius); }
.home-story__placeholder { display: grid; place-items: center; min-height: 360px; background: var(--sz-tint); border-radius: var(--sz-radius); color: #7186b1; font: 100px/1 var(--sz-serif); }
.home-story__title { font-size: clamp(32px, 4vw, 52px); }
.home-story__lead { font-size: 20px; }
.home-story__body, .home-story__caption, .home-story__detail { color: var(--sz-muted); }
.home-story__caption { font-size: 12px; margin-top: 12px; }
.home-story__cta { margin-top: 16px; }
main > section[data-type="call_to_action"] { background: var(--sz-primary); color: white; border-radius: var(--sz-radius); padding: clamp(28px, 5vw, 64px); }
main > section[data-type="call_to_action"] h2 { max-width: 20ch; }
main > section[data-type="call_to_action"] a { display: inline-flex; min-height: 48px; padding: 12px 22px; background: #fff; color: var(--sz-primary); border-radius: 6px; font-weight: 600; }
main > section[data-type="rich_text"], main > section[data-type="custom"] { max-width: 820px; }
main > section[data-type] p { max-width: 70ch; }
main > section[data-type] figure { margin: 32px 0; }
main > section[data-type] figure img { border-radius: var(--sz-radius); }
main > section[data-type] figcaption { color: var(--sz-muted); font-size: 12px; margin-top: 10px; }

/* Listings, geographic hierarchy and search */
.journeys-hero { padding: clamp(36px, 6vw, 80px) 0; background: var(--sz-paper); border-bottom: 1px solid #e9e7e1; }
.journeys-hero__inner, .journeys-listing__inner, .journey-detail-section__inner, .journey-detail-hero__inner, .journey-detail-final-cta__inner { width: min(calc(100% - var(--sz-gutter) * 2), var(--sz-container)); margin: auto; }
.journeys-hero__title { font-size: clamp(42px, 5vw, 68px); margin-bottom: 24px; max-width: 20ch; }
.journeys-hero__summary { max-width: 64ch; font-size: 18px; color: var(--sz-muted); margin-bottom: 0; }
.journeys-listing { padding: var(--sz-section) 0 0; }
.journeys-listing__count { font-size: 13px; color: var(--sz-muted); }
.journeys-listing__empty { max-width: 740px; margin: auto; text-align: center; padding: 48px 24px; background: var(--sz-tint); border-radius: var(--sz-radius); }
.journeys-listing__empty p { color: var(--sz-muted); }
.journeys-listing__empty-cta { margin-top: 12px; }
.discovery-breadcrumbs { margin-bottom: 24px; font-size: 12px; color: var(--sz-muted); }
.discovery-breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 6px 10px; list-style: none; padding: 0; margin: 0; }
.discovery-breadcrumbs li { min-width: 0; overflow-wrap: anywhere; }
.discovery-breadcrumbs li + li::before { content: "/"; margin-right: 10px; color: #8d97a7; }
.discovery-breadcrumbs a:hover { color: var(--sz-primary); text-decoration: underline; }
.discovery-pagination { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 12px 24px; margin-top: 48px; padding-top: 28px; border-top: 1px solid var(--sz-border); font-size: 14px; }
.discovery-pagination a { display: inline-flex; min-height: 44px; align-items: center; padding: 8px 16px; border: 1px solid var(--sz-border); border-radius: 6px; }
.discovery-pagination a:hover { color: var(--sz-primary); background: var(--sz-tint); }
.discovery-pagination span { color: var(--sz-muted); }
.discovery-intro { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 6vw, 80px); align-items: start; }
.discovery-intro__media { min-width: 0; }
.discovery-media img { width: 100%; object-fit: cover; }
.discovery-intro__media .discovery-media img { aspect-ratio: 4 / 5; border-radius: var(--sz-radius); }
.discovery-intro__media .journey-list-card__placeholder { min-height: 380px; border-radius: var(--sz-radius); }
.discovery-media__caption { display: flex; flex-wrap: wrap; gap: 6px 16px; color: var(--sz-muted); font-size: 12px; padding-top: 10px; }
.discovery-lead { font-size: 20px; line-height: 1.7; color: var(--sz-muted); }
.discovery-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin: 32px 0 0; border-top: 1px solid var(--sz-border); padding-top: 24px; }
.discovery-facts dt { font-size: 12px; color: var(--sz-muted); margin-bottom: 5px; }
.discovery-facts dd { margin: 0; font-weight: 600; overflow-wrap: anywhere; }
.discovery-planning { background: var(--sz-tint); border-radius: var(--sz-radius); padding: clamp(28px, 5vw, 64px); }
.discovery-planning h2 { max-width: 24ch; }
.discovery-planning p { max-width: 60ch; }
.public-search-form { max-width: 820px; margin-top: 32px; }
.public-search-form label { display: block; font-weight: 600; margin-bottom: 12px; }
.public-search-form > div { display: flex; gap: 12px; }
.public-search-form input { min-width: 0; flex: 1; width: 100%; min-height: 58px; padding: 14px 18px; border: 1px solid #9ca8bb; border-radius: 6px; background: #fff; color: var(--sz-ink); }
.public-search-form button { min-height: 58px; padding-inline: 28px; }
.public-search-form p { margin: 12px 0 0; color: var(--sz-muted); font-size: 13px; }
.search-result { overflow-wrap: anywhere; }
.search-result__type { margin-bottom: 12px; }
.search-result .journey-list-card__body > p:last-child { font-size: 14px; color: var(--sz-muted); }

/* Journey: editorial introduction, timeline and clear commercial information */
.journey-detail-hero { background: var(--sz-paper); padding: 40px 0 56px; }
.journey-detail-hero__inner { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: clamp(32px, 5vw, 72px); }
.journey-detail-hero__content { min-width: 0; }
.journey-detail-hero__back { display: inline-flex; gap: 10px; font-size: 13px; color: var(--sz-muted); margin-bottom: 24px; }
.journey-detail-hero__title { font-size: clamp(40px, 4.5vw, 64px); margin-bottom: 24px; }
.journey-detail-hero__tagline { font-size: 18px; color: var(--sz-muted); }
.journey-detail-hero__facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid #d4d7df; gap: 20px 24px; padding-top: 24px; margin-top: 28px; }
.journey-detail-hero__fact { display: flex; flex-direction: column; min-width: 0; overflow-wrap: anywhere; }
.journey-detail-hero__fact span { color: var(--sz-muted); font-size: 12px; }
.journey-detail-hero__fact strong { font-size: 18px; font-weight: 600; }
.journey-detail-hero__actions { display: flex; flex-wrap: wrap; gap: 16px 24px; align-items: center; margin-top: 32px; }
.journey-detail-hero__media { min-width: 0; }
.journey-detail-hero__media img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--sz-radius); }
.journey-detail-hero__media figcaption { font-size: 12px; color: var(--sz-muted); margin-top: 10px; }
.journey-detail-hero__placeholder { display: grid; place-items: center; min-height: 480px; background: var(--sz-tint); color: #7186b1; font: 100px/1 var(--sz-serif); border-radius: var(--sz-radius); }
.journey-section-nav { border-bottom: 1px solid var(--sz-border); background: #fff; }
.journey-section-nav__inner { display: flex; flex-wrap: wrap; gap: 0 28px; width: min(calc(100% - var(--sz-gutter) * 2), var(--sz-container)); margin: auto; }
.journey-section-nav a { display: inline-flex; align-items: center; min-height: 58px; color: var(--sz-muted); font-size: 13px; font-weight: 600; border-bottom: 2px solid transparent; }
.journey-section-nav a:hover { color: var(--sz-primary); border-color: var(--sz-primary); }
.journey-detail-section { padding: var(--sz-section) 0 0; }
.journey-detail-section__heading { max-width: 760px; margin-bottom: 36px; }
.journey-detail-section__heading h2 { margin-bottom: 0; }
.journey-detail-intro__grid { max-width: 900px; }
.journey-detail-intro__lead { font-size: 23px; line-height: 1.65; }
.journey-detail__rich-text, .content-rich-text, .content-body { overflow-wrap: anywhere; }
.journey-detail__rich-text p, .content-rich-text p, .content-body p { margin: 0 0 1.3em; }
.journey-detail__rich-text a, .content-rich-text a, .content-body a { color: var(--sz-primary); text-decoration: underline; text-underline-offset: 3px; }
.journey-detail__rich-text ul, .journey-detail__rich-text ol, .content-rich-text ul, .content-rich-text ol { padding-left: 24px; }
.journey-detail__rich-text li + li, .content-rich-text li + li { margin-top: 8px; }
.journey-detail-highlights__grid, .journey-detail-stays__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.journey-detail-highlight { padding: 28px; border-top: 2px solid var(--sz-primary); background: var(--sz-tint); border-radius: 0 0 var(--sz-radius) var(--sz-radius); }
.journey-detail-highlight h3 { font: 400 25px/1.2 var(--sz-serif); }
.journey-detail-highlight .journey-detail__rich-text { font-size: 15px; }
.journey-detail-itinerary__list { position: relative; display: grid; gap: 0; }
.journey-detail-day { position: relative; display: grid; grid-template-columns: 68px minmax(0, 1fr); gap: 24px; padding: 0 0 40px; }
.journey-detail-day::before { content: ""; position: absolute; left: 28px; top: 58px; bottom: 0; width: 1px; background: var(--sz-border); }
.journey-detail-day:last-child::before { display: none; }
.journey-detail-day__number { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; width: 58px; height: 58px; border: 1px solid #b9caee; background: var(--sz-tint); color: var(--sz-primary); border-radius: 50%; font-size: 11px; line-height: 1.2; text-align: center; }
.journey-detail-day__number strong { font-size: 20px; }
.journey-detail-day__content { min-width: 0; max-width: 900px; border-bottom: 1px solid var(--sz-border); padding-bottom: 32px; }
.journey-detail-day h3 { font: 400 29px/1.2 var(--sz-serif); margin-bottom: 12px; }
.journey-detail-day__route { color: var(--sz-primary); font-size: 13px; margin-bottom: 20px; }
.journey-detail-day__meta, .journey-detail-stay__meta { display: flex; flex-wrap: wrap; gap: 8px 24px; font-size: 13px; color: var(--sz-muted); margin-top: 20px; }
.journey-detail-day__meta p, .journey-detail-stay__meta p { margin: 0; }
.journey-detail-day__media { grid-column: 2; width: min(100%, 900px); margin-top: 0; }
.journey-detail-day__media img { width: 100%; max-height: 460px; object-fit: cover; border-radius: var(--sz-radius); }
.journey-detail-day__media figcaption, .journey-detail-story__media figcaption { color: var(--sz-muted); font-size: 12px; margin-top: 10px; }
.journey-detail-story__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px, 5vw, 72px); align-items: center; }
.journey-detail-story__grid:not(:has(.journey-detail-story__media)) { grid-template-columns: 1fr; max-width: 860px; }
.journey-detail-story__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--sz-radius); }
.journey-detail-stay { min-width: 0; padding: 28px; border: 1px solid var(--sz-border); border-radius: var(--sz-radius); background: var(--sz-paper); }
.journey-detail-stay h3 { font: 400 28px/1.2 var(--sz-serif); }
.journey-detail-stay__meta { margin: 12px 0 20px; }
.journey-detail-stay .journey-detail__rich-text { font-size: 14px; }
.journey-detail-booking__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; align-items: start; }
.journey-detail-booking__panel { min-width: 0; border: 1px solid var(--sz-border); padding: 28px; border-radius: var(--sz-radius); }
.journey-detail-booking__panel h3 { font: 400 30px/1.2 var(--sz-serif); }
.journey-detail-price { padding-block: 20px; border-top: 1px solid var(--sz-border); font-size: 14px; }
.journey-detail-price > strong { display: block; font-size: 24px; color: var(--sz-primary); }
.journey-detail-price p { margin: 12px 0; }
.public-price-bands { overflow-x: auto; margin: 20px 0; }
.public-price-bands table { border-collapse: collapse; width: 100%; text-align: left; font-size: 13px; }
.public-price-bands caption { text-align: left; font-weight: 650; padding-bottom: 12px; }
.public-price-bands th, .public-price-bands td { padding: 12px 10px; border-bottom: 1px solid var(--sz-border); vertical-align: top; }
.public-price-bands thead { background: var(--sz-tint); }
.journey-detail-departures { display: grid; gap: 16px; }
.journey-detail-departure { border: 1px solid var(--sz-border); border-radius: 8px; padding: 20px; font-size: 14px; }
.journey-detail-departure h4 { font-size: 16px; margin: 0 0 12px; }
.journey-detail-departure__status { display: inline-block; color: var(--sz-primary); background: var(--sz-tint); padding: 4px 10px; border-radius: 4px; font-size: 12px; }
.journey-detail-faq__list { max-width: 900px; }
.journey-detail-faq__item { border-bottom: 1px solid var(--sz-border); padding: 0; }
.journey-detail-faq__item summary { position: relative; cursor: pointer; padding: 24px 32px 24px 0; font-size: 18px; font-weight: 600; list-style: none; }
.journey-detail-faq__item summary::-webkit-details-marker { display: none; }
.journey-detail-faq__item summary::after { content: "+"; position: absolute; right: 4px; color: var(--sz-primary); font-size: 24px; line-height: 1; }
.journey-detail-faq__item[open] summary::after { content: "−"; }
.journey-detail-faq__item .journey-detail__rich-text { padding: 0 32px 24px 0; color: var(--sz-muted); }
.journey-detail-final-cta { margin-top: var(--sz-section); padding-block: 64px; background: var(--sz-tint); }
.journey-detail-final-cta__inner { max-width: 900px; text-align: center; }
.journey-detail-final-cta h2 { max-width: 24ch; margin-inline: auto; }
.journey-detail-final-cta p { color: var(--sz-muted); }

/* CMS pages and travel guide reading surfaces */
.content-body { max-width: 820px; margin: var(--sz-section) auto; padding-inline: 24px; font-size: 18px; line-height: 1.85; }
.content-body h2, .content-rich-text h2 { margin-top: 40px; }
.content-body blockquote, .content-rich-text blockquote { margin: 32px 0; padding: 4px 0 4px 24px; border-left: 3px solid var(--sz-primary); font: 24px/1.6 var(--sz-serif); }
.content-hero-media { width: min(calc(100% - var(--sz-gutter) * 2), var(--sz-container)); margin: 40px auto; }
.content-hero-media .discovery-media img { max-height: 660px; object-fit: cover; border-radius: var(--sz-radius); }
.content-section { padding-block: var(--sz-section); }
.content-section--light, .content-section--muted { background: var(--sz-paper); }
.content-section--dark { background: var(--sz-navy); color: #fff; }
.content-section--dark a:not(.content-cta) { color: #fff; }
.content-section--dark .discovery-lead { color: #c0cadc; }
.content-section__inner--media { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: clamp(28px, 6vw, 80px); }
.content-section__inner--image-left .content-section__media { order: -1; }
.content-section__media img { border-radius: var(--sz-radius); aspect-ratio: 4 / 5; }
.content-section__text--center { text-align: center; }
.content-section__text--right { text-align: right; }
.content-section__text { min-width: 0; }
.content-section .content-cta { margin-top: 20px; }
.content-metadata { display: flex; flex-wrap: wrap; gap: 8px 24px; color: var(--sz-muted); font-size: 13px; margin-top: 24px; }
.content-page-links { display: flex; flex-wrap: wrap; gap: 12px; list-style: none; padding: 0; margin: 24px 0; }
.content-page-links a { display: inline-flex; min-height: 44px; align-items: center; padding: 10px 16px; border: 1px solid var(--sz-border); border-radius: 6px; color: var(--sz-primary); }
.content-page-links a:hover { background: var(--sz-tint); }
.content-return { max-width: 820px; margin: 40px auto; padding-inline: 24px; color: var(--sz-primary); }
.content-return a { display: inline-flex; align-items: center; min-height: 44px; text-decoration: underline; text-underline-offset: 5px; }
.content-explore { margin-top: var(--sz-section); }

/* Enquiry and confirmation share the same public system; security fields remain unchanged. */
.plan-trip-page { width: min(920px, calc(100% - var(--sz-gutter) * 2)); margin: 48px auto var(--sz-section); }
.plan-trip-card { border: 1px solid var(--sz-border); padding: clamp(24px, 5vw, 64px); border-radius: var(--sz-radius); background: #fff; box-shadow: var(--sz-shadow); }
.plan-trip-card h1 { font-size: clamp(38px, 4.5vw, 58px); margin-bottom: 20px; }
.plan-trip-intro { color: var(--sz-muted); font-size: 18px; margin-bottom: 40px; max-width: 62ch; }
.plan-trip-section { margin-top: 36px; padding-top: 36px; border-top: 1px solid var(--sz-border); }
.plan-trip-section:first-of-type { margin-top: 0; padding-top: 0; border: 0; }
.plan-trip-section h2 { font-size: 30px; margin-bottom: 24px; }
.plan-trip-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; }
.plan-trip-field { min-width: 0; margin-bottom: 24px; }
.plan-trip-field label { display: block; font-size: 14px; font-weight: 650; margin-bottom: 8px; }
.plan-trip-field input, .plan-trip-field select, .plan-trip-field textarea { width: 100%; min-height: 50px; border: 1px solid #9ca8bb; border-radius: 6px; padding: 12px; color: var(--sz-ink); background: #fff; }
.plan-trip-field textarea { min-height: 130px; resize: vertical; }
.plan-trip-field :is(input, select, textarea):focus { border-color: var(--sz-primary); }
.plan-trip-field :is(input, select, textarea)[aria-invalid="true"] { border-color: #b42318; }
.plan-trip-checkbox { display: flex; align-items: flex-start; gap: 12px; margin: 20px 0; font-size: 14px; }
.plan-trip-checkbox input { flex-shrink: 0; width: 20px; height: 20px; margin: 3px 0 0; accent-color: var(--sz-primary); }
.plan-trip-checkbox label { min-height: 32px; }
.plan-trip-checkbox a { color: var(--sz-primary); text-decoration: underline; text-underline-offset: 3px; }
.plan-trip-error-box { padding: 20px; margin-bottom: 28px; background: #fff4f2; color: #8f221a; border: 1px solid #b42318; border-radius: 8px; }
.plan-trip-error-box ul { padding-left: 20px; margin: 12px 0 0; }
.plan-trip-error-box a { text-decoration: underline; }
.plan-trip-field-error { color: #b42318; font-size: 13px; margin: 8px 0 0; }
.plan-trip-submit { margin-top: 24px; min-height: 54px; font-size: 16px; padding-inline: 32px; }
.thank-you-page { width: min(760px, calc(100% - var(--sz-gutter) * 2)); margin: 64px auto var(--sz-section); }
.thank-you-card { padding: clamp(28px, 6vw, 64px); background: var(--sz-paper); border-radius: var(--sz-radius); text-align: center; border: 1px solid var(--sz-border); }
.thank-you-card h1 { font-size: clamp(36px, 4.5vw, 56px); }
.thank-you-card p { color: var(--sz-muted); }
.thank-you-symbol { display: grid; place-items: center; width: 56px; height: 56px; margin: 0 auto 28px; border-radius: 50%; background: #e2f1e9; color: #176245; font-size: 26px; }
.thank-you-reference { display: inline-block; padding: 12px 20px; margin: 0 0 24px; border: 1px solid #b9caee; background: var(--sz-tint); color: var(--sz-primary); border-radius: 6px; font-weight: 650; overflow-wrap: anywhere; }
.thank-you-link { display: inline-flex; align-items: center; min-height: 48px; color: var(--sz-primary); text-decoration: underline; text-underline-offset: 5px; font-weight: 600; }

/* Long translations, tablets, mobile and keyboard/no-script operation. */
@media (min-width: 1600px) { .home-hero { min-height: 620px; } }
@media (max-width: 1100px) {
    .primary-links { gap: 0 20px; }
    .travel-style-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .journey-grid, .destination-grid, .inspiration-grid, .journeys-listing__grid { gap: 20px; }
    .journey-card__body, .journey-list-card__body, .inspiration-card__body { padding: 20px; }
    .journey-detail-highlights__grid, .journey-detail-stays__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
    .home-hero { gap: 28px; }
    .home-hero__visual, .home-hero__graphic { min-height: 460px; }
    .home-hero__title { font-size: 48px; }
    .journey-grid, .destination-grid, .inspiration-grid, .journeys-listing__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .journey-detail-hero__inner { gap: 28px; }
    .journey-detail-hero__title { font-size: 44px; }
}
@media (max-width: 760px) {
    .site-header__inner { grid-template-columns: minmax(0, 1fr) auto; padding-block: 16px; gap: 0; }
    .site-brand { width: fit-content; }
    .site-brand__name { font-size: 26px; }
    .site-brand__mark { width: 30px; }
    .site-brand__mark svg { width: 29px; }
    .mobile-menu-trigger:not([hidden]) { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 44px; padding: 8px 12px; background: #fff; color: var(--sz-primary); border: 1px solid var(--sz-border); border-radius: 6px; font-size: 13px; font-weight: 600; }
    .public-menu { display: flex; flex-direction: column; grid-column: 1 / -1; width: 100%; padding-top: 16px; }
    .navigation-ready .public-menu { display: none; }
    .navigation-ready.mobile-menu-open .public-menu { display: flex; }
    .primary-links { order: -1; padding: 0 0 16px; margin-bottom: 16px; border-bottom: 1px solid var(--sz-border); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; }
    .primary-links > a { min-width: 0; padding: 12px 0; min-height: 48px; }
    .primary-links > .nav-search { margin-left: 0; }
    .nav-utilities { justify-content: flex-start; flex-wrap: wrap; gap: 12px; }
    .nav-utilities .site-nav__cta { flex: 1; }
    .language-switcher-ready .language-switcher__menu { left: 0; right: auto; max-width: calc(100vw - var(--sz-gutter) * 2); }
    .home-hero { grid-template-columns: 1fr; margin-top: 0; gap: 20px; }
    .home-hero__content { padding: 40px 0 0; }
    .home-hero__title { font-size: clamp(42px, 9vw, 64px); max-width: 14ch; }
    .home-hero__summary { font-size: 17px; }
    .home-hero__trust { margin-top: 24px; }
    .home-hero__visual { min-height: 0; aspect-ratio: 4 / 3; }
    .home-hero__graphic { min-height: 0; }
    .home-hero__graphic svg { width: 45%; }
    .home-hero__image-label { bottom: 20px; font-size: 22px; }
    .home-section__header, .journeys-listing__header { align-items: start; flex-direction: column; gap: 20px; }
    .home-story__inner, .discovery-intro, .journey-detail-hero__inner, .journey-detail-story__grid, .journey-detail-booking__grid, .content-section__inner--media { grid-template-columns: 1fr; gap: 32px; }
    .home-story__figure img, .discovery-intro__media .discovery-media img, .content-section__media img { aspect-ratio: 4 / 3; }
    .home-story__visual { order: 1; }
    .journey-detail-hero { padding-top: 28px; padding-bottom: 32px; }
    .journey-detail-hero__media img { aspect-ratio: 4 / 3; }
    .journey-detail-hero__placeholder { min-height: 260px; }
    .journey-detail-hero__facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .journey-section-nav__inner { gap: 0 20px; }
    .journey-section-nav a { min-height: 48px; }
    .journey-detail-intro__lead { font-size: 20px; }
    .journey-detail-day { grid-template-columns: 48px minmax(0, 1fr); gap: 16px; }
    .journey-detail-day__number { width: 44px; height: 44px; font-size: 9px; }
    .journey-detail-day__number strong { font-size: 18px; }
    .journey-detail-day::before { left: 21px; top: 44px; }
    .journey-detail-day h3 { font-size: 26px; }
    .journey-detail-day__media { grid-column: 2; }
    .journey-detail-booking__panel { padding: 22px; }
    .content-section__inner--image-left .content-section__media { order: 0; }
    .content-body { padding-inline: var(--sz-gutter); font-size: 17px; }
    .site-footer { padding-top: 40px; }
    .site-footer__inner { grid-template-columns: 1fr; gap: 24px; }
    .site-footer__copyright { grid-row: 3; }
    .site-footer__link { width: fit-content; }
    .plan-trip-page { margin-top: 28px; }
    .plan-trip-grid { grid-template-columns: 1fr; }
    .plan-trip-submit { width: 100%; }
}
@media (max-width: 520px) {
    .journey-grid, .destination-grid, .inspiration-grid, .travel-style-grid, .journeys-listing__grid, .journey-detail-highlights__grid, .journey-detail-stays__grid { grid-template-columns: 1fr; }
    .home-hero__actions { gap: 12px 20px; }
    .destination-card, .destination-card__content { min-height: 360px; }
    .public-search-form > div { flex-direction: column; }
    .public-search-form button { width: 100%; min-height: 50px; }
    .journey-detail-day__content { padding-bottom: 24px; }
    .journey-detail-day__meta { flex-direction: column; }
    .journey-detail-day__media { grid-column: 1 / -1; }
    .discovery-pagination { gap: 12px; }
    .discovery-pagination span { order: -1; width: 100%; text-align: center; }
    .journey-detail-faq__item summary { font-size: 16px; }
    .cf-turnstile { max-width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation: none !important; transition: none !important; }
}
@media (forced-colors: active) {
    .site-nav__cta, .home-hero__primary-cta, .journey-detail__primary-cta, .plan-trip-submit { border: 1px solid ButtonText; }
}
@media print {
    .site-header, .site-footer, .journey-section-nav, .journey-detail-hero__actions, .journey-detail-final-cta { display: none; }
    body { font-size: 12pt; }
    .journey-detail-section { padding-top: 24px; }
    .journey-detail-day { break-inside: avoid; }
    details > * { display: block; }
}

/* Error rendering is database-independent and always non-indexable. */
.not-found-page { width: min(760px, calc(100% - var(--sz-gutter) * 2)); margin: 64px auto; }
.not-found-code { font: 400 clamp(96px, 20vw, 180px)/1 var(--sz-serif); color: #b4c5e8; margin: 64px 0 24px; }
.not-found-page h1 { font-size: clamp(36px, 5vw, 60px); }
.not-found-page > p:not(.not-found-code) { color: var(--sz-muted); margin-bottom: 32px; }
.content-explore { width: min(calc(100% - var(--sz-gutter) * 2), var(--sz-container)); margin-inline: auto; display: flex; flex-wrap: wrap; gap: 16px 32px; }
.content-explore a { color: var(--sz-primary); display: inline-flex; align-items: center; min-height: 44px; text-decoration: underline; text-underline-offset: 5px; }
.home-story__inner--image-left .home-story__visual { order: -1; }
.home-story__placeholder { padding: 32px; display: flex; flex-direction: column; justify-content: center; gap: 24px; text-align: center; }
.home-story__placeholder p { font: 26px/1.3 var(--sz-serif); max-width: 20ch; margin: 0; }
.home-story__detail { display: flex; flex-wrap: wrap; gap: 12px 24px; margin-top: 16px; font-size: 12px; }
@media (max-width: 760px) { .home-story__inner--image-left .home-story__visual { order: 1; } }

.discovery-breadcrumbs a { display: inline-flex; align-items: center; min-height: 32px; }
