/* Self-hosted fonts (SIL Open Font License, see media/fonts/OFL-*.txt): Instrument Serif for headings, Figtree for text.
   Latin and Latin Extended subsets; the browser only downloads the subset a page needs. */
@font-face { font-family: 'Instrument Serif'; src: url('../fonts/InstrumentSerif-normal-latin.woff2') format('woff2'); font-style: normal; font-weight: 400; font-display: swap; size-adjust: 98.6%; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Instrument Serif'; src: url('../fonts/InstrumentSerif-normal-latin-ext.woff2') format('woff2'); font-style: normal; font-weight: 400; font-display: swap; size-adjust: 98.6%; unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Instrument Serif'; src: url('../fonts/InstrumentSerif-italic-latin.woff2') format('woff2'); font-style: italic; font-weight: 400; font-display: swap; size-adjust: 98.6%; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Instrument Serif'; src: url('../fonts/InstrumentSerif-italic-latin-ext.woff2') format('woff2'); font-style: italic; font-weight: 400; font-display: swap; size-adjust: 98.6%; unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Figtree'; src: url('../fonts/Figtree-normal-latin.woff2') format('woff2'); font-style: normal; font-weight: 300 700; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Figtree'; src: url('../fonts/Figtree-normal-latin-ext.woff2') format('woff2'); font-style: normal; font-weight: 300 700; font-display: swap; unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Figtree'; src: url('../fonts/Figtree-italic-latin.woff2') format('woff2'); font-style: italic; font-weight: 300 700; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Figtree'; src: url('../fonts/Figtree-italic-latin-ext.woff2') format('woff2'); font-style: italic; font-weight: 300 700; font-display: swap; unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }

/* Simple Booking site styles. All classes carry the sb- prefix; colours come from --sb-* variables
   so a template can restyle the component by redefining them. */
:root {
  --sb-font-body: 'Figtree', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --sb-font-head: 'Instrument Serif', Georgia, 'Times New Roman', serif;
  /* Type scale measured on the reference layout at 1440 px (desktop) and 375 px (phone) */
  --sb-fs-h1: clamp(2.25rem, 1.4rem + 3.7vw, 4.375rem);
  --sb-fs-h2: clamp(1.875rem, 1.35rem + 2.25vw, 3.125rem);
  --sb-fs-h3: clamp(1.375rem, 1.15rem + 0.95vw, 1.875rem);
  --sb-fs-card: clamp(1.125rem, 0.86rem + 1.13vw, 1.75rem);
  --sb-fs-text: clamp(0.875rem, 0.8rem + 0.34vw, 1.0625rem);
  --sb-fs-lead: clamp(0.875rem, 0.7rem + 0.75vw, 1.25rem);
  --sb-fs-label: clamp(0.6875rem, 0.6rem + 0.38vw, 0.9375rem);
  /* Colours follow the template's colour preset (Helix Ultimate > Template Options > Presets) through its --sppb-* variables.
     The values after the commas are the defaults used when the template does not provide them. Which preset field sets what:
       Body text -> ink                      Body background -> page and white bands      Link color -> accent (buttons, links, markers)
       Link hover color -> accent, darker    Top bar background -> highlight (the brand tan)   Menu active text color -> call-to-action buttons
       Footer background -> dark bands       Footer text -> text on dark bands            (D61) */
  --sb-color-ink: var(--sppb-text-color, #23251f);
  --sb-bg-white: var(--sppb-bg-color, #ffffff);
  --sb-color-accent: var(--sppb-link-color, #1f4a3a);
  --sb-color-accent-dark: var(--sppb-link-hover-color, #0f2f24);
  --sb-color-highlight: var(--sppb-topbar-bg-color, #c3a675);
  --sb-cta: var(--sppb-menu-text-active-color, #e6d0f7);
  --sb-bg-charcoal: var(--sppb-footer-bg-color, #23251f);
  --sb-ink-on-dark: var(--sppb-footer-text-color, #ffffff);
  --sb-on-media: #ffffff;
  --sb-bg-accent: var(--sb-color-accent);
  --sb-color-accent-ink: var(--sb-bg-white);
  --sb-color-accent-tint: color-mix(in srgb, var(--sb-color-accent) 12%, var(--sb-bg-white));
  --sb-bg-paper: color-mix(in srgb, var(--sb-color-highlight) 14%, var(--sb-bg-white));
  --sb-bg-sand: color-mix(in srgb, var(--sb-color-highlight) 28%, var(--sb-bg-white));
  --sb-bg-grey: color-mix(in srgb, var(--sb-color-ink) 55%, var(--sb-bg-white));
  --sb-color-muted: color-mix(in srgb, var(--sb-color-ink) 82%, var(--sb-bg-white));
  --sb-color-line: color-mix(in srgb, var(--sb-color-ink) 18%, var(--sb-bg-white));
  --sb-color-highlight-dark: color-mix(in srgb, var(--sb-color-highlight) 68%, #000);
  --sb-color-highlight-light: color-mix(in srgb, var(--sb-color-highlight) 70%, #fff);
  --sb-cta-hover: color-mix(in srgb, var(--sb-cta) 88%, #000);
  --sb-bg-charcoal-deep: color-mix(in srgb, var(--sb-bg-charcoal) 78%, #000);
  --sb-color-error: #a33b2b;
  --sb-map-land: #ffffff;
  --sb-map-water: #ecebe5;
  --sb-map-border: #c8c8c8;
  --sb-map-label: #9b9a93;
  --sb-map-pin: #7e6953;
  --sb-container: 1344px;
  --sb-gutter: 1.25rem;
  --sb-radius: 0;
  --sb-sticky-offset: 0px;
  /* Banner heights as on the reference (D48): 700 px on desktop for destination, cross and style pages, 420 px on phones. */
  --sb-hero-mid: 420px;
  --sb-hero-large: 560px;
  --sb-hero-extra-large: 700px;
}

/* Helix Ultimate wraps the page in .body-innerwrapper with overflow hidden, which breaks position: sticky.
   The second selector wins over the template stylesheet whichever loads last. */
.body-innerwrapper { overflow: visible; }
body .body-innerwrapper { overflow: visible; }

.sb-container { max-width: var(--sb-container); margin-inline: auto; padding-inline: var(--sb-gutter); }
.sb-page { color: var(--sb-color-ink); font-family: var(--sb-font-body); }
.sb-page h1, .sb-page h2, .sb-page h3, .sb-page h4, .sb-hero__title, .sb-section__title { font-family: var(--sb-font-head); font-weight: 400; }

/* Backgrounds */
.sb-bg-white { background: var(--sb-bg-white); }
.sb-bg-sand { background: var(--sb-bg-sand); }
.sb-bg-paper { background: var(--sb-bg-paper); }
.sb-bg-grey { background: var(--sb-bg-grey); color: var(--sb-ink-on-dark); }
.sb-bg-charcoal { background: var(--sb-bg-charcoal); color: var(--sb-ink-on-dark); }
.sb-bg-accent { background: var(--sb-bg-accent); color: var(--sb-color-accent-ink); }
.sb-bg-charcoal a:not(.sb-btn), .sb-bg-accent a:not(.sb-btn) { color: inherit; }

.sb-section { padding-block: clamp(2rem, 5vw, 4.5rem); scroll-margin-top: calc(var(--sb-sticky-offset) + 4rem); }
.sb-section__title { font-size: clamp(1.5rem, 3vw, 2.25rem); margin: 0 0 1rem; }
.sb-eyebrow { text-transform: uppercase; letter-spacing: 0.12em; font-size: 0.8rem; color: var(--sb-color-muted); margin: 0 0 0.5rem; }
.sb-bg-charcoal .sb-eyebrow, .sb-bg-accent .sb-eyebrow { color: inherit; opacity: 0.8; }
.sb-prose > :first-child { margin-top: 0; }
.sb-prose > :last-child { margin-bottom: 0; }

/* Buttons */
.sb-btn { display: inline-block; padding: 0.75rem 1.5rem; border: 1px solid currentColor; border-radius: var(--sb-radius); text-decoration: none; font-weight: 600; line-height: 1.2; cursor: pointer; }
.sb-btn--primary { background: var(--sb-color-accent); border-color: var(--sb-color-accent); color: var(--sb-color-accent-ink); }
.sb-btn--primary:hover, .sb-btn--primary:focus-visible { filter: brightness(1.1); }
.sb-btn--secondary { background: transparent; }
.sb-btn:focus-visible, .sb-scrollnav__link:focus-visible, .sb-accordion__summary:focus-visible { outline: 3px solid currentColor; outline-offset: 2px; }

/* Breadcrumbs */
.sb-breadcrumbs__list { display: flex; flex-wrap: wrap; gap: 0.25rem 0.5rem; list-style: none; margin: 0 0 1rem; padding: 0; font-size: 0.875rem; }
.sb-breadcrumbs__item + .sb-breadcrumbs__item::before { content: "/"; margin-inline-end: 0.5rem; opacity: 0.6; }
.sb-breadcrumbs a { color: inherit; }

/* Hero */
.sb-hero { position: relative; display: flex; align-items: flex-end; color: var(--sb-on-media); background: var(--sb-bg-charcoal); overflow: hidden; min-height: var(--sb-hero-large); }
.sb-hero--mid { min-height: var(--sb-hero-mid); }
.sb-hero--large { min-height: var(--sb-hero-large); }
.sb-hero--extra-large { min-height: var(--sb-hero-extra-large); }
.sb-hero__media, .sb-hero__media img, .sb-hero__video, .sb-hero__slides { position: absolute; inset: 0; width: 100%; height: 100%; }
.sb-hero__media img, .sb-hero__video { object-fit: cover; border: 0; }
.sb-hero__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(0, 0, 0, 0.65), rgba(0, 0, 0, 0.05) 65%); pointer-events: none; }
.sb-hero__slides { display: flex; margin: 0; padding: 0; list-style: none; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.sb-hero__slide { flex: 0 0 100%; position: relative; scroll-snap-align: start; }
.sb-hero__slide img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.sb-hero__inner { position: relative; z-index: 1; width: 100%; padding-block: 2rem; }
.sb-hero__title { font-size: clamp(2rem, 6vw, 4rem); line-height: 1.05; margin: 0 0 0.5rem; color: inherit; }
.sb-hero__subtitle { font-size: clamp(1rem, 2vw, 1.375rem); max-width: 40rem; margin: 0 0 1.25rem; }
@media (max-width: 767px) {
  .sb-hero { --sb-hero-mid: 320px; --sb-hero-large: 380px; --sb-hero-extra-large: 420px; }
}

/* Scroll nav (sticky). The doubled selector beats templates that set `nav { position: relative }` (Cassiopeia does). */
.sb-scrollnav, .sb-page .sb-scrollnav { position: sticky; top: var(--sb-sticky-offset); z-index: 40; background: var(--sb-bg-white); border-bottom: 1px solid var(--sb-bg-grey); }
.sb-scrollnav__list { display: flex; gap: 1.5rem; list-style: none; margin: 0 auto; padding-block: 0; overflow-x: auto; scrollbar-width: thin; white-space: nowrap; }
.sb-scrollnav__link { display: block; padding: 1rem 0; color: var(--sb-color-ink); text-decoration: none; border-bottom: 3px solid transparent; }
.sb-scrollnav__link:hover { border-bottom-color: var(--sb-bg-grey); }
.sb-scrollnav__link[aria-current="true"] { border-bottom-color: var(--sb-color-accent); font-weight: 600; }

/* Intro */
.sb-intro { display: grid; gap: 2rem; grid-template-columns: 1fr; }
@media (min-width: 768px) { .sb-intro { grid-template-columns: 2fr 1fr; gap: 4rem; } }
.sb-intro__side-title { font-size: 1rem; text-transform: uppercase; letter-spacing: 0.08em; margin: 0 0 0.75rem; }
.sb-highlights { padding-inline-start: 1.1rem; margin: 0 0 1.5rem; }
.sb-designer { display: grid; gap: 0.25rem; }
.sb-designer p { margin: 0; }
.sb-designer__photo { width: 5rem; height: 5rem; border-radius: 50%; object-fit: cover; }
.sb-designer__label { color: var(--sb-color-muted); font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.08em; }
.sb-designer__name { font-weight: 600; }

/* Gallery */
.sb-gallery { display: grid; gap: 0.75rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr)); list-style: none; margin: 0; padding: 0; }
.sb-gallery figure { margin: 0; }
.sb-gallery img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.sb-gallery figcaption { font-size: 0.875rem; padding-top: 0.25rem; color: var(--sb-color-muted); }

/* Accordion (native details) */
.sb-accordion__item { border-bottom: 1px solid currentColor; }
.sb-accordion__summary { cursor: pointer; padding: 1rem 0; font-weight: 600; font-size: 1.125rem; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.sb-accordion__summary::-webkit-details-marker { display: none; }
.sb-accordion__summary::after { content: ""; flex: 0 0 0.6rem; height: 0.6rem; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-25%) rotate(45deg); transition: transform 0.32s cubic-bezier(0.22, 0.61, 0.36, 1); }
.sb-accordion__item[open] > .sb-accordion__summary::after, .sb-accordion__item.is-open > .sb-accordion__summary::after { transform: translateY(25%) rotate(-135deg); }
.sb-accordion[data-sb-ready] > .sb-accordion__item:not(.is-open) > .sb-accordion__summary::after { transform: translateY(-25%) rotate(45deg); }
@media (prefers-reduced-motion: reduce) { .sb-accordion__summary::after { transition: none; } }
.sb-accordion__panel { padding-bottom: 1.25rem; display: grid; gap: 1rem; }
@media (min-width: 768px) { .sb-accordion__panel:has(.sb-accordion__image) { grid-template-columns: 1fr 2fr; } }
.sb-accordion__image { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }

/* CTA bar */
.sb-cta-bar { display: flex; flex-wrap: wrap; gap: 1rem 2rem; align-items: center; justify-content: space-between; }
.sb-cta-bar__title { margin: 0 0 0.25rem; font-size: clamp(1.25rem, 2.5vw, 1.75rem); }
.sb-cta-bar p { margin: 0; }

/* USP row */
.sb-usp { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); list-style: none; margin: 0; padding: 0; }
.sb-usp__icon { width: 3rem; height: 3rem; object-fit: contain; margin-bottom: 0.5rem; }
.sb-usp__title { font-size: 1.125rem; margin: 0 0 0.25rem; }
.sb-usp__text { margin: 0; }
.sb-usp--condensed { gap: 0.75rem; }
.sb-usp--condensed .sb-usp__text { display: none; }

/* Plan banner and story promo */
.sb-plan-banner, .sb-story { display: grid; gap: 2rem; align-items: center; }
@media (min-width: 768px) { .sb-plan-banner, .sb-story { grid-template-columns: 1fr 1fr; } }
.sb-plan-banner__images { display: grid; gap: 0.75rem; grid-template-columns: 1fr 1fr; }
.sb-plan-banner__images img, .sb-story__media img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.sb-story__media video, .sb-story__media iframe { width: 100%; aspect-ratio: 16 / 9; border: 0; }
.sb-plan-banner__buttons { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 1rem; }

/* Destinations index */
.sb-link-list { columns: 3 12rem; list-style: none; padding: 0; }
.sb-region-block { margin-block: 2rem; }

@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
}


/* ---- Cards, grids, tiles ---- */
.sb-grid { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr)); }
.sb-card { display: flex; flex-direction: column; height: 100%; color: var(--sb-color-ink); }
.sb-card__media { position: relative; display: block; aspect-ratio: 4 / 3; background: var(--sb-bg-sand); overflow: hidden; }
.sb-card__img, .sb-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sb-card__placeholder { display: block; width: 100%; height: 100%; background: linear-gradient(135deg, var(--sb-color-highlight-light), var(--sb-color-highlight-dark)); }
.sb-card__body { padding-top: 0.75rem; display: flex; flex-direction: column; gap: 0.35rem; flex: 1; }
.sb-card__meta { display: flex; justify-content: space-between; gap: 0.5rem; font-size: 0.8125rem; color: var(--sb-color-muted); margin: 0; }
.sb-card__title { font-size: 1.5rem; line-height: 1.15; margin: 0; }
.sb-card__title a { color: inherit; text-decoration: none; }
.sb-card__title a:hover { text-decoration: underline; }
.sb-card__text { font-size: 0.875rem; line-height: 1.5; color: var(--sb-color-muted); margin: 0; }
.sb-link { font-weight: 600; font-size: 0.875rem; color: var(--sb-color-accent); text-decoration: none; margin-top: auto; }
.sb-link:hover, .sb-link:focus-visible { text-decoration: underline; }
.sb-badge { position: absolute; left: 0.6rem; top: 0.6rem; background: var(--sb-bg-white); color: var(--sb-color-accent); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; padding: 0.2rem 0.45rem; }
.sb-badge--impact { position: static; display: inline-block; background: var(--sb-color-accent-tint); }
.sb-rank { color: var(--sb-color-accent); letter-spacing: 0.1em; }
.sb-tiles { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 14rem), 1fr)); list-style: none; padding: 0; margin: 1.5rem 0; }
.sb-tile__link { display: block; text-decoration: none; color: inherit; }
.sb-tile__media { display: block; aspect-ratio: 4 / 5; overflow: hidden; background: var(--sb-bg-sand); }
.sb-tile__media img { width: 100%; height: 100%; object-fit: cover; }
.sb-tile__title { display: block; font-family: var(--sb-font-head); font-size: 1.5rem; padding-top: 0.5rem; }
.sb-card-grid__head { margin-bottom: 1.5rem; }
.sb-card-grid__sub { color: var(--sb-color-muted); margin: 0; }
.sb-card-grid__all { margin-top: 1.5rem; }
.sb-page__title { font-family: var(--sb-font-head); font-size: clamp(2rem, 5vw, 3.5rem); font-weight: 400; margin: 2rem 0 1rem; }

/* ---- Carousels (Swiper) ---- */
.sb-carousel { position: relative; }
.sb-carousel .swiper-slide { height: auto; }
.sb-carousel__nav { display: flex; gap: 0.5rem; justify-content: flex-end; margin-top: 1rem; }
.sb-carousel__btn { width: 2.75rem; height: 2.75rem; border-radius: 50%; border: 1px solid var(--sb-color-ink); background: transparent; color: inherit; font-size: 1.125rem; cursor: pointer; }
.sb-carousel__btn:hover { background: var(--sb-color-ink); color: var(--sb-on-media); }
.sb-carousel__btn:focus-visible { outline: 3px solid var(--sb-color-accent); outline-offset: 2px; }
.sb-carousel__btn.swiper-button-disabled { opacity: 0.35; cursor: default; }
.sb-carousel__nav--overlay { position: absolute; inset: 50% 1rem auto 1rem; justify-content: space-between; margin: 0; transform: translateY(-50%); pointer-events: none; z-index: 5; }
.sb-carousel__nav--overlay .sb-carousel__btn { pointer-events: auto; background: var(--sb-bg-white); border-color: var(--sb-on-media); color: var(--sb-color-ink); width: 3.25rem; height: 3.25rem; }
.sb-carousel__dots { position: absolute; left: 0; right: 0; bottom: 1rem; text-align: center; z-index: 5; }
.sb-carousel__dots .swiper-pagination-bullet { width: 0.625rem; height: 0.625rem; background: var(--sb-bg-white); opacity: 0.5; }
.sb-carousel__dots .swiper-pagination-bullet-active { opacity: 1; }

/* ---- Trip page ---- */
/* Trip page (D43): title and facts on paper above a wide gallery, destination cards, timeline itinerary with a route map */
.sb-trip-hero { position: relative; background: linear-gradient(var(--sb-bg-paper) 0 70%, transparent 70%); color: var(--sb-color-ink); padding-bottom: 2rem; }
.sb-trip-hero__inner { padding-block: 1.5rem 2rem; }
.sb-trip-hero__inner .sb-breadcrumbs__list { font-size: 0.8125rem; margin-bottom: 2.5rem; }
.sb-trip-hero__title { font-family: var(--sb-font-head); font-weight: 400; font-size: var(--sb-fs-h1); line-height: 1.1; max-width: 46rem; margin: 0 0 1.5rem; padding-inline-start: clamp(0rem, 6vw, 5rem); }
.sb-trip-hero__facts { display: flex; flex-wrap: wrap; gap: 0.75rem 3.5rem; margin: 0; padding-inline-start: clamp(0rem, 6vw, 5rem); border: 0; }
.sb-trip-hero__facts .sb-fact dt { font-size: 0.8125rem; letter-spacing: 0; text-transform: none; font-weight: 600; color: inherit; }
.sb-trip-hero__facts .sb-fact dd { font-family: inherit; font-size: 0.875rem; }
.sb-trip-hero__media { position: relative; width: min(100% - 2 * var(--sb-gutter, 1rem), 94rem); margin-inline: auto; aspect-ratio: 16 / 9; max-height: 42rem; overflow: hidden; background: var(--sb-bg-sand); }
@media (max-width: 767px) { .sb-trip-hero__media { aspect-ratio: 4 / 3; } }
.sb-trip-hero__media .swiper, .sb-trip-hero__media .swiper-slide, .sb-trip-hero__img { width: 100%; height: 100%; }
.sb-trip-hero__img { object-fit: cover; display: block; }
.sb-trip-hero__media .swiper-slide { position: relative; }
.sb-trip-hero__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
@media (prefers-reduced-motion: reduce) { .sb-trip-hero__video { display: none; } }
.sb-trip-hero__media .sb-carousel__nav--overlay { position: absolute; inset: 50% 1rem auto; transform: translateY(-50%); display: flex; justify-content: space-between; z-index: 3; pointer-events: none; }
.sb-trip-hero__media .sb-carousel__nav--overlay .sb-carousel__btn { pointer-events: auto; background: var(--sb-bg-white); color: var(--sb-color-ink); }
.sb-tripbar { position: fixed; left: 50%; bottom: 1rem; transform: translateX(-50%); z-index: 60; width: min(100% - 2rem, 54rem); background: var(--sb-bg-charcoal); color: var(--sb-ink-on-dark); border-radius: 6px; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3); }
.sb-tripbar[hidden] { display: none; }
.sb-tripbar__inner { display: flex; align-items: center; gap: 1rem 1.5rem; justify-content: space-between; min-height: 3.75rem; padding: 0.5rem 0.75rem 0.5rem 1.25rem; }
.sb-tripbar__stop { font-size: 0.8125rem; line-height: 1.3; color: var(--sb-color-highlight); }
.sb-tripbar__stop strong { color: var(--sb-ink-on-dark); font-weight: 400; }
.sb-tripbar__title { font-family: var(--sb-font-head); font-size: 1.125rem; text-align: right; margin-left: auto; }
.sb-tripbar__price { display: block; font-family: var(--sb-font-body); font-size: 0.8125rem; color: var(--sb-color-highlight); }
@media (max-width: 767px) { .sb-tripbar__stop, .sb-tripbar__title { display: none; } .sb-tripbar__inner { justify-content: center; } }
.sb-facts { border: 0; }
.sb-fact dt { font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase; font-weight: 600; color: var(--sb-color-muted); }
.sb-fact dd { margin: 0; font-family: var(--sb-font-head); font-size: 1.75rem; }
.sb-strip { padding-block: 1rem 2rem; }
.sb-strip__heading { font-family: var(--sb-font-head); font-weight: 400; font-size: var(--sb-fs-h3); margin: 0 0 1.25rem; padding-inline-start: clamp(0rem, 6vw, 5rem); }
.sb-strip__list { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); list-style: none; margin: 0; padding: 0 0 0 clamp(0rem, 6vw, 5rem); }
.sb-strip__link { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; padding: 0 0 0 0.75rem; text-decoration: none; color: inherit; background: var(--sb-bg-white); box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08); min-height: 4rem; }
.sb-strip__link:hover, .sb-strip__link:focus-visible { box-shadow: 0 4px 16px rgba(0, 0, 0, 0.16); }
.sb-strip__thumb { width: 5.5rem; align-self: stretch; background: var(--sb-bg-sand); display: block; overflow: hidden; flex: none; }
.sb-strip__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sb-strip__range { display: block; font-size: 0.75rem; color: var(--sb-color-highlight); }
.sb-strip__dest { display: block; font-family: var(--sb-font-head); font-size: 1rem; }
.sb-trip-intro__text { max-width: 60rem; margin-inline: auto; text-align: center; font-family: var(--sb-font-head); font-size: clamp(1.25rem, 2.6vw, 2.125rem); line-height: 1.35; }
.sb-split { display: grid; gap: 2rem; grid-template-columns: 1fr; align-items: center; }
@media (min-width: 900px) { .sb-split { grid-template-columns: 1fr 1.2fr; gap: 4rem; } }
.sb-numbered { list-style: none; margin: 0; padding: 0; }
.sb-numbered li { display: flex; gap: 1rem; padding: 0.9rem 0; border-top: 1px solid var(--sb-color-line); font-size: 1.0625rem; }
.sb-numbered__n { color: var(--sb-color-accent); font-weight: 700; }
.sb-figure { margin: 0; }
.sb-figure img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.sb-figure figcaption { font-size: 0.875rem; padding-top: 0.5rem; }
.sb-trip-inclusions__media img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; }
.sb-ticks { list-style: none; padding: 0; margin: 1rem 0 0; }
.sb-ticks li { display: flex; gap: 0.9rem; padding: 0.7rem 0; border-top: 1px solid var(--sb-color-line); }
.sb-ticks li::before { content: "✓"; color: var(--sb-color-accent); font-weight: 700; }
.sb-bg-accent .sb-ticks li::before { color: inherit; }
.sb-btn--light { background: var(--sb-bg-white); color: var(--sb-color-accent); border-color: var(--sb-ink-on-dark); }
.sb-cta-strip .sb-cta-bar__title { font-family: var(--sb-font-head); font-weight: 400; }
.sb-section__title--xl { font-size: clamp(2.25rem, 5vw, 4rem); }
.sb-segment { margin-block: 4rem 6rem; scroll-margin-top: 5rem; }
.sb-segment__range { font-size: 0.75rem; letter-spacing: 0.1em; font-weight: 700; color: var(--sb-color-accent); text-transform: uppercase; margin: 0; }
.sb-segment__title { font-size: clamp(2rem, 4vw, 3rem); line-height: 1.05; margin: 0.5rem 0 1rem; }
.sb-segment__text { max-width: 40rem; margin-bottom: 1.5rem; }
.sb-segment__hero img { width: 100%; max-height: 26rem; object-fit: cover; display: block; margin-bottom: 2rem; }
.sb-image-row { display: grid; gap: 2rem; grid-template-columns: 1fr; align-items: center; margin-bottom: 2.5rem; }
@media (min-width: 768px) { .sb-image-row { grid-template-columns: 1fr 1fr; } .sb-image-row--flip .sb-image-row__media { order: 2; } }
.sb-image-row__media img { width: 100%; max-height: 18rem; object-fit: cover; display: block; }
.sb-impact__title, .sb-options__title { font-family: var(--sb-font-head); font-size: 1.75rem; font-weight: 400; margin: 0.75rem 0 0.5rem; }
.sb-options { background: var(--sb-bg-paper); padding: 1.5rem; margin-bottom: 2.5rem; }
.sb-options__label { font-size: 0.75rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; margin: 0 0 0.75rem; }
.sb-tabs__list { display: flex; gap: 1.5rem; border-bottom: 1px solid var(--sb-color-line); margin-bottom: 1.25rem; overflow-x: auto; }
.sb-tabs__tab { background: none; border: 0; border-bottom: 3px solid transparent; padding: 0.75rem 0; margin-bottom: -1px; font: inherit; font-weight: 600; color: var(--sb-color-muted); cursor: pointer; white-space: nowrap; min-height: 44px; }
.sb-tabs__tab[aria-selected="true"] { color: var(--sb-color-accent); border-bottom-color: var(--sb-color-accent); }
.sb-tabs__tab:focus-visible { outline: 2px solid var(--sb-color-accent); }
.sb-tabs__panel { display: grid; gap: 1.5rem; grid-template-columns: 1fr; }
.sb-tabs__panel[hidden] { display: none; }
@media (min-width: 768px) { .sb-tabs__panel { grid-template-columns: 14rem 1fr; } }
.sb-options__media img { width: 100%; height: 10rem; object-fit: cover; display: block; }
.sb-stay__title { font-family: var(--sb-font-head); font-size: 2rem; font-weight: 400; margin: 0 0 1rem; }
.sb-review { text-align: center; }
.sb-stars { color: var(--sb-color-accent); font-size: 1.375rem; letter-spacing: 0.2em; margin: 0; }
.sb-review__quote { font-family: var(--sb-font-head); font-size: clamp(1.5rem, 3vw, 2.25rem); line-height: 1.3; max-width: 54rem; margin: 1rem auto; }
.sb-review__quote p { margin: 0; }
.sb-fab { position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 55; background: var(--sb-color-accent); color: var(--sb-ink-on-dark); padding: 1rem 1.6rem; border-radius: 2.5rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; text-decoration: none; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25); }
.sb-fab:hover, .sb-fab:focus-visible { background: var(--sb-color-accent-dark); color: var(--sb-ink-on-dark); }
.sb-enquiry__grid { display: grid; gap: 2rem; grid-template-columns: 1fr; }
@media (min-width: 900px) { .sb-enquiry__grid { grid-template-columns: 1fr 1fr; gap: 4rem; } }
.sb-enquiry__fallback { padding: 1.5rem; background: var(--sb-bg-white); border: 1px solid var(--sb-color-line); margin: 0; }

/* ---- Trip list ---- */
.sb-filters { display: grid; gap: 0.75rem 1rem; grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); align-items: end; padding: 1rem; background: var(--sb-bg-paper); border: 1px solid var(--sb-color-line); margin-bottom: 1.5rem; }
.sb-filters__field { display: flex; flex-direction: column; gap: 0.25rem; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; }
.sb-filters__field select { font: inherit; font-size: 0.9375rem; text-transform: none; letter-spacing: 0; font-weight: 400; padding: 0.6rem; border: 1px solid var(--sb-bg-grey); background: var(--sb-bg-white); min-height: 44px; }
.sb-filters__reset { align-self: center; font-size: 0.875rem; }
.sb-results__count { color: var(--sb-color-muted); margin: 0 0 1rem; }
.sb-results__empty { padding: 2rem; background: var(--sb-bg-paper); }
[data-sb-results][aria-busy="true"] { opacity: 0.5; transition: opacity 0.15s; }
.sb-pagination { display: flex; flex-wrap: wrap; gap: 0.5rem; justify-content: center; margin: 2rem 0; }
.sb-pagination__link { min-width: 2.5rem; min-height: 2.5rem; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--sb-color-line); text-decoration: none; color: inherit; }
.sb-pagination__link[aria-current="page"] { background: var(--sb-color-accent); border-color: var(--sb-color-accent); color: var(--sb-ink-on-dark); }

/* ---- Relationship sections (phase 4) ---- */
.sb-section__sub { color: var(--sb-color-muted); margin: 0 0 1.5rem; max-width: 46rem; }
.sb-where { display: block; }
.sb-where__list { list-style: none; margin: 0; padding: 0; display: flex; gap: 1rem; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; }
.sb-where__item { flex: 0 0 78%; scroll-snap-align: start; }
.sb-where__link { display: block; text-decoration: none; color: inherit; background: var(--sb-bg-white); border: 1px solid var(--sb-color-line); height: 100%; }
.sb-where__media { display: block; aspect-ratio: 4 / 3; background: var(--sb-bg-sand); overflow: hidden; }
.sb-where__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sb-where__body { display: block; padding: 0.875rem 1rem 1.125rem; }
.sb-where__title { display: block; font-family: var(--sb-font-head); font-size: 1.5rem; }
.sb-where__text { display: block; color: var(--sb-color-muted); font-size: 0.9375rem; margin-top: 0.25rem; }
.sb-where__link:hover .sb-where__title, .sb-where__link:focus-visible .sb-where__title { color: var(--sb-color-accent); text-decoration: underline; }
.sb-where__map { height: 22rem; margin-top: 1rem; background: var(--sb-map-water); z-index: 0; }
@media (min-width: 900px) {
  .sb-where.is-map { display: grid; grid-template-columns: minmax(18rem, 2fr) 3fr; gap: 1.5rem; align-items: start; }
  .sb-where.is-map .sb-where__list { flex-direction: column; overflow-y: auto; overflow-x: hidden; max-height: 34rem; scroll-snap-type: none; }
  .sb-where.is-map .sb-where__item { flex: 0 0 auto; }
  .sb-where.is-map .sb-where__link { display: grid; grid-template-columns: 6rem 1fr; }
  .sb-where.is-map .sb-where__media { aspect-ratio: auto; min-height: 5rem; }
  .sb-where.is-map .sb-where__map { height: 34rem; margin-top: 0; }
  .sb-where:not(.is-map) .sb-where__list { display: grid; grid-template-columns: repeat(3, 1fr); overflow: visible; }
}
.sb-tiles { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 900px) { .sb-tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.sb-tile__link { position: relative; display: block; aspect-ratio: 4 / 5; overflow: hidden; background: var(--sb-bg-sand); color: var(--sb-on-media); text-decoration: none; }
.sb-tile__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sb-tile__title { position: absolute; left: 0; right: 0; bottom: 0; padding: 2.5rem 1rem 1rem; font-family: var(--sb-font-head); font-size: 1.5rem; background: linear-gradient(transparent, rgba(0, 0, 0, 0.65)); }
.sb-people { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.5rem; grid-template-columns: repeat(2, 1fr); }
@media (min-width: 900px) { .sb-people { grid-template-columns: repeat(4, 1fr); } }
.sb-person__link { display: block; text-align: center; text-decoration: none; color: inherit; }
.sb-person__photo { display: block; aspect-ratio: 1; border-radius: 50%; overflow: hidden; background: var(--sb-bg-sand); margin-bottom: 0.75rem; }
.sb-person__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sb-person__name { display: block; font-family: var(--sb-font-head); font-size: 1.375rem; }
.sb-person__role { display: block; color: var(--sb-color-muted); font-size: 0.9375rem; }
.sb-quote { margin: 0; text-align: center; padding: 0 1rem; }
.sb-quote__text { margin: 0; font-family: var(--sb-font-head); font-size: clamp(1.4rem, 2.6vw, 2rem); line-height: 1.35; }
.sb-quote__text p { margin: 0; }
.sb-quote__by { margin-top: 1rem; display: flex; flex-direction: column; align-items: center; gap: 0.15rem; }
.sb-quote__img { width: 3.5rem; height: 3.5rem; border-radius: 50%; object-fit: cover; }
.sb-quote__meta { color: var(--sb-color-muted); font-size: 0.875rem; }
.sb-quote__rating { color: var(--sb-color-accent); letter-spacing: 0.15em; }
.sb-quote-wall { display: grid; gap: 1.5rem; grid-template-columns: 1fr; margin-top: 2rem; }
@media (min-width: 768px) { .sb-quote-wall { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .sb-quote-wall { grid-template-columns: repeat(3, 1fr); } }
.sb-quote-wall__item { padding: 2rem 1.5rem; background: var(--sb-bg-paper); border: 1px solid var(--sb-color-line); }
.sb-quote-wall__item .sb-quote__text { font-size: var(--sb-fs-card); }
.sb-months { list-style: none; margin: 0 0 1.5rem; padding: 0; display: grid; grid-template-columns: repeat(6, 1fr); gap: 0.25rem; }
@media (min-width: 768px) { .sb-months { grid-template-columns: repeat(12, 1fr); } }
.sb-months__m { text-align: center; padding: 0.6rem 0; background: var(--sb-bg-paper); border: 1px solid var(--sb-color-line); font-size: 0.875rem; }
.sb-months__m.is-best { background: var(--sb-color-accent); border-color: var(--sb-color-accent); color: var(--sb-ink-on-dark); font-weight: 600; }
.sb-periods { display: grid; gap: 1.25rem; grid-template-columns: 1fr; }
@media (min-width: 768px) { .sb-periods { grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); } }
.sb-period__label { font-family: var(--sb-font-head); font-weight: 400; font-size: 1.375rem; margin: 0; }
.sb-period__months { color: var(--sb-color-accent); font-weight: 600; margin: 0.15rem 0 0.5rem; }
.sb-reviews__score strong { font-family: var(--sb-font-head); font-size: 3rem; font-weight: 400; }
.sb-reviews__item { margin: 1rem 0 0; padding-left: 1rem; border-left: 3px solid var(--sb-color-accent); }
.sb-timeline { list-style: none; margin: 0; padding: 0 0 0 1.5rem; border-left: 2px solid var(--sb-color-line); }
.sb-timeline__item { position: relative; padding: 0 0 2rem 1.25rem; }
.sb-timeline__item::before { content: ""; position: absolute; left: -2rem; top: 0.4rem; width: 0.75rem; height: 0.75rem; border-radius: 50%; background: var(--sb-color-accent); }
.sb-timeline__label { color: var(--sb-color-accent); font-weight: 600; font-size: 0.875rem; letter-spacing: 0.08em; text-transform: uppercase; }
.sb-timeline__title { font-family: var(--sb-font-head); font-weight: 400; font-size: 1.5rem; margin: 0.15rem 0 0.5rem; }
.sb-timeline__img { max-width: 100%; height: auto; margin-top: 0.75rem; }

/* ---- Accommodation, guides, team pages ---- */
/* Accommodation page (D43): split hero, story with highlights, impact panel, plan block */
.sb-acc-hero { display: grid; grid-template-columns: 1fr; background: var(--sb-bg-charcoal); color: var(--sb-on-media); }
@media (min-width: 900px) { .sb-acc-hero { grid-template-columns: 1fr 1fr; min-height: min(40rem, 75vh); } }
.sb-acc-hero__media { position: relative; min-height: 18rem; overflow: hidden; }
.sb-acc-hero__img, .sb-acc-hero__media .sb-card__placeholder { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.sb-acc-hero__crumbs { position: absolute; top: 1rem; left: 1rem; right: 1rem; color: var(--sb-on-media); text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5); }
.sb-acc-hero__crumbs .sb-breadcrumbs__list { margin: 0; font-size: 0.8125rem; }
.sb-acc-hero__panel { position: relative; display: flex; flex-direction: column; justify-content: center; padding: 3rem var(--sb-gutter, 1rem); }
@media (min-width: 900px) { .sb-acc-hero__panel { padding: 4rem clamp(2rem, 6vw, 6rem); } }
.sb-acc-hero__ribbon { position: absolute; top: 0; left: clamp(1rem, 6vw, 6rem); margin: 0; padding: 1.75rem 0.6rem 0.9rem 2.75rem; font-size: var(--sb-fs-label, 0.75rem); letter-spacing: 0.12em; text-transform: uppercase;
  background: linear-gradient(90deg, var(--sb-color-highlight) 0 1.75rem, transparent 1.75rem); }
.sb-acc-hero__where { margin: 0 0 0.75rem; color: var(--sb-color-highlight); }
.sb-acc-hero__title { margin: 0; font-family: var(--sb-font-head); font-weight: 400; font-size: var(--sb-fs-h1); line-height: 1.1; color: inherit; }
.sb-acc-hero__lead { margin: 1.25rem 0 0; max-width: 34rem; font-family: var(--sb-font-head); font-size: var(--sb-fs-lead, 1.125rem); }
.sb-acc-hero .sb-acc-meta { color: inherit; opacity: 0.8; margin-top: 1.5rem; }
.sb-acc-hero .sb-overline { color: inherit; margin: 0; }
.sb-acc-meta { display: flex; flex-wrap: wrap; gap: 0.5rem 1.25rem; color: var(--sb-color-muted); margin: 0.5rem 0 0; padding: 0; list-style: none; }
.sb-acc-story { display: grid; gap: 2.5rem; grid-template-columns: 1fr; }
@media (min-width: 900px) { .sb-acc-story { grid-template-columns: 3fr 2fr; gap: clamp(3rem, 8vw, 8rem); } }
.sb-acc-story__title { text-align: left; margin-top: 0; }
.sb-acc-story__label { font-family: var(--sb-font-head); font-weight: 400; font-size: var(--sb-fs-h3); margin: 0 0 0.75rem; padding-bottom: 0.75rem; border-bottom: 1px solid var(--sb-color-highlight); }
.sb-acc-story__quote { margin-top: 2rem; text-align: left; padding: 0; }
.sb-acc-highlights { list-style: none; margin: 0; padding: 0; }
.sb-acc-highlights li { position: relative; padding: 0.75rem 0 0.75rem 1.25rem; border-bottom: 1px solid var(--sb-color-line); font-size: 0.9375rem; }
.sb-acc-highlights li::before { content: ""; position: absolute; left: 0; top: 1.2rem; width: 0.45rem; height: 0.45rem; border: 1px solid var(--sb-color-highlight); border-radius: 50%; }
.sb-acc-gallery { padding-block: 2rem; }
.sb-acc-cta { padding-block: 1rem 2rem; }
.sb-acc-impact__inner { position: relative; display: grid; grid-template-columns: 1fr; }
.sb-acc-impact__media img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; display: block; }
.sb-acc-impact__panel { background: var(--sb-bg-charcoal); color: var(--sb-ink-on-dark); padding: 2.5rem 1.5rem; }
.sb-acc-impact__title { font-family: var(--sb-font-head); font-weight: 400; font-size: var(--sb-fs-h2); margin: 0 0 1.25rem; color: inherit; }
.sb-acc-impact__list { margin: 0; padding-left: 1rem; display: grid; gap: 1rem; }
@media (min-width: 900px) {
  .sb-acc-impact__inner { grid-template-columns: 1fr 2fr; padding-top: 4rem; }
  .sb-acc-impact__inner::before { content: ""; position: absolute; top: 0; bottom: 0; left: 20%; right: 0; background: var(--sb-bg-charcoal); }
  .sb-acc-impact__media { position: relative; margin-top: -1rem; }
  .sb-acc-impact__panel { position: relative; background: none; padding: 3rem clamp(2rem, 6vw, 5rem) 4rem; }
  .sb-acc-impact__inner:not(:has(.sb-acc-impact__media)) { grid-template-columns: 1fr; }
}
.sb-acc-plan__inner { text-align: center; max-width: 40rem; }
.sb-acc-plan__inner p { margin: 0 auto 1.5rem; }
.sb-acc-promo { display: block; padding: 1.25rem; background: var(--sb-bg-sand); text-decoration: none; color: inherit; }
.sb-guide-head { padding: 2rem 0 0; }
.sb-guide-byline { color: var(--sb-color-muted); font-size: 0.9375rem; margin: 0.5rem 0 0; }
.sb-guide-filter { display: flex; flex-wrap: wrap; gap: 1rem; align-items: end; margin-bottom: 1.5rem; padding: 1rem; background: var(--sb-bg-paper); border: 1px solid var(--sb-color-line); }
.sb-guide-filter label { display: flex; flex-direction: column; gap: 0.25rem; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; }
.sb-guide-filter select { font: inherit; font-size: 0.9375rem; padding: 0.6rem; min-height: 44px; border: 1px solid var(--sb-bg-grey); background: var(--sb-bg-white); text-transform: none; letter-spacing: 0; font-weight: 400; }
.sb-profile { display: grid; gap: 2rem; grid-template-columns: 1fr; padding: 3rem 0; }
@media (min-width: 768px) { .sb-profile { grid-template-columns: 18rem 1fr; } }
.sb-profile__photo img { width: 100%; height: auto; display: block; }
.sb-visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---- Enquiry stepper (phase 5) ---- */
.sb-stepper { max-width: 40rem; }
.sb-stepper__status { color: var(--sb-color-muted); font-size: 0.875rem; margin: 0 0 0.5rem; }
.sb-stepper__title { font-family: var(--sb-font-head); font-weight: 400; font-size: 1.75rem; margin: 0 0 1rem; outline: 0; }
.sb-step { border: 0; padding: 0; margin: 0 0 1rem; min-width: 0; }
.sb-step[hidden] { display: none; }
.sb-step__hint { color: var(--sb-color-muted); margin: 0 0 0.5rem; }
.sb-field { margin: 0 0 1rem; }
.sb-field__label { display: block; font-weight: 600; margin-bottom: 0.25rem; }
.sb-field input[type="text"], .sb-field input[type="email"], .sb-field input[type="tel"], .sb-field input[type="number"], .sb-field textarea, .sb-field select { width: 100%; font: inherit; padding: 0.7rem 0.75rem; border: 1px solid var(--sb-bg-grey); background: var(--sb-bg-white); min-height: 44px; border-radius: 0; box-sizing: border-box; }
.sb-field input[aria-invalid="true"], .sb-field textarea[aria-invalid="true"] { border-color: var(--sb-color-error); }
.sb-field__hint { color: var(--sb-color-muted); font-size: 0.875rem; margin: 0.25rem 0 0; }
.sb-field__error, .sb-stepper__error { color: var(--sb-color-error); font-size: 0.875rem; margin: 0.25rem 0 0; min-height: 0; }
.sb-field .iti { width: 100%; }
.sb-chips { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0 0 1rem; }
.sb-chip__input { position: absolute; opacity: 0; pointer-events: none; }
.sb-chip__label { display: inline-block; padding: 0.55rem 1rem; border: 1px solid var(--sb-bg-grey); background: var(--sb-bg-white); cursor: pointer; min-height: 44px; box-sizing: border-box; line-height: 1.6; }
.sb-chip__input:checked + .sb-chip__label { background: var(--sb-color-accent); border-color: var(--sb-color-accent); color: var(--sb-ink-on-dark); }
.sb-chip__input:focus-visible + .sb-chip__label { outline: 2px solid var(--sb-color-accent); outline-offset: 2px; }
.sb-consent { display: grid; grid-template-columns: auto 1fr; gap: 0 0.6rem; align-items: start; margin: 0 0 0.75rem; font-size: 0.9375rem; }
.sb-consent input { margin-top: 0.25rem; width: 1.15rem; height: 1.15rem; }
.sb-consent .sb-field__error { grid-column: 2; }
.sb-stepper__nav { display: flex; gap: 0.75rem; margin-top: 1rem; }
.sb-stepper__nav [hidden] { display: none; }
.sb-hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.sb-stepper__done { padding: 1.5rem; background: var(--sb-color-accent-tint); outline: 0; }

/* ---- Trip planner (phase 6) ---- */
.sb-planner__title { font-family: var(--sb-font-head); font-weight: 400; font-size: 1.75rem; margin: 0 0 0.5rem; outline: 0; }
.sb-planner [data-sb-planner-app] { max-width: 48rem; }
.sb-planner__month { width: 100%; max-width: 20rem; font: inherit; padding: 0.7rem; min-height: 44px; border: 1px solid var(--sb-bg-grey); background: var(--sb-bg-white); }
.sb-planner__results[hidden], .sb-planner [data-sb-planner-app][hidden] { display: none; }
.sb-planner__results .sb-stepper__nav { margin-top: 1.5rem; }

/* ---- Currency switcher and phone (phase 7) ---- */
.sb-enquiry__phone { margin-top: 1rem; }
.sb-enquiry__phone:has([data-sb-phone][hidden]) { display: none; }

/* ---- Search (phase 8) ---- */
.sb-searchform { position: relative; display: flex; gap: 0.5rem; margin: 0 0 1.5rem; max-width: 40rem; }
.sb-searchform__input { flex: 1; font: inherit; padding: 0.7rem 0.9rem; min-height: 44px; border: 1px solid var(--sb-bg-grey); background: var(--sb-bg-white); border-radius: 0; }
.sb-suggest { position: absolute; left: 0; right: 0; top: 100%; z-index: 30; margin: 0; padding: 0; list-style: none; background: var(--sb-bg-white); border: 1px solid var(--sb-bg-grey); border-top: 0; max-height: 18rem; overflow-y: auto; }
.sb-suggest[hidden] { display: none; }
.sb-suggest li a { display: block; padding: 0.6rem 0.9rem; color: inherit; text-decoration: none; }
.sb-suggest li[aria-selected="true"], .sb-suggest li:hover { background: var(--sb-color-accent-tint); }
.sb-searchtabs { display: flex; flex-wrap: wrap; gap: 0.25rem 1.5rem; list-style: none; margin: 0 0 1.25rem; padding: 0; border-bottom: 1px solid var(--sb-color-line); }
.sb-searchtabs__link { display: inline-flex; gap: 0.5rem; align-items: baseline; padding: 0.75rem 0; margin-bottom: -1px; border-bottom: 3px solid transparent; color: var(--sb-color-muted); font-weight: 600; text-decoration: none; }
.sb-searchtabs__link[aria-current="page"] { color: var(--sb-color-accent); border-bottom-color: var(--sb-color-accent); }
.sb-searchtabs__count { font-weight: 400; font-size: 0.875rem; }

/* ---- Team carousel ---- */
.sb-carousel--team .swiper-wrapper.sb-people { display: flex; grid-template-columns: none; gap: 0; padding: 0; margin: 0; list-style: none; }
.sb-carousel--team .swiper-slide { height: auto; }
.sb-carousel--team:not([data-sb-ready]) .swiper-slide { flex: 0 0 9rem; width: auto; }
.sb-carousel--team:not([data-sb-ready]) .swiper { overflow-x: auto; }
.sb-carousel--team .sb-person__name { font-size: 1.0625rem; line-height: 1.2; }
.sb-carousel--team .sb-person__role { font-size: 0.8125rem; }
.sb-carousel--team .sb-person__photo { margin-bottom: 0.6rem; }

/* where to go: the place picked on the map */
.sb-where__item.is-selected .sb-where__link { border-color: var(--sb-color-accent); box-shadow: 0 0 0 2px var(--sb-color-accent); background: var(--sb-color-accent-tint); }
.sb-where__link:focus-visible { outline: 3px solid var(--sb-color-accent); outline-offset: 2px; }

/* ---- Full-bleed bands and carousels ---- */
/* Full-bleed blocks are 100vw wide; clipping at the body (not the page) stops the scrollbar width from causing a horizontal scroll. */
body[class*="com_simplebooking"], body[class*="com-simplebooking"] { overflow-x: clip; }
.sb-sections > .sb-section, .sb-bleed, .sb-page--accommodation > .sb-acc-hero, .sb-page--accommodation > .sb-section { width: 100vw; margin-left: calc(50% - 50vw); max-width: none; }
.sb-bleed.sb-carousel { position: relative; }
.sb-carousel--centered .swiper { padding-block: 0.25rem; }
.sb-gallery--centered { display: flex; gap: 0; grid-template-columns: none; padding: 0; margin: 0; list-style: none; }
.sb-gallery--centered .swiper-slide { height: auto; }
.sb-gallery--centered img { aspect-ratio: 16 / 9; border-radius: var(--sb-radius-img, 0.75rem); }
.sb-carousel--centered .sb-carousel__nav { padding-inline: var(--sb-gutter); max-width: var(--sb-container); margin-inline: auto; }
.sb-carousel--team.sb-bleed .swiper { padding-inline: max(var(--sb-gutter), calc((100vw - var(--sb-container)) / 2 + var(--sb-gutter))); }
.sb-carousel--team.sb-bleed .sb-carousel__nav { padding-inline: var(--sb-gutter); max-width: var(--sb-container); margin-inline: auto; box-sizing: border-box; }

/* Custom layout (visual builder) utility classes. Only these classes survive sanitising, so the design cannot drift. */
.sb-custom { display: block; }
.sb-u-wrap { margin-inline: auto; padding-inline: var(--sb-gutter); max-width: var(--sb-container); }
.sb-u-wrap--narrow { max-width: 720px; }
.sb-u-wrap--wide { max-width: none; }
.sb-u-title { font-family: var(--sb-font-head); font-weight: 400; line-height: 1.15; margin: 0 0 0.6em; }
h2.sb-u-title { font-size: clamp(1.8rem, 3vw, 2.6rem); }
h3.sb-u-title { font-size: clamp(1.4rem, 2.2vw, 1.9rem); }
h4.sb-u-title { font-size: 1.25rem; }
.sb-u-lead { font-size: 1.2rem; color: var(--sb-color-muted); }
.sb-prose { max-width: 70ch; line-height: 1.65; }
.sb-prose p, .sb-prose ul, .sb-prose ol { margin: 0 0 1em; }
.sb-u-figure { margin: 0 0 1rem; }
.sb-u-figure img, .sb-u-media img, .sb-u-col img { display: block; width: 100%; height: auto; }
.sb-u-figure figcaption { font-size: 0.875rem; color: var(--sb-color-muted); margin-top: 0.4rem; }
.sb-u-media { display: grid; grid-template-columns: 1fr; align-items: center; gap: 1.5rem; }
.sb-u-cols { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
.sb-u-gap--s { gap: 0.75rem; }
.sb-u-gap--m { gap: 1.5rem; }
.sb-u-gap--l { gap: 3rem; }
.sb-u-quote { margin: 0 0 1.5rem; padding-left: 1.25rem; border-left: 3px solid var(--sb-color-accent); font-family: var(--sb-font-head); font-size: 1.5rem; line-height: 1.35; }
.sb-u-quote p { margin: 0 0 0.5em; }
.sb-u-quote cite { display: block; font: normal 0.9rem var(--sb-font-body); color: var(--sb-color-muted); }
.sb-u-spacer { display: block; height: 2rem; }
.sb-u-spacer--s { height: 1rem; }
.sb-u-spacer--m { height: 2.5rem; }
.sb-u-spacer--l { height: 5rem; }
.sb-u-band { padding-block: 1.5rem; }
.sb-u-band--sand { background: var(--sb-bg-sand); }
.sb-u-band--paper { background: var(--sb-bg-paper); }
.sb-u-band--charcoal { background: var(--sb-bg-charcoal); color: var(--sb-ink-on-dark); }
.sb-u-band--accent { background: var(--sb-bg-accent); color: var(--sb-ink-on-dark); }
.sb-u-band--grey { background: var(--sb-bg-grey); color: var(--sb-ink-on-dark); }
.sb-u-band--charcoal a, .sb-u-band--accent a, .sb-u-band--grey a { color: inherit; }
.sb-u-pad--s { padding-block: 1rem; }
.sb-u-pad--m { padding-block: 2.5rem; }
.sb-u-pad--l { padding-block: 5rem; }
.sb-u-align--left { text-align: left; }
.sb-u-align--center { text-align: center; }
.sb-u-align--center .sb-prose { margin-inline: auto; }
.sb-u-align--right { text-align: right; }
.sb-u-align--right .sb-prose { margin-left: auto; }
/* Blocks narrower than their parent follow the horizontal alignment too. */
.sb-btn.sb-u-align--left, .sb-btn.sb-u-align--center, .sb-btn.sb-u-align--right { display: table; }
.sb-btn.sb-u-align--left { margin-right: auto; }
.sb-btn.sb-u-align--center { margin-inline: auto; }
.sb-btn.sb-u-align--right { margin-left: auto; }
.sb-prose.sb-u-align--center, .sb-u-quote.sb-u-align--center { margin-inline: auto; }
.sb-prose.sb-u-align--right { margin-left: auto; }
.sb-u-quote.sb-u-align--center { border-left: 0; padding-left: 0; }
.sb-u-quote.sb-u-align--right { border-left: 0; padding-left: 0; border-right: 3px solid var(--sb-color-accent); padding-right: 1.25rem; }
.sb-u-w--s { max-width: 33%; }
.sb-u-w--m { max-width: 50%; }
.sb-u-w--l { max-width: 75%; }
.sb-u-figure.sb-u-align--center { margin-inline: auto; }
.sb-u-figure.sb-u-align--right { margin-left: auto; }
.sb-u-figure.sb-u-align--left { margin-right: auto; }
@media (max-width: 767px) { .sb-u-w--s, .sb-u-w--m { max-width: 100%; } }
/* Vertical alignment: children of a row or a band, or a column inside its row. */
.sb-u-cols.sb-u-valign--top, .sb-u-media.sb-u-valign--top { align-items: start; }
.sb-u-cols.sb-u-valign--middle, .sb-u-media.sb-u-valign--middle { align-items: center; }
.sb-u-cols.sb-u-valign--bottom, .sb-u-media.sb-u-valign--bottom { align-items: end; }
.sb-u-col.sb-u-valign--top, .sb-u-media__text.sb-u-valign--top { align-self: start; }
.sb-u-col.sb-u-valign--middle, .sb-u-media__text.sb-u-valign--middle { align-self: center; }
.sb-u-col.sb-u-valign--bottom, .sb-u-media__text.sb-u-valign--bottom { align-self: end; }
.sb-u-band.sb-u-valign--top, .sb-u-band.sb-u-valign--middle, .sb-u-band.sb-u-valign--bottom,
.sb-u-wrap.sb-u-valign--top, .sb-u-wrap.sb-u-valign--middle, .sb-u-wrap.sb-u-valign--bottom { display: flex; flex-direction: column; }
.sb-u-band.sb-u-valign--top, .sb-u-wrap.sb-u-valign--top { justify-content: flex-start; }
.sb-u-band.sb-u-valign--middle, .sb-u-wrap.sb-u-valign--middle { justify-content: center; }
.sb-u-band.sb-u-valign--bottom, .sb-u-wrap.sb-u-valign--bottom { justify-content: flex-end; }
.sb-u-band[class*="sb-u-valign--"] > *, .sb-u-wrap[class*="sb-u-valign--"] > * { width: 100%; }
.sb-u-band.sb-u-align--center > .sb-u-wrap, .sb-u-wrap.sb-u-align--center > * { margin-inline: auto; }
.sb-u-h--s { min-height: 14rem; }
.sb-u-h--m { min-height: 24rem; }
.sb-u-h--l { min-height: 36rem; }
.sb-u-col { min-width: 0; }
@media (min-width: 768px) {
  .sb-u-media { grid-template-columns: 1fr 1fr; }
  .sb-u-media--right > .sb-u-figure { order: 2; }
  .sb-u-cols--2 { grid-template-columns: repeat(2, 1fr); }
  .sb-u-cols--3 { grid-template-columns: repeat(3, 1fr); }
}

/* ---- Showcase skin: centred section heads, rounded cards, dark bands with overlay cards, photo quote, promo splits ---- */
.sb-section--card-grid .sb-card-grid { position: relative; }
.sb-section--card-grid .sb-card-grid__head { text-align: center; margin-bottom: 2rem; }
.sb-section--card-grid .sb-card-grid__sub { max-width: 46rem; margin-inline: auto; }
/* Card carousels: the arrows get their own row above the cards (right-aligned), so they can never overlap the heading or the cards. */
.sb-section--card-grid .sb-card-grid > .sb-carousel, .sb-section--guides .sb-card-grid > .sb-carousel { display: flex; flex-direction: column; }
.sb-section--card-grid .sb-card-grid > .sb-carousel > .swiper, .sb-section--guides .sb-card-grid > .sb-carousel > .swiper { width: 100%; }
.sb-section--card-grid .sb-card-grid > .sb-carousel > .sb-carousel__nav, .sb-section--guides .sb-card-grid > .sb-carousel > .sb-carousel__nav { order: -1; position: static; transform: none; justify-content: flex-end; margin: 0 0 1rem; }
.sb-section--card-grid .sb-card-grid__head { margin-bottom: 1.25rem; }
@media (max-width: 767px) { .sb-section--card-grid .sb-card-grid > .sb-carousel > .sb-carousel__nav, .sb-section--guides .sb-card-grid > .sb-carousel > .sb-carousel__nav { order: 0; justify-content: center; margin: 1rem 0 0; } }
.sb-bg-charcoal .sb-carousel__btn { border-color: rgba(255, 255, 255, 0.7); }
.sb-bg-charcoal .sb-carousel__btn:hover { background: var(--sb-bg-white); color: var(--sb-color-ink); }
.sb-bg-charcoal .sb-section__sub, .sb-bg-charcoal .sb-card-grid__sub { color: rgba(255, 255, 255, 0.85); }

/* Lodges and other cards on light bands: white rounded cards, centred text */
.sb-section--card-grid:not(.sb-bg-charcoal) .sb-card--accommodation { background: var(--sb-bg-white); border-radius: 10px; overflow: hidden; box-shadow: 0 1px 3px rgba(35, 37, 31, 0.08); text-align: center; }
.sb-section--card-grid .sb-card--accommodation .sb-card__media { aspect-ratio: 3 / 2; }
.sb-section--card-grid .sb-card--accommodation .sb-card__body { padding: 1rem 1.25rem 1.5rem; align-items: center; }
.sb-card--accommodation .sb-card__meta { justify-content: center; color: var(--sb-color-highlight-dark); text-transform: uppercase; letter-spacing: 0.1em; font-size: 0.6875rem; }
.sb-card--accommodation .sb-rank { display: none; }
.sb-card--accommodation .sb-link { color: var(--sb-color-ink); text-transform: uppercase; letter-spacing: 0.1em; font-size: 0.75rem; }
.sb-badge { background: var(--sb-color-highlight-light); color: var(--sb-color-ink); border-radius: 0 3px 3px 0; left: 0; top: 0.75rem; }

/* Overlay cards: trips on a dark band, guides anywhere */
.sb-bg-charcoal .sb-card--trip, .sb-card--guide { position: relative; border-radius: 10px; overflow: hidden; color: var(--sb-ink-on-dark); }
.sb-bg-charcoal .sb-card--trip .sb-card__media, .sb-card--guide .sb-card__media { aspect-ratio: 3 / 4; }
.sb-bg-charcoal .sb-card--trip .sb-card__body { position: absolute; left: 1rem; right: 1rem; bottom: 1rem; background: var(--sb-bg-charcoal-deep); color: var(--sb-ink-on-dark); border-radius: 8px; padding: 1rem; text-align: center; align-items: center; }
.sb-bg-charcoal .sb-card--trip .sb-card__meta { display: contents; color: var(--sb-ink-on-dark); }
.sb-bg-charcoal .sb-card--trip .sb-card__meta span:first-child { order: -1; text-transform: uppercase; letter-spacing: 0.14em; font-size: 0.6875rem; font-weight: 700; }
.sb-bg-charcoal .sb-card--trip .sb-card__meta span:last-child:not(:first-child) { order: 1; font-size: 0.6875rem; }
.sb-bg-charcoal .sb-card--trip .sb-card__title { font-size: 1.375rem; }
.sb-bg-charcoal .sb-card--trip .sb-card__title a, .sb-bg-charcoal .sb-card--trip .sb-card__text, .sb-bg-charcoal .sb-card--trip .sb-link { color: var(--sb-ink-on-dark); }
.sb-bg-charcoal .sb-card--trip .sb-card__text, .sb-bg-charcoal .sb-card--trip .sb-link { display: none; }
.sb-card--guide .sb-card__media::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0) 55%); }
.sb-card--guide .sb-card__body { position: absolute; inset: auto 0 0 0; padding: 1.25rem; text-align: center; align-items: center; }
.sb-card--guide .sb-card__meta, .sb-card--guide .sb-card__text { display: none; }
.sb-card--guide .sb-card__title { font-size: 1.375rem; }
.sb-card--guide .sb-card__title a, .sb-card--guide .sb-link { color: var(--sb-ink-on-dark); }
.sb-card--guide .sb-link { text-transform: uppercase; letter-spacing: 0.12em; font-size: 0.6875rem; opacity: 0.85; margin-top: 0.5rem; }
.sb-section--guides .sb-card-grid__head { text-align: left; }

/* Selling points: centred columns, big icons */
.sb-section--usp-row .sb-section__title { text-align: center; margin-bottom: 2rem; }
.sb-section--usp-row .sb-usp { gap: 2.5rem; }
.sb-section--usp-row .sb-usp__item { text-align: center; }
.sb-section--usp-row .sb-usp__icon { width: 9rem; height: 7rem; margin: 0 auto 1rem; display: block; }
.sb-section--usp-row .sb-usp__title { font-family: var(--sb-font-head); font-weight: 400; font-size: 1.375rem; margin-bottom: 0.5rem; }
.sb-section--usp-row .sb-usp__text { max-width: 24rem; margin-inline: auto; }

/* Call to action: a dark rounded box, two columns, pill button */
.sb-section--cta-bar:not(.sb-bg-charcoal):not(.sb-bg-accent) .sb-cta-bar { background: var(--sb-bg-charcoal); color: var(--sb-ink-on-dark); border-radius: 8px; padding: 2rem 2.5rem; }
.sb-section--cta-bar:not(.sb-bg-charcoal):not(.sb-bg-accent) .sb-btn--primary { background: var(--sb-cta); border-color: var(--sb-cta); color: var(--sb-color-ink); }
.sb-cta-bar { display: grid; grid-template-columns: 1fr; gap: 1rem 3rem; align-items: center; justify-content: stretch; }
@media (min-width: 768px) { .sb-cta-bar { grid-template-columns: 1fr 1.6fr; } .sb-cta-bar .sb-btn { justify-self: start; grid-column: 2; } .sb-cta-bar__text { display: contents; } .sb-cta-bar__title { grid-column: 1; grid-row: 1 / span 2; align-self: center; } .sb-cta-bar__text p { grid-column: 2; } }
.sb-cta-bar .sb-btn { border-radius: 999px; padding: 0.6rem 1.4rem; }
.sb-cta-bar__title { font-family: var(--sb-font-head); font-weight: 400; }

/* Where to go: dark cards beside a pale map */
@media (min-width: 900px) {
  .sb-section--where-to-go .sb-where.is-map .sb-where__list { gap: 1rem; padding-right: 0.25rem; }
  .sb-section--where-to-go .sb-where.is-map .sb-where__link { grid-template-columns: 9rem 1fr; background: color-mix(in srgb, var(--sb-bg-charcoal) 88%, #000); color: var(--sb-ink-on-dark); border: 0; border-radius: 8px; overflow: hidden; min-height: 8rem; }
  .sb-section--where-to-go .sb-where.is-map .sb-where__title { color: var(--sb-ink-on-dark); font-size: 1.25rem; }
  .sb-section--where-to-go .sb-where.is-map .sb-where__text { color: rgba(255, 255, 255, 0.85); font-size: 0.8125rem; }
  .sb-section--where-to-go .sb-where.is-map .sb-where__body { padding: 0.9rem 1rem; }
}
.sb-where__link.is-selected, .sb-where__item.is-selected .sb-where__link { outline: 2px solid var(--sb-color-highlight-light); }

/* Team on a dark band: white rounded cards with square portraits */
.sb-section--team.sb-bg-charcoal .sb-section__title { text-align: center; }
.sb-section--team.sb-bg-charcoal .sb-section__sub { margin-inline: auto; text-align: center; }
.sb-section--team.sb-bg-charcoal .sb-person__link { background: var(--sb-bg-white); color: var(--sb-color-ink); border-radius: 8px; padding: 1.25rem 0.75rem; }
.sb-section--team.sb-bg-charcoal .sb-person__photo { border-radius: 0; background: var(--sb-bg-white); aspect-ratio: 1; }
.sb-section--team.sb-bg-charcoal .sb-person__role { color: var(--sb-color-muted); }

/* When to visit: text and period rows beside a promo image */
.sb-wtv--promo { display: grid; gap: 2.5rem; align-items: center; }
@media (min-width: 900px) { .sb-wtv--promo { grid-template-columns: 1fr 1fr; } }
.sb-wtv--promo .sb-periods { grid-template-columns: 1fr; gap: 0; }
.sb-wtv--promo .sb-period { padding: 0.9rem 0; border-bottom: 1px solid var(--sb-color-line); }
.sb-wtv--promo .sb-period p:not(.sb-period__months) { display: none; }
.sb-wtv--promo .sb-period__months { color: var(--sb-color-muted); font-weight: 400; font-size: 0.875rem; margin: 0.15rem 0 0; }
.sb-wtv--promo .sb-months { margin-top: 1.5rem; }
.sb-wtv__promo { position: relative; display: block; border-radius: 10px; overflow: hidden; color: var(--sb-ink-on-dark); text-decoration: none; min-height: 22rem; background: var(--sb-bg-charcoal); }
.sb-wtv__promo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.sb-wtv__promo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0) 60%); }
.sb-wtv__promo-title { position: absolute; z-index: 1; left: 1rem; right: 1rem; bottom: 3rem; text-align: center; font-family: var(--sb-font-head); font-size: clamp(1.5rem, 3vw, 2.25rem); line-height: 1.2; }
.sb-wtv__promo-more { position: absolute; z-index: 1; left: 0; right: 0; bottom: 1.25rem; text-align: center; text-transform: uppercase; letter-spacing: 0.14em; font-size: 0.75rem; opacity: 0.85; }

/* Expert quote and plan banner on a photo */
.sb-section--testimonial:has(.sb-quotes-photo) { padding: 0; }
.sb-section--testimonial:has(.sb-quotes-photo) > .sb-container { max-width: none; padding: 0; }
.sb-quotes-photo { position: relative; min-height: 28rem; display: flex; align-items: center; padding: 3rem var(--sb-gutter); }
.sb-quotes-photo__media { position: absolute; inset: 0; background: var(--sb-bg-charcoal); }
.sb-quotes-photo__media img { width: 100%; height: 100%; object-fit: cover; }
.sb-quotes-photo__title { position: absolute; z-index: 2; right: max(var(--sb-gutter), calc(50% - var(--sb-container) / 2 + var(--sb-gutter))); top: 2.5rem; color: var(--sb-on-media); text-align: right; max-width: 22rem; }
.sb-quotes-photo .sb-quotes { position: relative; z-index: 1; width: 100%; max-width: var(--sb-container); margin-inline: auto; }
.sb-quotes-photo .sb-quote { background: var(--sb-bg-charcoal); color: var(--sb-on-media); border-radius: 10px; padding: 2rem; max-width: 34rem; text-align: center; }
.sb-quotes-photo .sb-quote__text { font-family: var(--sb-font-body); font-size: 0.9375rem; line-height: 1.6; }
.sb-quotes-photo .sb-quote__meta { color: rgba(255, 255, 255, 0.8); }
.sb-quotes-photo .sb-carousel__nav { display: none; }
.sb-quotes-photo .sb-quote__img { width: 2.75rem; height: 2.75rem; }
.sb-quotes-photo .sb-quote__rating { color: var(--sb-color-highlight-light); }
.sb-section--plan-banner { padding: 0; }
.sb-section--plan-banner > .sb-container { max-width: none; padding: 0; }
.sb-section--plan-banner .sb-plan-banner { position: relative; display: flex; align-items: center; min-height: 26rem; padding: 3rem max(var(--sb-gutter), calc(50% - var(--sb-container) / 2 + var(--sb-gutter))); }
.sb-section--plan-banner .sb-plan-banner__images { position: absolute; inset: 0; display: block; background: var(--sb-bg-charcoal); }
.sb-section--plan-banner .sb-plan-banner__images img { width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; }
.sb-section--plan-banner .sb-plan-banner__images img + img { display: none; }
.sb-section--plan-banner .sb-plan-banner__body { position: relative; z-index: 1; background: var(--sb-bg-charcoal); color: var(--sb-ink-on-dark); border-radius: 10px; padding: 2.25rem; max-width: 24rem; }
.sb-section--plan-banner .sb-plan-banner__body .sb-btn--primary { background: var(--sb-cta); border-color: var(--sb-cta); color: var(--sb-color-ink); border-radius: 999px; }
.sb-section--plan-banner .sb-plan-banner__body .sb-btn--secondary { border-radius: 999px; }

/* Quote cards (reviews as a centred carousel) and story promo */
.sb-section--testimonial:not(:has(.sb-quotes-photo)) .sb-section__title, .sb-section--testimonial:not(:has(.sb-quotes-photo)) .sb-section__sub { text-align: center; margin-inline: auto; }
.sb-section--testimonial:not(:has(.sb-quotes-photo)) .sb-quotes { max-width: 46rem; margin-inline: auto; }
.sb-section--testimonial:not(:has(.sb-quotes-photo)) .sb-quote { background: var(--sb-bg-paper); border-radius: 10px; padding: 2rem 2.5rem; }
.sb-section--testimonial:not(:has(.sb-quotes-photo)) .sb-quote__text { font-family: var(--sb-font-body); font-size: 1rem; line-height: 1.6; }
.sb-section--testimonial:not(:has(.sb-quotes-photo)) .sb-quote__img { display: none; }
.sb-section--testimonial:not(:has(.sb-quotes-photo)) .sb-carousel__nav { justify-content: center; }
.sb-section--story-promo .sb-story__media { order: 2; }
.sb-section--story-promo .sb-story__media img { border-radius: 10px; aspect-ratio: 4 / 3; }
.sb-section--story-promo .sb-story__body .sb-btn { border-radius: 999px; background: var(--sb-cta); border-color: var(--sb-cta); color: var(--sb-color-ink); }
@media (max-width: 767px) { .sb-section--story-promo .sb-story__media { order: 0; } }

/* ---- Region page parity (D30) ---- */
/* Hero: edge to edge, headline mid-left with an optional italic part, outlined pill button, intro line at the bottom */
.sb-page > .sb-hero, .sb-page--destination .sb-hero, .sb-page--crosspage .sb-hero { width: 100vw; margin-left: calc(50% - 50vw); max-width: none; }
.sb-hero { align-items: stretch; }
.sb-hero__inner { display: flex; flex-direction: column; padding-block: 1.25rem 2.5rem; }
.sb-hero__inner > .sb-breadcrumbs, .sb-hero__inner > nav { order: 0; }
.sb-hero__title { order: 1; margin-top: auto; max-width: 40rem; font-size: clamp(2.25rem, 5.5vw, 4.25rem); line-height: 1.1; }
.sb-hero__title em { font-style: italic; }
.sb-hero__cta { order: 2; align-self: flex-start; margin-top: 1.5rem; }
.sb-hero__subtitle { order: 3; margin: auto 0 0; padding-top: 2rem; max-width: 30rem; font-size: 1.25rem; line-height: 1.4; }
.sb-btn--outline { background: transparent; border: 1px solid currentColor; border-radius: 999px; font-weight: 400; padding: 0.85rem 1.5rem; color: inherit; }
.sb-btn--outline:hover, .sb-btn--outline:focus-visible { background: var(--sb-bg-white); color: var(--sb-color-ink); border-color: var(--sb-ink-on-dark); }

/* Scroll navigation: centred, small capitals, gold underline */
.sb-scrollnav__list { justify-content: center; gap: 2rem; }
.sb-scrollnav__link { text-transform: uppercase; letter-spacing: 0.14em; font-size: 0.8125rem; color: var(--sb-bg-grey); padding-block: 1.15rem; }
.sb-scrollnav__link[aria-current="true"] { color: var(--sb-color-ink); border-bottom-color: var(--sb-color-highlight); font-weight: 500; }
.sb-scrollnav { border-bottom-color: var(--sb-color-line); }

/* Intro split: big heading left, text right, Read more */
@media (min-width: 900px) { .sb-intro.sb-intro--split { grid-template-columns: 1fr 1fr; gap: 3.5rem; } }
.sb-intro--split .sb-intro__main { display: contents; }
.sb-intro--split .sb-section__title { font-size: clamp(2rem, 4vw, 3.25rem); line-height: 1.1; margin: 0; }
.sb-intro--split .sb-prose { font-size: 1.0625rem; }
.sb-more { margin-top: 0.5rem; }
.sb-more__toggle { background: none; border: 0; font: inherit; color: inherit; cursor: pointer; text-transform: uppercase; letter-spacing: 0.12em; font-weight: 600; font-size: 0.875rem; padding: 0.75rem 0; min-height: 44px; display: inline-block; }
.sb-more__toggle[hidden], .sb-more__extra[hidden] { display: none; }

/* Explore tiles: four rounded pictures, title under the image */
.sb-section--explore-tiles .sb-section__title { font-size: clamp(2rem, 4vw, 3rem); margin-bottom: 2.5rem; }
.sb-section--explore-tiles .sb-tile__link { border-radius: 8px; aspect-ratio: 3 / 4; }

/* Experiences: eyebrow and heading centred, rounded image */
.sb-section--experiences-accordion .sb-eyebrow, .sb-section--experiences-accordion .sb-section__title { text-align: center; }
.sb-section--experiences-accordion .sb-eyebrow { letter-spacing: 0.14em; font-weight: 600; color: var(--sb-color-ink); }
.sb-section--experiences-accordion img { border-radius: 8px; }

/* Where to go, large cards: big photo, full text, read more */
@media (min-width: 900px) {
  .sb-section--where-to-go .sb-where--large.is-map .sb-where__link { grid-template-columns: 1fr 1.05fr; min-height: 22rem; }
  .sb-section--where-to-go .sb-where--large.is-map { grid-template-columns: 1fr 1.08fr; gap: 3.5rem; }
  .sb-section--where-to-go .sb-where--large.is-map .sb-where__list { max-height: 46rem; gap: 2rem; }
  .sb-section--where-to-go .sb-where--large.is-map .sb-where__map { height: 46rem; }
  .sb-section--where-to-go .sb-where--large .sb-where__title { font-size: 1.75rem; }
  .sb-section--where-to-go .sb-where--large .sb-where__text { font-size: 0.9375rem; line-height: 1.55; }
  .sb-section--where-to-go .sb-where--large .sb-where__body { padding: 1.5rem; display: flex; flex-direction: column; gap: 0.5rem; }
}
.sb-where__more { display: block; margin-top: 0.75rem; text-transform: uppercase; letter-spacing: 0.12em; font-size: 0.8125rem; font-weight: 600; }
.sb-section--where-to-go .sb-where--large .sb-where__text { -webkit-line-clamp: unset; display: block; }

/* When to visit without the month grid: intro text, rows, promo */
.sb-wtv--promo .sb-section__sub { color: var(--sb-color-ink); font-size: 1.0625rem; line-height: 1.6; max-width: none; }
.sb-wtv--promo .sb-period__label { font-size: 1.625rem; }
.sb-wtv--promo .sb-period__months { color: var(--sb-color-ink); font-size: 1rem; }
.sb-wtv__promo { min-height: 34rem; }

/* Story promo variants */
.sb-section--story-promo .sb-story--media-left .sb-story__media { order: 0; }
.sb-story--centered { display: block; text-align: center; }
.sb-story--centered .sb-story__media { order: 0; max-width: 58rem; margin: 2rem auto 0; }
.sb-story--centered .sb-story__media img, .sb-story--centered .sb-story__media video, .sb-story--centered .sb-story__media iframe { aspect-ratio: 16 / 9; border-radius: 0; width: 100%; object-fit: cover; }
.sb-story--centered .sb-story__body { max-width: 58rem; margin-inline: auto; display: flex; flex-direction: column; }
.sb-story--centered .sb-story__body .sb-section__title { font-size: clamp(2rem, 4vw, 3rem); }
.sb-story--centered .sb-story__body .sb-section__title::after { content: ''; display: block; width: 4rem; height: 2px; background: var(--sb-color-highlight); margin: 1.5rem auto 0; }
.sb-story--centered .sb-story__body .sb-btn { align-self: center; }
.sb-story--centered .sb-story__body { order: -1; }
.sb-story--centered { display: flex; flex-direction: column; }
.sb-bg-charcoal .sb-story .sb-prose { color: var(--sb-ink-on-dark); }
.sb-bg-charcoal.sb-section--story-promo .sb-section__title { color: var(--sb-ink-on-dark); }

/* Review cards: a quote headline above the text */
.sb-quote__title { font-family: var(--sb-font-head); font-size: clamp(1.5rem, 2.6vw, 2rem); line-height: 1.25; margin: 0 0 1.25rem; }
.sb-quotes-photo .sb-quote__title { display: none; }
.sb-section--testimonial:not(:has(.sb-quotes-photo)) .sb-quote__rating { color: var(--sb-color-ink); font-size: 1.25rem; order: -1; margin-bottom: 0.5rem; }
.sb-section--testimonial:not(:has(.sb-quotes-photo)) .sb-quote__name { font-weight: 700; }

/* Logo strip */
.sb-section--logo-strip { padding-block: 2.5rem 3rem; }
.sb-logos__title { display: flex; align-items: center; gap: 1rem; font-family: var(--sb-font-head); font-weight: 400; font-size: 1.125rem; margin: 0 0 2rem; }
.sb-logos__title::before, .sb-logos__title::after { content: ''; flex: 1; height: 1px; background: currentColor; opacity: 0.5; }
.sb-logos { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.5rem 2rem; }
.sb-logos__item { flex: 1 1 8rem; display: flex; justify-content: center; }
.sb-logos__img { max-height: 3.5rem; width: auto; max-width: 11rem; object-fit: contain; }
.sb-bg-charcoal .sb-logos__img { filter: grayscale(1) brightness(1.6); }
.sb-page > .sb-scrollnav, .sb-page--destination .sb-scrollnav, .sb-page--crosspage .sb-scrollnav { width: 100vw; margin-left: calc(50% - 50vw); max-width: none; }
.sb-section--experiences-accordion .sb-accordion__summary { font-family: var(--sb-font-head); font-weight: 400; font-size: clamp(1.375rem, 2.2vw, 1.875rem); padding-block: 1.25rem; }
.sb-section--experiences-accordion .sb-accordion__item { border-bottom-color: var(--sb-color-line); }
@media (min-width: 900px) {
  /* The open experience's picture sits to the left of the list, as in a two-column feature */
  .sb-section--experiences-accordion .sb-accordion { position: relative; max-width: 64rem; margin-inline: auto; padding-left: calc(45% + 4rem); min-height: 32rem; }
  .sb-section--experiences-accordion .sb-accordion__panel:has(.sb-accordion__image) { grid-template-columns: 1fr; }
  .sb-section--experiences-accordion .sb-accordion__image { position: absolute; left: 0; top: 0; width: 45%; height: 100%; aspect-ratio: auto; border-radius: 8px; }
}

/* Centred gallery options: picture ratio and arrows on the sides */
.sb-gallery-ratio--4-3 .sb-gallery--centered img { aspect-ratio: 4 / 3; }
.sb-gallery-ratio--6-5 .sb-gallery--centered img { aspect-ratio: 6 / 5; }
.sb-carousel--side-arrows > .sb-carousel__nav { position: absolute; z-index: 5; inset: 50% 0 auto; transform: translateY(-50%); justify-content: space-between; max-width: none; margin: 0; padding-inline: 2.5rem; pointer-events: none; }
.sb-carousel--side-arrows > .sb-carousel__nav .sb-carousel__btn { pointer-events: auto; background: var(--sb-bg-white); border-color: var(--sb-on-media); color: var(--sb-color-ink); }
.sb-carousel--side-arrows > .sb-carousel__nav .sb-carousel__btn.swiper-button-disabled { opacity: 0.6; }

/* Touch: links in cards, lists and filters get a tap area of at least 44px (WCAG 2.5.5) without moving the text. */
@media (max-width: 767px), (pointer: coarse) {
  .sb-card__title a, .sb-acc-highlights a, .sb-filters__reset { display: inline-block; padding-block: 0.65rem; margin-block: -0.65rem; }
  .sb-link { display: inline-flex; align-items: center; min-height: 44px; }
  .sb-acc-highlights li { padding-block: 0.65rem; }
  .sb-filters__reset { margin-block: 0; }
}

/* Scroll navigation: centred when it fits, scrollable from the first item when it does not (justify-content: center would push the first items out of reach). */
.sb-scrollnav__list { justify-content: flex-start; }
.sb-scrollnav__list > :first-child { margin-left: auto; }
.sb-scrollnav__list > :last-child { margin-right: auto; }
@media (max-width: 767px) { .sb-scrollnav__list { gap: 1.25rem; } }
/* Trip pages: once the sticky trip bar with its Enquire button shows, the floating button would duplicate it. */
body:has(.sb-tripbar:not([hidden])) .sb-fab { display: none; }
/* Logo strip on phones: two per row instead of one tall column */
@media (max-width: 767px) { .sb-logos { justify-content: center; gap: 1.25rem 1rem; } .sb-logos__item { flex: 0 1 calc(50% - 0.5rem); } .sb-logos__img { max-width: 100%; max-height: 2.75rem; } }

/* ---- Planning wizard (full-screen dialog, one question per screen) ---- */
html.sb-wizard-open { overflow: hidden; }
.sb-wizard { position: fixed; inset: 0; width: 100%; max-width: none; height: 100%; max-height: none; margin: 0; padding: 0; border: 0; background: var(--sb-bg-paper); color: var(--sb-color-ink); font-family: var(--sb-font-body); overflow-y: auto; }
.sb-wizard::backdrop { background: rgba(35, 37, 31, 0.6); }
.sb-wizard__bar { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.75rem var(--sb-gutter); background: var(--sb-bg-paper); }
.sb-wizard__bar::after { content: ''; position: absolute; left: 0; bottom: 0; height: 3px; width: var(--sb-wz-progress, 0%); background: var(--sb-color-highlight); transition: width 0.3s ease; }
.sb-wizard__progress { margin: 0; font-size: 0.8125rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--sb-color-muted); }
.sb-wizard__close { width: 2.75rem; height: 2.75rem; border: 1px solid var(--sb-color-line); border-radius: 50%; background: var(--sb-bg-white); font-size: 1.5rem; line-height: 1; cursor: pointer; color: inherit; }
.sb-wizard__close:hover, .sb-wizard__close:focus-visible { border-color: var(--sb-color-ink); }
.sb-wizard__body { max-width: 62rem; margin: 0 auto; padding: clamp(2rem, 7vh, 5rem) var(--sb-gutter) 4rem; text-align: center; }
.sb-wizard__title { font-family: var(--sb-font-head); font-weight: 400; font-size: clamp(1.9rem, 4.5vw, 3.25rem); line-height: 1.12; margin: 0 0 1rem; outline: none; }
.sb-wizard__title em { font-style: italic; }
.sb-wz-hint { margin: 0 auto 2.5rem; max-width: 34rem; font-size: 1.0625rem; }
.sb-wz-error { color: var(--sb-color-error); min-height: 1.25rem; margin: 1rem 0 0; }
.sb-wz-nav { display: flex; justify-content: center; align-items: center; gap: 2rem; margin-top: 2.5rem; }
.sb-wz-next { border: 0; border-radius: 999px; padding: 0.95rem 1.6rem; min-height: 3rem; background: var(--sb-cta); color: var(--sb-color-ink); font: inherit; font-weight: 600; cursor: pointer; }
.sb-wz-next:disabled { opacity: 0.45; cursor: not-allowed; }
.sb-wz-next:not(:disabled):hover, .sb-wz-next:focus-visible { background: var(--sb-cta-hover); outline: 2px solid var(--sb-color-ink); outline-offset: 2px; }
.sb-wz-prev { border: 0; background: none; color: var(--sb-color-highlight-dark); font: inherit; cursor: pointer; padding: 0.75rem 0.5rem; min-height: 44px; }
.sb-wz-prev:hover, .sb-wz-prev:focus-visible { text-decoration: underline; }
/* Where */
.sb-wz-combo { position: relative; display: flex; max-width: 31rem; margin: 0 auto; }
.sb-wz-input { width: 100%; min-height: 3rem; padding: 0.75rem 1.1rem; border: 1px solid var(--sb-color-highlight); border-radius: 0; background: var(--sb-bg-white); font: inherit; color: inherit; }
.sb-wz-combo .sb-wz-input { border-radius: 999px 0 0 999px; }
.sb-wz-add { border: 0; border-radius: 0 999px 999px 0; padding: 0 1.4rem; background: var(--sb-cta); font: inherit; cursor: pointer; min-height: 3rem; }
.sb-wz-suggest { position: absolute; z-index: 3; top: calc(100% + 0.25rem); left: 0; right: 0; margin: 0; padding: 0.25rem 0; list-style: none; background: var(--sb-bg-white); border: 1px solid var(--sb-color-line); text-align: left; max-height: 16rem; overflow-y: auto; }
.sb-wz-suggest__item { padding: 0.7rem 1.1rem; cursor: pointer; }
.sb-wz-suggest__item:hover, .sb-wz-suggest__item[aria-selected="true"] { background: var(--sb-bg-sand); }
.sb-wz-tags { list-style: none; margin: 1.5rem auto 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 0.5rem; max-width: 40rem; }
.sb-wz-tag { display: inline-flex; align-items: center; gap: 0.25rem; padding: 0.35rem 0.35rem 0.35rem 0.9rem; border: 1px solid var(--sb-color-highlight); border-radius: 999px; background: var(--sb-bg-white); }
.sb-wz-tag__remove { width: 2rem; height: 2rem; border: 0; border-radius: 50%; background: transparent; font-size: 1.2rem; cursor: pointer; color: inherit; }
.sb-wz-tag__remove:hover, .sb-wz-tag__remove:focus-visible { background: var(--sb-bg-sand); }
/* Options: a native checkbox or radio, drawn as a gold ring, inside a bordered box */
.sb-wz-option { position: relative; display: inline-flex; }
.sb-wz-check { position: absolute; opacity: 0; width: 1px; height: 1px; }
.sb-wz-option label, .sb-wz-stop label { display: flex; align-items: center; gap: 0.75rem; min-height: 3rem; padding: 0.7rem 1.1rem; border: 1px solid var(--sb-color-highlight); background: transparent; cursor: pointer; text-align: left; line-height: 1.3; }
.sb-wz-option label::before { content: ''; flex: 0 0 1rem; width: 1rem; height: 1rem; border: 1px solid var(--sb-color-highlight); border-radius: 50%; background: var(--sb-bg-white); box-shadow: inset 0 0 0 3px #fff; }
.sb-wz-check:checked + label { background: var(--sb-bg-white); }
.sb-wz-check:checked + label::before { background: var(--sb-color-highlight); }
.sb-wz-check:focus-visible + label { outline: 2px solid var(--sb-color-ink); outline-offset: 2px; }
.sb-wz-check:disabled + label { opacity: 0.4; cursor: not-allowed; }
/* When */
.sb-wz-year { display: flex; justify-content: center; align-items: center; gap: 2rem; margin-bottom: 1.5rem; }
.sb-wz-year__btn { width: 2.75rem; height: 2.75rem; border: 0; background: none; color: var(--sb-color-highlight-dark); font-size: 1.75rem; cursor: pointer; }
.sb-wz-year__btn:disabled { opacity: 0.3; cursor: default; }
.sb-wz-year__label { min-width: 4rem; font-size: 1rem; }
.sb-wz-months { display: grid; grid-template-columns: repeat(4, minmax(0, 6rem)); justify-content: center; gap: 1rem 1.25rem; }
.sb-wz-option--month label { width: 100%; }
.sb-wz-option--flexible { margin-top: 1.5rem; }
.sb-wz-option--flexible label { border: 0; }
/* Who */
.sb-wz-list { display: flex; flex-direction: column; max-width: 20.5rem; margin: 0 auto; }
.sb-wz-option--row label { width: 100%; flex-direction: row-reverse; justify-content: space-between; margin-top: -1px; }
.sb-wz-option--row { display: flex; }
/* What appeals */
.sb-wz-wishes { display: flex; flex-wrap: wrap; justify-content: center; gap: 1.25rem; max-width: 52rem; margin: 0 auto; }
/* Budget: stops on a line */
.sb-wz-currency { width: auto !important; display: block; margin-inline: auto; min-height: 3rem; padding: 0.6rem 2.5rem 0.6rem 1.1rem; border: 1px solid var(--sb-color-highlight); background: var(--sb-bg-white); font: inherit; margin-bottom: 2.5rem; }
.sb-wz-scale { position: relative; display: flex; justify-content: space-between; max-width: 46rem; margin: 0 auto; }
.sb-wz-scale::before { content: ''; position: absolute; left: 1.5rem; right: 1.5rem; top: 0.55rem; height: 1px; background: var(--sb-color-highlight); }
.sb-wz-stop { position: relative; flex: 1 1 0; }
.sb-wz-stop label { flex-direction: column; gap: 0.6rem; border: 0; padding: 0; min-height: 44px; justify-content: flex-start; align-items: center; font-size: 0.875rem; color: var(--sb-color-muted); }
.sb-wz-stop label::before { content: ''; width: 1.1rem; height: 1.1rem; border: 1px solid var(--sb-color-highlight); border-radius: 50%; background: var(--sb-bg-paper); }
.sb-wz-stop .sb-wz-check:checked + label { color: var(--sb-color-ink); font-weight: 600; background: none; }
.sb-wz-stop .sb-wz-check:checked + label::before { background: var(--sb-color-highlight); box-shadow: inset 0 0 0 3px var(--sb-bg-paper); }
/* Contact */
.sb-wz-contact { display: grid; gap: 0.75rem; max-width: 39rem; margin: 2rem auto 0; text-align: left; }
.sb-wz-field { display: block; }
.sb-wz-field .iti { width: 100%; }
.sb-wz-field__error { display: block; color: var(--sb-color-error); font-size: 0.875rem; margin-top: 0.25rem; }
.sb-wz-field__error:empty { display: none; }
.sb-wz-consent { display: grid; grid-template-columns: auto 1fr; gap: 0.25rem 0.75rem; align-items: start; margin-top: 0.75rem; }
.sb-wz-consent .sb-wz-check { position: static; opacity: 1; width: 1.25rem; height: 1.25rem; margin-top: 0.2rem; accent-color: var(--sb-color-highlight); }
.sb-wz-consent .sb-wz-field__error { grid-column: 2; }
.sb-wz-done .sb-wz-hint { margin-bottom: 0; }
@media (max-width: 640px) {
  .sb-wz-months { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.75rem; }
  .sb-wz-wishes { flex-direction: column; align-items: stretch; gap: 0.75rem; }
  .sb-wz-wishes .sb-wz-option label { width: 100%; }
  .sb-wz-scale { flex-wrap: wrap; row-gap: 1.25rem; }
  .sb-wz-scale::before { display: none; }
  .sb-wz-stop { flex: 0 0 25%; }
  .sb-wz-nav { gap: 1rem; }
}
@media (prefers-reduced-motion: reduce) { .sb-wizard__bar::after { transition: none; } }

/* Phone country list inside the planning wizard (it opens in the dialog, above the steps) */
.sb-wizard .iti--container { z-index: 10; }
.sb-wizard .iti--fullscreen-popup.iti--container { position: fixed; inset: 0; padding: 1rem; background: rgba(35, 37, 31, 0.5); display: flex; align-items: flex-start; justify-content: center; }
.sb-wizard .iti--fullscreen-popup .iti__dropdown-content { width: 100%; max-height: calc(100% - 2rem); text-align: left; }
.sb-wizard .iti__search-input { min-height: 44px; padding: 0.5rem 0.75rem !important; }
.sb-wizard .iti__country { min-height: 44px; display: flex; align-items: center; }


/* ---- Typography (D38): the reference's scale, set in Instrument Serif and Figtree ---- */
.sb-page, .sb-wizard, .sb-enquiry { font-family: var(--sb-font-body); font-size: clamp(0.875rem, 0.8rem + 0.28vw, 1rem); line-height: 1.7; -webkit-font-smoothing: antialiased; }
.sb-page h1, .sb-page h2, .sb-page h3, .sb-page h4, .sb-hero__title, .sb-section__title, .sb-wizard__title, .sb-card__title, .sb-where__title, .sb-period__label,
.sb-accordion__summary, .sb-cta-bar__title, .sb-logos__title, .sb-quote__title, .sb-u-title, .sb-tile__title, .sb-person__name { font-family: var(--sb-font-head); font-weight: 400; letter-spacing: 0; }
/* Headings */
.sb-hero__title { font-size: var(--sb-fs-h1); line-height: 1.2; }
.sb-section__title, .sb-wizard__title, h2.sb-u-title, .sb-intro--split .sb-section__title, .sb-story--centered .sb-story__body .sb-section__title,
.sb-section--explore-tiles .sb-section__title { font-size: var(--sb-fs-h2); line-height: 1.3; }
.sb-section__title--xl { font-size: var(--sb-fs-h1); }
.sb-section--experiences-accordion .sb-accordion__summary, .sb-cta-bar__title, h3.sb-u-title { font-size: var(--sb-fs-h3); line-height: 1.27; }
.sb-card__title, .sb-wtv--promo .sb-period__label, .sb-bg-charcoal .sb-card--trip .sb-card__title, .sb-card--guide .sb-card__title, .sb-tile__title,
.sb-section--where-to-go .sb-where--large .sb-where__title { font-size: var(--sb-fs-card); line-height: 1.15; }
.sb-wtv__promo-title, .sb-quote__title { font-size: clamp(1.5rem, 1.1rem + 1.7vw, 2.25rem); line-height: 1.24; }
.sb-logos__title { font-size: clamp(0.75rem, 0.6rem + 0.6vw, 1.125rem); }
.sb-person__name, .sb-quotes-photo .sb-quote__name { font-family: var(--sb-font-head); font-size: 1.0625rem; line-height: 1.3; }
.sb-hero__title em, .sb-wizard__title em, .sb-plan-banner em, .sb-section__title em { font-family: var(--sb-font-head); font-style: italic; }
/* Running text */
.sb-page .sb-prose, .sb-page .sb-section__sub, .sb-card-grid__sub, .sb-usp__text, .sb-wz-hint, .sb-wtv--promo .sb-period__months, .sb-cta-bar p,
.sb-story .sb-prose, .sb-quote__text, .sb-where__text, .sb-plan-banner__body p { font-size: var(--sb-fs-text); line-height: 1.47; }
.sb-hero__subtitle { font-size: var(--sb-fs-lead); line-height: 1.3; }
.sb-card__text { font-size: 0.875rem; line-height: 1.7; }
/* Small capitals labels: eyebrow, overlines, "read more" links, scroll navigation */
.sb-eyebrow, .sb-section--experiences-accordion .sb-eyebrow { font-family: var(--sb-font-body); font-size: 0.875rem; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase; line-height: 1.2; }
.sb-card--accommodation .sb-card__meta { font-size: 0.8125rem; font-weight: 500; letter-spacing: 0.13em; }
.sb-bg-charcoal .sb-card--trip .sb-card__meta span:first-child { font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.21em; }
.sb-card--accommodation .sb-link, .sb-card--guide .sb-link, .sb-where__more, .sb-more__toggle, .sb-wtv__promo-more { font-size: var(--sb-fs-label); font-weight: 500; letter-spacing: 0.11em; text-transform: uppercase; }
.sb-scrollnav__link { font-size: 0.875rem; letter-spacing: 0.18em; }
.sb-badge { font-size: 0.6875rem; letter-spacing: 0.12em; font-weight: 500; }
/* Buttons and form controls use the text face */
.sb-page .sb-btn, .sb-wz-next, .sb-wz-prev, .sb-wz-add, .sb-wz-input, .sb-wz-option label, .sb-enquiry input, .sb-enquiry select, .sb-enquiry textarea { font-family: var(--sb-font-body); }
.sb-page .sb-btn, .sb-wz-next { font-size: 0.9375rem; font-weight: 500; letter-spacing: 0; }
/* Buttons keep a 44 px tap height with the new type size; the label stays centred. */
.sb-page .sb-btn, .sb-wizard .sb-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; box-sizing: border-box; }
.sb-page .sb-btn.sb-u-align--left, .sb-page .sb-btn.sb-u-align--center, .sb-page .sb-btn.sb-u-align--right { display: flex; width: fit-content; }

/* ---- Fine-tuning against the reference faces (D39): measured widths, cap heights and stroke weight ---- */
/* Text: Figtree 475 has the stroke weight of Circular Book (ink coverage 0.143 v 0.144) and the same set width; Medium -> 600, Bold -> 680. */
.sb-page, .sb-wizard, .sb-enquiry { font-weight: 475; }
.sb-page strong, .sb-page b, .sb-wizard strong, .sb-quote__name { font-weight: 680; }
.sb-page .sb-btn, .sb-wz-next, .sb-wz-add, .sb-wz-option label, .sb-wz-input, .sb-scrollnav__link { font-weight: 475; }
.sb-eyebrow, .sb-section--experiences-accordion .sb-eyebrow, .sb-card--accommodation .sb-card__meta, .sb-card--accommodation .sb-link, .sb-card--guide .sb-link,
.sb-where__more, .sb-more__toggle, .sb-wtv__promo-more, .sb-badge { font-weight: 600; }
.sb-bg-charcoal .sb-card--trip .sb-card__meta span:first-child { font-weight: 680; }
/* Headings: Instrument Serif is set 1.4% smaller (size-adjust, to match cap height) and 2.7% of an em wider per letter, which brings
   heading lines to New Spirit Condensed's length; a 0.02 em hairline gives Regular's colour (the hero matches Light without it). */
.sb-page h2, .sb-page h3, .sb-page h4, .sb-section__title, .sb-wizard__title, .sb-card__title, .sb-where__title, .sb-period__label, .sb-accordion__summary,
.sb-cta-bar__title, .sb-logos__title, .sb-quote__title, .sb-u-title, .sb-tile__title, .sb-wtv__promo-title, .sb-person__name { letter-spacing: 0.027em; -webkit-text-stroke: 0.02em currentColor; }
.sb-page .sb-hero__title, .sb-hero .sb-hero__title { letter-spacing: 0.027em; -webkit-text-stroke: 0; }
.sb-hero__title em, .sb-wizard__title em, .sb-section__title em, .sb-plan-banner em { letter-spacing: 0.012em; }

/* Photo credit (Unsplash photos) in the hero's corner */
.sb-hero__credit { position: absolute; z-index: 2; right: var(--sb-gutter); bottom: 0.5rem; margin: 0; font-size: 0.6875rem; color: rgba(255, 255, 255, 0.8); text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5); }
.sb-hero__credit a { color: inherit; text-decoration: underline; }

/* Trip page, continued (D43) */
.sb-trip-intro__text { max-width: 44rem; text-align: left; font-family: var(--sb-font-head); font-size: clamp(1.25rem, 2.2vw, 1.75rem); line-height: 1.35; }
.sb-trip-intro__text p { font-size: inherit; line-height: inherit; }
.sb-trip-highlights { background: #eeeeec; }
.sb-trip-highlights__head { max-width: 54rem; margin-bottom: 2rem; }
.sb-trip-highlights__title { font-family: var(--sb-font-head); font-weight: 400; font-size: var(--sb-fs-h3); margin: 0 0 1rem; }
.sb-trip-highlights__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0 2rem; grid-template-columns: 1fr; border-top: 1px solid var(--sb-color-line); }
@media (min-width: 768px) { .sb-trip-highlights__list { grid-template-columns: 1fr 1fr; } }
.sb-trip-highlights__list li { position: relative; padding: 0.75rem 0 0.75rem 1.25rem; border-bottom: 1px solid var(--sb-color-line); font-size: 0.875rem; }
.sb-trip-highlights__list li::before { content: ""; position: absolute; left: 0; top: 1.15rem; width: 0.45rem; height: 0.45rem; border: 1px solid var(--sb-color-highlight); border-radius: 50%; }
.sb-trip-highlights .sb-figure { position: relative; margin: 0; }
.sb-trip-highlights .sb-figure figcaption { position: absolute; left: 0.75rem; bottom: 0.75rem; color: var(--sb-on-media); font-size: 0.8125rem; text-shadow: 0 1px 3px rgba(0, 0, 0, 0.6); }
.sb-trip-inclusions .sb-ticks li { border-bottom: 1px solid var(--sb-color-line); padding-block: 0.6rem; }
.sb-trip-inclusions__media img { aspect-ratio: 4 / 3; }
.sb-cta-strip .sb-cta-bar { background: var(--sb-bg-charcoal); color: var(--sb-ink-on-dark); border-radius: 6px; padding: 2rem clamp(1.5rem, 4vw, 2.5rem); }
.sb-itinerary__head { text-align: center; max-width: 40rem; margin-bottom: 2.5rem; }
.sb-itinerary__body { border-top: 1px solid var(--sb-color-line); }
@media (min-width: 1000px) {
  .sb-itinerary__body--map { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .sb-itinerary__map { position: relative; }
  /* The map library's own CSS (.maplibregl-map { position: relative }) loads later: this outranks it, so the map stays in view (D59). */
  .sb-itinerary__map > .sb-route, .sb-itinerary__map > .sb-route.maplibregl-map { position: sticky; top: 0; height: 100vh; }
}
@media (max-width: 999px) { .sb-itinerary__map { display: none; } }
.sb-itinerary__stops { position: relative; padding: 2rem var(--sb-gutter, 1rem) 2rem calc(var(--sb-gutter, 1rem) + 2.5rem); max-width: 52rem; }
@media (min-width: 1000px) { .sb-itinerary__body:not(.sb-itinerary__body--map) .sb-itinerary__stops { margin-inline: auto; } }
.sb-itinerary__stops::before { content: ""; position: absolute; top: 2rem; bottom: 2rem; left: calc(var(--sb-gutter, 1rem) + 0.5rem); border-left: 1px dashed var(--sb-color-ink); opacity: 0.5; }
.sb-itinerary .sb-segment { position: relative; margin-block: 0 4rem; scroll-margin-top: 2rem; }
.sb-itinerary .sb-segment::before { content: ""; position: absolute; left: -2.3rem; top: 0.35rem; width: 0.45rem; height: 0.45rem; border-radius: 50%; background: var(--sb-color-ink); }
.sb-itinerary .sb-segment__range { color: var(--sb-color-highlight); letter-spacing: 0; text-transform: none; font-weight: 400; font-size: 0.8125rem; margin-bottom: 1rem; }
.sb-segment__head { display: grid; gap: 1rem 2rem; grid-template-columns: 1fr; margin-bottom: 2rem; }
@media (min-width: 768px) { .sb-segment__head { grid-template-columns: 2fr 3fr; } }
.sb-itinerary .sb-segment__title { font-size: var(--sb-fs-h3); line-height: 1.2; margin: 0; }
.sb-itinerary .sb-segment__text { margin: 0; font-size: 0.875rem; }
.sb-itinerary .sb-stay { text-align: center; }
.sb-itinerary .sb-stay__title { font-family: var(--sb-font-head); font-weight: 400; font-size: var(--sb-fs-h3); }
.sb-page--trip > .sb-section, .sb-page--trip > .sb-strip, .sb-page--trip > .sb-trip-hero { width: 100vw; margin-left: calc(50% - 50vw); max-width: none; }
.sb-page--trip .sb-trip-intro__text, .sb-page--trip .sb-trip-intro__text p { font-family: var(--sb-font-head); font-size: clamp(1.25rem, 2.2vw, 1.75rem); line-height: 1.35; }

/* Guide page as an article (D43) */
.sb-guide-head { text-align: center; padding-block: 2rem 2.5rem; max-width: 48rem; }
.sb-guide-head .sb-breadcrumbs__list { justify-content: center; font-size: 0.8125rem; margin-bottom: 2rem; }
.sb-guide-head__read { margin: 0 0 1rem; font-size: 0.8125rem; color: var(--sb-color-highlight); }
.sb-guide-head__title { margin: 0; font-family: var(--sb-font-head); font-weight: 400; font-size: var(--sb-fs-h1); line-height: 1.12; }
.sb-guide-cover { margin-block: 0 4rem; }
.sb-guide-cover img { width: 100%; aspect-ratio: 16 / 10; max-height: 40rem; object-fit: cover; display: block; }
.sb-guide-intro { width: min(100% - 2 * var(--sb-gutter, 1rem), 36rem); margin: 0 auto 3rem; }
.sb-guide-toc { background: var(--sb-bg-paper); margin-bottom: 3.5rem; }
.sb-guide-toc__summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; padding: 1.25rem 1rem; font-weight: 600; font-size: 0.875rem; }
.sb-guide-toc__summary::-webkit-details-marker { display: none; }
.sb-guide-toc__summary::after { content: ""; width: 0.55rem; height: 0.55rem; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; transform: rotate(45deg); opacity: 0.5; }
.sb-guide-toc[open] .sb-guide-toc__summary::after { transform: rotate(-135deg); }
.sb-guide-toc__list { margin: 0; padding: 0 1rem 1.25rem 2.25rem; display: grid; gap: 0.5rem; font-size: 0.875rem; }
.sb-guide-toc__list a { color: inherit; }
.sb-guide-lead { font-family: var(--sb-font-head); font-size: clamp(1.25rem, 2.2vw, 1.625rem); line-height: 1.35; margin: 0 0 2.5rem; }
.sb-guide-author { display: flex; align-items: center; gap: 0.75rem 1rem; flex-wrap: wrap; padding-block: 1rem; border-block: 1px solid var(--sb-color-line); }
.sb-guide-author__img { width: 3rem; height: 3rem; border-radius: 50%; object-fit: cover; }
.sb-guide-author__who { display: grid; font-size: 0.8125rem; }
.sb-guide-author__who a { color: inherit; text-decoration: none; }
.sb-guide-author__date { color: var(--sb-color-highlight); font-size: 0.8125rem; }
.sb-guide-author .sb-guide-byline { flex-basis: 100%; margin: 0; font-size: 0.75rem; color: var(--sb-color-muted); order: 3; }
.sb-guide-share { margin-left: auto; background: none; border: 0; font: inherit; font-size: 0.8125rem; cursor: pointer; min-height: 44px; color: inherit; }
.sb-guide-body .sb-section > .sb-container { max-width: 36rem; }
.sb-guide-body .sb-section { padding-block: 1.5rem; }
.sb-guide-body h2 { font-family: var(--sb-font-head); font-weight: 400; font-size: var(--sb-fs-h3); scroll-margin-top: 2rem; }
.sb-guide-body h3 { font-family: var(--sb-font-head); font-weight: 400; }
.sb-guide-body p, .sb-guide-body li { font-size: 0.9375rem; }
/* Article parts of imported guides (D49): pictures, photo pairs, expert insight, inline cards, call to action. */
.sb-guide-body .sb-lead { font-family: var(--sb-font-head); font-size: 1.25rem; line-height: 1.5; }
.sb-guide-fig { margin: 1.5rem 0; }
.sb-guide-fig img, .sb-guide-pair img { width: 100%; height: auto; display: block; border-radius: 4px; }
.sb-guide-fig figcaption, .sb-guide-pair figcaption { font-size: 0.8125rem; color: var(--sb-color-muted); padding-top: 0.5rem; }
.sb-guide-fig--wide { width: min(64rem, 100vw - 2rem); margin-left: 50%; transform: translateX(-50%); }
.sb-guide-pair { margin: 1.5rem 0; display: grid; gap: 0.75rem; grid-template-columns: 1fr 1fr; }
.sb-guide-pair--3 { grid-template-columns: repeat(3, 1fr); }
.sb-guide-pair img { aspect-ratio: 4 / 5; object-fit: cover; }
.sb-guide-pair figcaption { grid-column: 1 / -1; }
.sb-guide-insight { margin: 2rem 0; padding: 1.5rem; background: var(--sb-bg-sand); border-left: 3px solid var(--sb-color-highlight); }
.sb-guide-insight__label { text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.75rem; margin-top: 0; }
.sb-guide-insight__by { font-style: italic; }
.sb-guide-cards { list-style: none; margin: 1.5rem 0; padding: 0; display: grid; gap: 0.75rem; }
.sb-guide-cards a { display: flex; gap: 1rem; align-items: center; text-decoration: none; color: inherit; border: 1px solid rgba(0, 0, 0, 0.1); border-radius: 4px; overflow: hidden; min-height: 44px; }
.sb-guide-cards img { width: 6rem; height: 6rem; object-fit: cover; flex: none; }
.sb-guide-cards span { display: grid; gap: 0.25rem; padding: 0.5rem 1rem 0.5rem 0; }
.sb-guide-cards small { color: var(--sb-color-muted); }
.sb-guide-when { text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.75rem; color: var(--sb-color-muted); }
.sb-guide-cta { margin: 2rem 0; padding: 1.5rem; text-align: center; background: var(--sb-bg-sand); }
@media (max-width: 599px) { .sb-guide-pair--3 { grid-template-columns: 1fr 1fr; } }

/* Destinations index (D43) */
.sb-page--destinations > .sb-section { width: 100vw; margin-left: calc(50% - 50vw); max-width: none; }
.sb-dest-intro { display: grid; gap: 1.5rem 4rem; grid-template-columns: 1fr; align-items: start; }
@media (min-width: 900px) { .sb-dest-intro { grid-template-columns: 1fr 1fr; } }
.sb-dest-intro .sb-section__title { text-align: left; margin: 0; }
.sb-dest-intro p { margin: 0; font-size: 0.9375rem; }
.sb-dest-regions { background: #eeeeec; }
.sb-dest-regions__grid { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 14rem), 1fr)); }
.sb-dest-region__link { display: flex; flex-direction: column; height: 100%; background: var(--sb-bg-white); border-radius: 6px; overflow: hidden; text-decoration: none; color: inherit; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06); }
.sb-dest-region__media { display: block; aspect-ratio: 3 / 2; background: var(--sb-bg-sand); overflow: hidden; }
.sb-dest-region__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.4s ease; }
.sb-dest-region__link:hover img, .sb-dest-region__link:focus-visible img { transform: scale(1.04); }
.sb-dest-region__title { font-family: var(--sb-font-head); font-size: var(--sb-fs-card); padding: 1rem 1rem 0.25rem; }
.sb-dest-region__more { padding: 0 1rem 1rem; font-size: var(--sb-fs-label, 0.75rem); letter-spacing: 0.12em; text-transform: uppercase; margin-top: auto; }
.sb-region-block__title { text-align: left; }
.sb-region-block__title a { color: inherit; text-decoration: none; }
.sb-page--guides > .sb-section { width: 100vw; margin-left: calc(50% - 50vw); max-width: none; }
.sb-guides-featured { background: #eeeeec; }
.sb-guides-featured .sb-section__title, .sb-guides-featured .sb-section__sub { text-align: left; }
.sb-guides-all { padding-block: 4rem 2rem; }
.sb-guides-all > .sb-section__title, .sb-guides-all > .sb-section__sub { text-align: center; }
.sb-where-search { width: 100%; max-width: 22rem; }
.sb-where-results:empty { display: none; }
@media (max-width: 767px) {
  .sb-guide-author__who a, .sb-guide-toc__list a { display: inline-block; padding-block: 0.7rem; margin-block: -0.7rem; }
  .sb-guide-toc__list { gap: 1.25rem; }
}

/* Maps (D44): MapLibre with the shared style in mapstyle.js; our own pins in the reference's colours */
.sb-pin { display: block; width: 20px; height: 28px; padding: 0; border: 0; background: none; color: var(--sb-map-pin); cursor: pointer; transition: transform 0.15s ease, color 0.15s ease; transform-origin: 50% 100%; }
.sb-pin svg { display: block; filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.15)); }
.sb-pin.is-active, .sb-pin:hover, .sb-pin:focus-visible { transform: scale(1.2); }
.sb-pin.is-selected { color: var(--sb-color-ink); transform: scale(1.25); }
.sb-pin:focus-visible { outline: 2px solid var(--sb-color-ink); outline-offset: 2px; }
.sb-route__stop { display: block; width: 9px; height: 9px; padding: 0; border: 0; border-radius: 50%; background: var(--sb-color-ink); cursor: pointer; box-shadow: 0 0 0 0 transparent; transition: box-shadow 0.2s ease; }
.sb-route__stop.is-active { box-shadow: 0 0 0 5px var(--sb-bg-white), 0 0 0 6px var(--sb-color-highlight); }
.sb-route__stop:focus-visible { outline: 2px solid var(--sb-color-ink); outline-offset: 3px; }
.sb-map-popup .maplibregl-popup-content { padding: 0.6rem 1.75rem 0.6rem 0.9rem; border-radius: 4px; font-family: var(--sb-font-body); font-size: 0.875rem; box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15); }
.sb-map-popup .maplibregl-popup-content a { color: var(--sb-color-ink); font-family: var(--sb-font-head); font-size: 1.0625rem; }
.sb-map-popup .maplibregl-popup-close-button { width: 1.75rem; height: 1.75rem; font-size: 1.1rem; }
.sb-where__map .maplibregl-ctrl-group, .sb-route .maplibregl-ctrl-group { border-radius: 2px; box-shadow: none; border: 1px solid var(--sb-color-line); }
.sb-where__map .maplibregl-ctrl-attrib, .sb-route .maplibregl-ctrl-attrib { font-size: 0.6875rem; }

/* Banner video with its poster picture; visitors who prefer less motion keep the picture (D48) */
.sb-hero__poster { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
@media (prefers-reduced-motion: reduce) { .sb-hero__video { display: none; } }
@media (min-width: 768px) {
  .sb-page--destinations > .sb-hero { min-height: 615px; }
  .sb-page--guides > .sb-hero { min-height: 446px; }
}

/* Explore tiles as white cards: picture on top, then the title and "Read more" (D48) */
.sb-section--explore-tiles .sb-tiles { gap: 1.25rem; }
.sb-section--explore-tiles .sb-tile__link { display: flex; flex-direction: column; height: 100%; background: var(--sb-bg-white); border-radius: 6px; overflow: hidden; color: var(--sb-color-ink); text-decoration: none; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06); aspect-ratio: auto; }
.sb-section--explore-tiles .sb-tile__img, .sb-section--explore-tiles .sb-tile__link > .sb-card__placeholder { position: static; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; display: block; }
.sb-section--explore-tiles .sb-tile__title { position: static; padding: 1rem 1rem 0.35rem; background: none; color: inherit; font-size: var(--sb-fs-card); }
.sb-section--explore-tiles .sb-tile__more { padding: 0 1rem 1rem; font-size: var(--sb-fs-label, 0.75rem); letter-spacing: 0.12em; text-transform: uppercase; margin-top: auto; }
.sb-section--explore-tiles .sb-section__title { text-align: left; }

/* The page starts with our banner: no template gap between the site header and it (Helix pads its main body) (D48). */
#sp-main-body:has(> .container .sb-page > .sb-hero:first-child), #sp-main-body:has(.sb-page > .sb-hero:first-child), #sp-main-body:has(.sb-page > .sb-acc-hero:first-child),
#sp-main-body:has(.sb-page > .sb-trip-hero:first-child) { padding-top: 0; }

/* ---- Team page in the reference's design (D55) ---- */
.sb-page--team { padding-bottom: 4rem; }
/* The two banners run edge to edge under the header, like the other page banners (D48). */
.sb-team-hero, .sb-reviews-hero { width: 100vw; margin-left: calc(50% - 50vw); }
#sp-main-body:has(.sb-page > .sb-team-hero:first-child), #sp-main-body:has(.sb-page > .sb-reviews-hero:first-child) { padding-top: 0; }
.sb-team-hero { position: relative; display: grid; place-items: center; min-height: 690px; padding: 6rem 1.5rem; background: var(--sb-bg-charcoal); overflow: hidden; }
.sb-team-hero__title { position: relative; z-index: 1; margin: 0; font-family: var(--sb-font-head); font-weight: 400; font-size: clamp(2.5rem, 5vw, 4rem); color: var(--sb-on-media); text-align: center; }
.sb-team-hero__photo { position: absolute; width: clamp(80px, 9vw, 130px); aspect-ratio: 4 / 3; overflow: hidden; box-shadow: 0 6px 18px rgba(0, 0, 0, 0.35); }
.sb-team-hero__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sb-team-hero__photo--1 { left: 38%; top: 2%; } .sb-team-hero__photo--2 { left: 73%; top: 3%; aspect-ratio: 1; }
.sb-team-hero__photo--3 { left: 10%; top: 30%; } .sb-team-hero__photo--4 { left: 78%; top: 30%; aspect-ratio: 3 / 4; }
.sb-team-hero__photo--5 { left: 0; top: 66%; } .sb-team-hero__photo--6 { left: 25%; top: 78%; aspect-ratio: 1; }
.sb-team-hero__photo--7 { left: 59%; top: 68%; } .sb-team-hero__photo--8 { left: 89%; top: 74%; }
.sb-team-hero__photo--9 { left: 22%; top: 8%; aspect-ratio: 1; } .sb-team-hero__photo--10 { left: 92%; top: 14%; }
.sb-team-hero__photo--11 { left: 44%; top: 84%; } .sb-team-hero__photo--12 { left: 4%; top: 6%; }
.sb-team { max-width: 1080px; }
.sb-team-filter { display: flex; flex-wrap: wrap; gap: 0.75rem; margin: 2.5rem 0 1.5rem; }
.sb-team-filter[hidden] { display: none; }
/* Helix styles every select and text field (select:not(.form-select):not(.form-control)); these selectors outrank it. */
.sb-page .sb-team-filter select.sb-team-filter__select, .sb-page .sb-team-filter input.sb-team-filter__search { display: block; font: inherit; font-size: 0.875rem; min-height: 44px; width: min(100%, 290px); padding: 0 0.9rem; border: 1px solid #c9c6bd; border-radius: 4px; background: var(--sb-bg-white); color: var(--sb-color-ink); }
.sb-people--cards { gap: 1.5rem; }
@media (min-width: 900px) { .sb-people--cards { grid-template-columns: repeat(4, 1fr); } }
.sb-people--cards .sb-person[hidden] { display: none; }
.sb-people--cards .sb-person__link { height: 100%; padding: 1rem 1rem 1.75rem; background: var(--sb-bg-white); box-shadow: 0 2px 12px rgba(0, 0, 0, 0.12); transition: box-shadow 0.2s; }
.sb-people--cards .sb-person__link:hover, .sb-people--cards .sb-person__link:focus-visible { box-shadow: 0 6px 22px rgba(0, 0, 0, 0.2); }
.sb-people--cards .sb-person__photo { width: 92%; margin: 0 auto 1.5rem; background: #ececec; }
.sb-people--cards .sb-person__role { color: var(--sb-color-highlight-dark); font-size: 0.75rem; letter-spacing: 0.02em; margin-bottom: 0.4rem; }
.sb-people--cards .sb-person__name { font-size: 1.5rem; line-height: 1.2; }
@media (max-width: 599px) { .sb-team-hero { min-height: 420px; } .sb-team-hero__photo:nth-of-type(n+7) { display: none; } }

/* ---- Testimonials page in the reference's design (D55) ---- */
.sb-reviews-hero { position: relative; display: grid; place-items: center; min-height: 550px; padding: 5rem 0; background: var(--sb-bg-charcoal); color: var(--sb-on-media); text-align: center; overflow: hidden; }
.sb-reviews-hero__media { position: absolute; inset: 0; }
.sb-reviews-hero__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sb-reviews-hero--photo::before { content: ""; position: absolute; inset: 0; z-index: 1; background: rgba(20, 20, 18, 0.55); }
.sb-reviews-hero__inner { position: relative; z-index: 2; display: grid; justify-items: center; gap: 0.75rem; }
.sb-reviews-hero__title { margin: 0 0 0.5rem; font-family: var(--sb-font-head); font-weight: 400; font-size: clamp(2.5rem, 5vw, 4rem); color: var(--sb-on-media); }
.sb-reviews-hero__score { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0.6rem; margin: 0; font-size: 1.125rem; }
.sb-reviews-hero__label { font-family: var(--sb-font-head); font-size: 1.75rem; }
.sb-reviews-hero__count { margin: 0; font-size: 0.875rem; }
.sb-reviews-hero__btn { margin-top: 0.5rem; background: var(--sb-color-highlight); color: var(--sppb-topbar-text-color, var(--sb-color-ink)); border-radius: 60px; }
.sb-review-stars { display: inline-flex; gap: 2px; }
.sb-review-stars__star { width: 22px; height: 22px; background: #dcdce6; position: relative; }
.sb-review-stars__star.is-on { background: #00b67a; }
.sb-review-stars__star::after { content: ""; position: absolute; inset: 3px; background: var(--sb-bg-white); clip-path: polygon(50% 4%, 61% 36%, 96% 37%, 68% 58%, 78% 92%, 50% 72%, 22% 92%, 32% 58%, 4% 37%, 39% 36%); }
.sb-reviews { padding-bottom: 4rem; }
.sb-reviews__controls { display: flex; flex-wrap: wrap; gap: 1.5rem; margin: 2.5rem 0 1.5rem; }
.sb-reviews__controls[hidden] { display: none; }
.sb-reviews__control { display: flex; align-items: center; gap: 0.75rem; font-size: 0.875rem; white-space: nowrap; }
.sb-page .sb-reviews__controls .sb-reviews__control select { display: block; width: auto; font: inherit; min-height: 44px; min-width: 200px; padding: 0 1rem; border: 1px solid #c9c6bd; border-radius: 60px; background: var(--sb-bg-white); color: var(--sb-color-ink); }
.sb-review-wall { columns: 1; column-gap: 1.75rem; }
@media (min-width: 768px) { .sb-review-wall { columns: 2; } }
@media (min-width: 1100px) { .sb-review-wall { columns: 3; } }
.sb-review { break-inside: avoid; display: grid; gap: 0.6rem; margin: 0 0 1.75rem; padding: 1.75rem 1.75rem 1.5rem; background: var(--sb-bg-white); box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1); }
.sb-review[hidden] { display: none; }
.sb-review__verified { margin: 0; font-size: 0.75rem; color: var(--sb-color-muted); }
.sb-review__verified::before { content: "\2713"; display: inline-grid; place-items: center; width: 1rem; height: 1rem; margin-right: 0.4rem; border-radius: 50%; background: var(--sb-bg-grey); color: var(--sb-ink-on-dark); font-size: 0.625rem; }
.sb-review__title { margin: 0.4rem 0 0; font-family: var(--sb-font-head); font-weight: 400; font-size: 1.625rem; line-height: 1.2; }
.sb-review__text { margin: 0; font-size: 0.9375rem; line-height: 1.6; white-space: pre-line; }
.sb-review__author { margin: 0.4rem 0 0; font-size: 0.8125rem; color: var(--sb-color-highlight-dark); }

/* ---- Planning wizard on the Start Planning page and in the reference's details (D56) ---- */
.sb-wizard--page { position: static; inset: auto; height: auto; min-height: 540px; overflow: visible; background: var(--sb-bg-paper); }
.sb-wizard--page .sb-wizard__body { padding: 76px var(--sb-gutter) 120px; }
.sb-page--enquiry { width: 100vw; margin-left: calc(50% - 50vw); }
#sp-main-body:has(.sb-page--enquiry) { padding-top: 0; padding-bottom: 0; }
.sb-wizard .sb-wizard__title { font-size: clamp(2rem, 4vw, 3.25rem); }
/* Helix styles every text field and select (input[type=text]:not(.form-control), select:not(.form-select):not(.form-control)); these win. */
.sb-wizard .sb-wizard__body input.sb-wz-input { min-height: 48px; height: 48px; padding: 0 20px; border: 1px solid var(--sb-color-highlight); border-radius: 0; background: var(--sb-bg-white); box-shadow: none; font: inherit; font-size: 0.9375rem; color: var(--sb-color-ink); }
.sb-wizard .sb-wizard__body .sb-wz-combo input.sb-wz-input { border-radius: 60px 0 0 60px; }
.sb-wizard .sb-wizard__body .sb-wz-contact input.sb-wz-input { height: 50px; }
.sb-wizard .sb-wizard__body input.sb-wz-input:focus, .sb-wizard .sb-wizard__body input.sb-wz-input:focus-visible { border-color: var(--sb-color-highlight-dark); outline: 1px solid var(--sb-color-highlight-dark); outline-offset: -2px; box-shadow: none; }
.sb-wizard .sb-wz-add { min-height: 48px; padding: 0 1.4rem; background: var(--sb-cta); }
.sb-wizard .sb-wz-tag { padding: 14px 20px; gap: 0.75rem; border-radius: 0; background: transparent; font-size: 0.875rem; }
.sb-wizard .sb-wz-tag__remove { display: inline-grid; place-items: center; width: 44px; height: 44px; margin: -12px -14px -12px -8px; padding: 0; border-radius: 0; color: var(--sb-color-highlight); font-size: 1.4rem; font-weight: 200; line-height: 1; }
.sb-wz-currency-box { position: relative; display: inline-block; margin: 0 auto 3rem; }
.sb-wz-currency-box::after { content: ""; position: absolute; right: 1.2rem; top: 50%; width: 0.6rem; height: 0.6rem; margin-top: -0.45rem; border: solid var(--sb-bg-grey); border-width: 0 1px 1px 0; transform: rotate(45deg); pointer-events: none; }
.sb-wizard .sb-wizard__body select.sb-wz-currency { display: block; margin: 0; appearance: none; -webkit-appearance: none; width: auto !important; min-width: 135px; height: 52px; padding: 0 3rem 0 1.2rem !important; border: 1px solid #c9c6bd; border-radius: 0; background: var(--sb-bg-white); font: inherit; font-size: 0.9375rem; color: var(--sb-color-ink); }
.sb-wz-budget { text-align: center; }
.sb-wz-stop label { color: var(--sb-bg-grey); font-size: 0.8125rem; }
/* Consents: a round marker, as on the reference. */
.sb-wizard .sb-wz-consent .sb-wz-check { appearance: none; -webkit-appearance: none; width: 16px; height: 16px; margin-top: 0.3rem; border: 1px solid var(--sb-color-highlight); border-radius: 50%; background: var(--sb-bg-white); cursor: pointer; }
.sb-wizard .sb-wz-consent .sb-wz-check:checked { background: radial-gradient(circle, var(--sb-color-highlight) 0 4px, var(--sb-ink-on-dark) 5px); }
.sb-wizard .sb-wz-consent .sb-wz-check:focus-visible { outline: 2px solid var(--sb-color-ink); outline-offset: 2px; }
.sb-wz-consent label { font-size: 0.9375rem; line-height: 1.75; cursor: pointer; }
.sb-wz-consent label a { color: inherit; text-decoration: underline; }
.sb-wz-contact .sb-wz-consent:first-of-type { margin-top: 2rem; }

/* The wizard as a dark band within a page (trip pages, D56). */
.sb-wizard--inline { min-height: 0; background: var(--sb-bg-charcoal); color: var(--sb-ink-on-dark); }
.sb-wizard--inline .sb-wizard__body { padding: 120px var(--sb-gutter) 108px; }
.sb-wizard--inline .sb-wizard__title, .sb-wizard--inline .sb-wz-hint { color: var(--sb-ink-on-dark); }
.sb-wizard--inline .sb-wz-tag, .sb-wizard--inline .sb-wz-option label, .sb-wizard--inline .sb-wz-consent label, .sb-wizard--inline .sb-wz-year__label { color: var(--sb-ink-on-dark); }
.sb-wizard--inline .sb-wz-option label, .sb-wizard--inline .sb-wz-check:checked + label { background: transparent; }
.sb-wizard--inline .sb-wz-stop label { color: color-mix(in srgb, var(--sb-ink-on-dark) 90%, var(--sb-bg-charcoal)); }
.sb-wizard--inline .sb-wz-stop label::before { background: var(--sb-bg-charcoal); }
.sb-wizard--inline .sb-wz-prev { color: var(--sb-color-highlight-light); }
.sb-wizard--inline .sb-wz-consent label a { color: var(--sb-ink-on-dark); }
.sb-trip .sb-wizard--inline, .sb-page--trip .sb-wizard--inline { width: 100vw; margin-left: calc(50% - 50vw); }
.sb-wizard--page { scroll-margin-top: var(--sb-sticky-offset, 0px); }

/* ---- Trip planner in the reference's design (D58) ---- */
.sb-tf { --sb-tf-tan: var(--sb-color-highlight); --sb-tf-dark: var(--sb-bg-charcoal-deep); position: relative; }
.sb-tf[hidden], .sb-tf [hidden], .sb-tf-match[hidden] { display: none !important; }
.sb-page--planner { width: 100vw; margin-left: calc(50% - 50vw); }
#sp-main-body:has(.sb-page--planner) { padding-top: 0; }
.sb-tf__heading { text-align: center; }
.sb-tf__stage { position: relative; width: 100%; min-height: calc(100vh - 70px); min-height: calc(100svh - 70px); background: var(--sb-tf-dark); color: var(--sb-on-media); display: flex; flex-direction: column; justify-content: center; align-items: center; overflow: hidden; }
@media (min-width: 992px) { .sb-tf__stage { min-height: 53.3125rem; } }
.sb-tf__progress { position: absolute; top: 0; left: 0; width: 100%; height: 8px; background: var(--sb-tf-dark); z-index: 6; }
.sb-tf__progress-bar { position: absolute; top: 0; left: 0; height: 100%; width: 0; background: rgba(193, 170, 127, 0.5); transition: width 0.3s ease-in-out; }
.sb-tf__slide { position: relative; z-index: 5; width: 100%; padding: 3.125rem 1.25rem; display: flex; flex-direction: column; align-items: center; }
@media (min-width: 768px) { .sb-tf__slide { padding: 6.875rem 1.25rem; } }
.sb-tf__header { width: 100%; max-width: 51.5rem; display: flex; flex-direction: column; align-items: center; text-align: center; }
.sb-tf--intro .sb-tf__header { max-width: 31.5625rem; }
.sb-tf__intro-img { width: 216px; height: auto; margin-bottom: 1.25rem; }
@media (min-width: 768px) { .sb-tf__intro-img { display: none; } }
.sb-tf__title { font-family: var(--sb-font-head); font-weight: 400; font-size: clamp(2.25rem, 4.2vw, 3.5rem); line-height: 1.1; color: var(--sb-on-media); margin: 0 0 1.25rem; outline: 0; }
@media (min-width: 768px) { .sb-tf__title { margin-bottom: 1.5625rem; } }
.sb-tf__title em { font-style: italic; }
.sb-tf__text { margin: 0 0 2.5rem; font-size: 0.9375rem; line-height: 1.6; color: var(--sb-on-media); }
@media (min-width: 768px) { .sb-tf__text { margin-bottom: 3.125rem; } }
.sb-tf--intro .sb-tf__text { margin-bottom: 0; }
.sb-tf__options { display: flex; flex-wrap: wrap; justify-content: center; width: 100%; max-width: 20.5rem; }
.sb-tf__options--column { flex-direction: column; flex-wrap: nowrap; }
.sb-tf__options--grid { max-width: 920px; gap: 0.875rem; }
@media (min-width: 768px) { .sb-tf__options--grid { gap: 1.25rem; } }
.sb-tf--interests_experience .sb-tf__options--grid { max-width: 59.625rem; }
.sb-tf--trip_times .sb-tf__options--grid { max-width: 26.75rem; }
.sb-tf--trip_times .sb-tf__option { width: 5.75rem; }
.sb-tf__option { position: relative; font: inherit; font-size: 0.8125rem; letter-spacing: 0; text-transform: none; color: var(--sb-on-media); background: transparent; cursor: pointer; min-height: 44px; transition: background-color 0.2s; }
.sb-tf__options--column .sb-tf__option { width: 100%; text-align: left; border: 1px solid var(--sb-tf-tan); border-bottom: 0; border-radius: 0; padding: 0.875rem 2.4375rem 0.875rem 0.875rem; }
.sb-tf__options--column .sb-tf__option:first-child { border-radius: 0.125rem 0.125rem 0 0; }
.sb-tf__options--column .sb-tf__option:last-child { border-bottom: 1px solid var(--sb-tf-tan); border-radius: 0 0 0.125rem 0.125rem; }
.sb-tf__options--grid .sb-tf__option { width: auto; text-align: left; border: 1px solid var(--sb-tf-tan); border-radius: 0.125rem; padding: 0.875rem 0.875rem 0.875rem 2.4375rem; }
@media (min-width: 768px) {
  .sb-tf__options--column .sb-tf__option { padding: 0.75rem 2.8125rem 0.75rem 1.25rem; }
  .sb-tf__options--grid .sb-tf__option { padding: 0.75rem 1.25rem 0.75rem 2.8125rem; }
}
.sb-tf__option::before, .sb-tf__option::after { content: ""; position: absolute; top: 50%; border-radius: 50%; transform: translateY(-50%); }
.sb-tf__option::before { width: 16px; height: 16px; border: 1px solid var(--sb-tf-tan); right: 12px; }
.sb-tf__option::after { width: 8px; height: 8px; background: var(--sb-tf-tan); right: 16px; opacity: 0; transition: opacity 0.3s; }
.sb-tf__options--grid .sb-tf__option::before { right: auto; left: 12px; }
.sb-tf__options--grid .sb-tf__option::after { right: auto; left: 16px; }
@media (min-width: 768px) {
  .sb-tf__options--column .sb-tf__option::before { right: 20px; }
  .sb-tf__options--column .sb-tf__option::after { right: 24px; }
  .sb-tf__options--grid .sb-tf__option::before { left: 20px; }
  .sb-tf__options--grid .sb-tf__option::after { left: 24px; }
}
.sb-tf__option:hover, .sb-tf__option.is-active { background-color: rgba(57, 55, 50, 0.8); }
.sb-tf__option:hover::after, .sb-tf__option.is-active::after { opacity: 1; }
.sb-tf__option:focus-visible, .sb-tf__next:focus-visible, .sb-tf__previous:focus-visible, .sb-tf__undecided:focus-visible { outline: 2px solid var(--sb-on-media); outline-offset: 2px; }
.sb-tf__actions { display: flex; flex-direction: column; align-items: center; gap: 2.5rem; margin-top: 1.875rem; }
@media (min-width: 768px) { .sb-tf__actions { margin-top: 2.5rem; gap: 3.125rem; } }
.sb-tf__buttons { display: flex; align-items: center; justify-content: center; gap: 1.25rem; }
.sb-tf__next { font: inherit; font-size: 0.875rem; font-weight: 500; letter-spacing: 0.02em; color: var(--sb-on-media); background: var(--sb-tf-tan); border: 0; border-radius: 60px; padding: 0.85rem 1.9rem; min-height: 44px; cursor: default; opacity: 0.25; transition: opacity 0.25s, color 0.25s; text-decoration: none; display: inline-flex; align-items: center; }
.sb-tf__next.is-active { opacity: 1; cursor: pointer; }
.sb-tf__next.is-active:hover { color: var(--sb-color-highlight-dark); }
.sb-tf__next.is-processing { opacity: 0.5; pointer-events: none; }
.sb-tf__previous, .sb-tf__undecided { font: inherit; font-size: 0.8125rem; background: none; border: 0; padding: 0.75rem 0.5rem; min-height: 44px; cursor: pointer; letter-spacing: 0; }
.sb-tf__previous { color: var(--sb-tf-tan); }
.sb-tf__previous:hover { color: var(--sb-on-media); }
.sb-tf__undecided { color: var(--sb-on-media); text-decoration: underline; text-underline-offset: 3px; }
.sb-tf__error { color: #ffb4a8; margin-top: 1rem; }
/* The opening screen's photos, scattered behind the words (hidden on phones) */
.sb-tf__mosaic { position: absolute; inset: 0; z-index: 1; pointer-events: none; overflow: hidden; }
.sb-tf:not(.sb-tf--intro) .sb-tf__mosaic { display: none; }
@media (max-width: 767px) { .sb-tf__mosaic { display: none; } }
.sb-tf__tile { position: absolute; display: block; }
.sb-tf__tile-img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sb-tf__tile:nth-child(1) { width: 107px; height: 229px; top: 20%; left: 0; opacity: 0.57; }
.sb-tf__tile:nth-child(2) { width: 217px; height: 182px; top: 80%; left: 2.5%; }
.sb-tf__tile:nth-child(3) { width: 240px; height: 183px; top: 5%; left: 12%; opacity: 0.78; }
.sb-tf__tile:nth-child(4) { width: 199px; height: 182px; top: 60%; left: 20%; opacity: 0.55; }
.sb-tf__tile:nth-child(5) { width: 183px; height: 183px; top: 15%; left: 36%; opacity: 0.17; }
.sb-tf__tile:nth-child(6) { width: 183px; height: 181px; top: 100%; left: 40%; opacity: 0.24; transform: translateY(-100%); }
.sb-tf__tile:nth-child(7) { width: 183px; height: 183px; top: 0; left: 60%; opacity: 0.86; transform: translateY(-50%); }
.sb-tf__tile:nth-child(8) { width: 242px; height: 183px; top: 50%; left: 75%; opacity: 0.73; }
.sb-tf__tile:nth-child(9) { width: 183px; height: 243px; top: 2.5%; left: 82%; }
.sb-tf__tile:nth-child(10) { width: 183px; height: 183px; top: 90%; left: 90%; opacity: 0.3; }
@media (max-width: 991px) { .sb-tf__tile:nth-child(3), .sb-tf__tile:nth-child(4), .sb-tf__tile:nth-child(7), .sb-tf__tile:nth-child(9) { display: none; } }
/* Suggested trips */
.sb-tf__results { background: #efefef; padding: 0 1rem 50px; position: relative; }
.sb-tf__results::after { content: ""; position: absolute; top: 100%; left: calc(50% - 30px); border-style: solid; border-width: 30px 30px 0; border-color: #efefef transparent transparent; z-index: 1; }
.sb-tf__results-head { max-width: 850px; margin: 0 auto; text-align: center; padding: 130px 15px 50px; }
@media (max-width: 768px) { .sb-tf__results-head { padding-top: 70px; } }
.sb-tf__results-head--none { max-width: none; margin: 0 -1rem 2rem; padding: 100px 15px 120px; background: var(--sb-tf-dark); color: var(--sb-on-media); }
.sb-tf__results-head--none .sb-tf__results-title, .sb-tf__results-head--none .sb-tf__results-text { color: var(--sb-on-media); max-width: 850px; margin-left: auto; margin-right: auto; }
.sb-tf__results-title { font-family: var(--sb-font-head); font-weight: 400; font-size: clamp(1.75rem, 3vw, 2.5rem); line-height: 1.2; margin: 0 0 1rem; outline: 0; }
.sb-tf__results-text { font-family: var(--sb-font-head); font-size: clamp(1.1rem, 1.6vw, 1.35rem); line-height: 1.4; margin: 0; }
.sb-tf__cards { max-width: 1200px; margin: 0 auto; }
.sb-tf__results-actions { text-align: center; margin-top: 1.5rem; }
.sb-tf__restart { color: var(--sb-color-ink); text-decoration: underline; }
/* "Let's match you to one of our expert travel designers", then the wizard */
.sb-tf-match__intro { max-width: 46rem; margin: 0 auto; text-align: center; padding: 90px 1.25rem 32px; }
.sb-tf-match__title { font-family: var(--sb-font-head); font-weight: 400; font-size: clamp(1.75rem, 3vw, 2.5rem); margin: 0 0 0.75rem; }
.sb-tf-match__text { margin: 0; }

/* Trip stops' activities: a title over a picture and its words (D59) */
.sb-image-row__title { font-family: var(--sb-font-head); font-weight: 400; font-size: clamp(1.5rem, 2.2vw, 1.9rem); line-height: 1.2; margin: 3rem 0 1.5rem; }
.sb-segment .sb-image-row { margin-bottom: 1rem; }
/* The trip bar takes over on wide screens (as on the reference); the floating button stays for phones */
@media (min-width: 992px) { body:has(.sb-tripbar) .sb-fab { display: none; } }
/* A review with its title (as on the reference): the title is the large line, the words are ordinary text (D59) */
.sb-review__title { font-family: var(--sb-font-head); font-size: clamp(1.6rem, 3vw, 2.4rem); line-height: 1.2; max-width: 54rem; margin: 0 auto 1rem; }
.sb-review:has(.sb-review__title) .sb-review__quote { font-family: var(--sb-font-body); font-size: 1rem; line-height: 1.6; max-width: 62rem; }

/* D62: breadcrumb links get a comfortable tap area on phones */
@media (max-width: 767px) { .sb-breadcrumbs__item a { display: inline-block; padding: 0.6rem 0.25rem; } }
