.landing-page { background: var(--color-cloud); }
/* Header scrolls with the page — airline sites don't pin their menu bar. */
.landing-chrome { position: relative; z-index: 100; }
.landing-page:not(.is-home) { scroll-padding-top: 6.5rem; }
.landing-page:not(.is-home) .landing-chrome {
  position: sticky;
  top: 0;
  background: var(--color-mist);
  box-shadow: 0 1px 0 rgb(128 107 78 / 12%);
}
.landing-page:not(.is-home) .hold-summary,
.landing-page:not(.is-home) .travel-sidebar { top: 6.5rem; }
.landing-page .site-header { padding-inline: var(--edge); }
.landing-page .site-header nav { gap: clamp(1rem, 1.6vw, 1.6rem); }
.landing-page .site-header nav a { font-size: .85rem; }

.landing-hero { position: relative; min-height: clamp(34rem, 72vh, 46rem); overflow: hidden; color: #fff; background: var(--color-taupe); }
.landing-hero > img { position: absolute; width: 100%; height: 100%; object-fit: cover; object-position: 50% 55%; }
.landing-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgb(52 40 24 / 76%), rgb(52 40 24 / 8%) 72%), linear-gradient(0deg, rgb(52 40 24 / 35%), transparent 42%); }
.landing-hero .hero-overlay { top: 42%; left: var(--edge); width: min(46rem, calc(100% - 2 * var(--edge))); transform: translateY(-50%); }
.landing-hero .hero-overlay h1 { margin: .45rem 0 .7rem; font: 600 clamp(2.8rem, 3.8vw, 3.75rem)/.92 var(--font-display); letter-spacing: -.045em; }
.landing-hero .hero-overlay p { max-width: 42rem; margin: 0; font-size: 1rem; }
.landing-hero .hero-overlay > div { margin-top: 1rem; }

.landing-booking { position: relative; z-index: 3; max-width: var(--content); margin: -6rem auto 0; padding: 0 var(--gutter) clamp(2.25rem, 4vw, 3.25rem); scroll-margin-top: 1.5rem; }
.landing-booking .booking-card { overflow: visible; border: 1px solid var(--color-mist); }
.landing-booking-card { padding: 1rem 1.15rem 1.15rem; }
.landing-booking-top { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; margin-bottom: .85rem; }
.landing-booking-top p { margin: 0; color: var(--color-ink-soft); font-size: .65rem; text-align: right; }
.landing-booking-top strong { color: var(--color-ink); }
.landing-booking-top a { color: var(--color-bronze-deep); font-weight: 700; text-underline-offset: .15rem; }
.landing-booking-card .booking-fields { margin-top: 0; gap: .55rem; align-items: stretch; grid-template-columns: 1.15fr 1.5rem 1.15fr 1.7fr 1.35fr auto; }
.landing-booking-card .travel-field,
.landing-booking-card .compact-field,
.landing-booking-card .passenger-field {
  position: relative;
  min-height: 4rem;
  padding: .55rem .9rem .55rem 3.5rem;
  background: #fdfcf9;
  border-color: var(--color-mist);
  border-radius: var(--radius-md);
}
.landing-booking-card .travel-field::before,
.landing-booking-card .compact-field::before,
.landing-booking-card .passenger-field::before {
  content: "";
  position: absolute;
  top: 50%;
  left: .75rem;
  width: 2.1rem;
  height: 2.1rem;
  background: var(--color-gold-soft) center / 1.05rem no-repeat;
  border-radius: 50%;
  transform: translateY(-50%);
}
.landing-booking-card .travel-field::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%235f4e38'%3E%3Cpath d='M21 16v-2l-8-5V3.5a1.5 1.5 0 0 0-3 0V9l-8 5v2l8-2.5V19l-2 1.5V22l3.5-1 3.5 1v-1.5L13 19v-5.5z'/%3E%3C/svg%3E"); }
.landing-booking-card .compact-field::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%235f4e38'%3E%3Cpath d='M19 4h-1V2h-2v2H8V2H6v2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2zm0 16H5V10h14zM19 8H5V6h14z'/%3E%3C/svg%3E"); }
.landing-booking-card .passenger-field::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%235f4e38'%3E%3Cpath d='M12 12a4 4 0 1 0-4-4 4 4 0 0 0 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z'/%3E%3C/svg%3E"); }
.landing-booking-card .travel-field > span,
.landing-booking-card .compact-field > span,
.landing-booking-card .passenger-field > span { font-size: .55rem; line-height: 1.4; }
.landing-booking-card .travel-field small,
.landing-booking-card .compact-field small { display: none; }
.landing-booking-card .compact-field { padding-left: 3.2rem; }
.landing-booking-card .search-flight { align-self: center; min-height: 3.4rem; padding-inline: 1.5rem; font-size: .78rem; }
.landing-booking-card .swap-button { justify-self: center; width: 1.6rem; height: 1.6rem; margin-inline: 0; color: var(--color-gold-dark); background: transparent; border: 0; font-size: 1rem; }
.route-picker { position: relative; min-width: 0; }
.route-field { width: 100%; height: 100%; text-align: left; cursor: pointer; transition: background var(--ease), border-color var(--ease); }
.route-field:hover { background: var(--color-paper); border-color: var(--color-taupe); }
.route-field[aria-expanded="true"] { background: var(--color-gold-soft); border-color: var(--color-gold); box-shadow: 0 0 0 3px rgb(245 184 0 / 14%); }
.route-field strong { font: 700 .85rem/1.3 var(--font-ui); white-space: nowrap; }
.route-field small { overflow: hidden; color: var(--color-ink-soft); font-size: .55rem; text-overflow: ellipsis; white-space: nowrap; }
.route-menu { position: absolute; z-index: 20; top: calc(100% + .65rem); left: 0; width: min(24rem, calc(100vw - 2rem)); padding: 1rem; color: var(--color-ink); background: var(--color-cloud); border: 1px solid var(--color-mist); border-radius: var(--radius-md); box-shadow: var(--shadow-floating); }
.route-picker[data-route-picker="destination"] .route-menu { right: 0; left: auto; }
.route-option { width: 100%; display: grid; grid-template-columns: 2.8rem 1fr auto; align-items: center; gap: .8rem; padding: .75rem; color: var(--color-ink); background: transparent; border: 0; border-bottom: 1px solid var(--color-mist); border-radius: var(--radius-sm); text-align: left; }
.route-option:last-child { border-bottom: 0; }
.route-option:hover, .route-option.is-selected { background: var(--color-gold-soft); }
.route-option:disabled { opacity: .38; background: transparent; cursor: not-allowed; }
.route-option > span:first-child { display: grid; height: 2.2rem; place-items: center; color: var(--color-bronze-deep); background: var(--color-taupe-soft); border-radius: var(--radius-sm); font-size: .62rem; font-weight: 700; }
.route-option > span:nth-child(2) { display: grid; }
.route-option strong { font-size: .75rem; }
.route-option small { color: var(--color-ink-soft); font-size: .58rem; }
.route-option b { color: var(--color-bronze); font-size: .8rem; }
.calendar-picker { position: relative; min-width: 0; display: flex; }
.calendar-field { width: 100%; height: 100%; color: inherit; font: inherit; text-align: left; cursor: pointer; transition: background var(--ease), border-color var(--ease); }
.calendar-field:hover { background: var(--color-paper); border-color: var(--color-taupe); }
.calendar-field[aria-expanded="true"] { background: var(--color-gold-soft); border-color: var(--color-gold); box-shadow: 0 0 0 3px rgb(245 184 0 / 14%); }
.calendar-field strong { font: 700 .8rem/1.3 var(--font-ui); white-space: nowrap; }
.calendar-field small { overflow: hidden; color: var(--color-ink-soft); font-size: .55rem; text-overflow: ellipsis; white-space: nowrap; }
.calendar-menu { position: absolute; z-index: 20; top: calc(100% + .65rem); left: 0; width: min(20rem, calc(100vw - 2rem)); padding: 1rem; color: var(--color-ink); background: var(--color-cloud); border: 1px solid var(--color-mist); border-radius: var(--radius-md); box-shadow: var(--shadow-floating); }
.calendar-picker[data-calendar-picker="return"] .calendar-menu { right: 0; left: auto; }
.calendar-nav { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin: .9rem 0 .7rem; }
.calendar-nav strong { font: 600 1rem var(--font-display); }
.calendar-nav button { display: grid; place-items: center; width: 2rem; height: 2rem; padding: 0; line-height: 1; color: var(--color-bronze-deep); background: var(--color-paper); border: 1px solid var(--color-mist); border-radius: 50%; }
.calendar-nav button svg.icon-arrow { width: .875rem; height: .875rem; display: block; }
.calendar-nav button:hover { background: var(--color-gold-soft); border-color: var(--color-gold); }
.calendar-weekdays, .calendar-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: .2rem; }
.calendar-weekdays span { padding: .35rem 0; color: var(--color-ink-soft); font-size: .58rem; font-weight: 700; text-align: center; text-transform: uppercase; }
.calendar-grid button { aspect-ratio: 1; display: grid; place-items: center; color: var(--color-ink); background: transparent; border: 0; border-radius: var(--radius-sm); font-size: .72rem; font-weight: 600; cursor: pointer; }
.calendar-grid button:hover { background: var(--color-taupe-soft); }
.calendar-grid button.is-outside { color: var(--color-ink-soft); opacity: .45; }
.calendar-grid button.is-today { box-shadow: inset 0 0 0 1px var(--color-taupe); }
.calendar-grid button.is-selected { color: var(--color-ink); background: var(--color-gold); box-shadow: none; }
.calendar-grid button.is-selected:hover { background: #ffc936; }
.calendar-grid button.is-in-range { background: var(--color-gold-soft); border-radius: 0; }
.calendar-grid button:disabled { opacity: .28; cursor: not-allowed; }
.passenger-picker { position: relative; min-width: 0; display: flex; }
.passenger-picker .passenger-field { width: 100%; height: 100%; cursor: pointer; }
.landing-booking-card .passenger-field strong { font-size: .85rem; }
.passenger-menu { position: absolute; z-index: 20; top: calc(100% + .65rem); right: 0; width: min(29rem, calc(100vw - 2rem)); padding: 1.25rem; color: var(--color-ink); background: var(--color-cloud); border: 1px solid var(--color-mist); border-radius: var(--radius-md); box-shadow: var(--shadow-floating); }
.passenger-menu-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; padding-bottom: .8rem; border-bottom: 1px solid var(--color-mist); }
.passenger-menu-heading > strong { font: 600 1.2rem var(--font-display); }
.passenger-menu-heading small, .passenger-row small { color: var(--color-ink-soft); font-size: .6rem; }
.passenger-row { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: .8rem 0; border-bottom: 1px solid var(--color-mist); }
.passenger-row > div:first-child { display: grid; }
.passenger-row > div:first-child strong { font-size: .75rem; }
.passenger-stepper { display: grid; grid-template-columns: 2rem 2rem 2rem; align-items: center; text-align: center; }
.passenger-stepper button { width: 2rem; height: 2rem; color: var(--color-bronze-deep); background: var(--color-paper); border: 1px solid var(--color-mist); border-radius: 50%; font-weight: 700; }
.passenger-stepper button:disabled { opacity: .35; cursor: not-allowed; }
.passenger-stepper output { font-size: .75rem; font-weight: 700; }
.cabin-choice { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; margin: 1rem 0; padding: 0; border: 0; }
.cabin-choice legend { grid-column: 1 / -1; margin-bottom: .35rem; font-size: .68rem; font-weight: 700; }
.cabin-choice label { padding: .7rem .8rem; background: var(--color-paper); border: 1px solid var(--color-mist); border-radius: var(--radius-sm); font-size: .72rem; cursor: pointer; }
.cabin-choice label:has(input:checked) { background: var(--color-gold-soft); border-color: var(--color-gold); }
.passenger-done { width: 100%; }

.landing-section { padding: clamp(2.25rem, 4.5vw, 3.5rem) var(--edge); scroll-margin-top: 1.5rem; }
.landing-tint { background: var(--color-paper); }
.landing-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 1.25rem; }
.landing-section-heading h2, .sitemap-block-heading h2, .landing-travel h2 { max-width: 48rem; margin: .35rem 0 0; font: 600 clamp(1.9rem, 3vw, 2.8rem)/.98 var(--font-display); letter-spacing: -.035em; }
.landing-section-heading > a { flex: 0 0 auto; }

.landing-routes { padding-top: 0; }
.destination-page main > .landing-section:first-of-type { padding-top: 0; }
.destination-page .dest-section-lead { margin-bottom: clamp(1.25rem, 2.5vw, 1.75rem); }
.destination-page .hold-faq { max-width: var(--content); margin: 0 auto; margin-top: 0; }
.destination-page .hold-faq h2 { margin: .35rem 0 1.5rem; }
.destinations-index .hold-faq { margin-top: 0; }
.contact-page .hold-faq { max-width: var(--content); margin: clamp(2.5rem, 5vw, 4rem) auto 0; }
.contact-page .hold-faq h2 { margin: .35rem 0 1.5rem; }
.destinations-index #dest-faq { background: var(--color-taupe-soft); }
.destination-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.destination-card { position: relative; display: block; height: clamp(16rem, 28vw, 22rem); overflow: hidden; color: #fff; text-decoration: none; border-radius: var(--radius-md); box-shadow: var(--shadow-subtle); transition: transform var(--ease), box-shadow var(--ease); }
.destination-card:hover { box-shadow: var(--shadow-raised); transform: translateY(-2px); }
.destination-card:focus-visible { outline: 3px solid var(--color-gold-dark); outline-offset: 3px; }
.destination-card img { width: 100%; height: 100%; object-fit: cover; }
.destination-card::after { content: ""; position: absolute; inset: 35% 0 0; background: linear-gradient(transparent, rgb(64 48 30 / 85%)); }
.destination-card-copy { position: absolute; z-index: 1; inset: auto 1.2rem 1.2rem; }
.destination-card-copy h3, .destination-card-copy h4 { margin: 0 0 .35rem; font: 600 clamp(1.6rem, 2.5vw, 2rem)/1 var(--font-display); color: #fff; }
.destination-card-copy h3 span, .destination-card-copy h4 span { font-size: .55em; font-weight: 600; color: rgb(255 255 255 / 80%); }
.destination-card-fare { display: block; font: 600 1.4rem/1 var(--font-display); color: #fff; }
.destination-card-fare small { font: 600 .6rem/1 var(--font-ui); color: #e4dccf; letter-spacing: .05em; text-transform: uppercase; }
.destination-card-fare sup { font-size: .55em; vertical-align: .35em; }
.destination-card-credit { position: absolute; z-index: 2; top: .65rem; right: .65rem; color: #fff; font-size: .5rem; line-height: 1.3; pointer-events: none; }
.routes-disclaimer { margin: .85rem 0 0; color: var(--color-ink-soft); font-size: .72rem; line-height: 1.5; max-width: 52rem; }
.destination-main { max-width: var(--content); margin: 0 auto; padding: clamp(2rem, 5vw, 4rem) clamp(1.25rem, 5vw, 5rem) clamp(3.5rem, 7vw, 6rem); }
.destinations-intro { max-width: 46rem; margin-bottom: 1.75rem; }
.destinations-intro h1 { margin: .35rem 0 .6rem; font: 600 clamp(2rem, 4vw, 3rem)/1 var(--font-display); letter-spacing: -.035em; }
.destinations-intro p { margin: 0; color: var(--color-ink-soft); font-size: .85rem; }
/* Slim split hero for individual package pages */
.package-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .82fr); gap: clamp(1.5rem, 4vw, 3rem); align-items: center; padding: clamp(1.75rem, 4vw, 2.75rem) var(--edge); }
.package-hero-copy { min-width: 0; }
.package-hero-media { margin: 0; min-width: 0; }
.package-hero-media img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: var(--radius-md); }
.package-hero h1 { margin: .4rem 0 .6rem; font: 600 clamp(2rem, 4vw, 3rem)/1 var(--font-display); letter-spacing: -.035em; }
.package-hero p { margin: 0; color: var(--color-ink-soft); font-size: .9rem; line-height: 1.6; max-width: 34rem; }
.package-hero-actions { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1.25rem; }
.destination-intro { padding: 1.35rem 1.5rem; background: var(--color-paper); border: 1px solid var(--color-mist); border-radius: var(--radius-md); }
.destination-intro p { margin: 0; color: var(--color-ink-soft); font-size: .78rem; }

/* ------- Destination detail pages ------- */
.destination-page .landing-section { background: var(--color-cloud); }
.destination-page .landing-section.landing-tint { background: var(--color-paper); }
.destination-page .landing-section.dest-flights { background: var(--color-taupe-soft); }
.dest-section-lead { max-width: 44rem; margin: .6rem 0 0; color: var(--color-ink-soft); font-size: .85rem; line-height: 1.6; }

/* ------- Tour packages pages ------- */
.packages-page .package-hero { background: var(--color-paper); }
.packages-page .landing-section { background: var(--color-cloud); }
.packages-page .landing-section.landing-tint { background: var(--color-paper); }
.packages-page .dest-section-lead { margin-bottom: clamp(1.25rem, 2.5vw, 1.75rem); }
.packages-page .hold-faq { max-width: var(--content); margin: 0 auto; }
.packages-page .hold-faq h2 { margin: .35rem 0 1.5rem; }
.packages-highlights { margin-top: 0; }
.packages-why-lead { margin-top: clamp(1.25rem, 2.5vw, 1.75rem); margin-bottom: 0; }
.quick-fact-icon svg { width: 1.35rem; height: 1.35rem; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.packages-enquiry { max-width: 52rem; }
.package-tags { display: flex; flex-wrap: wrap; gap: .4rem; margin: 1rem 0 0; padding: 0; list-style: none; }
.package-tags li { padding: .32rem .7rem; color: var(--color-bronze-deep); background: var(--color-taupe-soft); border-radius: var(--radius-pill); font-size: .64rem; font-weight: 700; letter-spacing: .02em; }
.package-hero .package-tags + .package-hero-actions { margin-top: 1.25rem; }

/* Attractions carousel — a single non-wrapping line of destination-cards, native scroll-snap. */
.attractions-viewport { overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; -ms-overflow-style: none; margin: 0 -.15rem; padding: 0 .15rem .3rem; }
.attractions-viewport::-webkit-scrollbar { display: none; }
.attractions-track { display: flex; gap: 1rem; }
.attractions-track .destination-card { flex: 0 0 clamp(14.5rem, 23vw, 18rem); scroll-snap-align: start; }
/* Keep the name on one line and the subtitle on its own line — avoids awkward mid-name wraps at narrower card widths. */
.attractions-track .destination-card-copy h4 { display: flex; flex-direction: column; gap: .2rem; font-size: clamp(1.15rem, 1.9vw, 1.4rem); white-space: nowrap; }
.attractions-track .destination-card-copy h4 span { font-size: .6em; white-space: normal; }
.attractions-track .destination-card-copy p { font-size: .68rem; }
.attractions-nav { display: flex; align-items: center; justify-content: space-between; margin-top: 1rem; }
.attractions-nav .carousel-dots { margin-top: 0; }
/* Drop the raised card shadow inside the narrow 1rem carousel gutter — two adjacent shadows
   overlap there and read as a darker band (~#EDECE9) against the section, which looks like a
   background mismatch. Cards still read as cards via rounded corners + image gradients. */
@media (max-width: 640px) { .attractions-track .destination-card { flex-basis: 82vw; box-shadow: none; } }

/* Mobile carousels: the injected arrows+dots row is hidden until a tagged grid becomes a
   horizontal scroller below 640px (see the 640px block). Desktop layout is untouched. */
.mobile-carousel-nav { display: none; margin-top: 1rem; align-items: center; justify-content: space-between; }
.mobile-carousel-nav .carousel-dots { margin-top: 0; }

/* Destination pages reuse .landing-hero from the home page for a standard hero size and layout. */
/* Quick facts */
.quick-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(12.5rem, 1fr)); gap: .7rem; }
.quick-fact { display: flex; flex-direction: column; gap: .6rem; min-height: 8.5rem; padding: 1.15rem 1.2rem; background: var(--color-paper); border: 1px solid var(--color-mist); border-radius: var(--radius-md); transition: transform var(--ease), box-shadow var(--ease), border-color var(--ease); }
.quick-fact:hover { transform: translateY(-2px); box-shadow: var(--shadow-subtle); border-color: var(--color-taupe); }
.quick-fact-icon { display: grid; place-items: center; width: 2.4rem; height: 2.4rem; color: var(--color-gold-dark); background: var(--color-gold-soft); border-radius: var(--radius-sm); transition: background var(--ease), color var(--ease); }
.quick-fact:hover .quick-fact-icon { color: #fff; background: var(--color-gold-dark); }
.quick-fact dt { color: var(--color-gold-dark); font: 600 .6rem var(--font-display); letter-spacing: .08em; text-transform: uppercase; }
.quick-fact dd { margin: .1rem 0 0; font: 600 .95rem/1.2 var(--font-display); color: var(--color-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.quick-fact dd small { display: block; margin-top: .2rem; font: 400 .65rem var(--font-ui); color: var(--color-ink-soft); white-space: normal; }

/* About prose */
.dest-prose { max-width: 44rem; }
.dest-prose p { margin: 0 0 1rem; color: var(--color-ink-soft); font-size: .9rem; line-height: 1.75; }
.dest-prose p:last-child { margin-bottom: 0; }
.dest-prose p.dest-lead { color: var(--color-ink); font-size: 1.02rem; }

/* Flight information */
.boarding-pass-stack { display: grid; gap: 1rem; }
.boarding-pass { display: grid; grid-template-columns: 1fr 12rem; border-radius: var(--radius-md); overflow: hidden; box-shadow: var(--shadow-raised); }
.bp-main { position: relative; overflow: hidden; padding: clamp(1.25rem, 3vw, 1.75rem); color: #fff; background: var(--color-bronze-deep); }
.bp-main::before { content: ""; position: absolute; inset: 0; background-image: radial-gradient(circle, rgb(255 255 255 / 14%) 1px, transparent 1.5px); background-size: 14px 14px; opacity: .5; pointer-events: none; }
.bp-main > * { position: relative; }
.bp-tag { display: inline-block; margin-bottom: 1rem; color: var(--color-gold); font: 600 .6rem var(--font-ui); letter-spacing: .1em; text-transform: uppercase; }
.bp-route { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: clamp(.75rem, 3vw, 1.75rem); }
.bp-point small { display: block; margin-top: .1rem; color: rgb(255 255 255 / 72%); font-size: .72rem; }
.bp-point--to { text-align: right; }
.bp-code { font: 600 clamp(1.8rem, 4vw, 2.6rem)/1 var(--font-display); letter-spacing: -.02em; }
.bp-fly { display: grid; justify-items: center; gap: .35rem; color: var(--color-gold); }
.bp-fly svg { transform: rotate(90deg); }
.bp-fly small { color: rgb(255 255 255 / 80%); font-size: .68rem; white-space: nowrap; }
.bp-info { display: grid; grid-template-columns: repeat(4, 1fr); gap: .75rem; margin: 1.35rem 0 0; }
.bp-info dt { color: var(--color-gold); font: 600 .58rem var(--font-ui); letter-spacing: .08em; text-transform: uppercase; }
.bp-info dd { margin: .2rem 0 0; font: 600 .95rem var(--font-display); color: #fff; }
.bp-stub { position: relative; display: grid; align-content: space-between; gap: 1rem; padding: clamp(1.25rem, 3vw, 1.75rem) 1.25rem; background: var(--color-paper); border-left: 2px dashed var(--color-taupe); }
.bp-stub::before, .bp-stub::after { content: ""; position: absolute; left: -9px; width: 16px; height: 16px; border-radius: 50%; background: var(--color-taupe-soft); }
.bp-stub::before { top: -8px; }
.bp-stub::after { bottom: -8px; }
.bp-stub-label { color: var(--color-gold-dark); font: 600 .58rem var(--font-ui); letter-spacing: .1em; text-transform: uppercase; }
.bp-stub dl { margin: 0; }
.bp-stub dt { color: var(--color-ink-soft); font: 600 .58rem var(--font-ui); letter-spacing: .06em; text-transform: uppercase; }
.bp-stub dd { margin: .2rem 0 0; font: 600 1.05rem var(--font-display); color: var(--color-ink); }
.bp-barcode { height: 2.75rem; background: repeating-linear-gradient(90deg, var(--color-ink) 0 2px, transparent 2px 4px, var(--color-ink) 4px 7px, transparent 7px 9px); }
.flight-schedule-stack { display: grid; gap: 1rem; }
.flight-schedule-card { position: relative; overflow: hidden; background: var(--color-cloud); border: 1px solid var(--color-mist); border-radius: var(--radius-md); box-shadow: var(--shadow-subtle); }
.flight-schedule-card::before { content: ""; position: absolute; z-index: 2; inset: 0 0 auto; height: .35rem; background-color: var(--color-gold); background-image: linear-gradient(45deg, var(--color-bronze) 25%, transparent 25%, transparent 75%, var(--color-bronze) 75%), linear-gradient(45deg, var(--color-bronze) 25%, transparent 25%, transparent 75%, var(--color-bronze) 75%); background-position: 0 0, .4rem .4rem; background-size: .8rem .8rem; }
.flight-schedule-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem clamp(1rem, 2vw, 1.4rem) .65rem; background: var(--color-paper); border-bottom: 1px solid var(--color-mist); }
.flight-schedule-head span { color: var(--color-gold-dark); font-size: .6rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.flight-schedule-head h3 { margin: .1rem 0 0; font: 600 clamp(1rem, 1.6vw, 1.25rem)/1.1 var(--font-display); }
.flight-schedule-head > strong { flex: 0 0 auto; padding: .35rem .6rem; color: var(--color-bronze-deep); background: var(--color-gold-soft); border: 1px solid var(--color-gold); border-radius: var(--radius-pill); font-size: .68rem; letter-spacing: .06em; }
.flight-schedule-timeline { display: grid; grid-template-columns: minmax(6.5rem, .8fr) minmax(10rem, 1.4fr) minmax(6.5rem, .8fr); align-items: center; gap: clamp(.75rem, 2vw, 1.4rem); padding: clamp(1rem, 2vw, 1.35rem); }
.flight-schedule-point { min-width: 0; }
.flight-schedule-point > span { display: block; margin-bottom: .3rem; color: var(--color-ink-soft); font-size: .58rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.flight-schedule-point time { display: block; color: var(--color-ink); font: 600 clamp(1.65rem, 3vw, 2.2rem)/1 var(--font-display); letter-spacing: -.03em; }
.flight-schedule-point > strong { display: inline-block; margin-top: .45rem; color: var(--color-bronze-deep); font-size: .72rem; letter-spacing: .08em; }
.flight-schedule-point > small { margin-left: .35rem; color: var(--color-ink-soft); font-size: .7rem; }
.flight-schedule-point--arrival { text-align: right; }
.flight-schedule-journey { display: grid; justify-items: center; gap: .25rem; text-align: center; }
.flight-schedule-line { width: 100%; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; color: var(--color-gold-dark); }
.flight-schedule-line span { height: 1px; background: var(--color-taupe); }
.flight-schedule-line svg { width: 1.45rem; height: 1.45rem; margin: 0 .5rem; fill: currentColor; transform: rotate(90deg); }
.flight-schedule-journey > strong { font: 600 .82rem var(--font-display); }
.flight-schedule-journey > small { color: var(--color-ink-soft); font-size: .66rem; }
.flight-schedule-foot { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .8rem; padding: .55rem clamp(1rem, 2vw, 1.4rem); color: var(--color-ink-soft); background: var(--color-taupe-soft); font-size: .64rem; }
.flight-schedule-foot span + span::before { content: "·"; margin-right: 1rem; color: var(--color-taupe); }
.flight-schedule-foot a { min-height: 2.75rem; display: inline-flex; align-items: center; margin: -.45rem 0 -.45rem auto; padding: 0 .35rem; color: var(--color-bronze-deep); font-weight: 700; text-decoration: none; }
.flight-schedule-foot a:hover { text-decoration: underline; }
.flight-specs { display: grid; grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); gap: 1rem; margin-top: 1rem; }
.route-frequency { margin-left: .55rem; color: var(--color-bronze-deep); font-size: .62rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; vertical-align: middle; }
.landing-section-heading h2 .route-frequency { font-size: .68rem; }
.flight-spec { padding: 1.1rem 1.2rem; background: var(--color-paper); border: 1px solid var(--color-mist); border-radius: var(--radius-md); }
.flight-spec h3 { margin: 0 0 .35rem; font: 600 .95rem var(--font-display); }
.flight-spec p { margin: 0; color: var(--color-ink-soft); font-size: .78rem; line-height: 1.55; }
.flight-spec strong { color: var(--color-ink); }
.dest-inline-cta { margin-top: 1.4rem; }
/* ponytail: stacks multiple route blocks inside one schedules section */
.dest-flights .flight-specs + .landing-section-heading { margin-top: 2rem; }

/* Best time to visit */
.season-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: 1rem; }
.season-card { padding: 1.3rem; background: var(--color-paper); border: 1px solid var(--color-mist); border-radius: var(--radius-md); }
.season-card > span { color: var(--color-bronze); font: 600 .6rem var(--font-ui); letter-spacing: .08em; text-transform: uppercase; }
.season-card h3 { margin: .3rem 0 .5rem; font: 600 1.2rem var(--font-display); }
.season-card p { margin: 0; color: var(--color-ink-soft); font-size: .76rem; line-height: 1.6; }

/* Photo gallery */
.dest-gallery { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 12rem; gap: .6rem; }
.dest-gallery figure { position: relative; margin: 0; overflow: hidden; border-radius: var(--radius-md); }
.dest-gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform 500ms ease; }
.dest-gallery figure:hover img { transform: scale(1.04); }
.dest-gallery .is-wide { grid-column: span 2; }
.dest-gallery .is-tall { grid-row: span 2; }
.dest-gallery figcaption { position: absolute; inset: auto 0 0; z-index: 1; padding: .55rem .75rem; font-size: .62rem; color: #fff; background: linear-gradient(transparent, rgb(36 28 16 / 78%)); }
.dest-gallery-credit { margin: .7rem 0 0; color: var(--color-ink-soft); font-size: .62rem; }

/* Discover Bhutan — explore grid (dark, Emirates-style) */
.explore { padding: clamp(2.75rem, 6vw, 5rem) var(--edge) clamp(3rem, 6vw, 5.5rem); color: #fff; background: var(--color-ink); }
.explore-head { max-width: 44rem; margin: 0 auto clamp(1.75rem, 4vw, 2.75rem); text-align: center; }
.explore-head h1 { margin: .5rem 0 .5rem; font: 600 clamp(2rem, 5vw, 3.4rem)/1.04 var(--font-display); letter-spacing: -.025em; }
.explore-head p { margin: 0; color: rgb(255 255 255 / 72%); font-size: clamp(.9rem, 1.6vw, 1.05rem); }
.explore-grid { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: clamp(10.5rem, 14vw, 14.5rem); gap: .8rem; }
.explore-card { position: relative; overflow: hidden; border-radius: var(--radius-md); text-decoration: none; box-shadow: var(--shadow-raised); }
.explore-card--feature { grid-row: span 2; }
.explore-card img { width: 100%; height: 100%; object-fit: cover; transition: transform 600ms ease; }
.explore-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(transparent 42%, rgb(15 12 8 / 86%)); }
.explore-card:hover img { transform: scale(1.05); }
.explore-card:focus-visible { outline: 3px solid var(--color-gold); outline-offset: 2px; }
.explore-card span { position: absolute; z-index: 1; inset: auto 1.1rem 1.05rem; color: #fff; font: 600 clamp(1.05rem, 1.6vw, 1.4rem)/1.15 var(--font-display); text-shadow: 0 1px 10px rgb(0 0 0 / 45%); }
.explore-credit { margin: 1.1rem 0 0; color: rgb(255 255 255 / 55%); font-size: .62rem; text-align: center; }

/* Final CTA band */
.dest-cta { position: relative; overflow: hidden; padding: clamp(2.75rem, 6vw, 4.5rem) var(--edge); color: #fff; background: var(--color-bronze-deep); }
.dest-cta > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .26; }
.dest-cta-inner { position: relative; z-index: 1; max-width: 40rem; }
.dest-cta h2 { margin: .35rem 0 .6rem; font: 600 clamp(2rem, 4vw, 3rem)/1 var(--font-display); letter-spacing: -.03em; }
.dest-cta p { margin: 0 0 1.4rem; font-size: .92rem; line-height: 1.6; color: rgb(255 255 255 / 92%); }
.why-bento { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.why-bento .content-card { min-height: clamp(18rem, 26vw, 22rem); grid-template-rows: 1fr auto; }
.why-bento .content-card > img { height: 100%; }
.why-media { position: relative; overflow: hidden; min-height: clamp(18rem, 26vw, 22rem); color: #fff; border-radius: var(--radius-lg); box-shadow: var(--shadow-raised); }
.why-media--wide { grid-column: span 2; }
.why-media > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 500ms ease; }
.why-media:hover > img { transform: scale(1.03); }
.why-media::after { content: ""; position: absolute; inset: 30% 0 0; background: linear-gradient(transparent, rgb(52 40 24 / 90%)); }
.why-media-copy { position: absolute; inset: auto 0 0; z-index: 1; padding: clamp(1.25rem, 2.5vw, 1.75rem); }
.why-media-copy h3 { margin: 0 0 .4rem; font: 600 clamp(1.35rem, 2vw, 1.75rem) var(--font-display); }
.why-media-copy p { margin: 0; max-width: 34rem; font-size: .82rem; line-height: 1.5; opacity: .92; }
.why-bento .content-card .photo-credit a { color: inherit; }
.landing-offers { background: var(--color-taupe-soft); }
.photo-credit { display: block; margin-top: .65rem; color: var(--color-ink-soft); font-size: .5rem; }
.landing-page .price-card-media img { object-fit: cover; }

.landing-itineraries { background: var(--color-paper); }
.landing-travel .travel-info-pattern { padding: clamp(2rem, 5vw, 4rem); }
.landing-story-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.landing-story-grid .content-card { grid-template-rows: 15rem 1fr; }
.landing-story-grid .content-card > img { height: 15rem; }
.landing-story-grid .content-card-body .badge { margin-bottom: .65rem; }
.landing-story-grid .content-card-body p { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; margin: 0 0 1rem; color: var(--color-ink-soft); font-size: .78rem; line-height: 1.55; }

.landing-about { padding: clamp(2.25rem, 4.5vw, 3.5rem) var(--edge); background: var(--color-cloud); scroll-margin-top: 1.5rem; }
.landing-about-inner { display: grid; grid-template-columns: minmax(18rem, .8fr) minmax(0, 1.2fr); align-items: center; gap: clamp(2rem, 5vw, 5rem); }
.landing-about > img, .landing-about-inner > img { width: 100%; }
.landing-about h2 { margin: .4rem 0 1rem; font: 600 clamp(1.9rem, 3vw, 2.8rem)/.98 var(--font-display); letter-spacing: -.035em; }
.landing-about p { max-width: 38rem; color: var(--color-ink-soft); }
.landing-about-links { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 1.5rem; }
.landing-about-links a { padding: .65rem 1rem; color: var(--color-bronze-deep); border: 1px solid var(--color-taupe); border-radius: var(--radius-pill); font-size: .7rem; font-weight: 700; text-decoration: none; }
.landing-about-links a:hover { background: var(--color-taupe-soft); }
.landing-about-inner .button { margin-top: 1.25rem; }
.travel-book-band { background: var(--color-taupe-soft); }
.landing-footer { padding: clamp(2.5rem, 5vw, 3.5rem) var(--edge) 1.5rem; color: var(--color-ink); background: var(--color-mist); }
.landing-footer-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(1.5rem, 3vw, 2.5rem); margin-bottom: clamp(2rem, 4vw, 2.5rem); }
.landing-footer-col h3 { margin: 0 0 .85rem; font: 600 1rem var(--font-display); letter-spacing: -.02em; }
.landing-footer-col ul { margin: 0; padding: 0; list-style: none; }
.landing-footer-col li + li { margin-top: .45rem; }
.landing-footer-col a { color: var(--color-ink-soft); font-size: .72rem; font-weight: 600; text-decoration: none; }
.landing-footer-col a:hover { color: var(--color-bronze-deep); }
.landing-footer-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; padding-top: 1.25rem; }
.landing-footer-bar p { margin: 0; color: var(--color-ink-soft); font-size: .62rem; }
.landing-footer-bar .footer-copy { margin-left: auto; color: var(--color-ink-soft); font-size: .58rem; }

.hold-page { background: var(--color-paper); }
.hold-main { padding: clamp(1.25rem, 3vw, 2.5rem) var(--edge) clamp(3.5rem, 7vw, 6rem); overflow: visible; }
.hold-intro { max-width: 52rem; }
.hold-intro h1 { margin: .4rem 0 .5rem; font: 600 clamp(1.8rem, 3vw, 2.4rem)/1 var(--font-display); letter-spacing: -.035em; }
.hold-intro p { margin: 0; color: var(--color-ink-soft); font-size: .85rem; }
.hold-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin: 1.25rem 0 0; padding: 0; overflow: hidden; background: var(--color-mist); border: 1px solid var(--color-mist); border-radius: var(--radius-md); list-style: none; }
.hold-steps li { display: flex; gap: 1rem; align-items: flex-start; min-height: 9.5rem; padding: 1.4rem; background: var(--color-cloud); }
.hold-steps span { display: grid; flex: 0 0 auto; place-items: center; width: 2.35rem; height: 2.35rem; color: var(--color-ink); background: var(--color-gold); border-radius: 50%; font: 600 1rem var(--font-display); box-shadow: 0 0 0 5px var(--color-gold-soft); }
.hold-steps strong { display: block; margin-bottom: .35rem; font: 600 1.05rem/1.2 var(--font-display); }
.hold-steps p { margin: 0; color: var(--color-ink-soft); font-size: .72rem; line-height: 1.6; }
.hold-layout { display: grid; grid-template-columns: 1.2fr minmax(16rem, .8fr); gap: 1rem; align-items: start; }
.hold-summary { position: sticky; top: 1rem; display: flex; flex-direction: column; padding: 1.4rem; background: var(--color-taupe-soft); border: 1px solid var(--color-mist); border-radius: var(--radius-md); box-shadow: var(--shadow-subtle); }
.hold-summary h2, .hold-form-panel h2 { margin: 0 0 .75rem; font: 600 1.35rem var(--font-display); }
.hold-summary dl { display: grid; gap: 0; margin: 0 0 1rem; }
.hold-summary dl > div { display: flex; justify-content: space-between; gap: 1rem; padding: .55rem 0; border-bottom: 1px solid var(--color-mist); }
.hold-summary dt { color: var(--color-ink-soft); font-size: .68rem; font-weight: 700; }
.hold-summary dd { margin: 0; font-size: .78rem; font-weight: 700; text-align: right; }
.hold-summary-price { display: grid; gap: .15rem; margin: 0; padding: .9rem 1rem; background: var(--color-cloud); border: 1px solid var(--color-gold); border-radius: var(--radius-sm); }
.hold-summary > .text-link { margin: .75rem 0 1.25rem; }
.hold-summary-price > span { color: var(--color-ink-soft); font-size: .62rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.hold-summary-price strong { font: 600 1.5rem var(--font-display); color: var(--color-bronze-deep); }
.hold-summary-price small { color: var(--color-ink-soft); font-size: .62rem; }
.hold-summary-note { margin: 1rem 0 0; color: var(--color-ink-soft); font-size: .65rem; }
.hold-gsa-banner { display: flex; align-items: center; gap: clamp(.9rem, 2.5vw, 1.5rem); margin: 1rem 0 1.5rem; padding: .85rem clamp(1rem, 2.5vw, 1.4rem); background: var(--color-gold-soft); border: 1px solid var(--color-gold); border-radius: var(--radius-md); }
.hold-gsa-banner img { width: clamp(4.75rem, 8vw, 6rem); flex: 0 0 auto; }
.hold-gsa-banner > div { flex: 1 1 auto; }
.hold-gsa-banner strong { display: block; margin-bottom: .15rem; font: 600 .95rem var(--font-display); }
.hold-gsa-banner p { margin: 0; color: var(--color-ink-soft); font-size: .7rem; max-width: 40rem; }
.hold-gsa-banner .button { flex: 0 0 auto; }
.hold-terms { display: flex; gap: .55rem; align-items: flex-start; margin: 0 0 1.1rem; color: var(--color-ink-soft); font-size: .7rem; cursor: pointer; }
.hold-terms-demo { display: flex; gap: .55rem; align-items: flex-start; margin-top: 1rem; color: var(--color-ink-soft); font-size: .7rem; cursor: pointer; }
.hold-terms input, .hold-terms-demo input { flex: 0 0 auto; margin-top: .15rem; }
.hold-faq { margin-top: clamp(3rem, 6vw, 5rem); }
.hold-faq h2 { margin: .35rem 0 1.25rem; font: 600 clamp(1.9rem, 3vw, 2.8rem)/.98 var(--font-display); letter-spacing: -.035em; }
.faq-list { background: var(--color-cloud); border: 1px solid var(--color-mist); border-radius: var(--radius-md); }
.faq-list details { border-bottom: 1px solid var(--color-mist); }
.faq-list details:last-child { border-bottom: 0; }
.faq-list summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.1rem 1.4rem; font-size: .82rem; font-weight: 700; cursor: pointer; list-style: none; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary span { color: var(--color-bronze-deep); transition: transform var(--ease); }
.faq-list details[open] summary span { transform: rotate(180deg); }
.faq-list summary b { padding: .15rem .45rem; margin: -.15rem -.45rem; border-radius: var(--radius-sm); font-weight: 700; transition: background var(--ease), color var(--ease); }
.faq-list summary:hover b { color: var(--color-bronze-deep); background: var(--color-paper); }
.faq-answer { padding: .1rem 1.4rem 1.35rem; color: var(--color-ink-soft); font-size: .76rem; max-width: 52rem; }
.faq-answer p { margin: 0 0 .75rem; }
.faq-answer p:last-child { margin-bottom: 0; }
.faq-answer ul { margin: 0 0 .75rem; padding-left: 1.2rem; }
.faq-answer li { margin-bottom: .35rem; }
.faq-answer li:last-child { margin-bottom: 0; }
.hold-form-panel { padding: clamp(1.4rem, 3vw, 2rem); background: var(--color-cloud); border: 1px solid var(--color-mist); border-radius: var(--radius-md); }
.hold-form-panel > form > p { margin: 0 0 1.25rem; color: var(--color-ink-soft); font-size: .78rem; }
.hold-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.hold-contact-choice { display: flex; gap: .6rem; flex-wrap: wrap; margin: 1.25rem 0; padding: 0; border: 0; }
.hold-contact-choice legend { margin-bottom: .5rem; font-size: .72rem; font-weight: 700; }
.hold-contact-choice label { flex: 1 1 10rem; padding: .75rem .9rem; background: var(--color-paper); border: 1px solid var(--color-mist); border-radius: var(--radius-sm); font-size: .78rem; cursor: pointer; }
.hold-contact-choice label:has(input:checked) { background: var(--color-gold-soft); border-color: var(--color-gold); }
.hold-form-error { margin: 0 0 1rem; color: var(--color-bronze-deep); font-size: .72rem; font-weight: 700; }
.hold-form-note { margin: 1.5rem 0 0; padding-top: 1rem; border-top: 1px solid var(--color-mist); color: var(--color-ink-soft); font-size: .65rem; }
.hold-thanks { display: grid; gap: .6rem; justify-items: start; }
.hold-thanks-mark { display: grid; place-items: center; width: 2.6rem; height: 2.6rem; color: var(--color-ink); background: var(--color-gold); border-radius: 50%; font-size: 1.2rem; font-weight: 700; }
.hold-thanks h2 { margin: .4rem 0 0; }
.hold-thanks p { margin: 0; color: var(--color-ink-soft); font-size: .82rem; }
.hold-thanks [data-hold-confirm] { width: 100%; }
.hold-thanks .button { margin-top: 1rem; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

/* Book & Hold wizard */
.hold-hero { position: relative; min-height: 22rem; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(18rem, .95fr); gap: 0; align-items: stretch; margin-bottom: 1rem; overflow: hidden; color: #fff; background: var(--color-bronze-deep); border-radius: var(--radius-lg); box-shadow: var(--shadow-raised); }
.hold-hero-copy { z-index: 1; display: flex; flex-direction: column; justify-content: center; padding: clamp(2rem, 5vw, 4rem); }
.hold-hero-copy .eyebrow { color: var(--color-gold); }
.hold-hero-copy h1 { max-width: 34rem; margin: .5rem 0 .75rem; font: 600 clamp(2.5rem, 5vw, 4.25rem)/.95 var(--font-display); letter-spacing: -.045em; }
.hold-hero-copy p { max-width: 36rem; margin: 0; color: rgb(255 255 255 / 82%); font-size: clamp(.85rem, 1.4vw, 1rem); line-height: 1.65; }
.hold-hero-trust { display: flex; flex-wrap: wrap; gap: .5rem 1.2rem; margin: 1.5rem 0 0; padding: 1.15rem 0 0; border-top: 1px solid rgb(255 255 255 / 22%); list-style: none; }
.hold-hero-trust li { position: relative; padding-left: 1rem; color: #fff; font-size: .68rem; font-weight: 700; }
.hold-hero-trust li::before { content: ""; position: absolute; top: .42em; left: 0; width: .42rem; height: .42rem; background: var(--color-gold); border-radius: 50%; }
.hold-hero-media { position: relative; min-height: 22rem; overflow: hidden; }
.hold-hero-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--color-bronze-deep), transparent 45%), linear-gradient(0deg, rgb(52 40 24 / 55%), transparent 45%); }
.hold-hero-media img { width: 100%; height: 100%; min-height: 22rem; object-fit: cover; }
.hold-hero-media > span { position: absolute; z-index: 1; right: 1rem; bottom: 1rem; color: #fff; font-size: .58rem; font-weight: 700; letter-spacing: .04em; }

/* Book & Hold page — light hero (production); also reused by the Contact page hero */
.hold-page .hold-hero, .contact-page .hold-hero { min-height: 0; color: var(--color-ink); background: var(--color-paper); border: 1px solid var(--color-mist); box-shadow: var(--shadow-subtle); }
.hold-page .hold-hero-copy, .contact-page .hold-hero-copy { padding: clamp(1.25rem, 3vw, 2rem); background: transparent; }
.hold-page .hold-hero-copy .eyebrow, .contact-page .hold-hero-copy .eyebrow { color: var(--color-bronze-deep); }
.hold-page .hold-hero-copy h1, .contact-page .hold-hero-copy h1 { max-width: none; margin: .35rem 0 .5rem; font-size: clamp(1.75rem, 3.5vw, 2.5rem); color: var(--color-ink); }
.hold-page .hold-hero-copy p, .contact-page .hold-hero-copy p { max-width: 36rem; color: var(--color-ink-soft); font-size: .78rem; line-height: 1.55; }
.hold-page .hold-hero-tagline, .contact-page .hold-hero-tagline { font-weight: 600; color: var(--color-bronze-deep); font-size: .82rem !important; }
.hold-page .hold-hero-lockup, .contact-page .hold-hero-lockup { display: block; width: clamp(6rem, 12vw, 9rem); margin: .65rem 0 .5rem; }
.hold-page .hold-hero-trust, .contact-page .hold-hero-trust { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .45rem .55rem; margin-top: .75rem; padding-top: .75rem; border-top: 1px solid rgb(178 154 119 / 28%); list-style: none; }
.hold-page .hold-hero-trust li, .contact-page .hold-hero-trust li { display: flex; align-items: center; gap: .55rem; min-height: 2.5rem; padding: .5rem .65rem; color: var(--color-ink-soft); font-size: .62rem; font-weight: 600; line-height: 1.3; background: rgb(255 254 251 / 55%); border: 1px solid rgb(230 221 207 / 85%); border-radius: var(--radius-sm); }
.hold-page .hold-hero-trust li::before, .contact-page .hold-hero-trust li::before { content: none; }
.hold-page .hold-trust-icon, .contact-page .hold-trust-icon { flex: 0 0 auto; display: grid; place-items: center; width: 1.55rem; height: 1.55rem; color: var(--color-bronze-deep); background: var(--color-gold-soft); border: 1px solid rgb(245 184 0 / 35%); border-radius: var(--radius-sm); }
.hold-page .hold-trust-icon svg, .contact-page .hold-trust-icon svg { display: block; width: .78rem; height: .78rem; }
.hold-page .hold-trust-label, .contact-page .hold-trust-label { flex: 1 1 auto; min-width: 0; line-height: 1.35; }
.hold-page .hold-hero-media, .contact-page .hold-hero-media { min-height: 16rem; background: var(--color-paper); }
.hold-page .hold-hero-media::after, .contact-page .hold-hero-media::after { content: none; }
.hold-page .hold-hero-media img, .contact-page .hold-hero-media img { min-height: 16rem; object-position: 60% center; }
.hold-page .hold-wizard-steps { grid-template-columns: repeat(2, minmax(5.5rem, 1fr)); width: min(100%, 18rem); }
.hold-summary-breakdown { margin: .85rem 0 0; padding-top: .85rem; border-top: 1px solid var(--color-mist); }
.hold-summary-breakdown div { display: flex; justify-content: space-between; gap: .75rem; margin-bottom: .35rem; font-size: .72rem; }
.hold-summary-breakdown dt { color: var(--color-ink-soft); font-weight: 600; }
.hold-summary-breakdown dd { margin: 0; font-weight: 700; text-align: right; }
.hold-wizard-panel h3 { margin: 1.25rem 0 .65rem; font: 600 1rem var(--font-display); }

/* Hold page — wizard shell & symmetrical booking layout */
.hold-page .hold-wizard-shell { background: var(--color-cloud); border: 1px solid var(--color-mist); border-radius: var(--radius-md); box-shadow: none; }
.hold-page .hold-wizard-layout { grid-template-columns: minmax(0, 1fr) minmax(17rem, 21rem); gap: 1rem; align-items: start; padding: 1.25rem; }
.hold-page .hold-wizard-panels { display: flex; flex-direction: column; min-height: 27rem; }
.hold-page .hold-wizard-panel { display: flex; flex-direction: column; flex: 1 1 auto; }
.hold-page .hold-wizard-panel h2 { margin: 0 0 .35rem; font-size: clamp(1.25rem, 2vw, 1.55rem); }
.hold-page .hold-wizard-panel > p { margin: 0 0 .85rem; font-size: .72rem; }
.hold-page .hold-booking-card { flex: 1 1 auto; margin: 0; padding: .85rem; background: var(--color-paper); border: 1px solid rgb(230 221 207 / 85%); border-radius: var(--radius-sm); box-shadow: none; }
.hold-page .hold-booking-card .landing-booking-top { margin-bottom: .65rem; padding-bottom: .65rem; border-bottom: 1px solid rgb(230 221 207 / 70%); }
.hold-page .hold-booking-card .booking-fields { display: grid; grid-template-columns: minmax(0, 1fr) 1.75rem minmax(0, 1fr); gap: .5rem; margin-top: 0; align-items: stretch; }
.hold-page .hold-booking-card .route-picker:first-of-type { grid-column: 1; grid-row: 1; }
.hold-page .hold-booking-card .swap-button { grid-column: 2; grid-row: 1; align-self: center; justify-self: center; width: 1.75rem; height: 1.75rem; margin: 0; font-size: .9rem; background: var(--color-cloud); border: 1px solid var(--color-mist); border-radius: 50%; }
.hold-page .hold-booking-card .route-picker:last-of-type { grid-column: 3; grid-row: 1; }
.hold-page .hold-booking-card .calendar-picker { grid-column: 1 / 3; grid-row: 2; }
.hold-page .hold-booking-card .passenger-picker { grid-column: 3; grid-row: 2; }
.hold-page .hold-booking-card .search-flight { grid-column: 1 / -1; grid-row: 3; width: 100%; min-height: 2.75rem; margin-top: .1rem; padding-inline: 1rem; font-size: .76rem; font-weight: 700; border-radius: var(--radius-sm); }
.hold-page .hold-booking-card .travel-field,
.hold-page .hold-booking-card .compact-field,
.hold-page .hold-booking-card .passenger-field {
  position: relative;
  min-height: 3.5rem;
  height: 100%;
  padding: .5rem .75rem;
  display: grid;
  grid-template-columns: 2rem 1fr;
  grid-template-rows: auto auto;
  align-content: center;
  align-items: center;
  column-gap: .65rem;
  row-gap: .06rem;
  border-color: var(--color-mist);
  background: var(--color-cloud);
  border-radius: var(--radius-sm);
  text-align: left;
}
.hold-page .hold-booking-card .travel-field::before,
.hold-page .hold-booking-card .compact-field::before,
.hold-page .hold-booking-card .passenger-field::before {
  content: "";
  position: static;
  grid-column: 1;
  grid-row: 1 / -1;
  align-self: center;
  justify-self: center;
  width: 2rem;
  height: 2rem;
  margin: 0;
  background: var(--color-gold-soft) center / 1rem no-repeat;
  border-radius: 50%;
  transform: none;
}
.hold-page .hold-booking-card .travel-field::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%235f4e38'%3E%3Cpath d='M21 16v-2l-8-5V3.5a1.5 1.5 0 0 0-3 0V9l-8 5v2l8-2.5V19l-2 1.5V22l3.5-1 3.5 1v-1.5L13 19v-5.5z'/%3E%3C/svg%3E"); }
.hold-page .hold-booking-card .compact-field::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%235f4e38'%3E%3Cpath d='M19 4h-1V2h-2v2H8V2H6v2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2zm0 16H5V10h14zM19 8H5V6h14z'/%3E%3C/svg%3E"); }
.hold-page .hold-booking-card .passenger-field::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%235f4e38'%3E%3Cpath d='M12 12a4 4 0 1 0-4-4 4 4 0 0 0 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z'/%3E%3C/svg%3E"); }
.hold-page .hold-booking-card .travel-field > span,
.hold-page .hold-booking-card .compact-field > span,
.hold-page .hold-booking-card .passenger-field > span {
  grid-column: 2;
  grid-row: 1;
  margin: 0;
  font-size: .55rem;
  line-height: 1.2;
}
.hold-page .hold-booking-card .travel-field strong,
.hold-page .hold-booking-card .compact-field strong,
.hold-page .hold-booking-card .passenger-field strong {
  grid-column: 2;
  grid-row: 2;
  margin: 0;
  font-size: .82rem;
  line-height: 1.25;
}
.hold-page .hold-summary { position: static; top: auto; height: auto; padding: 1.1rem 1.15rem; background: var(--color-taupe-soft); border: 1px solid rgb(230 221 207 / 90%); border-radius: var(--radius-sm); box-shadow: none; }
.hold-page .hold-summary h2 { margin: 0 0 .65rem; font-size: 1.15rem; }
.hold-page .hold-summary-sheet { display: grid; gap: 0; margin: 0; }
.hold-page .hold-summary-sheet > div:not(.hold-summary-divider) { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .65rem; align-items: center; padding: .42rem 0; border-bottom: 1px solid rgb(230 221 207 / 70%); }
.hold-page .hold-summary-sheet > div:last-of-type { border-bottom: 0; }
.hold-page .hold-summary-sheet dt { color: var(--color-ink-soft); font-size: .66rem; font-weight: 600; line-height: 1.3; }
.hold-page .hold-summary-sheet dd { margin: 0; color: var(--color-ink); font-size: .72rem; font-weight: 700; font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; line-height: 1.3; }
.hold-page .hold-summary-divider { height: 1px; margin: .35rem 0 .25rem; padding: 0; background: rgb(178 154 119 / 35%); border: 0; }
.hold-page .hold-summary-total { display: grid; gap: .12rem; margin-top: .75rem; padding: .75rem .85rem; background: var(--color-gold-soft); border: 1px solid var(--color-gold); border-radius: var(--radius-sm); }
.hold-page .hold-summary-total > span { color: var(--color-bronze-deep); font-size: .58rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.hold-page .hold-summary-total strong { font: 600 1.35rem var(--font-display); color: var(--color-ink); font-variant-numeric: tabular-nums; line-height: 1.1; }
.hold-page .hold-summary-total small { color: var(--color-ink-soft); font-size: .6rem; line-height: 1.35; }
.hold-page .hold-summary-note { margin: .65rem 0 0; font-size: .62rem; line-height: 1.45; }

.hold-page .hold-crosssell { padding: 1.1rem 1.15rem; background: var(--color-taupe-soft); border: 1px solid rgb(230 221 207 / 90%); border-radius: var(--radius-sm); }
.hold-page .hold-crosssell h2 { margin: .3rem 0 .35rem; font-size: 1.15rem; }
.hold-page .hold-crosssell-intro { margin: 0 0 .85rem; color: var(--color-ink-soft); font-size: .72rem; line-height: 1.5; }
.hold-page .hold-package-carousel { overflow: hidden; border-radius: var(--radius-sm); }
.hold-page .hold-package-track { display: flex; transition: transform .35s ease; }
.hold-page .hold-package-track .package-card { flex: 0 0 100%; }
.hold-page .hold-package-track .package-card > div { padding: .85rem .95rem; }
.hold-page .hold-package-track .package-card h4 { font-size: 1.05rem; }
.hold-page .hold-package-track .package-card p { font-size: .68rem; line-height: 1.5; }
.hold-page .hold-package-nav { display: flex; align-items: center; justify-content: space-between; margin-top: .65rem; }
.hold-page .hold-package-nav .icon-button { width: 2.1rem; height: 2.1rem; }
.hold-page .hold-package-nav .carousel-dots { margin-top: 0; }
.hold-page .hold-package-viewall { display: block; width: 100%; margin-top: .85rem; text-align: center; }

/* Hold page — "Handled in Thailand" band (design-system content-cards + support tiles) */
.hold-page .hold-steps li { align-items: center; }
.hold-page .hold-steps li > span { flex: 0 0 auto; align-self: center; }
.hold-page .hold-steps li > div { display: flex; flex-direction: column; justify-content: center; min-height: 2.35rem; }
.hold-page .hold-steps strong { margin: 0 0 .25rem; line-height: 1.25; }
.hold-page .hold-steps p { margin: 0; line-height: 1.45; }

.hold-wizard-shell { overflow: visible; background: var(--color-cloud); border: 1px solid var(--color-mist); border-radius: var(--radius-lg); box-shadow: var(--shadow-raised); }
.hold-progress { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 1rem 1.25rem; background: var(--color-paper); border-bottom: 1px solid var(--color-mist); border-radius: var(--radius-lg) var(--radius-lg) 0 0; }
.hold-progress > div { display: grid; flex: 0 0 auto; }
.hold-progress > div > strong { font: 600 1.05rem var(--font-display); }
.hold-wizard-steps { display: grid; grid-template-columns: repeat(4, minmax(5.5rem, 1fr)); gap: 0; width: min(100%, 34rem); margin: 0; padding: 0; list-style: none; counter-reset: hold-step; }
.hold-wizard-steps li { position: relative; display: grid; justify-items: center; gap: .35rem; padding: .2rem .35rem; color: var(--color-ink-soft); font-size: .62rem; font-weight: 700; }
.hold-wizard-steps li::before { content: ""; position: absolute; z-index: 0; top: .85rem; left: 0; width: 100%; border-top: 1px solid var(--color-mist); }
.hold-wizard-steps li:first-child::before { left: 50%; width: 50%; }
.hold-wizard-steps li:last-child::before { width: 50%; }
.hold-wizard-steps li.is-active { color: var(--color-ink); }
.hold-wizard-steps li.is-done { color: var(--color-bronze-deep); }
.hold-wizard-steps li span { z-index: 1; display: grid; place-items: center; width: 1.7rem; height: 1.7rem; color: var(--color-ink-soft); background: var(--color-cloud); border: 1px solid var(--color-mist); border-radius: 50%; font: 600 .65rem var(--font-display); }
.hold-wizard-steps li.is-active span { color: var(--color-ink); background: var(--color-gold); border-color: var(--color-gold); box-shadow: 0 0 0 4px var(--color-gold-soft); }
.hold-wizard-steps li.is-done span { color: #fff; background: var(--color-pine); border-color: var(--color-pine); }
.hold-wizard-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(16rem, 20rem); gap: 1.25rem; align-items: start; padding: clamp(1.25rem, 3vw, 2rem); }
.hold-wizard-panels { min-width: 0; }
.hold-wizard-panel[hidden] { display: none !important; }
.hold-wizard-panel h2 { margin: 0 0 .4rem; font: 600 clamp(1.4rem, 2.5vw, 1.8rem) var(--font-display); }
.hold-page [tabindex="-1"]:focus { outline: none; }
.hold-wizard-panel > p { margin: 0 0 1rem; color: var(--color-ink-soft); font-size: .78rem; }
.hold-wizard-panel .landing-booking-card { margin: 0; padding: 1rem; background: var(--color-paper); border: 1px solid var(--color-mist); border-radius: var(--radius-md); box-shadow: none; }
.hold-wizard-panel .booking-fields { grid-template-columns: 1fr 1.6rem 1fr; }
.hold-wizard-actions { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .65rem; margin-top: 1.25rem; padding-top: 1.25rem; border-top: 1px solid var(--color-mist); }
.hold-results { display: grid; gap: 1rem; }
.hold-result-leg { padding: 1rem 1.1rem; background: var(--color-paper); border: 1px solid var(--color-mist); border-radius: var(--radius-md); }
.hold-result-leg header { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .35rem .75rem; margin-bottom: .75rem; }
.hold-result-leg header strong { font: 600 1rem var(--font-display); }
.hold-result-leg header small { color: var(--color-ink-soft); font-size: .68rem; }
.hold-result-row { display: grid; grid-template-columns: auto 1fr auto; gap: .75rem 1rem; align-items: center; }
.hold-result-row .code { font: 600 1.35rem var(--font-display); letter-spacing: -.02em; }
.hold-result-row .meta { text-align: center; color: var(--color-ink-soft); font-size: .68rem; }
.hold-result-row .meta svg { display: block; margin: 0 auto .2rem; color: var(--color-gold-dark); }
.hold-result-row .times { text-align: right; font-size: .78rem; font-weight: 700; }
.hold-fare-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; margin-top: .85rem; }
.hold-fare-card { display: grid; gap: .25rem; padding: .9rem 1rem; background: var(--color-cloud); border: 1px solid var(--color-mist); border-radius: var(--radius-sm); cursor: pointer; transition: border-color var(--ease), background var(--ease); }
.hold-fare-card:has(input:checked) { background: var(--color-gold-soft); border-color: var(--color-gold); }
.hold-fare-card input { margin: 0 0 .15rem; }
.hold-fare-card strong { font: 600 1.05rem var(--font-display); }
.hold-fare-card small { color: var(--color-ink-soft); font-size: .62rem; line-height: 1.45; }
.hold-passenger-block { margin-bottom: 1.25rem; padding-bottom: 1.25rem; border-bottom: 1px solid var(--color-mist); }
.hold-passenger-block:last-of-type { margin-bottom: 0; padding-bottom: 0; border-bottom: 0; }
.hold-passenger-block h3 { margin: 0 0 .75rem; font: 600 1rem var(--font-display); }
.hold-passenger-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.hold-passenger-grid .field--wide { grid-column: 1 / -1; }
.hold-process, .hold-handled { margin-top: clamp(3rem, 6vw, 5rem); }
.hold-content-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.hold-content-grid .content-card { grid-template-rows: 12rem auto; }
.hold-content-grid .content-card > img { height: 12rem; }
.hold-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 1.25rem; }
.hold-section-heading h2 { margin: .35rem 0 0; font: 600 clamp(1.9rem, 3vw, 2.8rem)/.98 var(--font-display); letter-spacing: -.035em; }
.hold-section-heading > p { max-width: 28rem; margin: 0; color: var(--color-ink-soft); font-size: .78rem; text-align: right; }
.hold-support-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 0; }
.hold-support-card { position: relative; padding: 1.4rem 1.5rem 1.4rem 3.9rem; background: var(--color-cloud); border: 1px solid var(--color-mist); border-radius: var(--radius-md); }
.hold-support-card::before { content: "i"; position: absolute; top: 1.35rem; left: 1.35rem; display: grid; place-items: center; width: 1.7rem; height: 1.7rem; color: var(--color-bronze-deep); background: var(--color-gold-soft); border-radius: 50%; font: 700 .72rem var(--font-ui); }
.hold-support-card h3 { margin: 0 0 .45rem; font: 600 1.05rem var(--font-display); }
.hold-support-card p { margin: 0; color: var(--color-ink-soft); font-size: .76rem; line-height: 1.6; }
.hold-support-card a { color: var(--color-bronze-deep); font-weight: 700; text-underline-offset: .15rem; }

/* Travel information */
.travel-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(14rem, 22rem); gap: clamp(1.25rem, 3vw, 2rem); align-items: center; padding: clamp(1.75rem, 3.5vw, 2.5rem) var(--edge); background: var(--color-paper); }
.travel-hero-copy h1 { margin: .4rem 0 .55rem; font: 600 clamp(2rem, 4vw, 2.8rem)/1.02 var(--font-display); letter-spacing: -.03em; }
.travel-hero-copy p { margin: 0; max-width: 38rem; color: var(--color-ink-soft); font-size: .88rem; line-height: 1.6; }
.travel-hero-media { overflow: hidden; border-radius: var(--radius-md); box-shadow: var(--shadow-subtle); }
.travel-hero-media img { width: 100%; height: clamp(11rem, 18vw, 14rem); object-fit: cover; }
.travel-hub-nav { padding: clamp(2rem, 4vw, 3rem) var(--edge); background: var(--color-cloud); }
.travel-hub-nav .travel-info-pattern { max-width: var(--content); margin: 0 auto; }
.travel-page-main { padding: clamp(1.5rem, 3vw, 2.5rem) var(--edge) clamp(3rem, 6vw, 4.5rem); }
.travel-breadcrumb { display: flex; gap: .45rem; margin: 0 0 .85rem; color: var(--color-ink-soft); font-size: .68rem; }
.travel-breadcrumb a { color: var(--color-bronze-deep); font-weight: 600; text-decoration: none; }
.travel-breadcrumb a:hover { text-decoration: underline; }
.travel-hero-copy .travel-review { display: flex; flex-wrap: wrap; gap: .25rem .65rem; margin-top: .85rem; font-size: .68rem; }
.travel-review strong { color: var(--color-bronze-deep); }
.travel-page-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(14rem, 18rem); gap: clamp(1.25rem, 3vw, 2rem); align-items: start; }
.travel-single { padding: clamp(2.25rem, 4vw, 3.5rem) var(--edge) clamp(3rem, 6vw, 4.5rem); background: linear-gradient(180deg, var(--color-mist) 0%, var(--color-cloud) 42%); }
.travel-tabs-shell { max-width: var(--content); margin: 0 auto; }
.travel-tabs-heading { max-width: 38rem; margin: 0 0 1.35rem; text-align: left; }
.travel-tabs-heading h2 { margin: .35rem 0 .45rem; font: 600 clamp(1.7rem, 3vw, 2.35rem)/1.05 var(--font-display); letter-spacing: -.03em; }
.travel-tabs-heading p { margin: 0; color: var(--color-ink-soft); font-size: .82rem; }
/* Qatar-style topic card: tab strip + white panel (B3 gold/bronze accents) */
.travel-topic-card { overflow: hidden; background: var(--color-cloud); border: 1px solid var(--color-mist); border-radius: var(--radius-lg); box-shadow: var(--shadow-subtle); }
.travel-tabs { display: none; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0; margin: 0; border-bottom: 1px solid var(--color-mist); background: var(--color-cloud); }
.travel-tabs.is-enhanced { display: grid; }
.dest-schedule-tabs .travel-tabs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.travel-tabs button { min-height: 4.5rem; display: grid; place-items: center; align-content: center; gap: .35rem; padding: .7rem .55rem .8rem; color: var(--color-ink-soft); background: transparent; border: 0; border-bottom: 3px solid transparent; border-radius: 0; font: 600 .7rem/1.2 var(--font-ui); letter-spacing: .01em; cursor: pointer; transition: color var(--ease); }
.travel-tabs button:hover { color: var(--color-bronze-deep); }
.travel-tabs button[aria-selected="true"] { color: var(--color-bronze-deep); border-bottom-color: var(--color-gold); }
.travel-tabs button:focus-visible { outline-offset: -4px; z-index: 1; }
.travel-tabs svg { width: 1.35rem; height: 1.35rem; fill: none; stroke: currentColor; stroke-width: 1.55; stroke-linecap: round; stroke-linejoin: round; }
.travel-tab-panels { max-width: none; margin: 0; padding: clamp(1.5rem, 3.5vw, 2.35rem); background: transparent; border: 0; border-radius: 0; box-shadow: none; }
.travel-section[hidden] { display: none; }
.travel-section { scroll-margin-top: 1.25rem; padding-top: clamp(2rem, 4vw, 2.75rem); border-top: 1px solid var(--color-mist); }
.travel-section:first-child { padding-top: 0; border-top: 0; }
.travel-tabs.is-enhanced ~ .travel-tab-panels .travel-section { border-top: 0; padding-top: 0; }
.travel-panel-intro { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(12rem, .85fr); gap: clamp(1.25rem, 3vw, 2.25rem); align-items: stretch; margin-bottom: 0; }
.travel-panel-intro--reverse { grid-template-columns: minmax(12rem, .85fr) minmax(0, 1.15fr); }
.travel-panel-intro--reverse .travel-panel-media { order: -1; }
.travel-panel-split { display: grid; grid-template-columns: minmax(13rem, .4fr) minmax(0, .6fr); gap: 0; overflow: hidden; border: 1px solid var(--color-mist); border-radius: var(--radius-md); background: var(--color-paper); }
.travel-panel-split--reverse { grid-template-columns: minmax(0, .6fr) minmax(13rem, .4fr); }
.travel-panel-split--reverse .travel-panel-media { order: 2; }
.travel-panel-split .travel-panel-copy { min-width: 0; padding: clamp(1.15rem, 2.5vw, 1.65rem); }
.travel-panel-split .travel-panel-copy .dest-section-lead { margin-bottom: .75rem; font-size: .82rem; }
.travel-panel-split .travel-panel-media { margin: 0; min-height: clamp(16rem, 28vw, 22rem); overflow: hidden; border-radius: 0; }
.travel-panel-split .travel-panel-media img { display: block; width: 100%; height: 100%; min-height: clamp(16rem, 28vw, 22rem); object-fit: cover; }
.travel-panel-media { margin: 0; overflow: hidden; border-radius: var(--radius-md); align-self: stretch; }
.travel-panel-media img { display: block; width: 100%; height: 100%; min-height: clamp(14rem, 24vw, 18rem); object-fit: cover; }
.travel-section h2 { margin: 0 0 .65rem; font: 600 clamp(1.45rem, 2.4vw, 1.95rem)/1.1 var(--font-display); letter-spacing: -.03em; }
.travel-section h3 { margin: 1rem 0 .4rem; font: 600 1.02rem/1.25 var(--font-display); }
.travel-section ul { margin: .2rem 0 .85rem; padding-left: 1.15rem; color: var(--color-ink-soft); font-size: .8rem; line-height: 1.6; }
.travel-panel-copy .eyebrow { display: inline-block; margin-bottom: .35rem; }
.travel-panel-copy .dest-section-lead { margin: .45rem 0 0; max-width: 36rem; font-size: .82rem; }
.travel-panel-copy p { font-size: .82rem; line-height: 1.65; }
.travel-panel-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem 1.4rem; margin: .9rem 0 0; }
.travel-panel-facts dt { color: var(--color-gold-dark); font-size: .62rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.travel-panel-facts dd { margin: .2rem 0 0; color: var(--color-ink-soft); font-size: .78rem; line-height: 1.55; }
.travel-panel-facts dd a { color: var(--color-bronze-deep); font-weight: 600; }
.travel-section li + li { margin-top: .25rem; }
.travel-section .dest-section-lead { margin-bottom: 0; }
.travel-section > img { width: 100%; height: clamp(12rem, 30vw, 18rem); border-radius: var(--radius-md); margin: 1rem 0 1.25rem; object-fit: cover; }
.travel-visa-callout { margin: 0 0 1.25rem; padding: 1.1rem 1.2rem; background: var(--color-gold-soft); border: 1px solid var(--color-gold); border-radius: var(--radius-md); }
.travel-visa-callout strong { display: block; margin-bottom: .35rem; font: 600 1rem var(--font-display); }
.travel-visa-callout p { margin: 0; color: var(--color-ink-soft); font-size: .76rem; line-height: 1.55; }
.travel-before-heading { max-width: 38rem; margin: clamp(2rem, 4vw, 2.75rem) auto 1.25rem; text-align: center; }
.travel-before-heading h2 { margin: .35rem 0 .45rem; font: 600 clamp(1.7rem, 3vw, 2.35rem)/1.05 var(--font-display); letter-spacing: -.03em; }
.travel-before-heading p { margin: 0; color: var(--color-ink-soft); font-size: .82rem; }
.travel-before-stack { display: grid; gap: 1.15rem; }
.travel-stand-card { padding: clamp(1.5rem, 3.5vw, 2.35rem); scroll-margin-top: 6.5rem; }
.travel-stand-card .travel-panel-intro { margin-bottom: 1.25rem; }
.travel-subgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem; }
.travel-subblock { padding: 1rem 1.05rem; background: var(--color-paper); border: 1px solid var(--color-mist); border-radius: var(--radius-md); }
.travel-subblock h3 { margin: 0 0 .4rem; font: 600 .95rem/1.25 var(--font-display); color: var(--color-bronze-deep); }
.travel-subblock p { margin: 0; color: var(--color-ink-soft); font-size: .76rem; line-height: 1.6; }
.travel-subblock p + p { margin-top: .45rem; }
.travel-subblock ul { margin: .35rem 0 0; padding-left: 1.1rem; color: var(--color-ink-soft); font-size: .76rem; line-height: 1.55; }
.travel-subblock li + li { margin-top: .2rem; }
.travel-subblock a { color: var(--color-bronze-deep); font-weight: 600; }
.travel-sidebar { position: sticky; top: 1rem; display: grid; gap: .55rem; padding: 1.1rem 1.15rem; background: var(--color-taupe-soft); border: 1px solid var(--color-mist); border-radius: var(--radius-md); }
.travel-sidebar h2 { margin: 0 0 .35rem; font: 600 1rem var(--font-display); }
.travel-sidebar a { color: var(--color-bronze-deep); font-size: .72rem; font-weight: 600; text-decoration: none; }
.travel-sidebar a:hover { text-decoration: underline; }
.travel-prose-table { width: 100%; margin: 1rem 0; border-collapse: collapse; font-size: .78rem; }
.travel-prose { max-width: 44rem; color: var(--color-ink-soft); font-size: .82rem; line-height: 1.65; }
.travel-prose p { margin: 0 0 .85rem; }
.travel-prose p:last-child { margin-bottom: 0; }
.travel-prose a { color: var(--color-bronze-deep); font-weight: 600; }
.legal-partners { max-width: var(--content); margin: 0 auto; display: grid; gap: clamp(1.5rem, 3vw, 2.5rem); }
.legal-partners > h2 { margin: .35rem 0 0; font: 600 clamp(1.65rem, 3vw, 2.2rem)/1.05 var(--font-display); letter-spacing: -.03em; }
.legal-partner { display: grid; grid-template-columns: minmax(9rem, .32fr) minmax(0, .68fr); align-items: center; gap: clamp(1.25rem, 4vw, 3rem); }
.legal-partner + .legal-partner { padding-top: clamp(1.5rem, 3vw, 2.25rem); border-top: 1px solid var(--color-mist); }
.legal-partner img { width: min(100%, 14rem); justify-self: center; }
.legal-partner h3 { margin: 0 0 .55rem; font: 600 clamp(1.2rem, 2.2vw, 1.55rem) var(--font-display); }
.legal-partner p { margin: 0; max-width: 38rem; color: var(--color-ink-soft); font-size: .82rem; line-height: 1.65; }
.travel-prose-table caption { padding: 0 0 .45rem; color: var(--color-ink-soft); font-size: .68rem; font-weight: 600; text-align: left; }
.travel-prose-table th, .travel-prose-table td { padding: .65rem .75rem; text-align: left; border: 1px solid var(--color-mist); }
.travel-prose-table th { background: var(--color-taupe-soft); font-weight: 700; }
.travel-faq { max-width: var(--content); margin: 0 auto; padding: clamp(2.5rem, 5vw, 4rem) var(--edge) clamp(3rem, 6vw, 4.5rem); background: var(--color-paper); scroll-margin-top: 6.5rem; }
.travel-faq.hold-faq { margin-top: 0; }
.faq-topic { margin-bottom: 1.5rem; }
.faq-topic h3 { margin: 0 0 .65rem; font: 600 1.15rem var(--font-display); }
.travel-quick-links { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1.25rem; }

/* Travel information page (landing-section layout) */
.travel-page .landing-section { scroll-margin-top: 7.5rem; padding: clamp(2.5rem, 5vw, 4rem) var(--edge); background: var(--color-cloud); }
.travel-page .landing-section.landing-tint { background: var(--color-paper); }
.travel-page .landing-travel { padding-top: clamp(1.5rem, 3vw, 2rem); padding-bottom: clamp(2rem, 4vw, 3rem); background: var(--color-paper); }
.travel-page-hero-inner { max-width: var(--content); margin: 0 auto; }
.travel-page-hero h1 { margin: .45rem 0 .65rem; font: 600 clamp(2rem, 4vw, 2.8rem)/1.02 var(--font-display); letter-spacing: -.03em; }
.travel-page .travel-page-hero { padding-bottom: clamp(1rem, 2vw, 1.5rem); }
.travel-page .travel-tab-panels { display: grid; }
.travel-page .travel-tab-panels > .travel-section { grid-area: 1 / 1; }
.travel-page .travel-tab-panels > .travel-section[hidden] { display: block !important; visibility: hidden; pointer-events: none; }
.travel-page-nav { max-width: var(--content); margin: 0 auto; }
.travel-page-nav h2 { max-width: 22rem; margin: .5rem 0 .45rem; font: 600 clamp(1.85rem, 3.5vw, 2.6rem)/1 var(--font-display); }
.travel-page-nav .dest-section-lead { max-width: 26rem; margin: 0; font-size: .85rem; }
.travel-page-split { max-width: var(--content); display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(14rem, .85fr); gap: clamp(2rem, 4vw, 3.5rem); align-items: start; margin: 0 auto; }
.travel-page-split--reverse .travel-page-media { order: -1; }
.travel-page-media { margin: 0; overflow: hidden; border-radius: var(--radius-md); }
.travel-page-media img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.travel-page-prose { max-width: none; }
.travel-page-prose--wide { max-width: 52rem; margin: 0 auto; }
.travel-page-prose h3 { margin: 1.75rem 0 .6rem; font: 600 1.12rem/1.25 var(--font-display); color: var(--color-ink); }
.travel-page-prose h3:first-of-type { margin-top: 0; }
.travel-page-prose ul { margin: 0 0 1rem; padding-left: 1.25rem; color: var(--color-ink-soft); font-size: .9rem; line-height: 1.75; }
.travel-page-prose li + li { margin-top: .3rem; }
.travel-page-prose a { color: var(--color-bronze-deep); font-weight: 600; }
.travel-role-list { max-width: 52rem; margin: 0 auto; padding: .25rem 0; }
.travel-page .landing-section-heading { max-width: var(--content); margin: 0 auto clamp(1.5rem, 3vw, 2rem); }
.travel-page .landing-section-heading .dest-section-lead { margin-top: .55rem; max-width: 40rem; }
.travel-page-hero .travel-review { display: flex; flex-wrap: wrap; gap: .25rem .65rem; margin-top: .85rem; font-size: .68rem; }
.travel-page-faq { max-width: var(--content); margin: 0 auto; }
.travel-page .hold-faq { margin-top: 0; }
.travel-page .hold-faq h2 { margin: .35rem 0 1.5rem; font: 600 clamp(1.9rem, 3vw, 2.8rem)/.98 var(--font-display); letter-spacing: -.035em; }
.travel-page-book { max-width: var(--content); margin: 0 auto; }
.travel-page-book .hold-gsa-banner { margin: 0 0 1.25rem; }
.travel-page-book .dest-section-lead { max-width: 44rem; margin-bottom: 1.25rem; }
.travel-page .travel-tabs-shell { padding: 0; }
.travel-panel-copy h3 { margin: 1.5rem 0 .5rem; font: 600 1.12rem/1.25 var(--font-display); }
.travel-panel-copy h3:first-of-type { margin-top: 0; }

/* Baggage (Emirates-style layout, B3 tokens) */
.travel-baggage-hero { max-width: var(--content); margin: 0 auto 1.75rem; }
.travel-baggage-hero h2 { margin: .4rem 0 .55rem; font: 600 clamp(1.9rem, 3vw, 2.8rem)/.98 var(--font-display); letter-spacing: -.035em; }
.travel-baggage-hero .dest-section-lead { max-width: 40rem; margin: 0; }
.travel-baggage-shell { max-width: var(--content); margin: 0 auto; display: grid; gap: clamp(1.75rem, 3.5vw, 2.5rem); }
.travel-baggage-intro h3 { margin: 0 0 .35rem; font: 600 clamp(1.25rem, 2vw, 1.55rem)/1.15 var(--font-display); }
.travel-baggage-intro p, .travel-baggage-note { margin: 0; color: var(--color-ink-soft); font-size: .82rem; line-height: 1.65; }
.travel-baggage-allowance-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem; }
.travel-baggage-allowance-card { padding: clamp(1.15rem, 2.5vw, 1.5rem); background: var(--color-cloud); border: 1px solid var(--color-mist); border-radius: var(--radius-md); }
.travel-baggage-allowance-label { display: block; margin-bottom: .55rem; color: var(--color-bronze-deep); font-size: .62rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.travel-baggage-allowance-stat { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .5rem; margin: 0 0 .55rem; }
.travel-baggage-allowance-stat svg { width: 1.8rem; height: 1.8rem; flex: 0 0 auto; fill: none; stroke: var(--color-gold-dark); stroke-width: 1.55; stroke-linecap: round; stroke-linejoin: round; }
.travel-baggage-allowance-stat strong { font: 600 clamp(2rem, 4vw, 2.75rem)/1 var(--font-display); color: var(--color-ink); }
.travel-baggage-allowance-stat span { flex: 0 0 100%; color: var(--color-ink-soft); font-size: .72rem; font-weight: 600; }
.travel-baggage-allowance-meta { margin: 0; color: var(--color-ink-soft); font-size: .76rem; line-height: 1.55; }
.travel-baggage-split { display: grid; grid-template-columns: minmax(13rem, .42fr) minmax(0, .58fr); overflow: hidden; border: 1px solid var(--color-mist); border-radius: var(--radius-md); background: var(--color-paper); }
.travel-baggage-media { margin: 0; min-height: clamp(16rem, 28vw, 20rem); overflow: hidden; }
.travel-baggage-media img { display: block; width: 100%; height: 100%; min-height: clamp(16rem, 28vw, 20rem); object-fit: cover; }
.travel-baggage-copy { padding: clamp(1.15rem, 2.5vw, 1.65rem); }
.travel-baggage-copy h3 { margin: 0 0 .55rem; font: 600 1.12rem/1.25 var(--font-display); }
.travel-baggage-copy p, .travel-baggage-copy li { font-size: .82rem; line-height: 1.65; }
.travel-baggage-copy ul { margin: .5rem 0 0; padding-left: 1.15rem; color: var(--color-ink-soft); }
.travel-baggage-extra { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .85rem; }
.travel-baggage-extra-card { padding: 1.1rem 1.15rem; background: var(--color-cloud); border: 1px solid var(--color-mist); border-radius: var(--radius-md); }
.travel-baggage-extra-card h3 { margin: 0 0 .45rem; font: 600 1rem/1.25 var(--font-display); color: var(--color-bronze-deep); }
.travel-baggage-extra-card p { margin: 0; color: var(--color-ink-soft); font-size: .78rem; line-height: 1.6; }

/* Offers page */
.offers-main { padding-bottom: 0; }
.offers-hero { display: block; padding: clamp(2rem, 4vw, 3.25rem) var(--edge); background: var(--color-paper); }
.offers-hero-copy { max-width: 44rem; }
.offers-hero-copy h1 { margin: .4rem 0 .65rem; font: 600 clamp(2rem, 4vw, 3.2rem)/1.02 var(--font-display); letter-spacing: -.035em; }
.offers-hero-copy > p { margin: 0; max-width: 41rem; color: var(--color-ink-soft); font-size: clamp(.84rem, 1.2vw, .95rem); line-height: 1.65; }
.offers-hero-actions, .offers-gsa-actions { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1.25rem; }
.offers-catalog { padding: clamp(2.5rem, 5vw, 4rem) var(--edge); background: var(--color-cloud); scroll-margin-top: 1rem; }
.offers-section-heading { max-width: var(--content); display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin: 0 auto 1.4rem; }
.offers-section-heading h2 { margin: .3rem 0 0; font: 600 clamp(1.65rem, 3vw, 2.3rem)/1.05 var(--font-display); letter-spacing: -.03em; }
.offers-section-heading > p { max-width: 29rem; margin: 0; color: var(--color-ink-soft); font-size: .76rem; line-height: 1.6; text-align: right; }
.offers-grid { max-width: var(--content); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin: 0 auto; }
.offer-card { min-width: 0; display: grid; grid-template-rows: 12rem 1fr; overflow: hidden; background: var(--color-paper); border: 1px solid var(--color-mist); border-radius: var(--radius-lg); box-shadow: var(--shadow-subtle); scroll-margin-top: 1rem; }
.offer-card-media { position: relative; overflow: hidden; }
.offer-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 450ms ease; }
.offer-card:hover .offer-card-media img { transform: scale(1.025); }
.offer-card-media .badge { position: absolute; z-index: 1; top: .8rem; left: .8rem; }
.offer-card-body { display: flex; min-width: 0; flex-direction: column; padding: 1.2rem; }
.offer-card-route { display: flex; align-items: center; gap: .45rem; color: var(--color-gold-dark); font-size: .6rem; font-weight: 700; letter-spacing: .09em; }
.offer-card-route i { color: var(--color-taupe); font-style: normal; }
.offer-card h3 { margin: .35rem 0 .2rem; font: 600 clamp(1.25rem, 1.8vw, 1.5rem)/1.1 var(--font-display); letter-spacing: -.02em; }
.offer-card-subtitle { min-height: 2.4em; margin: 0; color: var(--color-ink-soft); font-size: .68rem; line-height: 1.45; }
.offer-card-price { display: grid; gap: .05rem; margin: 1rem 0 .8rem; }
.offer-card-price > small { color: var(--color-ink-soft); font-size: .58rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.offer-card-price strong { font: 600 clamp(1.7rem, 2.4vw, 2.1rem)/1 var(--font-display); color: var(--color-bronze-deep); }
.offer-card-price sup { font-size: .45em; vertical-align: super; }
.offer-card-price > span { color: var(--color-ink-soft); font-size: .62rem; }
.offer-card-meta { display: flex; flex-wrap: wrap; gap: .35rem; margin: 0 0 .9rem; padding: 0; list-style: none; }
.offer-card-meta li { padding: .3rem .55rem; color: var(--color-bronze-deep); background: var(--color-taupe-soft); border-radius: var(--radius-pill); font-size: .62rem; font-weight: 700; }
.offer-card-intro { margin: 0 0 1rem; color: var(--color-ink-soft); font-size: .78rem; line-height: 1.6; }
.offer-card-actions { display: grid; gap: .7rem; align-items: center; margin-top: auto; padding-top: .25rem; }
.offer-card-actions .button { width: 100%; }
.offer-gsa-note { max-width: var(--content); margin: 1.25rem auto 0; padding: .9rem 1rem; color: var(--color-ink-soft); background: var(--color-taupe-soft); border-radius: var(--radius-sm); font-size: .65rem; line-height: 1.55; text-align: center; }
.offers-details { padding: clamp(2.75rem, 5vw, 4.5rem) var(--edge); background: var(--color-taupe-soft); }
.offers-detail-list { max-width: var(--content); display: grid; gap: clamp(1.25rem, 3vw, 2rem); margin: 0 auto; }
.offer-detail { display: grid; grid-template-columns: minmax(15rem, .42fr) minmax(0, .58fr); overflow: hidden; background: var(--color-cloud); border: 1px solid var(--color-mist); border-radius: var(--radius-lg); box-shadow: var(--shadow-subtle); scroll-margin-top: 1.25rem; }
.offer-detail--reverse .offer-detail-media { order: 2; }
.offer-detail-media { position: relative; min-height: clamp(13rem, 20vw, 17rem); overflow: hidden; }
.offer-detail-media img { width: 100%; height: 100%; object-fit: cover; }
.offer-detail-media .badge { position: absolute; z-index: 1; top: 1rem; left: 1rem; }
.offer-detail-copy { min-width: 0; padding: clamp(1.25rem, 2.5vw, 1.75rem); }
.offer-detail-copy h2 { margin: .4rem 0 .5rem; font: 600 clamp(1.5rem, 2.6vw, 2rem)/1.08 var(--font-display); letter-spacing: -.03em; }
.offer-detail-lead { margin: 0; color: var(--color-ink-soft); font-size: .84rem; line-height: 1.6; }
.offer-detail-price { width: fit-content; display: grid; gap: .1rem; margin: .9rem 0; padding: .75rem .9rem; background: var(--color-gold-soft); border: 1px solid var(--color-gold); border-radius: var(--radius-sm); }
.offer-detail-price > small { color: var(--color-bronze-deep); font-size: .6rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.offer-detail-price strong { color: var(--color-ink); font: 600 clamp(1.5rem, 2.4vw, 1.9rem)/1 var(--font-display); }
.offer-detail-price sup { font-size: .45em; vertical-align: super; }
.offer-detail-price > span { color: var(--color-ink-soft); font-size: .68rem; }
.offer-detail-copy h3 { margin: 0 0 .5rem; font: 600 .92rem var(--font-display); }
.offer-detail-benefits { margin: 0; padding-left: 1.1rem; color: var(--color-ink-soft); font-size: .78rem; line-height: 1.55; }
.offer-detail-benefits li + li { margin-top: .3rem; }
.offer-detail-benefits li::marker { color: var(--color-gold-dark); }
.offer-detail-benefits a { color: var(--color-bronze-deep); font-weight: 700; }
.offer-detail-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.1rem; }
.offers-contact { background: var(--color-paper); }
.offers-contact-actions { margin-top: 1.25rem; }

@media (max-width: 1300px) {
  .landing-page .site-header nav a { font-size: .72rem; }
}

@media (max-width: 1180px) {
  .landing-page .site-header--named nav a:nth-last-child(-n+2):not(.nav-contact) { display: block; }
}

@media (max-width: 900px) {
  .landing-page .site-header nav { gap: 0; }
  .landing-page .site-header nav a { padding: .7rem; font-size: .72rem; }
  .landing-hero { min-height: 40rem; }
  .landing-booking { width: min(calc(100% - 2rem), 86rem); margin-top: -4rem; }
  .landing-story-grid { grid-template-columns: 1fr; }
  .hold-content-grid { grid-template-columns: 1fr; }
  .hold-content-grid .content-card { grid-template-rows: 14rem auto; }
  .hold-content-grid .content-card > img { height: 14rem; }
  .route-card-grid, .destination-grid { grid-template-columns: 1fr; }
  .why-bento { grid-template-columns: 1fr; }
  .why-media--wide { grid-column: auto; }
  .why-media { min-height: 16rem; }
  /* Safari resolves the base rule's img height:100% against the whole card (not the 1fr
     row), so the photo covers the caption. Give the image an explicit row like the story grid. */
  .why-bento .content-card { min-height: 0; grid-template-rows: 18rem auto; }
  .why-bento .content-card > img { height: 18rem; }
  .landing-story-grid .content-card { grid-template-rows: 18rem auto; }
  .landing-story-grid .content-card > img { height: 18rem; }
  .landing-about-inner { grid-template-columns: 1fr; text-align: left; }
  .legal-partner { grid-template-columns: 1fr; }
  .legal-partner img { width: min(100%, 9rem); justify-self: start; }
  .landing-footer-grid { grid-template-columns: repeat(2, 1fr); }
  .hold-layout { grid-template-columns: 1fr; }
  .hold-summary { position: static; order: -1; }
  .hold-wizard-layout, .hold-page .hold-wizard-layout { grid-template-columns: 1fr; }
  .hold-wizard-layout .hold-summary { order: 0; }
  .hold-fare-cards { grid-template-columns: 1fr; }
  .hold-passenger-grid { grid-template-columns: 1fr; }
  .hold-support-grid { grid-template-columns: 1fr; }
  .hold-hero { grid-template-columns: 1fr .72fr; }
  .hold-hero-copy { padding: 2rem; }
  .hold-hero-copy h1 { font-size: clamp(2.4rem, 7vw, 3.6rem); }
  .hold-progress { align-items: flex-start; flex-direction: column; }
  .hold-wizard-steps { width: 100%; }
  .travel-hero { grid-template-columns: 1fr; }
  .travel-page-grid { grid-template-columns: 1fr; }
  .travel-sidebar { position: static; }
  .travel-panel-intro { grid-template-columns: 1fr; }
  .offers-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .offer-detail { grid-template-columns: 1fr; }
  .offer-detail--reverse .offer-detail-media { order: 0; }
  .offer-detail-media { min-height: 18rem; max-height: 24rem; }
  .hold-steps { grid-template-columns: 1fr; }
  .hold-gsa-banner { flex-direction: column; align-items: flex-start; }
  .hold-gsa-banner .button { width: 100%; }
  .hold-section-heading { align-items: flex-start; flex-direction: column; gap: .65rem; }
  .hold-section-heading > p { text-align: left; }
  .destination-hero { grid-template-columns: 1fr; }
  .dest-gallery { grid-template-columns: repeat(2, 1fr); }
  .explore-grid { grid-template-columns: repeat(2, 1fr); }
  .travel-baggage-extra { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
  .landing-page .site-advisory { min-height: 0; align-items: flex-start; padding: .65rem 1rem; font-size: .62rem; }
  .landing-page .site-advisory span { min-width: 0; }
  .landing-page .site-advisory button { flex: 0 0 auto; margin-left: auto; }
  /* Swap-origin/destination buttons are shrunk for the desktop card layout; give thumbs a bit more to hit. */
  .landing-booking-card .swap-button { width: 2.15rem; height: 2.15rem; }
  .hold-page .hold-booking-card .swap-button { width: 2.15rem; height: 2.15rem; }
  /* Vertically centre the hero copy in flow. Absolute pinning (top:42%+translateY) risked
     colliding with the sticky chrome; align-content on a grid centres the copy in the
     min-height without any risk of overlap and removes the dead space below it. */
  .landing-hero { min-height: 36rem; display: grid; align-content: center; }
  .landing-hero .hero-overlay { position: relative; z-index: 1; top: auto; bottom: auto; left: auto; width: 100%; padding: 2rem var(--edge); transform: none; }
  .landing-hero .hero-overlay h1 { font-size: clamp(2.8rem, 14vw, 3.6rem); }
  .package-hero { grid-template-columns: 1fr; gap: 1.25rem; }
  .package-hero-media { order: -1; }
  .landing-booking { width: calc(100% - 1.5rem); margin-top: -3.5rem; }
  .travel-topic-card { border-radius: var(--radius-md); }
  .travel-tabs { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: minmax(7rem, 42vw); overflow-x: auto; overscroll-behavior-inline: contain; scroll-snap-type: inline mandatory; scrollbar-width: thin; }
  /* Right-edge fade while more tabs remain (toggled by syncTabFade), so the row reads as slidable.
     42vw auto-columns also leave the next tab visibly half-cut as a second cue. */
  .travel-tabs.has-tab-overflow { -webkit-mask-image: linear-gradient(90deg, #000 78%, transparent); mask-image: linear-gradient(90deg, #000 78%, transparent); }
  .travel-tabs button { min-height: 4.25rem; padding: .65rem .45rem .75rem; font-size: .65rem; scroll-snap-align: start; }
  .travel-panel-intro { grid-template-columns: 1fr; gap: 0; }
  .travel-panel-intro--reverse .travel-panel-media { order: 0; }
  .travel-panel-split, .travel-panel-split--reverse { grid-template-columns: 1fr; }
  .travel-panel-split--reverse .travel-panel-media { order: 0; }
  .travel-panel-split .travel-panel-media, .travel-panel-split .travel-panel-media img { min-height: clamp(11rem, 42vw, 14rem); }
  .travel-panel-media img { min-height: clamp(10rem, 48vw, 13rem); }
  .travel-panel-facts { grid-template-columns: 1fr; }
  .travel-tab-panels { padding: 1.2rem; }
  /* Desktop stacks all panels in one grid cell (equal height, no tab-switch jump); on phones that
     forces short panels to the tallest panel's height, leaving white space. Let the active panel
     size naturally instead. */
  .travel-page .travel-tab-panels { display: block; }
  .travel-page .travel-tab-panels > .travel-section[hidden] { display: none !important; }
  .travel-stand-card { padding: 1.2rem; }
  .travel-baggage-allowance-grid, .travel-baggage-extra { grid-template-columns: 1fr; }
  .travel-baggage-split { grid-template-columns: 1fr; }
  .travel-baggage-media, .travel-baggage-media img { min-height: clamp(11rem, 42vw, 14rem); }
  .travel-page-split { grid-template-columns: 1fr; gap: 1.5rem; }
  .travel-page-split--reverse .travel-page-media { order: 0; }
  .travel-page-nav.travel-info-pattern { grid-template-columns: 1fr; gap: 1.5rem; }
  .travel-prose-table { font-size: .72rem; }
  .travel-prose-table th, .travel-prose-table td { padding: .55rem; }
  .offers-section-heading { align-items: flex-start; flex-direction: column; gap: .65rem; }
  .offers-section-heading > p { text-align: left; }
  .offers-grid { grid-template-columns: 1fr; }
  .offer-card { grid-template-rows: 11rem 1fr; }
  .offer-card-subtitle { min-height: 0; }
  .offers-hero-actions .button, .offer-detail-actions .button { width: 100%; }
  .offer-detail-media { min-height: 14rem; }
  .offer-detail-copy { padding: 1.25rem; }
  .landing-booking-top { align-items: flex-start; flex-direction: column; gap: .6rem; }
  .landing-booking-top p { text-align: left; }
  .landing-booking-card .route-picker { min-width: 0; }
  .landing-booking-card .booking-fields { grid-template-columns: 1fr 2.25rem 1fr; }
  .landing-booking-card .calendar-picker { grid-column: 1 / -1; }
  .landing-booking-card .travel-field,
  .landing-booking-card .compact-field { padding-left: .9rem; }
  .landing-booking-card .travel-field::before,
  .landing-booking-card .compact-field::before { display: none; }
  .hold-page .hold-booking-card .travel-field::before,
  .hold-page .hold-booking-card .compact-field::before,
  .hold-page .hold-booking-card .passenger-field::before { display: block; }
  .landing-booking-card .route-field strong,
  .landing-booking-card .calendar-field strong { white-space: normal; }
  .landing-booking-card .search-flight { align-self: stretch; }
  .landing-booking-card .passenger-picker { grid-column: 1 / -1; }
  /* Full-screen picker sheets: absolute dropdowns get clipped at the viewport edge on phones,
     so route/date/passenger open as fixed full-window sheets with an injected close button. */
  .route-menu, .calendar-menu, .passenger-menu {
    position: fixed; inset: 0; z-index: 200;
    display: flex; flex-direction: column;
    width: auto; max-width: none; min-width: 0; margin: 0;
    border: 0; border-radius: 0; box-shadow: none;
    overflow-y: auto; -webkit-overflow-scrolling: touch;
    padding: calc(.9rem + env(safe-area-inset-top)) 1.25rem calc(1.25rem + env(safe-area-inset-bottom));
  }
  .route-menu .sheet-close, .calendar-menu .sheet-close, .passenger-menu .sheet-close {
    display: grid; place-items: center; align-self: flex-end;
    width: 2.5rem; height: 2.5rem; margin: 0 -.35rem .6rem 0; padding: 0; line-height: 1;
    color: var(--color-ink); background: var(--color-paper);
    border: 1px solid var(--color-mist); border-radius: 50%; font-size: 1.6rem;
  }
  .hold-hero { grid-template-columns: 1fr; min-height: 0; }
  .hold-hero-copy { padding: 2rem 1.25rem; }
  .hold-hero-copy h1 { font-size: clamp(2.35rem, 13vw, 3.25rem); }
  .hold-hero-trust { display: grid; gap: .55rem; }
  .hold-hero-media { min-height: 12rem; }
  .hold-hero-media::after { background: linear-gradient(180deg, var(--color-bronze-deep), transparent 40%), linear-gradient(0deg, rgb(52 40 24 / 55%), transparent 50%); }
  .hold-hero-media img { min-height: 12rem; }
  .hold-gsa-banner { margin-bottom: 1rem; }
  .hold-wizard-shell { border-radius: var(--radius-md); }
  .hold-progress { padding: 1rem; border-radius: var(--radius-md) var(--radius-md) 0 0; }
  .hold-progress > div { display: none; }
  .hold-page .hold-hero-media, .contact-page .hold-hero-media { min-height: 12rem; }
  .hold-page .hold-hero-media img, .contact-page .hold-hero-media img { min-height: 12rem; }
  .hold-page .hold-hero-trust { grid-template-columns: 1fr; }
  .hold-page .hold-wizard-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hold-wizard-steps { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .hold-wizard-steps li { min-width: 0; padding-inline: .1rem; font-size: .56rem; }
  .hold-wizard-layout { padding: 1rem; }
  .hold-page .hold-booking-card .booking-fields { grid-template-columns: minmax(0, 1fr) 1.75rem minmax(0, 1fr); }
  .hold-page .hold-booking-card .calendar-picker,
  .hold-page .hold-booking-card .passenger-picker { grid-column: 1 / -1; grid-row: auto; }
  .hold-page .hold-booking-card .calendar-picker { grid-row: 2; }
  .hold-page .hold-booking-card .passenger-picker { grid-row: 3; }
  .hold-page .hold-booking-card .search-flight { grid-row: 4; }
  .hold-summary { padding: 1.1rem; }
  .hold-form-grid { grid-template-columns: 1fr; }
  .hold-form-grid .field--wide { grid-column: auto; }
  .hold-steps { grid-template-columns: 1fr; gap: 1px; }
  .hold-steps li { min-height: 0; }
  .hold-support-card { padding: 1.25rem 1.25rem 1.25rem 3.7rem; }
  .hold-support-card::before { top: 1.2rem; left: 1.2rem; }
  .landing-section-heading { align-items: flex-start; flex-direction: column; gap: .8rem; }
  .landing-story-grid .content-card { grid-template-rows: 14rem auto; }
  .landing-story-grid .content-card > img { height: 14rem; }
  .why-bento .content-card { grid-template-rows: 14rem auto; }
  .why-bento .content-card > img { height: 14rem; }
  /* Turn tagged grids into swipeable carousels. Overrides each grid's own display:grid /
     single-column rule; the JS-injected .mobile-carousel-nav becomes visible here. */
  [data-mobile-carousel] {
    display: flex; gap: 1rem;
    overflow-x: auto; overflow-y: hidden;
    scroll-snap-type: x mandatory; scroll-behavior: smooth;
    scrollbar-width: none; -ms-overflow-style: none;
  }
  [data-mobile-carousel]::-webkit-scrollbar { display: none; }
  [data-mobile-carousel] > * { flex: 0 0 82vw; scroll-snap-align: start; box-shadow: none; }
  [data-mobile-carousel] > .why-media--wide { grid-column: auto; }
  .mobile-carousel-nav { display: flex; }
  .landing-footer { align-items: flex-start; flex-direction: column; }
  .landing-footer-grid { grid-template-columns: 1fr; }
  .landing-footer-bar { flex-direction: column; align-items: flex-start; }
  .landing-footer-bar .footer-copy { margin-left: 0; }
  .dest-gallery { grid-template-columns: 1fr; }
  .dest-gallery .is-wide, .dest-gallery .is-tall { grid-column: auto; grid-row: auto; }
  .explore-grid { grid-template-columns: 1fr; grid-auto-rows: 12rem; }
  .explore-card--feature { grid-row: auto; }
  .boarding-pass { grid-template-columns: 1fr; }
  .bp-stub { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1rem; border-left: 0; border-top: 2px dashed var(--color-taupe); }
  .bp-stub::before { top: -9px; left: -8px; }
  .bp-stub::after { bottom: auto; top: -9px; left: auto; right: -8px; }
  .bp-barcode { flex: 1; min-width: 8rem; height: 2.25rem; }
  .flight-schedule-head { align-items: flex-start; padding-inline: 1rem; }
  .flight-schedule-timeline { grid-template-columns: minmax(0, 1fr) minmax(6.5rem, .9fr) minmax(0, 1fr); gap: .4rem; padding: 1.1rem .9rem; }
  .flight-schedule-point time { font-size: clamp(1.7rem, 9vw, 2.2rem); }
  .flight-schedule-point > span { min-height: 2.4em; font-size: .5rem; }
  .flight-schedule-point > small { display: block; margin: .1rem 0 0; }
  .flight-schedule-journey > strong { font-size: .76rem; }
  .flight-schedule-journey > small { font-size: .56rem; line-height: 1.35; }
  .flight-schedule-foot { padding-inline: 1rem; }
}

/* Only stack the wizard step actions when both buttons genuinely can't share a row */
@media (max-width: 440px) {
  .hold-wizard-actions { align-items: stretch; flex-direction: column-reverse; }
  .hold-wizard-actions .button { width: 100%; }
}

/* Phones in landscape are wide enough (>640px) to miss the portrait mobile rules above, but short
   enough that the full-height hero pushes the CTA and search widget below the fold. Re-apply the
   same compact, top-anchored hero treatment whenever viewport height is short, regardless of width. */
@media (max-height: 500px) and (orientation: landscape) {
  .landing-page .site-advisory { min-height: 0; padding: .4rem 1rem; font-size: .62rem; }
  .landing-hero { min-height: 24rem; display: grid; align-content: center; }
  .landing-hero .hero-overlay { position: relative; z-index: 1; top: auto; bottom: auto; left: auto; width: 100%; padding: 1.25rem var(--edge); transform: none; }
  .landing-hero .hero-overlay h1 { font-size: clamp(1.8rem, 8vh, 3rem); }
  .landing-booking { margin-top: -3rem; }
}

/* Blog listing + article (generated from b3-blogs by _port_to_astro.py) */
.blog-listing .landing-section-heading h1 { max-width: 48rem; margin: .35rem 0 0; font: 600 clamp(1.9rem, 3vw, 2.8rem)/.98 var(--font-display); letter-spacing: -.035em; }
.blog-article { padding: clamp(2.5rem, 5vw, 4rem) var(--edge) clamp(3rem, 6vw, 5rem); }
.blog-article > article { max-width: 44rem; margin: 0 auto; }
.blog-article h1 { margin: .75rem 0 0; font: 600 clamp(2rem, 4vw, 3rem)/1.02 var(--font-display); letter-spacing: -.035em; }
.blog-article-meta { margin: .5rem 0 0; color: var(--color-ink-soft); font-size: .95rem; }
.blog-article-hero { width: 100%; height: auto; margin: 1.5rem 0 2rem; border-radius: var(--radius-lg); box-shadow: var(--shadow-raised); }
.blog-article-body { font-size: 1.075rem; line-height: 1.75; color: var(--color-ink); }
.blog-article-body h2 { margin: 2rem 0 .6rem; font: 600 1.5rem/1.15 var(--font-display); }
.blog-article-body h3 { margin: 1.5rem 0 .5rem; font: 600 1.2rem/1.2 var(--font-display); }
.blog-article-body p { margin: 0 0 1.1rem; }
.blog-article-body ul, .blog-article-body ol { margin: 0 0 1.1rem 1.35rem; }
.blog-article-body li { margin: .35rem 0; }
.blog-article > article > .text-link { display: inline-block; margin-bottom: .5rem; }
.blog-article-faqs, .blog-article-sources { margin: 2.5rem 0; }
.blog-article-faqs h2, .blog-article-sources h2 { margin: 0 0 .8rem; font: 600 1.5rem/1.15 var(--font-display); }
.blog-article-sources ul { margin: 0; padding-left: 1.2rem; font-size: .85rem; color: var(--color-ink-soft); }
.blog-article-sources li { margin-bottom: .4rem; }
/* Inline imagery, pull-quotes and the internal-link CTA inside long-form articles. */
.blog-article-figure { margin: 1.75rem 0; }
.blog-article-figure img { width: 100%; height: auto; border-radius: var(--radius-md); box-shadow: var(--shadow-subtle); }
.blog-article-figure figcaption { margin-top: .5rem; color: var(--color-ink-soft); font-size: .82rem; text-align: center; }
.blog-article-body blockquote { margin: 1.75rem 0; padding: .4rem 0 .4rem 1.25rem; border-left: 3px solid var(--color-gold); color: var(--color-ink); font: 500 1.2rem/1.5 var(--font-display); font-style: italic; }
.blog-article-cta { margin: 2.5rem 0; padding: 1.5rem 1.75rem; background: var(--color-gold-soft); border: 1px solid var(--color-gold); border-radius: var(--radius-md); }
.blog-article-cta p { margin: 0 0 1rem; }
.blog-article-cta-actions { display: flex; flex-wrap: wrap; gap: .6rem; }
.blog-category-chips { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1rem 0 0; }
.blog-category-chips .badge { text-decoration: none; }

/* Blog landing redesign: full-bleed highlight for the pinned/latest post, then a
   date-ordered list of the rest. Reuses the design-system overlay-card language
   (image + bottom gradient + light text) and tokens; no new palette. */
.blog-listing-intro { padding-bottom: clamp(1.25rem, 3vw, 2rem); }
.blog-featured-section { margin: 0 0 clamp(2.5rem, 5vw, 4rem); }
.blog-featured { position: relative; display: block; overflow: hidden; color: #fff; text-decoration: none; }
.blog-featured > img { width: 100%; height: clamp(24rem, 52vw, 40rem); object-fit: cover; transition: transform 600ms ease; }
.blog-featured:hover > img { transform: scale(1.03); }
.blog-featured::after { content: ""; position: absolute; inset: 0; background: linear-gradient(rgb(52 40 24 / 5%) 34%, rgb(28 22 13 / 90%)); }
.blog-featured-inner { position: absolute; z-index: 1; inset: 0; display: flex; align-items: flex-end; padding: clamp(1.75rem, 5vw, 4rem) var(--edge); }
.blog-featured-body { display: flex; flex-direction: column; align-items: flex-start; max-width: 46rem; }
.blog-featured-body .eyebrow-gold { color: var(--color-gold); }
.blog-featured-body .badge { margin: .5rem 0 0; }
.blog-featured-title { margin: .55rem 0 .5rem; font: 600 clamp(1.9rem, 4.2vw, 3.4rem)/1.02 var(--font-display); letter-spacing: -.035em; }
.blog-featured-excerpt { max-width: 38rem; color: rgb(255 255 255 / 90%); font-size: clamp(.9rem, 1.2vw, 1.05rem); line-height: 1.6; }
.blog-featured-meta { margin: .9rem 0 1.1rem; color: rgb(255 255 255 / 78%); font-size: .78rem; font-weight: 600; }
.blog-featured-cta { display: inline-flex; align-items: center; gap: .55rem; min-height: 2.9rem; padding: .72rem 1.3rem; color: var(--color-ink); background: var(--color-gold); border-radius: var(--radius-pill); font-size: .78rem; font-weight: 700; transition: background var(--ease), transform var(--ease); }
.blog-featured:hover .blog-featured-cta { background: #ffc936; transform: translateY(-1px); }

.blog-index-section { padding-top: 0; }
.blog-index-list { list-style: none; margin: 1.5rem 0 0; padding: 0; display: grid; gap: 1.5rem; }
.blog-row { display: grid; grid-template-columns: 15rem 1fr; gap: 1.5rem; align-items: center; padding-bottom: 1.5rem; border-bottom: 1px solid var(--color-mist); }
.blog-row:last-child { padding-bottom: 0; border-bottom: 0; }
.blog-row-media { display: block; overflow: hidden; border-radius: var(--radius-md); box-shadow: var(--shadow-subtle); }
.blog-row-media img { width: 100%; height: 10rem; object-fit: cover; transition: transform 500ms ease; }
.blog-row:hover .blog-row-media img { transform: scale(1.03); }
.blog-row-top { display: flex; align-items: center; gap: .75rem; margin-bottom: .55rem; }
.blog-row-cat { text-decoration: none; }
.blog-row-top time { color: var(--color-ink-soft); font-size: .72rem; font-weight: 600; }
.blog-row h3 { margin: 0 0 .35rem; font: 600 clamp(1.3rem, 2vw, 1.6rem)/1.15 var(--font-display); letter-spacing: -.02em; }
.blog-row h3 a { text-decoration: none; }
.blog-row h3 a:hover { color: var(--color-bronze-deep); }
.blog-row-body p { margin: 0 0 .6rem; max-width: 44rem; color: var(--color-ink-soft); font-size: .85rem; line-height: 1.6; }
.blog-row-meta { color: var(--color-ink-soft); font-size: .72rem; font-weight: 600; }

@media (max-width: 640px) {
  .blog-row { grid-template-columns: 1fr; gap: .85rem; padding-bottom: 1.25rem; }
  .blog-row-media img { height: 12rem; }
}

/* Blog cards (on-page grids, related rail, category hubs): the desktop 1fr body row
   stretches cards to equal height, so pin the CTA to the bottom and lay the body out
   as a column. Keeps the CTAs aligned across a row and the card intentional, matching
   the padding of the hand-authored .why-bento cards (1.4rem, unchanged). */
.landing-story-grid .content-card-body { display: flex; flex-direction: column; }
.landing-story-grid .content-card-body p { flex: 0 0 auto; }
.landing-story-grid .content-card-body .text-link { margin-top: auto; }
