/* Tripvoria premium visual layer — loaded after the compiled application CSS. */
:root {
  --trip-navy: #040a23;
  --trip-navy-soft: #08112f;
  --trip-ink: #071027;
  --trip-red: #d40110;
  --trip-red-dark: #ad000d;
  --trip-stone: #a59686;
  --trip-aqua: #5ac7bd;
  --trip-ease: cubic-bezier(.22, 1, .36, 1);
}

html { scroll-behavior: smooth; scrollbar-width: thin; scrollbar-color: rgba(7,16,39,.45) rgba(7,16,39,.055); }
body { background: #fff; }
::-webkit-scrollbar { width: 12px; height: 12px; }
::-webkit-scrollbar-track { background: rgba(7,16,39,.055); }
::-webkit-scrollbar-thumb { background-color: rgba(7,16,39,.42); border-radius: 999px; border: 3px solid transparent; background-clip: padding-box; transition: background-color .2s ease; }
::-webkit-scrollbar-thumb:hover { background-color: var(--trip-red); }
::-webkit-scrollbar-thumb:active { background-color: var(--trip-red-dark); }
::-webkit-scrollbar-corner { background: transparent; }
body:not(.planning-body) main { width: 100%; max-width: none; min-height: 45vh; overflow-x: clip; }
body:not(.planning-body) main > section { width: 100%; max-width: none; }
.shell { width: min(calc(100% - clamp(2rem,6vw,7rem)),1760px); }
.site-header__inner { width: min(calc(100% - clamp(2rem,6vw,7rem)),1760px); }
img { max-width: 100%; }
.floating-whatsapp { background: #25d366; box-shadow: 0 16px 42px rgba(37,211,102,.3); }
.floating-whatsapp:hover,.floating-whatsapp:focus-visible { background: #1ebe5d; color: #fff; }

/* Header */
/*
 * .site-header's position is intentionally set in three places across this
 * cascade, each superseding the last — documented here so the next person
 * doesn't have to reverse-engineer it (found the hard way, via two real
 * regressions, while building the logo/hero fixes this file also carries):
 *   1. Here (lines below) — earliest, lowest-specificity baseline.
 *   2. Around line 913 — the settled non-JS-dependent state: sticky for a
 *      normal page, fixed for the homepage specifically (body.is-home is
 *      server-rendered, so this applies from first paint, no JS needed).
 *   3. `.has-transparent-header .site-header` below (search this file) —
 *      the final, `!important`-forced state once the deferred script adds
 *      that class to any page with a `.bm-hero` (home included). This is
 *      the one that actually wins once JS has run.
 * Do not "simplify" by deleting an earlier tier without re-verifying the
 * brief window before JS runs on every page type (home / other-hero /
 * no-hero / planning) — that's exactly where the previous regressions were.
 */
.site-header { position: absolute; inset: 0 0 auto; z-index: 50; }
body.is-home .site-header { position: absolute; background: transparent; border-bottom-color: transparent; backdrop-filter: none; box-shadow: none; }
body:not(.is-home):not(.planning-body) .site-header { position: relative; }
body:not(.is-home):not(.planning-body) .site-header + .mobile-drawer + main { margin-top: 0; }
.site-header__inner { min-height: 100%; }
.site-logo__image { filter: none; }
body.is-home .site-search-button { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.45); color: #fff; }
.site-cta,body.is-home .site-cta { min-height: 40px; padding: .65rem .9rem; background: var(--trip-red); color: #fff; border: 1px solid var(--trip-red); box-shadow: 0 12px 30px rgba(212,1,16,.22); font-size: .76rem; }
.site-cta:hover,body.is-home .site-cta:hover { background: var(--trip-red-dark); border-color: var(--trip-red-dark); }
.bm-pill-button:not(.bm-pill-button--light) { background: var(--trip-red); color: #fff; }
.bm-pill-button:not(.bm-pill-button--light):hover { background: var(--trip-red-dark); }
.site-account-link { display: inline-flex; align-items: center; gap: .42rem; font-size: .82rem; font-weight: 600; white-space: nowrap; }
.site-account-link svg { width: 19px; height: 19px; }
.ui-arrow-icon { width: 22px; height: 22px; flex: 0 0 auto; transition: transform .25s var(--trip-ease); }
a > .ui-arrow-icon:last-child,button > .ui-arrow-icon:last-child { margin-inline-start: .6rem; }
a > .ui-arrow-icon--left:first-child,button > .ui-arrow-icon--left:first-child { margin-inline: 0 .6rem; }
a:hover > .ui-arrow-icon,button:hover > .ui-arrow-icon { transform: translate(2px,-2px); }
.ui-shop-icon { width: 20px; height: 20px; flex: 0 0 auto; }
.ui-chevron-icon { width: 21px; height: 21px; }
.bm-image-card__arrow .ui-arrow-icon { width: 24px; height: 24px; margin: 0; }
.bm-image-card__meta .ui-arrow-icon { display: inline-block; width: 18px; height: 18px; margin-left: .5rem; vertical-align: middle; }
.site-menu-button { width: 42px; height: 42px; align-items: center; justify-content: center; border: 0; border-radius: 0; transition: background .2s var(--trip-ease); }
.site-menu-button svg { width: 24px; height: 24px; }
.site-menu-button:hover { background: rgba(7,16,39,.06); }
body.is-home .site-menu-button { color: #fff; }
body.is-home .site-menu-button:hover { background: rgba(255,255,255,.1); }
.site-mega { width: min(560px,calc(100vw - 2rem)); display: grid; grid-template-columns: 215px minmax(0,1fr); margin-top: .35rem; padding: 0; border-radius: 7px; overflow: hidden; box-shadow: 0 28px 75px rgba(5,10,34,.2); }
.site-mega__intro { display: flex; flex-direction: column; min-height: 260px; padding: 1.6rem 1.4rem; color: #fff; background: var(--trip-navy); }
.site-mega__intro > span { color: rgba(255,255,255,.58); font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.site-mega__intro h3 { margin-top: .55rem; font-size: 1.45rem; font-weight: 500; letter-spacing: -.035em; }
.site-mega__intro p { margin-top: .75rem; color: rgba(255,255,255,.68); font-size: .76rem; line-height: 1.65; }
.site-mega__planning { display: inline-flex; align-items: center; margin-top: auto; color: #fff; font-size: .75rem; font-weight: 700; }
.site-mega__planning .ui-arrow-icon { width: 20px; height: 20px; }
.site-mega__links { padding: .8rem 1rem; background: #fff; }
.site-mega__link { min-height: 48px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .7rem .55rem; border-bottom: 1px solid #edf0f4; border-radius: 0; }
.site-mega__link:last-child { border-bottom: 0; }
.site-mega__link .ui-arrow-icon { width: 20px; height: 20px; margin-left: auto; color: #737d91; }
.site-mega__link:hover { padding-inline: .75rem .45rem; background: #f5f7fa; }

@media (min-width: 1024px) {
  body.is-home .bm-search-panel { width: min(calc(100% - 2.5rem),1120px); grid-template-columns: 1.1fr repeat(3,minmax(0,1fr)) .72fr 82px; margin-top: 0; margin-bottom: 0; overflow: visible; }
  body.is-home .bm-search-panel__field:first-child { border-radius: 11px 0 0 11px; }
  body.is-home .bm-search-panel__button { border-radius: 0 11px 11px 0; }
  body.is-home .bm-search-panel__label { left: 50%; translate: -50% 0; }
}

.bm-search-panel__field--type { grid-template-columns: 34px minmax(0,1fr); align-items: center; gap: .8rem; }
.bm-search-panel__field--type > svg { width: 32px; height: 32px; }
.bm-search-panel__field--type .bm-search-panel__field-copy { display: block; margin: 0; opacity: 1; }
.bm-search-panel__field--type .bm-search-panel__field-copy small { display: block; margin-bottom: .35rem; color: currentColor; font-size: .76rem; opacity: .7; }
.bm-search-panel__field--type .bm-search-panel__field-copy strong { display: block; }
.bm-search-panel__advanced { min-height: 92px; display: flex; align-items: center; justify-content: center; gap: .55rem; border-right: 1px solid #e8ecf5; background: #fff; color: var(--trip-navy); font-size: .78rem; font-weight: 600; }
.bm-search-panel__advanced svg { width: 21px; height: 21px; }
.bm-search-panel__button > svg { box-sizing: content-box; padding: 12px; border-radius: 50%; background: #f2f5f9; }
.bm-search-panel__label { position: absolute; left: 0; bottom: calc(100% + .65rem); color: rgba(255,255,255,.92); font-size: .72rem; font-weight: 500; text-shadow: 0 1px 12px rgba(4,10,35,.7); white-space: nowrap; }

/* Heroes */
.bm-hero__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.bm-hero__content { z-index: 3; }
.home-hero { min-height: min(980px, 100svh); align-items: start; }
.home-hero .bm-hero__content h1 { font-size: clamp(2.75rem,3.2vw,3.7rem); line-height: 1.02; letter-spacing: -.04em; }
.home-hero .bm-hero__content h1 span { display: block; color: rgba(255,255,255,.68); font-weight: 400; }
.home-hero .bm-hero__content p:not(.bm-hero__eyebrow) { max-width: 690px; }
.bm-hero__actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 1.15rem; margin-top: 2.25rem; }
.bm-hero__cta { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 1.75rem; border-radius: 7px; font-size: .88rem; font-weight: 700; letter-spacing: .01em; text-decoration: none; transition: transform .2s var(--trip-ease), background-color .2s var(--trip-ease), border-color .2s var(--trip-ease), box-shadow .2s var(--trip-ease), color .2s var(--trip-ease); }
.bm-hero__cta:hover { transform: translateY(-1px); text-decoration: none; }
.bm-hero__cta--primary { background: var(--trip-red); color: #fff; box-shadow: 0 16px 36px rgba(212,1,16,.32); }
.bm-hero__cta--primary:hover { background: var(--trip-red-dark); color: #fff; }
.bm-hero__cta--secondary { background: rgba(255,255,255,.1); color: #fff; border: 1px solid rgba(255,255,255,.3); backdrop-filter: blur(12px); }
.bm-hero__cta--secondary:hover { background: rgba(255,255,255,.18); border-color: rgba(255,255,255,.46); color: #fff; }
.bm-hero__search { margin-top: 3rem; }
.bm-kicker { margin-bottom: .75rem; color: var(--trip-stone); font-size: .72rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.bm-kicker--dark { color: #6b5d50; }
.bm-title-actions { display: flex; align-items: center; gap: 1.4rem; }

@keyframes tripvoriaHeroDrift {
  from { transform: scale(1.01) translate3d(0,0,0); }
  to { transform: scale(1.09) translate3d(-1.2%,-.8%,0); }
}

/* Image cards */
.bm-image-card { border-radius: 16px; min-height: 390px; }
.bm-image-card::before { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: inherit; pointer-events: none; background: linear-gradient(180deg, rgba(4,10,35,.16) 0%, rgba(4,10,35,.28) 44%, rgba(4,10,35,.92) 100%); }
.bm-image-card::after { content: ""; position: absolute; inset: 0; z-index: 1; border: 1px solid rgba(255,255,255,.13); border-radius: inherit; pointer-events: none; }
.bm-image-card--portrait { min-height: 470px; }
.bm-image-card__body { bottom: 1.65rem; left: 1.7rem; right: 1.7rem; }
.bm-image-card h3 { font-size: clamp(1.45rem, 1.75vw, 2rem); }
.bm-image-card p { line-height: 1.55; }

/* Native, accessible slider */
.bm-slider { position: relative; min-width: 0; }
.bm-slider__track { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(290px, 31.5%); gap: 1.35rem; overflow-x: auto; overscroll-behavior-inline: contain; scroll-snap-type: inline mandatory; scroll-behavior: smooth; scrollbar-width: none; padding: .25rem .15rem 1.15rem; }
.bm-slider__track::-webkit-scrollbar { display: none; }
.bm-slider__track > * { scroll-snap-align: start; min-width: 0; }
.bm-slider__track--large { grid-auto-columns: minmax(320px, 37%); }
.bm-slider__track--destination { grid-auto-columns: minmax(280px, 30%); }
.bm-slider__track--service { grid-auto-columns: minmax(280px, 28%); }
.bm-slider__track--blog { grid-auto-columns: minmax(300px, 34%); }
.bm-slider__track--portrait { grid-auto-columns: minmax(290px, 31%); }
.bm-slider__controls--top { display: flex; justify-content: flex-end; margin-bottom: 1rem; }
.bm-round-button { border: 0; cursor: pointer; }
.bm-round-button:disabled { opacity: .32; cursor: default; transform: none; }

.destination-editorial-grid { display: grid; grid-template-columns: minmax(260px, .72fr) minmax(0, 2fr); gap: clamp(2.5rem, 5vw, 6rem); align-items: center; }
.destination-editorial-copy p:not(.bm-kicker) { max-width: 380px; margin-top: 1.2rem; color: rgba(255,255,255,.66); line-height: 1.75; }

/* Home editorial composition */
.bm-featured-trips { padding-top: clamp(3.5rem, 6vw, 6.5rem); border-bottom: 1px solid rgba(255,255,255,.1); }
.bm-featured-trips .bm-title-row > div:first-child { max-width: 500px; }
.bm-featured-trips .bm-slider { padding-bottom: clamp(2.25rem, 4vw, 4rem); }
.bm-featured-trips .bm-slider::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: linear-gradient(90deg,var(--trip-red) 0 32%,rgba(255,255,255,.14) 32% 100%); }

.home-journey-services { position: relative; overflow: hidden; color: #fff; background: var(--trip-navy); }
.home-journey-services__grid { display: grid; grid-template-columns: minmax(390px,.78fr) minmax(0,1.22fr); width: 100%; min-height: 630px; }
.home-journey-services__grid--single { grid-template-columns: 1fr; }
.home-itinerary-feature { position: relative; min-height: 630px; overflow: hidden; isolation: isolate; }
.home-itinerary-feature > img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--trip-ease); }
.home-itinerary-feature:hover > img { transform: scale(1.035); }
.home-itinerary-feature::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg,rgba(4,10,35,.12) 0%,rgba(4,10,35,.35) 42%,rgba(4,10,35,.92) 100%); }
.home-itinerary-feature__content { min-height: 630px; display: flex; flex-direction: column; justify-content: flex-end; align-items: flex-start; padding: clamp(2.5rem,5.5vw,6.5rem); }
.home-itinerary-feature__content h2 { color: #fff; font-size: clamp(2rem,3vw,3.2rem); font-weight: 400; line-height: 1.02; letter-spacing: -.045em; }
.home-itinerary-feature__content h2 span { font-weight: 650; }
.home-itinerary-feature__content > p:not(.bm-kicker) { max-width: 520px; margin-top: 1.25rem; color: rgba(255,255,255,.77); line-height: 1.7; }
.home-itinerary-steps { width: min(100%,520px); display: grid; margin-top: 1.75rem; border-top: 1px solid rgba(255,255,255,.22); }
.home-itinerary-steps li { min-height: 52px; display: grid; grid-template-columns: 42px minmax(0,1fr); align-items: center; gap: .7rem; border-bottom: 1px solid rgba(255,255,255,.16); }
.home-itinerary-steps span { color: rgba(255,255,255,.55); font-size: .69rem; font-weight: 700; letter-spacing: .12em; }
.home-itinerary-steps strong { font-size: .83rem; font-weight: 600; }
.home-itinerary-feature__content > a { min-height: 44px; display: inline-flex; align-items: center; margin-top: 1.6rem; color: #fff; font-size: .8rem; font-weight: 700; border-bottom: 1px solid rgba(255,255,255,.5); }

.home-service-gallery { min-width: 0; align-self: center; padding: clamp(3.5rem,5vw,6rem) clamp(1.25rem,4vw,5rem); }
.home-service-gallery__heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; margin-bottom: 2rem; }
.home-service-gallery__heading h2 { color: #fff; font-size: clamp(2rem,3vw,3.15rem); font-weight: 400; letter-spacing: -.045em; }
.home-service-gallery__track { grid-auto-columns: minmax(300px,48%); }
.home-service-gallery .bm-image-card { min-height: 380px; border-radius: 6px; }

.home-proof { position: relative; overflow: hidden; background: var(--trip-navy); }
.home-proof__grid { display: grid; grid-template-columns: minmax(0,1.72fr) minmax(350px,1fr); width: 100%; }
.home-proof__grid--single { grid-template-columns: 1fr; }
.home-testimonial { position: relative; min-height: 560px; display: flex; flex-direction: column; justify-content: space-between; padding: clamp(3rem,6vw,7rem); overflow: hidden; color: #fff; background: #91867b; isolation: isolate; }
.home-testimonial::before { content: ""; position: absolute; inset: -24%; z-index: -1; opacity: .32; background: radial-gradient(circle at 17% 60%,transparent 0 17%,rgba(255,255,255,.18) 17.2% 17.5%,transparent 17.8% 29%,rgba(255,255,255,.15) 29.2% 29.5%,transparent 29.8%); }
.home-testimonial__intro { display: flex; align-items: flex-start; gap: 1rem; max-width: 370px; color: rgba(255,255,255,.84); font-size: .78rem; line-height: 1.6; }
.home-testimonial__intro span { color: #fff; font-size: 3.7rem; font-weight: 700; line-height: .65; }
.home-testimonial__heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; margin-top: 4rem; }
.home-testimonial__heading h2 { max-width: 720px; color: #fff; font-size: clamp(2.1rem,3.3vw,3.8rem); font-weight: 500; line-height: 1; letter-spacing: -.045em; }
.home-testimonial__heading p { flex: 0 0 auto; color: rgba(255,255,255,.88); font-size: .75rem; text-decoration: underline; text-underline-offset: 4px; }
.home-testimonial blockquote { max-width: 930px; margin-top: 2.2rem; color: rgba(255,255,255,.92); font-size: clamp(.98rem,1.15vw,1.2rem); line-height: 1.8; }
.home-testimonial__author { display: flex; flex-direction: column; gap: .2rem; margin-top: 2rem; }
.home-testimonial__author strong { font-size: .78rem; }
.home-testimonial__author span { color: rgba(255,255,255,.62); font-size: .7rem; }

.home-assurance { min-height: 560px; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,.82fr); color: #fff; background: var(--trip-navy-soft); }
.home-assurance__content { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding: clamp(3rem,5vw,6rem); }
.home-assurance__media { position: relative; overflow: hidden; }
.home-assurance__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.home-assurance__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--trip-navy-soft) 0%, rgba(8,17,47,0) 14%); }
.home-assurance__mark { width: 48px; height: 48px; margin-bottom: 1.5rem; color: #fff; }
.home-assurance__mark svg { width: 100%; height: 100%; }
.home-assurance h2 { max-width: 470px; color: #fff; font-size: clamp(2rem,2.8vw,3rem); font-weight: 400; line-height: 1.06; letter-spacing: -.045em; }
.home-assurance__content > p:not(.bm-kicker) { max-width: 480px; margin-top: 1.25rem; color: rgba(255,255,255,.68); font-size: .86rem; line-height: 1.7; }
.home-assurance ul { display: grid; gap: .8rem; margin-top: 1.75rem; }
.home-assurance li { position: relative; padding-left: 1.2rem; color: rgba(255,255,255,.82); font-size: .8rem; line-height: 1.55; }
.home-assurance li::before { content: ""; position: absolute; left: 0; top: .55em; width: 6px; height: 6px; border-radius: 50%; background: var(--trip-red); }
.home-assurance__content > a { min-height: 44px; display: inline-flex; align-items: center; margin-top: 2rem; color: #fff; font-size: .8rem; font-weight: 700; border-bottom: 1px solid rgba(255,255,255,.4); }

.bm-blog-strip { border-top: 1px solid rgba(255,255,255,.08); }
.bm-blog-strip__intro { display: grid; grid-template-columns: minmax(220px,.65fr) minmax(260px,1fr); gap: clamp(2rem,5vw,6rem); align-items: end; }
.bm-blog-strip__intro > p { max-width: 430px; margin: 0; }

.home-shop-preview { border-top: 1px solid #e4e8ef; }
.home-shop-preview__grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.shop-cross-sell { border-top: 1px solid #e4e8ef; }
.shop-cross-sell__grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
@media (max-width: 900px) {
  .shop-cross-sell__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 560px) {
  .shop-cross-sell__grid { grid-template-columns: 1fr; }
}
.home-shop-preview__empty { margin-top: 3rem; padding: 4rem 2rem; text-align: center; background: #f3f6fa; }
.home-shop-preview__empty p { color: #717a90; }
.home-shop-preview__empty a { display: inline-flex; align-items: center; gap: .5rem; margin-top: .9rem; font-weight: 700; }
@media (max-width: 900px) {
  .home-shop-preview__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 560px) {
  .home-shop-preview__grid { grid-template-columns: 1fr; }
}

@media (min-width: 1024px) {
  .bm-blog-strip .bm-slider__track--blog { grid-auto-flow: initial; grid-template-columns: 1.35fr 1fr 1fr; overflow: visible; }
  .bm-blog-strip .bm-slider__track--blog .bm-image-card { min-height: 350px; }
}

/* Process / Why */
.bm-process-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1.25rem; }
.bm-process-card { position: relative; min-height: 420px; border-radius: 14px; overflow: hidden; background: var(--trip-navy); color: #fff; isolation: isolate; }
.bm-process-card::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg,rgba(4,10,35,.04) 28%,rgba(4,10,35,.42) 62%,rgba(4,10,35,.88) 100%); pointer-events: none; }
.bm-process-card__image { position: absolute; inset: 0; height: 100%; overflow: hidden; }
.bm-process-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .9s var(--trip-ease); }
.bm-process-card:hover .bm-process-card__image img { transform: scale(1.06); }
.bm-process-card__body { position: absolute; z-index: 2; inset: auto 0 0; min-height: 0; padding: 1.8rem; background: transparent; }
.bm-process-card__body h3 { color: #fff; font-size: 1.2rem; }
.bm-process-card__body p { color: rgba(255,255,255,.82); margin-top: .55rem; line-height: 1.6; }
.bm-process-card__num { position: static; width: 38px; height: 38px; display: grid; place-items: center; margin-bottom: 1rem; border: 1px solid rgba(255,255,255,.55); border-radius: 50%; background: rgba(4,10,35,.26); color: #fff; font-weight: 700; box-shadow: none; backdrop-filter: blur(5px); }
.bm-why-media { position: relative; min-height: 620px; overflow: hidden; border-radius: 20px; }
.bm-why-media > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.bm-why-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(4,10,35,.15), rgba(4,10,35,0)); }
.bm-why-card { position: absolute; z-index: 2; left: clamp(1.2rem, 4vw, 4.5rem); top: 50%; transform: translateY(-50%); width: min(520px, calc(100% - 2.4rem)); border-radius: 14px; }
.bm-why-card p:not(.bm-kicker) { margin-top: 1.3rem; color: #667089; line-height: 1.75; }
.reviews-home { position: relative; background: #91867b; overflow: hidden; }
.reviews-home::after { content: ""; position: absolute; inset: 0 0 0 55%; background: url('../images/tripvoria/03-section-wide-1600x900/experience-romantic-sunset-section.jpg') center/cover; opacity: .32; mask-image: linear-gradient(90deg, transparent, #000); }
.reviews-home .shell { position: relative; z-index: 1; }

/* About */
.about-story-grid { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(350px,.8fr); gap: clamp(3rem, 7vw, 8rem); align-items: center; }
.about-story-media { position: relative; aspect-ratio: 4/3; margin-right: 1.6rem; }
.about-story-media::before { content: ""; position: absolute; left: -24px; bottom: -24px; width: 78%; height: 88%; background: var(--trip-navy); }
.about-story-media img { position: relative; z-index: 1; width: 100%; height: 100%; object-fit: cover; border: 12px solid #edf1f6; }
.about-band { background: #6f6258; }
.guarantee-section { position: relative; background: #e8edf5 !important; overflow: hidden; }
.guarantee-media { position: absolute; inset: 0; }
.guarantee-media img { width: 100%; height: 100%; object-fit: cover; }
.guarantee-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(4,10,35,.08), rgba(240,244,249,.2) 42%, rgba(240,244,249,.97) 68%); }
.guarantee-grid { position: relative; z-index: 2; display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center; }
.guarantee-card { border-radius: 14px; }

/* Contact */
.contact-panel { display: grid; }
.contact-office { margin-top: 2rem; padding-bottom: 2rem; border-bottom: 1px solid #e5e9f0; }
.contact-office h2 { margin-top: .9rem; font-size: 1.1rem; }
.contact-office__links { display: flex; flex-wrap: wrap; gap: 2.2rem; margin-top: 1.35rem; }
.contact-office__links small { display: block; color: #596278; }
.contact-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.2rem; margin-top: 1.5rem; }
.contact-image-side { position: relative; display: flex; align-items: flex-end; min-height: 790px; isolation: isolate; }
.contact-image-side::before { content: ""; position: absolute; inset: 0; z-index: -2; background: var(--contact-image) center/cover no-repeat !important; }
.contact-image-side::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(4,10,35,.08), rgba(4,10,35,.88)); }
.contact-image-side__content { max-width: 430px; color: #fff; }
.contact-image-side__content p { color: rgba(255,255,255,.7); line-height: 1.65; }
.contact-social-row { display: flex; gap: .7rem; margin-top: 1.8rem; }
.contact-social-row span,.contact-social-row a { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; border: 1px solid rgba(255,255,255,.45); }
.contact-social-row a:hover,.contact-social-row a:focus-visible { transform: translateY(-2px); border-color: #fff; }

/* Search */
.search-page-premium { position: relative; min-height: 820px; background: #eef3fa; overflow: hidden; }
.search-page-premium__media { position: absolute; inset: 0; opacity: .22; }
.search-page-premium__media img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.6); }
.search-page-premium::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(246,249,253,.6), #eef3fa 65%); }
.search-page-premium__content { position: relative; z-index: 1; padding-top: calc(var(--nav-height) + 7rem); padding-bottom: 8rem; }
.search-page-premium__box { max-width: 760px; margin-inline: auto; text-align: center; }
.search-page-premium__box > p:last-of-type { margin: 1rem auto 0; max-width: 560px; color: #6f7792; }
.premium-search-form { display: grid; grid-template-columns: 1fr auto; gap: .7rem; margin-top: 2rem; padding: .55rem; border-radius: 12px; background: #fff; box-shadow: 0 22px 70px rgba(4,10,35,.14); }
.premium-search-form input { min-width: 0; padding: 0 1.2rem; outline: none; }
.search-results-premium { margin-top: 6rem; display: grid; gap: 5rem; }
.search-result-card { overflow: hidden; border-radius: 14px; background: #fff; box-shadow: 0 15px 45px rgba(4,10,35,.08); }
.search-result-card img { width: 100%; height: 190px; object-fit: cover; }
.search-result-card div { padding: 1.4rem; }
.search-result-card p { margin-top: .65rem; color: #6f7792; line-height: 1.6; }
.search-result-card span { display: inline-block; margin-top: 1rem; font-weight: 700; }

/* Destination/package details */
.destination-intro-grid { display: grid; grid-template-columns: minmax(0,1.7fr) minmax(300px,.8fr); gap: clamp(2.5rem, 6vw, 7rem); }
.destination-intro__copy { max-width: 850px; margin-top: 1.35rem; display: grid; gap: 1rem; color: var(--color-text-muted); font-size: .94rem; line-height: 1.85; }
.destination-intro__aside-copy { margin-top: .8rem; color: #697288; font-size: .8rem; line-height: 1.65; }
.destination-story { position: relative; min-height: 700px; overflow: hidden; }
.destination-story__media { position: absolute; inset: 0; }
.destination-story__media img { width: 100%; height: 100%; object-fit: cover; }
.destination-story__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(4,10,35,.15), rgba(4,10,35,0)); }
.destination-story__content { position: relative; min-height: 700px; display: flex; align-items: center; }
.destination-story__content .bm-text-panel { width: min(520px,100%); }
.destination-facts { color: #fff; background: var(--trip-navy); border-top: 1px solid rgba(255,255,255,.1); }
.destination-facts__grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); }
.destination-facts article { min-height: 180px; padding: 2rem clamp(1.2rem,2.5vw,2.5rem); border-left: 1px solid rgba(255,255,255,.11); }
.destination-facts article:last-child { border-right: 1px solid rgba(255,255,255,.11); }
.destination-facts article > span { color: var(--trip-red); font-size: .72rem; font-weight: 800; }
.destination-facts small,.destination-facts strong { display: block; }
.destination-facts small { margin-top: 1.4rem; color: rgba(255,255,255,.5); font-size: .69rem; letter-spacing: .12em; text-transform: uppercase; }
.destination-facts strong { margin-top: .55rem; color: #fff; font-size: .92rem; line-height: 1.55; }
.destination-section-heading { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(300px,.7fr); gap: clamp(2rem,7vw,8rem); align-items: end; margin-bottom: 3rem; }
.destination-section-heading > p { color: #596278; font-size: .9rem; line-height: 1.75; }
.destination-city-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.15rem; }
.destination-city-card { position: relative; min-height: 520px; overflow: hidden; border-radius: 12px; color: #fff; isolation: isolate; }
.destination-city-card::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg,rgba(4,10,35,.05) 25%,rgba(4,10,35,.86) 100%); }
.destination-city-card > img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--trip-ease); }
.destination-city-card:hover > img { transform: scale(1.045); }
.destination-city-card > div { position: absolute; inset: auto 0 0; padding: 1.7rem; }
.destination-city-card span { display: inline-grid; place-items: center; width: 36px; height: 36px; border: 1px solid rgba(255,255,255,.5); border-radius: 50%; font-size: .7rem; }
.destination-city-card h3 { margin-top: 1rem; color: #fff; font-size: 1.55rem; }
.destination-city-card p { margin-top: .55rem; color: rgba(255,255,255,.78); font-size: .83rem; line-height: 1.6; }
.destination-city-card a { display: inline-flex; align-items: center; margin-top: 1rem; color: #fff; font-size: .78rem; font-weight: 700; }
.destination-experiences { color: #fff; background: var(--trip-navy); }
.destination-section-heading--light > p { color: rgba(255,255,255,.68); }
.destination-experience-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.destination-experience-card { position: relative; min-height: 340px; overflow: hidden; border-radius: 10px; isolation: isolate; }
.destination-experience-card::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg,rgba(4,10,35,.08),rgba(4,10,35,.86)); }
.destination-experience-card img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.destination-experience-card > div { position: absolute; inset: auto 0 0; padding: 1.6rem; }
.destination-experience-card span { color: rgba(255,255,255,.62); font-size: .7rem; }
.destination-experience-card h3 { margin-top: .5rem; color: #fff; font-size: 1.25rem; }
.destination-experience-card p { margin-top: .45rem; color: rgba(255,255,255,.72); font-size: .82rem; }
.destination-planning__grid { display: grid; grid-template-columns: minmax(0,.8fr) minmax(420px,1.1fr); gap: clamp(3rem,8vw,9rem); align-items: start; }
.destination-planning__grid > div > p:not(.bm-kicker) { margin-top: 1.3rem; color: #596278; line-height: 1.8; }
.destination-planning__grid .bm-pill-button { margin-top: 1.8rem; }
.destination-planning ol { border-top: 1px solid #d9dfe7; }
.destination-planning li { display: grid; grid-template-columns: 44px 1fr; gap: 1.2rem; padding: 1.35rem 0; border-bottom: 1px solid #d9dfe7; }
.destination-planning li > span { color: var(--trip-red); font-size: .72rem; font-weight: 800; }
.destination-planning h3 { font-size: 1.05rem; }
.destination-planning li p { margin-top: .4rem; color: #596278; font-size: .86rem; line-height: 1.65; }
.destination-cta { position: relative; min-height: 620px; display: flex; align-items: center; overflow: hidden; color: #fff; isolation: isolate; }
.destination-cta::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg,rgba(4,10,35,.9),rgba(4,10,35,.32)); }
.destination-cta > img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.destination-cta .shell > div { max-width: 650px; }
.destination-cta h2 { color: #fff; font-size: clamp(2.4rem,4.2vw,4.2rem); line-height: 1; letter-spacing: -.045em; }
.destination-cta p:not(.bm-kicker) { margin-top: 1.2rem; color: rgba(255,255,255,.78); line-height: 1.75; }
.destination-cta .bm-pill-button { margin-top: 1.8rem; }
.itinerary-card { position: relative; min-height: 510px; overflow: hidden; border-radius: 18px; background: #071027; color: #fff; }
.itinerary-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 25%, rgba(4,10,35,.92)); }
.itinerary-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .9s var(--trip-ease); }
.itinerary-card:hover img { transform: scale(1.06); }
.itinerary-card > div { position: absolute; z-index: 2; inset: auto 1.5rem 1.5rem; }
.itinerary-card span { display: inline-flex; padding: .45rem .75rem; background: #fff; color: var(--trip-navy); border-radius: 999px; font-size: .72rem; font-weight: 700; }
.itinerary-card h3 { margin-top: 1rem; font-size: 1.55rem; color: #fff; }
.itinerary-card p { margin-top: .55rem; color: rgba(255,255,255,.68); line-height: 1.6; }

/* Services */
.service-process-grid { display: grid; grid-template-columns: minmax(280px,.8fr) minmax(0,1.3fr); gap: clamp(3rem,7vw,8rem); }
.service-process-cards { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.service-process-card { position: relative; min-height: 270px; overflow: hidden; border-radius: 15px; color: #fff; }
.service-process-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.service-process-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(4,10,35,.12), rgba(4,10,35,.92)); }
.service-process-card > div { position: absolute; z-index: 1; inset: auto 1.25rem 1.25rem; }
.service-process-card span { display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: rgba(255,255,255,.92); color: var(--trip-navy); font-size: .75rem; font-weight: 700; }
.service-process-card h3 { margin-top: .7rem; color: #fff; font-size: 1.15rem; }
.service-process-card p { margin-top: .4rem; color: rgba(255,255,255,.67); font-size: .85rem; line-height: 1.55; }

/* Shop */
.shop-hero-luxury { position: relative; min-height: min(820px,90svh); display: flex; align-items: flex-end; overflow: hidden; color: #fff; background: var(--trip-navy); isolation: isolate; }
.shop-hero-luxury__media { position: absolute; inset: 0; z-index: -2; overflow: hidden; }
.shop-hero-luxury__media img { width: 100%; height: 100%; object-fit: cover; object-position: center 52%; animation: tripvoriaHeroDrift 22s var(--trip-ease) infinite alternate; }
.shop-hero-luxury::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg,rgba(4,10,35,.92) 0%,rgba(4,10,35,.61) 47%,rgba(4,10,35,.2) 80%),linear-gradient(0deg,rgba(4,10,35,.7),transparent 55%); }
.shop-hero-luxury__content { padding-block: calc(var(--nav-height) + 8rem) 7rem; }
.shop-hero-luxury__content h1 { max-width: 820px; margin-top: 1rem; color: #fff; font-size: clamp(3.1rem,5.4vw,5.2rem); line-height: .94; letter-spacing: -.05em; }
.shop-hero-luxury__content h1 span { color: rgba(255,255,255,.57); font-weight: 400; }
.shop-hero-luxury__content > p:not(.bm-kicker):not(.bm-hero__eyebrow) { max-width: 570px; margin-top: 2rem; color: rgba(255,255,255,.72); line-height: 1.8; }
.shop-hero-luxury__content .bm-pill-button { margin-top: 2rem; }
.shop-hero-luxury__note { position: absolute; right: 4vw; bottom: 4.5rem; display: flex; align-items: center; gap: .9rem; color: rgba(255,255,255,.7); font-size: .74rem; letter-spacing: .08em; text-transform: uppercase; }
.shop-hero-luxury__note strong { display: grid; place-items: center; width: 48px; height: 48px; border: 1px solid rgba(255,255,255,.4); border-radius: 50%; color: #fff; }
.shop-intro-strip { background: var(--trip-navy); color: #fff; border-top: 1px solid rgba(255,255,255,.11); }
.shop-intro-strip .shell { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); }
.shop-intro-strip article { min-height: 132px; display: flex; align-items: center; gap: 1rem; padding: 1.5rem clamp(1rem,3vw,2.5rem); border-left: 1px solid rgba(255,255,255,.1); }
.shop-intro-strip article:last-child { border-right: 1px solid rgba(255,255,255,.1); }
.shop-intro-strip svg { width: 32px; height: 32px; color: var(--trip-stone); }
.shop-intro-strip strong,.shop-intro-strip span { display: block; }
.shop-intro-strip strong { font-size: .92rem; }
.shop-intro-strip span { margin-top: .3rem; color: rgba(255,255,255,.56); font-size: .75rem; line-height: 1.5; }
.shop-listing { position: relative; overflow: hidden; }
.shop-listing::before { content: ""; position: absolute; width: 560px; height: 560px; right: -260px; top: 120px; border: 1px solid #e1e6ee; border-radius: 50%; box-shadow: 0 0 0 110px transparent,0 0 0 111px #edf1f6; opacity: .7; pointer-events: none; }
.shop-heading-row { display: flex; align-items: end; justify-content: space-between; gap: 2rem; }
.shop-heading-row > div > p:last-child { margin-top: .7rem; color: #5f687e; }
.shop-heading-row h2 { font-size: clamp(2.15rem,3.3vw,3.6rem); letter-spacing: -.04em; }
.shop-list-link,.shop-heading-row > a { display: inline-flex; align-items: center; gap: .65rem; font-size: .82rem; font-weight: 700; }
.shop-filter-form { position: relative; display: grid; grid-template-columns: repeat(auto-fit,minmax(160px,1fr)); align-items: end; gap: .7rem; margin-top: 3rem; padding: 1.1rem; background: #f2f5f9; border: 1px solid #e4e8ef; }
.shop-filter-form label > span { display: block; margin: 0 0 .5rem .1rem; color: #4f596e; font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.shop-filter-form .form-control { width: 100%; min-height: 52px; background: #fff; }
.shop-filter-form .bm-pill-button { min-height: 52px; }
.shop-filter-form__actions { display: flex; align-items: center; gap: 1.2rem; grid-column: 1/-1; margin-top: .3rem; }
.shop-filter-form__actions .shop-list-link { font-size: .78rem; color: #5f687e; }
.product-grid-premium { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 2.2rem 1.25rem; margin-top: 3rem; }
.product-tile { display: block; min-width: 0; }
.product-tile__image { position: relative; aspect-ratio: 1/1; overflow: hidden; background: #eef2f7; border-radius: 10px; }
.product-tile__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .75s var(--trip-ease); }
.product-tile:hover .product-tile__image img { transform: scale(1.05); }
.product-tile__image > span { position: absolute; left: .8rem; top: .8rem; z-index: 2; padding: .35rem .55rem; border-radius: 999px; background: var(--trip-navy); color: #fff; font-size: .65rem; }
.product-tile__quick-add { position: absolute; z-index: 3; right: .7rem; bottom: .7rem; min-height: 44px; display: inline-flex; align-items: center; gap: .5rem; padding: .65rem .9rem; border: 1px solid rgba(255,255,255,.3); border-radius: 6px; background: var(--trip-red); color: #fff; box-shadow: 0 10px 30px rgba(4,10,35,.22); font-size: .75rem; font-weight: 700; transform: none; opacity: 1; transition: .3s var(--trip-ease); }
.product-tile:hover .product-tile__quick-add,.product-tile__quick-add:focus-visible { opacity: 1; transform: none; }
.product-tile__quick-add .ui-shop-icon { width: 17px; height: 17px; }
@media (hover: hover) and (pointer: fine) {
  .product-tile__quick-add { transform: translateY(8px); opacity: 0; }
}
.product-tile__body { padding-top: 1rem; }
.product-tile__body p { display: flex; justify-content: space-between; gap: .5rem; color: #5f687e; font-size: .65rem; letter-spacing: .11em; text-transform: uppercase; }
.product-tile__body p span { letter-spacing: .03em; }
.product-tile__body h2,.product-tile__body h3,.product-tile__body h4 { margin-top: .35rem; font-size: 1rem; font-weight: 700; }
.product-tile__body > div { display: flex; align-items: center; justify-content: space-between; margin-top: .45rem; }
.product-tile__body strong { color: #657087; font-size: .82rem; font-weight: 500; }
.product-tile__body .ui-arrow-icon { width: 20px; height: 20px; }
.shop-empty { margin-top: 3rem; padding: 5rem 2rem; text-align: center; background: #f3f6fa; }
.shop-empty h3 { margin-top: 1.2rem; font-size: 1.4rem; }
.shop-empty p { margin: .7rem auto 1rem; max-width: 520px; color: #717a90; }
.shop-empty a { display: inline-flex; align-items: center; gap: .6rem; font-weight: 700; }
.shop-editorial { padding-block: clamp(5rem,9vw,9rem); background: #eef2f7; }
.shop-editorial .shell { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(340px,.78fr); gap: clamp(3rem,7vw,8rem); align-items: center; }
.shop-editorial__image { position: relative; aspect-ratio: 5/4; }
.shop-editorial__image::before { content: ""; position: absolute; inset: 36px -24px -24px 36px; background: var(--trip-navy); }
.shop-editorial__image img { position: relative; width: 100%; height: 100%; object-fit: cover; }
.shop-editorial h2 { font-size: clamp(2.25rem,3.7vw,3.9rem); line-height: 1; letter-spacing: -.045em; }
.shop-editorial > .shell > div:last-child > p:not(.bm-kicker) { margin-top: 1.5rem; color: #596278; line-height: 1.8; }
.shop-editorial ol { margin-top: 2rem; border-top: 1px solid #cfd6e1; }
.shop-editorial li { display: grid; grid-template-columns: 42px 1fr; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid #cfd6e1; }
.shop-editorial li > span { color: #6b5d50; font-size: .72rem; }
.shop-editorial li strong { display: block; }
.shop-editorial li p { color: #596278; font-size: .84rem; }
.shop-bridge { padding-block: clamp(2.5rem,5vw,4rem); background: #eef2f7; }
.shop-bridge .shell { max-width: 860px; }
.shop-bridge p { color: #596278; font-size: 1rem; line-height: 1.75; }
.shop-bridge strong { color: var(--trip-navy); }
.shop-faq { padding-block: clamp(5rem,8vw,8rem); }
.shop-faq .shell { display: grid; grid-template-columns: minmax(220px,.55fr) minmax(0,1.2fr); gap: clamp(2rem,7vw,8rem); }
.shop-faq h2 { font-size: clamp(2.4rem,4vw,4rem); }
.shop-faq__items { border-top: 1px solid #d7dde6; }
.shop-faq details { padding: 1.3rem 0; border-bottom: 1px solid #d7dde6; }
.shop-faq summary { cursor: pointer; font-weight: 700; }
.shop-faq details p { max-width: 720px; padding-top: 1rem; color: #697388; line-height: 1.75; }
.shop-product-page { padding: 2rem 0 clamp(6rem,9vw,10rem); background: #f5f7fa; }
.shop-product-breadcrumb { min-height: 70px; display: flex; align-items: center; gap: .8rem; color: #70798e; font-size: .78rem; }
.shop-product-breadcrumb a { display: inline-flex; align-items: center; gap: .5rem; color: var(--trip-navy); font-weight: 700; }
.shop-product-breadcrumb .ui-arrow-icon { width: 20px; height: 20px; }
.product-detail-grid { display: grid; grid-template-columns: minmax(0,1.08fr) minmax(380px,.82fr); gap: clamp(3rem,7vw,8rem); align-items: start; }
.product-detail-media { position: sticky; top: 1.5rem; aspect-ratio: 1/1; overflow: hidden; border-radius: 10px; background: #e9eef4; }
.product-detail-media img { width: 100%; height: 100%; object-fit: cover; }
.product-detail-media > span { position: absolute; left: 1.2rem; top: 1.2rem; padding: .45rem .7rem; border-radius: 4px; color: #fff; background: var(--trip-navy); font-size: .68rem; font-weight: 700; }
.product-detail-copy { padding-top: 2rem; }
.product-detail-copy h1 { margin-top: .7rem; font-size: clamp(2.8rem,5vw,5.8rem); line-height: .95; letter-spacing: -.055em; }
.product-detail-copy__intro { margin-top: 1.5rem; color: #687287; font-size: 1.04rem; line-height: 1.75; }
.product-detail-price { display: flex; flex-direction: column; gap: .3rem; margin-top: 2rem; padding-block: 1.3rem; border-block: 1px solid #d8dee7; }
.product-detail-price strong { font-size: 1.25rem; }
.product-detail-price span { color: #7b8498; font-size: .76rem; }
.product-enquiry-config { margin-top: 1.7rem; }
.product-enquiry-fields { display: grid; grid-template-columns: minmax(0,1fr) 110px; gap: .8rem; }
.product-enquiry-fields label { display: grid; gap: .45rem; color: var(--trip-navy); font-size: .76rem; font-weight: 700; }
.product-enquiry-fields label span { color: #7b8498; font-weight: 500; }
.product-enquiry-fields select,.product-enquiry-fields input { width: 100%; min-height: 48px; padding: .7rem .85rem; border: 1px solid #ccd3de; border-radius: 7px; background: #fff; color: var(--trip-navy); font: inherit; font-weight: 500; }
.product-enquiry-fields select:focus-visible,.product-enquiry-fields input:focus-visible { outline: 2px solid rgba(212,1,16,.28); outline-offset: 2px; border-color: var(--trip-red); }
.product-enquiry-fields__notes { grid-column: 1 / -1; }
@media (max-width: 640px) {
  .product-enquiry-fields { grid-template-columns: 1fr; }
  .product-enquiry-fields__notes { grid-column: auto; }
}
.product-detail-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .7rem; margin-top: 2rem; }
.product-detail-gating-note { flex-basis: 100%; margin: 0; color: #778095; font-size: .78rem; }
.account-primary-action { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: .65rem; padding: .75rem 1rem .75rem 1.2rem; border: 1px solid var(--trip-red); border-radius: 5px; color: #fff; background: var(--trip-red); font-size: .82rem; font-weight: 700; box-shadow: 0 10px 28px rgba(212,1,16,.18); }
.account-primary-action:hover { background: var(--trip-red-dark); border-color: var(--trip-red-dark); }
.account-primary-action .ui-arrow-icon { width: 23px; height: 23px; }
.product-save-action { min-height: 48px; display: inline-flex; align-items: center; gap: .55rem; padding: .75rem 1rem; border: 1px solid #cbd2dd; border-radius: 5px; font-size: .8rem; font-weight: 700; }
.product-save-action svg { width: 20px; height: 20px; }
.product-save-action--saved { background: var(--premium-sand-soft); border-color: var(--premium-sand); }
.product-detail-description { margin-top: 2.5rem; color: #505a70; line-height: 1.8; }
.product-detail-description p + p { margin-top: 1rem; }
.product-care { margin-top: 2rem; padding: 1.1rem 0; border-block: 1px solid #d8dee7; }
.product-care summary { cursor: pointer; font-weight: 700; }
.product-care p { margin-top: 1rem; color: #697388; line-height: 1.7; }
.product-assurance { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 2rem; }
.product-assurance > div { display: grid; grid-template-columns: 32px 1fr; gap: .7rem; padding: 1rem; background: #fff; }
.product-assurance span { color: #9b8c7d; font-size: .68rem; }
.product-assurance strong { display: block; margin-bottom: .35rem; font-size: .8rem; }
.product-assurance p { color: #737d91; font-size: .73rem; line-height: 1.5; }
.related-shop { padding-block: clamp(5rem,8vw,8rem); }

/* Customer workspace */
.account-page { background: #f4f6f9; }
.account-auth { min-height: calc(100svh - var(--nav-height)); display: grid; grid-template-columns: minmax(390px,.9fr) minmax(0,1.1fr); background: #fff; }
.account-auth__media { position: relative; display: flex; align-items: flex-end; padding: clamp(2rem,5vw,5rem); color: #fff; background: var(--account-image) center/cover; isolation: isolate; }
.account-auth__media::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg,rgba(4,10,35,.12),rgba(4,10,35,.92)); }
.account-auth__media > div { max-width: 520px; }
.account-auth__media h1 { margin-top: 1rem; color: #fff; font-size: clamp(2.5rem,4.8vw,5.2rem); line-height: .98; letter-spacing: -.055em; }
.account-auth__media p:last-child { margin-top: 1.5rem; color: rgba(255,255,255,.68); line-height: 1.75; }
.account-auth__form { display: grid; place-items: center; padding: clamp(3rem,7vw,8rem) clamp(1.3rem,6vw,7rem); }
.account-auth__inner { width: min(640px,100%); }
.account-auth__inner h2 { margin-top: .5rem; font-size: clamp(2.6rem,4.5vw,4.6rem); letter-spacing: -.05em; }
.account-auth__inner > p:not(.bm-kicker):not(.account-auth__switch) { margin-top: .8rem; color: #70798e; line-height: 1.65; }
.account-form { display: grid; gap: 1rem; margin-top: 2rem; }
.account-form--two { grid-template-columns: repeat(2,minmax(0,1fr)); }
.account-form__wide { grid-column: 1/-1; }
.account-form label { display: grid; gap: .5rem; color: #303950; font-size: .76rem; font-weight: 700; }
.account-form input,.account-form textarea { width: 100%; min-height: 52px; padding: .8rem .9rem; border: 1px solid #ced5e0; border-radius: 5px; background: #fff; color: var(--trip-navy); font-size: .9rem; font-weight: 400; outline: none; }
.account-form textarea { min-height: 120px; }
.account-form input:focus,.account-form textarea:focus { border-color: var(--trip-navy); box-shadow: 0 0 0 3px rgba(4,10,35,.08); }
.account-form label small,.account-message-form small { color: #b42318; font-weight: 500; }
.account-check { display: flex !important; grid-template-columns: 20px 1fr; align-items: flex-start; }
.account-check input { min-height: 0; width: 18px; height: 18px; }
.account-check a { text-decoration: underline; }
.account-auth__switch { margin-top: 1.4rem; color: #737d91; font-size: .82rem; }
.account-auth__switch a { color: var(--trip-navy); font-weight: 700; text-decoration: underline; }
.account-alert { margin-top: 1.2rem; padding: .9rem 1rem; border: 1px solid #f3b8b5; background: #fff0ef; color: #9c2d26; font-size: .82rem; }
.account-alert--success { border-color: #a9d8c5; background: #edf9f4; color: #23654c; }
.account-hero { position: relative; padding: clamp(6rem,10vw,10rem) 0 5rem; color: #fff; background: var(--trip-navy); overflow: hidden; }
.account-hero::before { content: ""; position: absolute; width: 680px; height: 680px; right: -200px; top: -360px; border: 1px solid rgba(255,255,255,.11); border-radius: 50%; box-shadow: 0 0 0 120px transparent,0 0 0 121px rgba(255,255,255,.06); }
.account-hero .shell { position: relative; display: flex; justify-content: space-between; align-items: end; gap: 2rem; }
.account-hero h1 { color: #fff; font-size: clamp(3.2rem,6vw,6.5rem); line-height: .95; letter-spacing: -.055em; }
.account-hero p:not(.bm-kicker) { max-width: 620px; margin-top: 1.2rem; color: rgba(255,255,255,.62); }
.account-hero__actions { display: flex; flex-direction: column; align-items: flex-end; gap: 1rem; }
.account-hero__actions .account-primary-action { border-color: rgba(255,255,255,.2); background: #fff; color: var(--trip-navy); }
.account-text-link { color: #596278; font-size: .8rem; text-decoration: underline; }
.account-content { padding-block: clamp(4rem,7vw,7rem); }
.account-metrics { display: grid; grid-template-columns: repeat(auto-fit,minmax(180px,1fr)); gap: 1px; border: 1px solid #d9dfe8; background: #d9dfe8; }
.account-metrics article { min-height: 170px; padding: 1.6rem; background: #fff; }
.account-metrics span,.account-metrics small { display: block; color: #788196; }
.account-metrics span { font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.account-metrics strong { display: block; margin-block: .65rem; font-size: 3rem; line-height: 1; }
.account-metrics small { font-size: .76rem; }

.account-quick-actions { display: grid; grid-template-columns: repeat(auto-fit,minmax(160px,1fr)); gap: 1px; margin-top: 1.5rem; border: 1px solid #d9dfe8; background: #d9dfe8; }
.account-quick-action { display: flex; align-items: center; gap: .6rem; min-height: 64px; padding: 1rem 1.4rem; background: #fff; font-size: .84rem; font-weight: 700; color: var(--trip-navy); }
.account-quick-action:hover { background: #f6f7f9; }
.account-quick-action svg,.account-quick-action .ui-shop-icon { width: 20px; height: 20px; }
.account-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-top: 5rem; }
.account-section-heading h2 { font-size: clamp(2.2rem,4vw,4rem); letter-spacing: -.045em; }
.account-section-heading > a { display: inline-flex; align-items: center; gap: .55rem; font-size: .8rem; font-weight: 700; }
.account-enquiry-list { margin-top: 2rem; border-top: 1px solid #ccd3dd; }
.account-enquiry-row { min-height: 104px; display: grid; grid-template-columns: 160px minmax(0,1fr) 200px 28px; gap: 1.2rem; align-items: center; border-bottom: 1px solid #ccd3dd; transition: padding .25s var(--trip-ease),background .25s; }
.account-enquiry-row:hover { padding-inline: 1rem; background: #fff; }
.account-enquiry-row > span:nth-child(2) strong,.account-enquiry-row > span:nth-child(2) small { display: block; }
.account-enquiry-row > span:nth-child(2) small { margin-top: .35rem; color: #7b8497; font-size: .74rem; }
.account-channel { color: #968777; font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.account-status { display: inline-flex; width: fit-content; align-items: center; gap: .4rem; padding: .38rem .65rem; border-radius: 999px; background: #e9edf3; color: #4b566e; font-size: .68rem; font-weight: 700; }
.account-status::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: #8390a5; }
.account-status--confirmed,.account-status--completed { background: #e6f5ee; color: #25654d; }
.account-status--confirmed::before,.account-status--completed::before { background: #3d9b74; }
.account-status--awaiting_customer,.account-status--quote_sent { background: #fff2dc; color: #7a5420; }
.account-status--awaiting_customer::before,.account-status--quote_sent::before { background: #cc8e36; }
.account-status--paid,.account-status--processing,.account-status--shipped { background: #e6f5ee; color: #25654d; }
.account-status--paid::before,.account-status--processing::before,.account-status--shipped::before { background: #3d9b74; }
.account-status--pending_payment { background: #fff2dc; color: #7a5420; }
.account-status--pending_payment::before { background: #cc8e36; }
.account-status--cancelled,.account-status--refunded { background: #fbeaea; color: #8c2f27; }
.account-status--cancelled::before,.account-status--refunded::before { background: #c85c50; }
.account-empty { margin-top: 2rem; padding: 4rem 2rem; text-align: center; background: #fff; border: 1px solid #dce1e9; }
.account-empty h3 { margin-top: 1rem; font-size: 1.5rem; }
.account-empty p { max-width: 560px; margin: .8rem auto 1.3rem; color: #70798e; }
.account-section-heading--shop { margin-top: 6rem; }
.account-saved-empty { margin-top: 2rem; display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: 2rem; background: var(--trip-navy); color: #fff; }
.account-saved-empty p { color: rgba(255,255,255,.68); }
.account-saved-empty a { display: inline-flex; align-items: center; gap: .6rem; white-space: nowrap; font-weight: 700; }
.account-saved-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1rem; margin-top: 2rem; }
.account-saved-grid article { background: #fff; padding-bottom: 1rem; }
.account-saved-grid img { aspect-ratio: 1; width: 100%; object-fit: cover; }
.account-saved-grid h3 { padding: 1rem 1rem .4rem; font-size: .9rem; }
.account-saved-grid form { padding-inline: 1rem; }
.account-saved-grid button { color: #747e92; font-size: .72rem; text-decoration: underline; }
/* Cart & checkout — The Shop's real checkout pages. */
.cart-table { display: grid; gap: 0; border-top: 1px solid #d9dfe8; }
.cart-row { display: grid; grid-template-columns: 72px minmax(0,1fr) 130px 110px 44px; gap: 1.1rem; align-items: center; padding: 1.1rem 0; border-bottom: 1px solid #d9dfe8; }
.cart-row--problem { background: #fff7f6; }
.cart-row__media img { width: 72px; height: 72px; object-fit: cover; border-radius: 6px; background: #f0f3f7; }
.cart-row__body a { color: var(--trip-navy); }
.cart-row__body small { display: block; margin-top: .25rem; color: #778095; font-size: .78rem; }
.cart-row__warning { margin-top: .35rem; color: #b42318; font-size: .75rem; font-weight: 600; }
.cart-row__quantity label { display: flex; align-items: center; gap: .5rem; font-size: .74rem; color: #778095; }
.cart-row__quantity input { width: 64px; height: 40px; border: 1px solid #d9dfe8; border-radius: 6px; padding-inline: .5rem; }
.cart-row__price { font-weight: 700; text-align: right; white-space: nowrap; }
.cart-row__remove button { width: 36px; height: 36px; border: 1px solid #d9dfe8; border-radius: 50%; color: #778095; font-size: 1.1rem; line-height: 1; }
.cart-row__remove button:hover { color: #b42318; border-color: #f3b8b5; }
.cart-summary { margin-top: 1.5rem; padding: 1.5rem; background: #f6f7f9; border: 1px solid #d9dfe8; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; }
.cart-summary > div { display: flex; align-items: baseline; gap: .6rem; font-size: 1.3rem; }
.cart-summary > div span { font-size: .8rem; color: #778095; }
.cart-summary__note { flex-basis: 100%; margin: 0; color: #778095; font-size: .78rem; }
.cart-summary__trust { flex-basis: 100%; margin: 0; color: #4f596e; font-size: .78rem; }

.checkout-assurance-strip { background: #eef2f7; border-block: 1px solid #e4e8ef; }
.checkout-assurance-strip .shell { display: flex; flex-wrap: wrap; gap: .6rem 2rem; padding-block: .9rem; font-size: .76rem; color: #4f596e; font-weight: 600; }
.checkout-grid { display: grid; grid-template-columns: minmax(0,1.4fr) minmax(300px,.6fr); gap: 2rem; align-items: start; }
.checkout-form h2 { margin: 2rem 0 1.2rem; font-size: 1.3rem; }
.checkout-form h2:first-child { margin-top: 0; }
.checkout-form .field { margin-bottom: 1.1rem; }
.checkout-form .field span { color: #778095; font-weight: 400; }
.field-hint { margin-top: .4rem; color: #778095; font-size: .78rem; }
.checkout-gateways { display: grid; gap: .7rem; }
.checkout-gateway { display: flex; align-items: center; gap: .7rem; padding: .9rem 1rem; border: 1px solid #d9dfe8; border-radius: 8px; font-size: .88rem; font-weight: 600; }
.checkout-gateway input { width: auto; }
.checkout-form button[type="submit"] { margin-top: 1.75rem; width: 100%; justify-content: center; }
.checkout-support-note { margin-top: .9rem; text-align: center; color: #778095; font-size: .78rem; }
.quote-confirmation-cross-sell { max-width: 32rem; margin: 2.5rem auto 0; padding: 1.1rem 1.4rem; background: #fff; border: 1px solid #e4e8ef; border-radius: 8px; }
.quote-confirmation-cross-sell p { margin: 0; color: #596278; font-size: .86rem; }
.checkout-summary { padding: 1.5rem; background: #f6f7f9; border: 1px solid #d9dfe8; position: sticky; top: 6rem; }
.checkout-summary h2 { margin: 0 0 1.1rem; font-size: 1.1rem; }
.checkout-summary__row { display: flex; justify-content: space-between; gap: 1rem; padding: .6rem 0; border-top: 1px solid #e0e4eb; font-size: .85rem; }
.checkout-summary__row:first-of-type { border-top: 0; }
.checkout-summary__row--total { font-weight: 700; font-size: 1rem; border-top: 1px solid #d9dfe8; margin-top: .4rem; padding-top: .8rem; }

.account-subhero { padding: clamp(5rem,8vw,8rem) 0 4rem; color: #fff; background: var(--trip-navy); }
.account-subhero h1 { max-width: 900px; margin-top: .7rem; color: #fff; font-size: clamp(3rem,6vw,6rem); line-height: .96; letter-spacing: -.055em; }
.account-subhero p:last-child { margin-top: 1rem; color: rgba(255,255,255,.65); }
.account-back-link { display: inline-flex; align-items: center; gap: .5rem; margin-bottom: 2.5rem; color: rgba(255,255,255,.72); font-size: .78rem; }
.account-back-link .ui-arrow-icon { width: 20px; height: 20px; }
.account-subhero__meta { display: flex; align-items: center; gap: 1rem; margin-top: 1.3rem; color: rgba(255,255,255,.58); font-size: .76rem; }
.account-detail-grid { display: grid; grid-template-columns: minmax(0,1.4fr) minmax(300px,.6fr); gap: 1.5rem; align-items: start; }
.account-panel { border: 1px solid #d9dfe8; background: #fff; padding: clamp(1.3rem,3vw,2.3rem); }
.account-panel__heading { padding-bottom: 1.2rem; border-bottom: 1px solid #dde2ea; }
.account-panel__heading h2,.account-brief h2 { font-size: 1.35rem; }
.account-panel__heading p { margin-top: .35rem; color: #778095; font-size: .78rem; }
.account-messages { display: grid; gap: 1rem; padding-block: 1.5rem; }
.account-message { max-width: 82%; padding: 1rem 1.1rem; background: #f0f3f7; }
.account-message--customer { margin-left: auto; background: var(--trip-navy); color: #fff; }
.account-message strong,.account-message time { display: block; font-size: .68rem; }
.account-message p { margin-block: .45rem; font-size: .86rem; line-height: 1.65; }
.account-message time { color: #7e8799; }
.account-message--customer time { color: rgba(255,255,255,.52); }
.account-message-empty { padding: 2rem; color: #727b90; text-align: center; background: #f5f7fa; }
.account-message-form { display: grid; gap: .7rem; padding-top: 1.3rem; border-top: 1px solid #dde2ea; }
.account-message-form label { font-size: .78rem; font-weight: 700; }
.account-message-form textarea { width: 100%; padding: .9rem; border: 1px solid #ccd3df; resize: vertical; }
.account-message-form .account-primary-action { justify-self: start; }
.account-brief + .account-brief { margin-top: 1rem; }
.account-brief h2 { margin-bottom: 1rem; }
.account-brief > div { display: grid; grid-template-columns: 110px 1fr; gap: .7rem; padding: .8rem 0; border-top: 1px solid #e0e4eb; }
.account-brief span { color: #80899c; font-size: .72rem; }
.account-brief strong { font-size: .8rem; }
.account-profile-wrap { max-width: 860px; }
.account-profile-wrap .account-panel { margin-top: 1.3rem; }
.account-form__divider { margin-top: 1rem; padding-top: 1.5rem; border-top: 1px solid #dde2ea; font-size: .82rem; font-weight: 700; }
.account-logout-form { margin-top: 1.2rem; text-align: right; }
.account-logout-form button { color: #8d2d2d; font-size: .78rem; text-decoration: underline; }
.consent-banner { pointer-events: auto; }
.consent-banner button { position: relative; z-index: 1; min-height: 44px; pointer-events: auto; }

/* Blog */
.blog-featured { border-radius: 18px; min-height: 560px; }
.blog-slider-section { margin-top: 5rem; padding-top: 4.5rem; }
.blog-slider-section:first-of-type { padding-top: 0; }
.blog-page .bm-round-button { background: #e7ebf2; color: var(--trip-navy); }

/* Multi-step planning */
.planning-page { padding: 0; }
.planning-shell { min-height: 100svh; grid-template-columns: minmax(360px, 31%) minmax(0,1fr); }
.planning-aside { position: relative; isolation: isolate; background: var(--trip-navy); overflow: hidden; }
.planning-aside::before { content: ""; position: absolute; inset: 0; z-index: -2; background: var(--planning-image) center/cover; }
.planning-aside::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(4,10,35,.2), rgba(4,10,35,.92)); }
.planning-aside__intro { margin-top: auto; }
.planning-form-wrap { max-height: 100svh; overflow-y: auto; padding: 2.25rem clamp(2rem,5vw,5.5rem) 0; }
.planning-form-card { max-width: 880px; margin-inline: auto; }
.planning-step__heading { text-align: center; margin-bottom: 2.2rem; }
.planning-step__heading > p { color: #6b5d50; font-size: .72rem; letter-spacing: .15em; text-transform: uppercase; }
.planning-step__heading > span { display: block; margin-top: .7rem; color: #596377; }
.js .planning-step { display: none; }
.js .planning-step.is-active { display: block; animation: stepEnter .55s var(--trip-ease) both; }
@keyframes stepEnter { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
.travel-type-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.travel-type-card { position: relative; display: grid; grid-template-columns: 120px 1fr 24px; gap: 1rem; align-items: center; min-height: 150px; padding: .8rem; border: 1px solid #dce2ec; border-radius: 15px; cursor: pointer; transition: border-color .25s, box-shadow .25s, transform .25s; }
.travel-type-card:hover { transform: translateY(-2px); box-shadow: 0 14px 35px rgba(4,10,35,.09); }
.travel-type-card img { width: 120px; height: 118px; object-fit: cover; border-radius: 10px; }
.travel-type-card input { position: absolute; opacity: 0; pointer-events: none; }
.travel-type-card span { display: block; }
.travel-type-card strong { display: block; font-size: 1.05rem; }
.travel-type-card small { display: block; margin-top: .45rem; color: #6d768c; line-height: 1.45; }
.travel-type-card i { width: 22px; height: 22px; border: 1px solid #bfc7d4; border-radius: 5px; }
.travel-type-card:has(input:checked) { border-color: var(--trip-navy); box-shadow: 0 0 0 3px rgba(4,10,35,.08); }
.travel-type-card:has(input:checked) i { background: var(--trip-navy); box-shadow: inset 0 0 0 5px #fff; }
.planning-field-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.2rem; }
.traveller-counts { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
.planning-checkbox { display: flex; align-items: flex-start; gap: .65rem; color: #667087; line-height: 1.55; }
.planning-checkbox a { color: var(--trip-navy); text-decoration: underline; }
.planning-visa-note { margin-top: -.4rem; color: #83899b; font-size: .76rem; line-height: 1.6; }
.planning-next-steps { margin-top: 1.25rem; color: #667087; font-size: .82rem; line-height: 1.6; }
.planning-actions { display: flex; justify-content: space-between; align-items: center; margin-top: 2rem; padding: 1.25rem 0 1.5rem; border-top: 1px solid #e7eaf0; }
.planning-back { color: #596278; font-weight: 700; }
.planning-progress { margin-bottom: 2.35rem; }
.planning-progress span { transition: width .5s var(--trip-ease); }
.planning-error,.field-error { color: #b42318; }
.planning-error { margin-bottom: 1.5rem; padding: 1rem; border: 1px solid #fecaca; border-radius: 10px; background: #fef2f2; }
.field-error { margin-top: .35rem; font-size: .75rem; }

/* Mobile navigation */
.mobile-drawer { position: fixed; inset: 0; z-index: 90; display: none; }
.mobile-drawer__backdrop { position: absolute; inset: 0; background: rgba(4,10,35,.55); }
.mobile-drawer__panel { position: absolute; inset: 0 0 0 auto; width: min(100%, 520px); display: flex; flex-direction: column; background: #fff; box-shadow: -30px 0 90px rgba(4,10,35,.2); overflow-y: auto; }
.mobile-drawer__header { display: grid; grid-template-columns: 42px 1fr auto; align-items: center; gap: 1rem; padding: 1.2rem 1.3rem; border-bottom: 1px solid #e9edf3; }
.mobile-drawer__header img { width: 145px; }
.mobile-drawer__close { width: 40px; height: 40px; display: grid; place-items: center; }
.mobile-drawer__close svg { width: 28px; }
.mobile-drawer__search,
body.is-home .mobile-drawer__search {
  width: 40px;
  height: 40px;
  color: var(--trip-navy);
  background: #fff;
  border-color: rgba(7,16,39,.3);
}
.mobile-drawer__search:hover,
.mobile-drawer__search:focus-visible,
body.is-home .mobile-drawer__search:hover,
body.is-home .mobile-drawer__search:focus-visible { color: var(--trip-red); background: #f8f9fb; border-color: rgba(212,1,16,.38); }
.mobile-drawer__body { padding: 1rem 1.4rem 3rem; }
.mobile-drawer__primary a { display: flex; justify-content: space-between; align-items: center; padding: 1rem 0; border-bottom: 1px solid #edf0f5; font-size: 1.45rem; letter-spacing: -.03em; }
.mobile-drawer__primary i { width: 28px; height: 28px; display: grid; place-items: center; border: 1px solid #aab2c0; font-style: normal; font-size: .8rem; }
.mobile-drawer__columns { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 2rem 1.5rem; padding-top: 2.2rem; }
.mobile-drawer__columns h3 { margin-bottom: .8rem; font-size: .9rem; text-transform: uppercase; }
.mobile-drawer__columns a { display: block; padding: .32rem 0; color: #5f687e; font-size: .88rem; }
.mobile-drawer__footer { margin-top: auto; display: grid; grid-template-columns: 55px 1fr; gap: 1rem; padding: 1.5rem; border-top: 1px solid #e9edf3; }
.mobile-drawer__footer p { margin-top: .35rem; color: #6e778b; }
.mobile-drawer__footer a { display: inline-block; margin-top: .7rem; font-weight: 700; }
.mobile-drawer__support-links { display: flex; flex-wrap: wrap; gap: .2rem 1rem; }
.mobile-drawer__support-links a { max-width: 100%; overflow-wrap: anywhere; }
.mobile-bottom-nav { display: none; }

/* Footer */
.site-footer { padding-bottom: 1rem; }
.footer-newsletter__intro p { max-width: 410px; }
.footer-logo { max-width: 116px; max-height: 38px; object-fit: contain; padding: .5rem .75rem; border-radius: 9px; background: rgba(255,255,255,.96); box-shadow: 0 8px 22px rgba(2,7,27,.18); }
.footer-brand-lockup { gap: 0; }
.footer-help { grid-template-columns: 1fr; }
.newsletter-button { background: var(--trip-red); color: #fff; }
.newsletter-button:hover { background: var(--trip-red-dark); }

@media (min-width: 641px) and (max-width: 1023px) {
  .footer-newsletter { grid-template-columns: 1fr; gap: 2.4rem; }
  .footer-brand-row { display: flex; align-items: center; justify-content: space-between; }
  .footer-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 3rem 4rem; text-align: left; }
  .footer-help { grid-column: 1 / -1; }
}

/* Reveal fallback and reduced motion */
[data-premium-reveal] { opacity: 0; transform: translateY(28px); transition: opacity .8s var(--trip-ease), transform .8s var(--trip-ease); }
[data-premium-reveal].is-visible { opacity: 1; transform: none; }

@media (max-width: 1023px) {
  .home-journey-services__grid,.home-proof__grid { grid-template-columns: 1fr; }
  .home-itinerary-feature,.home-itinerary-feature__content { min-height: 580px; }
  .home-service-gallery { padding: 4rem max(1.25rem,5vw); }
  .home-testimonial,.home-assurance { min-height: 500px; }
  .home-testimonial__heading { align-items: flex-start; flex-direction: column; }
  .bm-blog-strip__intro { grid-template-columns: 1fr; gap: 1rem; }
  .mobile-drawer { display: block; }
  body { padding-bottom: 70px; }
  .shop-hero-luxury__media img { animation: none; }
  .site-header { position: absolute !important; }
  body:not(.is-home):not(.planning-body) .site-header { position: relative !important; }
  .bm-slider__track,.bm-slider__track--large,.bm-slider__track--destination,.bm-slider__track--service,.bm-slider__track--blog,.bm-slider__track--portrait { grid-auto-columns: minmax(275px, 78%); }
  .destination-editorial-grid,.about-story-grid,.guarantee-grid,.service-process-grid,.destination-intro-grid,.product-detail-grid,.shop-editorial .shell,.shop-enquiry-section > .shell,.shop-faq .shell,.account-auth,.account-detail-grid { grid-template-columns: 1fr; }
  .destination-facts__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .destination-section-heading,.destination-planning__grid { grid-template-columns: 1fr; }
  .destination-city-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .bm-process-grid { grid-template-columns: 1fr; }
  .bm-process-card { min-height: 390px; }
  .bm-process-card__image { height: 100%; }
  .bm-why-media { min-height: 600px; }
  .bm-why-card { top: auto; bottom: 1.2rem; transform: none; }
  .guarantee-media::after { background: rgba(238,243,249,.86); }
  .guarantee-grid > div:first-child { display: none; }
  .contact-form-grid,.planning-field-grid { grid-template-columns: 1fr; }
  .contact-form-grid .sm\:col-span-2,.planning-field-grid .sm\:col-span-2 { grid-column: auto; }
  .service-process-cards { grid-template-columns: 1fr; }
  .shop-heading-row { align-items: stretch; flex-direction: column; }
  .shop-editorial__image::before { inset: 24px 0 -24px 24px; }
  .product-grid-premium { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .planning-shell { grid-template-columns: 1fr; }
  .planning-aside { min-height: 430px; }
  .planning-form-wrap { max-height: none; padding: 2rem 1rem 0; }
  .travel-type-grid { grid-template-columns: 1fr; }
  .mobile-bottom-nav { position: fixed; z-index: 75; left: 0; right: 0; bottom: 0; height: 70px; display: grid; grid-template-columns: repeat(5,1fr); background: rgba(255,255,255,.97); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); border-top: 1px solid rgba(4,10,35,.1); box-shadow: 0 -12px 30px rgba(2,7,27,.08); }
  .mobile-bottom-nav a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .25rem; color: var(--trip-navy); font-size: .68rem; }
  .mobile-bottom-nav span { font-size: 1.05rem; }
  .mobile-bottom-nav strong { font-weight: 600; }
  .floating-whatsapp { bottom: 84px; }
  .consent-banner { bottom: 70px; }
  .site-footer { padding-bottom: 4rem; }
  .site-header__inner { gap: .65rem; }
  .site-search-divider { display: flex; margin-left: auto; padding-left: 0; border-left: 0; }
  .site-actions { margin-left: 0; }
  .bm-search-panel { width: min(100% - 2rem,760px); grid-template-columns: repeat(4,minmax(0,1fr)) 58px; margin: -29px auto -29px; border-radius: 9px; }
  .bm-search-panel__advanced { display: none; }
  .bm-search-panel__field { min-height: 64px; padding: .8rem 1rem; border-right: 1px solid #e8ecf5; border-bottom: 0; }
  .bm-search-panel__button { height: auto; min-height: 58px; }
  .site-account-link { display: none; }
  .shop-intro-strip .shell { grid-template-columns: 1fr; }
  .shop-intro-strip article,.shop-intro-strip article:last-child { border: 0; border-bottom: 1px solid rgba(255,255,255,.1); }
  .shop-filter-form { grid-template-columns: 1fr 1fr; }
  .shop-filter-form label:first-child { grid-column: 1/-1; }
  .product-detail-media { position: relative; top: auto; }
  .account-auth__media { min-height: 460px; }
  .account-hero .shell { align-items: flex-start; flex-direction: column; }
  .account-hero__actions { align-items: flex-start; }
  .account-enquiry-row { grid-template-columns: 110px minmax(0,1fr) 150px 26px; }
  .account-saved-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .checkout-grid { grid-template-columns: 1fr; }
  .checkout-summary { position: static; }
}

@media (max-width: 640px) {
  .site-header__inner { min-height: 72px; }
  .site-logo,.site-logo__image { width: 120px; }
  .site-search-divider { height: 40px; }
  .site-search-button { width: 40px; height: 40px; }
  .site-actions { margin-left: 0; }
  .site-actions .site-cta { display: inline-flex; min-height: 40px; padding-inline: .72rem; font-size: .7rem; }
  .site-menu-button { display: inline-flex; }
  .home-hero .bm-hero__content { padding-top: 7rem; padding-inline: .4rem; }
  .home-hero .bm-hero__content h1 { font-size: clamp(2.1rem, 8.5vw, 2.65rem); line-height: 1.02; }
  .bm-hero__actions { gap: .85rem; margin-top: 1.85rem; }
  .bm-hero__cta { min-height: 46px; padding: 0 1.35rem; font-size: .82rem; }
  .bm-hero__search { margin-top: 2.35rem; }
  .bm-hero--short { min-height: 480px; }
  .bm-search-panel { position: relative; display: flex; align-items: center; width: min(calc(100% - 2.5rem),380px); min-height: 54px; margin: -27px auto 0; padding: 4px 4px 4px 1.15rem; border-radius: 999px; background: #fff; box-shadow: 0 18px 40px rgba(4,10,35,.22); overflow: hidden; }
  .bm-search-panel__field--type,.bm-search-panel__advanced { display: none; }
  .bm-search-panel__field { position: relative; flex: 1 1 0; min-width: 0; min-height: 0; padding: 0 .5rem; border: 0; background: transparent; color: var(--trip-navy); }
  .bm-search-panel__field:first-of-type { padding-left: 0; }
  .bm-search-panel__field span,.bm-search-panel__field small { display: none; }
  .bm-search-panel__field:not(.bm-search-panel__field--type) ~ .bm-search-panel__field:not(.bm-search-panel__field--type)::before { content: "•"; position: absolute; left: -3px; top: 50%; translate: 0 -50%; color: #c7cbd6; font-size: .65rem; }
  .bm-search-select { width: 100%; padding: 0; border: 0; background: transparent; font-size: .72rem; font-weight: 600; color: var(--trip-navy); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; appearance: none; -webkit-appearance: none; }
  .bm-search-panel__button { flex: 0 0 auto; width: 46px; height: 46px; min-height: 0; border-radius: 50%; background: var(--trip-navy); color: #fff; }
  .bm-search-panel__button > svg { padding: 0; background: transparent; }
  .bm-search-panel__button svg { width: 16px; height: 16px; }
  body.is-home .bm-search-panel { position: relative; z-index: 12; top: auto; left: auto; margin: 0 auto; translate: none; }
  body.is-home .bm-search-panel::before { content: none; }
  body.is-home .bm-search-panel__label { position: absolute; left: 50%; bottom: calc(100% + .5rem); translate: -50% 0; font-size: .68rem; white-space: nowrap; }
  .bm-title-row { margin-bottom: 2rem; }
  .bm-featured-trips { padding-top: 4.5rem; }
  .home-itinerary-feature,.home-itinerary-feature__content { min-height: 620px; }
  .home-itinerary-feature__content { padding: 3rem 1rem; }
  .home-itinerary-feature__content h2 { font-size: 2.2rem; }
  .home-service-gallery { padding: 3.5rem 1rem; }
  .home-service-gallery__heading { align-items: flex-start; flex-direction: column; gap: .5rem; }
  .home-service-gallery__heading .bm-floating-controls { margin-top: .75rem; }
  .home-service-gallery__track { grid-auto-columns: 88%; }
  .home-service-gallery .bm-image-card { min-height: 340px; }
  .home-testimonial { min-height: 570px; padding: 3.5rem 1rem; }
  .home-testimonial__heading { margin-top: 3rem; }
  .home-testimonial__heading p { white-space: normal; }
  .home-testimonial blockquote { margin-top: 1.6rem; font-size: .94rem; line-height: 1.7; }
  .home-assurance { grid-template-columns: 1fr; min-height: 0; }
  .home-assurance__content { padding: 3.5rem 1rem 2.5rem; }
  .home-assurance__media { min-height: 260px; }
  .home-assurance__media::after { background: linear-gradient(180deg, var(--trip-navy-soft) 0%, rgba(8,17,47,0) 14%); }
  .bm-blog-strip .bm-title-row { display: flex; align-items: flex-start; flex-direction: column; }
  .bm-title-actions { align-items: flex-start; flex-direction: column; }
  .bm-floating-controls { margin-top: 1.2rem; }
  .bm-slider__track,.bm-slider__track--large,.bm-slider__track--destination,.bm-slider__track--service,.bm-slider__track--blog,.bm-slider__track--portrait { grid-auto-columns: 88%; gap: .9rem; }
  .bm-image-card { min-height: 350px; }
  .bm-image-card--portrait { min-height: 440px; }
  .destination-editorial-grid { gap: 2rem; }
  .destination-facts__grid,.destination-city-grid,.destination-experience-grid { grid-template-columns: 1fr; }
  .destination-facts article,.destination-facts article:last-child { min-height: 150px; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.11); }
  .destination-city-card { min-height: 430px; }
  .destination-experience-card { min-height: 310px; }
  .destination-section-heading { margin-bottom: 2rem; }
  .destination-cta { min-height: 560px; }
  .destination-cta h2 { font-size: clamp(2.15rem,10vw,3.3rem); }
  .bm-process-card { min-height: 360px; }
  .bm-process-card__image { height: 100%; }
  .bm-why-media { min-height: 650px; border-radius: 12px; }
  .bm-why-card { width: calc(100% - 1.4rem); left: .7rem; bottom: .7rem; padding: 1.4rem; }
  .about-story-media { margin: 0; }
  .about-story-media::before { left: -10px; bottom: -10px; }
  .guarantee-section .grid.sm\:grid-cols-2 { grid-template-columns: 1fr; }
  .contact-image-side { min-height: 520px; padding: 2rem 1.2rem; }
  .search-page-premium__content { padding-top: calc(var(--nav-height) + 4rem); }
  .premium-search-form { grid-template-columns: 1fr; padding: .65rem; }
  .premium-search-form input { min-height: 52px; }
  .destination-story,.destination-story__content { min-height: 620px; }
  .service-process-card { min-height: 310px; }
  .shop-filter-form { display: grid; grid-template-columns: 1fr; }
  .shop-filter-form label:first-child { grid-column: auto; }
  .shop-filter-form .form-control { width: 100%; }
  .product-grid-premium { gap: 1.5rem .8rem; }
  .product-tile__quick-add { opacity: 1; transform: none; padding: .5rem; }
  .product-tile__quick-add span { position: static; padding: 0; color: inherit; background: none; }
  .product-tile__body h2,.product-tile__body h3,.product-tile__body h4 { font-size: .88rem; }
  .blog-featured { min-height: 440px; }
  .travel-type-card { grid-template-columns: 88px 1fr 22px; min-height: 128px; }
  .travel-type-card img { width: 88px; height: 96px; }
  .planning-aside { min-height: 370px; padding: 2rem 1.2rem; }
  .planning-logo { width: 132px; }
  .planning-close { top: 1rem; right: 1rem; }
  .planning-progress { margin-bottom: 2rem; }
  .mobile-drawer__panel { width: 100%; }
  .mobile-drawer__header { grid-template-columns: 34px minmax(0,1fr) 40px auto; gap: .65rem; padding: 1rem; }
  .mobile-drawer__header img { width: 126px; }
  .mobile-drawer__header .site-cta { display: inline-flex; height: 40px; padding-inline: .75rem; font-size: .72rem; }
  .mobile-drawer__primary a { font-size: 1.2rem; }
  .mobile-drawer__columns { gap: 1.5rem 1rem; }
  .mobile-drawer__primary .ui-arrow-icon { width: 27px; height: 27px; }
  .shop-hero-luxury { min-height: 720px; }
  .shop-hero-luxury__content { padding-block: 10rem 5rem; }
  .shop-hero-luxury__content h1 { font-size: clamp(3rem,14vw,4.7rem); }
  .shop-hero-luxury__note { display: none; }
  .shop-intro-strip article { min-height: 105px; padding-inline: .4rem; }
  .shop-editorial__image::before { inset: 16px 0 -10px 16px; }
  .product-assurance { grid-template-columns: 1fr; }
  .product-detail-copy h1 { font-size: clamp(2.8rem,14vw,4.4rem); }
  .account-auth__media { min-height: 380px; padding: 2rem 1.2rem; }
  .account-auth__media h1 { font-size: 2.7rem; }
  .account-auth__form { padding: 3.5rem 1.1rem; }
  .account-form--two { grid-template-columns: 1fr; }
  .account-form__wide { grid-column: auto; }
  .account-hero { padding-top: 5.5rem; }
  .account-metrics { grid-template-columns: 1fr; }
  .account-metrics article { min-height: 130px; border-right: 0; border-bottom: 1px solid #d9dfe8; }
  .account-section-heading { align-items: flex-start; flex-direction: column; }
  .account-enquiry-row { grid-template-columns: 1fr 28px; gap: .8rem; padding: 1.2rem 0; }
  .account-enquiry-row .account-channel,.account-enquiry-row .account-status { grid-column: 1; }
  .account-enquiry-row .ui-arrow-icon { grid-column: 2; grid-row: 1/4; }
  .account-saved-empty { align-items: flex-start; flex-direction: column; }
  .account-saved-grid { grid-template-columns: 1fr 1fr; }
  .account-subhero { padding-top: 4rem; }
  .account-subhero h1 { font-size: 3.1rem; }
  .account-detail-grid { gap: 1rem; }
  .account-message { max-width: 94%; }
  .mobile-bottom-nav a { font-size: .6rem; }
  .footer-newsletter__intro { align-items: flex-start; flex-direction: column; }
  .footer-brand-row { align-items: center; }
  .footer-brand-lockup { text-align: center; }
  .footer-socials { align-self: center; justify-self: center; }
  .footer-grid { text-align: center; }
  .footer-help { justify-items: center; }
  .footer-contact-row { justify-content: center; }
  .footer-legal-row { justify-content: center; }
  .footer-bottom { justify-items: center; text-align: center; }
  .footer-bottom strong { justify-self: center; }
}

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

/* Final integration fixes */
.contact-panel { padding-top: 0 !important; }
.planning-body .mobile-bottom-nav,
.planning-body .consent-banner { display: none !important; }
.planning-body main { min-height: 100svh; }
.planning-progress strong { left: var(--progress-position, 33%); transition: left .5s var(--trip-ease); }
.footer-socials svg { width: 18px; height: 18px; }
.footer-badges { opacity: 1; }
.footer-badges span { color: rgba(255,255,255,.72); }
.footer-contact-row small { color: rgba(255,255,255,.72); }
.about-band .bm-kicker { color: #fff; }
.mobile-bottom-nav svg { width: 20px; height: 20px; flex: 0 0 auto; }
.mobile-bottom-nav a:hover,.mobile-bottom-nav a:focus-visible { color: var(--trip-aqua); }
.mobile-bottom-nav__primary { color: #fff !important; }
.mobile-bottom-nav__primary svg { padding: 5px; border-radius: 50%; background: var(--trip-red); box-sizing: content-box; }

/* Full-width alignment, persistent navigation and shared search */
.shell,
.site-header__inner {
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  margin-inline: auto;
  padding-inline: clamp(1rem,5vw,6rem);
}

/* Tier 2 of 3 — see the cascade note near this file's first .site-header rule. */
.site-header,
body:not(.is-home):not(.planning-body) .site-header {
  position: sticky;
  inset: 0 0 auto;
  top: 0;
  z-index: 70;
}

body.is-home .site-header {
  position: fixed;
  inset: 0 0 auto;
  background: transparent;
  border-bottom-color: transparent;
  backdrop-filter: none;
  box-shadow: none;
}

body.is-home .site-header.is-scrolled {
  background: rgba(255,255,255,.97);
  border-bottom-color: rgba(4,10,35,.08);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  box-shadow: 0 12px 36px rgba(1,5,22,.1);
}

.contact-page,
.contact-panel { padding-top: 0 !important; }

button.bm-search-panel__field,
button.bm-search-panel__advanced,
button.bm-search-panel__button {
  border-top: 0;
  border-left: 0;
  border-bottom: 0;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

@media (min-width: 1024px) {
  .bm-search-panel,
  body.is-home .bm-search-panel {
    width: min(calc(100% - 2.5rem),1120px);
    grid-template-columns: 1.1fr repeat(3,minmax(0,1fr)) .72fr 82px;
    margin-top: -46px;
    margin-bottom: -46px;
    overflow: visible;
  }

  body.is-home .bm-search-panel { margin-top: 0; margin-bottom: 0; }
  .bm-search-panel__field:first-child { border-radius: 11px 0 0 11px; }
  .bm-search-panel__button { border-radius: 0 11px 11px 0; }
}

html.search-modal-open { overflow: hidden; }
.site-search-modal { position: fixed; inset: 0; z-index: 120; display: grid; place-items: start center; padding: clamp(1rem,6vh,4.5rem) 1rem; }
.site-search-modal__backdrop { position: absolute; inset: 0; background: rgba(4,10,35,.78); }
.site-search-modal__panel { position: relative; width: min(980px,100%); max-height: calc(100svh - clamp(2rem,12vh,9rem)); display: flex; flex-direction: column; overflow: hidden; color: var(--trip-ink); background: #fff; border-radius: 14px; box-shadow: 0 34px 100px rgba(1,5,22,.35); }
.site-search-modal__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 2rem; padding: clamp(1.4rem,4vw,2.8rem); border-bottom: 1px solid #e8ebf1; }
.site-search-modal__header span { color: #7a8497; font-size: .7rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.site-search-modal__header h2 { margin-top: .45rem; font-size: clamp(1.7rem,3vw,2.7rem); font-weight: 450; line-height: 1.05; letter-spacing: -.04em; }
.site-search-modal__close { width: 44px; height: 44px; flex: 0 0 auto; display: grid; place-items: center; border: 1px solid #dce1e9; border-radius: 50%; background: #fff; color: var(--trip-navy); }
.site-search-modal__close svg { width: 22px; height: 22px; }
.site-search-modal__form { padding: 1.4rem clamp(1.4rem,4vw,2.8rem) 1rem; }
.site-search-modal__form > label { display: block; margin-bottom: .7rem; color: #667086; font-size: .78rem; }
.site-search-modal__input-row { min-height: 64px; display: grid; grid-template-columns: 28px minmax(0,1fr) auto; align-items: center; gap: .8rem; padding: .45rem .5rem .45rem 1.1rem; border: 1px solid #cfd6e1; border-radius: 10px; background: #f8f9fb; }
.site-search-modal__input-row > svg { width: 24px; height: 24px; color: var(--trip-navy); }
.site-search-modal__input-row input { width: 100%; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--trip-ink); font-size: 1rem; }
.site-search-modal__input-row button { min-height: 48px; padding: .75rem 1.35rem; border-radius: 8px; background: var(--trip-red); color: #fff; font-size: .8rem; font-weight: 700; }
.site-search-modal__input-row button:disabled { opacity: .62; cursor: wait; }
.site-search-modal__status { min-height: 32px; padding: 0 clamp(1.4rem,4vw,2.8rem); color: #6c7588; font-size: .8rem; }
.site-search-modal__status p { padding-bottom: .8rem; }
.site-search-modal__results { min-height: 0; display: grid; overflow-y: auto; padding: 0 clamp(1.4rem,4vw,2.8rem) 1.2rem; }
.site-search-modal__result { min-height: 82px; display: grid; grid-template-columns: 88px minmax(0,1fr) 24px; align-items: center; gap: 1rem; padding: 1rem 0; border-top: 1px solid #e8ebf1; }
.site-search-modal__result > span { color: var(--trip-red); font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.site-search-modal__result h3 { font-size: 1rem; font-weight: 650; }
.site-search-modal__result p { margin-top: .3rem; overflow: hidden; color: #687287; font-size: .78rem; line-height: 1.5; text-overflow: ellipsis; white-space: nowrap; }
.site-search-modal__result .ui-arrow-icon { width: 22px; height: 22px; margin: 0; }
.site-search-modal__footer { display: flex; align-items: center; flex-wrap: wrap; gap: .65rem; padding: 1rem clamp(1.4rem,4vw,2.8rem) 1.4rem; border-top: 1px solid #e8ebf1; background: #f7f8fa; }
.site-search-modal__footer > span { margin-right: .4rem; color: #687287; font-size: .75rem; }
.site-search-modal__footer button { min-height: 38px; padding: .45rem .8rem; border: 1px solid #dce1e9; border-radius: 999px; background: #fff; color: var(--trip-navy); font-size: .74rem; }
.site-search-modal button:focus-visible,
.site-search-modal input:focus-visible { outline: 3px solid rgba(212,1,16,.25); outline-offset: 3px; }

@media (max-width: 1023px) {
  .site-header,
  body:not(.is-home):not(.planning-body) .site-header { position: sticky !important; top: 0; }
  body.is-home .site-header { position: fixed !important; }
  .mobile-drawer__footer { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
  .shell,.site-header__inner { padding-inline: 1rem; }
  .site-search-modal { padding: 0; place-items: stretch; }
  .site-search-modal__panel { width: 100%; max-height: 100svh; min-height: 100svh; border-radius: 0; }
  .site-search-modal__header { padding: 1.25rem 1rem; }
  .site-search-modal__header h2 { max-width: 280px; font-size: 1.75rem; }
  .site-search-modal__form { padding: 1.25rem 1rem .8rem; }
  .site-search-modal__input-row { grid-template-columns: 24px minmax(0,1fr); }
  .site-search-modal__input-row button { grid-column: 1 / -1; width: 100%; }
  .site-search-modal__status,.site-search-modal__results { padding-inline: 1rem; }
  .site-search-modal__result { grid-template-columns: 68px minmax(0,1fr) 22px; gap: .65rem; }
  .site-search-modal__footer { margin-top: auto; padding: 1rem; }
}

/* Home proof and press composition */
.home-testimonial-carousel { position: relative; min-width: 0; overflow: hidden; background: #91867b; }
.home-testimonial-track { display: grid; grid-auto-flow: column; grid-auto-columns: 100%; overflow-x: auto; scroll-snap-type: inline mandatory; scroll-behavior: smooth; scrollbar-width: none; }
.home-testimonial-track::-webkit-scrollbar { display: none; }
.home-testimonial-track > * { min-width: 0; scroll-snap-align: start; }
.home-testimonial-carousel__controls { position: absolute; z-index: 5; top: clamp(2.2rem,4vw,4rem); right: clamp(2rem,5vw,6rem); }
.home-testimonial-carousel__controls .bm-round-button:first-child { background: rgba(255,255,255,.3); color: #fff; }
.home-testimonial-carousel__controls .bm-round-button:last-child { background: #fff; color: var(--trip-navy); }
.home-testimonial-carousel__controls .bm-round-button:disabled { opacity: .42; }
.home-press { min-height: 560px; display: grid; grid-template-rows: minmax(0,1fr) 132px; padding: 0; background: var(--trip-navy-soft); }
.home-press__content { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: clamp(3rem,5vw,6rem); }
.home-press__content > p:not(.bm-kicker) { max-width: 500px; margin-top: 1.1rem; color: rgba(255,255,255,.7); font-size: .86rem; line-height: 1.7; }
.home-press__content > a { min-height: 44px; display: inline-flex; align-items: center; margin-top: 2.2rem; color: #fff; font-size: .8rem; font-weight: 700; border-bottom: 1px solid rgba(255,255,255,.42); }
.home-press__logos { width: 100%; display: flex; align-items: center; flex-wrap: wrap; gap: 1.2rem 2rem; margin-top: 2.4rem; color: rgba(255,255,255,.7); }
.home-press__logos strong { font-size: clamp(.85rem,1.1vw,1.12rem); font-weight: 700; letter-spacing: -.03em; }
.home-press__logos small { display: block; font-size: .55em; line-height: .7; }
.home-press__pattern { position: relative; display: flex; align-items: center; padding-inline: clamp(3rem,5vw,6rem); overflow: hidden; border-top: 1px solid rgba(255,255,255,.08); background-color: #071330; background-image: radial-gradient(circle at 18% 34%,transparent 0 22px,rgba(255,255,255,.06) 23px 24px,transparent 25px 44px,rgba(255,255,255,.04) 45px 46px,transparent 47px); background-size: 150px 120px; }
.home-press__pattern img { width: 130px; filter: brightness(0) invert(1); opacity: .9; }

@media (max-width: 640px) {
  .home-testimonial-carousel__controls { top: 2rem; right: 1rem; }
  .home-testimonial { padding-top: 7rem; }
  .home-press { min-height: 540px; grid-template-rows: minmax(0,1fr) 104px; }
  .home-press__content { padding: 3.5rem 1rem; }
  .home-press__logos { gap: 1rem 1.35rem; }
  .home-press__pattern { padding-inline: 1rem; }
}

/* Destination guide keeps every destination page useful even with a small catalogue. */
.destination-guide { border-top: 1px solid #e6e9ef; }
.destination-guide__grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1px; overflow: hidden; border: 1px solid #e1e5ec; border-radius: 14px; background: #e1e5ec; }
.destination-guide__grid article { min-height: 320px; display: flex; flex-direction: column; align-items: flex-start; padding: clamp(1.5rem,3vw,2.8rem); background: #fff; }
.destination-guide__grid article > span { color: var(--trip-red); font-size: .68rem; font-weight: 750; letter-spacing: .14em; text-transform: uppercase; }
.destination-guide__grid h3 { margin-top: 1rem; font-size: clamp(1.25rem,1.7vw,1.65rem); font-weight: 550; letter-spacing: -.035em; }
.destination-guide__grid p { margin-top: 1.1rem; color: #687287; font-size: .86rem; line-height: 1.75; }
.destination-guide__grid strong,.destination-guide__grid a { display: inline-flex; align-items: center; margin-top: auto; padding-top: 1.5rem; color: var(--trip-navy); font-size: .76rem; font-weight: 700; }
.destination-guide__grid a { text-decoration: underline; text-underline-offset: 4px; }
.destination-guide__note { max-width: 960px; margin-top: 1rem; color: #747d8e; font-size: .7rem; line-height: 1.6; }

@media (max-width: 900px) {
  .destination-guide__grid { grid-template-columns: 1fr; }
  .destination-guide__grid article { min-height: 250px; }
}

/* Deliberately subtle pointer lighting for solid navy surfaces. */
.cursor-motion-surface {
  --cursor-x: 50%;
  --cursor-y: 0%;
  background-image: radial-gradient(circle 380px at var(--cursor-x) var(--cursor-y),rgba(255,255,255,.045),transparent 72%);
}

@media (pointer: coarse), (prefers-reduced-motion: reduce) {
  .cursor-motion-surface { background-image: none; }
}

.account-field-help { color: #687287 !important; }
.account-check small { display: block; margin-top: .35rem; color: #b42318; }
.account-verification { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; margin-bottom: 1.5rem; padding: 1.15rem 1.25rem; border: 1px solid #f1c5c8; border-left: 4px solid var(--trip-red); border-radius: 9px; background: #fff7f7; }
.account-verification strong { color: var(--trip-navy); font-size: .9rem; }
.account-verification p { margin-top: .25rem; color: #687287; font-size: .78rem; line-height: 1.55; }
.account-verification button { min-height: 42px; padding: .65rem .9rem; border-radius: 7px; background: var(--trip-red); color: #fff; font-size: .75rem; font-weight: 700; white-space: nowrap; }

/* Reference-led editorial header: clear over the opening scene, solid after it. */
.site-header { height: 88px; }
.site-header__inner { height: 100%; min-height: 0; padding-block: 0; }
.site-logo,.site-logo__image { width: 158px; }
.site-logo__image { max-height: 52px; object-fit: contain; }
.site-cta { min-height: 44px; height: 44px; padding-inline: 1rem; font-size: .76rem; }
/* Tier 3 of 3 (final, wins via !important) — see the cascade note near this file's first .site-header rule. */
.has-transparent-header .site-header {
  position: fixed !important;
  inset: 0 0 auto !important;
  z-index: 80;
  color: #fff;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  transition: background-color .32s ease,box-shadow .32s ease,color .32s ease;
}
.has-transparent-header:not(.page-contact) .site-header:not(.is-scrolled) .site-search-button {
  color: #fff;
  border-color: rgba(255,255,255,.52);
  background: rgba(255,255,255,.06);
}
.has-transparent-header:not(.page-contact) .site-header:not(.is-scrolled) .site-search-button:hover,
.has-transparent-header:not(.page-contact) .site-header:not(.is-scrolled) .site-search-button:focus-visible {
  color: #fff;
  border-color: #fff;
  background: rgba(255,255,255,.14);
}
.has-transparent-header .site-header.is-scrolled {
  color: var(--trip-navy);
  background: rgba(255,255,255,.97) !important;
  box-shadow: 0 12px 34px rgba(2,7,27,.1) !important;
}
.has-transparent-header .site-header.is-scrolled .site-logo__image { filter: none; }
.has-transparent-header .site-header.is-scrolled .site-search-button {
  color: var(--trip-navy);
  border-color: rgba(4,10,35,.24);
  background: rgba(4,10,35,.04);
}
.has-transparent-header .site-header.is-scrolled .site-search-button:hover,
.has-transparent-header .site-header.is-scrolled .site-search-button:focus-visible {
  color: var(--trip-navy);
  border-color: var(--trip-navy);
  background: rgba(4,10,35,.08);
}
.has-transparent-header .site-header.is-scrolled .site-search-divider { border-left-color: rgba(4,10,35,.16); }
.has-transparent-header .site-header.is-scrolled .site-nav__link:hover { color: var(--trip-red); }
.has-transparent-header .site-header.is-scrolled .site-menu-button { border-color: rgba(4,10,35,.24); }
.page-contact .site-header:not(.is-scrolled) { color: var(--trip-navy); }
.page-contact .site-header:not(.is-scrolled) .site-actions { color: #fff; }
.page-contact .site-header:not(.is-scrolled) .site-cta { color: #fff; }

/* Contact composition */
.page-contact main { background: var(--trip-navy); }
.page-contact .contact-page { min-height: 900px; padding: 0 !important; }
.page-contact .contact-panel {
  min-height: 900px;
  grid-template-columns: minmax(0,60%) minmax(0,40%);
  padding: 0 !important;
}
.page-contact .contact-form-side {
  position: relative;
  z-index: 1;
  min-width: 0;
  padding: calc(88px + 2.25rem) clamp(2rem,6.4vw,7.5rem) 3.25rem;
  border-radius: 0 0 36px 0;
}
.contact-breadcrumb { display: flex; align-items: center; gap: .65rem; color: #6d768a; font-size: .76rem; }
.contact-breadcrumb a { text-decoration: underline; text-underline-offset: 3px; }
.page-contact .contact-form-side > h1 { margin-top: 1.75rem; font-size: clamp(1.65rem,2vw,2.15rem); font-weight: 700; line-height: 1.12; letter-spacing: -.04em; }
.page-contact .contact-form-side > h1 span { font-weight: 400; }
.page-contact .contact-office { margin-top: 1.5rem; padding-bottom: 1.8rem; }
.contact-office__tabs { position: relative; min-height: 46px; display: flex; align-items: end; gap: 1.25rem; padding-bottom: .7rem; border-bottom: 1px solid #dde2e9; color: #697287; }
.contact-office__tabs::after { content: ""; position: absolute; bottom: -1px; left: 0; width: 118px; height: 1px; background: var(--trip-navy); }
.contact-office__tabs small { position: absolute; top: -2px; left: 0; font-size: .62rem; }
.contact-office__tabs strong { color: var(--trip-navy); font-size: .86rem; text-transform: uppercase; }
.contact-office__tabs span { padding-left: .5rem; font-size: .82rem; }
.page-contact .contact-office h2 { max-width: 620px; margin-top: 1.35rem; font-size: 1rem; line-height: 1.5; }
.page-contact .contact-office__links { gap: clamp(1.25rem,3vw,3rem); margin-top: 1.15rem; }
.page-contact .contact-office__links a { display: flex; align-items: center; gap: .75rem; }
.page-contact .contact-office__links small { display: block; max-width: 210px; overflow: hidden; color: #5c6577; font-size: .66rem; text-overflow: ellipsis; white-space: nowrap; }
.page-contact .contact-office__links strong { display: block; margin-top: .08rem; color: var(--trip-navy); font-size: .98rem; font-weight: 500; }
.contact-office__icon { width: 34px; flex: 0 0 34px; color: #87796f; font-size: 1.55rem; text-align: center; }
.contact-form-heading { margin-top: 1.75rem; font-size: 1rem; font-weight: 700; }
.page-contact .contact-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .8rem .9rem; margin-top: 1.1rem; }
.page-contact .contact-wide { grid-column: 1 / -1; }
.page-contact .form-control { height: 51px; border-radius: 12px; font-size: .78rem; }
.page-contact textarea.form-control { min-height: 72px; padding-top: .8rem; }
.page-contact .form-label { margin-bottom: .35rem; font-size: .68rem; }
.contact-check { display: flex; align-items: flex-start; gap: .55rem; color: #667086; font-size: .72rem; line-height: 1.45; }
.contact-check input { width: 17px; height: 17px; flex: 0 0 17px; margin-top: .08rem; accent-color: var(--trip-red); }
.contact-check a { color: var(--trip-navy); font-weight: 650; text-decoration: underline; text-underline-offset: 3px; }
.contact-form-actions { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 1rem; }
.contact-form-actions .bm-pill-button { align-self: end; white-space: nowrap; }
.page-contact .contact-image-side { min-height: 900px; padding: calc(88px + 2rem) clamp(2rem,4vw,4.6rem) 3.5rem; }
.page-contact .contact-image-side::before { transform: none; background: linear-gradient(180deg,rgba(4,12,38,.15),rgba(4,12,38,.86)),var(--contact-image) center/cover; }
.page-contact .contact-image-side__content { max-width: 460px; }
.page-contact .contact-image-side h2 { margin-top: 1.5rem; font-size: clamp(2.1rem,3vw,3.3rem); line-height: .94; }
.page-contact .contact-image-side h2 span { font-weight: 300; color: rgba(255,255,255,.68); }
.page-contact .contact-image-side__content > p { max-width: 430px; margin-top: 1.2rem; color: rgba(255,255,255,.66); font-size: .92rem; line-height: 1.5; }
.contact-orbit-mark { width: 38px; height: 38px; display: block; border: 3px solid #fff; border-radius: 50%; box-shadow: 0 7px 0 -4px #fff; }
.page-contact .contact-social-row { margin-top: 1.25rem; }
.page-contact .contact-social-row span,.page-contact .contact-social-row a { background: #fff; color: var(--trip-navy); }
.contact-office__hours { margin-top: .45rem; color: #5c6577; font-size: .78rem; }
.footer-office-meta { margin-top: 1.15rem; color: rgba(255,255,255,.48) !important; font-size: .78rem !important; line-height: 1.55; }

/* About page proportions and supplementary editorial sections. */
.page-about .about-hero { min-height: 560px; }
.page-about .about-hero::after { content: ""; position: absolute; left: clamp(1rem,4vw,5rem); bottom: 1rem; width: clamp(240px,30vw,470px); aspect-ratio: 1.45; z-index: 1; background: url('../../brand/tripvoria-mark-raw.png') center/contain no-repeat; filter: brightness(0) invert(1); opacity: .075; pointer-events: none; }
.page-about .about-hero .bm-hero__content { width: min(calc(100% - 2rem),1760px); max-width: none; min-height: 560px; display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-end; margin-inline: auto; padding: calc(88px + 2rem) clamp(1rem,4vw,5rem) 4.5rem; text-align: left; }
.page-about .about-hero .bm-hero__eyebrow { margin: 0 0 1.35rem; }
.page-about .about-hero .bm-hero__content h1 { max-width: 760px; margin-inline: 0; font-size: clamp(1.8rem,2.45vw,3rem); }
.page-about .about-hero .bm-hero__content > p:not(.bm-hero__eyebrow) { max-width: 760px; margin-inline: 0; }
.page-about .about-story-section .beat-sm { padding-block: 4.5rem; }
.page-about .about-band { min-height: 420px; display: flex; align-items: center; background: #504a44; }
.page-about .guarantee-section { min-height: 560px; }
.page-about .guarantee-card { min-height: 180px; padding: 1.45rem; border-radius: 8px; }
.about-inspired { background: #fff; }
.about-inspired > .shell { min-height: 300px; display: grid; grid-template-columns: minmax(220px,.7fr) minmax(0,1.3fr); align-items: center; gap: clamp(2rem,6vw,6rem); max-width: 1040px; }
.about-inspired__media { align-self: end; height: 260px; overflow: hidden; }
.about-inspired__media img { width: 100%; height: 100%; object-fit: cover; object-position: center 25%; }
.about-inspired p:not(.bm-kicker) { max-width: 640px; margin-top: 1rem; color: #687287; font-size: .84rem; line-height: 1.7; }
.about-press { border-top: 1px solid #e6e9ef; background: #fff; }
.about-press__grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: clamp(1.5rem,3vw,3rem); margin-top: 2rem; }
.about-press__grid article { min-width: 0; }
.about-press__grid strong { color: #5c6577; font-size: .7rem; text-transform: uppercase; }
.about-press__grid h3 { margin-top: 1rem; font-size: 1rem; font-weight: 450; line-height: 1.35; }
.about-press__grid time { display: block; margin-top: 1.4rem; color: #858da0; font-size: .66rem; }
.page-about .about-services-section { padding-bottom: 2rem; }

/* Destination index is one immersive editorial stage, as in the reference. */
.destination-stage { position: relative; min-height: 790px; overflow: hidden; color: #fff; background: var(--trip-navy); }
.destination-stage::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg,rgba(4,9,31,.88) 0,rgba(4,9,31,.72) 43%,rgba(4,9,31,.38) 100%),var(--destination-stage-image) center/cover; }
.destination-stage::after { content: ""; position: absolute; inset: auto 0 0; height: 34%; background: linear-gradient(transparent,rgba(4,9,31,.72)); pointer-events: none; }
.destination-stage > .shell { position: relative; z-index: 1; }
.destination-stage__top { padding-top: calc(88px + 1.2rem); }
.destination-stage__top > p { display: flex; align-items: center; gap: .65rem; color: rgba(255,255,255,.72); font-size: .74rem; }
.destination-stage__top > p a { text-decoration: underline; text-underline-offset: 3px; }
.destination-stage__top nav { display: flex; gap: 2.4rem; margin-top: 1.25rem; }
.destination-stage__top nav a { color: rgba(255,255,255,.52); font-size: .78rem; font-weight: 650; }
.destination-stage__top nav a[aria-current="page"] { color: #fff; }
.destination-stage__layout { min-height: 610px; display: grid; grid-template-columns: minmax(300px,.68fr) minmax(0,1.55fr); align-items: center; gap: clamp(2.5rem,7vw,8rem); padding-block: 1.5rem 3rem; }
.destination-stage__intro h1 { margin-top: .8rem; font-size: clamp(2.5rem,4vw,4.8rem); font-weight: 600; line-height: .94; letter-spacing: -.055em; }
.destination-stage__intro > p:not(.bm-kicker) { max-width: 500px; margin-top: 2rem; color: rgba(255,255,255,.84); font-size: .9rem; line-height: 1.7; }
.destination-stage__intro .bm-pill-button { margin-top: 2.6rem; }
.destination-stage__collection { min-width: 0; }
.destination-stage__heading { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; margin-bottom: 1.5rem; }
.destination-stage__heading h2 { font-size: 1.18rem; font-weight: 650; }
.destination-stage__track { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(250px,31%); gap: .85rem; overflow-x: auto; scroll-snap-type: inline mandatory; scrollbar-width: none; }
.destination-stage__track::-webkit-scrollbar { display: none; }
.destination-stage__card { position: relative; min-height: 340px; overflow: hidden; border-radius: 10px; scroll-snap-align: start; }
.destination-stage__card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg,transparent 35%,rgba(3,9,31,.9)); }
.destination-stage__card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .55s ease; }
.destination-stage__card:hover img { transform: scale(1.035); }
.destination-stage__badge { position: absolute; z-index: 2; top: 1.4rem; left: 1.4rem; padding: .65rem .9rem; border-radius: 7px; background: var(--trip-red); color: #fff; font-size: .72rem; font-weight: 750; }
.destination-stage__card-copy { position: absolute; z-index: 2; inset: auto 1.5rem 1.5rem; display: grid; gap: .55rem; }
.destination-stage__card-copy strong { font-size: 1.55rem; letter-spacing: -.04em; }
.destination-stage__card-copy > span { display: inline-flex; align-items: center; gap: .7rem; color: #fff; font-size: .75rem; text-decoration: underline; text-underline-offset: 3px; }
.destination-stage__card-copy .ui-arrow-icon { width: 20px; height: 20px; margin-left: .2rem; }

@media (max-width: 1023px) {
  .site-header { height: 76px; }
  body.has-transparent-header:not(.planning-body) .site-header {
    position: fixed !important;
    inset: 0 0 auto !important;
  }
  body.has-transparent-header main { margin-top: 0; }
  .page-contact .contact-panel { grid-template-columns: 1fr; }
  .page-contact .contact-form-side { padding: calc(76px + 2rem) 1.25rem 3rem; border-radius: 0; }
  .page-contact .contact-image-side { min-height: 520px; padding-top: 4rem; }
  .page-contact .site-header:not(.is-scrolled) .site-actions { color: var(--trip-navy); }
  .about-inspired > .shell { grid-template-columns: .7fr 1.3fr; }
  .about-press__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .destination-stage { min-height: 860px; }
  .destination-stage__top { padding-top: calc(76px + 1.4rem); }
  .destination-stage__layout { min-height: 700px; grid-template-columns: 280px minmax(0,1fr); gap: 2rem; }
  .destination-stage__track { grid-auto-columns: minmax(250px,72%); }
}

@media (max-width: 640px) {
  .site-logo,.site-logo__image { width: 126px; }
  .page-contact .contact-page,.page-contact .contact-panel { min-height: 0; }
  .page-contact .contact-form-grid { grid-template-columns: 1fr; }
  .contact-form-actions { grid-template-columns: 1fr; }
  .contact-form-actions .bm-pill-button { width: 100%; }
  .page-contact .contact-image-side { min-height: 460px; }
  .page-contact .contact-image-side h2 { font-size: 2.35rem; }
  .page-about .about-hero { min-height: 620px; }
  .page-about .about-story-section .beat-sm { padding-block: 3.5rem; }
  .page-about .about-band { min-height: 0; }
  .about-inspired > .shell { grid-template-columns: 1fr; padding-top: 3rem; }
  .about-inspired__media { order: 2; height: 230px; }
  .about-press__grid { grid-template-columns: 1fr; }
  .destination-stage { min-height: 900px; }
  .destination-stage__top nav { gap: 1rem; overflow-x: auto; }
  .destination-stage__layout { min-height: 0; grid-template-columns: 1fr; align-items: start; padding-top: 4rem; }
  .destination-stage__intro > p:not(.bm-kicker) { margin-top: 1.25rem; }
  .destination-stage__intro .bm-pill-button { margin-top: 1.5rem; }
  .destination-stage__heading { margin-top: 2.5rem; }
  .destination-stage__heading .bm-floating-controls { display: none; }
  .destination-stage__track { grid-auto-columns: minmax(245px,82%); padding-bottom: 3rem; }
  .account-verification { align-items: flex-start; flex-direction: column; }
  .account-verification button { width: 100%; }
  .cart-row { grid-template-columns: 56px minmax(0,1fr) 32px; grid-template-areas: "media body remove" "media quantity price"; row-gap: .6rem; }
  .cart-row__media { grid-area: media; }
  .cart-row__body { grid-area: body; }
  .cart-row__quantity { grid-area: quantity; }
  .cart-row__price { grid-area: price; text-align: left; }
  .cart-row__remove { grid-area: remove; }
  .cart-summary { flex-direction: column; align-items: stretch; text-align: center; }
}

/* Narrowest phones (iPhone SE/older Android at 320-359px): the header row
   doesn't fit at the 640px tier's sizing, so trim gap/logo/search/CTA further
   — otherwise the CTA button silently overflows the viewport on every page. */
@media (max-width: 359px) {
  .site-header__inner { gap: .4rem; }
  .site-logo,.site-logo__image { width: 92px; }
  .site-search-divider { padding-left: .55rem; }
  .site-cta { padding-inline: .5rem; font-size: .64rem; }
}

/* ============================================================
   Sitewide rebalance (2026-08-09) — the client wants less solid
   dark-navy and more white, mixed with a pale navy tint for
   rhythm. Every flat-colour navy panel below moves to a light
   surface; anything with a real photograph behind it (hero
   banners, the image-card carousels, itinerary/experience cards,
   the footer) is deliberately left on its dark treatment — those
   cards are self-contained (own gradient overlay + white text)
   and are untouched by these rules. Each section below previously
   assumed light-on-dark text/controls, so background and text
   colour are flipped together — flipping only the background
   would leave white text unreadable on a white section.
   ============================================================ */

/* Shared control fixes for every `.bm-section-dark` section below
   that is being lightened (buttons/round-controls built for a
   dark surface would otherwise disappear on the new light one). */
.bm-featured-trips .bm-pill-button--light,
.destination-strip .bm-pill-button--light,
.bm-blog-strip .bm-pill-button--light,
.packages-listing .bm-pill-button--light,
.itinerary-section .bm-pill-button--light,
.services-index-grid .bm-pill-button--light,
.service-process-section .bm-pill-button--light,
.about-services-section .bm-pill-button--light,
.destination-packages-strip .bm-pill-button--light,
.packages-listing .bm-empty-state .bm-pill-button--light {
  background: var(--trip-red);
  color: #fff;
}
.bm-featured-trips .bm-round-button,
.destination-strip .bm-round-button,
.bm-blog-strip .bm-round-button,
.packages-listing .bm-round-button,
.itinerary-section .bm-round-button,
.services-index-grid .bm-round-button,
.destination-packages-strip .bm-round-button {
  background: rgba(4,10,35,.055);
  color: var(--trip-navy);
  border-color: rgba(4,10,35,.16);
}
.bm-featured-trips .bm-round-button:disabled,
.destination-strip .bm-round-button:disabled,
.bm-blog-strip .bm-round-button:disabled,
.packages-listing .bm-round-button:disabled,
.itinerary-section .bm-round-button:disabled,
.services-index-grid .bm-round-button:disabled,
.destination-packages-strip .bm-round-button:disabled { opacity: .38; }
.packages-listing .bm-empty-state { color: #596278; }

/* Home — "Your Journey / Your Map" services ladder (the itinerary
   feature card keeps its own photo + dark overlay, untouched) */
.home-journey-services { background: #fff; color: var(--trip-navy); }
.home-journey-services .home-service-gallery .bm-kicker { color: #6b5d50; }
.home-service-gallery__heading h2 { color: var(--trip-navy); }

/* Home — featured trips carousel */
.bm-featured-trips { background: #fff; color: var(--trip-navy); border-bottom-color: rgba(4,10,35,.08); }
.bm-featured-trips .bm-kicker { color: #6b5d50; }
.bm-featured-trips .bm-title-row h2 { color: var(--trip-navy); }
.bm-featured-trips .bm-title-row h2 span { color: #8891a3; }
.bm-featured-trips .bm-title-row p { color: #596278; }
.bm-featured-trips .bm-link { color: var(--trip-navy); }

/* Home — destination strip (pale tint for rhythm against the
   white sections either side of it) */
.destination-strip { background: var(--color-navy-50); color: var(--trip-navy); }
.destination-strip .bm-kicker { color: #6b5d50; }
.destination-strip .destination-editorial-copy h2 { color: var(--trip-navy); }
.destination-strip .destination-editorial-copy p:not(.bm-kicker) { color: #596278; }

/* Home — blog strip */
.bm-blog-strip { background: var(--color-navy-50); color: var(--trip-navy); border-top-color: rgba(4,10,35,.08); }
.bm-blog-strip .bm-kicker { color: #6b5d50; }
.bm-blog-strip .bm-title-row h2 { color: var(--trip-navy); }
.bm-blog-strip .bm-title-row p { color: #596278; }

/* Destination show — planning-essentials facts strip */
.destination-facts { background: var(--color-navy-50); color: var(--trip-navy); border-top-color: rgba(4,10,35,.08); }
.destination-facts article { border-left-color: rgba(4,10,35,.1); }
.destination-facts article:last-child { border-right-color: rgba(4,10,35,.1); }
.destination-facts small { color: #6b7488; }
.destination-facts strong { color: var(--trip-navy); }

/* Destination show — signature experiences */
.destination-experiences { background: #fff; color: var(--trip-navy); }
.destination-experiences .bm-kicker { color: #6b5d50; }
.destination-experiences .destination-section-heading h2 { color: var(--trip-navy); }
.destination-experiences .destination-section-heading--light > p { color: #596278; }

/* Destination show — featured trips for this destination */
.destination-packages-strip { background: var(--color-navy-50); color: var(--trip-navy); }
.destination-packages-strip .bm-kicker { color: #6b5d50; }
.destination-packages-strip .bm-title-row h2 { color: var(--trip-navy); }
.destination-packages-strip .bm-title-row p { color: #596278; }
.destination-packages-strip .bm-link { color: var(--trip-navy); }

/* Packages index — listing carousel */
.packages-listing { background: #fff; color: var(--trip-navy); }
.packages-listing .bm-kicker { color: #6b5d50; }
.packages-listing .bm-title-row h2 { color: var(--trip-navy); }
.packages-listing .bm-title-row h2 span { color: #8891a3; }
.packages-listing .bm-title-row p { color: #596278; }
.packages-listing .bm-title-row p a { color: var(--trip-navy); }

/* Package show — day-by-day itinerary (the itinerary cards
   themselves keep their own photo + dark overlay, untouched) */
.itinerary-section { background: var(--color-navy-50); color: var(--trip-navy); }
.itinerary-section .bm-kicker { color: #6b5d50; }
.itinerary-section .bm-title-row h2 { color: var(--trip-navy); }
.itinerary-section .bm-title-row h2 span { color: #8891a3; }
.itinerary-section .bm-title-row p { color: #596278; }

/* Services index — listing carousel */
.services-index-grid { background: #fff; color: var(--trip-navy); }
.services-index-grid .bm-kicker { color: #6b5d50; }
.services-index-grid .bm-title-row h2 { color: var(--trip-navy); }
.services-index-grid .bm-title-row h2 span { color: #8891a3; }
.services-index-grid .bm-title-row p { color: #596278; }

/* Service show — "Bespoke Journey Design" process section (the
   four process cards keep their own photo, untouched) */
.service-process-section { background: var(--color-navy-50); color: var(--trip-navy); }
.service-process-section .bm-kicker { color: #6b5d50; }
.service-process-section h2 { color: var(--trip-navy) !important; }
.service-process-section h2 span { color: #8891a3 !important; }
/* Scoped to the intro column only — .service-process-cards' own <p>
   sits inside a self-contained photo card and must stay white. */
.service-process-section .service-process-grid > div > p:not(.bm-kicker) { color: #596278 !important; }

/* About — services section (the image cards keep their own
   photo, untouched) */
.about-services-section { background: #fff; color: var(--trip-navy); }
.about-services-section .bm-kicker { color: #6b5d50; }
.about-services-section h2 { color: var(--trip-navy) !important; }
/* Scoped to the intro block only — .about-services-grid's own <p>
   sits inside a self-contained photo card and must stay white. */
.about-services-section > .shell > .text-center p:not(.bm-kicker) { color: #596278 !important; }

/* Shop — trust strip beneath the (still dark, still photo-backed)
   luxury hero */
.shop-intro-strip { background: var(--color-navy-50); color: var(--trip-navy); border-top-color: rgba(4,10,35,.08); }
.shop-intro-strip article { border-left-color: rgba(4,10,35,.1); }
.shop-intro-strip article:last-child { border-right-color: rgba(4,10,35,.1); }
.shop-intro-strip svg { color: var(--trip-red); }
.shop-intro-strip span { color: #5c6577; }

/* Account / cart / checkout heroes */
.account-hero { background: var(--color-navy-50); color: var(--trip-navy); }
.account-hero::before { border-color: rgba(4,10,35,.08); box-shadow: 0 0 0 120px transparent,0 0 0 121px rgba(4,10,35,.045); }
.account-hero h1 { color: var(--trip-navy); }
.account-hero p:not(.bm-kicker) { color: #596278; }
/* .account-hero__actions previously swapped this button to a white
   fill so it would stand out against the dark hero — on the new
   pale surface that reads as white-on-near-white, so restore the
   button's normal solid-red treatment here instead. */
.account-hero__actions .account-primary-action { background: var(--trip-red); color: #fff; border-color: var(--trip-red); }
.account-hero .bm-kicker { color: #6b5d50; }

.account-subhero { background: var(--color-navy-50); color: var(--trip-navy); }
.account-subhero .bm-kicker { color: #6b5d50; }
.account-subhero h1 { color: var(--trip-navy); }
.account-subhero p:last-child { color: #596278; }
.account-subhero__meta { color: #778095; }
.account-back-link { color: #596278; }

.account-saved-empty { background: var(--color-navy-100); color: var(--trip-navy); }
.account-saved-empty p { color: #596278; }
.account-saved-empty a { color: var(--trip-navy); }

/* Mobile-only border colours for the two strips above that switch
   from left/right dividers to a stacked bottom-border layout below
   1024/900px — those borders are set independently of the base
   rules already overridden above, so they need their own fix. */
@media (max-width: 640px) {
  .shop-intro-strip article,.shop-intro-strip article:last-child { border-bottom-color: rgba(4,10,35,.1); }
}
@media (max-width: 900px) {
  .destination-facts article,.destination-facts article:last-child { border-bottom-color: rgba(4,10,35,.1); }
}
