/*
 * Explore Albania Premium Template
 * Version: 0.0.14
 * Batch: Global Section Rhythm + Mobile Title Hierarchy + Architecture Cleanup
 * Author: Template Development Team
 * License: Project-specific
 * Build Date: 2026-10-05
 *
 * HTDS 2026 architecture: tokens -> base -> header/hero/discover/experiences/accommodation components -> responsive.
 */

/* =========================================================
   1. DESIGN TOKENS
   ========================================================= */
:root {
  --ea-color-ink: #00212a;
  --ea-color-ink-soft: #17323a;
  --ea-color-topbar-a: #0b181e;
  --ea-color-topbar-b: #092028;
  --ea-color-topbar-c: #00313b;
  --ea-color-surface: #fdfcfb;
  --ea-color-surface-strong: #ffffff;
  --ea-color-accent: #28c6cf;
  --ea-color-accent-bright: #46d5db;
  --ea-color-accent-soft: #e9fbfb;
  --ea-color-cta-a: #ff523b;
  --ea-color-cta-b: #ff3d2c;
  --ea-color-border: #e7ecec;
  --ea-color-border-dark: rgba(255, 255, 255, 0.18);
  --ea-color-muted: #64767d;
  --ea-shadow-soft: 0 8px 28px rgba(0, 27, 34, 0.08);
  --ea-shadow-control: 0 4px 16px rgba(0, 26, 33, 0.08);
  --ea-shadow-menu: 0 22px 48px rgba(0, 28, 36, 0.14);
  --ea-radius-sm: 8px;
  --ea-radius-md: 14px;
  --ea-radius-lg: 24px;
  --ea-radius-pill: 999px;
  --ea-font-sans: "Manrope", "Segoe UI", Arial, Helvetica, sans-serif;
  --ea-font-display: "Lora", Georgia, "Times New Roman", serif;
  --ea-container-max: 1453px;
  --ea-hero-container-max: 1375px;
  --ea-container-gutter: 40px;
  --ea-topbar-height: 51px;
  --ea-header-height: 129px;
  --ea-transition-fast: 160ms ease;
  --ea-transition-base: 220ms ease;
  --ea-z-header: 1000;
  --ea-z-menu: 1020;
  --ea-z-drawer: 1040;
  --ea-z-backdrop: 1030;
  --ea-type-display-xl: clamp(48px, 4.2vw, 68px);
  --ea-type-display-lg: clamp(42px, 3.6vw, 58px);
  --ea-type-heading-md: clamp(22px, 2vw, 30px);
  --ea-type-heading-sm: 16px;
  --ea-type-body-lg: 16px;
  --ea-type-body: 14px;
  --ea-type-ui: 13px;
  --ea-type-caption: 12px;
  --ea-section-space-y: 78px;
}

/* =========================================================
   2. BASE / RESET
   ========================================================= */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  color-scheme: light;
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  min-width: 320px;
  color: var(--ea-color-ink);
  background: var(--ea-color-surface);
  font-family: var(--ea-font-sans);
  font-size: 16px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-optical-sizing: auto;
}

body.is-navigation-locked {
  overflow: hidden;
}

button,
a {
  font: inherit;
}

button {
  color: inherit;
}

a {
  color: inherit;
  text-decoration: none;
}

button:focus-visible,
a:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--ea-color-accent) 78%, white);
  outline-offset: 3px;
}

svg {
  display: block;
}

.icon {
  width: 1em;
  height: 1em;
  flex: 0 0 auto;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* Unified icon scale: component rules may opt into these sizes without redrawing symbols. */
.icon--sm { width:16px; height:16px; }
.icon--md { width:20px; height:20px; }
.icon--lg { width:24px; height:24px; }
.icon--feature { width:32px; height:32px; }

.svg-sprite {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
}

.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.header-container {
  width: min(100% - (var(--ea-container-gutter) * 2), var(--ea-container-max));
  margin-inline: auto;
}


/* =========================================================
   3. HEADER FOUNDATION
   ========================================================= */
.site-header {
  position: relative;
  z-index: var(--ea-z-header);
  width: 100%;
}

.utility-bar {
  height: var(--ea-topbar-height);
  color: #f7fbfc;
  background: linear-gradient(110deg, var(--ea-color-topbar-a) 0%, var(--ea-color-topbar-b) 54%, var(--ea-color-topbar-c) 100%);
}

.utility-bar__inner {
  height: 100%;
  display: grid;
  grid-template-columns: minmax(345px, 1fr) auto minmax(440px, 1fr);
  align-items: center;
  gap: 24px;
}

.utility-discover,
.season-promo,
.utility-links a,
.social-links a,
.language-switcher {
  color: inherit;
}

.utility-discover {
  display: inline-flex;
  align-items: center;
  justify-self: start;
  gap: 13px;
  min-width: 0;
  font-size: 14px;
  font-weight: 500;
  white-space: nowrap;
}

.utility-discover .icon {
  width: 19px;
  height: 19px;
  color: #eef8fa;
  transition: color var(--ea-transition-fast), transform var(--ea-transition-base);
}

.utility-discover strong {
  position: relative;
  color: var(--ea-color-accent);
  font-weight: 500;
}

.utility-discover strong::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -3px;
  height: 1px;
  border-radius: var(--ea-radius-pill);
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform var(--ea-transition-base);
}

.utility-discover:hover .icon,
.utility-discover:focus-visible .icon {
  color: var(--ea-color-accent-bright);
  transform: rotate(10deg) scale(1.08);
}

.utility-discover:hover strong::after,
.utility-discover:focus-visible strong::after {
  transform: scaleX(1);
}

.season-promo {
  display: inline-flex;
  align-items: center;
  justify-self: center;
  gap: 10px;
  min-width: 0;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: -0.01em;
  white-space: nowrap;
  transform: translateX(-17px);
}

.season-promo__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 23px;
  padding-inline: 7px;
  color: #faffff;
  background: linear-gradient(180deg, #48d9de 0%, #2bc5ce 100%);
  border-radius: 8px;
  box-shadow: 0 0 0 rgba(70, 213, 219, 0);
  font-size: 12.5px;
  font-weight: 600;
  line-height: 1;
  transition: transform var(--ea-transition-fast), box-shadow var(--ea-transition-fast);
}

.season-promo__arrow {
  width: 14px;
  height: 14px;
  opacity: .92;
  transition: transform var(--ea-transition-fast), opacity var(--ea-transition-fast);
}

.season-promo:hover .season-promo__badge,
.season-promo:focus-visible .season-promo__badge {
  box-shadow: 0 3px 12px rgba(70, 213, 219, .24);
  transform: translateY(-1px);
}

.season-promo:hover .season-promo__arrow,
.season-promo:focus-visible .season-promo__arrow {
  opacity: 1;
  transform: translateX(3px);
}

.utility-tools {
  display: flex;
  align-items: center;
  justify-self: end;
  position: relative;
  z-index: calc(var(--ea-z-menu) + 2);
  height: 31px;
  min-width: 0;
  transform: translateX(17px);
}

.utility-tools::before {
  content: "";
  position: absolute;
  left: -18px;
  top: 0;
  width: 1px;
  height: 31px;
  background: var(--ea-color-border-dark);
}

.utility-links {
  display: flex;
  align-items: center;
  gap: 22px;
  white-space: nowrap;
}

.utility-links a {
  position: relative;
  font-size: 13px;
  font-weight: 500;
  transition: color var(--ea-transition-fast), transform var(--ea-transition-fast);
}

.utility-links a::after {
  content: "";
  position: absolute;
  left: 50%;
  right: 50%;
  bottom: -5px;
  height: 1px;
  background: var(--ea-color-accent-bright);
  transition: left var(--ea-transition-fast), right var(--ea-transition-fast);
}

.utility-links a:hover::after,
.utility-links a:focus-visible::after {
  left: 0;
  right: 0;
}

.utility-links a:hover,
.utility-links a:focus-visible {
  transform: translateY(-1px);
}

.utility-links a:hover,
.utility-links a:focus-visible,
.social-links a:hover,
.social-links a:focus-visible,
.language-switcher:hover,
.language-switcher:focus-visible {
  color: var(--ea-color-accent-bright);
}

.utility-separator {
  width: 1px;
  height: 31px;
  margin-inline: 14px;
  background: var(--ea-color-border-dark);
}

.social-links {
  display: flex;
  align-items: center;
  gap: 17px;
}

.social-links a {
  display: inline-grid;
  place-items: center;
  width: 20px;
  height: 28px;
  transition: color var(--ea-transition-fast), transform var(--ea-transition-fast);
}

.social-links a:hover,
.social-links a:focus-visible {
  transform: translateY(-2px) scale(1.05);
}

.social-links .icon {
  width: 19px;
  height: 19px;
}

.language-menu {
  position: relative;
}

.language-switcher {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 32px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  font-size: 13px;
  font-weight: 500;
  white-space: nowrap;
  transition: color var(--ea-transition-fast), transform var(--ea-transition-fast);
}

.language-switcher:hover,
.language-switcher:focus-visible {
  transform: translateY(-1px);
}

.language-switcher__flag {
  width: 25px;
  height: 25px;
  border-radius: 50%;
  object-fit: cover;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, .24);
}

.language-switcher__chevron {
  width: 12px;
  height: 12px;
  transition: transform var(--ea-transition-base);
}

.language-menu.is-open .language-switcher__chevron {
  transform: rotate(180deg);
}

.language-options {
  position: absolute;
  z-index: var(--ea-z-menu);
  top: calc(100% + 10px);
  right: -8px;
  width: 200px;
  padding: 8px;
  border: 1px solid var(--ea-color-border);
  border-radius: 13px;
  background: rgba(255, 255, 255, .99);
  box-shadow: var(--ea-shadow-menu);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-6px) scale(.98);
  transform-origin: top right;
  transition: opacity var(--ea-transition-fast), transform var(--ea-transition-base), visibility var(--ea-transition-base);
}

.language-menu.is-open .language-options {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0) scale(1);
}

.language-option {
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  width: 100%;
  min-height: 48px;
  padding: 6px 8px;
  border: 0;
  border-radius: 9px;
  color: var(--ea-color-ink);
  background: transparent;
  text-align: left;
  cursor: pointer;
  transition: color var(--ea-transition-fast), background var(--ea-transition-fast), transform var(--ea-transition-fast);
}

.language-option img {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  object-fit: cover;
  box-shadow: 0 0 0 1px rgba(0, 33, 42, .08);
}

.language-option span,
.language-option strong,
.language-option small {
  display: block;
}

.language-option strong {
  font-size: 12px;
  line-height: 1.15;
}

.language-option small {
  margin-top: 2px;
  color: var(--ea-color-muted);
  font-size: 12px;
  line-height: 1.2;
}

.language-option:hover,
.language-option:focus-visible,
.language-option.is-selected {
  color: #006f79;
  background: #f1fbfb;
}

.language-option:hover,
.language-option:focus-visible {
  transform: translateX(2px);
}

.primary-header {
  height: var(--ea-header-height);
  background: rgba(253, 252, 251, .98);
  border-bottom: 1px solid rgba(0, 33, 42, .03);
}

.primary-header__inner {
  position: relative;
  height: 100%;
  display: grid;
  grid-template-columns: 240px minmax(0, 1fr) auto;
  align-items: center;
  column-gap: 67px;
}

.brand {
  display: inline-flex;
  align-items: center;
  width: 240px;
  min-width: 0;
}

.brand img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1440 / 470;
  object-fit: contain;
  /* The supplied artwork is already tightly cropped; its natural box aligns cleanly with the navigation axis. */
}

.site-navigation {
  min-width: 0;
  align-self: stretch;
  display: flex;
  align-items: center;
}

.primary-nav,
.primary-nav__list {
  min-width: 0;
}

.primary-nav__list {
  display: flex;
  align-items: center;
  gap: 28px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.nav-item {
  position: relative;
  display: flex;
  align-items: center;
  height: var(--ea-header-height);
}

.nav-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 44px;
  padding: 0;
  border: 0;
  color: var(--ea-color-ink);
  background: transparent;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: -0.015em;
  white-space: nowrap;
  cursor: pointer;
  transition: color var(--ea-transition-fast);
}

.nav-link::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2px;
  border-radius: 999px;
  background: var(--ea-color-accent);
  transform: scaleX(0);
  transform-origin: center;
  transition: transform var(--ea-transition-base);
}

.nav-link:hover,
.nav-link:focus-visible,
.nav-item.is-open > .nav-link {
  color: #006b77;
}

.nav-link:hover::after,
.nav-link:focus-visible::after,
.nav-item.is-open > .nav-link::after {
  transform: scaleX(1);
}

.nav-link__chevron {
  width: 14px;
  height: 14px;
  stroke-width: 2.25;
  transition: transform var(--ea-transition-base);
}

.nav-item.is-open > .nav-trigger .nav-link__chevron {
  transform: rotate(180deg);
}

.header-actions {
  position: relative;
  display: flex;
  align-items: center;
  justify-self: end;
  gap: 23px;
  white-space: nowrap;
}

.search-control {
  display: contents;
}

.search-button {
  display: inline-grid;
  place-items: center;
  width: 50px;
  height: 50px;
  padding: 0;
  border: 1px solid rgba(0, 33, 42, .035);
  border-radius: 50%;
  color: var(--ea-color-ink);
  background: rgba(255, 255, 255, .7);
  box-shadow: var(--ea-shadow-control);
  cursor: pointer;
  transition: transform var(--ea-transition-fast), box-shadow var(--ea-transition-fast), color var(--ea-transition-fast);
}

.search-button .icon {
  width: 22px;
  height: 22px;
  stroke-width: 2;
}

.search-button:hover,
.search-button:focus-visible {
  color: #007c88;
  box-shadow: 0 7px 20px rgba(0, 26, 33, .12);
  transform: translateY(-1px);
}

.header-search {
  position: absolute;
  z-index: calc(var(--ea-z-menu) + 1);
  top: 50%;
  right: 0;
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr) 40px 40px;
  align-items: center;
  gap: 8px;
  width: clamp(390px, 36vw, 520px);
  height: 54px;
  padding: 5px 6px 5px 16px;
  border: 1px solid rgba(0, 33, 42, .08);
  border-radius: var(--ea-radius-pill);
  background: rgba(255, 255, 255, .985);
  box-shadow: 0 13px 34px rgba(0, 28, 36, .16);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-50%) scaleX(.86);
  transform-origin: right center;
  transition: opacity var(--ea-transition-fast), transform var(--ea-transition-base), visibility var(--ea-transition-base);
}

.search-control.is-open .header-search {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(-50%) scaleX(1);
}

.search-control.is-open .search-button {
  opacity: 0;
  pointer-events: none;
}

.header-search__icon {
  width: 20px;
  height: 20px;
  color: #0b7580;
  stroke-width: 2;
}

.header-search__input {
  width: 100%;
  min-width: 0;
  height: 42px;
  padding: 0 4px;
  border: 0;
  outline: 0;
  color: var(--ea-color-ink);
  background: transparent;
  font: inherit;
  font-size: 14px;
}

.header-search__input::placeholder {
  color: #7a8b91;
}

.header-search__input::-webkit-search-cancel-button {
  appearance: none;
}

.header-search__submit,
.header-search__close {
  display: inline-grid;
  place-items: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  cursor: pointer;
  transition: color var(--ea-transition-fast), background var(--ea-transition-fast), transform var(--ea-transition-fast);
}

.header-search__submit {
  color: #fff;
  background: linear-gradient(105deg, var(--ea-color-cta-a), var(--ea-color-cta-b));
}

.header-search__close {
  color: var(--ea-color-ink);
  background: #f2f6f6;
}

.header-search__submit:hover,
.header-search__submit:focus-visible,
.header-search__close:hover,
.header-search__close:focus-visible {
  transform: scale(1.04);
}

.header-search__submit .icon,
.header-search__close .icon {
  width: 18px;
  height: 18px;
}

.saved-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  font-size: 15px;
  font-weight: 600;
  transition: color var(--ea-transition-fast);
}

.saved-link .icon {
  width: 22px;
  height: 22px;
  stroke-width: 1.8;
}

.saved-link:hover,
.saved-link:focus-visible {
  color: #007c88;
}

.plan-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 11px;
  min-width: 170px;
  height: 47px;
  padding: 0 22px;
  border-radius: var(--ea-radius-pill);
  color: #fff;
  background: linear-gradient(105deg, var(--ea-color-cta-a) 0%, var(--ea-color-cta-b) 100%);
  box-shadow: 0 7px 18px rgba(255, 68, 48, .15);
  font-size: 15px;
  font-weight: 600;
  transition: transform var(--ea-transition-fast), box-shadow var(--ea-transition-fast), filter var(--ea-transition-fast);
}

.plan-button .icon {
  width: 21px;
  height: 21px;
  stroke-width: 2;
}

.plan-button:hover,
.plan-button:focus-visible {
  transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(255, 68, 48, .22);
  filter: saturate(1.06);
}

.mobile-menu-toggle,
.mobile-menu__head,
.mobile-menu__utility-slot,
.mobile-menu__actions-slot,
.mobile-menu__copyright,
.mobile-menu-backdrop {
  display: none;
}

/* =========================================================
   4. DESKTOP MENUS
   ========================================================= */
.nav-item--mega {
  position: static;
}

.submenu {
  position: absolute;
  z-index: var(--ea-z-menu);
  top: calc(100% - 1px);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(10px);
  transition: opacity var(--ea-transition-base), transform var(--ea-transition-base), visibility var(--ea-transition-base);
}

.nav-item.is-open > .submenu,
.nav-item:hover > .submenu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}

.submenu--mega {
  top: calc(100% + 1px);
  left: 0;
  width: 100%;
  max-width: none;
  padding: 24px;
  border: 1px solid var(--ea-color-border);
  border-top: 3px solid var(--ea-color-accent);
  border-radius: 0 0 18px 18px;
  background: rgba(255, 255, 255, .985);
  box-shadow: var(--ea-shadow-menu);
  backdrop-filter: blur(18px);
}


.mega-grid {
  display: grid;
  gap: 0;
}

.mega-grid--4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.mega-grid--3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.mega-column {
  min-width: 0;
  padding: 2px 20px 4px;
}

.mega-column + .mega-column {
  border-left: 1px solid var(--ea-color-border);
}

.mega-column__title {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0 0 9px;
  color: var(--ea-color-ink);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .015em;
}

.mega-column__title .icon {
  width: 17px;
  height: 17px;
  color: #0d8993;
}

.menu-link {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  min-height: 58px;
  margin: 2px 0;
  padding: 9px 10px;
  border-radius: 11px;
  color: var(--ea-color-ink);
  transition: background var(--ea-transition-fast), color var(--ea-transition-fast), transform var(--ea-transition-fast);
}

.menu-link > .icon:first-child {
  width: 34px;
  height: 34px;
  padding: 7px;
  border-radius: 9px;
  color: #087d87;
  background: var(--ea-color-accent-soft);
  stroke-width: 1.8;
}

.menu-link span {
  min-width: 0;
}

.menu-link strong,
.menu-link small {
  display: block;
}

.menu-link strong {
  font-size: 13.5px;
  font-weight: 700;
  line-height: 1.25;
}

.menu-link small {
  margin-top: 3px;
  color: var(--ea-color-muted);
  font-size: 12px;
  line-height: 1.3;
}

.menu-link:hover,
.menu-link:focus-visible,
.nested-menu.is-open > .nested-menu__trigger {
  color: #006f79;
  background: #f3fbfb;
  transform: translateX(2px);
}

.submenu--dropdown {
  left: -18px;
  width: 275px;
  padding: 10px;
  border: 1px solid var(--ea-color-border);
  border-top: 3px solid var(--ea-color-accent);
  border-radius: 0 0 14px 14px;
  background: rgba(255, 255, 255, .99);
  box-shadow: var(--ea-shadow-menu);
}

.menu-link--compact {
  grid-template-columns: 32px minmax(0, 1fr);
  min-height: 48px;
  padding: 7px 9px;
}

.menu-link--compact > .icon:first-child {
  width: 30px;
  height: 30px;
  padding: 6px;
}

.nested-menu {
  position: relative;
}

.nested-menu::after {
  content: "";
  position: absolute;
  z-index: 1;
  top: -6px;
  right: -8px;
  bottom: -6px;
  width: 10px;
}

.nested-menu__trigger {
  width: 100%;
  border: 0;
  text-align: left;
  cursor: pointer;
}

.nested-menu__arrow {
  grid-column: 3;
  width: 15px;
  height: 15px;
  margin-left: auto;
}

.nested-menu__panel {
  position: absolute;
  top: -10px;
  left: calc(100% + 6px);
  width: 240px;
  padding: 10px;
  border: 1px solid var(--ea-color-border);
  border-radius: 12px;
  background: #fff;
  box-shadow: var(--ea-shadow-menu);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateX(8px);
  transition: opacity var(--ea-transition-base), transform var(--ea-transition-base), visibility var(--ea-transition-base);
}

.nested-menu:hover > .nested-menu__panel,
.nested-menu.is-open > .nested-menu__panel {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(0);
}


/* =========================================================
   5. HERO / JOURNEY SEARCH / TRUST STRIP
   ========================================================= */
.hero-container {
  width: min(100% - (var(--ea-container-gutter) * 2), var(--ea-hero-container-max));
  margin-inline: auto;
}

.hero-section {
  position: relative;
  z-index: 2;
  min-height: 630px;
  overflow: visible;
  isolation: isolate;
  background: #d9eef0;
}

.hero-section__media,
.hero-section__veil {
  position: absolute;
  inset: 0;
}

.hero-section__media {
  z-index: -3;
}

.hero-section__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 48%;
}

.hero-section__veil {
  z-index: -2;
  background:
    linear-gradient(90deg, rgba(255, 251, 244, .78) 0%, rgba(255, 251, 244, .58) 23%, rgba(255, 255, 255, .12) 47%, rgba(255, 255, 255, 0) 65%),
    linear-gradient(180deg, rgba(255, 255, 255, .08), rgba(0, 74, 89, .03));
  pointer-events: none;
}

.hero-copy {
  position: relative;
  z-index: 2;
  padding-top: 48px;
}

.hero-title {
  max-width: 590px;
  margin: 0;
  color: #002d38;
  font-family: var(--ea-font-display);
  font-size: 66px;
  font-weight:600;
  line-height: .98;
  letter-spacing: -.01em;
}

.hero-title span {
  position: relative;
  display: inline-block;
  color: #13aeb4;
  font-size: 1.03em;
  font-style: italic;
  font-weight: 500;
  letter-spacing: -.015em;
}

.hero-title span::after {
  content: "";
  position: absolute;
  left: 1%;
  right: -3%;
  bottom: -9px;
  height: 7px;
  border-bottom: 3px solid #2bc2c7;
  border-radius: 50%;
  transform: rotate(2deg);
}

.hero-description {
  margin: 26px 0 0 2px;
  color: #103c46;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.55;
}

.hero-flight-path {
  position: absolute;
  z-index: 1;
  top: 246px;
  left: max(14px, calc((100vw - 1397px) / 2 + 18px));
  width: 95px;
  color: #19adb6;
  opacity: .78;
}

.hero-flight-path svg {
  display: block;
  width: 100%;
  height: auto;
  overflow: visible;
}

.hero-flight-path path:first-child {
  fill: none;
  stroke: currentColor;
  stroke-width: 1.4;
  stroke-linecap: round;
  stroke-dasharray: 6 8;
}

.hero-flight-path path:last-child {
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.hero-search-wrap {
  position: absolute;
  z-index: 6;
  top: 322px;
  left: 0;
  right: 0;
  margin-inline: auto;
  transform: none;
}

.journey-search {
  position: relative;
  width: 100%;
  border: 1px solid rgba(0, 45, 56, .045);
  border-radius: 17px;
  background: rgba(255, 255, 255, .985);
  box-shadow: 0 14px 42px rgba(0, 31, 38, .13);
  backdrop-filter: none;
}

.journey-tabs-shell {
  position: relative;
}

.journey-tabs {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  min-height: 90px;
  padding: 0 28px;
  border-bottom: 1px solid #e8eded;
}

.journey-tab {
  position: relative;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  min-width: 0;
  padding: 11px 11px;
  border: 0;
  background: transparent;
  color: #0c3540;
  text-align: left;
  cursor: pointer;
  transition: color var(--ea-transition-fast), background var(--ea-transition-fast);
}

.journey-tab:not(:last-child)::before {
  content: "";
  position: absolute;
  top: 23px;
  right: 0;
  bottom: 23px;
  width: 1px;
  background: #e4eaea;
}

.journey-tab::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 3px;
  border-radius: 4px 4px 0 0;
  background: #2fc5ca;
  transform: scaleX(0);
  transform-origin: center;
  transition: transform var(--ea-transition-base);
}

.journey-tab.is-active::after {
  transform: scaleX(1);
}

.journey-tab:hover,
.journey-tab:focus-visible,
.journey-tab.is-active {
  color: #006f79;
}

.journey-tab__icon {
  display: inline-grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  color: #079aa5;
  background: #f1fbfb;
}

.journey-tab__icon .icon {
  width: 24px;
  height: 24px;
  stroke-width: 1.8;
}

.journey-tab__copy {
  display: block;
  min-width: 0;
}

.journey-tab__copy strong,
.journey-tab__copy small {
  display: block;
}

.journey-tab__copy strong {
  font-size: 14px;
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
}

.journey-tab__copy small {
  margin-top: 6px;
  overflow: hidden;
  color: #63767d;
  font-size: 12px;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.journey-panel {
  padding: 22px 28px 0;
}

.journey-fields {
  position: relative;
  display: grid;
  grid-template-columns: 1.16fr 1.07fr 1.01fr 224px;
  gap: 14px;
}

.journey-field {
  position: relative;
  min-width: 0;
  height: 68px;
  border: 1px solid #dfe6e7;
  border-radius: 10px;
  background: rgba(255, 255, 255, .9);
  transition: border-color var(--ea-transition-fast), box-shadow var(--ea-transition-fast), background var(--ea-transition-fast);
}

.journey-field:focus-within,
.journey-field.is-open {
  border-color: rgba(17, 170, 179, .46);
  background: #fff;
  box-shadow: 0 0 0 3px rgba(40, 198, 207, .10);
}

.journey-field__label {
  position: absolute;
  z-index: 2;
  top: 11px;
  left: 16px;
  right: 48px;
  color: #153942;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.15;
  pointer-events: none;
}

.journey-field__control,
.journey-field__button {
  width: 100%;
  height: 100%;
}

.journey-field__control {
  position: relative;
}

.journey-field__control input {
  width: 100%;
  height: 100%;
  padding: 31px 46px 9px 16px;
  border: 0;
  outline: 0;
  color: #536a72;
  background: transparent;
  font: inherit;
  font-size: 12px;
  font-weight: 500;
}

.journey-field__control input::placeholder {
  color: #697c82;
  opacity: 1;
}

.journey-field__control input::-webkit-search-cancel-button {
  appearance: none;
}

.journey-field__control > .icon,
.journey-field__button > .icon {
  position: absolute;
  top: 50%;
  right: 16px;
  width: 21px;
  height: 21px;
  color: #5b6c72;
  transform: translateY(-50%);
}

.journey-field__button {
  position: relative;
  display: flex;
  align-items: flex-end;
  padding: 31px 46px 9px 16px;
  border: 0;
  border-radius: inherit;
  color: #536a72;
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.journey-field__summary {
  overflow: hidden;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.journey-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  min-width: 0;
  height: 58px;
  align-self: center;
  margin-block: 5px;
  padding: 0 24px;
  border: 0;
  border-radius: var(--ea-radius-pill);
  color: #fff;
  background: linear-gradient(105deg, #ff573e 0%, #ff392c 100%);
  box-shadow: 0 9px 20px rgba(255, 68, 48, .18);
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  transition: transform var(--ea-transition-fast), box-shadow var(--ea-transition-fast), filter var(--ea-transition-fast);
}

.journey-submit:hover,
.journey-submit:focus-visible {
  transform: translateY(-1px);
  box-shadow: 0 12px 25px rgba(255, 68, 48, .24);
  filter: saturate(1.05);
}

.journey-submit .icon {
  width: 21px;
  height: 21px;
  stroke-width: 2;
}

.destination-suggestions,
.journey-popover {
  position: absolute;
  z-index: 80;
  top: calc(100% + 10px);
  border: 1px solid #e1e8e9;
  border-radius: 14px;
  background: rgba(255, 255, 255, .99);
  box-shadow: 0 18px 40px rgba(0, 34, 42, .16);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-6px);
  transition: opacity var(--ea-transition-fast), transform var(--ea-transition-base), visibility var(--ea-transition-base);
}

.journey-field.is-open .destination-suggestions,
.journey-field.is-open .journey-popover {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}

.destination-suggestions {
  left: 0;
  right: 0;
  max-height: 280px;
  padding: 7px;
  overflow-y: auto;
}

.destination-suggestion {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  align-items: center;
  gap: 9px;
  width: 100%;
  min-height: 46px;
  padding: 6px 8px;
  border: 0;
  border-radius: 9px;
  color: var(--ea-color-ink);
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.destination-suggestion:hover,
.destination-suggestion:focus-visible,
.destination-suggestion.is-active {
  background: #f0fbfb;
  color: #007580;
}

.destination-suggestion .icon {
  width: 30px;
  height: 30px;
  padding: 6px;
  border-radius: 9px;
  color: #079aa5;
  background: #eafafa;
}

.destination-suggestion strong,
.destination-suggestion small {
  display: block;
}

.destination-suggestion strong {
  font-size: 12px;
}

.destination-suggestion small {
  margin-top: 2px;
  color: #687a80;
  font-size: 12px;
}

.destination-suggestions__empty {
  margin: 0;
  padding: 13px 10px;
  color: #687a80;
  font-size: 12px;
}

.calendar-popover {
  left: -66px;
  width: 680px;
  padding: 18px;
}

.calendar-popover__head,
.guest-popover__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid #e8eeee;
}

.calendar-popover__head strong,
.calendar-popover__head span,
.guest-popover__head strong,
.guest-popover__head span {
  display: block;
}

.calendar-popover__head strong,
.guest-popover__head strong {
  font-size: 14px;
  line-height: 1.2;
}

.calendar-popover__head span,
.guest-popover__head span {
  margin-top: 4px;
  color: #6d7e84;
  font-size: 12px;
}

.popover-close {
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  padding: 0;
  border: 1px solid #e4eaea;
  border-radius: 50%;
  background: #fff;
  cursor: pointer;
}

.popover-close .icon {
  width: 16px;
  height: 16px;
}

.calendar-toolbar {
  position: absolute;
  top: 68px;
  left: 18px;
  right: 18px;
  z-index: 2;
  display: flex;
  justify-content: space-between;
  pointer-events: none;
}

.calendar-toolbar button {
  display: inline-grid;
  place-items: center;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 1px solid #e1e8e9;
  border-radius: 50%;
  color: #31505a;
  background: #fff;
  cursor: pointer;
  pointer-events: auto;
}

.calendar-toolbar .icon {
  width: 15px;
  height: 15px;
}

.calendar-months {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
  margin-top: 14px;
}

.calendar-month {
  min-width: 0;
}

.calendar-month__title {
  margin: 0 0 10px;
  color: #143841;
  font-size: 13px;
  font-weight: 700;
  text-align: center;
}

.calendar-weekdays,
.calendar-days {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 3px;
}

.calendar-weekdays span {
  padding: 4px 0 5px;
  color: #819096;
  font-size: 12px;
  font-weight: 700;
  text-align: center;
}

.calendar-day {
  display: inline-grid;
  place-items: center;
  aspect-ratio: 1;
  min-width: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  color: #24434c;
  background: transparent;
  font-size: 12px;
  cursor: pointer;
}

.calendar-day:hover,
.calendar-day:focus-visible {
  color: #006f79;
  background: #e8fafa;
}

.calendar-day.is-muted {
  color: #a6b1b5;
}

.calendar-day.is-disabled {
  color: #c3ccce;
  cursor: not-allowed;
}

.calendar-day.is-range {
  border-radius: 8px;
  background: #eefafa;
}

.calendar-day.is-selected {
  border-radius: 50%;
  color: #fff;
  background: #12aeb7;
}

.calendar-popover__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid #e8eeee;
}

.calendar-clear,
.calendar-done,
.guest-done {
  min-height: 38px;
  padding: 0 15px;
  border-radius: var(--ea-radius-pill);
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}

.calendar-clear {
  border: 0;
  color: #3a5962;
  background: transparent;
}

.calendar-done,
.guest-done {
  border: 0;
  color: #fff;
  background: #006d77;
}

.guest-popover {
  right: 0;
  width: 330px;
  padding: 18px;
}

.guest-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 14px 0;
  border-bottom: 1px solid #edf1f1;
}

.guest-row strong,
.guest-row small {
  display: block;
}

.guest-row strong {
  font-size: 13px;
}

.guest-row small {
  margin-top: 3px;
  color: #728389;
  font-size: 12px;
}

.guest-stepper {
  display: grid;
  grid-template-columns: 34px 32px 34px;
  align-items: center;
  gap: 5px;
}

.guest-stepper button {
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  padding: 0 0 2px;
  border: 1px solid #dce5e6;
  border-radius: 50%;
  color: #0c515b;
  background: #fff;
  font-size: 19px;
  line-height: 1;
  cursor: pointer;
}

.guest-stepper button:disabled {
  color: #a9b5b8;
  background: #f5f7f7;
  cursor: not-allowed;
}

.guest-stepper output {
  font-size: 13px;
  font-weight: 700;
  text-align: center;
}

.guest-done {
  width: 100%;
  margin-top: 14px;
}

.journey-popular {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 15px;
  min-height: 68px;
  margin-top: 20px;
  border-top: 1px solid #e7ecec;
}

.journey-popular > strong {
  font-size: 13px;
  white-space: nowrap;
}

.journey-chips {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  overflow: clip;
  overflow-clip-margin: 8px;
}

.journey-chips button {
  flex: 0 0 auto;
  min-height: 34px;
  padding: 0 16px;
  border: 1px solid #dfe6e7;
  border-radius: var(--ea-radius-pill);
  color: #264750;
  background: #fff;
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  transition: border-color var(--ea-transition-fast), color var(--ea-transition-fast), background var(--ea-transition-fast), box-shadow var(--ea-transition-fast);
}

.journey-chips button:hover,
.journey-chips button:focus-visible {
  border-color: #91dfe2;
  color: #006f79;
  background: #f2fbfb;
  box-shadow: 0 5px 14px rgba(0, 86, 96, .08);
}

.journey-chip--extra {
  display: none;
}

.journey-chips.is-expanded {
  flex-wrap: wrap;
  overflow: visible;
}

.journey-chips.is-expanded .journey-chip--extra {
  display: inline-flex;
  align-items: center;
}

.journey-more {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 38px;
  padding: 0 4px 0 10px;
  border: 0;
  color: #163b45;
  background: transparent;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}

.journey-more .icon {
  width: 13px;
  height: 13px;
  transition: transform var(--ea-transition-base);
}

.journey-more[aria-expanded="true"] .icon {
  transform: rotate(180deg);
}

.hero-wave {
  position: absolute;
  z-index: 4;
  left: 0;
  right: 0;
  bottom: -1px;
  width: 100%;
  height: 93px;
  fill: var(--ea-color-surface);
  pointer-events: none;
}

.trust-section {
  position: relative;
  z-index: 1;
  min-height: 175px;
  margin-top: 0;
  padding: 17px 0 9px;
  background: var(--ea-color-surface);
}

.trust-panel {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr)) 306px;
  min-height: 150px;
  overflow: hidden;
  border: 1px solid rgba(0, 42, 53, .035);
  border-radius: 14px;
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 10px 34px rgba(0, 33, 42, .09);
}

.trust-feature {
  position: relative;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  align-items: center;
  gap: 13px;
  min-width: 0;
  padding: 22px 21px;
}

.trust-feature:not(:nth-child(4))::after {
  content: "";
  position: absolute;
  top: 27px;
  right: 0;
  bottom: 27px;
  width: 1px;
  background: #e6ecec;
}

.trust-feature > .icon {
  width: 37px;
  height: 37px;
  color: #006b78;
  stroke-width: 1.8;
}

.trust-feature strong,
.trust-feature span {
  display: block;
}

.trust-feature strong {
  color: #123842;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.2;
}

.trust-feature span {
  margin-top: 7px;
  color: #244952;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.7;
}

.digital-pass {
  position: relative;
  display: block;
  min-height: 154px;
  margin: 0;
  overflow: hidden;
  border-radius: 12px;
  color: #07343d;
  background: #c7e3e6;
}

.digital-pass__media,
.digital-pass__shade {
  position: absolute;
  inset: 0;
}

.digital-pass__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 66% 48%;
  transform: scale(1.08);
  transition: transform 420ms ease;
}

.digital-pass__shade {
  background: linear-gradient(90deg, rgba(234, 246, 245, .97) 0%, rgba(226, 242, 241, .89) 39%, rgba(228, 242, 240, .25) 68%, rgba(0, 60, 68, .08) 100%);
}

.digital-pass__content {
  position: absolute;
  z-index: 2;
  top: 18px;
  left: 18px;
}

.digital-pass__content strong,
.digital-pass__content small {
  display: block;
}

.digital-pass__content strong {
  font-size: 13px;
  line-height: 1.28;
}

.digital-pass__content small {
  margin-top: 6px;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.32;
}

.digital-pass__cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 25px;
  margin-top: 8px;
  padding: 0 10px;
  border-radius: var(--ea-radius-pill);
  color: #fff;
  background: #006d77;
  font-size: 12px;
  font-weight: 700;
}

.digital-pass__cta .icon {
  width: 11px;
  height: 11px;
}

.digital-pass__mock {
  position: absolute;
  z-index: 2;
  right: 13px;
  bottom: 12px;
  width: 96px;
  height: 54px;
  padding: 10px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .24);
  border-radius: 8px;
  color: #fff;
  background: linear-gradient(135deg, #00606b, #003743);
  box-shadow: 0 9px 20px rgba(0, 31, 38, .22);
  transform: rotate(1deg);
  transition: transform var(--ea-transition-base);
}

.digital-pass__mock-logo,
.digital-pass__mock-title {
  position: relative;
  z-index: 2;
  display: block;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: .04em;
}

.digital-pass__mock-title {
  margin-top: 9px;
  font-size: 12px;
  letter-spacing: .1em;
}

.digital-pass__mock-wave {
  position: absolute;
  right: -6px;
  bottom: -12px;
  width: 60px;
  height: 48px;
  border: 5px double rgba(65, 215, 219, .72);
  border-left: 0;
  border-radius: 50%;
  transform: rotate(-16deg);
}

.digital-pass:hover .digital-pass__media img,
.digital-pass:focus-visible .digital-pass__media img {
  transform: scale(1.12);
}

.digital-pass:hover .digital-pass__mock,
.digital-pass:focus-visible .digital-pass__mock {
  transform: translateY(-2px) rotate(1deg);
}


/* =========================================================
   6. DISCOVER DESTINATIONS
   ========================================================= */
.discover-section {
  position: relative;
  overflow: hidden;
  padding: var(--ea-section-space-y) 0;
  background:
    radial-gradient(circle at 84% 20%, rgba(72, 211, 216, .13), transparent 28%),
    radial-gradient(circle at 15% 82%, rgba(255, 225, 161, .12), transparent 25%),
    #fbfaf7;
}

.discover-container {
  width: min(100% - (var(--ea-container-gutter) * 2), var(--ea-hero-container-max));
  margin-inline: auto;
  display: grid;
  grid-template-columns: 300px minmax(0, 1fr) 290px;
  grid-template-areas:
    "intro toolbar toolbar"
    "intro feature map"
    "cards cards reasons"
    "stats stats stats";
  gap: 18px 32px;
  align-items: start;
}

.discover-intro {
  grid-area: intro;
  padding-top: 10px;
}

.discover-kicker {
  display: flex;
  align-items: center;
  gap: 14px;
  color: #079ba5;
  font-family: var(--ea-font-sans);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: .075em;
  text-transform: uppercase;
}

.discover-kicker__waves {
  width: 47px;
  height: 18px;
  fill: none;
  stroke: #28c6cf;
  stroke-width: 2;
  stroke-linecap: round;
  opacity: .72;
}

.discover-title {
  margin: 22px 0 0;
  color: #06333d;
  font-family: var(--ea-font-display);
  font-size: clamp(44px, 3.6vw, 56px);
  font-weight:600;
  line-height: .98;
  letter-spacing: -.025em;
}

.discover-title span {
  color: #10adb6;
}

.discover-title-accent {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 226px;
  margin: 12px 0 20px;
}

.discover-title-accent span {
  display: block;
  height: 3px;
  border-radius: var(--ea-radius-pill);
  background: #f4bf2a;
  transform: rotate(-3deg);
}

.discover-title-accent span:first-child { width: 38px; }
.discover-title-accent span:last-child { width: 46px; transform: rotate(2deg); }

.discover-description {
  max-width: 282px;
  margin: 0;
  color: #526b71;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.72;
}

.discover-map-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 13px;
  min-height: 46px;
  margin-top: 28px;
  padding: 0 19px;
  border: 1.5px solid #18b8c1;
  border-radius: 10px;
  color: #0797a1;
  background: rgba(255, 255, 255, .68);
  box-shadow: 0 5px 16px rgba(0, 91, 100, .04);
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  transition: color var(--ea-transition-fast), background var(--ea-transition-fast), box-shadow var(--ea-transition-fast), transform var(--ea-transition-fast);
}

.discover-map-cta .icon { width: 17px; height: 17px; }
.discover-map-cta:hover,
.discover-map-cta:focus-visible {
  color: #fff;
  background: #0ba8b2;
  box-shadow: 0 9px 22px rgba(4, 135, 145, .2);
  transform: translateY(-2px);
}

.discover-gallery__toolbar {
  grid-area: toolbar;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  min-width: 0;
  min-height: 42px;
}

.discover-filters {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.discover-filter {
  min-height: 34px;
  padding: 0 15px;
  border: 1px solid #dce5e5;
  border-radius: var(--ea-radius-pill);
  color: #3a535a;
  background: rgba(255, 255, 255, .86);
  box-shadow: 0 3px 12px rgba(0, 36, 44, .05);
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
  cursor: pointer;
  transition: color var(--ea-transition-fast), border-color var(--ea-transition-fast), background var(--ea-transition-fast), box-shadow var(--ea-transition-fast);
}

.discover-filter:hover,
.discover-filter:focus-visible {
  border-color: rgba(6, 161, 171, .38);
  color: #067f89;
  background: #f5fbfb;
  box-shadow: 0 6px 16px rgba(0, 70, 78, .08);
}

.discover-filter.is-active {
  border-color: #078f98;
  color: #fff;
  background: linear-gradient(180deg, #159fa8, #07818b);
  box-shadow: 0 6px 16px rgba(5, 123, 132, .2);
}

.discover-side__controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  flex: 0 0 auto;
}

.discover-side__controls button {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  padding: 0;
  border: 1px solid #e0e7e7;
  border-radius: 50%;
  color: #36575f;
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 6px 16px rgba(0, 35, 42, .08);
  cursor: pointer;
  transition: color var(--ea-transition-fast), transform var(--ea-transition-fast), box-shadow var(--ea-transition-fast), background var(--ea-transition-fast);
}

.discover-side__controls button:hover,
.discover-side__controls button:focus-visible {
  color: #fff;
  background: #0ba8b2;
  transform: translateY(-2px);
  box-shadow: 0 10px 22px rgba(4, 135, 145, .22);
}

.discover-side__controls .icon { width: 17px; height: 17px; }

.discover-feature-card {
  grid-area: feature;
  position: relative;
  height: 390px;
  overflow: hidden;
  border-radius: 17px;
  background: #dceced;
  box-shadow: 0 14px 34px rgba(1, 39, 49, .1);
  isolation: isolate;
}

.discover-feature-card::after,
.discover-card::after {
  content: "";
  position: absolute;
  z-index: 4;
  inset: 0;
  border: 1px solid rgba(255, 255, 255, 0);
  border-radius: inherit;
  pointer-events: none;
  transition: border-color var(--ea-transition-base), box-shadow var(--ea-transition-base);
}

.discover-feature-card__media,
.discover-feature-card__shade,
.discover-card__media,
.discover-card__shade {
  position: absolute;
  inset: 0;
}

.discover-feature-card__media img,
.discover-card__media img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  transition: opacity 220ms ease, transform 620ms cubic-bezier(.2,.7,.2,1), filter 320ms ease;
}

.discover-feature-card__media img { object-position: 52% 51%; }
.discover-card__media img { object-position: 50% 50%; }

.discover-feature-card__shade {
  background: linear-gradient(180deg, rgba(0, 28, 35, .02) 38%, rgba(1, 26, 33, .76) 100%), linear-gradient(90deg, rgba(0, 30, 37, .12), transparent 52%);
  pointer-events: none;
  transition: background var(--ea-transition-base);
}

.discover-feature-card__badge {
  position: absolute;
  z-index: 2;
  top: 16px;
  left: 16px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 31px;
  padding: 0 12px;
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: var(--ea-radius-pill);
  color: #fff;
  background: rgba(5, 44, 50, .78);
  box-shadow: 0 5px 16px rgba(0, 23, 29, .14);
  font-size: 12px;
  font-weight: 700;
  backdrop-filter: blur(8px);
}

.discover-feature-card__badge span { color: #f3c43a; font-size: 13px; }

.discover-feature-card__icon,
.discover-card__icon {
  position: absolute;
  z-index: 2;
  display: grid;
  place-items: center;
  color: #078c96;
  background: rgba(255, 255, 255, .95);
  box-shadow: 0 8px 22px rgba(0, 36, 45, .13);
  transition: color var(--ea-transition-base), transform var(--ea-transition-base), box-shadow var(--ea-transition-base);
}

.discover-feature-card__icon {
  top: 16px;
  right: 16px;
  width: 42px;
  height: 42px;
  border-radius: 10px;
}

.discover-feature-card__icon .icon { width: 21px; height: 21px; }

.discover-feature-card__content {
  position: absolute;
  z-index: 2;
  left: 20px;
  right: 78px;
  bottom: 20px;
  color: #fff;
  transition: transform var(--ea-transition-base);
}

.discover-feature-card__content h3 {
  margin: 0;
  font-family: var(--ea-font-display);
  font-size: 30px;
  font-weight:600;
  line-height: 1.04;
  letter-spacing: -.03em;
}

.discover-feature-card__content p {
  max-width: 390px;
  margin: 8px 0 0;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.5;
}

.discover-feature-card__action,
.discover-card__arrow,
.discover-stats__cta-icon {
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 50%;
  color: #fff;
  background: linear-gradient(180deg, #13b4bd, #07929d);
  box-shadow: 0 7px 18px rgba(3, 116, 125, .23);
}

.discover-feature-card__action {
  position: absolute;
  z-index: 3;
  right: 18px;
  bottom: 18px;
  width: 46px;
  height: 46px;
  cursor: pointer;
  transition: transform var(--ea-transition-base), box-shadow var(--ea-transition-base);
}

.discover-feature-card__action .icon,
.discover-card__arrow .icon,
.discover-stats__cta-icon .icon { width: 19px; height: 19px; }

.discover-feature-card:hover,
.discover-feature-card:focus-within {
  box-shadow: 0 19px 42px rgba(1, 39, 49, .14);
}

.discover-feature-card:hover::after,
.discover-feature-card:focus-within::after,
.discover-card:hover::after,
.discover-card:focus-visible::after {
  border-color: rgba(255, 255, 255, .42);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .08);
}

.discover-feature-card:hover .discover-feature-card__media img,
.discover-feature-card:focus-within .discover-feature-card__media img {
  transform: scale(1.035);
  filter: saturate(1.04) contrast(1.02);
}

.discover-feature-card:hover .discover-feature-card__content,
.discover-feature-card:focus-within .discover-feature-card__content { transform: translateY(-3px); }

.discover-feature-card:hover .discover-feature-card__icon,
.discover-feature-card:focus-within .discover-feature-card__icon { transform: translateY(-2px) rotate(-2deg); }

.discover-feature-card__action:hover,
.discover-feature-card__action:focus-visible {
  transform: translateX(3px) scale(1.04);
  box-shadow: 0 10px 26px rgba(3, 116, 125, .32);
}

.discover-card-grid {
  grid-area: cards;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  min-width: 0;
}

.discover-card {
  position: relative;
  height: 286px;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 16px;
  color: #fff;
  background: #dceced;
  box-shadow: 0 10px 26px rgba(0, 38, 47, .09);
  text-align: left;
  cursor: pointer;
  isolation: isolate;
  transition: transform 260ms cubic-bezier(.2,.7,.2,1), box-shadow 260ms ease;
}

.discover-card__shade {
  background: linear-gradient(180deg, rgba(0, 26, 32, .01) 25%, rgba(0, 27, 34, .78) 100%);
  transition: background var(--ea-transition-base);
}

.discover-card__icon {
  top: 14px;
  right: 14px;
  width: 42px;
  height: 42px;
  border-radius: 10px;
}

.discover-card__icon .icon { width: 20px; height: 20px; }

.discover-card__content {
  position: absolute;
  z-index: 2;
  left: 17px;
  right: 17px;
  bottom: 45px;
  transition: transform var(--ea-transition-base);
}

.discover-card__content strong,
.discover-card__content small { display: block; }

.discover-card__content strong {
  font-family: var(--ea-font-display);
  font-size: 22px;
  font-weight:600;
  line-height: 1.08;
  letter-spacing: -.025em;
}

.discover-card__content small {
  max-width: 260px;
  margin-top: 7px;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.45;
}

.discover-card__arrow {
  position: absolute;
  z-index: 2;
  left: 16px;
  bottom: 13px;
  width: 29px;
  height: 29px;
  transition: transform var(--ea-transition-base), box-shadow var(--ea-transition-base);
}

.discover-card__arrow .icon { width: 13px; height: 13px; }

.discover-card:hover,
.discover-card:focus-visible {
  transform: translateY(-6px);
  box-shadow: 0 18px 38px rgba(0, 38, 47, .16);
}

.discover-card:hover .discover-card__media img,
.discover-card:focus-visible .discover-card__media img {
  transform: scale(1.06);
  filter: saturate(1.06) contrast(1.02);
}

.discover-card:hover .discover-card__content,
.discover-card:focus-visible .discover-card__content { transform: translateY(-3px); }

.discover-card:hover .discover-card__shade,
.discover-card:focus-visible .discover-card__shade {
  background: linear-gradient(180deg, rgba(0, 26, 32, 0) 21%, rgba(0, 27, 34, .83) 100%);
}

.discover-card:hover .discover-card__icon,
.discover-card:focus-visible .discover-card__icon {
  color: #066d75;
  transform: translateY(-3px) rotate(-2deg);
  box-shadow: 0 12px 26px rgba(0, 36, 45, .18);
}

.discover-card:hover .discover-card__arrow,
.discover-card:focus-visible .discover-card__arrow {
  transform: translateX(4px) scale(1.06);
  box-shadow: 0 10px 24px rgba(3, 116, 125, .32);
}

.discover-map {
  grid-area: map;
  position: relative;
  min-width: 0;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  outline: none;
}

.discover-map::before {
  content: "";
  position: absolute;
  z-index: 0;
  width: min(120%, 360px);
  aspect-ratio: 1;
  top: 48%;
  left: 50%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(39, 199, 205, .15), rgba(39, 199, 205, .04) 48%, transparent 72%);
  filter: blur(5px);
  pointer-events: none;
}

.discover-map__stage {
  position: relative;
  z-index: 1;
  width: min(100%, 264px);
  aspect-ratio: 2 / 3;
}

.discover-map__media {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  pointer-events: none;
}

.discover-map__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  opacity: .76;
  filter: saturate(.9);
}

.discover-map__decor {
  position: absolute;
  z-index: 2;
  color: #32b8c0;
  opacity: .62;
  pointer-events: none;
}

.discover-map__decor .icon { width: 100%; height: 100%; stroke-width: 1.45; }
.discover-map__decor--mountain { top: 20%; right: -8%; width: 31px; height: 31px; color: #006f7a; opacity: .82; }
.discover-map__decor--waves-a { top: 31%; right: -13%; width: 25px; height: 25px; }
.discover-map__decor--waves-b { right: -5%; bottom: 18%; width: 27px; height: 27px; }

.discover-map-pin {
  position: absolute;
  z-index: 4;
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 0;
  border: 0;
  color: #315e67;
  background: transparent;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
  cursor: pointer;
}

.discover-map-pin > span {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  border: 4px solid rgba(255, 255, 255, .97);
  border-radius: 50%;
  background: #23bdc7;
  box-shadow: 0 3px 11px rgba(0, 78, 87, .24);
  transition: transform var(--ea-transition-fast), background var(--ea-transition-fast), box-shadow var(--ea-transition-fast);
}

.discover-map-pin > small {
  padding: 6px 8px;
  border-radius: var(--ea-radius-pill);
  background: rgba(247, 252, 251, .9);
  box-shadow: 0 4px 12px rgba(0, 49, 57, .06);
  font: inherit;
  opacity: .86;
  transition: color var(--ea-transition-fast), background var(--ea-transition-fast), opacity var(--ea-transition-fast), transform var(--ea-transition-fast);
}

.discover-map-pin:hover > span,
.discover-map-pin:focus-visible > span,
.discover-map-pin.is-active > span {
  transform: scale(1.16);
  background: #f39a24;
  box-shadow: 0 4px 14px rgba(179, 102, 7, .27);
}

.discover-map-pin:hover > small,
.discover-map-pin:focus-visible > small,
.discover-map-pin.is-active > small {
  color: #083f49;
  background: #fff;
  opacity: 1;
  transform: translateY(-1px);
}

/* Coordinates are relative to the real 2:3 map artwork, not its outer layout container. */
.discover-map-pin--alps { top: 11%; left: 44%; }
.discover-map-pin--villages { top: 27%; left: 25%; }
.discover-map-pin--cities { top: 43%; left: 52%; }
.discover-map-pin--riviera { top: 65%; left: 18%; }
.discover-map-pin--parks { top: 54%; left: 58%; }

.discover-reasons {
  grid-area: reasons;
  align-self: start;
  margin-top: 18px;
  padding: 18px 17px 13px;
  border: 1px solid rgba(0, 53, 62, .05);
  border-radius: 15px;
  background: rgba(255, 255, 255, .88);
  box-shadow: 0 11px 28px rgba(0, 38, 46, .08);
}

.discover-reasons h3 {
  margin: 0 0 8px;
  font-size: 13px;
  font-weight: 700;
}

.discover-reasons a {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr) 14px;
  align-items: center;
  gap: 9px;
  min-height: 45px;
  color: #214952;
  border-top: 1px solid #edf0ef;
  font-size: 12px;
  font-weight: 600;
  transition: color var(--ea-transition-fast), transform var(--ea-transition-fast), background var(--ea-transition-fast);
}

.discover-reasons a:first-of-type { border-top: 0; }
.discover-reasons a > .icon:first-child { width: 19px; height: 19px; color: #078a95; }
.discover-reasons__arrow { width: 12px; height: 12px; }
.discover-reasons a:hover,
.discover-reasons a:focus-visible { color: #07838c; transform: translateX(3px); }

.discover-stats {
  grid-area: stats;
  display: grid;
  grid-template-columns: 230px repeat(4, minmax(105px, 1fr)) 270px;
  min-height: 122px;
  margin-top: 14px;
  overflow: hidden;
  border: 1px solid rgba(0, 50, 60, .05);
  border-radius: 16px;
  background: rgba(255, 255, 255, .86);
  box-shadow: 0 11px 29px rgba(0, 39, 47, .075);
}

.discover-stats__mosaic {
  display: block;
  overflow: hidden;
  min-width: 0;
  min-height: 122px;
}

.discover-stats__mosaic img {
  width: 100%;
  height: 100%;
  min-height: 122px;
  display: block;
  object-fit: cover;
  object-position: center;
}

.discover-stat {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 0;
  text-align: center;
}

.discover-stat::after {
  content: "";
  position: absolute;
  top: 24px;
  right: 0;
  bottom: 24px;
  width: 1px;
  background: #e5eaea;
}

.discover-stat > .icon {
  width: 31px;
  height: 31px;
  margin-bottom: 6px;
  color: #07838e;
  stroke-width: 1.75;
}

.discover-stat strong {
  color: #06333d;
  font-size: 23px;
  font-weight: 700;
  line-height: 1;
}

.discover-stat span {
  margin-top: 6px;
  color: #48666d;
  font-size: 12px;
  font-weight: 600;
}

.discover-stats__cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  padding: 18px 22px;
  color: #123c45;
}

.discover-stats__cta > span:first-child { display: flex; flex-direction: column; gap: 8px; }
.discover-stats__cta strong { font-size: 13px; font-weight: 700; }
.discover-stats__cta small { color: #49666d; font-size: 12px; font-weight: 500; line-height: 1.5; }
.discover-stats__cta-icon { flex: 0 0 auto; width: 46px; height: 46px; transition: transform var(--ea-transition-fast), box-shadow var(--ea-transition-fast); }
.discover-stats__cta:hover .discover-stats__cta-icon,
.discover-stats__cta:focus-visible .discover-stats__cta-icon { transform: translateX(4px); box-shadow: 0 10px 24px rgba(3, 116, 125, .3); }

.discover-section.is-map-focused .discover-map__stage::after {
  content: "";
  position: absolute;
  z-index: 6;
  inset: 5% 3%;
  border: 2px solid rgba(23, 183, 193, .42);
  border-radius: 46% 44% 50% 45%;
  pointer-events: none;
  animation: discover-map-pulse 720ms ease both;
}

@keyframes discover-map-pulse {
  from { opacity: 0; transform: scale(.97); }
  38% { opacity: 1; }
  to { opacity: 0; transform: scale(1.02); }
}

.discover-section.is-updating .discover-feature-card__media img,
.discover-section.is-updating .discover-card__media img { opacity: .58; }

/* =========================================================
   7. EXPERIENCES
   ========================================================= */
.experiences-section {
  position: relative;
  overflow: hidden;
  padding: var(--ea-section-space-y) 0;
  background:
    radial-gradient(circle at 91% 85%, rgba(49, 199, 205, .09), transparent 25%),
    radial-gradient(circle at 10% 12%, rgba(255, 223, 158, .11), transparent 24%),
    #fbfaf7;
}

.experiences-container {
  width: min(100% - (var(--ea-container-gutter) * 2), var(--ea-hero-container-max));
  margin-inline: auto;
  display: grid;
  grid-template-columns: 310px minmax(0, 1fr);
  grid-template-areas:
    "intro moods"
    "intro feature"
    "rail rail"
    "community community";
  gap: 20px 34px;
  align-items: start;
}

.experiences-intro { grid-area: intro; padding-top: 24px; }
.experiences-kicker { display:flex; align-items:center; gap:14px; color:#079ba5; font-family:var(--ea-font-sans); font-size:14px; font-weight:700; line-height:1.2; letter-spacing:.075em; text-transform:uppercase; }
.experiences-kicker svg { width:50px; height:18px; fill:none; stroke:#28c6cf; stroke-width:2; stroke-linecap:round; opacity:.74; }
.experiences-title { margin:31px 0 0; color:#06333d; font-family:var(--ea-font-display); font-size:clamp(48px,4vw,60px); font-weight:600; line-height:.98; letter-spacing:-.025em; }
.experiences-title span { color:#11adb6; }
.experiences-title-accent { display:flex; justify-content:space-between; width:236px; margin:13px 0 27px; }
.experiences-title-accent span { width:44px; height:3px; border-radius:999px; background:#f4bf2a; transform:rotate(-3deg); }
.experiences-title-accent span:last-child { width:52px; transform:rotate(2deg); }
.experiences-description { margin:0; color:#526b71; font-size:16px; font-weight:500; line-height:1.7; }
.experiences-how { display:inline-flex; align-items:center; gap:12px; margin-top:27px; color:#165b64; font-size:14px; font-weight: 700; text-decoration:none; }
.experiences-how__icon { display:grid; place-items:center; width:28px; height:28px; border-radius:50%; color:#fff; background:#087d87; transition:transform var(--ea-transition-fast), box-shadow var(--ea-transition-fast); }
.experiences-how__icon .icon { width:13px; height:13px; }
.experiences-how > span:last-child { border-bottom:1px solid rgba(8,125,135,.38); padding-bottom:2px; }
.experiences-how:hover .experiences-how__icon, .experiences-how:focus-visible .experiences-how__icon { transform:translateX(3px); box-shadow:0 8px 18px rgba(0,104,113,.2); }

.experiences-moods { grid-area:moods; min-width:0; }
.experiences-moods__label { display:block; margin-bottom:10px; color:#38545b; font-size:12px; font-weight: 700; }
.experiences-moods__row { display:flex; align-items:center; gap:12px; min-width:0; }
.experience-filter { display:inline-flex; align-items:center; justify-content:center; gap:9px; min-height:44px; padding:0 22px; border:1px solid #dce5e5; border-radius:999px; color:#294c54; background:rgba(255,255,255,.91); box-shadow:0 4px 14px rgba(0,40,48,.055); font-size:13px; font-weight: 700; white-space:nowrap; cursor:pointer; transition:color var(--ea-transition-fast), border-color var(--ea-transition-fast), background var(--ea-transition-fast), box-shadow var(--ea-transition-fast); }
.experience-filter .icon { width:20px; height:20px; color:#079ba5; stroke-width:1.75; }
.experience-filter:hover, .experience-filter:focus-visible { border-color:rgba(6,161,171,.35); color:#087b85; background:#f6fbfb; box-shadow:0 8px 20px rgba(0,60,69,.09); }
.experience-filter.is-active { color:#fff; border-color:#07929d; background:linear-gradient(180deg,#15a8b1,#07868f); box-shadow:0 8px 20px rgba(5,123,132,.22); }
.experience-filter.is-active .icon { color:#fff; }

.experience-feature { grid-area:feature; position:relative; height:435px; overflow:hidden; border-radius:19px; background:#cfe5e7; box-shadow:0 18px 40px rgba(0,40,49,.11); isolation:isolate; }
.experience-feature__media, .experience-feature__shade { position:absolute; inset:0; }
.experience-feature__media img { display:block; width:100%; height:100%; object-fit:cover; object-position:50% 49%; transition:opacity 200ms ease, transform 620ms cubic-bezier(.2,.7,.2,1), filter 300ms ease; }
.experience-feature__shade { background:linear-gradient(180deg,rgba(0,24,29,.02) 27%,rgba(0,22,29,.16) 54%,rgba(0,22,28,.83) 100%),linear-gradient(90deg,rgba(0,24,30,.18),transparent 58%); }
.experience-feature__badge { position:absolute; z-index:3; top:18px; left:20px; display:inline-flex; align-items:center; min-height:32px; padding:0 17px; border-radius:999px; color:#fff; background:rgba(5,55,62,.88); box-shadow:0 6px 18px rgba(0,26,31,.16); font-size:12px; font-weight: 700; }
.experience-feature__controls { position:absolute; z-index:4; top:18px; right:18px; display:flex; gap:9px; }
.experience-feature__controls button { display:grid; place-items:center; width:46px; height:46px; padding:0; border:0; border-radius:50%; color:#087985; background:rgba(255,255,255,.96); box-shadow:0 8px 22px rgba(0,30,38,.13); cursor:pointer; transition:transform var(--ea-transition-fast), color var(--ea-transition-fast), background var(--ea-transition-fast), box-shadow var(--ea-transition-fast); }
.experience-feature__controls button:last-child { color:#fff; background:#08a1ab; }
.experience-feature__controls button:hover, .experience-feature__controls button:focus-visible { transform:translateY(-2px) scale(1.04); box-shadow:0 11px 27px rgba(0,35,43,.18); }
.experience-feature__controls .icon { width:18px; height:18px; }
.experience-feature__content { position:absolute; z-index:3; left:24px; bottom:27px; width:min(55%,560px); color:#fff; transition:transform var(--ea-transition-base); }
.experience-feature__content h3 { display:flex; align-items:center; gap:12px; margin:0; font-family:var(--ea-font-display); font-size:34px; font-weight:600; line-height:1; letter-spacing:-.025em; }
.experience-feature__title-icon { display:grid; place-items:center; width:45px; height:45px; border:2px solid rgba(255,255,255,.9); border-radius:50%; }
.experience-feature__title-icon .icon { width:24px; height:24px; stroke-width:1.75; }
.experience-feature__content p { margin:13px 0 0; font-size:14px; font-weight: 500; line-height:1.55; }
.experience-feature__cta { display:inline-flex; align-items:center; gap:10px; min-height:45px; margin-top:18px; padding:0 20px; border-radius:999px; color:#078c96; background:#fff; box-shadow:0 9px 22px rgba(0,23,29,.13); font-size:13px; font-weight: 700; text-decoration:none; transition:transform var(--ea-transition-fast), box-shadow var(--ea-transition-fast); }
.experience-feature__cta .icon { width:16px; height:16px; }
.experience-feature__cta:hover, .experience-feature__cta:focus-visible { transform:translateY(-2px); box-shadow:0 13px 28px rgba(0,23,29,.19); }
.experience-feature__meta { position:absolute; z-index:3; right:23px; bottom:25px; display:grid; grid-template-columns:repeat(3,minmax(112px,1fr)); color:#fff; }
.experience-feature__meta > div { display:flex; align-items:center; gap:11px; min-height:58px; padding:0 18px; border-left:1px solid rgba(255,255,255,.22); }
.experience-feature__meta > div:first-child { border-left:0; }
.experience-feature__meta .icon { width:24px; height:24px; flex:0 0 auto; stroke-width:1.75; }
.experience-feature__meta span { display:flex; flex-direction:column; gap:4px; }
.experience-feature__meta strong { font-size:13px; font-weight: 700; line-height:1.15; }
.experience-feature__meta small { font-size:12px; font-weight:600; line-height:1.2; }
.experience-feature:hover .experience-feature__media img, .experience-feature:focus-within .experience-feature__media img { transform:scale(1.025); filter:saturate(1.035) contrast(1.02); }
.experience-feature:hover .experience-feature__content, .experience-feature:focus-within .experience-feature__content { transform:translateY(-2px); }
.experiences-section.is-updating .experience-feature__media img { opacity:.55; }

.experience-rail-wrap { grid-area:rail; position:relative; min-width:0; margin-top:6px; }
.experience-rail { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(138px,1fr); grid-template-rows:184px; gap:12px; overflow-x:auto; padding:3px 2px 10px; scroll-snap-type:x mandatory; scrollbar-width:none; overscroll-behavior-inline:contain; scroll-behavior:smooth; }
.experience-rail::-webkit-scrollbar { display:none; }
.experience-card { position:relative; min-width:126px; padding:0; overflow:hidden; border:0; border-radius:15px; background:#fff; box-shadow:0 9px 24px rgba(0,36,44,.09); text-align:left; scroll-snap-align:start; cursor:pointer; transition:transform 260ms cubic-bezier(.2,.7,.2,1), box-shadow 260ms ease; }
.experience-card picture { position:absolute; inset:0 0 46px; overflow:hidden; }
.experience-card picture::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 58%,rgba(0,32,39,.14)); }
.experience-card img { display:block; width:100%; height:100%; object-fit:cover; transition:transform 520ms cubic-bezier(.2,.7,.2,1), filter 280ms ease; }
.experience-card__footer { position:absolute; z-index:2; left:0; right:0; bottom:0; height:52px; padding:0 10px 0 49px; display:flex; align-items:center; border-radius:0 0 15px 15px; color:#173f48; background:#fff; }
.experience-card__footer strong { font-size:12px; font-weight: 700; line-height:1.15; }
.experience-card__icon { position:absolute; left:8px; top:-17px; display:grid; place-items:center; width:40px; height:40px; border-radius:50%; color:#0799a4; background:#fff; box-shadow:0 4px 14px rgba(0,37,45,.13); }
.experience-card__icon .icon { width:20px; height:20px; stroke-width:1.75; }
.experience-card:hover, .experience-card:focus-visible { transform:translateY(-5px); box-shadow:0 16px 34px rgba(0,36,44,.16); }
.experience-card:hover img, .experience-card:focus-visible img { transform:scale(1.055); filter:saturate(1.04) contrast(1.02); }
.experience-card.is-active { box-shadow:0 0 0 2px rgba(10,165,175,.42),0 14px 30px rgba(0,36,44,.13); }
.experience-rail-control { position:absolute; z-index:6; top:50%; display:grid; place-items:center; width:46px; height:46px; padding:0; border:1px solid #dce8e8; border-radius:50%; color:#087b84; background:rgba(255,255,255,.97); box-shadow:0 9px 24px rgba(0,36,44,.13); cursor:pointer; opacity:0; visibility:hidden; transform:translateY(-50%) scale(.94); transition:opacity var(--ea-transition-fast), visibility var(--ea-transition-fast), transform var(--ea-transition-fast), background var(--ea-transition-fast), color var(--ea-transition-fast); }
.experience-rail-control--prev { left:-18px; }
.experience-rail-control--next { right:-18px; }
.experience-rail-control .icon { width:18px; height:18px; }
.experience-rail-wrap.has-overflow .experience-rail-control { opacity:1; visibility:visible; transform:translateY(-50%) scale(1); }
.experience-rail-control:hover, .experience-rail-control:focus-visible { color:#fff; background:#09a1ab; transform:translateY(-50%) scale(1.05); }
.experience-rail-control[disabled] { opacity:.32!important; cursor:default; pointer-events:none; }

.experiences-community { grid-area:community; position:relative; min-height:124px; margin-top:8px; overflow:hidden; display:grid; grid-template-columns:1.18fr 1fr; align-items:center; padding:0 38px; border:1px solid rgba(0,64,72,.045); border-radius:18px; background:linear-gradient(90deg,#f4fbfa 0%,#f8fcfb 48%,#e8f7f6 100%); box-shadow:0 12px 30px rgba(0,37,45,.07); isolation:isolate; }
.experiences-community__message { position:relative; z-index:3; display:flex; align-items:center; gap:22px; }
.experiences-community__hand { display:grid; place-items:center; width:56px; height:56px; color:#087985; flex:0 0 auto; }
.experiences-community__hand .icon { width:50px; height:50px; stroke-width:1.65; }
.experiences-community__message > span:last-child { display:flex; flex-direction:column; gap:6px; }
.experiences-community__message strong { color:#163f48; font-size:16px; font-weight: 700; }
.experiences-community__message small { color:#46666d; font-size:13px; font-weight: 500; }
.experiences-community__link { position:relative; z-index:4; display:flex; align-items:center; justify-content:center; gap:26px; min-height:76px; border-left:1px solid #dbe9e8; color:#35575f; font-size:13px; font-weight:700; text-decoration:none; }
.experiences-community__arrow { display:grid; place-items:center; width:40px; height:40px; border:1px solid #a9d6d8; border-radius:50%; color:#078892; background:#fff; box-shadow:0 5px 14px rgba(0,41,48,.07); transition:transform var(--ea-transition-fast), box-shadow var(--ea-transition-fast); }
.experiences-community__arrow .icon { width:15px; height:15px; }
.experiences-community__link:hover .experiences-community__arrow, .experiences-community__link:focus-visible .experiences-community__arrow { transform:translateX(4px); box-shadow:0 8px 18px rgba(0,41,48,.12); }
.experiences-community__art { position:absolute; z-index:1; right:-12px; bottom:-44px; width:470px; height:180px; opacity:.8; pointer-events:none; }
.experiences-community__art img { width:100%; height:100%; object-fit:contain; object-position:right bottom; }

/* =========================================================
   7. RESPONSIVE ARCHITECTURE
   Project-mandated breakpoints only.
   ========================================================= */

/* Mobile Small: max-width 359px */
@media (max-width: 359px) {
  :root {
    --ea-section-space-y: 54px;
    --ea-container-gutter: 16px;
    --ea-topbar-height: 38px;
    --ea-header-height: 72px;
  }

  .brand {
    width: 172px;
  }

  .season-promo__text {
    max-width: 198px;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .site-navigation {
    width: min(92vw, 340px);
  }

  .mobile-menu__brand {
    width: 138px;
  }

  .hero-title {
    font-size: 39px;
  }

  .hero-container {
    width: min(100% - 28px, 1157px);
  }

  .journey-panel {
    padding-inline: 12px;
  }

  .trust-panel {
    grid-template-columns: 1fr;
  }

  .trust-feature {
    min-height: 112px;
    border-bottom: 1px solid #e6ecec;
  }

  .trust-feature::after {
    display: none !important;
  }

  .digital-pass {
    grid-column: 1;
  }
}

/* Mobile: 360px–575px */
@media (min-width: 360px) and (max-width: 575px) {
  :root {
    --ea-section-space-y: 58px;
    --ea-container-gutter: 18px;
    --ea-topbar-height: 40px;
    --ea-header-height: 76px;
  }

  .brand {
    width: 184px;
  }

  .site-navigation {
    width: min(92vw, 370px);
  }
}

/* Large Mobile: 576px–767px */
@media (min-width: 576px) and (max-width: 767px) {
  :root {
    --ea-section-space-y: 66px;
    --ea-container-gutter: 24px;
    --ea-topbar-height: 40px;
    --ea-header-height: 78px;
  }

  .brand {
    width: 194px;
  }

  .site-navigation {
    width: 420px;
  }
}

/* Tablet: 768px–991px */
@media (min-width: 768px) and (max-width: 991px) {
  :root {
    --ea-section-space-y: 72px;
    --ea-container-gutter: 30px;
    --ea-topbar-height: 42px;
    --ea-header-height: 82px;
  }

  .brand {
    width: 208px;
  }

  .site-navigation {
    width: 450px;
  }
}

/* Shared mobile/tablet navigation behavior */
@media (max-width: 991px) {
  .utility-bar__inner {
    display: flex;
    justify-content: center;
    gap: 0;
  }

  .season-promo {
    transform: none;
  }

  .utility-discover,
  .utility-tools {
    display: none;
  }

  .season-promo {
    width: 100%;
    justify-content: center;
    gap: 8px;
    font-size: 12px;
    overflow: hidden;
  }

  .season-promo__badge {
    height: 21px;
    font-size: 12px;
  }

  .season-promo__text {
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .season-promo__arrow {
    width: 12px;
    height: 12px;
  }

  .primary-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
  }

  .mobile-menu-toggle {
    display: inline-grid;
    place-items: center;
    width: 48px;
    height: 48px;
    padding: 0;
    border: 1px solid rgba(0, 33, 42, .08);
    border-radius: 50%;
    color: var(--ea-color-ink);
    background: #fff;
    box-shadow: var(--ea-shadow-control);
    cursor: pointer;
  }

  .mobile-menu-toggle .icon {
    width: 23px;
    height: 23px;
  }

  .mobile-menu-toggle .icon--close {
    display: none;
  }

  .mobile-menu-toggle[aria-expanded="true"] .icon--menu {
    display: none;
  }

  .mobile-menu-toggle[aria-expanded="true"] .icon--close {
    display: block;
  }

  .site-navigation {
    position: fixed;
    z-index: var(--ea-z-drawer);
    top: 0;
    right: 0;
    bottom: 0;
    display: block;
    max-width: 100%;
    padding: 20px 20px 18px;
    overflow-y: auto;
    overscroll-behavior: contain;
    background: #fff;
    box-shadow: -18px 0 55px rgba(0, 28, 36, .18);
    visibility: hidden;
    transform: translateX(105%);
    transition: transform 260ms ease, visibility 260ms ease;
  }

  .site-navigation.is-open {
    visibility: visible;
    transform: translateX(0);
  }

  .mobile-menu__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 48px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--ea-color-border);
  }

  .mobile-menu__brand {
    display: inline-flex;
    align-items: center;
    width: 150px;
  }

  .mobile-menu__brand img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1440 / 470;
    object-fit: contain;
  }

  .mobile-menu__close {
    display: inline-grid;
    place-items: center;
    width: 42px;
    height: 42px;
    padding: 0;
    border: 1px solid var(--ea-color-border);
    border-radius: 50%;
    background: #fff;
    cursor: pointer;
  }

  .mobile-menu__close .icon {
    width: 20px;
    height: 20px;
  }

  .mobile-menu__actions-slot,
  .mobile-menu__utility-slot {
    display: block;
  }

  .primary-nav {
    width: 100%;
    margin-top: 14px;
  }

  .primary-nav__list {
    display: block;
    width: 100%;
  }

  .nav-item {
    display: block;
    height: auto;
    border-bottom: 1px solid var(--ea-color-border);
  }

  .nav-link {
    position: relative;
    width: 100%;
    min-height: 54px;
    justify-content: space-between;
    padding: 0 2px;
    font-size: 15px;
    font-weight: 700;
    text-align: left;
  }

  .nav-link::after {
    display: none;
  }

  .nav-link__chevron {
    width: 16px;
    height: 16px;
  }

  .submenu,
  .submenu--mega,
  .submenu--dropdown {
    position: static;
    top: auto;
    left: auto;
    width: 100%;
    max-width: none;
    max-height: 0;
    padding: 0;
    overflow: hidden;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: none;
    transition: max-height 300ms ease, padding 300ms ease;
  }

  .nav-item:hover > .submenu,
  .nav-item:focus-within > .submenu {
    max-height: 0;
    padding: 0;
  }

  .nav-item.is-open > .submenu {
    max-height: 1800px;
    padding: 0 0 14px;
  }

  .mega-grid,
  .mega-grid--3,
  .mega-grid--4 {
    display: block;
  }

  .mega-column {
    padding: 5px 0 7px;
    border: 0 !important;
  }

  .mega-column__title {
    margin: 7px 0 4px;
    padding: 0 8px;
    color: #446068;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .08em;
  }

  .mega-column__title .icon {
    width: 15px;
    height: 15px;
  }

  .menu-link {
    grid-template-columns: 34px minmax(0, 1fr);
    min-height: 52px;
    padding: 7px 8px;
  }

  .menu-link > .icon:first-child {
    width: 32px;
    height: 32px;
  }

  .menu-link strong {
    font-size: 13px;
  }

  .menu-link small {
    font-size: 12px;
  }

  .nested-menu::after {
    display: none;
  }

  .nested-menu__trigger {
    grid-template-columns: 34px minmax(0, 1fr) 20px;
  }

  .nested-menu__arrow {
    transform: rotate(90deg);
    transition: transform var(--ea-transition-base);
  }

  .nested-menu.is-open .nested-menu__arrow {
    transform: rotate(-90deg);
  }

  .nested-menu__panel {
    position: static;
    width: 100%;
    max-height: 0;
    padding: 0 0 0 18px;
    overflow: hidden;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: none;
    transition: max-height 260ms ease;
  }

  .nested-menu:hover > .nested-menu__panel,
  .nested-menu:focus-within > .nested-menu__panel {
    max-height: 0;
  }

  .nested-menu.is-open > .nested-menu__panel {
    max-height: 420px;
  }

  .header-actions {
    display: none;
  }

  .mobile-menu__actions-slot .header-actions {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 10px;
    width: 100%;
    margin: 16px 0 6px;
  }

  .mobile-menu__actions-slot .search-button {
    width: 48px;
    height: 48px;
  }

  .mobile-menu__actions-slot .header-search {
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    height: 48px;
    grid-template-columns: 20px minmax(0, 1fr) 38px 38px;
    padding: 4px 5px 4px 13px;
    transform: scaleX(.92);
  }

  .mobile-menu__actions-slot .search-control.is-open .header-search {
    transform: scaleX(1);
  }

  .mobile-menu__actions-slot .header-search__input {
    height: 38px;
    font-size: 13px;
  }

  .mobile-menu__actions-slot .header-search__submit,
  .mobile-menu__actions-slot .header-search__close {
    width: 38px;
    height: 38px;
  }

  .mobile-menu__actions-slot .saved-link {
    justify-content: center;
    min-height: 48px;
    border: 1px solid var(--ea-color-border);
    border-radius: var(--ea-radius-pill);
    background: #fff;
  }

  .mobile-menu__actions-slot .plan-button {
    grid-column: 1 / -1;
    width: 100%;
    height: 48px;
  }

  .mobile-menu__utility-slot .utility-tools {
    display: grid;
    grid-template-columns: auto auto;
    justify-content: center;
    justify-items: center;
    align-items: center;
    column-gap: 12px;
    row-gap: 0;
    width: 100%;
    height: auto;
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid var(--ea-color-border);
    color: var(--ea-color-ink);
    transform: none;
  }

  .mobile-menu__utility-slot .utility-tools::before {
    display: none;
  }

  .mobile-menu__utility-slot .utility-links {
    grid-column: 1 / -1;
    display: flex;
    justify-content: center;
    gap: 8px;
    width: 100%;
  }

  .mobile-menu__utility-slot .utility-links a {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 12px;
    border: 1px solid var(--ea-color-border);
    border-radius: 10px;
    font-size: 12px;
    text-align: center;
  }

  .mobile-menu__utility-slot .utility-separator {
    display: none;
  }

  .mobile-menu__utility-slot .social-links {
    grid-column: 1;
    justify-content: center;
    gap: 12px;
    margin-top: 14px;
  }

  .mobile-menu__utility-slot .social-links a {
    width: 42px;
    height: 42px;
    border: 1px solid var(--ea-color-border);
    border-radius: 50%;
  }

  .mobile-menu__utility-slot .language-menu {
    grid-column: 2;
    justify-self: center;
    margin-top: 14px;
  }

  .mobile-menu__utility-slot .language-switcher {
    min-height: 42px;
    padding: 0 11px;
    border: 1px solid var(--ea-color-border);
    border-radius: var(--ea-radius-pill);
    color: var(--ea-color-ink);
    background: #fff;
  }

  .mobile-menu__utility-slot .language-options {
    top: calc(100% + 8px);
    right: 0;
  }

  .mobile-menu__copyright {
    display: block;
    margin: 20px 0 0;
    color: var(--ea-color-muted);
    font-size: 12px;
    text-align: center;
  }

  .mobile-menu-backdrop {
    position: fixed;
    z-index: var(--ea-z-backdrop);
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    padding: 0;
    border: 0;
    background: rgba(0, 24, 31, .46);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 260ms ease, visibility 260ms ease;
  }

  .mobile-menu-backdrop.is-visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  .hero-section {
    min-height: auto;
    padding: 42px 0 62px;
  }

  .hero-section__media img {
    object-position: 63% 45%;
  }

  .hero-section__veil {
    background:
      linear-gradient(180deg, rgba(255, 251, 244, .78) 0%, rgba(255, 251, 244, .46) 27%, rgba(255,255,255,.12) 54%, rgba(0,56,66,.06) 100%),
      linear-gradient(90deg, rgba(255, 255, 255, .48), rgba(255,255,255,.04));
  }

  .hero-copy {
    padding-top: 0;
  }

  .hero-title {
    max-width: 520px;
    font-size: clamp(42px, 8.5vw, 58px);
  }

  .hero-description {
    max-width: 470px;
    margin-top: 22px;
    font-size: 13px;
  }

  .hero-description__desktop {
    display: none;
  }

  .hero-flight-path {
    display: none;
  }

  .hero-search-wrap {
    position: relative;
    top: auto;
    left: auto;
    margin-top: 34px;
    transform: none;
  }

  .journey-search {
    border-radius: 16px;
    backdrop-filter: none;
  }

  .journey-tabs-shell {
    overflow: hidden;
  }

  .journey-tabs-shell::before,
  .journey-tabs-shell::after {
    content: "";
    position: absolute;
    z-index: 3;
    top: 0;
    bottom: 1px;
    width: 20px;
    pointer-events: none;
    opacity: 1;
    transition: opacity var(--ea-transition-fast);
  }

  .journey-tabs-shell::before {
    left: 0;
    background: linear-gradient(90deg, rgba(255,255,255,.98), rgba(255,255,255,0));
  }

  .journey-tabs-shell::after {
    right: 0;
    background: linear-gradient(270deg, rgba(255,255,255,.98), rgba(255,255,255,0));
  }

  .journey-tabs-shell.is-at-start::before,
  .journey-tabs-shell.is-at-end::after {
    opacity: 0;
  }

  .journey-tabs {
    display: flex;
    min-height: 74px;
    padding: 0 18px;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x;
    scrollbar-width: none;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: 18px;
  }

  .journey-tabs::-webkit-scrollbar {
    display: none;
  }

  .journey-tab {
    flex: 0 0 clamp(132px, 38vw, 150px);
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 8px;
    padding: 9px 11px;
    scroll-snap-align: center;
    scroll-snap-stop: always;
  }

  .journey-tab__icon {
    width: 34px;
    height: 34px;
  }

  .journey-tab__icon .icon {
    width: 21px;
    height: 21px;
  }

  .journey-tab__copy strong {
    font-size: 12px;
  }

  .journey-tab__copy small {
    font-size: 12px;
  }

  .journey-panel {
    padding: 16px 16px 4px;
  }

  .journey-fields {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .journey-field {
    height: 58px;
  }

  .journey-submit {
    width: 100%;
    height: 52px;
    margin: 2px 0 0;
  }

  .destination-suggestions {
    max-height: 230px;
  }

  .calendar-popover,
  .guest-popover {
    position: fixed;
    z-index: calc(var(--ea-z-drawer) + 20);
    top: auto;
    left: 16px;
    right: 16px;
    bottom: 16px;
    width: auto;
    max-height: calc(100dvh - 32px);
    overflow-y: auto;
    transform: translateY(18px);
  }

  .journey-field.is-open .calendar-popover,
  .journey-field.is-open .guest-popover {
    transform: translateY(0);
  }

  .calendar-months {
    grid-template-columns: 1fr;
  }

  .calendar-month:nth-child(2) {
    display: none;
  }

  .journey-popular {
    grid-template-columns: 1fr auto;
    gap: 10px;
    padding: 12px 0 10px;
  }

  .journey-popular > strong {
    grid-column: 1 / -1;
  }

  .journey-chips {
    gap: 8px;
    overflow-x: auto;
    padding-bottom: 2px;
    scrollbar-width: none;
  }

  .journey-chips::-webkit-scrollbar {
    display: none;
  }

  .journey-chips.is-expanded {
    overflow: visible;
  }

  .hero-wave {
    height: 58px;
  }

  .trust-section {
    min-height: 0;
    padding: 14px 0 28px;
  }

  .trust-panel {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    min-height: 0;
    border-radius: 14px;
  }

  .trust-feature {
    min-height: 126px;
    padding: 18px 16px;
  }

  .trust-feature:nth-child(2)::after,
  .trust-feature:nth-child(4)::after {
    display: none;
  }

  .trust-feature:nth-child(-n+2) {
    border-bottom: 1px solid #e6ecec;
  }

  .digital-pass {
    grid-column: 1 / -1;
    min-height: 165px;
    border-radius: 0 0 13px 13px;
  }

  .digital-pass__content {
    top: 24px;
    left: 20px;
  }

  .digital-pass__content strong {
    font-size: 14px;
    line-height: 1.28;
  }

  .digital-pass__content small {
    font-size: 12px;
  }

  .digital-pass__mock {
    right: 22px;
    bottom: 22px;
    width: 130px;
    height: 72px;
  }
}

/* Small Desktop: 992px–1199px */
@media (min-width: 992px) and (max-width: 1199px) {
  :root {
    --ea-section-space-y: 74px;
    --ea-container-gutter: 24px;
    --ea-topbar-height: 48px;
    --ea-header-height: 112px;
  }

  .utility-bar__inner {
    grid-template-columns: auto 1fr auto;
    gap: 14px;
  }

  .utility-tools {
    transform: none;
  }

  .utility-discover {
    font-size: 12px;
    gap: 8px;
  }

  .season-promo {
    font-size: 12px;
    gap: 7px;
  }

  .season-promo__badge {
    font-size: 12px;
  }

  .utility-links {
    gap: 13px;
  }

  .utility-links a,
  .language-switcher {
    font-size: 12px;
  }

  .social-links {
    gap: 9px;
  }

  .utility-separator {
    margin-inline: 9px;
  }

  .primary-header__inner {
    grid-template-columns: 180px minmax(0, 1fr) auto;
    column-gap: 24px;
  }

  .brand {
    width: 180px;
  }

  .primary-nav__list {
    gap: 13px;
  }

  .nav-link {
    gap: 4px;
    font-size: 12px;
  }

  .header-actions {
    gap: 10px;
  }

  .search-button {
    width: 43px;
    height: 43px;
  }

  .saved-link {
    font-size: 12px;
  }

  .saved-link .icon {
    width: 19px;
    height: 19px;
  }

  .plan-button {
    min-width: 132px;
    height: 43px;
    padding-inline: 15px;
    font-size: 12px;
  }

  :root {
    --ea-hero-container-max: 1080px;
  }

  .hero-section {
    min-height: 610px;
  }

  .hero-title {
    font-size: 58px;
  }

  .hero-search-wrap {
    top: 306px;
  }

  .journey-tabs {
    padding-inline: 16px;
  }

  .journey-tab {
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 7px;
    padding-inline: 8px;
  }

  .journey-tab__icon {
    width: 34px;
    height: 34px;
  }

  .journey-tab__copy strong {
    font-size: 12px;
  }

  .journey-tab__copy small {
    font-size: 12px;
  }

  .journey-fields {
    grid-template-columns: 1.12fr 1fr .95fr 175px;
    gap: 10px;
  }

  .journey-submit {
    padding-inline: 14px;
    font-size: 13px;
  }

  .journey-chips {
    gap: 7px;
  }

  .journey-chips button {
    padding-inline: 11px;
    font-size: 12px;
  }

  .trust-panel {
    grid-template-columns: repeat(4, minmax(0, 1fr)) 265px;
  }

  .trust-feature {
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 10px;
    padding-inline: 14px;
  }

  .trust-feature > .icon {
    width: 32px;
    height: 32px;
  }
}

/* Desktop: 1200px–1399px */
@media (min-width: 1200px) and (max-width: 1399px) {
  :root {
    --ea-section-space-y: 78px;
    --ea-container-gutter: 30px;
    --ea-topbar-height: 50px;
    --ea-header-height: 120px;
  }

  .utility-bar__inner {
    grid-template-columns: minmax(300px, 1fr) auto minmax(390px, 1fr);
    gap: 17px;
  }

  .utility-tools {
    transform: none;
  }

  .utility-discover {
    font-size: 13px;
  }

  .season-promo {
    font-size: 12.5px;
  }

  .utility-links {
    gap: 18px;
  }

  .utility-links a,
  .language-switcher {
    font-size: 12px;
  }

  .social-links {
    gap: 13px;
  }

  .utility-separator {
    margin-inline: 12px;
  }

  .primary-header__inner {
    grid-template-columns: 210px minmax(0, 1fr) auto;
    column-gap: 40px;
  }

  .brand {
    width: 210px;
  }

  .primary-nav__list {
    gap: 18px;
  }

  .nav-link {
    font-size: 13px;
  }

  .header-actions {
    gap: 15px;
  }

  .search-button {
    width: 46px;
    height: 46px;
  }

  .saved-link {
    font-size: 13px;
  }

  .plan-button {
    min-width: 150px;
    height: 45px;
    padding-inline: 18px;
    font-size: 13px;
  }

  :root {
    --ea-hero-container-max: 1220px;
  }

  .hero-section {
    min-height: 620px;
  }

  .hero-title {
    font-size: 64px;
  }

  .hero-search-wrap {
    top: 318px;
  }

}

/* Large Desktop: 1400px–1599px */
@media (min-width: 1400px) and (max-width: 1599px) {
  :root {
    --ea-section-space-y: 82px;
    --ea-container-gutter: 40px;
    --ea-hero-container-max: 1300px;
  }

  .hero-section {
    min-height: 650px;
  }

  .hero-copy {
    padding-top: 50px;
  }

  .hero-title {
    font-size: 69px;
  }

  .hero-search-wrap {
    top: 334px;
  }

  .hero-wave {
    height: 102px;
  }
}

/* Extra Large: 1600px+ */
@media (min-width: 1600px) {
  :root {
    --ea-section-space-y: 86px;
    --ea-container-max: 1520px;
    --ea-container-gutter: 40px;
    --ea-hero-container-max: 1380px;
  }

  .primary-header__inner {
    grid-template-columns: 248px minmax(0, 1fr) auto;
    column-gap: 78px;
  }

  .brand {
    width: 248px;
  }

  .primary-nav__list {
    gap: 31px;
  }

  .hero-section {
    min-height: 690px;
  }

  .hero-copy {
    padding-top: 56px;
  }

  .hero-title {
    font-size: 74px;
  }

  .hero-description {
    font-size: 16px;
  }

  .hero-search-wrap {
    top: 356px;
  }

  .hero-wave {
    height: 112px;
  }
}


/* =========================================================
   8. DISCOVER DESTINATIONS — RESPONSIVE TUNING
   Uses project-mandated breakpoint ranges only.
   ========================================================= */

/* Mobile Small: max-width 359px */
@media (max-width: 359px) {
  .discover-container {
    grid-template-columns: 1fr;
    grid-template-areas: "intro" "toolbar" "feature" "cards" "map" "reasons" "stats";
    gap: 26px;
  }
  .discover-intro { padding-top: 0; }
  .discover-title { width:100%; max-width:330px; font-size:45px; line-height:.92; letter-spacing:-.035em; }
  .discover-title-accent { width: 236px; margin-top:14px; margin-bottom:22px; }
  .discover-description { max-width: 100%; font-size: 12px; }
  .discover-map-cta { margin-top: 22px; }

  .discover-gallery__toolbar {
    flex-direction: column;
    align-items: stretch;
    gap: 16px;
  }
  .discover-filters {
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
  }
  .discover-filter { min-height: 36px; padding-inline: 12px; }
  .discover-side__controls { gap: 14px; }
  .discover-side__controls button { width: 46px; height: 46px; }

  .discover-feature-card { height: 292px; }
  .discover-feature-card__content h3 { font-size: 26px; }
  .discover-feature-card__content p { font-size: 12px; }

  .discover-card-grid { grid-template-columns: 1fr; gap: 14px; }
  .discover-card { width: 100%; height: 252px; }
  .discover-card__content strong { font-size: 21px; }

  .discover-map { min-height: 382px; }
  .discover-map__stage { width: min(100%, 250px); }
  .discover-map__decor--mountain { right: -4%; }
  .discover-map__decor--waves-a { right: -6%; }
  .discover-map__decor--waves-b { right: 0; }
  .discover-map-pin > small { padding: 5px 7px; }

  .discover-reasons { margin-top: 0; }

  .discover-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); min-height: 0; }
  .discover-stats__mosaic { grid-column: 1 / -1; height: 138px; min-height: 138px; }
  .discover-stats__mosaic img { min-height: 138px; }
  .discover-stat { min-height: 112px; }
  .discover-stat:nth-of-type(2)::after,
  .discover-stat:nth-of-type(4)::after { display: none; }
  .discover-stats__cta { grid-column: 1 / -1; min-height: 108px; border-top: 1px solid #e5eaea; }
}

/* Mobile: 360px–575px */
@media (min-width: 360px) and (max-width: 575px) {
  .discover-container {
    grid-template-columns: 1fr;
    grid-template-areas: "intro" "toolbar" "feature" "cards" "map" "reasons" "stats";
    gap: 28px;
  }
  .discover-intro { padding-top: 0; }
  .discover-title { width:100%; max-width:360px; font-size:50px; line-height:.92; letter-spacing:-.035em; }
  .discover-description { max-width: 100%; }

  .discover-gallery__toolbar { flex-direction: column; align-items: stretch; gap: 17px; }
  .discover-filters { flex-wrap: wrap; justify-content: center; gap: 8px; }
  .discover-filter { min-height: 36px; padding-inline: 13px; }
  .discover-side__controls { gap: 14px; }
  .discover-side__controls button { width: 48px; height: 48px; }

  .discover-feature-card { height: 320px; }
  .discover-card-grid { grid-template-columns: 1fr; gap: 15px; }
  .discover-card { height: 265px; }

  .discover-map { min-height: 408px; }
  .discover-map__stage { width: min(100%, 268px); }
  .discover-map__decor--mountain { right: -4%; }
  .discover-map__decor--waves-a { right: -7%; }
  .discover-map__decor--waves-b { right: 0; }

  .discover-reasons { margin-top: 0; }

  .discover-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); min-height: 0; }
  .discover-stats__mosaic { grid-column: 1 / -1; height: 150px; min-height: 150px; }
  .discover-stats__mosaic img { min-height: 150px; }
  .discover-stat { min-height: 118px; }
  .discover-stat:nth-of-type(2)::after,
  .discover-stat:nth-of-type(4)::after { display: none; }
  .discover-stats__cta { grid-column: 1 / -1; min-height: 110px; border-top: 1px solid #e5eaea; }
}

/* Large Mobile: 576px–767px */
@media (min-width: 576px) and (max-width: 767px) {
  .discover-container {
    grid-template-columns: 1fr;
    grid-template-areas: "intro" "toolbar" "feature" "cards" "map" "reasons" "stats";
    gap: 32px;
  }
  .discover-intro {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 210px;
    column-gap: 28px;
    align-items: end;
    padding-top: 0;
  }
  .discover-kicker,
  .discover-title,
  .discover-title-accent { grid-column: 1; }
  .discover-title { font-size:52px; line-height:.92; letter-spacing:-.035em; }
  .discover-description { grid-column: 2; grid-row: 1 / span 3; align-self: end; max-width: 210px; margin-bottom: 8px; }
  .discover-map-cta { grid-column: 2; justify-self: start; margin-top: 14px; }

  .discover-gallery__toolbar { flex-wrap: wrap; justify-content: center; }
  .discover-filters { flex-wrap: wrap; justify-content: center; }
  .discover-side__controls { width: 100%; }

  .discover-feature-card { height: 370px; }
  .discover-card-grid { grid-template-columns: 1fr; gap: 16px; }
  .discover-card { height: 300px; }

  .discover-map { min-height: 430px; }
  .discover-map__stage { width: 280px; }
  .discover-reasons { margin-top: 0; }

  .discover-stats { grid-template-columns: 190px repeat(2, minmax(0, 1fr)); min-height: 0; }
  .discover-stats__mosaic { grid-row: 1 / span 2; min-height: 232px; }
  .discover-stats__mosaic img { min-height: 232px; }
  .discover-stat { min-height: 116px; }
  .discover-stats__cta { grid-column: 2 / -1; border-top: 1px solid #e5eaea; }
}

/* Tablet: 768px–991px */
@media (min-width: 768px) and (max-width: 991px) {
  .discover-container {
    grid-template-columns: minmax(0, 1fr) minmax(280px, .82fr);
    grid-template-areas:
      "intro intro"
      "toolbar toolbar"
      "feature feature"
      "cards cards"
      "map reasons"
      "stats stats";
    gap: 34px 28px;
  }
  .discover-intro {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 330px;
    column-gap: 42px;
    align-items: end;
    padding-top: 0;
  }
  .discover-kicker,
  .discover-title,
  .discover-title-accent { grid-column: 1; }
  .discover-description { grid-column: 2; grid-row: 1 / span 3; max-width: 310px; align-self: end; margin-bottom: 8px; }
  .discover-map-cta { grid-column: 2; justify-self: start; margin-top: 15px; }

  .discover-gallery__toolbar { justify-content: space-between; }
  .discover-filters { flex-wrap: wrap; gap: 8px; }
  .discover-feature-card { height: 420px; }
  .discover-card { height: 280px; }

  .discover-map { min-height: 390px; align-items: center; }
  .discover-map__stage { width: min(100%, 250px); }
  .discover-reasons { align-self: center; margin-top: 0; }

  .discover-stats { grid-template-columns: 190px repeat(4, minmax(88px, 1fr)); min-height: 138px; }
  .discover-stats__mosaic { min-height: 138px; }
  .discover-stats__mosaic img { min-height: 138px; }
  .discover-stat { min-height: 138px; }
  .discover-stats__cta { grid-column: 1 / -1; min-height: 98px; border-top: 1px solid #e5eaea; }
}

/* Small Desktop: 992px–1199px */
@media (min-width: 992px) and (max-width: 1199px) {
  .discover-container {
    grid-template-columns: 250px minmax(0, 1fr) 260px;
    gap: 16px 24px;
  }
  .discover-title { font-size: 44px; }
  .discover-description { font-size: 12px; }
  .discover-filters { gap: 7px; overflow-x: auto; scrollbar-width: none; }
  .discover-filters::-webkit-scrollbar { display: none; }
  .discover-filter { flex: 0 0 auto; padding-inline: 12px; font-size: 12px; }
  .discover-feature-card { height: 330px; }
  .discover-card { height: 245px; }
  .discover-card__content strong { font-size: 20px; }
  .discover-card__content small { font-size: 12px; }
  .discover-map__stage { width: 228px; }
  .discover-reasons { padding-inline: 14px; }
  .discover-stats { grid-template-columns: 180px repeat(4, minmax(80px, 1fr)) 215px; }
  .discover-stats__cta { padding-inline: 16px; }
}

/* Desktop: 1200px–1399px */
@media (min-width: 1200px) and (max-width: 1399px) {
  .discover-container { grid-template-columns: 270px minmax(0, 1fr) 265px; gap: 18px 26px; }
  .discover-title { font-size: 49px; }
  .discover-feature-card { height: 360px; }
  .discover-card { height: 265px; }
  .discover-map__stage { width: 242px; }
  .discover-stats { grid-template-columns: 205px repeat(4, minmax(95px, 1fr)) 245px; }
}

/* Large Desktop: 1400px–1599px */
@media (min-width: 1400px) and (max-width: 1599px) {
  .discover-feature-card { height: 390px; }
  .discover-card { height: 286px; }
  .discover-map__stage { width: 264px; }
}

/* Extra Large: 1600px+ */
@media (min-width: 1600px) {
  .discover-container { grid-template-columns: 315px minmax(0, 1fr) 300px; gap: 20px 38px; }
  .discover-title { font-size: 58px; }
  .discover-description { font-size: 14px; }
  .discover-feature-card { height: 414px; }
  .discover-card { height: 304px; }
  .discover-map__stage { width: 280px; }
  .discover-stats { grid-template-columns: 245px repeat(4, minmax(110px, 1fr)) 290px; min-height: 128px; }
  .discover-stats__mosaic,
  .discover-stats__mosaic img { min-height: 128px; }
}

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


/* =========================================================
   9. EXPERIENCES — RESPONSIVE TUNING
   ========================================================= */
@media (max-width: 359px) {
  .experiences-container { grid-template-columns:1fr; grid-template-areas:"intro" "moods" "feature" "rail" "community"; gap:22px; }
  .experiences-intro { padding-top:0; }
  .experiences-title { width:100%; max-width:330px; margin-top:20px; font-size:45px; line-height:.92; letter-spacing:-.035em; }
  .experiences-title-accent { width:226px; margin-top:14px; margin-bottom:21px; }
  .experiences-description { font-size:14px; }
  .experiences-how { margin-top:18px; font-size:13px; }
  .experiences-moods { overflow:hidden; }
  .experiences-moods__row { overflow-x:auto; padding:6px 20px 10px 0; scroll-snap-type:x proximity; scrollbar-width:none; scroll-padding-inline:8px 22px; }
  .experiences-moods__row::-webkit-scrollbar { display:none; }
  .experience-filter { min-height:40px; padding-inline:15px; scroll-snap-align:center; }
  .experience-feature { height:360px; }
  .experience-feature__content { left:17px; right:17px; bottom:88px; width:auto; }
  .experience-feature__content h3 { font-size:29px; }
  .experience-feature__content p { font-size:12px; }
  .experience-feature__meta { left:14px; right:14px; bottom:17px; grid-template-columns:repeat(3,1fr); }
  .experience-feature__meta > div { min-height:56px; padding:0 8px; gap:7px; }
  .experience-feature__meta .icon { width:19px; height:19px; }
  .experience-feature__meta strong, .experience-feature__meta small { font-size:12px; }
  .experience-feature__cta { min-height:42px; margin-top:13px; }
  .experience-rail { grid-auto-columns:calc((100% - 10px) / 2); grid-template-rows:188px; gap:10px; padding:4px 0 10px; scroll-snap-type:x mandatory; }
  .experience-card { min-width:0; scroll-snap-align:start; }
  .experience-rail-control { width:42px; height:42px; opacity:1; visibility:visible; }
  .experience-rail-control--prev { left:-10px; }
  .experience-rail-control--next { right:-10px; }
  .experiences-community { grid-template-columns:1fr; gap:12px; min-height:196px; padding:24px 20px; align-content:center; }
  .experiences-community__message { align-items:flex-start; gap:14px; max-width:88%; }
  .experiences-community__message strong { font-size:14px; }
  .experiences-community__message small { font-size:12px; line-height:1.5; }
  .experiences-community__link { justify-content:flex-start; min-height:48px; width:max-content; max-width:80%; border-left:0; border-top:1px solid rgba(219,233,232,.9); padding-top:12px; }
  .experiences-community__art { z-index:0; width:300px; height:145px; right:-45px; bottom:-31px; opacity:.24; }
}

@media (min-width: 360px) and (max-width: 575px) {
  .experiences-container { grid-template-columns:1fr; grid-template-areas:"intro" "moods" "feature" "rail" "community"; gap:23px; }
  .experiences-intro { padding-top:0; }
  .experiences-title { width:100%; max-width:360px; margin-top:20px; font-size:50px; line-height:.92; letter-spacing:-.035em; }
  .experiences-title-accent { width:242px; margin-top:14px; margin-bottom:22px; }
  .experiences-description { font-size:14px; }
  .experiences-how { margin-top:19px; font-size:13px; }
  .experiences-moods { overflow:hidden; }
  .experiences-moods__row { overflow-x:auto; padding:6px 22px 10px 0; scroll-snap-type:x proximity; scrollbar-width:none; scroll-padding-inline:8px 24px; }
  .experiences-moods__row::-webkit-scrollbar { display:none; }
  .experience-filter { min-height:42px; padding-inline:16px; scroll-snap-align:center; }
  .experience-feature { height:382px; }
  .experience-feature__content { left:18px; right:18px; bottom:92px; width:auto; }
  .experience-feature__content h3 { font-size:30px; }
  .experience-feature__content p { font-size:12px; }
  .experience-feature__meta { left:15px; right:15px; bottom:18px; grid-template-columns:repeat(3,1fr); }
  .experience-feature__meta > div { min-height:58px; padding:0 8px; gap:7px; }
  .experience-feature__meta .icon { width:20px; height:20px; }
  .experience-feature__meta strong, .experience-feature__meta small { font-size:12px; }
  .experience-feature__cta { min-height:43px; margin-top:14px; }
  .experience-rail { grid-auto-columns:calc((100% - 12px) / 2); grid-template-rows:198px; gap:12px; padding:4px 0 10px; scroll-snap-type:x mandatory; }
  .experience-card { min-width:0; scroll-snap-align:start; }
  .experience-rail-control { width:44px; height:44px; opacity:1; visibility:visible; }
  .experience-rail-control--prev { left:-11px; }
  .experience-rail-control--next { right:-11px; }
  .experiences-community { grid-template-columns:1fr; gap:12px; min-height:196px; padding:25px 21px; align-content:center; }
  .experiences-community__message { align-items:flex-start; gap:15px; max-width:88%; }
  .experiences-community__message strong { font-size:14px; }
  .experiences-community__message small { font-size:12px; line-height:1.5; }
  .experiences-community__link { justify-content:flex-start; min-height:48px; width:max-content; max-width:80%; border-left:0; border-top:1px solid rgba(219,233,232,.9); padding-top:12px; }
  .experiences-community__art { z-index:0; width:330px; height:150px; right:-46px; bottom:-32px; opacity:.25; }
}

@media (min-width: 576px) and (max-width: 767px) {
  .experiences-container { grid-template-columns:1fr; grid-template-areas:"intro" "moods" "feature" "rail" "community"; gap:25px; }
  .experiences-intro { display:grid; grid-template-columns:1fr 1fr; gap:0 24px; padding-top:0; }
  .experiences-kicker, .experiences-title, .experiences-title-accent { grid-column:1; }
  .experiences-description { grid-column:2; grid-row:1 / span 3; align-self:end; margin-bottom:12px; font-size:14px; }
  .experiences-how { grid-column:2; justify-self:start; margin-top:14px; }
  .experiences-title { font-size:52px; line-height:.92; letter-spacing:-.035em; }
  .experiences-moods { overflow:hidden; }
  .experiences-moods__row { overflow-x:auto; padding:6px 0 10px; scroll-snap-type:x proximity; scrollbar-width:none; scroll-padding-inline:12px; }
  .experiences-moods__row::-webkit-scrollbar { display:none; }
  .experience-filter { scroll-snap-align:center; }
  .experience-feature { height:405px; }
  .experience-feature__content { width:60%; }
  .experience-feature__meta { grid-template-columns:repeat(3,minmax(96px,1fr)); }
  .experience-feature__meta > div { padding-inline:11px; }
  .experience-rail { grid-auto-columns:calc((100% - 12px) / 2); grid-template-rows:206px; gap:12px; padding-inline:0; }
  .experience-rail-control { opacity:1; visibility:visible; }
  .experience-rail-control--prev { left:-14px; }
  .experience-rail-control--next { right:-14px; }
  .experiences-community { grid-template-columns:1.15fr .9fr; min-height:132px; padding:0 26px; }
  .experiences-community__link { border-left:1px solid #dbe9e8; }
  .experiences-community__art { width:350px; height:150px; right:-35px; bottom:-42px; opacity:.38; }
}

@media (min-width: 768px) and (max-width: 991px) {
  .experiences-container { grid-template-columns:1fr; grid-template-areas:"intro" "moods" "feature" "rail" "community"; gap:26px; }
  .experiences-intro { display:grid; grid-template-columns:1fr 1fr; gap:0 34px; padding-top:0; }
  .experiences-kicker, .experiences-title, .experiences-title-accent { grid-column:1; }
  .experiences-description { grid-column:2; grid-row:1 / span 3; align-self:end; margin-bottom:13px; }
  .experiences-how { grid-column:2; justify-self:start; margin-top:15px; }
  .experiences-title { font-size:50px; }
  .experiences-moods__row { flex-wrap:wrap; }
  .experience-feature { height:420px; }
  .experience-feature__content { width:56%; }
  .experience-feature__meta { grid-template-columns:repeat(3,minmax(105px,1fr)); }
  .experience-feature__meta > div { padding-inline:13px; }
  .experience-rail { grid-auto-columns:150px; grid-template-rows:205px; }
  .experiences-community { grid-template-columns:1.15fr .9fr; min-height:136px; padding:0 28px; }
  .experiences-community__art { width:370px; height:156px; right:-38px; bottom:-46px; opacity:.4; }
}

@media (min-width: 992px) and (max-width: 1199px) {
  .experiences-container { grid-template-columns:260px minmax(0,1fr); gap:19px 26px; }
  .experiences-title { font-size:50px; }
  .experiences-description { font-size:14px; }
  .experiences-moods__row { gap:8px; }
  .experience-filter { padding-inline:13px; min-height:41px; font-size:12px; }
  .experience-feature { height:410px; }
  .experience-feature__content { width:52%; }
  .experience-feature__meta { grid-template-columns:repeat(3,minmax(104px,1fr)); }
  .experience-feature__meta > div { padding-inline:12px; }
  .experience-rail { grid-auto-columns:132px; grid-template-rows:190px; }
  .experiences-community { grid-template-columns:1.16fr .95fr; padding-inline:28px; }
  .experiences-community__art { width:400px; height:165px; right:-20px; bottom:-48px; }
}

@media (min-width: 1200px) and (max-width: 1399px) {
  .experiences-container { grid-template-columns:285px minmax(0,1fr); gap:20px 30px; }
  .experiences-title { font-size:54px; }
  .experiences-moods__row { gap:9px; }
  .experience-filter { padding-inline:17px; }
  .experience-feature { height:425px; }
  .experience-rail { grid-template-columns:repeat(9,minmax(0,1fr)); grid-auto-flow:row; grid-auto-columns:auto; overflow:visible; grid-template-rows:184px; }
  .experiences-community__art { width:445px; height:176px; }
}

@media (min-width: 1400px) and (max-width: 1599px) {
  .experience-rail { grid-template-columns:repeat(9,minmax(0,1fr)); grid-auto-flow:row; grid-auto-columns:auto; overflow:visible; grid-template-rows:188px; }
  .experiences-community__art { width:480px; height:184px; }
}

@media (min-width: 1600px) {
  .experiences-container { grid-template-columns:320px minmax(0,1fr); gap:22px 38px; }
  .experiences-title { font-size:62px; }
  .experience-feature { height:450px; }
  .experience-rail { grid-template-columns:repeat(9,minmax(0,1fr)); grid-auto-flow:row; grid-auto-columns:auto; overflow:visible; grid-template-rows:194px; }
  .experiences-community { min-height:132px; }
  .experiences-community__art { width:505px; height:194px; }
}


/* =========================================================
   8. ACCOMMODATION / STAYS
   ========================================================= */
.stays-section {
  position: relative;
  overflow: hidden;
  padding: var(--ea-section-space-y) 0;
  background:
    radial-gradient(circle at 92% 12%, rgba(57, 199, 207, .08), transparent 25%),
    radial-gradient(circle at 9% 84%, rgba(255, 218, 139, .10), transparent 23%),
    #fbfaf7;
}

.stays-container {
  width: min(100% - (var(--ea-container-gutter) * 2), var(--ea-hero-container-max));
  margin-inline: auto;
  display: grid;
  grid-template-columns: 300px minmax(0, 1fr);
  grid-template-areas:
    "intro main"
    "policy policy";
  column-gap: 34px;
  row-gap: 28px;
  align-items: start;
}

.stays-intro { grid-area: intro; min-width: 0; }
.stays-kicker { display:flex; align-items:center; gap:14px; color:#079ba5; font-family:var(--ea-font-sans); font-size:14px; font-weight:700; line-height:1.2; letter-spacing:.075em; text-transform:uppercase; }
.stays-kicker svg { width:50px; height:18px; fill:none; stroke:#28c6cf; stroke-width:2; stroke-linecap:round; opacity:.78; }
.stays-title { margin:28px 0 0; color:#06333d; font-family:var(--ea-font-display); font-size:clamp(50px,4vw,62px); font-weight:600; line-height:.92; letter-spacing:-.025em; }
.stays-title span { color:#11adb6; }
.stays-title-accent { display:block; width:44px; height:3px; margin:16px 0 22px; border-radius:999px; background:#f4bf2a; transform:rotate(-3deg); }
.stays-description { margin:0; color:#526b71; font-size:17px; font-weight:500; line-height:1.6; }
.stays-assurance { display:flex; align-items:center; gap:12px; margin-top:25px; color:#123f49; }
.stays-assurance > .icon { width:30px; height:30px; color:#0a7180; }
.stays-assurance span { display:flex; flex-direction:column; gap:2px; }
.stays-assurance strong { font-size:13px; font-weight: 700; }
.stays-assurance small { color:#526b71; font-size:12px; font-weight:600; }

.stays-promo { position:relative; height:410px; margin-top:28px; overflow:hidden; border-radius:19px; color:#fff; background:#b8dfe3; box-shadow:0 15px 34px rgba(0,42,50,.12); isolation:isolate; }
.stays-promo picture, .stays-promo__shade { position:absolute; inset:0; }
.stays-promo img { display:block; width:100%; height:100%; object-fit:cover; object-position:56% 50%; transition:transform 650ms cubic-bezier(.2,.7,.2,1), filter 300ms ease; }
.stays-promo__shade { background:linear-gradient(180deg,rgba(0,29,37,.05),rgba(0,34,42,.72)),linear-gradient(90deg,rgba(0,37,45,.28),transparent 70%); }
.stays-promo__content { position:absolute; z-index:2; inset:auto 22px 24px; }
.stays-promo h3 { margin:0; font-family:var(--ea-font-display); font-weight:600; font-size:32px; line-height:1.02; letter-spacing:-.025em; }
.stays-promo p { margin:13px 0 0; font-size:13px; font-weight:600; line-height:1.55; }
.stays-promo a { display:inline-flex; align-items:center; gap:10px; min-height:43px; margin-top:18px; padding:0 18px; border-radius:999px; color:#078995; background:#fff; box-shadow:0 9px 20px rgba(0,28,34,.16); font-size:13px; font-weight: 700; text-decoration:none; transition:transform var(--ea-transition-fast), box-shadow var(--ea-transition-fast); }
.stays-promo a .icon { width:16px; height:16px; }
.stays-promo:hover img, .stays-promo:focus-within img { transform:scale(1.035); filter:saturate(1.04) contrast(1.02); }
.stays-promo a:hover, .stays-promo a:focus-visible { transform:translateY(-2px); box-shadow:0 13px 26px rgba(0,28,34,.22); }

.stays-main { grid-area:main; min-width:0; }
.stays-filters { display:flex; align-items:center; gap:12px; min-width:0; overflow-x:auto; padding:6px 2px 10px; scrollbar-width:none; scroll-behavior:smooth; }
.stays-filters::-webkit-scrollbar { display:none; }
.stay-filter { display:inline-flex; align-items:center; justify-content:center; gap:9px; flex:0 0 auto; min-height:44px; padding:0 20px; border:1px solid #dce5e5; border-radius:999px; color:#294c54; background:rgba(255,255,255,.93); box-shadow:0 4px 14px rgba(0,40,48,.055); font-size:13px; font-weight: 700; white-space:nowrap; cursor:pointer; transition:border-color var(--ea-transition-fast), color var(--ea-transition-fast), background var(--ea-transition-fast), box-shadow var(--ea-transition-fast); }
.stay-filter .icon { width:20px; height:20px; color:#079ba5; }
.stay-filter:hover, .stay-filter:focus-visible { border-color:rgba(6,161,171,.35); color:#087b85; background:#f6fbfb; box-shadow:0 8px 20px rgba(0,60,69,.09); }
.stay-filter.is-active { color:#fff; border-color:#078d97; background:linear-gradient(180deg,#18a9b2,#07858f); box-shadow:0 8px 20px rgba(5,123,132,.22); }
.stay-filter.is-active .icon { color:#fff; }

.stays-toolbar { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:67px 0 18px; }
.stays-toolbar p { margin:0; color:#294e57; font-size:15px; font-weight: 600; }
.stays-toolbar p strong { color:#079ba5; font-size:17px; }
.stays-view-switch { display:flex; gap:8px; }
.stays-view-switch button { display:inline-flex; align-items:center; justify-content:center; gap:9px; min-height:46px; padding:0 20px; border:1px solid #e0e6e6; border-radius:13px; color:#294b54; background:#fff; box-shadow:0 5px 16px rgba(0,35,43,.06); font-size:13px; font-weight: 700; cursor:pointer; transition:transform var(--ea-transition-fast), border-color var(--ea-transition-fast), color var(--ea-transition-fast), box-shadow var(--ea-transition-fast); }
.stays-view-switch button .icon { width:20px; height:20px; }
.stays-view-switch button:hover, .stays-view-switch button:focus-visible { transform:translateY(-2px); border-color:rgba(6,161,171,.36); }
.stays-view-switch button.is-active { color:#078d97; border-color:#16aeb8; box-shadow:0 0 0 1px rgba(22,174,184,.15),0 8px 19px rgba(0,70,79,.08); }

.stays-card-rail-wrap { position:relative; min-width:0; }
.stays-card-rail { display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - 36px) / 4); gap:12px; overflow-x:auto; padding:2px 2px 12px; scroll-snap-type:x mandatory; scrollbar-width:none; overscroll-behavior-inline:contain; scroll-behavior:smooth; }
.stays-card-rail::-webkit-scrollbar { display:none; }
.stay-card { min-width:0; overflow:hidden; border:1px solid rgba(8,93,103,.08); border-radius:17px; background:#fff; box-shadow:0 10px 28px rgba(0,41,49,.09); scroll-snap-align:start; transition:transform 260ms cubic-bezier(.2,.7,.2,1), box-shadow 260ms ease, border-color 260ms ease; }
.stay-card[hidden] { display:none; }
.stay-card__media { position:relative; height:225px; overflow:hidden; background:#dcecee; }
.stay-card__media picture { position:absolute; inset:0; }
.stay-card__media img { display:block; width:100%; height:100%; object-fit:cover; transition:transform 580ms cubic-bezier(.2,.7,.2,1), filter 300ms ease; }
.stay-card__favorite { position:absolute; z-index:3; top:12px; right:12px; display:grid; place-items:center; width:39px; height:39px; padding:0; border:0; border-radius:50%; color:#315d67; background:rgba(255,255,255,.96); box-shadow:0 6px 18px rgba(0,33,40,.14); cursor:pointer; transition:transform var(--ea-transition-fast), color var(--ea-transition-fast), background var(--ea-transition-fast); }
.stay-card__favorite .icon { width:20px; height:20px; fill:transparent; transition:fill var(--ea-transition-fast); }
.stay-card__favorite:hover, .stay-card__favorite:focus-visible { transform:scale(1.06); color:#ff5b45; }
.stay-card__favorite[aria-pressed="true"] { color:#fff; background:#ff5b45; }
.stay-card__favorite[aria-pressed="true"] .icon { fill:currentColor; }
.stay-card__body { min-height:258px; padding:17px 16px 15px; display:flex; flex-direction:column; }
.stay-card__type { color:#079ca6; font-size:12px; font-weight: 700; }
.stay-card h3 { margin:6px 0 0; color:#082f39; font-family:var(--ea-font-display); font-size:21px; font-weight:600; line-height:1.1; letter-spacing:-.025em; }
.stay-card__location, .stay-card__rating { display:flex; align-items:center; gap:6px; margin:9px 0 0; color:#345861; font-size:12px; font-weight: 600; }
.stay-card__location .icon { width:15px; height:15px; color:#3b6974; }
.stay-card__rating .icon { width:16px; height:16px; color:#ff8b18; fill:#ff8b18; stroke:#ff8b18; }
.stay-card__rating strong { color:#f47c00; font-size:13px; }
.stay-card__rating span { color:#4f6c72; }
.stay-card__amenities { display:flex; flex-wrap:wrap; gap:8px 14px; margin-top:14px; color:#365b64; }
.stay-card__amenities span { display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight: 600; }
.stay-card__amenities .icon { width:16px; height:16px; color:#2b6470; }
.stay-card__footer { display:flex; align-items:flex-end; justify-content:space-between; gap:10px; margin-top:auto; padding-top:18px; border-top:1px solid #edf1f1; }
.stay-card__footer p { margin:0; display:flex; flex-direction:column; color:#23464f; }
.stay-card__footer small { font-size:12px; font-weight: 600; }
.stay-card__footer strong { color:#082e38; font-size:18px; line-height:1.12; }
.stay-card__footer em { margin-left:3px; color:#60777c; font-size:12px; font-style:normal; font-family:var(--ea-font-sans); font-weight: 600; }
.stay-card__footer a { display:inline-flex; align-items:center; gap:7px; min-height:38px; padding:0 13px; border-radius:10px; color:#fff; background:linear-gradient(180deg,#12a5af,#087f89); box-shadow:0 7px 16px rgba(6,121,130,.2); font-size:12px; font-weight: 700; text-decoration:none; white-space:nowrap; transition:transform var(--ea-transition-fast), box-shadow var(--ea-transition-fast); }
.stay-card__footer a .icon { width:14px; height:14px; }
.stay-card:hover, .stay-card:focus-within { transform:translateY(-5px); border-color:rgba(7,151,161,.19); box-shadow:0 18px 40px rgba(0,41,49,.14); }
.stay-card:hover .stay-card__media img, .stay-card:focus-within .stay-card__media img { transform:scale(1.045); filter:saturate(1.035) contrast(1.02); }
.stay-card__footer a:hover, .stay-card__footer a:focus-visible { transform:translateY(-2px); box-shadow:0 10px 22px rgba(6,121,130,.26); }

.stays-rail-control { position:absolute; z-index:7; top:50%; display:none; place-items:center; width:46px; height:46px; padding:0; border:0; border-radius:50%; color:#087985; background:#fff; box-shadow:0 10px 28px rgba(0,34,42,.14); cursor:pointer; transform:translateY(-50%); }
.stays-rail-control .icon { width:18px; height:18px; }
.stays-rail-control--prev { left:-21px; }
.stays-rail-control--next { right:-21px; }
.stays-card-rail-wrap.has-overflow .stays-rail-control { display:grid; }
.stays-rail-control:disabled { opacity:.36; pointer-events:none; }

.stays-map-view { display:grid; grid-template-columns:minmax(0,1.12fr) minmax(270px,.88fr); gap:22px; min-height:480px; align-items:center; }
.stays-map-view[hidden] { display:none; }
.stays-map-panel { position:relative; height:480px; overflow:hidden; border:1px solid rgba(12,151,161,.12); border-radius:20px; background:radial-gradient(circle at 50% 45%, rgba(109,225,228,.18), transparent 52%),#f4fbfa; box-shadow:0 12px 32px rgba(0,49,57,.08); cursor:grab; touch-action:none; user-select:none; isolation:isolate; }
.stays-map-panel.is-dragging { cursor:grabbing; }
.stays-map-help { position:absolute; z-index:8; left:16px; bottom:14px; margin:0; padding:7px 10px; border:1px solid rgba(8,123,133,.1); border-radius:999px; color:#44666d; background:rgba(255,255,255,.88); box-shadow:0 5px 14px rgba(0,45,53,.08); backdrop-filter:blur(7px); font-size:12px; font-weight:700; pointer-events:none; }
.stays-map-controls { position:absolute; z-index:9; top:14px; right:14px; display:flex; align-items:center; gap:7px; }
.stays-map-controls button { display:grid; place-items:center; min-width:38px; height:38px; padding:0 10px; border:1px solid rgba(8,112,122,.12); border-radius:11px; color:#0b6e78; background:rgba(255,255,255,.95); box-shadow:0 7px 18px rgba(0,45,53,.1); font:700 19px/1 var(--ea-font-sans); cursor:pointer; transition:transform var(--ea-transition-fast), border-color var(--ea-transition-fast), box-shadow var(--ea-transition-fast), opacity var(--ea-transition-fast); }
.stays-map-controls button:hover, .stays-map-controls button:focus-visible { transform:translateY(-2px); border-color:rgba(5,151,161,.34); box-shadow:0 10px 24px rgba(0,45,53,.13); }
.stays-map-controls button:disabled { opacity:.38; transform:none; cursor:default; }
.stays-map-controls .stays-map-reset { min-width:58px; font-size:12px; }
.stays-map-stage { position:absolute; z-index:2; inset:20px; margin:auto; height:calc(100% - 40px); width:auto; aspect-ratio:2 / 3; transform:translate3d(var(--stay-map-x,0px),var(--stay-map-y,0px),0) scale(var(--stay-map-scale,1)); transform-origin:center; will-change:transform; transition:transform 240ms cubic-bezier(.2,.7,.2,1); }
.stays-map-panel.is-dragging .stays-map-stage, .stays-map-panel.is-pinching .stays-map-stage { transition:none; }
.stays-map-media { position:absolute; inset:0; display:block; pointer-events:none; }
.stays-map-media img { display:block; width:100%; height:100%; object-fit:contain; opacity:.94; pointer-events:none; }
.stay-map-pin { position:absolute; z-index:4; display:grid; place-items:center; padding:0; border:0; background:transparent; cursor:pointer; transform:translate(-50%,-50%) scale(var(--stay-map-pin-scale,1)); transform-origin:center; }
.stay-map-pin span { display:grid; place-items:center; min-width:52px; height:31px; padding:0 9px; border:2px solid #fff; border-radius:999px; color:#fff; background:#079ca6; box-shadow:0 7px 18px rgba(0,69,77,.2); font-size:12px; font-weight: 700; transition:transform var(--ea-transition-fast), background var(--ea-transition-fast), box-shadow var(--ea-transition-fast); }
.stay-map-pin::after { content:""; position:absolute; top:calc(100% - 3px); left:50%; width:7px; height:7px; border-radius:50%; background:#079ca6; border:2px solid #fff; box-shadow:0 3px 8px rgba(0,64,72,.18); transform:translateX(-50%); transition:background var(--ea-transition-fast), transform var(--ea-transition-fast); }
.stay-map-pin:hover span, .stay-map-pin:focus-visible span, .stay-map-pin.is-active span { transform:scale(1.08); background:#ff9d2e; box-shadow:0 8px 22px rgba(174,92,0,.2); }
.stay-map-pin:hover::after, .stay-map-pin:focus-visible::after, .stay-map-pin.is-active::after { background:#ff9d2e; transform:translateX(-50%) scale(1.08); }
.stay-map-pin--hygge { left:43%; top:14%; }
.stay-map-pin--gjelit { left:27%; top:24%; }
.stay-map-pin--kerculla { left:49%; top:73%; }
.stay-map-pin--ionian { left:25%; top:72%; }
.stays-map-selection { align-self:center; overflow:hidden; border:1px solid rgba(0,91,101,.1); border-radius:18px; background:#fff; box-shadow:0 14px 34px rgba(0,43,51,.1); }
.stays-map-selection > img { display:block; width:100%; height:220px; object-fit:cover; }
.stays-map-selection > div { padding:18px; }
.stays-map-selection > div > span { color:#079ca6; font-size:12px; font-weight: 700; }
.stays-map-selection h3 { margin:5px 0 0; font-family:var(--ea-font-display); font-weight:600; font-size:24px; line-height:1.08; color:#082f39; }
.stays-map-selection p { display:flex; align-items:center; gap:6px; margin:10px 0; color:#49676e; font-size:12px; font-weight: 600; }
.stays-map-selection p .icon { width:16px; height:16px; }
.stays-map-selection > div > strong { display:block; margin-top:12px; color:#082f39; font-size:15px; }
.stays-map-selection a { display:inline-flex; align-items:center; gap:8px; min-height:40px; margin-top:16px; padding:0 15px; border-radius:10px; color:#fff; background:#088b95; font-size:12px; font-weight: 700; text-decoration:none; }
.stays-map-selection a .icon { width:14px; height:14px; }

.stays-policy { grid-area:policy; position:relative; min-height:92px; display:grid; grid-template-columns:1.08fr .92fr 310px; align-items:center; overflow:hidden; border:1px solid rgba(8,127,138,.07); border-radius:18px; background:linear-gradient(90deg,#f4fcfb 0%,#f8fcfb 64%,#e8f7f7 100%); box-shadow:0 10px 28px rgba(0,43,51,.06); }
.stays-policy__message { position:relative; z-index:2; display:flex; align-items:center; gap:18px; padding:18px 28px; }
.stays-policy__icon { display:grid; place-items:center; width:46px; height:46px; color:#078c96; }
.stays-policy__icon .icon { width:38px; height:38px; }
.stays-policy__message > span:last-child { display:flex; flex-direction:column; gap:4px; }
.stays-policy__message strong { color:#143d47; font-size:16px; font-weight: 700; }
.stays-policy__message small { color:#4f6b72; font-size:12px; font-weight: 600; }
.stays-policy__message b { margin:0 9px; color:#83a3a8; }
.stays-policy__link { position:relative; z-index:3; justify-self:center; display:inline-flex; align-items:center; gap:15px; color:#294f58; font-size:13px; font-weight: 700; text-decoration:none; }
.stays-policy__link > span { display:grid; place-items:center; width:32px; height:32px; border-radius:50%; color:#078e98; background:#fff; box-shadow:0 5px 14px rgba(0,45,53,.1); }
.stays-policy__link .icon { width:14px; height:14px; }
.stays-policy__image { position:absolute; z-index:1; top:0; right:0; width:330px; height:100%; overflow:hidden; }
.stays-policy__image::before { content:""; position:absolute; z-index:2; inset:0; background:linear-gradient(90deg,#f8fcfb 0%,rgba(248,252,251,.74) 14%,transparent 52%); }
.stays-policy__image img { width:100%; height:100%; object-fit:cover; object-position:55% 60%; }

/* Mobile Small */
@media (max-width:359px){
  .stays-container { width:min(100% - 24px, var(--ea-hero-container-max)); grid-template-columns:1fr; grid-template-areas:"intro" "main" "policy"; gap:28px; }
  .stays-intro { text-align:left; }
  .stays-kicker { justify-content:flex-start; }
  .stays-title { width:100%; max-width:330px; font-size:46px; line-height:.92; letter-spacing:-.035em; }
  .stays-title-accent { width:52px; margin:16px 0 22px; }
  .stays-description br { display:none; }
  .stays-assurance { justify-content:flex-start; text-align:left; }
  .stays-promo { height:330px; text-align:left; }
  .stays-filters { margin-inline:-2px; }
  .stay-filter { min-height:42px; padding:0 15px; }
  .stays-toolbar { align-items:stretch; flex-direction:column; margin:28px 0 15px; }
  .stays-view-switch { display:grid; grid-template-columns:1fr 1fr; }
  .stays-view-switch button { padding-inline:10px; }
  .stays-card-rail-wrap { overflow:hidden; }
  .stays-card-rail { grid-auto-columns:100%; gap:12px; padding:2px 20px 12px; scroll-padding-inline:20px; }
  .stay-card { scroll-snap-align:center; }
  .stays-rail-control { width:42px; height:42px; top:42%; }
  .stays-rail-control--prev { left:4px; }
  .stays-rail-control--next { right:4px; }
  .stay-card__media { height:220px; }
  .stays-map-view { grid-template-columns:1fr; gap:16px; min-height:0; }
  .stays-map-panel { height:360px; min-height:0; }
  .stays-map-stage { inset:18px; height:calc(100% - 36px); }
  .stays-map-help { left:12px; bottom:11px; padding:6px 8px; }
  .stays-map-controls { top:10px; right:10px; gap:5px; }
  .stays-map-controls button { min-width:35px; height:35px; border-radius:10px; }
  .stays-map-controls .stays-map-reset { min-width:52px; }
  .stays-map-selection { max-width:100%; display:grid; grid-template-columns:112px minmax(0,1fr); }
  .stays-map-selection > img { height:100%; min-height:214px; }
  .stays-map-selection > div { padding:14px 12px; }
  .stays-map-selection h3 { font-size:20px; }
  .stays-map-selection > div > strong { font-size:14px; }
  .stays-map-selection a { min-height:36px; margin-top:12px; padding-inline:12px; }
  .stays-policy { min-height:166px; grid-template-columns:1fr; align-items:start; padding:18px 16px; }
  .stays-policy__message { padding:0; align-items:flex-start; }
  .stays-policy__link { justify-self:start; margin-top:14px; }
  .stays-policy__image { inset:0 0 0 auto; width:78%; height:100%; opacity:.27; }
  .stays-policy__image::before { background:linear-gradient(90deg,#f4fcfb 0%,rgba(244,252,251,.92) 30%,rgba(244,252,251,.36) 72%,rgba(244,252,251,.12) 100%); }
}

/* Mobile */
@media (min-width:360px) and (max-width:575px){
  .stays-container { width:min(100% - 28px, var(--ea-hero-container-max)); grid-template-columns:1fr; grid-template-areas:"intro" "main" "policy"; gap:30px; }
  .stays-intro { text-align:left; }
  .stays-kicker { justify-content:flex-start; }
  .stays-title { width:100%; max-width:360px; font-size:51px; line-height:.92; letter-spacing:-.035em; }
  .stays-title-accent { width:52px; margin:16px 0 22px; }
  .stays-description br { display:none; }
  .stays-assurance { justify-content:flex-start; text-align:left; }
  .stays-promo { height:360px; text-align:left; }
  .stays-toolbar { align-items:stretch; flex-direction:column; margin:30px 0 16px; }
  .stays-view-switch { display:grid; grid-template-columns:1fr 1fr; }
  .stays-card-rail-wrap { overflow:hidden; }
  .stays-card-rail { grid-auto-columns:100%; gap:12px; padding:2px 22px 12px; scroll-padding-inline:22px; }
  .stay-card { scroll-snap-align:center; }
  .stays-rail-control { top:42%; }
  .stays-rail-control--prev { left:5px; }
  .stays-rail-control--next { right:5px; }
  .stay-card__media { height:230px; }
  .stays-map-view { grid-template-columns:1fr; gap:17px; min-height:0; }
  .stays-map-panel { height:382px; min-height:0; }
  .stays-map-stage { inset:18px; height:calc(100% - 36px); }
  .stays-map-help { left:12px; bottom:11px; }
  .stays-map-controls { top:10px; right:10px; }
  .stays-map-selection { display:grid; grid-template-columns:124px minmax(0,1fr); }
  .stays-map-selection > img { height:100%; min-height:218px; }
  .stays-map-selection > div { padding:14px; }
  .stays-map-selection h3 { font-size:20px; }
  .stays-map-selection > div > strong { font-size:14px; }
  .stays-map-selection a { min-height:36px; margin-top:12px; padding-inline:12px; }
  .stays-policy { min-height:168px; grid-template-columns:1fr; align-items:start; padding:19px; }
  .stays-policy__message { padding:0; }
  .stays-policy__link { justify-self:start; margin-top:14px; }
  .stays-policy__image { inset:0 0 0 auto; width:80%; height:100%; opacity:.26; }
  .stays-policy__image::before { background:linear-gradient(90deg,#f4fcfb 0%,rgba(244,252,251,.92) 32%,rgba(244,252,251,.34) 72%,rgba(244,252,251,.1) 100%); }
}

/* Large Mobile */
@media (min-width:576px) and (max-width:767px){
  .stays-container { width:min(100% - 40px, var(--ea-hero-container-max)); grid-template-columns:1fr; grid-template-areas:"intro" "main" "policy"; gap:32px; }
  .stays-title { font-size:52px; line-height:.92; letter-spacing:-.035em; }
  .stays-intro { display:grid; grid-template-columns:1fr 260px; gap:24px; align-items:end; }
  .stays-kicker, .stays-title, .stays-title-accent, .stays-description, .stays-assurance { grid-column:1; }
  .stays-promo { grid-column:2; grid-row:1 / span 5; margin-top:0; height:360px; }
  .stays-toolbar { margin-top:36px; }
  .stays-card-rail { grid-auto-columns:calc((100% - 14px)/2); gap:14px; }
  .stays-map-view { grid-template-columns:1fr; gap:18px; }
  .stays-map-panel { height:405px; min-height:0; }
  .stays-map-selection { display:grid; grid-template-columns:210px 1fr; }
  .stays-map-selection > img { height:100%; }
  .stays-policy { min-height:126px; grid-template-columns:1.12fr .88fr; }
  .stays-policy__image { inset:0 0 0 auto; width:62%; height:100%; opacity:.28; }
}

/* Tablet */
@media (min-width:768px) and (max-width:991px){
  .stays-container { width:min(100% - 48px, var(--ea-hero-container-max)); grid-template-columns:230px minmax(0,1fr); column-gap:24px; }
  .stays-title { font-size:46px; }
  .stays-description { font-size:15px; }
  .stays-promo { height:375px; }
  .stays-toolbar { margin-top:42px; }
  .stays-card-rail { grid-auto-columns:calc((100% - 14px)/2); gap:14px; }
  .stays-map-view { grid-template-columns:1fr; gap:18px; min-height:0; }
  .stays-map-panel { height:395px; min-height:0; }
  .stays-map-selection { display:grid; grid-template-columns:210px 1fr; }
  .stays-map-selection > img { height:100%; }
  .stays-policy { grid-template-columns:1.15fr .85fr; min-height:116px; }
  .stays-policy__image { opacity:.45; }
}

/* Small Desktop */
@media (min-width:992px) and (max-width:1199px){
  .stays-container { width:min(100% - 52px, var(--ea-hero-container-max)); grid-template-columns:250px minmax(0,1fr); column-gap:26px; }
  .stays-card-rail { grid-auto-columns:calc((100% - 24px)/3); }
  .stays-toolbar { margin-top:48px; }
  .stay-card__media { height:214px; }
  .stays-map-view { grid-template-columns:1.08fr .92fr; min-height:440px; }
  .stays-map-panel { height:440px; }
  .stays-policy { grid-template-columns:1.05fr .9fr 240px; }
  .stays-policy__image { width:260px; }
}

/* Desktop */
@media (min-width:1200px) and (max-width:1399px){
  .stays-container { width:min(100% - 56px, 1280px); grid-template-columns:270px minmax(0,1fr); column-gap:30px; }
  .stay-filter { padding-inline:16px; }
  .stays-toolbar { margin-top:54px; }
  .stay-card__media { height:215px; }
  .stay-card h3 { font-size:19px; }
  .stay-card__footer a { padding-inline:10px; }
}

/* Large Desktop */
@media (min-width:1400px) and (max-width:1599px){
  .stays-container { width:min(100% - 64px, 1375px); }
}

/* Extra Large */
@media (min-width:1600px){
  .stays-container { width:min(100% - 80px, 1450px); grid-template-columns:315px minmax(0,1fr); column-gap:38px; }
  .stays-promo { height:430px; }
  .stays-toolbar { margin-top:72px; }
  .stay-card__media { height:238px; }
  .stay-card__body { min-height:270px; }
}

@media (prefers-reduced-motion: reduce){
  .stays-filters, .stays-card-rail { scroll-behavior:auto; }
  .stay-filter, .stay-card, .stay-card__media img, .stays-promo img, .stays-promo a, .stays-map-stage, .stays-map-controls button { transition:none; }
}

/* =========================================================
   16. TOURISM BUSINESSES + PARTNERS
   ========================================================= */
.business-section {
  position: relative;
  isolation: isolate;
  min-height: 638px;
  overflow: hidden;
  color: #fff;
  background: #00374b;
}

.business-section__background,
.business-section__veil {
  position: absolute;
  inset: 0;
}

.business-section__background {
  z-index: -3;
  display: block;
}

.business-section__background img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

.business-section__veil {
  z-index: -2;
  background:
    linear-gradient(90deg, rgba(0, 42, 58, .98) 0%, rgba(0, 48, 65, .92) 33%, rgba(0, 55, 70, .69) 58%, rgba(0, 41, 55, .22) 100%),
    linear-gradient(180deg, rgba(0, 22, 34, .03), rgba(0, 22, 34, .34));
}

.business-container {
  width: min(100% - (var(--ea-container-gutter) * 2), var(--ea-container-max));
  min-height: 638px;
  margin-inline: auto;
  display: grid;
  grid-template-columns: minmax(470px, .88fr) minmax(620px, 1.12fr);
  align-items: center;
  gap: clamp(32px, 4vw, 74px);
  padding-block: 42px 34px;
}

.business-copy {
  max-width: 560px;
  align-self: center;
}

.business-kicker {
  margin: 0 0 13px;
  font-family: var(--ea-font-sans);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: .075em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .92);
}

.business-title {
  margin: 0;
  max-width: 560px;
  font-family: var(--ea-font-display);
  font-size: clamp(46px, 3.3vw, 58px);
  line-height: 1.05;
  letter-spacing: -.025em;
  font-weight:600;
  color: #fff;
}

.business-title span {
  color: #1fc2cb;
  font-style: normal;
  white-space: nowrap;
}

.business-accent {
  display: block;
  width: 58px;
  height: 3px;
  margin: 22px 0 23px;
  border-radius: var(--ea-radius-pill);
  background: #f0b800;
  transform: rotate(-2deg);
}

.business-lead,
.business-description {
  max-width: 520px;
}

.business-lead {
  margin: 0 0 8px;
  font-size: 20px;
  line-height: 1.35;
}

.business-lead strong {
  font-weight: 700;
}

.business-description {
  margin: 0;
  font-size: 16px;
  line-height: 1.55;
  color: rgba(255, 255, 255, .88);
}

.business-benefits {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  margin-top: 34px;
}

.business-benefit {
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.business-benefit > span {
  display: grid;
  width: 54px;
  height: 54px;
  place-items: center;
  margin-bottom: 9px;
  color: #2dd5dc;
  border: 1.5px dashed rgba(45, 213, 220, .88);
  border-radius: 50%;
  background: rgba(0, 71, 89, .18);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .025), 0 8px 20px rgba(0, 19, 30, .08);
  transition: transform var(--ea-transition-base), background var(--ea-transition-base), color var(--ea-transition-base), box-shadow var(--ea-transition-base);
}

.business-benefit > span .icon {
  width: 29px;
  height: 29px;
  stroke-width: 1.65;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.business-benefit p {
  margin: 0;
  font-size: 15px;
  line-height: 1.35;
  font-weight: 600;
  color: #f6fbfc;
}

.business-benefit:hover > span {
  transform: translateY(-3px) scale(1.02);
  color: #002b38;
  background: #35d8de;
  box-shadow: 0 12px 24px rgba(0, 20, 30, .18);
}

.business-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  margin-top: 31px;
}

.business-action {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 13px;
  padding: 0 22px;
  border-radius: 14px;
  font-size: 16px;
  font-weight: 700;
  transition: transform var(--ea-transition-base), box-shadow var(--ea-transition-base), background var(--ea-transition-base), border-color var(--ea-transition-base);
}

.business-action .icon {
  width: 21px;
  height: 21px;
  transition: transform var(--ea-transition-base);
}

.business-action--primary {
  color: #fff;
  background: linear-gradient(135deg, #079caf, #08b7c6);
  box-shadow: 0 10px 24px rgba(0, 0, 0, .14);
}

.business-action--secondary {
  color: #fff;
  border: 1.5px solid rgba(255, 255, 255, .58);
  background: rgba(0, 27, 40, .16);
  backdrop-filter: blur(4px);
}

.business-action:hover,
.business-action:focus-visible {
  transform: translateY(-2px);
}

.business-action--primary:hover,
.business-action--primary:focus-visible {
  box-shadow: 0 14px 28px rgba(0, 0, 0, .2);
}

.business-action--secondary:hover,
.business-action--secondary:focus-visible {
  border-color: rgba(255, 255, 255, .9);
  background: rgba(255, 255, 255, .08);
}

.business-action:hover .icon,
.business-action:focus-visible .icon {
  transform: translateX(3px);
}

.business-trust {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 31px 0 0;
  font-size: 14px;
  font-weight: 600;
  color: rgba(255, 255, 255, .86);
}

.business-trust .icon {
  width: 22px;
  height: 22px;
  stroke-width: 1.7;
}

.business-network {
  position: relative;
  width: min(100%, 680px);
  height: 510px;
  justify-self: end;
}

.business-route {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
  pointer-events: none;
}

.business-route path {
  fill: none;
  stroke: rgba(255, 255, 255, .9);
  stroke-width: 3;
  stroke-linecap: round;
  stroke-dasharray: 9 9;
  filter: drop-shadow(0 2px 5px rgba(0, 24, 34, .25));
}

.business-route circle {
  fill: #fff;
  filter: drop-shadow(0 2px 4px rgba(0, 24, 34, .25));
}

.business-route__mobile {
  display: none;
}

.network-card,
.network-brand,
.network-message {
  position: absolute;
  z-index: 2;
}

.network-card {
  color: #062b36;
  background: rgba(255, 255, 255, .97);
  border: 1px solid rgba(255, 255, 255, .7);
  border-radius: 22px;
  box-shadow: 0 20px 38px rgba(0, 22, 35, .2);
  backdrop-filter: blur(10px);
  transition: rotate .36s ease, scale .36s ease, box-shadow .36s ease;
  transform-origin: center;
}

.network-card:hover,
.network-card:focus-within {
  animation-play-state: paused;
  rotate: 0deg;
  scale: 1.018;
  box-shadow: 0 27px 50px rgba(0, 22, 35, .27);
}

.network-card--traveler {
  --network-tilt: -1.35deg;
  top: 18px;
  left: 144px;
  width: 260px;
  min-height: 130px;
  display: grid;
  grid-template-columns: 74px 1fr;
  gap: 13px;
  align-items: center;
  padding: 17px;
  rotate: var(--network-tilt);
  animation: business-float-a 6.8s ease-in-out infinite;
}

.network-card__avatar {
  width: 74px;
  height: 86px;
  object-fit: cover;
  object-position: 43% 55%;
  border-radius: 40px;
}

.network-card__avatar--property {
  width: 82px;
  height: 82px;
  border-radius: 50%;
  object-position: 45% 52%;
}

.network-card__copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.network-card__copy strong,
.network-card--growth > strong {
  font-size: 15px;
  line-height: 1.2;
}

.network-card__copy > span {
  margin-top: 5px;
  font-size: 13px;
  line-height: 1.35;
  color: #344f56;
}

.network-avatars {
  display: flex;
  align-items: center;
  margin-top: 9px;
}

.network-avatars img,
.network-avatars b {
  width: 25px;
  height: 25px;
  border: 2px solid #fff;
  border-radius: 50%;
  margin-left: -6px;
}

.network-avatars img:first-child {
  margin-left: 0;
}

.network-avatars img {
  object-fit: cover;
}

.network-avatars b {
  width: auto;
  min-width: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding-inline: 7px;
  color: #fff;
  background: #069da9;
  font-size: 12px;
  letter-spacing: -.02em;
}

.network-brand {
  top: 178px;
  left: 204px;
  width: 148px;
  height: 148px;
  display: block;
  border-radius: 28px;
  filter: drop-shadow(0 18px 34px rgba(0, 18, 29, .24));
  rotate: .8deg;
  animation: business-float-b 7.6s ease-in-out -2.1s infinite;
  transition: rotate .36s ease, scale .36s ease, filter .36s ease;
}

.network-brand:hover {
  animation-play-state: paused;
  rotate: 0deg;
  scale: 1.016;
  filter: drop-shadow(0 22px 40px rgba(0, 18, 29, .3));
}

.network-brand img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.network-message {
  top: 211px;
  left: 388px;
  margin: 0;
  font-size: 16px;
  line-height: 1.45;
  font-weight: 600;
  color: #f4fbfc;
  text-shadow: 0 2px 10px rgba(0, 25, 38, .3);
}

.network-card--business {
  --network-tilt: 1.15deg;
  left: 130px;
  bottom: 9px;
  width: 235px;
  min-height: 148px;
  display: grid;
  grid-template-columns: 82px 1fr;
  gap: 13px;
  align-items: center;
  padding: 15px;
  rotate: var(--network-tilt);
  animation: business-float-b 7.1s ease-in-out -1.6s infinite;
}

.network-card--business small {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 8px;
  padding: 5px 9px;
  color: #fff;
  background: #09a8b6;
  border-radius: var(--ea-radius-pill);
  font-size: 12px;
  font-weight: 700;
}

.network-card--business small .icon {
  width: 14px;
  height: 14px;
}

.network-card--growth {
  --network-tilt: -1.05deg;
  right: 17px;
  bottom: 28px;
  width: 176px;
  min-height: 116px;
  padding: 17px 18px;
  rotate: var(--network-tilt);
  animation: business-float-c 6.3s ease-in-out -3.3s infinite;
}

.network-card--growth b {
  display: block;
  margin-top: 9px;
  font-size: 28px;
  line-height: 1;
}

.network-card--growth span {
  display: block;
  margin-top: 4px;
  font-size: 12px;
  color: #53676d;
}

.network-growth-chart {
  position: absolute;
  right: 14px;
  bottom: 18px;
  width: 50px;
  height: 28px;
  fill: none;
  stroke: #12adba;
  stroke-width: 2.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  filter: drop-shadow(0 2px 4px rgba(18, 173, 186, .12));
}

@keyframes business-float-a {
  0%, 100% { translate: 0 0; }
  50% { translate: 0 -7px; }
}

@keyframes business-float-b {
  0%, 100% { translate: 0 0; }
  50% { translate: 0 6px; }
}

@keyframes business-float-c {
  0%, 100% { translate: 0 0; }
  45% { translate: 0 -5px; }
  70% { translate: 0 2px; }
}

.partners-section {
  position: relative;
  background: #fff;
  border-top: 1px solid rgba(0, 40, 52, .05);
  border-bottom: 1px solid rgba(0, 40, 52, .06);
}

.partners-container {
  width: min(100% - (var(--ea-container-gutter) * 2), var(--ea-container-max));
  min-height: 96px;
  margin-inline: auto;
  display: grid;
  grid-template-columns: auto 1px 42px minmax(0, 1fr) 42px;
  align-items: center;
  gap: 18px;
}

.partners-container h2 {
  margin: 0;
  font-family: var(--ea-font-sans);
  font-size: 16px;
  font-weight: 600;
  letter-spacing: .075em;
  text-transform: uppercase;
  white-space: nowrap;
}

.partners-divider {
  width: 1px;
  height: 45px;
  background: #dce3e5;
}

.partners-viewport {
  min-width: 0;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}

.partners-viewport::-webkit-scrollbar {
  display: none;
}

.partners-track {
  display: flex;
  align-items: center;
  justify-content: space-evenly;
  gap: clamp(34px, 5vw, 84px);
  min-width: max-content;
  padding: 0 15px;
  scroll-behavior: smooth;
  transform: translateX(0);
}

.partner-logo {
  flex: 0 0 auto;
  min-width: 116px;
  height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  opacity: .7;
  filter: grayscale(1) saturate(0) contrast(.9);
  transition: opacity var(--ea-transition-base), filter var(--ea-transition-base), transform var(--ea-transition-base);
}

.partner-logo:hover,
.partner-logo:focus-visible {
  opacity: 1;
  filter: grayscale(.15) saturate(.6) contrast(1);
  transform: translateY(-2px);
}

.partner-logo img {
  display: block;
  width: auto;
  max-width: 165px;
  max-height: 34px;
  object-fit: contain;
}

.partner-logo--abi img {
  max-width: 178px;
  max-height: 30px;
}

.partners-control {
  width: 38px;
  height: 44px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 10px;
  color: #17343c;
  background: transparent;
  cursor: pointer;
  transition: color var(--ea-transition-fast), transform var(--ea-transition-fast), opacity var(--ea-transition-fast);
}

.partners-control .icon {
  width: 19px;
  height: 19px;
  stroke-width: 2.1;
}

.partners-control--prev:hover:not(:disabled),
.partners-control--prev:focus-visible:not(:disabled) {
  color: #008f9c;
  transform: translateX(-2px);
}

.partners-control--next:hover:not(:disabled),
.partners-control--next:focus-visible:not(:disabled) {
  color: #008f9c;
  transform: translateX(2px);
}

.partners-control:disabled,
.partners-section:not(.is-overflowing) .partners-control {
  opacity: 0;
  pointer-events: none;
}

.partners-section.is-looping .partners-control {
  opacity: 1;
  pointer-events: auto;
}

.partner-logo[data-partner-clone] {
  pointer-events: none;
}

/* Mobile Small */
@media (max-width:359px){
  .business-section { min-height:0; }
  .business-container { width:min(100% - 28px, var(--ea-container-max)); min-height:0; grid-template-columns:1fr; gap:24px; padding-block:44px 28px; }
  .business-copy { max-width:none; }
  .business-kicker { font-size:13px; margin-bottom:9px; }
  .business-title { font-size:37px; }
  .business-title span { white-space:normal; }
  .business-accent { margin:17px 0 18px; }
  .business-lead { font-size:17px; }
  .business-description { font-size:14px; }
  .business-benefits { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 18px; margin-top:25px; }
  .business-benefit { align-items:center; text-align:center; padding-inline:4px; }
  .business-benefit > span { width:52px; height:52px; margin-bottom:10px; }
  .business-benefit > span .icon { width:25px; height:25px; }
  .business-benefit p { font-size:13px; }
  .business-actions { gap:11px; margin-top:25px; }
  .business-action { width:100%; min-height:46px; padding-inline:17px; font-size:14px; }
  .business-trust { margin-top:23px; font-size:12px; }
  .business-network { width:100%; height:690px; justify-self:center; }
  .network-card, .network-brand { animation:none; rotate:0deg; translate:none; scale:1; }
  .business-route__desktop { display:none; }
  .business-route__mobile { display:block; }
  .network-card--traveler { top:8px; left:50%; width:238px; grid-template-columns:62px 1fr; min-height:116px; padding:14px; transform:translateX(-50%); }
  .network-card__avatar { width:62px; height:73px; }
  .network-card__copy strong, .network-card--growth > strong { font-size:13px; }
  .network-card__copy > span { font-size:12px; }
  .network-brand { top:160px; left:50%; width:118px; height:118px; transform:translateX(-50%); }
  .network-message { top:300px; left:0; width:100%; text-align:center; font-size:14px; }
  .network-card--business { top:386px; left:50%; bottom:auto; width:244px; min-height:132px; grid-template-columns:68px 1fr; transform:translateX(-50%); }
  .network-card__avatar--property { width:68px; height:68px; }
  .network-card--growth { right:auto; left:50%; bottom:3px; width:166px; min-height:106px; transform:translateX(-50%); }
  .partners-container { width:min(100% - 24px, var(--ea-container-max)); min-height:88px; grid-template-columns:1fr; gap:7px; padding-block:13px; }
  .partners-container h2 { text-align:center; font-size:15px; font-weight: 600; letter-spacing:.08em; }
  .partners-divider { display:none; }
  .partners-control { position:absolute; top:46px; z-index:2; background:#fff; box-shadow:var(--ea-shadow-control); }
  .partners-control--prev { left:7px; }
  .partners-control--next { right:7px; }
  .partners-viewport { width:100%; }
  .partners-track { gap:34px; justify-content:flex-start; padding-inline:44px; }
  .partner-logo { min-width:128px; }
  .partner-logo img { max-width:138px; max-height:28px; }
  .partner-logo--abi img { max-width:145px; max-height:26px; }
}

/* Mobile */
@media (min-width:360px) and (max-width:575px){
  .business-section { min-height:0; }
  .business-container { width:min(100% - 32px, var(--ea-container-max)); min-height:0; grid-template-columns:1fr; gap:26px; padding-block:48px 30px; }
  .business-copy { max-width:none; }
  .business-kicker { font-size:13px; margin-bottom:9px; }
  .business-title { font-size:40px; }
  .business-title span { white-space:normal; }
  .business-accent { margin:18px 0 19px; }
  .business-lead { font-size:18px; }
  .business-description { font-size:14px; }
  .business-benefits { grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px 20px; margin-top:27px; }
  .business-benefit { align-items:center; text-align:center; padding-inline:6px; }
  .business-benefit > span { width:54px; height:54px; margin-bottom:10px; }
  .business-benefit > span .icon { width:27px; height:27px; }
  .business-benefit p { font-size:13px; }
  .business-actions { gap:12px; margin-top:27px; }
  .business-action { width:100%; min-height:47px; font-size:14px; }
  .business-trust { margin-top:24px; font-size:12px; }
  .business-network { width:100%; max-width:420px; height:700px; justify-self:center; }
  .network-card, .network-brand { animation:none; rotate:0deg; translate:none; scale:1; }
  .business-route__desktop { display:none; }
  .business-route__mobile { display:block; }
  .network-card--traveler { top:8px; left:50%; width:254px; min-height:120px; grid-template-columns:66px 1fr; padding:14px; transform:translateX(-50%); }
  .network-card__avatar { width:66px; height:77px; }
  .network-brand { top:166px; left:50%; width:124px; height:124px; transform:translateX(-50%); }
  .network-message { top:310px; left:0; width:100%; text-align:center; font-size:14px; }
  .network-card--business { top:397px; left:50%; bottom:auto; width:260px; min-height:136px; grid-template-columns:72px 1fr; transform:translateX(-50%); }
  .network-card__avatar--property { width:72px; height:72px; }
  .network-card--growth { right:auto; left:50%; bottom:4px; width:174px; min-height:108px; transform:translateX(-50%); }
  .partners-container { position:relative; width:min(100% - 30px, var(--ea-container-max)); min-height:112px; grid-template-columns:1fr; gap:8px; padding-block:13px; }
  .partners-container h2 { text-align:center; font-size:15px; font-weight: 600; letter-spacing:.08em; }
  .partners-divider { display:none; }
  .partners-viewport { width:100%; }
  .partners-track { justify-content:flex-start; gap:32px; padding-inline:42px; }
  .partner-logo { min-width:120px; }
  .partner-logo img { max-width:130px; max-height:27px; }
  .partner-logo--abi img { max-width:138px; max-height:25px; }
  .partners-control { position:absolute; top:57px; z-index:2; width:32px; height:32px; background:#fff; box-shadow:var(--ea-shadow-control); }
  .partners-control--prev { left:3px; }
  .partners-control--next { right:3px; }
}

/* Large Mobile */
@media (min-width:576px) and (max-width:767px){
  .business-section { min-height:0; }
  .business-container { width:min(100% - 40px, var(--ea-container-max)); min-height:0; grid-template-columns:1fr; gap:30px; padding-block:54px 34px; }
  .business-copy { max-width:650px; }
  .business-title { font-size:48px; }
  .business-benefits { max-width:540px; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 28px; }
  .business-benefit { align-items:center; text-align:center; }
  .business-benefit > span { margin-bottom:10px; }
  .business-network { width:min(100%, 620px); height:510px; justify-self:center; }
  .network-card, .network-brand { animation:none; rotate:0deg; translate:none; scale:1; }
  .network-card--traveler { left:82px; }
  .network-brand { left:186px; }
  .network-message { left:365px; }
  .network-card--business { left:82px; }
  .network-card--growth { right:14px; }
  .partners-container { width:min(100% - 40px, var(--ea-container-max)); grid-template-columns:auto 1px 38px minmax(0,1fr) 38px; gap:12px; }
  .partners-track { justify-content:flex-start; gap:44px; }
  .partner-logo { min-width:140px; }
}

/* Tablet */
@media (min-width:768px) and (max-width:991px){
  .business-section { min-height:0; }
  .business-container { width:min(100% - 48px, var(--ea-container-max)); min-height:0; grid-template-columns:1fr; gap:24px; padding-block:58px 38px; }
  .business-copy { max-width:720px; }
  .business-title { font-size:52px; }
  .business-description { max-width:590px; }
  .business-benefits { max-width:610px; }
  .business-network { width:min(100%, 680px); height:510px; justify-self:center; }
  .network-card, .network-brand { animation:none; rotate:0deg; translate:none; scale:1; }
  .partners-container { width:min(100% - 48px, var(--ea-container-max)); }
  .partners-track { justify-content:flex-start; gap:30px; }
  .partner-logo { min-width:112px; }
  .partner-logo img { max-width:124px; max-height:28px; }
  .partner-logo--abi img { max-width:132px; max-height:25px; }
}

/* Small Desktop */
@media (min-width:992px) and (max-width:1199px){
  .business-container { width:min(100% - 52px, var(--ea-container-max)); grid-template-columns:minmax(405px,.9fr) minmax(520px,1.1fr); gap:20px; }
  .business-title { font-size:47px; }
  .business-lead { font-size:18px; }
  .business-description { font-size:15px; }
  .business-benefits { gap:10px; }
  .business-benefit > span { width:50px; height:50px; }
  .business-benefit p { font-size:13px; }
  .business-network { transform:scale(.86); transform-origin:center right; }
  .partners-container { width:min(100% - 52px, var(--ea-container-max)); gap:14px; }
  .partners-track { gap:46px; }
  .partner-logo img { max-width:145px; max-height:31px; }
}

/* Desktop */
@media (min-width:1200px) and (max-width:1399px){
  .business-container { width:min(100% - 56px, 1280px); grid-template-columns:minmax(435px,.9fr) minmax(560px,1.1fr); gap:28px; }
  .business-title { font-size:51px; }
  .business-network { transform:scale(.92); transform-origin:center right; }
  .partners-container { width:min(100% - 56px, 1280px); }
  .partners-track { gap:52px; }
}

/* Large Desktop */
@media (min-width:1400px) and (max-width:1599px){
  .business-container, .partners-container { width:min(100% - 64px, 1375px); }
}

/* Extra Large */
@media (min-width:1600px){
  .business-section, .business-container { min-height:665px; }
  .business-container, .partners-container { width:min(100% - 80px, 1450px); }
  .business-container { grid-template-columns:560px minmax(0, 1fr); gap:76px; }
  .business-title { font-size:59px; }
  .business-network { width:700px; height:530px; }
  .partners-container { min-height:100px; }
  .partner-logo img { max-width:170px; max-height:35px; }
  .partner-logo--abi img { max-width:185px; max-height:31px; }
}

@media (prefers-reduced-motion: reduce){
  .business-benefit > span, .business-action, .business-action .icon, .network-card, .network-brand, .partner-logo, .partners-track { transition:none; scroll-behavior:auto; }
  .network-card, .network-brand { animation:none; translate:none; }
}


/* =========================================================
   15. SITE FOOTER
   ========================================================= */
.site-footer {
  position: relative;
  color: #f4f8f9;
  background:
    radial-gradient(circle at 78% 18%, rgba(27, 102, 124, .14), transparent 31%),
    linear-gradient(118deg, #082532 0%, #071f2b 56%, #0a2a38 100%);
  border-top: 1px solid rgba(255,255,255,.08);
}

.footer-container {
  width: min(100% - 80px, var(--ea-container-max));
  margin-inline: auto;
  padding-top: 26px;
}

.footer-main {
  display: grid;
  grid-template-columns: minmax(245px, 1.15fr) minmax(570px, 2.15fr) minmax(300px, 1.2fr);
  gap: clamp(42px, 5vw, 86px);
  align-items: start;
  min-height: 176px;
  padding: 0 18px 18px;
}

.footer-brand__logo {
  display: inline-block;
  width: 198px;
  margin-bottom: 9px;
}
.footer-brand__logo picture,
.footer-brand__logo img { display:block; width:100%; height:auto; }

.footer-brand__copy {
  max-width: 245px;
  margin: 0;
  color: rgba(245,249,250,.9);
  font-size: 14px;
  line-height: 1.55;
}

.footer-socials {
  display: flex;
  align-items: center;
  gap: 22px;
  margin-top: 12px;
}
.footer-socials a {
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  color: #f5f9fa;
  transition: color var(--ea-transition-fast), transform var(--ea-transition-fast);
}
.footer-socials .icon { width: 20px; height: 20px; stroke-width: 1.8; }
.footer-socials a:hover,
.footer-socials a:focus-visible { color: var(--ea-color-accent-bright); transform: translateY(-2px); }

.footer-nav {
  display: grid;
  grid-template-columns: repeat(3, minmax(145px, 1fr));
  gap: clamp(34px, 4vw, 72px);
}
.footer-nav__group h2,
.footer-newsletter h2 {
  margin: 0 0 13px;
  color: #fff;
  font-family: var(--ea-font-sans);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.2;
}
.footer-nav__group ul { list-style:none; padding:0; margin:0; }
.footer-nav__group li + li { margin-top: 6px; }
.footer-nav__group a {
  position: relative;
  display: inline-block;
  color: rgba(244,248,249,.88);
  font-size: 14px;
  line-height: 1.4;
  transition: color var(--ea-transition-fast), transform var(--ea-transition-fast);
}
.footer-nav__group a::after {
  content:"";
  position:absolute;
  left:0;
  bottom:-3px;
  width:0;
  height:1px;
  background:var(--ea-color-accent-bright);
  transition:width var(--ea-transition-fast);
}
.footer-nav__group a:hover,
.footer-nav__group a:focus-visible { color:#fff; transform:translateX(2px); }
.footer-nav__group a:hover::after,
.footer-nav__group a:focus-visible::after { width:100%; }

.footer-newsletter { justify-self: stretch; }
.footer-newsletter > p:first-of-type {
  margin: 0 0 19px;
  color: rgba(244,248,249,.88);
  font-size: 14px;
  line-height: 1.6;
}
.footer-newsletter__form {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 44px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: var(--ea-radius-pill);
  background: rgba(255,255,255,.08);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.03);
  transition: border-color var(--ea-transition-fast), background var(--ea-transition-fast), box-shadow var(--ea-transition-fast);
}
.footer-newsletter__form:focus-within {
  border-color: rgba(70,213,219,.65);
  background: rgba(255,255,255,.11);
  box-shadow: 0 0 0 3px rgba(40,198,207,.12);
}
.footer-newsletter__form input {
  min-width: 0;
  flex: 1;
  height: 44px;
  padding: 0 56px 0 16px;
  border: 0;
  outline: 0;
  color: #fff;
  background: transparent;
  font: 400 14px/1 var(--ea-font-sans);
}
.footer-newsletter__form input::placeholder { color: rgba(244,248,249,.66); opacity:1; }
.footer-newsletter__form button {
  position: absolute;
  right: 3px;
  top: 3px;
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  padding:0;
  border:0;
  border-radius:50%;
  color:#fff;
  background:linear-gradient(135deg,#16aeb9,#009aa8);
  cursor:pointer;
  box-shadow:0 4px 14px rgba(0,181,194,.25);
  transition:transform var(--ea-transition-fast), box-shadow var(--ea-transition-fast), filter var(--ea-transition-fast);
}
.footer-newsletter__form button:hover,
.footer-newsletter__form button:focus-visible { transform:translateX(2px); filter:brightness(1.08); box-shadow:0 6px 18px rgba(0,181,194,.32); }
.footer-newsletter__form button .icon { width:18px; height:18px; }
.footer-newsletter__status {
  min-height: 18px;
  margin: 6px 10px 0;
  color: #98e7e9;
  font-size: 12px;
  line-height: 1.4;
}
.footer-newsletter__status.is-error { color: #ffd3cb; }

.footer-bottom {
  position: relative;
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:45px;
  margin: 0 18px;
  border-top:1px solid rgba(255,255,255,.15);
}
.footer-bottom p {
  margin:0;
  color:rgba(244,248,249,.78);
  font-size:12px;
  line-height:1.4;
}
.footer-back-to-top {
  position:fixed;
  right:clamp(16px,2.1vw,34px);
  bottom:clamp(18px,2.1vw,34px);
  z-index:240;
  display:grid;
  place-items:center;
  width:46px;
  height:46px;
  border:1px solid rgba(9,113,124,.09);
  border-radius:50%;
  color:#0c9eab;
  background:rgba(255,255,255,.97);
  box-shadow:0 10px 28px rgba(0,28,36,.18);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(14px) scale(.92);
  transition:opacity var(--ea-transition-base), visibility 0s linear var(--ea-transition-base), transform var(--ea-transition-base), box-shadow var(--ea-transition-fast), color var(--ea-transition-fast);
}
.footer-back-to-top.is-visible {
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateY(0) scale(1);
  transition-delay:0s;
}
.footer-back-to-top .icon { width:21px; height:21px; stroke-width:2.2; }
.footer-back-to-top:hover,
.footer-back-to-top:focus-visible { transform:translateY(-2px) scale(1.03); color:#057e89; box-shadow:0 14px 30px rgba(0,28,36,.24); }

@media (max-width: 359px) {
  .footer-container { width: calc(100% - 28px); padding-top:36px; }
  .footer-main { grid-template-columns:1fr; gap:34px; padding:0 2px 30px; }
  .footer-brand { text-align:center; }
  .footer-brand__logo { width:196px; margin:0 auto 12px; }
  .footer-brand__copy { max-width:310px; margin-inline:auto; font-size:14px; line-height:1.58; }
  .footer-socials { justify-content:center; gap:18px; margin-top:17px; }
  .footer-socials a { width:38px; height:38px; border-radius:50%; background:rgba(255,255,255,.035); }
  .footer-socials .icon { width:20px; height:20px; }
  .footer-nav { grid-template-columns:1fr; gap:30px; text-align:center; }
  .footer-nav__group, .footer-nav__group:last-child { grid-column:auto; }
  .footer-nav__group h2, .footer-newsletter h2 { margin-bottom:14px; font-size:16px; font-weight:600; }
  .footer-nav__group li + li { margin-top:10px; }
  .footer-nav__group a { font-size:14px; line-height:1.45; }
  .footer-nav__group a:hover, .footer-nav__group a:focus-visible { transform:none; }
  .footer-nav__group a::after { left:50%; transform:translateX(-50%); }
  .footer-newsletter { text-align:center; }
  .footer-newsletter > p:first-of-type { max-width:300px; margin:0 auto 20px; font-size:14px; line-height:1.6; }
  .footer-newsletter__form { min-height:50px; }
  .footer-newsletter__form input { height:50px; padding-left:18px; font-size:14px; text-align:left; }
  .footer-newsletter__form button { right:4px; top:4px; width:42px; height:42px; }
  .footer-newsletter__status { margin-top:8px; text-align:center; }
  .footer-bottom { justify-content:center; margin:0; padding:0; min-height:72px; text-align:center; }
  .footer-bottom p { width:100%; font-size:12px; }
  .footer-back-to-top { width:44px; height:44px; }
}

@media (min-width: 360px) and (max-width: 575px) {
  .footer-container { width: calc(100% - 36px); padding-top:38px; }
  .footer-main { grid-template-columns:1fr; gap:36px; padding:0 4px 32px; }
  .footer-brand { text-align:center; }
  .footer-brand__logo { width:208px; margin:0 auto 12px; }
  .footer-brand__copy { max-width:325px; margin-inline:auto; font-size:14px; line-height:1.58; }
  .footer-socials { justify-content:center; gap:20px; margin-top:18px; }
  .footer-socials a { width:40px; height:40px; border-radius:50%; background:rgba(255,255,255,.035); }
  .footer-socials .icon { width:21px; height:21px; }
  .footer-nav { grid-template-columns:1fr; gap:32px; text-align:center; }
  .footer-nav__group, .footer-nav__group:last-child { grid-column:auto; }
  .footer-nav__group h2, .footer-newsletter h2 { margin-bottom:15px; font-size:16px; font-weight:600; }
  .footer-nav__group li + li { margin-top:10px; }
  .footer-nav__group a { font-size:14px; line-height:1.45; }
  .footer-nav__group a:hover, .footer-nav__group a:focus-visible { transform:none; }
  .footer-nav__group a::after { left:50%; transform:translateX(-50%); }
  .footer-newsletter { text-align:center; }
  .footer-newsletter > p:first-of-type { max-width:315px; margin:0 auto 20px; font-size:14px; line-height:1.6; }
  .footer-newsletter__form { min-height:50px; }
  .footer-newsletter__form input { height:50px; padding-left:18px; font-size:14px; text-align:left; }
  .footer-newsletter__form button { right:4px; top:4px; width:42px; height:42px; }
  .footer-newsletter__status { margin-top:8px; text-align:center; }
  .footer-bottom { justify-content:center; margin:0; padding:0; min-height:74px; text-align:center; }
  .footer-bottom p { width:100%; font-size:12px; }
  .footer-back-to-top { width:44px; height:44px; }
}

@media (min-width: 576px) and (max-width: 767px) {
  .footer-container { width: calc(100% - 48px); }
  .footer-main { grid-template-columns:1fr 1.35fr; gap:42px; padding-inline:8px; }
  .footer-brand__logo { width:190px; }
  .footer-nav { grid-column:1 / -1; grid-row:2; grid-template-columns:repeat(3,1fr); }
  .footer-newsletter { grid-column:2; grid-row:1; }
  .footer-bottom { margin-inline:8px; }

}

@media (min-width: 768px) and (max-width: 991px) {
  .footer-container { width: calc(100% - 64px); }
  .footer-main { grid-template-columns:1fr 1.15fr; gap:46px; padding-inline:8px; }
  .footer-nav { grid-column:1 / -1; grid-row:2; grid-template-columns:repeat(3,1fr); gap:50px; }
  .footer-newsletter { grid-column:2; grid-row:1; }
  .footer-bottom { margin-inline:8px; }

}

@media (min-width: 992px) and (max-width: 1199px) {
  .footer-container { width: calc(100% - 64px); }
  .footer-main { grid-template-columns:250px minmax(0,1fr); gap:38px 54px; padding-inline:4px; }
  .footer-brand__logo { width:184px; }
  .footer-newsletter { grid-column:2; grid-row:1; max-width:360px; justify-self:end; width:100%; }
  .footer-nav { grid-column:1 / -1; grid-row:2; grid-template-columns:repeat(3,1fr); gap:52px; }

  .footer-bottom { margin-inline:4px; }
}

@media (min-width: 1200px) and (max-width: 1399px) {
  .footer-container { width: calc(100% - 72px); }
  .footer-main { grid-template-columns:230px minmax(510px,1fr) 280px; gap:42px; padding-inline:8px; }

  .footer-bottom { margin-inline:8px; }
}

@media (min-width: 1400px) and (max-width: 1599px) {
  .footer-container { width:min(calc(100% - 80px),1453px); }

}

@media (min-width: 1600px) {
  .footer-container { width:min(calc(100% - 80px),1453px); }
  .footer-main { grid-template-columns:270px minmax(620px,2.15fr) minmax(315px,1.1fr); }
  .footer-brand__logo { width:206px; }

}


@media (max-width: 575px) {
  .footer-back-to-top {
    right:14px;
    bottom:max(14px, env(safe-area-inset-bottom));
    width:44px;
    height:44px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .footer-socials a,
  .footer-nav__group a,
  .footer-nav__group a::after,
  .footer-newsletter__form,
  .footer-newsletter__form button,
  .footer-back-to-top { transition:none !important; }
  .footer-back-to-top.is-visible { transform:none; }
}
