@font-face {
  font-family: Manrope;
  src: url("../manrope-regular.ttf") format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: Manrope;
  src: url("../manrope-bold.ttf") format("truetype");
  font-style: normal;
  font-weight: 700 900;
  font-display: swap;
}

:root {
  --ink: #0d1a2d;
  --body: #46566a;
  --muted: #8290a0;
  --blue: #087da3;
  --yellow: #f8c40b;
  --line: #e1e6e8;
  --paper: #ffffff;
  --cream: #faf8ef;
  --ice: #edf6fa;
  --content-width: 1418px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: Manrope, Arial, sans-serif;
  font-size: 14px;
  line-height: 1.4;
  -webkit-font-smoothing: antialiased;
}
button, input, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; }
.wrap { width: min(var(--content-width), calc(100% - 70px)); margin-inline: auto; }

.site-header { height: 78px; border-bottom: 1px solid #e8e6de; background: #fff; }
.header-inner {
  position: relative;
  height: 78px;
  display: flex;
  align-items: center;
  gap: 0;
}
.brand {
  flex: 0 0 320px;
  min-width: 0;
  display: flex;
  align-items: center;
  color: #536175;
  text-decoration: none;
}
.brand-home { display: block; flex: 0 0 auto; }
.brand img { display: block; width: 99px; height: 61px; object-fit: contain; }
.brand-proof { flex: 0 0 auto; margin-left: 14px; padding: 6px 12px 6px 9px; display: inline-flex; align-items: center; gap: 6px; border-radius: 999px; background: #fff4cc; color: #5c4700; font-size: 12px; font-weight: 700; line-height: 1.2; letter-spacing: -.01em; white-space: nowrap; }
.brand-proof__icon { flex: 0 0 auto; width: 16px; height: 16px; color: #b38600; }
.main-nav {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-width: 0;
}
.main-nav > a,
.nav-dropdown-toggle {
  position: relative;
  display: inline-flex;
  align-items: center;
  color: inherit;
  white-space: nowrap;
  text-decoration: none;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: -.025em;
}
.main-nav > a::before,
.nav-dropdown-toggle::before {
  content: "";
  position: absolute;
  right: 0;
  bottom: 2px;
  left: 0;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .16s ease;
}
.main-nav > a:hover::before,
.main-nav > a:focus-visible::before,
.nav-dropdown-toggle:hover::before,
.nav-dropdown-toggle:focus-visible::before,
.nav-dropdown-toggle[aria-expanded="true"]::before { transform: scaleX(1); }
.main-nav > a:hover, .nav-dropdown-toggle:hover, .language-switch a:hover { color: var(--blue); }
.main-nav > a:focus-visible, .nav-dropdown-toggle:focus-visible, .nav-dropdown a:focus-visible, .nav-toggle:focus-visible {
  outline: 2px solid var(--blue);
  outline-offset: 4px;
  border-radius: 3px;
}
.nav-group { position: relative; flex: 0 0 auto; }
.nav-group--destinations { position: static; }
.nav-dropdown-toggle {
  gap: 8px;
  padding: 8px 0;
  border: 0;
  background: transparent;
  font-family: inherit;
  cursor: pointer;
}
.nav-dropdown-toggle::after {
  content: "";
  width: 6px;
  height: 6px;
  margin-top: -3px;
  border-right: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
  transform: rotate(45deg);
  transition: transform .16s ease;
}
.nav-dropdown-toggle[aria-expanded="true"]::after { margin-top: 3px; transform: rotate(225deg); }
.nav-dropdown {
  position: absolute;
  top: calc(100% + 7px);
  right: 0;
  z-index: 50;
  min-width: 232px;
  padding: 6px;
  border: 1px solid #dce5e9;
  border-radius: 11px;
  background: #fff;
  box-shadow: 0 14px 32px rgba(13, 26, 45, .16), 0 2px 8px rgba(13, 26, 45, .06);
}
.nav-dropdown[hidden] { display: none; }
.nav-dropdown a {
  display: block;
  padding: 10px 11px;
  border-radius: 7px;
  color: #334b60;
  font-size: 12px;
  font-weight: 650;
  text-decoration: none;
  white-space: nowrap;
}
.nav-dropdown a:hover { background: #f0f7f9; color: var(--blue); }
.nav-dropdown.destinations-mega-menu {
  left: 50%;
  right: auto;
  width: min(1080px, calc(100vw - 36px));
  padding: 0;
  overflow: hidden;
  border-radius: 16px;
  transform: translateX(-50%);
  box-shadow: 0 24px 60px rgba(13, 26, 45, .18), 0 4px 14px rgba(13, 26, 45, .07);
}
.destinations-mega-menu:not([hidden]) { animation: dmm-in .18s cubic-bezier(.2, .8, .2, 1); }
@keyframes dmm-in { from { opacity: 0; transform: translate(-50%, -6px); } }
.destinations-mega-menu h2 {
  margin: 0 0 14px;
  color: #142b45;
  font-size: 15px;
  font-weight: 800;
  line-height: 1.3;
  letter-spacing: -.02em;
}
.dmm-head {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 18px;
  border-bottom: 1px solid #e8edef;
}
.dmm-search { position: relative; flex: 1 1 auto; display: block; }
.dmm-search__icon { position: absolute; top: 50%; left: 14px; width: 17px; height: 17px; color: #6d8193; transform: translateY(-50%); pointer-events: none; }
.dmm-search input {
  width: 100%;
  height: 44px;
  padding: 0 14px 0 42px;
  border: 1px solid #d6e2e7;
  border-radius: 11px;
  background: #f6f9fa;
  color: var(--ink);
  font-size: 14px;
  font-weight: 600;
  outline: 0;
  transition: border-color .15s ease, background-color .15s ease, box-shadow .15s ease;
}
.dmm-search input::placeholder { color: #8394a3; font-weight: 500; }
.dmm-search input:hover { border-color: #b9ccd5; }
.dmm-search input:focus { border-color: var(--blue); background: #fff; box-shadow: 0 0 0 3px rgba(8, 125, 163, .14); }
.dmm-body { display: grid; grid-template-columns: 236px minmax(0, 1fr); }
.dmm-regions {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 12px 10px;
  border-right: 1px solid #e8edef;
  background: #f7fafb;
}
.dmm-region {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 42px;
  padding: 0 12px 0 14px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: #334b60;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: -.015em;
  text-align: left;
  cursor: pointer;
  transition: background-color .12s ease, color .12s ease;
}
.dmm-region small { min-width: 26px; padding: 2px 7px; border-radius: 999px; background: #e9eff2; color: #5d7082; font-size: 11px; font-weight: 700; text-align: center; }
.dmm-region:hover { background: #eef4f6; color: var(--ink); }
.dmm-region[aria-selected="true"] { background: #fff; color: var(--blue); box-shadow: 0 1px 3px rgba(13, 26, 45, .08), inset 3px 0 0 var(--blue); }
.dmm-region[aria-selected="true"] small { background: #e2f1f7; color: #0b6a8c; }
.dmm-region:focus-visible { outline: 2px solid var(--blue); outline-offset: -2px; }
.dmm-panels { min-width: 0; }
.dmm-panel {
  height: min(500px, calc(100dvh - 190px));
  padding: 18px 22px 22px;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}
.dmm-panel[hidden] { display: none; }
.dmm-featured, .dmm-list { margin: 0; padding: 0; list-style: none; }
.dmm-featured { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px 14px; }
.nav-dropdown a.dmm-card { display: block; padding: 0; border-radius: 12px; color: var(--ink); white-space: normal; }
.nav-dropdown a.dmm-card:hover { background: transparent; }
.dmm-card__media { display: block; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 12px; background: linear-gradient(135deg, #d9eef5, #f6ecd0); }
.dmm-card__media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .35s cubic-bezier(.2, .8, .2, 1); }
.dmm-card:hover .dmm-card__media img { transform: scale(1.05); }
.dmm-card__body { display: block; padding: 9px 2px 0; }
.dmm-card__body strong { display: block; font-size: 14px; font-weight: 800; letter-spacing: -.02em; transition: color .12s ease; }
.dmm-card__body small { display: block; margin-top: 2px; color: #647689; font-size: 12px; font-weight: 600; }
.dmm-card:hover strong { color: var(--blue); }
.dmm-card__price { white-space: nowrap; }
.dmm-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2px 14px; }
.nav-dropdown a.dmm-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 36px;
  padding: 7px 10px;
  color: #50647a;
  font-weight: 600;
  white-space: normal;
}
.nav-dropdown a.dmm-link--offers { color: #17334e; font-weight: 750; }
.dmm-link small { flex: 0 0 auto; padding: 1px 7px; border-radius: 999px; background: #e2f1f7; color: #0b6a8c; font-size: 11px; font-weight: 750; }
.dmm-letters {
  position: sticky;
  top: -18px;
  z-index: 1;
  display: flex;
  flex-wrap: wrap;
  gap: 3px;
  margin: 0 -4px 12px;
  padding: 6px 4px 10px;
  background: #fff;
}
.nav-dropdown .dmm-letters a {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  padding: 0;
  border-radius: 7px;
  color: #334b60;
  font-size: 12px;
  font-weight: 750;
}
.nav-dropdown .dmm-letters a:hover { background: #e2f1f7; color: var(--blue); }
.dmm-alphabet { columns: 3; column-gap: 20px; }
.dmm-letter-group { display: flex; gap: 6px; padding-bottom: 10px; break-inside: avoid; scroll-margin-top: 50px; }
.dmm-letter-group[hidden] { display: none; }
.dmm-letter-group__letter { flex: 0 0 26px; padding-top: 8px; color: #a3b1bd; font-size: 15px; font-weight: 800; }
.dmm-letter-group .dmm-list { flex: 1 1 auto; grid-template-columns: minmax(0, 1fr); }
.dmm-letter-group li[hidden] { display: none; }
.dmm-empty { margin: 30px 0; color: #647689; font-size: 13px; text-align: center; }
.dmm-empty[hidden] { display: none; }
.dmm-panel--all.is-searching h2, .dmm-panel--all.is-searching .dmm-letters { display: none; }
@media (prefers-reduced-motion: reduce) {
  .destinations-mega-menu:not([hidden]) { animation: none; }
  .dmm-card__media img { transition: none; }
}
.nav-toggle { display: none; }
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.language-switch a:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.header-phone {
  flex: 0 0 184px;
  margin-left: 30px;
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
  border-left: 1px solid #e1e6e7;
  padding-left: 19px;
}
.icon { display: inline-block; flex: 0 0 auto; width: 1em; height: 1em; overflow: visible; vertical-align: middle; }
.header-phone-icon { width: 28px; height: 28px; }
.header-phone strong, .header-phone small { display: block; white-space: nowrap; }
.header-phone strong { font-size: 20px; line-height: 1.08; font-weight: 800; letter-spacing: -.04em; }
.header-phone small { margin-top: 3px; color: #718094; font-size: 10px; line-height: 1.1; }
.language-switch {
  position: relative;
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  margin-left: 18px;
  padding-left: 16px;
  border-left: 1px solid #e1e6e7;
  gap: 7px;
}
.language-switch a, .language-switch span {
  padding: 4px 0;
  color: var(--ink);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
}
.language-switch [aria-current] { color: var(--blue); }

.search-section { position: relative; z-index: 5; padding: 10px 0 6px; background: #f8f7f2; }
.search-bar {
  position: relative;
  overflow: visible;
  height: 67px;
  display: grid;
  grid-template-columns: 1.08fr 1.03fr 1.03fr 258px;
  align-items: center;
  padding: 4px;
  border: 1px solid #e1e6e8;
  border-radius: 15px;
  background: #fff;
  box-shadow: 0 3px 12px rgba(13, 26, 45, .055);
}
.search-field {
  position: relative;
  height: 56px;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 0 18px;
  border-right: 1px solid #e4e8e9;
}
.search-field > .search-icon { width: 25px; height: 25px; color: #117c98; }
.field-copy { min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.field-copy small { color: #617487; font-size: 10px; line-height: 1.2; }
.field-copy strong, .field-trigger__value {
  max-width: 100%;
  color: #33445c;
  font-size: 14px;
  line-height: 1.3;
  font-weight: 700;
  letter-spacing: -.025em;
}
.field-trigger {
  width: 100%;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 9px;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  text-align: left;
  cursor: pointer;
}
.field-trigger__value { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.field-trigger:focus-visible { outline: 2px solid var(--blue); outline-offset: 4px; border-radius: 3px; }
.field-trigger[aria-expanded="true"] .field-trigger__value { color: var(--blue); }
.field-chevron {
  flex: 0 0 7px;
  width: 7px;
  height: 7px;
  margin: -3px 2px 0 0;
  border-right: 1.5px solid #43576b;
  border-bottom: 1.5px solid #43576b;
  transform: rotate(45deg);
  transition: transform .16s ease, border-color .16s ease;
}
.field-trigger[aria-expanded="true"] .field-chevron { margin-top: 4px; border-color: var(--blue); transform: rotate(225deg); }
.search-field--dropdown.is-open { z-index: 12; }
.search-dropdown {
  position: absolute;
  top: calc(100% + 12px);
  left: -8px;
  z-index: 20;
  width: 330px;
  max-width: calc(100vw - 32px);
  padding: 10px;
  border: 1px solid #dce5e9;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 18px 42px rgba(13, 26, 45, .16), 0 3px 9px rgba(13, 26, 45, .06);
  animation: dropdown-in .16s ease-out both;
}
.search-dropdown[hidden] { display: none; }
@keyframes dropdown-in {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: translateY(0); }
}
.search-dropdown--dates {
  width: min(560px, calc(100vw - 32px));
  max-height: min(680px, calc(100vh - 150px));
  overflow-y: auto;
  overscroll-behavior: contain;
}
.dates-dropdown-grid {
  display: grid;
  grid-template-columns: minmax(160px, .78fr) minmax(270px, 1.22fr);
  align-items: start;
  gap: 14px;
  padding-top: 11px;
}
.dates-presets { min-width: 0; }
.dates-section-title { margin: 0; color: #334b60; font-size: 11px; line-height: 1.3; font-weight: 800; }
.dates-presets .dates-section-title { padding: 2px 8px 7px; }
.dates-presets .dropdown-options { max-height: none; overflow: visible; }
.dates-presets .dropdown-option--simple { min-height: 52px; padding-inline: 8px; }
.dates-presets .dropdown-option__copy strong { font-size: 12px; }
.dates-custom { min-width: 0; padding-left: 13px; border-left: 1px solid #e8edef; }
.dates-custom__heading { display: flex; flex-direction: column; gap: 3px; margin-bottom: 8px; }
.dates-custom__heading small { color: #526779; font-size: 10px; line-height: 1.3; }
.date-range-calendar {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-areas: "from-label to-label" "from-value to-value" "calendar calendar";
  align-items: center;
  gap: 4px 8px;
}
.date-range-field-label { color: #45596d; font-size: 10px; line-height: 1.2; }
.date-range-field-label--from { grid-area: from-label; }
.date-range-field-label--to { grid-area: to-label; }
.date-range-input {
  width: 100%;
  min-width: 0;
  height: 35px;
  padding: 0 9px;
  border: 1px solid #dce5e9;
  border-radius: 8px;
  background: #f8fafb;
  color: #2d465b;
  font: inherit;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.2;
  cursor: default;
}
.date-range-input--from { grid-area: from-value; }
.date-range-input--to { grid-area: to-value; }
.date-range-input::placeholder { color: #697d8e; opacity: 1; }
.date-range-input:focus-visible { outline: 2px solid #087da3; outline-offset: 2px; }
.date-range-calendar .air-datepicker {
  grid-area: calendar;
  width: 100%;
  min-width: 0;
}
.date-range-calendar .air-datepicker {
  border: 0;
  border-radius: 10px;
  background: transparent;
  box-shadow: none;
  color: #24384d;
  font-family: inherit;
  --adp-cell-size: 30px;
  --adp-cell-border-radius: 8px;
  --adp-btn-border-radius: 8px;
  --adp-accent-color: #087da3;
  --adp-accent-color-hover: #066985;
  --adp-cell-background-color-selected: #087da3;
  --adp-cell-background-color-selected-hover: #066985;
  --adp-cell-background-color-in-range: #eaf5f8;
  --adp-cell-color-in-range: #28576b;
  --adp-day-name-color: #526779;
  --adp-color: #24384d;
  --adp-color-current-date: #087da3;
}
.date-range-calendar .air-datepicker-nav { min-height: 35px; border-bottom: 0; }
.date-range-calendar .air-datepicker-nav--title { color: #24384d; font-size: 12px; font-weight: 800; }
.date-range-calendar .air-datepicker-nav--title i { color: #526779; }
.date-range-calendar .air-datepicker-nav--action { width: 30px; height: 30px; border-radius: 8px; color: #37546a; }
.date-range-calendar .air-datepicker-nav--action:hover { background: #eef7fa; }
.date-range-calendar .air-datepicker-body { padding: 3px 0 0; }
.date-range-calendar .air-datepicker-body--day-name { color: #526779; font-size: 9px; font-weight: 700; }
.date-range-calendar .air-datepicker-cell { font-size: 11px; }
.date-range-calendar .air-datepicker-cell.-in-range- { color: #28576b; }
.date-range-calendar .air-datepicker-cell.-focus- { background: #edf6fa; }
.dates-custom__footer { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 30px; padding-top: 5px; border-top: 1px solid #e8edef; }
.dates-custom__footer small { color: #526779; font-size: 9px; line-height: 1.3; }
.date-range-clear { flex: 0 0 auto; padding: 5px 2px; border: 0; background: transparent; color: #087da3; font-size: 10px; font-weight: 800; cursor: pointer; }
.date-range-clear:hover, .date-range-clear:focus-visible { outline: 0; color: #066985; text-decoration: underline; text-underline-offset: 3px; }
.search-dropdown--travelers { width: 306px; padding: 13px; }
.dropdown-search {
  display: flex;
  align-items: center;
  gap: 9px;
  height: 42px;
  margin-bottom: 7px;
  padding: 0 11px;
  border: 1px solid #dce5e9;
  border-radius: 9px;
  background: #f7fafb;
  color: #7a8b99;
}
.dropdown-search:focus-within { border-color: #86b9c9; background: #fff; box-shadow: 0 0 0 3px rgba(8, 125, 163, .1); }
.dropdown-search__icon { width: 17px; height: 17px; color: var(--blue); }
.dropdown-search input {
  width: 100%;
  min-width: 0;
  padding: 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--ink);
  font-size: 13px;
}
.dropdown-search input::placeholder { color: #617487; opacity: 1; }
.dropdown-options { display: grid; gap: 2px; max-height: 246px; overflow-y: auto; overscroll-behavior: contain; }
.dropdown-option {
  width: 100%;
  min-height: 48px;
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 7px 9px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: #33445c;
  text-align: left;
  cursor: pointer;
  transition: background-color .14s ease, color .14s ease;
}
.dropdown-option[hidden] { display: none; }
.dropdown-option:hover, .dropdown-option:focus-visible { outline: 0; background: #eef7fa; color: #126e88; }
.dropdown-option[aria-selected="true"] { background: #edf6fa; color: #126e88; }
.dropdown-option__copy { min-width: 0; flex: 1 1 auto; display: flex; flex-direction: column; gap: 2px; }
.dropdown-option__copy strong { overflow: hidden; color: inherit; font-size: 13px; line-height: 1.25; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.dropdown-option__copy small { overflow: hidden; color: #617487; font-size: 10px; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.dropdown-option__check { position: relative; flex: 0 0 16px; width: 16px; height: 16px; margin-left: auto; }
.dropdown-option__check::after { content: ""; position: absolute; left: 4px; top: 2px; width: 5px; height: 9px; border-right: 1.7px solid var(--blue); border-bottom: 1.7px solid var(--blue); transform: rotate(42deg); opacity: 0; }
.dropdown-option[aria-selected="true"] .dropdown-option__check::after { opacity: 1; }
.dropdown-option--simple { min-height: 48px; padding-inline: 11px; }
.dropdown-empty { margin: 0; padding: 15px 10px; color: #617487; font-size: 12px; text-align: center; }
.dropdown-heading { display: flex; flex-direction: column; gap: 3px; padding: 3px 5px 11px; border-bottom: 1px solid #e8edef; }
.dropdown-heading strong { color: #24384d; font-size: 13px; line-height: 1.3; font-weight: 800; }
.dropdown-heading small { color: #617487; font-size: 11px; line-height: 1.3; }
.stepper-row { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 12px 4px; border-bottom: 1px solid #edf0f1; }
.stepper-info { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.stepper-info strong { color: #33445c; font-size: 13px; line-height: 1.25; font-weight: 750; }
.stepper-info small { color: #617487; font-size: 10px; line-height: 1.25; }
.stepper-controls { display: flex; align-items: center; gap: 10px; }
.stepper-button { width: 32px; height: 32px; display: grid; place-items: center; border: 1px solid #d9e5e9; border-radius: 50%; background: #fff; color: #26516a; font-size: 18px; line-height: 1; cursor: pointer; }
.stepper-button:hover:not(:disabled), .stepper-button:focus-visible { outline: 0; border-color: #8bbdcb; background: #eff8fa; color: var(--blue); }
.stepper-button:disabled { background: #f4f6f7; color: #aab4bb; cursor: not-allowed; }
.stepper-value { min-width: 18px; color: #273c52; font-size: 14px; font-weight: 800; text-align: center; }
.child-age-list { display: grid; gap: 8px; padding: 10px 2px 2px; }
.child-age-list[hidden], .child-age-field[hidden], .search-validation[hidden] { display: none !important; }
.child-age-field { display: grid; grid-template-columns: minmax(0, 1fr) 132px; align-items: center; gap: 10px; color: #33445c; font-size: 11px; font-weight: 700; }
.child-age-field select { width: 100%; min-height: 34px; padding: 0 8px; border: 1px solid #d9e5e9; border-radius: 7px; background: #fff; color: #273c52; font: inherit; }
.child-age-field select:focus-visible { outline: 2px solid rgba(8, 125, 163, .35); outline-offset: 1px; border-color: #087da3; }
.dropdown-footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 2px 0; }
.dropdown-footer small { color: #617487; font-size: 10px; }
.dropdown-done { min-height: 36px; padding: 0 15px; border: 0; border-radius: 8px; background: #087da3; color: #fff; font-size: 12px; font-weight: 800; cursor: pointer; }
.dropdown-done:hover, .dropdown-done:focus-visible { outline: 0; background: #066985; }
.search-validation { margin-top: 9px; margin-bottom: 0; padding: 10px 13px; border: 1px solid #efc4be; border-radius: 8px; background: #fff5f3; color: #8a3025; font-size: 12px; line-height: 1.45; }
.search-submit {
  height: 58px;
  margin-left: 7px;
  padding: 0 17px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 11px;
  border: 0;
  border-radius: 9px;
  background: var(--yellow);
  color: #1b2a3a;
  font-size: 13px;
  font-weight: 800;
  white-space: nowrap;
  cursor: pointer;
}
.search-submit:hover { background: #efb900; }
.search-submit-icon { width: 22px; height: 22px; }
.submit-arrow { display: block; width: 18px; height: 18px; margin-left: auto; }

.hero {
  position: relative;
  z-index: 0;
  isolation: isolate;
  height: 219px;
  margin-top: 0;
  display: grid;
  grid-template-columns: 500px minmax(0, 1fr);
  overflow: visible;
  background: transparent;
}
.hero::before {
  content: "";
  position: absolute;
  z-index: 0;
  top: 0;
  right: -35px;
  bottom: -90px;
  left: -35px;
  pointer-events: none;
  background: linear-gradient(90deg, #f8f7f2 0, #f8f7f2 500px, rgba(248, 247, 242, .9) 535px, rgba(248, 247, 242, .55) 575px, rgba(248, 247, 242, 0) 630px);
}
.hero-copy {
  position: relative;
  z-index: 1;
  min-width: 0;
  padding: 15px 0 13px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: transparent;
  transform: translateY(-3px);
}
.hero h1 {
  max-width: 510px;
  margin: 0;
  color: var(--ink);
  font-size: 56px;
  line-height: 1.08;
  letter-spacing: -.035em;
  font-weight: 800;
}
.hero-copy p {
  margin: 7px 0 0;
  padding-left: 4px;
  color: #46566a;
  font-size: 19px;
  line-height: 1.48;
  letter-spacing: 0;
}
.hero-art {
  position: absolute;
  z-index: -1;
  top: 0;
  right: -35px;
  bottom: -90px;
  left: 465px;
  min-width: 0;
  overflow: hidden;
  background: #f8f7f2;
}
.hero-art img { position: relative; z-index: 0; display: block; width: 100%; height: 100%; object-fit: fill; object-position: center top; }
.hero-art::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(180deg, transparent 72%, rgba(248, 247, 242, .12) 83%, rgba(248, 247, 242, .68) 100%);
}

.season-section { position: relative; z-index: 1; margin-top: 3px; background: transparent; }
.season-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; }
.season-card {
  min-width: 0;
  height: 79px;
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 7px 10px 7px 12px;
  border: 1px solid #e2e7e9;
  border-radius: 10px;
  background: #fff;
  color: var(--ink);
  text-align: left;
  text-decoration: none;
  cursor: pointer;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.season-card:hover, .season-card:focus-visible, .season-card.is-active { border-color: #8daab7; box-shadow: 0 2px 8px rgba(13, 26, 45, .08); }
.season-card:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.season-card > .season-icon { flex: 0 0 37px; width: 37px; height: 37px; }
.season-copy { min-width: 0; display: flex; flex-direction: column; line-height: 1.2; }
.season-copy strong { overflow: hidden; color: #1b304a; font-size: 13px; font-weight: 800; line-height: 1.05; white-space: normal; }
.season-copy small { margin-top: 3px; overflow: hidden; color: #7b8998; font-size: 11px; white-space: nowrap; text-overflow: ellipsis; }
.card-arrow { flex: 0 0 14px; width: 14px; height: 14px; margin-left: auto; color: #13324d; }
.card-arrow .icon { width: 14px; height: 14px; }

.path-nav {
  height: 74px;
  margin-top: 17px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border: 1px solid #e5e8e7;
  border-radius: 11px;
  overflow: hidden;
  background: #f7f8f5;
}
.path-card {
  position: relative;
  min-width: 0;
  padding: 8px 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 17px;
  color: #18314d;
  text-decoration: none;
  background: #f7f8f5;
}
.path-card + .path-card { border-left: 1px solid #e2e6e5; }
.path-card.is-active { background: #fcfcf7; }
.path-card.is-active::after { content: ""; position: absolute; right: 0; bottom: 0; left: 0; height: 6px; background: var(--yellow); }
.path-card > .path-icon { flex: 0 0 38px; width: 38px; height: 38px; }
.path-card span { min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.path-card strong { font-size: 18px; line-height: 1.16; font-weight: 800; letter-spacing: -.04em; }
.path-card small { color: #66768a; font-size: 13px; line-height: 1.25; }

.home-link-group { display: grid; grid-template-columns: 170px minmax(0, 1fr); align-items: start; gap: 18px; margin-top: 14px; padding: 9px 2px 13px; border-bottom: 1px solid #dce7ea; }
.home-link-group h2 { margin: 5px 0 0; color: #142b45; font-size: 17px; line-height: 1.25; font-weight: 800; letter-spacing: -.025em; }
.home-link-group ul { display: flex; flex-wrap: wrap; gap: 2px 18px; margin: 0; padding: 0; list-style: none; }
.home-link-group li { min-width: 0; }
.home-link-group a { min-height: 32px; display: inline-flex; align-items: center; color: #18556b; font-size: 12px; line-height: 1.35; font-weight: 700; text-decoration: underline; text-decoration-color: #a6bfcb; text-underline-offset: 3px; }
.home-link-group a:hover { color: #006fa5; text-decoration-color: currentColor; }
.home-link-group a:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.home-link-group--seasonal { margin-top: 22px; }

.search-shortcut { display: flex; justify-content: flex-end; margin-top: 3px; margin-bottom: 0; }
.search-shortcut a { min-height: 25px; display: inline-flex; align-items: center; color: #18556b; font-size: 11px; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.search-shortcut a:hover { color: #006fa5; }
.search-shortcut a:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }

.popular-section {
  margin-top: 17px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: stretch;
  gap: 14px;
}
.popular-section--packages-only { grid-template-columns: minmax(0, 1fr); }
.packages-panel, .journey-panel {
  min-width: 0;
  height: 406px;
  padding: 17px 19px 12px;
  border: 1px solid #ecebe3;
  border-radius: 12px;
}
.packages-panel { background: var(--cream); }
.journey-panel { background: var(--ice); border-color: #e2edf1; }
.panel-heading { min-height: 51px; margin-bottom: 8px; display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.panel-heading h2 { margin: 0; color: #142b45; font-size: 27px; line-height: 1.12; letter-spacing: -.055em; font-weight: 800; }
.panel-heading p { margin: 4px 0 0; color: #596a7c; font-size: 14px; line-height: 1.25; }
.panel-heading > a { flex: 0 0 auto; padding-top: 6px; color: #006fa5; font-size: 13px; line-height: 1.3; font-weight: 700; text-decoration: underline; text-underline-offset: 2px; white-space: nowrap; }
.panel-heading > a span { margin-left: 6px; font-size: 19px; text-decoration: none; vertical-align: -1px; }

.offer-list { display: grid; }
.offer-list.catalog-card-grid { margin-top: 0; }
.offer-arrow, .journey-arrow {
  flex: 0 0 40px;
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border-radius: 7px;
  background: var(--yellow);
  color: #1a2c40;
}
.offer-arrow .icon, .journey-arrow .icon { width: 17px; height: 17px; }
.more-offers { margin: 11px 0 0; display: flex; align-items: center; gap: 10px; color: #006fa5; font-size: 14px; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.more-offers .search-icon { width: 20px; height: 20px; }
.more-offers > .ui-arrow { width: 16px; height: 16px; margin-left: 2px; text-decoration: none; }
.empty-message { margin: 22px 0 0; color: #53657a; font-size: 14px; }
.empty-message[hidden] { display: none; }

.journey-panel .panel-heading { margin-bottom: 8px; }
.journey-card {
  height: 304px;
  display: grid;
  grid-template-columns: 251px minmax(0, 1fr);
  gap: 16px;
  overflow: hidden;
  border-radius: 8px;
  background: #fff;
}
.journey-media { min-width: 0; display: flex; flex-direction: column; }
.journey-media img { display: block; width: 251px; height: 242px; object-fit: cover; }
.journey-media a {
  width: 165px;
  height: 39px;
  margin: 10px 0 0 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 11px;
  border: 1px solid #0083ba;
  border-radius: 8px;
  color: #006d9d;
  font-size: 14px;
  font-weight: 800;
  text-decoration: none;
}
.journey-media a span { font-size: 18px; }
.journey-content { min-width: 0; padding: 16px 14px 12px 0; display: flex; flex-direction: column; }
.journey-content h3 { margin: 0; color: #142b45; font-size: 22px; line-height: 1.17; letter-spacing: -.05em; font-weight: 800; white-space: nowrap; }
.journey-subtitle { margin: 3px 0 0; color: #596b7e; font-size: 14px; line-height: 1.2; }
.journey-route { margin: 10px 0 8px; display: flex; align-items: center; gap: 9px; color: #394e63; font-size: 12px; white-space: nowrap; }
.journey-route i { width: 5px; height: 5px; flex: 0 0 auto; display: inline-block; border-radius: 50%; background: #087da3; }
.journey-facts { margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; list-style: none; color: #50657b; font-size: 13px; line-height: 1.2; }
.journey-facts li { min-width: 0; display: flex; align-items: center; gap: 10px; }
.journey-facts .journey-icon { flex: 0 0 18px; width: 18px; height: 18px; }
.journey-facts span { min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.journey-bottom { margin-top: auto; display: flex; align-items: flex-end; justify-content: flex-end; gap: 12px; }
.journey-price { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; color: #16314c; }
.journey-price small { font-size: 10px; line-height: 1.05; }
.journey-price strong { font-size: 31px; line-height: 1; font-weight: 800; letter-spacing: -.06em; white-space: nowrap; }
.journey-arrow { text-decoration: none; }

.quick-find { min-height: 64px; margin-top: 10px; display: flex; align-items: center; gap: 10px; }
.quick-label { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 9px; margin-right: 2px; color: #1a304a; font-size: 17px; font-weight: 800; letter-spacing: -.04em; white-space: nowrap; }
.quick-label img { width: 22px; height: 22px; object-fit: contain; }
.quick-find button {
  flex: 0 0 auto;
  min-height: 43px;
  padding: 0 17px;
  border: 1px solid #e5e9ec;
  border-radius: 24px;
  background: #f9fafb;
  color: #344962;
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
  cursor: pointer;
}
.quick-find button:hover, .quick-find button.is-active { border-color: #b8cbd6; background: #edf6fa; color: #006c9a; }
.filter-status { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }

/* Homepage information architecture additions */
.popular-section { align-items: stretch; }
.packages-panel, .journey-panel { height: auto; min-height: 406px; }
.popular-filter-row { margin: -1px 0 10px; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; row-gap: 6px; }
.popular-filter {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-height: 32px;
  padding: 0 11px;
  border: 1px solid #e3e8e8;
  border-radius: 18px;
  background: #fff;
  color: #42556a;
  font-size: 11px;
  font-weight: 700;
  white-space: nowrap;
  cursor: pointer;
}
.popular-filter__icon { flex: 0 0 auto; line-height: 1; }
.popular-filter:hover, .popular-filter.is-active { border-color: #95b4c2; background: #e9f4f8; color: #006d9d; }
.popular-count { margin-left: auto; color: #687a8b; font-size: 11px; white-space: nowrap; }

.discovery-section { margin-top: 22px; }
.discovery-heading, .section-heading-row { margin-bottom: 11px; display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; }
.discovery-heading h2, .section-heading-row h2, .planning-section h2 { margin: 0; color: #142b45; font-size: 27px; line-height: 1.12; letter-spacing: -.055em; font-weight: 800; }
.discovery-heading > div > p:last-child { margin: 5px 0 0; color: #5b6b7b; font-size: 13px; }
.discovery-panel { padding: 15px; border: 1px solid #ecebe3; border-radius: 12px; background: var(--cream); }
.wizard-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; align-items: start; }
.wizard-step { min-width: 0; margin: 0; padding: 4px 15px 8px; border: 0; border-radius: 0; background: transparent; }
.wizard-step + .wizard-step { border-left: 1px solid #e5e3d9; }
.wizard-step legend { width: 100%; padding: 0; display: flex; align-items: center; gap: 8px; color: #203b56; font-size: 13px; font-weight: 800; }
.wizard-step legend span { width: 26px; height: 26px; flex: 0 0 26px; display: grid; place-items: center; border-radius: 50%; background: var(--yellow); color: #1b2a3a; font-size: 11px; }
.wizard-options { margin-top: 12px; display: flex; flex-wrap: wrap; gap: 6px; }
.wizard-options label { position: relative; display: inline-flex; cursor: pointer; }
.wizard-options input { position: absolute; inset: 0; margin: 0; opacity: 0; cursor: pointer; }
.wizard-options label span { min-height: 36px; padding: 0 11px; display: inline-flex; align-items: center; border: 1px solid #e2e8e9; border-radius: 20px; background: #f9fafb; color: #43566b; font-size: 11px; font-weight: 700; transition: background-color .15s ease, border-color .15s ease, color .15s ease; }
.wizard-options label:hover span, .wizard-options input:checked + span { border-color: #7ca9ba; background: #e8f5fa; color: #006d9d; }
.wizard-options input:checked + span::before { content: '✓'; margin-right: 5px; }
.wizard-options input:focus-visible + span { outline: 2px solid #087da3; outline-offset: 2px; }
.discovery-actions { margin-top: 12px; padding-top: 12px; display: flex; align-items: center; justify-content: space-between; gap: 14px; border-top: 1px solid #e8e8df; }
.discovery-count { margin: 0; color: #475d70; font-size: 13px; }
.discovery-count strong { color: #16314c; font-size: 24px; line-height: 1; letter-spacing: -.04em; }
.discovery-submit { min-height: 43px; text-decoration: none; padding: 0 16px; display: inline-flex; align-items: center; justify-content: center; gap: 14px; border: 0; border-radius: 8px; background: var(--yellow); color: #1b2a3a; font-size: 12px; font-weight: 800; cursor: pointer; }
.discovery-submit:hover { background: #efb900; }
.discovery-submit .ui-arrow { width: 16px; height: 16px; }
.discovery-hint { margin: 0; color: #5b6b7b; font-size: 12px; }
.discovery-results { margin-top: 12px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; }
.discovery-results[hidden] { display: none; }
.discovery-result { min-width: 0; padding: 9px 10px; display: flex; align-items: center; justify-content: space-between; gap: 10px; border: 1px solid #e1e7e8; border-radius: 8px; background: #fff; color: inherit; text-decoration: none; }
.discovery-result:hover { border-color: #99b7c4; }
.discovery-result-copy { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.discovery-result-copy small, .discovery-result-price small { color: #748494; font-size: 9px; }
.discovery-result-copy strong { overflow: hidden; color: #1b304a; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.discovery-result-copy > span { overflow: hidden; color: #617184; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.discovery-result-price { flex: 0 0 auto; display: flex; align-items: baseline; gap: 3px; color: #17324e; }
.discovery-result-price strong { font-size: 15px; }
.discovery-result-price > .result-arrow { width: 15px; height: 15px; margin-left: 5px; color: #087da3; }
.discovery-no-results { grid-column: 1 / -1; margin: 0; padding: 11px; border-radius: 8px; background: #fff; color: #586c7e; font-size: 12px; }

.journeys-section { margin-top: 24px; padding: 17px 19px 15px; border: 1px solid #e2edf1; border-radius: 12px; background: var(--ice); }
.section-heading-row { align-items: center; }
.section-heading-row > a { flex: 0 0 auto; color: #006fa5; font-size: 12px; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.section-heading-row > a .ui-arrow { width: 14px; height: 14px; margin-left: 5px; text-decoration: none; }
.route-card-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.route-card { min-width: 0; padding: 0; display: flex; flex-direction: column; overflow: hidden; border: 1px solid #f1f2ef; border-radius: 8px; background: #fff; transition: border-color .15s ease; }
.route-card:hover { border-color: #b8cbd6; }
.route-card-image { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; object-position: center; }
.route-card-top { padding: 13px 16px 0; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.route-kind { padding: 4px 9px; border-radius: 20px; background: var(--ice); color: #067da3; font-size: 10px; font-weight: 800; letter-spacing: .035em; text-transform: uppercase; }
.route-dates { display: inline-flex; align-items: center; gap: 6px; color: #5d7081; font-size: 11px; white-space: nowrap; }
.route-dates .calendar-icon { width: 16px; height: 16px; }
.route-card h3 { min-height: 2.4em; margin: 8px 16px 0; color: #172e49; font-size: 20px; line-height: 1.2; letter-spacing: -.035em; font-weight: 800; }
.route-subtitle { min-height: 2.4em; margin: 4px 16px 0; color: #5b6d7e; font-size: 12px; }
.route-line { min-height: 40px; margin: 12px 16px 0; padding: 9px 0; display: flex; align-items: center; gap: 8px; border-top: 1px solid #e5eaeb; border-bottom: 1px solid #e5eaeb; color: #31536b; font-size: 12px; font-weight: 700; }
.route-line .route-icon { flex: 0 0 18px; width: 18px; height: 18px; }
.route-line span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.route-card-bottom { margin: auto 0 0; padding: 11px 16px 13px; display: flex; align-items: center; gap: 12px; }
.route-duration { display: inline-flex; align-items: center; gap: 6px; color: #617487; font-size: 11px; }
.route-duration .bed-icon { width: 16px; height: 16px; }
.route-price { margin-left: auto; color: #53697a; font-size: 10px; white-space: nowrap; }
.route-price strong { color: #17324e; font-size: 21px; font-weight: 800; letter-spacing: -.035em; }
.route-card-bottom a { margin-left: 4px; display: inline-flex; align-items: center; gap: 9px; color: #006fa5; font-size: 11px; font-weight: 800; text-decoration: none; white-space: nowrap; }
.route-card-bottom a .route-arrow { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 7px; background: var(--yellow); color: #1a2c40; }
.route-card-bottom a .route-arrow .icon { width: 15px; height: 15px; }
.journeys-more { margin: 15px 0 0; color: #526779; font-size: 12px; line-height: 1.5; text-align: center; }
.journeys-more a { margin-left: 4px; color: #006fa5; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
.journeys-more a .ui-arrow { width: 14px; height: 14px; margin-left: 4px; }
.route-card-bottom a:focus-visible, .section-heading-row > a:focus-visible, .journeys-more a:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; }

@media (max-width: 1320px) and (min-width: 1201px) {
  .route-card-bottom { padding-inline: 12px; flex-wrap: wrap; gap: 8px; }
  .route-card-bottom a { margin-left: 0; flex: 0 0 100%; justify-content: space-between; }
}

@media (max-width: 1200px) and (min-width: 621px) {
  .route-card-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 700px) and (min-width: 621px) {
  .route-card-bottom { padding-inline: 12px; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px 12px; }
  .route-price { margin-left: 0; justify-self: end; }
  .route-card-bottom a { grid-column: 1 / -1; width: 100%; margin-left: 0; justify-content: space-between; }
}

.planning-section { margin-top: 24px; display: grid; grid-template-columns: minmax(0,1.8fr) minmax(250px, .8fr); align-items: stretch; gap: 14px; }
.planning-solutions, .expert-help { min-width: 0; padding: 15px; border: 1px solid #e8e9e2; border-radius: 11px; background: var(--cream); }
.planning-solutions .section-heading-row { margin-bottom: 10px; }
.planning-card-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; }
.planning-card { position: relative; min-height: 82px; padding: 10px 50px 10px 49px; display: flex; flex-direction: column; justify-content: center; border: 1px solid #f1f2ef; border-radius: 8px; background: #fff; color: #1a3049; text-decoration: none; transition: border-color .15s ease, background-color .15s ease; }
.planning-card:hover { border-color: #a8bfca; background: #fcfcf7; }
.planning-card:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.planning-icon { position: absolute; left: 13px; top: 50%; width: 24px; height: 24px; color: #117c98; transform: translateY(-50%); }
.planning-card strong { font-size: 12px; line-height: 1.2; }
.planning-card small { margin-top: 3px; color: #68798a; font-size: 10px; line-height: 1.25; }
.planning-arrow { position: absolute; right: 10px; top: 50%; width: 31px; height: 31px; display: grid; place-items: center; border-radius: 7px; background: var(--yellow); color: #1a2c40; transform: translateY(-50%); }
.planning-arrow .icon { width: 15px; height: 15px; }
.expert-help { display: flex; flex-direction: column; justify-content: center; background: var(--ice); border-color: #e0eaed; }
.expert-help h2 { max-width: 340px; font-size: 24px; line-height: 1.15; letter-spacing: -.04em; }
.expert-help > p { margin: 8px 0 12px; color: #596d7e; font-size: 12px; line-height: 1.4; }
.expert-help > a { min-height: 40px; padding: 0 12px; display: flex; align-items: center; justify-content: space-between; border-radius: 7px; background: var(--yellow); color: #1a2c40; font-size: 11px; font-weight: 800; text-decoration: none; }
.expert-help > a .ui-arrow { width: 14px; height: 14px; }
.expert-help > small { margin-top: 8px; color: #607386; font-size: 10px; }
.expert-help > small a { color: #006fa5; font-weight: 800; text-decoration: none; }

.choice-guide { margin-top: 18px; padding: 16px 19px; border: 1px solid #e1eaed; border-radius: 10px; background: #f7fafb; }
.choice-guide h2 { margin: 0; color: #142b45; font-size: 21px; line-height: 1.15; letter-spacing: -.04em; font-weight: 800; }
.choice-guide p { max-width: 920px; margin: 8px 0 0; color: #526779; font-size: 13px; line-height: 1.6; }
.choice-guide a { color: #006fa5; font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }

.catalog-section, .destinations-section, .about-intro { margin-top: 22px; }
.catalog-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 18px; }
.catalog-heading h2, .destinations-section h2, .about-intro h2 { margin: 0 0 10px; color: #142b45; font-size: 22px; line-height: 1.2; letter-spacing: -.035em; }
.catalog-heading > a { color: #006fa5; font-size: 12px; font-weight: 700; text-decoration: none; white-space: nowrap; }
.catalog-heading > a .icon { width: 13px; height: 13px; }
.catalog-related { margin: -2px 0 12px; }
.catalog-related a { display: inline-flex; align-items: center; gap: 5px; min-height: 30px; color: #18556b; font-size: 12px; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.catalog-related a:hover { color: #006fa5; }
.catalog-related a:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.catalog-related .ui-arrow { width: 13px; height: 13px; }
.catalog-links, .destination-links { margin: 0; padding: 0; list-style: none; }
.catalog-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px 12px; }
.catalog-links a { display: flex; align-items: baseline; gap: 7px; min-width: 0; padding: 10px 12px; border: 1px solid #e1eaed; border-radius: 8px; color: #29435d; font-size: 12px; text-decoration: none; background: #fff; }
.catalog-links a:hover, .destination-links a:hover { border-color: #9cc6d8; color: #006fa5; }
.catalog-links strong { flex: 0 0 auto; color: #142b45; }
.catalog-links span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.catalog-links b { flex: 0 0 auto; margin-left: auto; color: #0b678e; white-space: nowrap; }
.catalog-more { margin-top: 8px; }
.catalog-more summary { width: fit-content; padding: 8px 2px; color: #006fa5; font-size: 12px; font-weight: 700; cursor: pointer; }
.catalog-more .catalog-links { margin-top: 5px; }
.catalog-empty, .destinations-section > p, .about-intro p { margin: 0 0 12px; color: #526779; font-size: 13px; line-height: 1.6; }
.destination-links { display: flex; flex-wrap: wrap; gap: 7px; }
.destination-links a { display: block; padding: 8px 11px; border: 1px solid #e1eaed; border-radius: 7px; color: #29435d; font-size: 12px; text-decoration: none; background: #fff; }
.about-intro p { max-width: 850px; }
.journey-availability { display: block; color: #526779; font-size: 11px; }
.dates-section-title { display: block; }

.trust-strip { margin-top: 18px; margin-bottom: 22px; padding: 13px 8px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border: 1px solid #e1eaed; border-radius: 9px; background: #f0f7fa; }
.trust-strip > div { min-width: 0; padding: 0 13px; display: flex; align-items: center; gap: 11px; }
.trust-strip > div + div { border-left: 1px solid #d6e2e7; }
.trust-icon { flex: 0 0 34px; width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid #d4e3e8; border-radius: 50%; background: #fff; }
.trust-icon .icon { width: 19px; height: 19px; color: #142b45; }
.trust-strip p { min-width: 0; margin: 0; display: flex; flex-direction: column; gap: 2px; }
.trust-strip p > a { display: flex; flex-direction: column; gap: 2px; color: inherit; text-decoration: none; }
.trust-strip p > a:hover strong { text-decoration: underline; text-underline-offset: 2px; }
.trust-strip p > a:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; }
.trust-strip strong { color: #29435d; font-size: 11px; line-height: 1.25; }
.trust-strip small { color: #64778a; font-size: 10px; line-height: 1.3; }
.mobile-trust-proof { display: none; }

@media (max-width: 1200px) {
  .wrap { width: min(var(--content-width), calc(100% - 48px)); }
  .brand { flex-basis: 270px; }
  .main-nav { gap: 12px; }
  .main-nav a { font-size: 11px; }
  .header-phone { flex-basis: 164px; margin-left: 16px; padding-left: 12px; }
  .language-switch { margin-left: 10px; padding-left: 10px; }
  .search-bar { grid-template-columns: 1.1fr 1.05fr 1.05fr 220px; }
  .search-field { gap: 8px; padding-inline: 11px; }
  .search-submit { padding-inline: 10px; gap: 7px; font-size: 11px; }
  .hero { grid-template-columns: 36% minmax(0, 1fr); }
  .hero::before { left: -24px; right: -24px; background: linear-gradient(90deg, #f8f7f2 0, #f8f7f2 calc(36% - 10px), rgba(248, 247, 242, .88) 36%, rgba(248, 247, 242, .44) calc(36% + 40px), rgba(248, 247, 242, .08) calc(36% + 82px), rgba(248, 247, 242, 0) calc(36% + 105px)); }
  .hero-art { left: 36%; right: -24px; }
  .hero h1 { font-size: clamp(38px, 4vw, 53px); }
  .season-grid { gap: 6px; }
  .season-card { gap: 7px; padding-inline: 7px; }
  .season-copy strong { font-size: 11px; }
  .season-copy small { font-size: 9px; }
  .journey-card { grid-template-columns: 37% minmax(0,1fr); gap: 12px; }
  .journey-media img { width: 100%; }
  .journey-content h3 { font-size: 18px; }
  .journey-route { gap: 5px; font-size: 10px; }
  .journey-facts { font-size: 11px; }
}

@media (max-width: 900px) {
  .site-header, .header-inner { height: 72px; }
  .site-header { position: relative; z-index: 30; }
  .wrap { width: calc(100% - 36px); }
  .brand { flex: 1 1 auto; }
  .main-nav { display: none; }
  .nav-toggle {
    flex: 0 0 40px;
    width: 40px;
    height: 40px;
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #dce5e9;
    border-radius: 8px;
    background: #fff;
    color: #334b60;
    cursor: pointer;
  }
  .nav-toggle-icon { width: 17px; display: grid; gap: 4px; }
  .nav-toggle-icon i { display: block; height: 1.5px; border-radius: 2px; background: currentColor; }
  .nav-toggle[aria-expanded="true"] .nav-toggle-icon i:first-child { transform: translateY(5.5px) rotate(45deg); }
  .nav-toggle[aria-expanded="true"] .nav-toggle-icon i:nth-child(2) { opacity: 0; }
  .nav-toggle[aria-expanded="true"] .nav-toggle-icon i:last-child { transform: translateY(-5.5px) rotate(-45deg); }
  .main-nav.is-open {
    position: absolute;
    top: calc(100% + 7px);
    right: 18px;
    left: 18px;
    z-index: 40;
    display: flex;
    align-items: stretch;
    flex-direction: column;
    gap: 0;
    max-height: calc(100vh - 86px);
    max-height: calc(100dvh - 86px);
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 7px 10px;
    border: 1px solid #dce5e9;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 16px 36px rgba(13, 26, 45, .17), 0 2px 8px rgba(13, 26, 45, .06);
  }
  .main-nav.is-open > a,
  .main-nav.is-open .nav-dropdown-toggle {
    min-height: 44px;
    padding: 0 9px;
    border-bottom: 1px solid #edf0f1;
  }
  .main-nav.is-open .nav-group { width: 100%; }
  .main-nav.is-open .nav-dropdown-toggle { width: 100%; justify-content: space-between; }
  .main-nav.is-open .nav-dropdown {
    position: static;
    min-width: 0;
    padding: 2px 0 7px 10px;
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }
  .main-nav.is-open .nav-dropdown a { min-height: 40px; padding: 10px; white-space: normal; }
  .main-nav.is-open .nav-dropdown.destinations-mega-menu {
    left: auto;
    right: auto;
    width: auto;
    max-height: none;
    padding: 9px 0 12px;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    transform: none;
  }
  .main-nav.is-open .destinations-mega-menu:not([hidden]) { animation: none; }
  .dmm-head { flex-wrap: wrap; gap: 8px; padding: 0 9px 10px; border: 0; }
  .dmm-search { flex-basis: 100%; }
  .dmm-body { display: block; }
  .dmm-regions { flex-direction: row; gap: 6px; padding: 2px 9px 10px; overflow-x: auto; border: 0; background: transparent; scrollbar-width: none; }
  .dmm-region { flex: 0 0 auto; min-height: 38px; padding: 0 12px; border: 1px solid #dfe8eb; border-radius: 999px; background: #fff; white-space: nowrap; }
  .dmm-region[aria-selected="true"] { border-color: var(--blue); box-shadow: none; }
  .dmm-panel { height: auto; padding: 6px 9px 0; overflow: visible; }
  .dmm-featured { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 10px; }
  .main-nav.is-open .nav-dropdown a.dmm-card { min-height: 0; padding: 0; }
  .dmm-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px 6px; }
  .main-nav.is-open .nav-dropdown a.dmm-link { min-height: 40px; padding: 9px; overflow-wrap: anywhere; }
  .dmm-letters { top: 0; }
  .main-nav.is-open .nav-dropdown .dmm-letters a { min-height: 0; width: 32px; height: 32px; padding: 0; }
  .dmm-alphabet { columns: 1; }
  .dmm-letter-group .dmm-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .header-phone { margin-left: 10px; }
  .search-bar { grid-template-columns: repeat(2,minmax(0,1fr)) 210px; height: auto; min-height: 120px; }
  .search-field--dates { position: static; }
  .search-field--dates .search-dropdown { left: 0; right: auto; width: min(560px, calc(100vw - 36px)); }
  .search-field:nth-of-type(2) { border-right: 0; }
  .search-field--travelers { grid-column: 1 / span 2; border-top: 1px solid #e4e8e9; border-right: 0; }
  .search-submit { grid-column: 3; grid-row: 1 / span 2; height: 100%; white-space: normal; }
  .hero { height: auto; min-height: 225px; grid-template-columns: 42% minmax(0,1fr); }
  .hero::before { left: -18px; right: -18px; bottom: -90px; background: linear-gradient(90deg, #f8f7f2 0, #f8f7f2 calc(42% - 8px), rgba(248, 247, 242, .88) 42%, rgba(248, 247, 242, .44) calc(42% + 40px), rgba(248, 247, 242, .08) calc(42% + 82px), rgba(248, 247, 242, 0) calc(42% + 105px)); }
  .hero-copy { background: #f8f7f2; transform: none; }
  .hero-art { left: 42%; right: 0; bottom: -90px; min-height: 225px; }
  .hero-art img { height: 100%; }
  .hero h1 { font-size: clamp(32px, 5vw, 44px); }
  .hero-copy p { margin: 10px 0 0; padding-left: 0; font-size: 15px; letter-spacing: -.025em; }
  .season-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .path-card { gap: 9px; padding-inline: 10px; }
  .path-card strong { font-size: 14px; }
  .path-card small { font-size: 10px; }
  .popular-section { grid-template-columns: 1fr; }
  .packages-panel, .journey-panel { height: auto; min-height: 406px; }
  .quick-find { flex-wrap: wrap; padding-block: 10px; }
  .planning-section { grid-template-columns: minmax(0,1.5fr) minmax(220px, .8fr); }
  .trust-strip > div { padding-inline: 9px; gap: 8px; }
  .trust-icon { flex-basis: 31px; width: 31px; height: 31px; }
}

@media (max-width: 620px) {
  .wrap { width: calc(100% - 28px); }
  .brand .brand-proof { display: none; }
  .mobile-trust-proof { position: relative; z-index: 31; height: 24px; margin-top: -12px; display: flex; justify-content: center; pointer-events: none; }
  .site-header:has(.main-nav.is-open) + .mobile-trust-proof { visibility: hidden; }
  body.flight-country-page .mobile-trust-proof,
  body.bus-tour-destination-page .mobile-trust-proof { width: 100%; margin-inline: 0; background: linear-gradient(transparent 50%, var(--cream) 50%); }
  .mobile-trust-proof .brand-proof { height: 24px; margin-left: 0; padding-block: 0; border: 1px solid #efd98a; background: #fff; font-size: 11px; pointer-events: auto; }
  .brand img { width: 82px; height: 52px; }
  .header-phone { flex-basis: auto; margin-left: 8px; padding-left: 0; gap: 0; border-left: 0; }
  .header-phone-icon, .header-phone small { display: none; }
  .header-phone strong { font-size: 14px; }
  .language-switch { margin-left: 7px; padding-left: 7px; }
  .language-switch { gap: 4px; }
  .search-section { padding: 7px 0; }
  .search-bar { grid-template-columns: repeat(2,minmax(0,1fr)); padding: 5px; }
  .search-field { min-height: 54px; padding-inline: 6px; gap: 5px; }
  .search-field > .search-icon { width: 20px; height: 20px; }
  .field-copy small { font-size: 10px; }
  .field-copy strong, .field-trigger__value { font-size: 11px; }
  .field-trigger { gap: 5px; }
  .search-dropdown--dates { width: min(560px, calc(100vw - 28px)); max-height: min(680px, calc(100vh - 125px)); }
  .dates-dropdown-grid { grid-template-columns: minmax(150px, .78fr) minmax(250px, 1.22fr); gap: 9px; }
  .dates-custom { padding-left: 9px; }
  .date-range-calendar .air-datepicker { --adp-cell-size: 28px; }
  .search-field:nth-of-type(2) { border-right: 0; }
  .search-field--destination .search-dropdown { left: -6px; right: auto; width: min(330px, calc(100vw - 38px)); }
  .search-field--travelers .search-dropdown { left: auto; right: -8px; }
  .search-submit { grid-column: 1 / -1; grid-row: auto; height: 48px; margin: 4px 0 0; }
  .hero { height: auto; min-height: 0; margin-top: 0; grid-template-columns: 1fr; grid-template-rows: auto 160px; overflow: hidden; background: #f8f7f2; }
  .hero::before { display: none; }
  .hero-copy { grid-column: 1; grid-row: 1; padding: 17px 14px; background: #f8f7f2; }
  .hero h1 { font-size: clamp(30px, 8vw, 40px); }
  .hero-copy p { font-size: 13px; }
  .hero-art { position: relative; z-index: 0; top: auto; right: auto; bottom: auto; left: auto; grid-column: 1; grid-row: 2; width: auto; min-height: 160px; height: 160px; background: none; }
  .hero-art img { height: 160px; }
  .page-shell:has(> .hero--home) { display: flex; flex-direction: column; }
  .page-shell:has(> .hero--home) > .search-section { margin-top: -46px; padding-top: 0; background: transparent; }
  .page-shell:has(> .hero--home) .search-bar { box-shadow: 0 10px 28px rgba(12, 28, 44, .16); }
  .hero.hero--home { order: -1; width: 100%; margin: -12px 0 0; display: block; padding: 40px 20px 64px; background: #1d3550; }
  .hero--home .hero-copy { padding: 0; background: transparent; }
  .hero--home h1 { max-width: 12ch; color: #fff; font-size: clamp(28px, 8.4vw, 36px); }
  .hero--home .hero-copy p { max-width: 34ch; margin-top: 8px; color: rgba(255, 255, 255, .88); font-size: 13px; line-height: 1.45; }
  .hero--home .hero-art { position: absolute; inset: 0; z-index: 0; width: auto; height: auto; min-height: 0; }
  .hero--home .hero-art img { width: 100%; height: 100%; object-fit: cover; object-position: 66% center; }
  .hero--home .hero-art::after { background: linear-gradient(90deg, rgba(12, 28, 44, .4) 0%, rgba(12, 28, 44, 0) 62%), linear-gradient(180deg, rgba(12, 28, 44, .58) 0%, rgba(12, 28, 44, .34) 50%, rgba(12, 28, 44, 0) 80%); }
  .hero--home h1, .hero--home .hero-copy p { text-shadow: 0 1px 12px rgba(12, 28, 44, .45); }
  .season-section { margin-top: 14px; }
  .season-grid { display: flex; overflow-x: auto; padding-bottom: 4px; }
  .season-card { flex: 0 0 210px; }
  .path-nav { height: auto; grid-template-columns: 1fr; margin-top: 8px; }
  .path-card { min-height: 64px; justify-content: flex-start; padding-left: 20px; }
  .path-card + .path-card { border-left: 0; border-top: 1px solid #e2e6e5; }
  .home-link-group { grid-template-columns: minmax(0, 1fr); gap: 4px; margin-top: 13px; padding-bottom: 11px; }
  .home-link-group h2 { margin: 0; font-size: 16px; }
  .home-link-group ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 12px; }
  .home-link-group a { min-height: 37px; font-size: 11px; }
  .search-shortcut { justify-content: flex-start; }
  .popular-section { margin-top: 14px; }
  .packages-panel, .journey-panel { padding: 13px 10px; }
  .panel-heading h2 { font-size: 22px; }
  .panel-heading p { font-size: 11px; }
  .panel-heading > a { font-size: 10px; white-space: normal; text-align: right; }
  .more-offers { font-size: 10px; }
  .journey-card { height: auto; grid-template-columns: 1fr; gap: 0; }
  .journey-media img { height: auto; aspect-ratio: 1.04; }
  .journey-media a { margin: 8px 12px; }
  .journey-content { padding: 10px 12px 14px; }
  .journey-content h3 { white-space: normal; }
  .journey-route { flex-wrap: wrap; }
  .journey-bottom { margin-top: 12px; }
  .quick-find { gap: 7px; }
  .quick-label { width: 100%; font-size: 14px; }
  .quick-find button { min-height: 36px; padding-inline: 12px; font-size: 10px; }
  .popular-filter-row { flex-wrap: nowrap; overflow-x: auto; margin-bottom: 9px; padding-bottom: 3px; }
  .popular-filter { min-height: 30px; padding-inline: 9px; font-size: 10px; }
  .popular-count { margin-left: 2px; }
  .discovery-section, .journeys-section, .planning-section, .choice-guide { margin-top: 18px; }
  .discovery-heading, .section-heading-row { align-items: flex-start; }
  .discovery-heading h2, .section-heading-row h2, .planning-section h2 { font-size: 22px; }
  .choice-guide h2 { font-size: 19px; }
  .discovery-heading > div > p:last-child { max-width: 275px; font-size: 11px; }
  .discovery-panel { padding: 10px; }
  .wizard-steps { grid-template-columns: 1fr; }
  .wizard-step { padding: 4px 2px 10px; }
  .wizard-step + .wizard-step { border-left: 0; border-top: 1px solid #e5e3d9; padding-top: 12px; }
  .wizard-options { margin-top: 13px; }
  .wizard-options label span { padding-inline: 9px; font-size: 10px; }
  .discovery-hint { text-align: center; }
  .discovery-actions { margin-top: 10px; align-items: stretch; flex-direction: column; gap: 9px; }
  .discovery-count { text-align: center; }
  .discovery-count strong { font-size: 22px; }
  .discovery-submit { width: 100%; min-height: 42px; }
  .discovery-results { grid-template-columns: 1fr; }
  .route-card-grid { grid-template-columns: 1fr; gap: 8px; }
  .journeys-section { padding: 12px 10px; }
  .route-card-top { padding: 12px 12px 0; }
  .route-card h3 { margin-right: 12px; margin-left: 12px; font-size: 16px; }
  .route-subtitle { margin-right: 12px; margin-left: 12px; }
  .route-line { margin-right: 12px; margin-left: 12px; }
  .route-card-bottom { padding: 10px 12px 12px; flex-wrap: wrap; gap: 8px; }
  .route-card-bottom a { margin-left: auto; font-size: 10px; }
  .journeys-more { margin-top: 12px; font-size: 11px; }
  .planning-section { grid-template-columns: 1fr; gap: 9px; }
  .planning-solutions, .expert-help { padding: 12px; }
  .planning-card { min-height: 73px; padding: 9px 39px 9px 40px; }
  .planning-icon { left: 10px; width: 23px; height: 23px; }
  .planning-arrow { right: 8px; width: 29px; height: 29px; }
  .planning-card strong { font-size: 11px; }
  .planning-card small { font-size: 9px; }
  .expert-help h2 { max-width: 280px; }
  .trust-strip { margin-top: 12px; padding: 8px 4px; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .trust-strip > div { min-height: 58px; padding: 6px 7px; gap: 6px; }
  .trust-strip > div:nth-child(3) { border-left: 0; border-top: 1px solid #d6e2e7; }
  .trust-strip > div:nth-child(4) { border-top: 1px solid #d6e2e7; }
  .trust-icon { flex-basis: 28px; width: 28px; height: 28px; }
  .trust-icon .icon { width: 17px; height: 17px; }
  .trust-strip strong { font-size: 10px; }
  .trust-strip small { font-size: 9px; }
}

@media (max-width: 540px) {
  .dates-dropdown-grid { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .dates-custom { padding-top: 10px; padding-left: 0; border-top: 1px solid #e8edef; border-left: 0; }
  .dates-presets .dropdown-options { grid-template-columns: minmax(0, 1fr); }
  .dates-presets .dropdown-option--simple { min-height: 44px; }
}

@media (max-width: 1100px) and (min-width: 901px) {
  .popular-filter-row { flex-wrap: wrap; row-gap: 4px; }
  .popular-filter { min-height: 30px; padding-inline: 8px; }
  .journey-card { grid-template-columns: 34% minmax(0, 1fr); gap: 8px; }
  .journey-media a { width: 100%; max-width: 165px; gap: 6px; }
  .journey-content h3 { white-space: normal; }
  .journey-route { flex-wrap: wrap; row-gap: 4px; }
}

@media (max-width: 1180px) and (min-width: 901px) {
  .site-header, .header-inner { height: auto; }
  .header-inner { min-height: 100px; flex-wrap: wrap; align-content: center; }
  .main-nav { order: 1; flex: 0 0 100%; height: 28px; }
  .header-phone { margin-left: auto; }
}

@media (prefers-reduced-motion: reduce) {
  .search-dropdown { animation: none; }
  .field-chevron, .dropdown-option { transition: none; }
  .main-nav > a::before, .nav-dropdown-toggle::before { transition: none; }
}

/* Legacy Latvian route families rendered inside the new site shell. */
.site-route-page { width: min(1160px, calc(100% - 40px)); margin: 42px auto 84px; color: #172634; }
.site-route-page h1 { max-width: 900px; margin: 8px 0 16px; font-size: clamp(28px, 3.4vw, 42px); line-height: 1.04; letter-spacing: -.035em; }
.site-route-page h2 { margin: 38px 0 18px; font-size: clamp(23px, 3vw, 34px); }
.site-route-eyebrow { margin: 0; color: #687580; font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.site-route-eyebrow a { color: inherit; }
.site-route-program-hero { margin: 0 0 28px; }
.site-route-program-hero--has-image { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, .9fr); align-items: center; gap: clamp(22px, 4vw, 52px); }
.site-route-program-hero__copy { min-width: 0; }
.site-route-program-hero__media { position: relative; overflow: hidden; margin: 0; border: 1px solid #dfe5e8; border-radius: 18px; background: #edf1f3; aspect-ratio: 16 / 9; }
.site-route-program-hero__media [data-product-media] { display: block; width: 100%; height: 100%; }
.site-route-program-hero__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.site-route-lead { max-width: 760px; margin: 0 0 28px; color: #596773; font-size: clamp(17px, 2vw, 21px); line-height: 1.55; }
.site-route-richtext { max-width: 900px; margin: 32px 0; color: #35434e; line-height: 1.75; overflow-wrap: anywhere; }
.site-route-richtext img,
.price-rich-content img,
.proposal-page__intro img { float: left; max-width: min(100%, 400px); max-height: 300px; height: auto; margin: 0 16px 12px 0; border-radius: 14px; }
.site-route-richtext p,
.price-rich-content p,
.proposal-page__intro p { display: flow-root; }
.site-route-richtext iframe { width: min(100%, 760px); min-height: 380px; border: 0; }
.site-route-intro { max-width: 900px; margin: 0 0 8px; }
.site-route-page .site-route-intro__text { margin: 0; }
.site-route-intro__text > :first-child { margin-top: 0; }
.site-route-intro.is-collapsed .site-route-intro__text { max-height: 5.6em; overflow: hidden; -webkit-mask-image: linear-gradient(#000 62%, transparent); mask-image: linear-gradient(#000 62%, transparent); }
.site-route-intro__toggle { margin-top: 4px; padding: 0; border: 0; background: none; color: #006d9d; font: inherit; font-size: 15px; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.site-route-intro__toggle[hidden] { display: none; }
.site-route-offers { margin: 20px 0 0; scroll-margin-top: 90px; }
.site-route-offers__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; margin-bottom: 12px; }
.site-route-page .site-route-offers__head h2 { margin: 0; font-size: clamp(20px, 2.2vw, 26px); }
.site-route-offers__from { color: #596773; font-size: 15px; }
.site-route-offers__from strong { color: #172634; font-size: 17px; }
.site-route-offers__filters { margin: 0 0 4px; }
.site-route-offers__filters .popular-filter { font-size: 13px; min-height: 34px; }
.site-route-offers__chip-count { color: #7a8894; font-size: .9em; font-weight: 400; }
.site-route-offers .catalog-card-grid { margin-top: 12px; }
.site-route-offers [data-product-card][hidden] { display: none; }
/* Customer reviews page: legacy pasted emails rendered as review cards. */
.reviews-hero { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 16px 40px; margin-bottom: 32px; padding-bottom: 28px; border-bottom: 1px solid var(--line); }
.reviews-hero h1, .reviews-hero .site-route-lead { grid-column: 1; }
.reviews-hero .site-route-lead { margin-bottom: 0; }
.reviews-stats { grid-column: 2; grid-row: 1 / span 2; display: flex; gap: 10px; margin: 0; }
.reviews-stats div { min-width: 104px; padding: 14px 18px; border-radius: 16px; background: var(--ice); }
.reviews-stats dt { color: #5c6c78; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.reviews-stats dd { margin: 4px 0 0; color: var(--ink); font-size: 26px; font-weight: 800; letter-spacing: -.02em; }
.reviews-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.review-card { position: relative; display: flex; flex-direction: column; gap: 14px; min-width: 0; padding: 22px 22px 20px; border: 1px solid #e1e7ea; border-radius: 18px; background: #fff; }
.review-card::before { content: "\201C"; position: absolute; top: 6px; right: 18px; color: #e3eef3; font-family: Georgia, serif; font-size: 72px; line-height: 1; pointer-events: none; }
.review-card__meta { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; min-height: 26px; padding-right: 36px; color: #6a7885; font-size: 13px; }
.review-card__destination { display: inline-flex; align-items: center; gap: 5px; padding: 4px 10px 4px 8px; border-radius: 999px; background: var(--cream); color: #3d4b16; font-weight: 700; }
.review-card__icon { width: 14px; height: 14px; color: #b08900; }
.review-card__text { position: relative; flex: 1; color: #2c3b47; font-size: 15px; line-height: 1.65; overflow-wrap: anywhere; }
.review-card__text p { margin: 0 0 .7em; }
.review-card__text p:last-child { margin-bottom: 0; }
.review-card.is-collapsed .review-card__text { flex: none; max-height: 12.4em; overflow: hidden; -webkit-mask-image: linear-gradient(#000 70%, transparent); mask-image: linear-gradient(#000 70%, transparent); }
.review-card__toggle { align-self: flex-start; margin-top: -6px; padding: 0; border: 0; background: none; color: #006d9d; font: inherit; font-size: 14px; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.review-card__author { display: flex; align-items: center; gap: 12px; margin-top: auto; padding-top: 14px; border-top: 1px solid #eef1f3; }
.review-card__avatar { display: grid; flex: none; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: var(--yellow); color: var(--ink); font-size: 16px; font-weight: 800; }
.review-card__author strong { display: block; color: var(--ink); font-size: 15px; }
.review-card__author small { display: block; margin-top: 2px; color: #6a7885; font-size: 13px; }
.reviews-cta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px 32px; margin-top: 40px; padding: 28px 32px; border-radius: 22px; background: var(--ink); color: #fff; }
.site-route-page .reviews-cta h2 { margin: 0 0 6px; color: #fff; font-size: clamp(21px, 2.4vw, 28px); }
.reviews-cta p { max-width: 560px; margin: 0; color: #c3ceda; font-size: 15px; line-height: 1.55; }
.reviews-cta__button { display: inline-flex; align-items: center; gap: 8px; min-height: 48px; padding: 0 22px; border-radius: 999px; background: var(--yellow); color: var(--ink); font-weight: 800; text-decoration: none; }
.reviews-cta__button:hover { background: #ffd43b; }
.reviews-cta__icon { width: 16px; height: 16px; }
@media (max-width: 1000px) {
  .reviews-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .reviews-hero { grid-template-columns: 1fr; }
  .reviews-stats { grid-column: 1; grid-row: auto; }
}
@media (max-width: 640px) {
  .reviews-grid { grid-template-columns: 1fr; }
  .reviews-stats div { flex: 1; min-width: 0; padding: 12px 14px; }
  .reviews-stats dd { font-size: 22px; }
    .review-card { padding: 18px; }
  .reviews-cta { padding: 24px 20px; }
}
.site-route-link-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 12px; margin: 24px 0 38px; }
.site-route-link-card { display: flex; min-height: 94px; flex-direction: column; justify-content: space-between; gap: 16px; padding: 18px 20px; border: 1px solid #dfe5e8; border-radius: 16px; background: #fff; color: #172634; text-decoration: none; transition: border-color .18s ease, transform .18s ease; }
.site-route-link-card:hover { border-color: #9bb5c3; transform: translateY(-2px); }
.site-route-link-card strong { font-size: 17px; }
.site-route-link-card span { color: #657581; font-size: 13px; }
.catalog-card-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 13px; margin-top: 20px; }
.catalog-card-grid > li { min-width: 0; }
.site-route-category-grid { margin: 24px 0 38px; padding: 0; list-style: none; }
.catalog-card-grid--home { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; }
.catalog-card-grid--hotels { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; }
@media (max-width: 1200px) {
  .catalog-card-grid:not(.catalog-card-grid--hotels):not(.catalog-card-grid--home) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .catalog-card-grid--home { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .catalog-card-grid:not(.catalog-card-grid--hotels),
  .catalog-card-grid--home { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
}
@media (max-width: 380px) {
  .catalog-card-grid:not(.catalog-card-grid--hotels),
  .catalog-card-grid--home { grid-template-columns: minmax(0, 1fr); }
}
.site-route-empty, .site-route-form-error { padding: 18px 20px; border: 1px solid #e3e8ea; border-radius: 14px; color: #596773; background: #f8fafb; }
.site-route-form-error { border-color: #f0c5bf; color: #8f332a; background: #fff6f4; }
.site-route-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin-top: 26px; }
.site-route-button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 12px 20px; border: 0; border-radius: 999px; color: #fff !important; background: #15384b; font: inherit; font-weight: 700; text-decoration: none; cursor: pointer; }
.site-route-hero-image { display: block; max-width: min(100%, 900px); max-height: 460px; margin: 20px 0; object-fit: cover; border-radius: 18px; }
.site-route-date-list, .site-route-dates ul { display: flex; flex-wrap: wrap; gap: 10px; padding: 0; list-style: none; }
.site-route-date-list li, .site-route-dates li { padding: 10px 14px; border: 1px solid #dce4e8; border-radius: 999px; background: #fff; }
.site-route-search, .site-route-order-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; max-width: 850px; margin: 25px 0 36px; padding: 22px; border: 1px solid #e0e6e9; border-radius: 18px; background: #fff; }
.site-route-search > label, .site-route-order-form > label { display: grid; gap: 7px; color: #47545f; font-size: 14px; font-weight: 600; }
.site-route-search input, .site-route-order-form input, .site-route-order-form select, .site-route-order-form textarea { width: 100%; min-height: 46px; padding: 10px 12px; border: 1px solid #d5dde1; border-radius: 10px; color: #172634; background: #fff; font: inherit; }
.site-route-order-form__contact { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 14px; min-width: 0; margin: 0; padding: 0; border: 0; }
.site-route-order-form__contact legend { grid-column: 1 / -1; padding: 0; color: #47545f; font-size: 14px; font-weight: 600; }
.site-route-order-form__contact legend span { color: #b24f3f; }
.site-route-order-form__contact > label { display: grid; gap: 7px; color: #47545f; font-size: 14px; font-weight: 600; }
.site-route-order-form__contact > small { grid-column: 1 / -1; margin-top: -5px; color: #596773; font-size: 12px; line-height: 1.45; }
.site-route-order-form textarea { resize: vertical; }
.site-route-order-form__full, .site-route-order-form > button { grid-column: 1 / -1; }
.site-route-search__types { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; border: 1px solid #e0e6e9; border-radius: 12px; }
.site-route-search__types legend { padding: 0 6px; color: #47545f; font-weight: 700; }
.site-route-search__types label { display: flex; align-items: center; gap: 8px; color: #47545f; }
.site-route-search__types input { width: 17px; min-height: 17px; }
.site-route-steps { display: flex; flex-wrap: wrap; gap: 10px; margin: 22px 0; padding: 0; list-style: none; color: #697680; }
.site-route-steps li { padding: 9px 13px; border-radius: 999px; background: #f1f4f5; }
.site-route-steps [aria-current="step"] { color: #12384a; background: #e0eef2; font-weight: 700; }
.site-route-result-count { margin-top: 32px; color: #596773; font-weight: 700; }
.site-route-stars { color: #ca8a23; letter-spacing: .1em; }
.site-route-hotel-gallery { position: relative; margin: 24px 0; }
.site-route-hotel-images { display: grid; grid-template-columns: minmax(0, 1.4fr) repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(2, clamp(155px, 15vw, 205px)); gap: 8px; overflow: hidden; border-radius: 16px; background: #e8edef; }
.site-route-hotel-gallery--two .site-route-hotel-images { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: clamp(220px, 30vw, 360px); }
.site-route-hotel-gallery--single .site-route-hotel-images { grid-template-columns: minmax(0, 1fr); grid-template-rows: clamp(250px, 38vw, 420px); }
.site-route-hotel-gallery--three .site-route-hotel-images { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); }
.site-route-hotel-gallery--four .site-route-hotel-images__item:last-child { grid-column: 2 / 4; }
.site-route-hotel-images__item { position: relative; display: block; min-width: 0; min-height: 0; padding: 0; overflow: hidden; border: 0; border-radius: 7px; background: #e8edef; cursor: zoom-in; }
.site-route-hotel-gallery--many .site-route-hotel-images__item:nth-child(n+6) { display: none; }
.site-route-hotel-gallery--three .site-route-hotel-images__item:first-child,
.site-route-hotel-gallery--four .site-route-hotel-images__item:first-child,
.site-route-hotel-gallery--many .site-route-hotel-images__item:first-child { grid-row: span 2; }
.site-route-hotel-gallery--three .site-route-hotel-images__item:first-child { grid-column: 1; }
.site-route-hotel-images__item img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .35s cubic-bezier(.2, .8, .2, 1); }
.site-route-hotel-images__item:hover img { transform: scale(1.035); }
.site-route-hotel-images__item:focus-visible,
.site-route-hotel-gallery__all:focus-visible,
.site-route-hotel-gallery-dialog button:focus-visible { outline: 3px solid #edb900; outline-offset: 3px; }
.site-route-hotel-gallery__all { position: absolute; right: 14px; bottom: 14px; z-index: 2; display: inline-flex; min-height: 42px; align-items: center; gap: 9px; padding: 0 14px; border: 1px solid rgba(17, 31, 44, .12); border-radius: 8px; color: #142b45; background: #fff; box-shadow: 0 5px 18px rgba(11, 27, 38, .18); font: inherit; font-size: 13px; font-weight: 750; cursor: pointer; transition: background-color .16s ease, transform .16s ease; }
.site-route-hotel-gallery__all:hover { background: #fff8da; transform: translateY(-1px); }
.site-route-hotel-gallery__all svg { width: 17px; height: 17px; }
.site-route-hotel-gallery__count { min-width: 22px; padding: 2px 6px; border-radius: 5px; background: #f0f3f4; color: #405364; font-size: 11px; text-align: center; }
.site-route-hotel-gallery-dialog { width: min(1160px, calc(100vw - 32px)); height: min(900px, calc(100dvh - 32px)); max-width: none; max-height: none; padding: 0; overflow: hidden; border: 1px solid rgba(255, 255, 255, .13); border-radius: 14px; color: #f6f8f9; background: #101820; box-shadow: 0 24px 80px rgba(0, 0, 0, .38); }
.site-route-hotel-gallery-dialog::backdrop { background: rgba(5, 12, 18, .88); }
.site-route-hotel-gallery-dialog[open] { display: grid; grid-template-rows: auto minmax(0, 1fr); }
.site-route-hotel-gallery-dialog__header { display: grid; grid-template-columns: minmax(0, 1fr) auto 42px; align-items: center; gap: 16px; min-height: 64px; padding: 10px 16px 10px 20px; border-bottom: 1px solid rgba(255, 255, 255, .12); }
.site-route-hotel-gallery-dialog__title { overflow: hidden; color: #f6f8f9; font-size: 14px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.site-route-hotel-gallery-dialog__counter { color: #bdc7ce; font-size: 13px; font-variant-numeric: tabular-nums; }
.site-route-hotel-gallery-dialog__close,
.site-route-hotel-gallery-dialog__arrow { display: grid; place-items: center; padding: 0; border: 1px solid rgba(255, 255, 255, .2); border-radius: 50%; color: #fff; background: rgba(255, 255, 255, .09); cursor: pointer; transition: background-color .15s ease, transform .15s ease; }
.site-route-hotel-gallery-dialog__close { width: 42px; height: 42px; }
.site-route-hotel-gallery-dialog__close:hover,
.site-route-hotel-gallery-dialog__arrow:hover { background: rgba(255, 255, 255, .19); transform: scale(1.04); }
.site-route-hotel-gallery-dialog__close svg { width: 22px; height: 22px; }
.site-route-hotel-gallery-dialog__stage { display: grid; grid-template-columns: 54px minmax(0, 1fr) 54px; align-items: center; justify-items: center; gap: 12px; min-height: 0; padding: 16px 20px 22px; }
.site-route-hotel-gallery-dialog__image-wrap { display: flex; width: 100%; height: 100%; min-width: 0; min-height: 0; align-items: center; justify-content: center; }
.site-route-hotel-gallery-dialog__image { display: block; width: 100%; height: 100%; min-width: 0; min-height: 0; object-fit: contain; }
.site-route-hotel-gallery-dialog__arrow { width: 46px; height: 46px; }
.site-route-hotel-gallery-dialog__arrow svg { width: 22px; height: 22px; }
@media (max-width: 700px) {
  .site-route-hotel-gallery { margin: 20px 0; }
  .site-route-hotel-images,
  .site-route-hotel-gallery--three .site-route-hotel-images { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto; gap: 6px; border-radius: 13px; }
  .site-route-hotel-gallery--two .site-route-hotel-images,
  .site-route-hotel-gallery--single .site-route-hotel-images { grid-template-columns: minmax(0, 1fr); }
  .site-route-hotel-images__item { aspect-ratio: 4 / 3; border-radius: 6px; }
  .site-route-hotel-gallery--single .site-route-hotel-images__item { aspect-ratio: 16 / 10; }
  .site-route-hotel-gallery--two .site-route-hotel-images__item { aspect-ratio: 16 / 10; }
  .site-route-hotel-gallery--three .site-route-hotel-images__item:first-child,
  .site-route-hotel-gallery--four .site-route-hotel-images__item:first-child,
  .site-route-hotel-gallery--many .site-route-hotel-images__item:first-child { grid-column: 1 / -1; grid-row: auto; aspect-ratio: 16 / 10; }
  .site-route-hotel-gallery--four .site-route-hotel-images__item:last-child { grid-column: auto; }
  .site-route-hotel-gallery--four .site-route-hotel-images__item:nth-child(n+4),
  .site-route-hotel-gallery--many .site-route-hotel-images__item:nth-child(n+4) { display: none; }
  .site-route-hotel-gallery__all { right: 10px; bottom: 10px; min-height: 38px; gap: 7px; padding: 0 10px; font-size: 12px; }
  .site-route-hotel-gallery__all svg { width: 15px; height: 15px; }
  .site-route-hotel-gallery-dialog { width: calc(100vw - 16px); height: calc(100dvh - 16px); border-radius: 11px; }
  .site-route-hotel-gallery-dialog__header { min-height: 58px; grid-template-columns: minmax(0, 1fr) auto 38px; gap: 9px; padding: 8px 10px 8px 14px; }
  .site-route-hotel-gallery-dialog__title { font-size: 12px; }
  .site-route-hotel-gallery-dialog__counter { font-size: 12px; }
  .site-route-hotel-gallery-dialog__close { width: 38px; height: 38px; }
  .site-route-hotel-gallery-dialog__stage { grid-template-columns: 38px minmax(0, 1fr) 38px; gap: 4px; padding: 12px 8px 14px; touch-action: pan-y; }
  .site-route-hotel-gallery-dialog__arrow { width: 36px; height: 36px; }
}
.site-route-waavo { min-height: 560px; margin: 28px 0; }

.offer-filter { margin: 22px 0 26px; overflow: hidden; border: 1px solid #dce6e9; border-radius: 15px; color: var(--ink); background: #fff; }
.offer-filter__toggle { position: relative; width: 100%; min-height: 70px; display: flex; align-items: center; gap: 13px; padding: 11px 16px; border: 0; color: var(--ink); background: linear-gradient(105deg, #f0f7f8 0%, #fbfcfa 74%); font: inherit; text-align: left; list-style: none; cursor: pointer; }
.offer-filter__toggle::-webkit-details-marker { display: none; }
.offer-filter__toggle::marker { content: ""; }
.offer-filter__toggle:hover { background: linear-gradient(105deg, #eaf4f6 0%, #f8fbfa 74%); }
.offer-filter__toggle:focus-visible { z-index: 1; outline: 2px solid var(--blue); outline-offset: -3px; }
.offer-filter__toggle-icon { width: 42px; height: 42px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 12px; color: #15384b; background: #ffe89a; }
.offer-filter__toggle-icon svg { width: 22px; height: 22px; }
.offer-filter__toggle-copy { min-width: 0; display: grid; gap: 2px; }
.offer-filter__toggle-title { font-size: 15px; font-weight: 800; line-height: 1.2; letter-spacing: -.015em; }
.offer-filter__toggle-summary { color: #617487; font-size: 12px; font-weight: 550; line-height: 1.35; }
.offer-filter__active-count { min-width: 29px; height: 29px; display: inline-grid; place-items: center; margin-left: auto; padding: 0 8px; border-radius: 999px; color: #17394c; background: #ffe89a; font-size: 12px; font-weight: 800; font-variant-numeric: tabular-nums; }
.offer-filter__chevron { width: 9px; height: 9px; flex: 0 0 auto; margin: 0 3px 4px 8px; border-right: 1.8px solid #395365; border-bottom: 1.8px solid #395365; transform: rotate(45deg); transition: transform .18s ease; }
.offer-filter[open] > .offer-filter__toggle .offer-filter__chevron { transform: rotate(225deg); }
.offer-filter__panel { padding: 18px 19px 19px; border-top: 1px solid #e4ecee; background: #fff; }
.offer-filter__header { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 0; }
.offer-filter__dialog-title { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.offer-filter__form { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px 11px; align-items: end; }
.offer-filter__form label { display: grid; gap: 5px; min-width: 0; color: #47545f; font-size: 12px; font-weight: 700; line-height: 1.3; }
.offer-filter__form input:not([type="checkbox"]), .offer-filter__form select { width: 100%; min-width: 0; min-height: 41px; padding: 8px 10px; border: 1px solid #d5e0e3; border-radius: 9px; color: #172634; background: #fff; font: inherit; font-size: 13px; }
.offer-filter__form input:not([type="checkbox"]):hover, .offer-filter__form select:hover { border-color: #a9c5ce; }
.offer-filter__form input:focus-visible, .offer-filter__form select:focus-visible, .offer-filter__close:focus-visible, .offer-filter__actions a:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.offer-filter__countries { grid-column: 1 / -1; min-width: 0; margin: 0; padding: 0; border: 0; }
.offer-filter__countries legend { margin-bottom: 8px; padding: 0; color: #47545f; font-size: 12px; font-weight: 800; }
.offer-filter__country-list { display: flex; flex-wrap: wrap; gap: 7px; }
.offer-filter__country-list label { min-height: 33px; display: inline-flex; align-items: center; gap: 7px; padding: 5px 9px; border: 1px solid #e3eaec; border-radius: 8px; color: #405365; background: #f8faf9; font-size: 12px; font-weight: 600; line-height: 1.3; cursor: pointer; transition: border-color .14s ease, background-color .14s ease, color .14s ease; }
.offer-filter__country-list label:hover { border-color: #b8d0d7; background: #f0f7f8; }
.offer-filter__country-list label:has(input:checked) { border-color: #95bcc8; color: #134e63; background: #eaf4f6; }
.offer-filter__country-list input { width: 15px; height: 15px; flex: 0 0 auto; margin: 0; accent-color: var(--blue); }
.offer-filter__country-list input:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.offer-filter__range-grid { display: contents; }
.offer-filter__sort { grid-column: span 2; }
.offer-filter__actions { grid-column: span 4; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; }
.offer-filter__apply { min-height: 41px; padding: 9px 16px; border-radius: 10px; font-size: 13px; }
.offer-filter__clear, .site-route-results-bar > a, .site-route-empty a { color: #1a5f77; font-size: 13px; font-weight: 750; text-underline-offset: 3px; }
.offer-filter__errors { margin: 0 0 13px; padding: 11px 14px 11px 32px; border: 1px solid #f0c5bf; border-radius: 9px; color: #8f332a; background: #fff6f4; font-size: 13px; line-height: 1.5; }
.offer-filter__errors li + li { margin-top: 4px; }
.offer-filter__close:not([hidden]) { width: 40px; height: 40px; flex: 0 0 auto; display: inline-grid; place-items: center; border: 1px solid #dbe2e5; border-radius: 50%; color: #263c4a; background: #fff; cursor: pointer; }
.offer-filter__close svg { width: 19px; height: 19px; }
.offer-filter__backdrop { display: none; }
.site-route-results-bar { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-top: 22px; }
.site-route-results-bar .site-route-result-count { margin: 0; }
.site-route-empty a { display: inline-block; margin-top: 12px; }

@media (max-width: 900px) and (min-width: 641px) {
  .offer-filter__form { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .offer-filter__sort, .offer-filter__actions { grid-column: span 3; }
}

@media (max-width: 640px) {
  .site-route-page { width: min(100% - 30px, 1160px); margin: 28px auto 56px; }
  .site-route-richtext img,
  .price-rich-content img,
  .proposal-page__intro img { float: none; display: block; margin: 12px auto 16px; }
  .site-route-search, .site-route-order-form { grid-template-columns: 1fr; padding: 17px; }
  .site-route-order-form__contact { grid-template-columns: minmax(0, 1fr); }
  .site-route-order-form__contact > legend, .site-route-order-form__contact > small { grid-column: 1; }
  .site-route-search__types { grid-template-columns: 1fr; }
  .site-route-order-form__full, .site-route-order-form > button { grid-column: 1; }
  .offer-filter { margin: 20px 0 23px; }
  .offer-filter__toggle { min-height: 65px; gap: 10px; padding: 10px 12px; }
  .offer-filter__toggle-icon { width: 38px; height: 38px; border-radius: 11px; }
  .offer-filter__toggle-summary { font-size: 11px; }
  .offer-filter__active-count { min-width: 26px; height: 26px; padding-inline: 7px; }
  .offer-filter--mobile-open { position: relative; z-index: 1002; overflow: visible; }
  .offer-filter--mobile-open .offer-filter__toggle { border-radius: 14px 14px 0 0; }
  .offer-filter--mobile-open .offer-filter__panel { position: fixed; z-index: 1002; inset: auto 0 0; max-height: 88vh; max-height: 88dvh; overflow-y: auto; overscroll-behavior: contain; padding: 19px 18px max(24px, env(safe-area-inset-bottom)); border: 0; border-radius: 20px 20px 0 0; box-shadow: 0 -12px 40px rgba(19, 43, 57, .2); }
  .offer-filter--mobile-open .offer-filter__backdrop:not([hidden]) { position: fixed; z-index: 1001; inset: 0; display: block; width: 100%; height: 100%; padding: 0; border: 0; background: rgba(15, 31, 40, .48); }
  .offer-filter__header { margin-bottom: 14px; }
  .offer-filter__dialog-title { position: static; width: auto; height: auto; margin: 0; padding: 0; overflow: visible; clip: auto; color: var(--ink); font-size: 19px; font-weight: 800; line-height: 1.25; white-space: normal; }
  .offer-filter__form { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px 10px; }
  .offer-filter__countries, .offer-filter__sort, .offer-filter__actions { grid-column: 1 / -1; }
  .offer-filter__country-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; max-height: 190px; overflow-y: auto; padding: 2px 0; }
  .offer-filter__country-list label { align-items: flex-start; padding: 8px 9px; line-height: 1.35; }
  .offer-filter__range-grid { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px 10px; }
  .offer-filter__actions { align-items: stretch; }
  .offer-filter__apply { width: 100%; }
  .offer-filter__clear { align-self: center; }
  .site-route-results-bar { align-items: flex-start; margin-top: 20px; }
  .site-route-results-bar > a { flex: 0 0 auto; }
}

@media (max-width: 380px) {
  .offer-filter__range-grid { grid-template-columns: 1fr; }
  .offer-filter__toggle { gap: 9px; padding-inline: 10px; }
  .offer-filter__toggle-icon { width: 35px; height: 35px; }
  .offer-filter__toggle-summary { font-size: 10px; }
  .offer-filter__chevron { margin-left: 3px; }
  .site-route-results-bar { flex-direction: column; gap: 9px; }
}

.site-footer {
  margin-top: 34px;
  border-top: 3px solid var(--yellow);
  background: var(--ink);
  color: #edf3f7;
}
.site-footer__inner { padding-block: 38px 17px; }
.site-footer__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) repeat(3, minmax(0, 1fr));
  gap: clamp(22px, 3vw, 42px);
}
.site-footer__brand,
.site-footer__column { min-width: 0; }
.site-footer__logo {
  width: 108px;
  height: 68px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 3px 4px;
  border-radius: 3px;
  background: #fff;
}
.site-footer__logo img { display: block; width: 100px; height: auto; object-fit: contain; }
.site-footer__brand > p {
  max-width: 230px;
  margin: 13px 0 0;
  color: #c7d3dd;
  font-size: 12px;
  line-height: 1.65;
}
.site-footer__column h2 {
  margin: 0 0 12px;
  color: #fff;
  font-size: 13px;
  line-height: 1.3;
  font-weight: 800;
  letter-spacing: -.02em;
}
.site-footer__column p,
.site-footer__column address {
  margin: 0;
  color: #c7d3dd;
  font-size: 12px;
  line-height: 1.7;
  font-style: normal;
}
.site-footer__contact-links { margin-top: 9px; display: grid; justify-items: start; gap: 7px; }
.site-footer__column a,
.site-footer__bottom a {
  color: #e3ebf0;
  font-size: 12px;
  line-height: 1.55;
  text-decoration: none;
  text-underline-offset: 3px;
}
.site-footer__column > a { display: block; width: fit-content; margin-top: 7px; }
.site-footer__column a:hover,
.site-footer__bottom a:hover { color: var(--yellow); text-decoration: underline; }
.site-footer__logo:focus-visible,
.site-footer__column a:focus-visible,
.site-footer__bottom a:focus-visible {
  border-radius: 2px;
  outline: 2px solid var(--yellow);
  outline-offset: 4px;
}
.footer-phone-icon { width: 14px; height: 14px; margin-right: 6px; vertical-align: -2px; }
.site-footer__notice {
  max-width: 82ch;
  margin: 27px 0 0;
  padding-top: 16px;
  border-top: 1px solid rgba(227, 235, 240, .2);
  color: #bdcbd6;
  font-size: 11px;
  line-height: 1.65;
}
.site-footer__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-top: 15px;
  color: #bdcbd6;
  font-size: 11px;
  line-height: 1.55;
}
.site-footer__bottom a { font-size: 11px; }
@media (max-width: 700px) {
  .catalog-links { grid-template-columns: minmax(0, 1fr); }
  .catalog-links a { flex-wrap: wrap; }
  .catalog-links span { flex: 1 1 50%; }
  .catalog-heading h2, .destinations-section h2, .about-intro h2 { font-size: 19px; }
  .catalog-heading > a { font-size: 11px; }
}

@media (max-width: 340px) {
  .packages-panel .panel-heading > a { display: none; }
}

@media (max-width: 900px) {
  .site-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 30px; }
}

@media (max-width: 620px) {
  .site-footer { margin-top: 24px; }
  .site-footer__inner { padding-block: 27px 14px; }
  .site-footer__grid { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  .site-footer__column h2 { margin-bottom: 8px; font-size: 14px; }
  .site-footer__notice { margin-top: 23px; padding-top: 14px; }
  .site-footer__bottom { align-items: flex-start; flex-direction: column; gap: 7px; }
}

.flight-page {
  padding-top: 24px;
  padding-bottom: 38px;
}
.flight-page--country {
  margin: 0;
  padding-top: 0;
  padding-bottom: 38px;
}
.flight-country-stage {
  padding-top: 24px;
  background: var(--cream);
}
.flight-page--country .flight-breadcrumbs { margin-inline: auto; }
.flight-page__heading {
  position: relative;
  isolation: isolate;
  display: grid;
  height: 244px;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  align-items: stretch;
  overflow: hidden;
  margin: 16px 0 28px;
  background: var(--cream);
}
.flight-page__heading::after {
  position: absolute;
  z-index: 1;
  inset: 0;
  content: "";
  pointer-events: none;
  background: linear-gradient(90deg, var(--cream) 0%, var(--cream) 36%, rgba(250, 248, 239, .92) 45%, rgba(250, 248, 239, .3) 58%, transparent 68%);
}
.flight-page__heading h1,
.flight-state h1 {
  margin: 0;
  color: var(--ink);
  font-size: clamp(36px, 4.2vw, 52px);
  font-weight: 800;
  line-height: 1.06;
  letter-spacing: -.035em;
  text-wrap: balance;
}
.flight-page__heading p,
.flight-state p {
  max-width: 52ch;
  margin: 11px 0 0;
  color: #46566a;
  font-size: 16px;
  line-height: 1.55;
}
.flight-overview-heading__copy,
.flight-country-heading__copy {
  position: relative;
  z-index: 2;
  grid-column: 1;
  grid-row: 1;
  align-self: center;
  padding: 28px 12px 28px 32px;
}
.flight-overview-heading__image,
.flight-country-heading__image {
  z-index: 0;
  grid-column: 2;
  grid-row: 1;
  min-width: 0;
  height: 100%;
  min-height: 0;
  overflow: hidden;
  background: var(--ice);
}
.flight-overview-heading__image img,
.flight-country-heading__image img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: cover;
  object-position: center;
}
.flight-overview-heading__image img { object-position: center 51%; }
.flight-country-heading__image img { object-position: center; }
.flight-country-grid { margin: 0; padding: 0; list-style: none; }
.flight-country-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 13px;
}
.flight-country-grid > li { min-width: 0; }
.catalog-card {
  position: relative;
  display: block;
  min-width: 0;
  overflow: hidden;
  aspect-ratio: 1.48;
  border: 1px solid #dfe6e8;
  border-radius: 11px;
  color: #fff;
  text-decoration: none;
  background: var(--ice);
  -webkit-tap-highlight-color: transparent;
}
.catalog-card--offer,
.catalog-card--price-drop { aspect-ratio: 1.28; }
.catalog-card--hotel { aspect-ratio: 1.14; }
.catalog-card .catalog-card__image {
  position: absolute;
  inset: 0;
  display: block;
  overflow: hidden;
}
.catalog-card__image::after {
  position: absolute;
  inset: 0;
  content: "";
  background: linear-gradient(180deg,
    rgba(8, 22, 37, 0) 20%,
    rgba(8, 22, 37, .02) 38%,
    rgba(8, 22, 37, .08) 55%,
    rgba(8, 22, 37, .24) 75%,
    rgba(8, 22, 37, .5) 100%);
  pointer-events: none;
}
.catalog-card__overlay {
  position: absolute;
  z-index: 2;
  inset: 0;
  display: block;
  border-radius: inherit;
  background: transparent;
  text-decoration: none;
}
.catalog-card__overlay:focus-visible {
  z-index: 4;
  outline: 3px solid var(--blue);
  outline-offset: -4px;
}
.catalog-card--separate-link .catalog-card__image {
  z-index: auto;
  pointer-events: none;
}
.catalog-card--separate-link .catalog-card__body,
.catalog-card--offer .catalog-card__body,
.catalog-card--price-drop .catalog-card__body,
.catalog-card--hotel .catalog-card__body { z-index: 3; pointer-events: none; }
.catalog-card__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .45s cubic-bezier(.16, 1, .3, 1);
}
[data-product-media] { position: relative; }
.catalog-card__body {
  position: absolute;
  z-index: 1;
  right: 0;
  bottom: 0;
  left: 0;
  display: grid;
  gap: 5px;
  padding: 14px 15px 13px;
}
.catalog-card__body > strong {
  min-width: 0;
  color: #fff;
  font-size: 18px;
  font-weight: 800;
  line-height: 1.22;
  letter-spacing: -.02em;
  text-shadow: 0 1px 8px rgba(6, 18, 31, .22);
  overflow-wrap: anywhere;
}
.catalog-card__eyebrow {
  min-width: 0;
  color: rgba(255, 255, 255, .88);
  font-size: 9px;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: .055em;
  text-transform: uppercase;
  text-shadow: 0 1px 6px rgba(6, 18, 31, .36);
  overflow-wrap: anywhere;
}
.catalog-card__description {
  display: -webkit-box;
  overflow: hidden;
  color: rgba(255, 255, 255, .92);
  font-size: 10px;
  font-weight: 550;
  line-height: 1.3;
  text-shadow: 0 1px 6px rgba(6, 18, 31, .38);
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.catalog-card__stars {
  display: flex;
  align-items: center;
  gap: 6px;
  color: #ffd65a;
  font-size: 10px;
  line-height: 1;
  letter-spacing: .04em;
}
.catalog-card__stars small { color: rgba(255, 255, 255, .88); font-size: 9px; letter-spacing: 0; }
.catalog-card__price {
  display: flex;
  align-items: baseline;
  gap: 5px;
  margin: 0;
  color: #fff;
  font-size: 11px;
  line-height: 1.2;
}
.catalog-card__price > strong,
.catalog-card__price b {
  color: var(--yellow);
  font-size: 19px;
  font-weight: 800;
  line-height: 1.05;
  font-variant-numeric: tabular-nums;
}
.catalog-card__price-prefix,
.catalog-card__price-suffix { color: rgba(255, 255, 255, .9); font-size: 10px; font-weight: 650; }
.catalog-card__price del { color: rgba(255, 255, 255, .72); font-size: 10px; font-weight: 650; }
.catalog-card__price .catalog-card__price-missing { color: #fff; font-size: 13px; }
.catalog-card__duration {
  color: rgba(255, 255, 255, .9);
  font-size: 11px;
  font-weight: 650;
  line-height: 1.2;
}
.catalog-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 3px 9px;
  color: rgba(255, 255, 255, .9);
  font-size: 11px;
  font-weight: 650;
  line-height: 1.3;
  text-shadow: 0 1px 6px rgba(6, 18, 31, .35);
}
.catalog-card__meta > span + span { position: relative; }
.catalog-card__meta > span + span::before {
  position: absolute;
  top: .65em;
  left: -6px;
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: currentColor;
  content: "";
}
.catalog-card__empty {
  max-width: 180px;
  color: #fff;
  font-size: 11px;
  line-height: 1.4;
}
.catalog-card__action {
  position: relative;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  width: fit-content;
  max-width: 100%;
  min-height: 34px;
  padding: 7px 10px;
  border: 0;
  border-radius: 6px;
  color: #1b2b3d;
  background: var(--yellow);
  font-size: 10px;
  font-weight: 850;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  pointer-events: auto;
  transition: background-color .15s ease, transform .15s ease;
}
.catalog-card__action:hover { background: #edb900; }
.catalog-card__action:active { transform: scale(.98); }
.catalog-card__action:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.catalog-card__action span { font-size: 14px; line-height: 1; }
.catalog-card--offer .catalog-card__title,
.catalog-card--price-drop .catalog-card__title { font-size: 16px; }
.catalog-card--hotel .catalog-card__body { gap: 4px; }
.catalog-card--hotel .catalog-card__title { font-size: 15px; }
.catalog-card--hotel .catalog-card__meta { font-size: 10px; }
.catalog-card--hotel .catalog-card__action { margin-top: 2px; }
.catalog-card:hover { border-color: #a9cbd5; }
.catalog-card.catalog-card--no-image,
.catalog-card.product-card--no-image { background: #183d5a; }
.catalog-card--no-image .catalog-card__body { position: relative; min-height: 100%; align-content: end; }
.catalog-card:hover .catalog-card__image img { transform: scale(1.045); }
.catalog-card:active { transform: scale(.99); }
@media (max-width: 700px) {
  .catalog-card-grid:not(.catalog-card-grid--hotels) .catalog-card { aspect-ratio: 1.16; }
  .catalog-card-grid:not(.catalog-card-grid--hotels) .catalog-card__body { gap: 3px; padding: 8px 9px; }
  .catalog-card-grid:not(.catalog-card-grid--hotels) .catalog-card__body > strong {
    display: -webkit-box;
    overflow: hidden;
    font-size: 12px;
    line-height: 1.15;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }
  .catalog-card-grid:not(.catalog-card-grid--hotels) .catalog-card__description { -webkit-line-clamp: 1; }
  .catalog-card-grid:not(.catalog-card-grid--hotels) .catalog-card__price { gap: 4px; font-size: 9px; }
  .catalog-card-grid:not(.catalog-card-grid--hotels) .catalog-card__price > strong { font-size: 15px; }
  .catalog-card-grid:not(.catalog-card-grid--hotels) .catalog-card__price-prefix,
  .catalog-card-grid:not(.catalog-card-grid--hotels) .catalog-card__price-suffix,
  .catalog-card-grid:not(.catalog-card-grid--hotels) .catalog-card__price del { font-size: 9px; }
  .catalog-card-grid:not(.catalog-card-grid--hotels) .catalog-card__meta,
  .catalog-card-grid:not(.catalog-card-grid--hotels) .catalog-card__duration { font-size: 9px; }
  .catalog-card-grid:not(.catalog-card-grid--hotels) .catalog-card__action { min-height: 30px; padding: 6px 8px; font-size: 9px; }
}
.catalog-card:focus-visible,
.flight-breadcrumbs a:focus-visible,
.flight-state__link:focus-visible,
.flight-country-heading__cta:focus-visible,
.flight-alternatives a:focus-visible {
  outline: 2px solid var(--blue);
  outline-offset: 3px;
}
.catalog-card-grid [data-offer-card][hidden] { display: none !important; }
/* Missing photo: branded tile with a visible picture glyph instead of a washed-out illustration */
.catalog-card__image:has(img[src*="photo-unavailable"]),
.catalog-card--no-image .catalog-card__media {
  background:
    radial-gradient(90% 70% at 88% 6%, rgba(248, 196, 11, .22), rgba(248, 196, 11, 0) 60%),
    linear-gradient(155deg, #2f7a98 0%, #1b5572 55%, #143f57 100%);
}
.catalog-card__image img[src*="photo-unavailable"] { opacity: 0; }
.catalog-card__image:has(img[src*="photo-unavailable"])::before,
.catalog-card--no-image .catalog-card__media::before {
  position: absolute;
  top: 36%;
  left: 50%;
  width: 46px;
  height: 46px;
  content: "";
  background: rgba(255, 255, 255, .55);
  transform: translate(-50%, -50%);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='9' width='38' height='30' rx='6'/%3E%3Ccircle cx='32' cy='18.5' r='3.5'/%3E%3Cpath d='M6 34l11-10.5 8.5 8 5-4.5L42 37'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='9' width='38' height='30' rx='6'/%3E%3Ccircle cx='32' cy='18.5' r='3.5'/%3E%3Cpath d='M6 34l11-10.5 8.5 8 5-4.5L42 37'/%3E%3C/svg%3E") center / contain no-repeat;
  pointer-events: none;
}

/* Product cards: title on the photo, price + a compact yellow action on a white strip.
   One small accent per card keeps the grid lively without eight big yellow blocks. */
.catalog-card.catalog-card--split {
  display: flex;
  flex-direction: column;
  height: 100%;
  aspect-ratio: auto;
  border-color: #e3e9ec;
  border-radius: 12px;
  color: var(--ink);
  background: #fff;
  box-shadow: 0 1px 2px rgba(13, 26, 45, .05), 0 6px 18px -10px rgba(13, 26, 45, .18);
  transition: transform .22s cubic-bezier(.23, 1, .32, 1), box-shadow .22s ease, border-color .22s ease;
}
.catalog-card--split:active { transform: none; }
.catalog-card__media {
  position: relative;
  display: block;
  flex: 0 0 auto;
  overflow: hidden;
  aspect-ratio: 16 / 10;
  background: #183d5a;
}
.catalog-card--hotel .catalog-card__media { aspect-ratio: 4 / 3; }
.catalog-card--split .catalog-card__image::after {
  background: linear-gradient(180deg,
    rgba(8, 22, 37, 0) 38%,
    rgba(8, 22, 37, .04) 54%,
    rgba(8, 22, 37, .2) 74%,
    rgba(8, 22, 37, .5) 100%);
}
.catalog-card__chip {
  position: absolute;
  z-index: 1;
  top: 10px;
  left: 10px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  max-width: calc(100% - 20px);
  padding: 5px 9px 5px 8px;
  border-radius: 999px;
  color: var(--ink);
  background: rgba(255, 255, 255, .92);
  box-shadow: 0 2px 8px rgba(8, 22, 37, .16);
  font-size: 11px;
  font-weight: 750;
  line-height: 1.1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  pointer-events: none;
}
.catalog-card__chip::before {
  flex: 0 0 auto;
  width: 11px;
  height: 11px;
  content: "";
  background: var(--blue);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9.5'/%3E%3Cpath d='M12 7v5l3.5 2'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9.5'/%3E%3Cpath d='M12 7v5l3.5 2'/%3E%3C/svg%3E") center / contain no-repeat;
}
.catalog-card__head {
  position: absolute;
  z-index: 1;
  right: 0;
  bottom: 0;
  left: 0;
  display: grid;
  gap: 3px;
  padding: 12px 14px;
  pointer-events: none;
}
.catalog-card__head .catalog-card__title {
  min-width: 0;
  color: #fff;
  font-size: 17px;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: -.02em;
  text-shadow: 0 1px 2px rgba(0, 0, 0, .4);
  overflow-wrap: anywhere;
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.catalog-card__head .catalog-card__eyebrow {
  color: var(--yellow);
  font-size: 10px;
  letter-spacing: .08em;
  text-shadow: 0 1px 2px rgba(0, 0, 0, .6), 0 0 8px rgba(0, 0, 0, .35);
}
.catalog-card__head .catalog-card__stars { font-size: 12px; }
.catalog-card__head .catalog-card__stars small { display: none; }
.catalog-card.catalog-card--split .catalog-card__body {
  position: relative;
  z-index: 3;
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 6px;
  min-height: 0;
  padding: 11px 12px 12px 14px;
  pointer-events: none;
  container-type: inline-size;
}
.catalog-card--split .catalog-card__description,
.catalog-card--split .catalog-card__meta {
  color: var(--body);
  font-size: 12px;
  font-weight: 550;
  text-shadow: none;
}
.catalog-card--split .catalog-card__description { -webkit-line-clamp: 1; }
.catalog-card__offer {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  margin-top: auto;
  padding-top: 2px;
}
.catalog-card--split .catalog-card__price { flex-wrap: wrap; gap: 0 5px; color: var(--ink); font-size: 12px; }
.catalog-card--split .catalog-card__price > strong { color: var(--ink); font-size: 22px; font-weight: 800; letter-spacing: -.02em; }
.catalog-card--split .catalog-card__price-prefix,
.catalog-card--split .catalog-card__price-suffix,
.catalog-card--split .catalog-card__price del { color: var(--muted); font-size: 12px; font-weight: 550; }
.catalog-card--split .catalog-card__price .catalog-card__price-missing { color: var(--ink); font-size: 14px; }
.catalog-card--split .catalog-card__action {
  gap: 6px;
  min-height: 38px;
  padding: 8px 12px 8px 14px;
  border-radius: 999px;
  color: #5a4300;
  background: #fdf1c4;
  font-size: 12px;
  font-weight: 800;
  transition: background-color .15s ease, color .15s ease, transform .16s ease-out;
}
.catalog-card--split .catalog-card__action-label { font-size: inherit; line-height: inherit; }
.catalog-card--split .catalog-card__action > span[aria-hidden] { transition: transform .2s cubic-bezier(.23, 1, .32, 1); }
.catalog-card--split .catalog-card__action:active { transform: scale(.97); }
.catalog-card--split .catalog-card__action:focus-visible { outline-color: var(--blue); }
@media (hover: hover) and (pointer: fine) {
  .catalog-card.catalog-card--split:hover {
    border-color: #d3dfe4;
    box-shadow: 0 2px 4px rgba(13, 26, 45, .05), 0 16px 32px -12px rgba(13, 26, 45, .28);
    transform: translateY(-3px);
  }
  .catalog-card--split:hover .catalog-card__image img { transform: scale(1.04); }
  /* Soft yellow at rest; the full brand yellow only answers the pointer */
  .catalog-card--split:hover .catalog-card__action { color: #1b2b3d; background: var(--yellow); }
  .catalog-card--split .catalog-card__action:hover { background: #edb900; }
  .catalog-card--split:hover .catalog-card__action > span[aria-hidden] { transform: translateX(3px); }
}
/* Narrow cards: keep price and action on one line, action collapses to a round arrow */
@container (max-width: 250px) {
  .catalog-card--split .catalog-card__action { width: 38px; padding: 0; }
  .catalog-card--split .catalog-card__action-label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
  }
  .catalog-card--split .catalog-card__action > span[aria-hidden] { font-size: 16px; }
}
@media (max-width: 700px) {
  .catalog-card-grid .catalog-card.catalog-card--split { aspect-ratio: auto; }
  .catalog-card-grid .catalog-card--split .catalog-card__head { gap: 2px; padding: 9px 10px; }
  .catalog-card-grid .catalog-card--split .catalog-card__title { font-size: 14px; }
  .catalog-card-grid .catalog-card--split .catalog-card__chip { top: 8px; left: 8px; padding: 4px 8px 4px 7px; font-size: 10px; }
  .catalog-card-grid .catalog-card.catalog-card--split .catalog-card__body { gap: 5px; padding: 9px 9px 10px 10px; }
  .catalog-card-grid .catalog-card--split .catalog-card__description,
  .catalog-card-grid .catalog-card--split .catalog-card__meta { font-size: 11px; }
  .catalog-card-grid .catalog-card--split .catalog-card__price > strong { font-size: 18px; }
  .catalog-card-grid .catalog-card--split .catalog-card__price-prefix,
  .catalog-card-grid .catalog-card--split .catalog-card__price-suffix,
  .catalog-card-grid .catalog-card--split .catalog-card__price del { font-size: 11px; }
  .catalog-card-grid .catalog-card--split .catalog-card__action { min-height: 40px; min-width: 40px; font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .catalog-card.catalog-card--split,
  .catalog-card--split .catalog-card__action > span[aria-hidden] { transition-duration: .01ms; }
  .catalog-card.catalog-card--split:hover { transform: none; }
}
.flight-breadcrumbs {
  margin: 0;
  color: #526276;
  font-size: 12px;
}
.flight-breadcrumbs ol {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.flight-breadcrumbs li + li::before { content: "/"; margin-right: 7px; color: #8391a0; }
.flight-breadcrumbs a {
  color: #165f79;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
.flight-breadcrumbs [aria-current="page"] { color: #33485e; font-weight: 700; }
.flight-page__heading--country { height: auto; min-height: 310px; margin-top: 14px; }
.flight-page__heading--country .flight-country-heading__copy {
  padding: 24px 24px 24px calc(max(35px, (100% - var(--content-width)) / 2) + 32px);
}
.flight-page__heading--country .flight-country-heading__image {
  position: absolute;
  inset: 0 0 0 auto;
  width: 100%;
}
.flight-country-heading__copy h1 { font-size: clamp(34px, 3.3vw, 42px); }
.flight-country-heading__transport-icon {
  display: inline-flex;
  width: .82em;
  height: .82em;
  margin-right: .12em;
  color: #12617d;
  vertical-align: -.08em;
}
.flight-country-heading__transport-icon .icon { width: 100%; height: 100%; }
.flight-country-heading__copy p { max-width: 44ch; }
.flight-country-facts {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px 0;
  margin: 12px 0 0;
  padding: 0;
  color: #3f566b;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
  list-style: none;
}
.flight-country-facts li { display: inline-flex; align-items: center; gap: 3px; white-space: nowrap; }
.flight-country-facts li + li::before {
  width: 1px;
  height: 13px;
  margin: 0 10px;
  background: #b7c1c7;
  content: "";
}
.flight-country-heading__cta {
  display: inline-flex;
  min-height: 39px;
  align-items: center;
  gap: 10px;
  margin-top: 13px;
  padding: 9px 13px;
  border-radius: 7px;
  background: var(--yellow);
  color: #1c2c3c;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.2;
  text-decoration: none;
  transition: background-color .18s ease, transform .18s cubic-bezier(.16, 1, .3, 1);
}
.flight-country-heading__cta:hover { background: #edb900; }
.flight-country-heading__cta:active { transform: scale(.98); }
.flight-country-heading__cta .icon { width: 15px; height: 15px; }
.flight-section-heading { margin: 0 0 13px; }
.flight-section-heading h2 {
  margin: 0;
  color: #142b45;
  font-size: 27px;
  font-weight: 800;
  line-height: 1.12;
  letter-spacing: -.035em;
}
.flight-date-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 8px 0 0;
  padding: 0;
  list-style: none;
}
.flight-date-list li {
  padding: 5px 7px;
  border: 1px solid #dce7ea;
  border-radius: 5px;
  background: #f7fafb;
  color: #31536b;
  font-size: 10px;
  font-weight: 750;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.flight-state {
  max-width: 720px;
  margin: 20px 0 0;
  padding: 25px;
  border-radius: 11px;
  background: var(--cream);
}
.flight-state h1,
.flight-state h2 {
  margin: 0;
  color: #142b45;
  font-size: 24px;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: -.025em;
  text-wrap: balance;
}
.flight-state__link {
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  justify-content: center;
  margin-top: 17px;
  padding: 9px 14px;
  border-radius: 7px;
  background: var(--yellow);
  color: #1c2c3c;
  font-size: 12px;
  font-weight: 800;
  text-decoration: none;
  transition: transform .18s cubic-bezier(.16, 1, .3, 1), background-color .18s ease;
}
.flight-state__link:hover { background: #edb900; }
.flight-state__link:active { transform: scale(.97); }
.flight-alternatives {
  margin-top: 31px;
  padding-top: 23px;
  border-top: 1px solid #e4e9ea;
}
.flight-alternatives__heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.flight-alternatives__heading > a {
  display: inline-flex;
  min-height: 36px;
  flex: 0 0 auto;
  align-items: center;
  gap: 7px;
  color: #12617d;
  font-size: 11px;
  font-weight: 800;
  text-decoration: none;
}
.flight-alternatives__heading > a:hover { text-decoration: underline; text-underline-offset: 3px; }
.flight-alternatives__heading > a .icon { width: 14px; height: 14px; }
.group-tours-overview .flight-page__heading { height: auto; min-height: 160px; grid-template-columns: minmax(0, 1fr); }
.group-tours-overview .flight-page__heading::after { display: none; }
.group-tours-overview.wrap { width: min(1160px, calc(100% - 40px)); }
.group-tours-overview__tabs { margin-top: 24px; }
.group-tours-overview__tablist { display: flex; gap: 8px; margin-bottom: 24px; border-bottom: 1px solid #dfe7e9; }
.group-tours-overview__tab { display: inline-flex; min-width: 0; min-height: 52px; align-items: center; justify-content: center; gap: 9px; padding: 12px 18px; border: 1px solid transparent; border-bottom: 3px solid transparent; border-radius: 10px 10px 0 0; color: #526575; background: transparent; font: inherit; font-size: 14px; font-weight: 750; line-height: 1.3; text-align: center; cursor: pointer; }
.group-tours-overview__tab:hover { color: #087ca5; background: #f6fafb; }
.group-tours-overview__tab[aria-selected="true"] { border-color: #dfe7e9; border-bottom-color: var(--yellow); color: #17334e; background: #fff; }
.group-tours-overview__tab:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; }
.group-tours-overview__tab-icon .icon { width: 18px; height: 18px; color: #087ca5; }
.group-tours-overview__tabpanel { min-width: 0; }
.group-tours-overview__tabpanel[hidden] { display: none; }
.group-tours-overview__empty { margin: 0; padding: 18px 20px; border: 1px solid #e3e8ea; border-radius: 14px; color: #596773; background: #f8fafb; }

@media (max-width: 1200px) {
  .flight-country-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .flight-page { padding-top: 19px; padding-bottom: 28px; }
  .flight-page--country { padding-top: 0; }
  .flight-country-stage { padding-top: 19px; }
  .group-tours-overview.wrap { width: min(1160px, calc(100% - 30px)); }
  .flight-page__heading {
    height: auto;
    min-height: 0;
    grid-template-columns: minmax(0, 1fr);
    margin: 13px 0 21px;
  }
  .group-tours-overview .flight-page__heading { min-height: 0; margin: 13px 0 21px; }
  .flight-page__heading::after { display: none; }
  .flight-overview-heading__copy,
  .flight-country-heading__copy {
    grid-column: 1;
    grid-row: 1;
    padding: 20px 18px 18px;
  }
  .flight-page__heading h1 { font-size: clamp(31px, 8vw, 40px); }
  .flight-country-heading__copy { padding: 17px 18px 16px; }
  .flight-page__heading--country .flight-country-heading__copy { padding: 17px 35px 16px; }
  .flight-country-heading__copy h1 { font-size: clamp(30px, 7.6vw, 38px); }
  .flight-page__heading p { margin-top: 8px; font-size: 14px; line-height: 1.5; }
  .flight-country-facts { gap: 6px 12px; margin-top: 10px; font-size: 11px; }
  .flight-country-facts li + li::before { display: none; }
  .flight-country-heading__cta { min-height: 37px; margin-top: 11px; }
  .flight-overview-heading__image,
  .flight-country-heading__image {
    position: relative;
    inset: auto;
    grid-column: 1;
    grid-row: 2;
    width: 100%;
    height: auto;
    min-height: 0;
    aspect-ratio: 2.15;
  }
  .flight-overview-heading__image img,
  .flight-country-heading__image img {
    min-height: 0;
  }
  .flight-page__heading--country .flight-country-heading__image { aspect-ratio: 2.55; }
  .flight-page__heading--country .flight-country-heading__image {
    position: relative;
    inset: auto;
    width: 100%;
    height: auto;
  }
  .flight-country-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .group-tours-overview__tabs { margin-top: 20px; }
  .group-tours-overview__tablist { gap: 5px; margin-bottom: 18px; }
  .group-tours-overview__tab { flex: 1 1 0; min-height: 56px; gap: 6px; padding: 10px 8px; font-size: 12px; }
  .group-tours-overview__tab-icon .icon { width: 16px; height: 16px; }
  .flight-country-grid .catalog-card { aspect-ratio: 1.22; }
  .catalog-card__body { gap: 4px; padding: 11px 11px 10px; }
  .catalog-card__body > strong { font-size: 14px; }
  .catalog-card__price { font-size: 10px; }
  .catalog-card__price b { font-size: 14px; }
  .catalog-card__duration { font-size: 10px; }
  .catalog-card__empty { font-size: 10px; }
  .flight-section-heading { margin-bottom: 10px; }
  .flight-section-heading h2 { font-size: 23px; }
  .flight-alternatives { margin-top: 26px; padding-top: 20px; }
  .flight-alternatives__heading { align-items: flex-start; flex-direction: column; gap: 5px; }
  .flight-alternatives__heading > a { min-height: 30px; }
  .flight-state { padding: 20px 16px; }
  .flight-state h1,
  .flight-state h2 { font-size: 22px; }
}
@media (max-width: 520px) {
  .flight-country-grid .catalog-card { aspect-ratio: 1.16; }
}
@media (max-width: 380px) {
  .flight-country-grid { grid-template-columns: minmax(0, 1fr); }
  .flight-country-grid .catalog-card { aspect-ratio: 1.85; }
  .flight-country-grid .catalog-card__body { grid-template-columns: minmax(0, 1fr) auto; align-items: end; }
  .catalog-card__price { gap: 4px; white-space: nowrap; }
}
@media (prefers-reduced-motion: reduce) {
  .catalog-card__image img,
  .flight-state__link { transition-duration: .01ms; }
}

.flight-detail-page { padding-top: 18px; padding-bottom: 64px; }
.flight-detail-heading { margin: 17px 0 25px; }
.flight-detail-eyebrow {
  margin: 0 0 7px;
  color: var(--blue);
  font-size: 11px;
  font-weight: 800;
  line-height: 1.3;
  letter-spacing: .055em;
  text-transform: uppercase;
}
.flight-detail-heading h1 {
  max-width: 960px;
  margin: 0;
  color: var(--ink);
  font-size: clamp(34px, 4vw, 53px);
  line-height: 1.08;
  letter-spacing: -.055em;
}
.flight-detail-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(310px, .48fr);
  align-items: start;
  gap: 25px;
}
.flight-detail-sidebar { grid-column: 2; grid-row: 1; min-width: 0; }
.flight-detail-main { grid-column: 1; grid-row: 1; min-width: 0; }
.flight-detail-info-card,
.flight-detail-description,
.flight-detail-extras {
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 4px 16px rgba(13, 26, 45, .045);
}
.flight-detail-info-card { position: sticky; top: 20px; padding: 22px; }
.flight-detail-info-card > h2 {
  margin: 0 0 17px;
  font-size: 19px;
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: -.035em;
}
.flight-detail-facts { margin: 0; }
.flight-detail-facts > div { padding: 12px 0; border-top: 1px solid #edf0f0; }
.flight-detail-facts dt,
.flight-detail-dates h3,
.flight-detail-included h3 {
  margin: 0 0 5px;
  color: #647589;
  font-size: 10px;
  font-weight: 800;
  line-height: 1.3;
  letter-spacing: .055em;
  text-transform: uppercase;
}
.flight-detail-facts dd { margin: 0; color: var(--ink); font-size: 20px; font-weight: 800; letter-spacing: -.04em; }
.flight-detail-dates,
.flight-detail-included { padding-top: 13px; border-top: 1px solid #edf0f0; }
.flight-detail-dates h3,
.flight-detail-included h3 { margin-bottom: 9px; }
.flight-detail-page .flight-date-list { margin: 0; }
.flight-detail-page .flight-date-list li { min-width: 94px; }
.flight-detail-all-dates { margin-top: 10px; }
.flight-detail-all-dates summary {
  width: fit-content;
  padding: 4px 0;
  color: #166c88;
  font-size: 11px;
  font-weight: 800;
  cursor: pointer;
  text-underline-offset: 3px;
}
.flight-detail-all-dates summary:hover { text-decoration: underline; }
.flight-detail-all-dates summary:focus-visible,
.flight-detail-page a:focus-visible {
  outline: 2px solid var(--blue);
  outline-offset: 3px;
  border-radius: 3px;
}
.flight-detail-all-dates summary span { margin-left: 4px; color: #617487; font-weight: 650; }
.flight-detail-all-dates ul { display: flex; flex-wrap: wrap; gap: 7px; margin: 9px 0 0; padding: 0; list-style: none; }
.flight-detail-all-dates li { padding: 6px 9px; border: 1px solid #e2e9eb; border-radius: 6px; background: #f7fafb; color: #45576b; font-size: 11px; font-weight: 700; }
.flight-detail-no-dates { margin: 0; color: #536579; font-size: 12px; line-height: 1.55; }
.flight-detail-included { margin-top: 15px; }
.flight-detail-included ul,
.flight-detail-extras ul { display: grid; gap: 8px; margin: 0; padding-left: 18px; color: #40536a; font-size: 12px; line-height: 1.45; }
.flight-detail-primary-action {
  width: 100%;
  min-height: 47px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 20px;
  padding: 11px 14px;
  border: 0;
  border-radius: 8px;
  background: var(--yellow);
  color: #1b2b3d;
  font-size: 13px;
  font-weight: 850;
  line-height: 1.3;
  text-align: center;
  text-decoration: none;
  transition: background-color .16s ease, transform .16s ease;
}
.flight-detail-primary-action:hover { background: #edb900; }
.flight-detail-primary-action:active { transform: scale(.99); }
.flight-detail-info-note { margin: 10px 0 0; color: #718093; font-size: 10px; line-height: 1.45; text-align: center; }
.flight-detail-image { overflow: hidden; margin: 0 0 18px; border: 1px solid var(--line); border-radius: 12px; background: var(--ice); aspect-ratio: 16 / 8.3; }
.flight-detail-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.flight-detail-description,
.flight-detail-extras { padding: 23px 25px; }
.flight-detail-description h2,
.flight-detail-extras h2 {
  margin: 0 0 15px;
  color: var(--ink);
  font-size: 21px;
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: -.035em;
}
.flight-rich-content { color: #43556a; font-size: 13px; line-height: 1.72; overflow-wrap: anywhere; }
.flight-rich-content > :first-child { margin-top: 0; }
.flight-rich-content > :last-child { margin-bottom: 0; }
.flight-rich-content p { margin: 0 0 12px; }
.flight-rich-content h2,
.flight-rich-content h3,
.flight-rich-content h4 { margin: 22px 0 8px; color: #253c54; font-size: 16px; line-height: 1.35; }
.flight-rich-content strong,
.flight-rich-content b { color: #293e54; font-weight: 800; }
.flight-rich-content ul,
.flight-rich-content ol { display: grid; gap: 6px; margin: 9px 0 15px; padding-left: 22px; }
.flight-rich-content li { padding-left: 2px; }
.flight-rich-content a { color: #087da3; text-decoration: underline; text-underline-offset: 3px; }
.flight-detail-extras { margin-top: 17px; background: var(--cream); }
.flight-detail-contact {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-top: 24px;
  padding: 24px 27px;
  border: 1px solid #dbe8eb;
  border-radius: 12px;
  background: var(--ice);
  scroll-margin-top: 20px;
}
.flight-detail-contact > div:first-child { min-width: 0; }
.flight-detail-contact .flight-detail-eyebrow { margin-bottom: 5px; }
.flight-detail-contact h2 { margin: 0; color: var(--ink); font-size: 22px; line-height: 1.25; letter-spacing: -.04em; }
.flight-detail-contact p:not(.flight-detail-eyebrow) { margin: 6px 0 0; color: #56697d; font-size: 12px; line-height: 1.5; }
.flight-detail-contact__actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; justify-content: flex-end; gap: 9px; }
.flight-detail-contact__actions a {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 9px 13px;
  border: 1px solid #d9e3e6;
  border-radius: 7px;
  background: #fff;
  color: #244057;
  font-size: 11px;
  font-weight: 800;
  text-decoration: none;
}
.flight-detail-contact__actions a:first-child { border-color: var(--yellow); background: var(--yellow); color: #1b2b3d; }
.flight-detail-contact__actions a:hover { border-color: #a9cbd5; background: #f8fbfc; }
.flight-detail-contact__actions a:first-child:hover { border-color: #edb900; background: #edb900; }
.flight-detail-contact__actions .icon { width: 15px; height: 15px; }
.flight-detail-contact:target { box-shadow: 0 0 0 3px rgba(8, 125, 163, .13); }

@media (max-width: 920px) {
  .flight-detail-layout { grid-template-columns: minmax(0, 1fr) minmax(280px, .7fr); gap: 17px; }
  .flight-detail-info-card { padding: 19px; }
  .flight-detail-description,
  .flight-detail-extras { padding: 20px; }
  .flight-detail-contact { align-items: flex-start; flex-direction: column; }
  .flight-detail-contact__actions { justify-content: flex-start; }
}
@media (max-width: 700px) {
  .flight-detail-page { padding-top: 16px; padding-bottom: 38px; }
  .flight-detail-heading { margin: 14px 0 18px; }
  .flight-detail-heading h1 { font-size: clamp(30px, 8vw, 39px); line-height: 1.12; }
  .flight-detail-layout { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .flight-detail-sidebar { grid-column: 1; grid-row: 1; }
  .flight-detail-main { grid-column: 1; grid-row: 2; }
  .flight-detail-info-card { position: static; padding: 18px; }
  .flight-detail-image { aspect-ratio: 16 / 9; margin-bottom: 13px; }
  .flight-detail-description,
  .flight-detail-extras { padding: 18px; }
  .flight-detail-description h2,
  .flight-detail-extras h2 { margin-bottom: 11px; font-size: 19px; }
  .flight-rich-content { font-size: 12px; line-height: 1.68; }
  .flight-detail-contact { gap: 16px; margin-top: 16px; padding: 19px; }
  .flight-detail-contact h2 { font-size: 20px; }
  .flight-detail-contact__actions { width: 100%; }
  .flight-detail-contact__actions a { flex: 1 1 100%; }
}
@media (max-width: 380px) {
  .flight-detail-info-card { padding: 15px; }
  .flight-detail-description,
  .flight-detail-extras { padding: 15px; }
  .flight-detail-contact { padding: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .flight-detail-primary-action { transition-duration: .01ms; }
}

/* Group tour detail pages */
.group-tour-detail { padding-top: 20px; padding-bottom: 58px; }
.group-tour-heading { margin: 22px 0 24px; }
.group-tour-heading--has-image { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, .88fr); align-items: center; gap: clamp(22px, 4vw, 52px); }
.group-tour-heading__copy { min-width: 0; }
.group-tour-heading h1 {
  max-width: 960px;
  margin: 0;
  color: var(--ink);
  font-size: clamp(34px, 4vw, 53px);
  line-height: 1.08;
  letter-spacing: -.055em;
}
.group-tour-heading__copy > p:last-child { max-width: 720px; margin: 10px 0 0; color: #52657a; font-size: 15px; line-height: 1.55; }
.group-tour-eyebrow { margin: 0 0 8px; color: #087da3; font-size: 10px; font-weight: 850; line-height: 1.4; letter-spacing: .09em; text-transform: uppercase; }
.group-tour-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, .43fr); align-items: start; gap: 24px; }
.group-tour-main,
.group-tour-sidebar { min-width: 0; }
.group-tour-main { grid-column: 1; grid-row: 1; display: grid; gap: 16px; align-content: start; }
.group-tour-sidebar { grid-column: 2; grid-row: 1; }
.group-tour-image { position: relative; overflow: hidden; margin: 0; border: 1px solid var(--line); border-radius: 12px; background: var(--ice); aspect-ratio: 16 / 8.3; }
.group-tour-image [data-product-media] { display: block; width: 100%; height: 100%; }
.group-tour-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.group-tour-panel,
.group-tour-booking-card,
.group-tour-important {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 4px 16px rgba(13, 26, 45, .045);
}
.group-tour-panel { padding: 23px 25px; }
.group-tour-panel h2,
.group-tour-important h2 { margin: 0 0 13px; color: var(--ink); font-size: 21px; font-weight: 800; line-height: 1.25; letter-spacing: -.035em; }
.group-tour-overview p,
.group-tour-day-copy > p { margin: 0 0 11px; color: #43556a; font-size: 13px; line-height: 1.72; overflow-wrap: anywhere; }
.group-tour-overview p:last-child,
.group-tour-day-copy > p:last-child { margin-bottom: 0; }
.group-tour-section-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.group-tour-section-heading .group-tour-eyebrow { margin-bottom: 4px; }
.group-tour-section-heading h2 { margin-bottom: 0; }
.group-tour-section-mark { color: #e4edef; font-size: 39px; font-weight: 850; line-height: 1; letter-spacing: -.08em; }
.group-tour-day-list { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.group-tour-day { display: grid; grid-template-columns: 37px minmax(0, 1fr); gap: 14px; padding: 17px 0; border-top: 1px solid #e9eef0; }
.group-tour-day:first-child { padding-top: 5px; border-top: 0; }
.group-tour-day:last-child { padding-bottom: 0; }
.group-tour-day-number { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 50%; background: #eaf4f6; color: #166c88; font-size: 11px; font-weight: 850; }
.group-tour-day-copy h3 { margin: 2px 0 7px; color: #263e55; font-size: 15px; font-weight: 800; line-height: 1.4; letter-spacing: -.02em; }
.group-tour-day-copy > p { margin-bottom: 7px; }
.group-tour-day-copy .group-tour-overnight { color: #697a8e; font-size: 11px; font-style: italic; }
.group-tour-day-copy .flight-rich-content { color: #43556a; font-size: 13px; line-height: 1.72; overflow-wrap: anywhere; }
.group-tour-day-copy .flight-rich-content > :last-child { margin-bottom: 0; }
.group-tour-day-copy .flight-rich-content p { margin-bottom: 7px; }
.group-tour-program-fallback { color: #43556a; overflow-wrap: anywhere; }
.group-tour-empty-program,
.group-tour-no-dates { margin: 0; color: #536579; font-size: 12px; line-height: 1.55; }
.group-tour-list-supplement { margin-top: 10px !important; }
.group-tour-all-dates { margin-top: 9px; }
.group-tour-all-dates summary { width: fit-content; padding: 4px 0; color: #166c88; font-size: 11px; font-weight: 800; cursor: pointer; text-underline-offset: 3px; }
.group-tour-all-dates summary:hover { text-decoration: underline; }
.group-tour-all-dates summary:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; border-radius: 3px; }
.group-tour-all-dates summary span { margin-left: 4px; color: #617487; font-weight: 650; }
.group-tour-all-dates ul { margin-top: 8px; }
.group-tour-list-panel h2 { margin-bottom: 13px; }
.group-tour-check-list,
.group-tour-list-panel > ul,
.group-tour-important ul { display: grid; gap: 9px; margin: 0; padding-left: 20px; color: #43556a; font-size: 13px; line-height: 1.55; overflow-wrap: anywhere; }
.group-tour-check-list { list-style: none; padding-left: 0; }
.group-tour-check-list li { position: relative; padding-left: 25px; }
.group-tour-check-list li::before { position: absolute; top: .1em; left: 0; display: grid; width: 17px; height: 17px; place-items: center; border-radius: 50%; background: #e7f3ee; color: #287750; content: '✓'; font-size: 11px; font-weight: 900; }
.group-tour-extras { background: #fffdfa; }
.group-tour-important { padding: 22px 25px; border-color: #eadfae; background: #fff9e8; box-shadow: none; }
.group-tour-important h2 { font-size: 17px; }
.group-tour-important ul { color: #5b5646; font-size: 12px; }
.group-tour-booking-card { position: sticky; top: 20px; padding: 22px; }
.group-tour-booking-card > h2 { margin: 0 0 16px; color: var(--ink); font-size: 19px; font-weight: 800; line-height: 1.25; letter-spacing: -.035em; }
.group-tour-facts { margin: 0; }
.group-tour-facts > div { padding: 13px 0; border-top: 1px solid #edf0f0; }
.group-tour-facts dt,
.group-tour-dates h3 { margin: 0 0 6px; color: #647589; font-size: 10px; font-weight: 800; line-height: 1.3; letter-spacing: .055em; text-transform: uppercase; }
.group-tour-facts dd { margin: 0; color: var(--ink); font-size: 20px; font-weight: 850; line-height: 1.3; letter-spacing: -.04em; }
.group-tour-facts dd small { color: #6a7b8d; font-size: 11px; font-weight: 650; letter-spacing: 0; }
.group-tour-dates { padding: 14px 0 13px; border-top: 1px solid #edf0f0; }
.group-tour-dates h3 { margin-bottom: 9px; }
.group-tour-dates ul { display: flex; flex-wrap: wrap; gap: 7px; margin: 0; padding: 0; list-style: none; }
.group-tour-dates li { padding: 7px 9px; border: 1px solid #e2e9eb; border-radius: 6px; background: #f7fafb; color: #45576b; font-size: 11px; font-weight: 700; }
.group-tour-included-brief { display: grid; gap: 10px; margin: 0; padding: 14px 0 0; border-top: 1px solid #edf0f0; list-style: none; }
.group-tour-included-brief li { display: flex; align-items: center; gap: 9px; color: #43556a; font-size: 12px; line-height: 1.4; }
.group-tour-included-brief .icon { flex: 0 0 auto; width: 16px; height: 16px; color: #087da3; }
.group-tour-cta { width: 100%; min-height: 48px; display: flex; align-items: center; justify-content: center; gap: 9px; margin-top: 20px; padding: 12px 15px; border-radius: 8px; background: var(--yellow); color: #1b2b3d; font-size: 13px; font-weight: 850; line-height: 1.3; text-align: center; text-decoration: none; transition: background-color .16s ease, transform .16s ease; }
.group-tour-cta:hover { background: #edb900; }
.group-tour-cta:active { transform: scale(.99); }
.group-tour-cta .icon { width: 16px; height: 16px; }
.group-tour-price-note { margin: 11px 0 0; color: #718093; font-size: 10px; line-height: 1.5; text-align: center; }
.group-tour-detail a:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; border-radius: 3px; }

@media (max-width: 920px) {
  .group-tour-layout { grid-template-columns: minmax(0, 1fr) minmax(280px, .7fr); gap: 17px; }
  .group-tour-panel { padding: 20px; }
  .group-tour-booking-card,
  .group-tour-important { padding: 19px; }
}
@media (max-width: 700px) {
  .group-tour-detail { padding-top: 16px; padding-bottom: 38px; }
  .group-tour-heading { margin: 14px 0 18px; }
  .site-route-program-hero--has-image,
  .group-tour-heading--has-image { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .group-tour-heading h1 { font-size: clamp(30px, 8vw, 39px); line-height: 1.12; }
  .group-tour-heading__copy > p:last-child { font-size: 13px; }
  .group-tour-layout { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .group-tour-sidebar { grid-column: 1; grid-row: 1; }
  .group-tour-main { grid-column: 1; grid-row: 2; }
  .group-tour-booking-card { position: static; padding: 18px; }
  .group-tour-image { aspect-ratio: 16 / 9; }
  .site-route-program-hero__media { aspect-ratio: 16 / 9; }
  .group-tour-main { gap: 13px; }
  .group-tour-panel { padding: 18px; }
  .group-tour-panel h2,
  .group-tour-important h2 { margin-bottom: 11px; font-size: 19px; }
  .group-tour-overview p,
  .group-tour-day-copy > p { font-size: 12px; line-height: 1.68; }
  .group-tour-day-copy .flight-rich-content { font-size: 12px; line-height: 1.68; }
  .group-tour-day { grid-template-columns: 32px minmax(0, 1fr); gap: 10px; padding: 15px 0; }
  .group-tour-day-number { width: 30px; height: 30px; }
  .group-tour-day-copy h3 { font-size: 14px; }
  .group-tour-check-list,
  .group-tour-list-panel > ul,
  .group-tour-important ul { font-size: 12px; }
  .group-tour-important { padding: 18px; }
}
@media (max-width: 380px) {
  .group-tour-panel,
  .group-tour-booking-card,
  .group-tour-important { padding: 15px; }
  .group-tour-day { grid-template-columns: 28px minmax(0, 1fr); gap: 9px; }
  .group-tour-day-number { width: 27px; height: 27px; font-size: 10px; }
  .group-tour-dates li { font-size: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  .group-tour-cta { transition-duration: .01ms; }
}

/* Reusable country/price offer detail pages. */
.price-page { max-width: 1180px; padding-top: 24px; padding-bottom: 56px; color: var(--ink); }
.price-breadcrumbs { margin: 0 0 18px; color: #728195; font-size: 11px; }
.price-breadcrumbs ol { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0; padding: 0; list-style: none; }
.price-breadcrumbs li { min-width: 0; }
.price-breadcrumbs li + li::before { content: "/"; margin-right: 8px; color: #a8b1bc; }
.price-breadcrumbs a { color: #52677c; text-decoration: none; text-underline-offset: 3px; }
.price-breadcrumbs a:hover { color: #087da3; text-decoration: underline; }
.price-breadcrumbs li:last-child { overflow-wrap: anywhere; }
.price-page__heading { display: flex; align-items: center; justify-content: space-between; gap: 32px; margin: 0 0 24px; }
.price-page__heading-copy { min-width: 0; }
.price-page__eyebrow { margin: 0 0 8px; color: #087da3; font-size: 10px; font-weight: 850; line-height: 1.35; letter-spacing: .08em; text-transform: uppercase; }
.price-page__heading h1,
.price-state h1 { max-width: 780px; margin: 0; color: var(--ink); font-size: clamp(30px, 4vw, 43px); font-weight: 850; line-height: 1.1; letter-spacing: -.045em; overflow-wrap: anywhere; }
.price-page__intro { max-width: 720px; margin-top: 12px; }
.price-page__cover { flex: 0 0 min(31%, 330px); overflow: hidden; margin: 0; border: 1px solid var(--line); border-radius: 12px; background: var(--ice); aspect-ratio: 16 / 9; }
.price-page__cover img { display: block; width: 100%; height: 100%; object-fit: cover; }
.price-page__layout { display: grid; grid-template-columns: minmax(260px, .72fr) minmax(0, 1.65fr); align-items: start; gap: 22px; }
.price-page__sidebar,
.price-page__main { min-width: 0; }
.price-facts-card,
.price-hotels-section,
.price-editorial,
.price-editorial-note,
.price-state { border: 1px solid var(--line); border-radius: 12px; background: #fff; box-shadow: 0 4px 16px rgba(13, 26, 45, .045); }
.price-facts-card { position: sticky; top: 20px; padding: 21px; }
.price-facts-card__label { margin: 0 0 5px; color: #687a8e; font-size: 10px; font-weight: 800; letter-spacing: .055em; text-transform: uppercase; }
.price-facts-card__price { margin: 0 0 18px; color: var(--ink); font-size: 32px; font-weight: 850; line-height: 1.15; letter-spacing: -.045em; }
.price-facts-card__price span { display: block; margin-top: 4px; color: #718093; font-size: 10px; font-weight: 600; letter-spacing: 0; }
.price-facts-card__price--ask { font-size: 21px; letter-spacing: -.025em; }
.price-facts { margin: 0; }
.price-facts > div { padding: 11px 0; border-top: 1px solid #edf0f0; }
.price-facts dt,
.price-facts-card__dates h2,
.price-facts-card__included h2 { margin: 0 0 5px; color: #647589; font-size: 10px; font-weight: 800; line-height: 1.35; letter-spacing: .055em; text-transform: uppercase; }
.price-facts dd { margin: 0; color: var(--ink); font-size: 14px; font-weight: 750; }
.price-facts-card__dates,
.price-facts-card__included { margin-top: 13px; padding-top: 14px; border-top: 1px solid #edf0f0; }
.price-facts-card__dates h2,
.price-facts-card__included h2 { margin-bottom: 9px; }
.price-date-list { display: flex; flex-wrap: wrap; gap: 7px; margin: 0; padding: 0; list-style: none; }
.price-date-list li { padding: 6px 9px; border: 1px solid #e2e9eb; border-radius: 6px; background: #f7fafb; color: #45576b; font-size: 11px; font-weight: 750; }
.price-all-dates { margin-top: 9px; }
.price-all-dates summary,
.price-extras summary { width: fit-content; padding: 4px 0; color: #166c88; font-size: 11px; font-weight: 800; cursor: pointer; text-underline-offset: 3px; }
.price-all-dates summary:hover,
.price-extras summary:hover { text-decoration: underline; }
.price-all-dates summary span { margin-left: 4px; color: #617487; font-weight: 650; }
.price-date-month { margin-top: 12px; }
.price-date-month h3 { margin: 0 0 6px; color: #43566b; font-size: 11px; font-weight: 800; }
.price-date-month ul,
.price-facts-card__included ul,
.price-extras ul { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.price-date-month li { padding: 5px 7px; border-radius: 5px; background: #f1f5f6; color: #4a5d71; font-size: 10px; font-weight: 700; }
.price-facts-card__included ul,
.price-extras ul { display: grid; gap: 7px; padding-left: 17px; list-style: disc; color: #40536a; font-size: 11px; line-height: 1.45; }
.price-extras { margin-top: 12px; padding-top: 12px; border-top: 1px solid #edf0f0; }
.price-empty-note { margin: 0; color: #536579; font-size: 11px; line-height: 1.55; }
.price-facts-card__action { min-height: 45px; display: flex; align-items: center; justify-content: center; margin-top: 19px; padding: 11px 13px; border-radius: 8px; background: var(--yellow); color: #1b2b3d; font-size: 12px; font-weight: 850; line-height: 1.3; text-align: center; text-decoration: none; transition: background-color .16s ease, transform .16s ease; }
.price-facts-card__action:hover { background: #edb900; }
.price-facts-card__action:active { transform: scale(.99); }
.price-facts-card__hotels-link { width: fit-content; display: block; margin: 10px auto 0; color: #08718f; font-size: 10px; font-weight: 800; text-align: center; text-underline-offset: 3px; }
.price-facts-card__note { margin: 9px 0 0; color: #718093; font-size: 9px; line-height: 1.45; text-align: center; }
.price-hotels-section { padding: 22px; scroll-margin-top: 20px; }
.price-section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; margin-bottom: 17px; }
.price-section-heading .price-page__eyebrow { margin-bottom: 4px; }
.price-section-heading h2,
.price-editorial h2,
.price-contact h2 { margin: 0; color: var(--ink); font-size: 22px; font-weight: 850; line-height: 1.2; letter-spacing: -.035em; }
.price-month-filter { flex: 0 0 min(240px, 45%); }
.price-month-filter label { display: block; margin-bottom: 5px; color: #607387; font-size: 9px; font-weight: 800; }
.price-month-filter > div { display: flex; gap: 6px; }
.price-month-filter select { min-width: 0; flex: 1; height: 37px; padding: 0 9px; border: 1px solid #dbe3e6; border-radius: 6px; background: #fff; color: #283e54; font: inherit; font-size: 10px; }
.price-month-filter button { min-height: 37px; padding: 0 12px; border: 0; border-radius: 6px; background: #183d5a; color: #fff; font-size: 10px; font-weight: 800; cursor: pointer; }
.price-month-filter button:hover { background: #245573; }
.price-hotel-list { gap: 13px; margin: 0; padding: 0; list-style: none; }
.price-hotel-list.catalog-card-grid--hotels { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.price-hotel-list .catalog-card--hotel .catalog-card__media { aspect-ratio: 16 / 10; }
.price-hotel-list > li { min-width: 0; }
.price-empty-state { padding: 24px; border: 1px dashed #cfdde0; border-radius: 9px; background: #f8fbfb; }
.price-empty-state h3 { margin: 0 0 6px; color: #294259; font-size: 15px; }
.price-empty-state p { margin: 0; color: #5e7185; font-size: 11px; line-height: 1.55; }
.price-editorial { margin-top: 17px; padding: 22px; }
.price-editorial h2 { margin-bottom: 13px; }
.price-rich-content { color: #43556a; font-size: 12px; line-height: 1.7; overflow-wrap: anywhere; }
.price-rich-content > :first-child { margin-top: 0; }
.price-rich-content > :last-child { margin-bottom: 0; }
.price-rich-content p { margin: 0 0 11px; }
.price-rich-content h2,
.price-rich-content h3,
.price-rich-content h4 { margin: 20px 0 8px; color: #253c54; font-size: 15px; line-height: 1.35; }
.price-rich-content strong,
.price-rich-content b { color: #293e54; font-weight: 800; }
.price-rich-content ul,
.price-rich-content ol { display: grid; gap: 5px; margin: 9px 0 14px; padding-left: 21px; }
.price-rich-content a { color: #087da3; text-decoration: underline; text-underline-offset: 3px; }
.price-editorial--empty { padding: 15px 19px; background: #f8faf9; box-shadow: none; }
.price-editorial--empty p { margin: 0; color: #6b7c8d; font-size: 10px; }
.price-editorial-note { margin-top: 12px; padding: 15px 18px; background: var(--cream); box-shadow: none; }
.price-editorial-note .price-rich-content { font-size: 10px; line-height: 1.55; }
.price-contact { display: flex; align-items: center; justify-content: space-between; gap: 22px; margin-top: 21px; padding: 22px 24px; border: 1px solid #dbe8eb; border-radius: 12px; background: var(--ice); scroll-margin-top: 20px; }
.price-contact h2 { font-size: 20px; }
.price-contact p:not(.price-page__eyebrow) { margin: 6px 0 0; color: #56697d; font-size: 11px; line-height: 1.5; }
.price-contact__actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.price-contact__actions a { min-height: 39px; display: inline-flex; align-items: center; justify-content: center; gap: 5px; padding: 8px 11px; border: 1px solid #d9e3e6; border-radius: 7px; background: #fff; color: #244057; font-size: 10px; font-weight: 800; text-decoration: none; }
.price-contact__actions a:first-child { border-color: var(--yellow); background: var(--yellow); color: #1b2b3d; }
.price-contact__actions a:hover { border-color: #a9cbd5; background: #f8fbfc; }
.price-contact__actions a:first-child:hover { border-color: #edb900; background: #edb900; }
.price-state { max-width: 750px; margin: 34px auto 20px; padding: 32px; }
.price-state > p:not(.price-page__eyebrow) { max-width: 580px; margin: 12px 0 18px; color: #56697d; font-size: 13px; line-height: 1.6; }
.price-state > a { min-height: 42px; display: inline-flex; align-items: center; padding: 10px 15px; border-radius: 7px; background: var(--yellow); color: #1b2b3d; font-size: 11px; font-weight: 850; text-decoration: none; }
.price-state .price-contact__actions { justify-content: flex-start; }
.price-page a:focus-visible,
.price-page button:focus-visible,
.price-page select:focus-visible,
.price-page summary:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; border-radius: 4px; }

@media (max-width: 920px) {
  .price-page__layout { grid-template-columns: minmax(245px, .8fr) minmax(0, 1.3fr); gap: 16px; }
  .price-facts-card { padding: 17px; }
  .price-hotels-section,
  .price-editorial { padding: 18px; }
  .price-contact { align-items: flex-start; flex-direction: column; }
  .price-contact__actions { justify-content: flex-start; }
}
@media (max-width: 1200px) {
  .price-hotel-list.catalog-card-grid--hotels { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .price-page { padding-top: 15px; padding-bottom: 38px; }
  .price-breadcrumbs { margin-bottom: 14px; }
  .price-page__heading { align-items: flex-start; flex-direction: column; gap: 15px; margin-bottom: 17px; }
  .price-page__heading h1 { font-size: clamp(30px, 8vw, 38px); }
  .price-page__cover { width: 100%; flex: none; }
  .price-page__layout { grid-template-columns: minmax(0, 1fr); gap: 15px; }
  .price-page__sidebar { grid-column: 1; grid-row: 1; }
  .price-page__main { grid-column: 1; grid-row: 2; }
  .price-facts-card { position: static; padding: 18px; }
  .price-facts-card__price { font-size: 29px; }
  .price-section-heading { align-items: stretch; flex-direction: column; gap: 13px; }
  .price-section-heading h2 { font-size: 20px; }
  .price-month-filter { flex: auto; }
  .price-month-filter > div { max-width: 100%; }
  .price-month-filter select { height: 42px; font-size: 11px; }
  .price-month-filter button { min-height: 42px; padding-inline: 15px; }
  .price-hotel-list.catalog-card-grid--hotels { grid-template-columns: minmax(0, 1fr); }
  .price-contact { gap: 15px; margin-top: 15px; padding: 18px; }
  .price-contact h2 { font-size: 19px; }
  .price-contact__actions { width: 100%; }
  .price-contact__actions a { flex: 1 1 auto; }
  .price-state { margin-top: 23px; padding: 23px; }
}
@media (max-width: 390px) {
  .price-hotels-section,
  .price-editorial { padding: 15px; }
  .price-hotel-list.catalog-card-grid--hotels { grid-template-columns: minmax(0, 1fr); }
  .price-contact { padding: 16px; }
  .price-contact__actions { display: grid; grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .price-facts-card__action { transition-duration: .01ms; }
}

/* Universal reservation request */
.reservation-page { padding-top: 17px; padding-bottom: 60px; }
.reservation-breadcrumbs { color: #738196; font-size: 11px; line-height: 1.4; }
.reservation-breadcrumbs ol { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; margin: 0; padding: 0; list-style: none; }
.reservation-breadcrumbs li + li::before { content: "/"; margin-right: 9px; }
.reservation-breadcrumbs a { color: #176f8e; font-weight: 750; text-decoration: underline; text-underline-offset: 3px; }
.reservation-heading { max-width: 760px; margin: 22px 0 24px; }
.reservation-eyebrow { margin: 0 0 7px; color: var(--blue); font-size: 11px; font-weight: 800; line-height: 1.3; letter-spacing: .055em; text-transform: uppercase; }
.reservation-heading h1,
.reservation-state h1 { margin: 0; color: var(--ink); font-size: clamp(34px, 4vw, 48px); font-weight: 800; line-height: 1.08; letter-spacing: -.055em; text-wrap: balance; }
.reservation-heading > p:last-child,
.reservation-state > p:not(.reservation-eyebrow) { max-width: 65ch; margin: 10px 0 0; color: #526277; font-size: 14px; line-height: 1.6; }
.reservation-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(270px, .47fr); align-items: start; gap: 20px; }
.reservation-form-card,
.reservation-summary { min-width: 0; border: 1px solid var(--line); border-radius: 12px; background: #fff; box-shadow: 0 5px 18px rgba(13, 26, 45, .045); }
.reservation-form-card { padding: 24px 25px 22px; }
.reservation-card-heading { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 20px; }
.reservation-step { flex: 0 0 31px; width: 31px; height: 31px; display: grid; place-items: center; border-radius: 50%; background: var(--ice); color: #126c8b; font-size: 13px; font-weight: 850; }
.reservation-card-heading h2 { margin: 0; color: #172e49; font-size: 19px; font-weight: 800; line-height: 1.25; letter-spacing: -.035em; }
.reservation-card-heading p { margin: 4px 0 0; color: #718093; font-size: 11px; line-height: 1.45; }
.reservation-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px 14px; }
.reservation-field { min-width: 0; display: flex; flex-direction: column; gap: 6px; margin: 0; padding: 0; border: 0; }
.reservation-field > label,
.reservation-field legend { padding: 0; color: #33475e; font-size: 11px; font-weight: 800; line-height: 1.35; }
.reservation-field label span { color: #b24f3f; }
.reservation-field legend span { color: #b24f3f; }
.reservation-field input,
.reservation-field select,
.reservation-field textarea,
.reservation-date-fields input {
  width: 100%; min-width: 0; min-height: 43px; padding: 10px 11px; border: 1px solid #d9e1e4; border-radius: 7px; outline: none; background: #fff; color: #1e334b; font-size: 12px; line-height: 1.35; transition: border-color .15s ease, box-shadow .15s ease;
}
.reservation-field input::placeholder,
.reservation-field textarea::placeholder { color: #95a1ac; }
.reservation-field input:focus,
.reservation-field select:focus,
.reservation-field textarea:focus,
.reservation-date-fields input:focus { border-color: #1681a2; box-shadow: 0 0 0 3px rgba(8, 125, 163, .12); }
.reservation-field--dates { gap: 7px; }
.reservation-field--contact { grid-column: 1 / -1; gap: 7px; }
.reservation-contact-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.reservation-contact-fields label { display: grid; gap: 6px; color: #53657a; font-size: 11px; font-weight: 700; }
.reservation-date-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.reservation-date-fields label { display: grid; gap: 5px; color: #53657a; font-size: 10px; font-weight: 700; }
.reservation-field--dates > small,
.reservation-field--full > small { color: #7d8997; font-size: 10px; line-height: 1.4; }
.reservation-field--full { grid-column: 1 / -1; }
.reservation-field textarea { min-height: 94px; resize: vertical; }
.reservation-submit-row { display: flex; align-items: center; gap: 15px; margin-top: 20px; padding-top: 17px; border-top: 1px solid #edf0f1; }
.reservation-submit { min-height: 46px; flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; gap: 17px; padding: 11px 16px; border: 0; border-radius: 7px; background: var(--yellow); color: #1b2b3d; font-size: 12px; font-weight: 850; line-height: 1.2; cursor: pointer; transition: background-color .15s ease, transform .15s ease; }
.reservation-submit:hover { background: #edb900; }
.reservation-submit:active { transform: scale(.99); }
.reservation-submit span { font-size: 17px; line-height: 1; }
.reservation-submit-row > p { max-width: 34ch; margin: 0; color: #728093; font-size: 10px; line-height: 1.45; }
.reservation-summary { position: sticky; top: 18px; padding: 22px; background: var(--cream); border-color: #ecebe3; box-shadow: none; }
.reservation-summary__label { margin: 0 0 13px; color: #58687a; font-size: 10px; font-weight: 800; line-height: 1.3; letter-spacing: .045em; text-transform: uppercase; }
.reservation-type { display: inline-flex; align-items: center; min-height: 25px; padding: 4px 8px; border-radius: 5px; background: #eaf3f5; color: #176b83; font-size: 9px; font-weight: 800; line-height: 1.2; }
.reservation-summary h2 { margin: 12px 0 0; color: #17304b; font-size: 22px; font-weight: 850; line-height: 1.2; letter-spacing: -.045em; overflow-wrap: anywhere; }
.reservation-destination { margin: 7px 0 0; color: #53657a; font-size: 12px; line-height: 1.5; }
.reservation-summary__divider { height: 1px; margin: 17px 0 14px; background: #e8e5da; }
.reservation-summary__facts { display: grid; gap: 12px; margin: 0 0 16px; }
.reservation-summary__fact dt { color: #69788a; font-size: 10px; line-height: 1.35; }
.reservation-summary__fact dd { margin: 3px 0 0; color: #17304b; font-size: 14px; font-weight: 800; line-height: 1.25; }
.reservation-summary__fact--price dd { color: #0b6e90; font-size: 22px; letter-spacing: -.035em; }
.reservation-summary__note { margin: 0; color: #56677b; font-size: 11px; line-height: 1.55; }
.reservation-summary__phone { display: flex; flex-direction: column; gap: 3px; margin-top: 17px; padding: 12px 13px; border: 1px solid #e1e6e6; border-radius: 7px; background: #fff; color: #57697d; font-size: 10px; text-decoration: none; }
.reservation-summary__phone strong { color: #0b6e90; font-size: 16px; font-weight: 850; }
.reservation-state { max-width: 760px; margin: 27px 0 54px; padding: 30px; border: 1px solid #ecebe3; border-radius: 12px; background: var(--cream); }
.reservation-state__links { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 20px; }
.reservation-state__links a { min-height: 41px; display: inline-flex; align-items: center; justify-content: center; padding: 9px 13px; border: 1px solid #d7e2e4; border-radius: 7px; background: #fff; color: #126b8b; font-size: 11px; font-weight: 800; text-decoration: none; }
.reservation-state__links a:first-child { border-color: var(--yellow); background: var(--yellow); color: #1b2b3d; }
.reservation-state a[href^="tel:"] { color: #096d8e; font-weight: 800; text-underline-offset: 3px; }
.reservation-page a:focus-visible,
.reservation-page button:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; border-radius: 4px; }

@media (max-width: 760px) {
  .reservation-layout { grid-template-columns: minmax(0, 1fr); gap: 13px; }
  .reservation-summary { position: static; order: -1; }
  .reservation-summary h2 { font-size: 19px; }
}
@media (max-width: 620px) {
  .reservation-page { padding-top: 13px; padding-bottom: 38px; }
  .reservation-heading { margin: 17px 0 17px; }
  .reservation-heading h1,
  .reservation-state h1 { font-size: clamp(29px, 8vw, 38px); }
  .reservation-heading > p:last-child,
  .reservation-state > p:not(.reservation-eyebrow) { font-size: 12px; }
  .reservation-form-card { padding: 18px 15px 16px; }
  .reservation-card-heading { gap: 9px; margin-bottom: 16px; }
  .reservation-card-heading h2 { font-size: 16px; }
  .reservation-fields { grid-template-columns: minmax(0, 1fr); gap: 13px; }
  .reservation-field--contact { grid-column: 1; }
  .reservation-contact-fields { grid-template-columns: minmax(0, 1fr); gap: 13px; }
  .reservation-field--full { grid-column: 1; }
  .reservation-submit-row { align-items: stretch; flex-direction: column; gap: 8px; }
  .reservation-submit { width: 100%; }
  .reservation-summary { padding: 18px; }
  .reservation-state { margin: 17px 0 37px; padding: 22px 17px; }
  .reservation-state__links { flex-direction: column; }
  .reservation-state__links a { width: 100%; }
}
.catalog-card.product-card--no-image .catalog-card__body { position: relative; }
@media (prefers-reduced-motion: reduce) {
  .reservation-field input,
  .reservation-field select,
  .reservation-field textarea,
  .reservation-date-fields input,
  .reservation-submit,
  .catalog-card__action { transition-duration: .01ms; }
}

.site-route-order-form .contact-form__message-label { grid-column: 1 / -1; }
.contact-form__message {
  width: 100%;
  min-height: 140px;
  padding: 11px 13px;
  border: 1px solid #d5dde1;
  border-radius: 10px;
  color: #172634;
  background: #fff;
  font: inherit;
  font-size: 16px;
  line-height: 1.5;
  resize: vertical;
}
.contact-form__message:focus-visible,
.contact-form input:focus-visible {
  outline: 2px solid var(--blue);
  outline-offset: 2px;
}
.contact-form-topic {
  width: fit-content;
  max-width: 100%;
  margin: 18px 0 0;
  padding: 10px 13px;
  border-radius: 10px;
  color: #274d61;
  background: var(--ice);
  overflow-wrap: anywhere;
}
.site-footer__contact-links .site-footer__email { color: inherit; font-weight: 700; }

dialog.contact-dialog {
  width: min(560px, calc(100vw - 32px));
  max-height: min(90vh, 760px);
  max-height: min(90dvh, 760px);
  margin: auto;
  padding: 0;
  border: 0;
  border-radius: 16px;
  color: var(--ink);
  background: #fff;
  box-shadow: 0 24px 72px rgba(13, 26, 45, .28), 0 4px 14px rgba(13, 26, 45, .12);
  overflow-y: auto;
  overscroll-behavior: contain;
}
dialog.contact-dialog[open] { display: block; }
dialog.contact-dialog::backdrop { background: rgba(13, 26, 45, .58); }
.contact-dialog [hidden] { display: none !important; }
.contact-dialog__panel { padding: clamp(22px, 4vw, 34px); }
.contact-dialog__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.contact-dialog__header h2 {
  margin: 0;
  color: #15384b;
  font-size: clamp(21px, 3.2vw, 27px);
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: -.025em;
}
.contact-dialog__close {
  flex: 0 0 42px;
  width: 42px;
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: -7px -7px 0 0;
  border: 1px solid #dce5e9;
  border-radius: 50%;
  color: #304c5e;
  background: #f6fafb;
  cursor: pointer;
}
.contact-dialog__close:hover { border-color: #a9cbd5; background: #edf6fa; }
.contact-dialog__close:focus-visible,
.contact-dialog .site-route-button:focus-visible {
  outline: 2px solid var(--blue);
  outline-offset: 3px;
}
.contact-dialog__close svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.contact-dialog__intro { margin: 11px 0 0; color: #53687a; font-size: 14px; line-height: 1.55; }
.contact-dialog__topic {
  margin: 16px 0 0;
  padding: 11px 14px;
  border-radius: 10px;
  color: #274d61;
  background: var(--ice);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.45;
  overflow-wrap: anywhere;
}
.contact-dialog__error,
.contact-dialog__success {
  margin: 16px 0 0;
  padding: 12px 14px;
  border-radius: 10px;
  font-size: 13px;
  line-height: 1.5;
}
.contact-dialog__error { border: 1px solid #f0c5bf; color: #8f332a; background: #fff6f4; }
.contact-dialog__success { color: #245542; background: #eef8f2; }
.contact-dialog .site-route-order-form {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  max-width: none;
  margin: 21px 0 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.contact-dialog .site-route-order-form > label {
  min-width: 0;
  gap: 7px;
  color: #334b60;
  font-size: 13px;
  font-weight: 700;
}
.contact-dialog .site-route-order-form input,
.contact-dialog .site-route-order-form textarea {
  min-width: 0;
  min-height: 48px;
  padding: 11px 13px;
  border: 1px solid #d5dde1;
  border-radius: 9px;
  color: #172634;
  background: #fff;
  font: inherit;
  font-size: 16px;
  font-weight: 500;
}
.contact-dialog .site-route-order-form textarea { min-height: 132px; line-height: 1.5; resize: vertical; }
.contact-dialog .site-route-order-form > .contact-form__message-label,
.contact-dialog .site-route-order-form > .contact-form__submit { grid-column: 1 / -1; }
.contact-dialog .contact-form__submit { width: 100%; min-height: 50px; margin-top: 1px; }
.contact-dialog .contact-form__submit:disabled { opacity: .7; cursor: wait; }
.contact-dialog .site-route-order-form input:focus-visible,
.contact-dialog .site-route-order-form textarea:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }

@media (min-width: 561px) {
  .contact-dialog__panel { padding: clamp(20px, 3vw, 28px); }
  .contact-dialog__topic { margin-top: 12px; padding: 10px 12px; }
  .contact-dialog .site-route-order-form { gap: 12px; margin-top: 16px; }
  .contact-dialog .site-route-order-form textarea { min-height: 96px; }
}

@media (max-width: 560px) {
  dialog.contact-dialog {
    inset: auto 0 0;
    width: 100%;
    max-width: none;
    max-height: min(92vh, 820px);
    max-height: min(92dvh, 820px);
    margin: 0;
    border-radius: 16px 16px 0 0;
  }
  .contact-dialog__panel { padding: 22px 18px calc(20px + env(safe-area-inset-bottom)); }
  .contact-dialog .site-route-order-form { grid-template-columns: minmax(0, 1fr); gap: 13px; }
  .contact-dialog .site-route-order-form > .contact-form__message-label,
  .contact-dialog .site-route-order-form > .contact-form__submit { grid-column: 1; }
}

[data-decorative-media][data-image-pending] { visibility: hidden; }
[data-decorative-media][hidden],
img.antario-decorative-image[hidden] { display: none !important; }
.hero.hero--no-art { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto; }
.hero.hero--no-art::before { background: #f8f7f2; }
.flight-page__heading.flight-page__heading--no-image { grid-template-columns: minmax(0, 1fr); }
.flight-page__heading.flight-page__heading--no-image::after { background: none; }

.whatsapp-fab {
  position: fixed;
  z-index: 70;
  right: max(16px, calc(env(safe-area-inset-right, 0px) + 16px));
  bottom: max(16px, calc(env(safe-area-inset-bottom, 0px) + 16px));
  display: grid;
  width: 58px;
  height: 58px;
  place-items: center;
  border: 1px solid rgba(0, 0, 0, .08);
  border-radius: 50%;
  color: #fff;
  background: #25d366;
  box-shadow: 0 5px 16px rgba(15, 44, 31, .25);
  text-decoration: none;
  -webkit-tap-highlight-color: transparent;
}
.whatsapp-fab:hover { background: #1fbd5b; }
.whatsapp-fab:focus-visible {
  outline: 3px solid #fff;
  outline-offset: 2px;
  box-shadow: 0 0 0 5px #176b3c, 0 5px 16px rgba(15, 44, 31, .25);
}
.whatsapp-fab svg { display: block; width: 29px; height: 29px; }

@media (max-width: 620px) {
  .whatsapp-fab {
    right: max(8px, calc(env(safe-area-inset-right, 0px) + 8px));
    bottom: max(8px, calc(env(safe-area-inset-bottom, 0px) + 8px));
    width: 52px;
    height: 52px;
  }
}

@media (max-width: 760px) {
  .reservation-form-card .reservation-fields,
  .reservation-form-card .reservation-submit-row { padding-right: 52px; }
}

.flight-country-heading__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-top: 13px;
}
.flight-country-heading__actions .flight-country-heading__cta { margin-top: 0; }
.flight-country-heading__actions a:focus-visible,
.flight-calendar__chip:focus-visible,
.flight-calendar__entry:focus-visible {
  outline: 3px solid #087ca5;
  outline-offset: 3px;
}

.flight-calendar {
  width: 100%;
  max-width: 1160px;
  scroll-margin-top: 24px;
  margin: 0 auto 25px;
  border: 1px solid #dfe6e8;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 1px 2px rgba(20, 43, 69, .04);
}
.flight-calendar__heading {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  padding: 14px 18px;
  border-bottom: 1px solid #e3e9eb;
  border-radius: 13px 13px 0 0;
}
.flight-calendar__heading-icon {
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  border-radius: 11px;
  color: #7a5b00;
  background: #fff3c2;
}
.flight-calendar__heading-icon .icon { width: 21px; height: 21px; }
.flight-calendar__heading-copy { display: grid; min-width: 0; gap: 3px; }
.flight-calendar__title {
  display: block;
  margin: 0;
  color: #142b45;
  font-size: 18px;
  font-weight: 850;
  line-height: 1.2;
  letter-spacing: -.02em;
}
.flight-calendar__hint {
  margin: 0;
  color: #5a6d7f;
  font-size: 13px;
  line-height: 1.35;
  font-variant-numeric: tabular-nums;
}
.flight-calendar__next {
  display: grid;
  gap: 2px;
  padding-right: 14px;
  border-right: 1px solid #e3e9eb;
  text-align: right;
}
.flight-calendar__next > span {
  color: #5a6d7f;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.flight-calendar__next > time {
  color: #142b45;
  font-size: 14px;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  line-height: 1.2;
  white-space: nowrap;
}
.flight-calendar__content { padding: 16px 18px 20px; }
.flight-calendar__filter {
  display: flex;
  gap: 7px;
  margin: 0 -18px 16px;
  padding: 0 18px 2px;
  overflow-x: auto;
  scrollbar-width: none;
  overscroll-behavior-inline: contain;
}
.flight-calendar__filter[hidden] { display: none; }
.flight-calendar__filter::-webkit-scrollbar { display: none; }
.flight-calendar__chip {
  display: inline-flex;
  flex: 0 0 auto;
  min-height: 38px;
  align-items: center;
  gap: 8px;
  padding: 0 8px 0 14px;
  border: 1px solid #d5dfe3;
  border-radius: 999px;
  color: #17334e;
  background: #fff;
  font: inherit;
  font-size: 13px;
  font-weight: 750;
  line-height: 1;
  cursor: pointer;
  transition: border-color .15s ease, background-color .15s ease, color .15s ease, transform .15s cubic-bezier(.16, 1, .3, 1);
}
.flight-calendar__chip small { color: #5a6d7f; font-size: 11px; font-weight: 700; }
.flight-calendar__chip:hover { border-color: #a9bac4; background: #f6f9f9; }
.flight-calendar__chip:active { transform: scale(.97); }
.flight-calendar__chip-count {
  display: grid;
  min-width: 22px;
  height: 22px;
  place-items: center;
  padding: 0 6px;
  border-radius: 999px;
  color: #3f5568;
  background: #edf3f4;
  font-size: 11px;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}
.flight-calendar__chip[aria-pressed="true"] { border-color: #17334e; color: #fff; background: #17334e; }
.flight-calendar__chip[aria-pressed="true"] small { color: #c6d3de; }
.flight-calendar__chip[aria-pressed="true"] .flight-calendar__chip-count { color: #17334e; background: var(--yellow, #f8c40b); }

.flight-calendar__month[hidden] { display: none; }
.flight-calendar__month + .flight-calendar__month { margin-top: 20px; }
.flight-calendar__month-title {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin: 0 0 8px;
  padding: 0 2px;
  color: #142b45;
  font-size: 15px;
  font-weight: 850;
  line-height: 1.2;
}
.flight-calendar__month-year { color: #5a6d7f; font-weight: 700; }
.flight-calendar__month-count { color: #5a6d7f; font-size: 12px; font-weight: 700; }
.flight-calendar__list {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.flight-calendar__entry {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 18px;
  min-height: 84px;
  padding: 10px 12px 10px 10px;
  border: 1px solid #e1e8ea;
  border-radius: 12px;
  color: #17334e;
  background: #fff;
  text-decoration: none;
  transition: border-color .16s ease, box-shadow .16s ease, background-color .16s ease;
}
.flight-calendar__entry:hover {
  border-color: #d9ac00;
  box-shadow: 0 4px 14px -6px rgba(20, 43, 69, .18);
}
.flight-calendar__date {
  display: grid;
  width: 64px;
  height: 64px;
  align-content: center;
  justify-items: center;
  gap: 1px;
  border-radius: 10px;
  color: #17334e;
  background: #fff3c2;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}
.flight-calendar__date-weekday,
.flight-calendar__date-month {
  color: #7a5b00;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .03em;
  text-transform: uppercase;
}
.flight-calendar__date-day { font-size: 24px; font-weight: 850; letter-spacing: -.02em; }
.flight-calendar__entry-copy { display: grid; min-width: 0; justify-items: start; gap: 5px; }
.flight-calendar__badge {
  padding: 3px 7px;
  border-radius: 5px;
  color: #0b5c3b;
  background: #e1f5ea;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.2;
}
.flight-calendar__entry-title {
  color: #142b45;
  font-size: 15px;
  font-weight: 800;
  line-height: 1.3;
  overflow-wrap: anywhere;
  transition: color .15s ease;
}
.flight-calendar__entry:hover .flight-calendar__entry-title { color: #087ca5; }
.flight-calendar__entry-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 14px;
  color: #5a6d7f;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.35;
  font-variant-numeric: tabular-nums;
}
.flight-calendar__entry-meta > span + span { position: relative; }
.flight-calendar__entry-meta > span + span::before {
  content: "";
  position: absolute;
  top: 50%;
  left: -8px;
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: #a9bac4;
  transform: translateY(-50%);
}
.flight-calendar__entry-price {
  display: grid;
  justify-items: end;
  gap: 2px;
  color: #5a6d7f;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
}
.flight-calendar__entry-price strong {
  color: #142b45;
  font-size: 20px;
  font-weight: 850;
  letter-spacing: -.02em;
  font-variant-numeric: tabular-nums;
}
.flight-calendar__entry-cta {
  display: inline-flex;
  min-height: 40px;
  align-items: center;
  gap: 8px;
  padding: 0 14px;
  border-radius: 9px;
  color: #1a2c40;
  background: var(--yellow, #f8c40b);
  font-size: 13px;
  font-weight: 800;
  white-space: nowrap;
  transition: background-color .15s ease;
}
.flight-calendar__entry-cta svg { width: 15px; height: 15px; transition: transform .2s cubic-bezier(.16, 1, .3, 1); }
.flight-calendar__entry:hover .flight-calendar__entry-cta { background: #ffd43b; }
.flight-calendar__entry:hover .flight-calendar__entry-cta svg { transform: translateX(3px); }

@media (hover: none) {
  .flight-calendar__entry:hover { border-color: #e1e8ea; box-shadow: none; }
  .flight-calendar__entry:hover .flight-calendar__entry-title { color: #142b45; }
  .flight-calendar__entry:active { background: #fffbed; }
}
@media (max-width: 760px) {
  .flight-calendar__next { display: none; }
}
@media (max-width: 700px) {
  .flight-country-heading__actions { gap: 7px; margin-top: 11px; }
  .flight-country-heading__actions .flight-country-heading__cta { min-height: 37px; }
  .flight-calendar { margin-bottom: 20px; border-radius: 12px; }
  .flight-calendar__heading {
    grid-template-columns: 40px minmax(0, 1fr);
    gap: 11px;
    padding: 12px;
    border-radius: 11px 11px 0 0;
  }
  .flight-calendar__heading-icon { width: 40px; height: 40px; border-radius: 10px; }
  .flight-calendar__heading-icon .icon { width: 19px; height: 19px; }
  .flight-calendar__title { font-size: 16px; }
  .flight-calendar__hint { font-size: 12px; }
  .flight-calendar__content { padding: 14px 12px 16px; }
  .flight-calendar__filter { margin: 0 -12px 14px; padding: 0 12px 2px; }
  .flight-calendar__entry {
    grid-template-columns: 56px minmax(0, 1fr) auto;
    grid-template-areas: "date copy copy" "date price cta";
    align-items: start;
    gap: 10px 12px;
    padding: 10px;
  }
  .flight-calendar__date { grid-area: date; width: 56px; height: 60px; }
  .flight-calendar__date-day { font-size: 22px; }
  .flight-calendar__entry-copy { grid-area: copy; }
  .flight-calendar__entry-title { font-size: 14px; }
  .flight-calendar__entry-meta { flex-direction: column; gap: 1px; font-size: 12px; }
  .flight-calendar__entry-meta > span + span::before { display: none; }
  .flight-calendar__entry-price { grid-area: price; align-self: center; display: flex; align-items: baseline; gap: 5px; }
  .flight-calendar__entry-price strong { font-size: 18px; }
  .flight-calendar__entry-cta { grid-area: cta; min-height: 36px; padding: 0 12px; }
}
@media (max-width: 360px) {
  .flight-calendar__entry-cta > span { display: none; }
  .flight-calendar__entry-cta { padding: 0 11px; }
}
@media (prefers-reduced-motion: reduce) {
  .flight-calendar__chip,
  .flight-calendar__entry-cta svg { transition: none; }
}

.flight-calendar__hint {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0 6px;
}
.flight-calendar__hint strong { color: #17334e; font-size: inherit; font-weight: 800; }
.flight-calendar__range { color: #5a6d7f; }
.flight-calendar__summary-separator { margin: 0 2px; }
.flight-calendar__list { gap: 10px; }
.flight-calendar__program[hidden],
.flight-calendar__date-group[hidden],
.flight-calendar__date-chip[hidden],
.flight-calendar__date-preview-label[hidden],
.flight-calendar__dates-details[hidden] { display: none !important; }
.flight-calendar__entry {
  min-height: 110px;
  cursor: default;
}
.flight-calendar__entry:hover { border-color: #e1e8ea; box-shadow: none; }
.flight-calendar__entry:hover .flight-calendar__entry-title { color: #142b45; }
.flight-calendar__entry:active { background: #fff; }
.flight-calendar__entry-copy { gap: 7px; }
.flight-calendar__entry-title { margin: 0; }
.flight-calendar__entry-meta { margin: 0; }
.flight-calendar__date-preview {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 5px 7px;
  color: #5a6d7f;
  font-size: 12px;
  line-height: 1.4;
}
.flight-calendar__date-preview-label { font-weight: 700; }
.flight-calendar__date-chip {
  display: inline-flex;
  min-height: 24px;
  align-items: center;
  padding: 2px 7px;
  border: 1px solid #dfe7e9;
  border-radius: 999px;
  color: #334b60;
  background: #f8fbfc;
  font-size: 11px;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.flight-calendar__dates-details summary {
  width: fit-content;
  min-height: 28px;
  padding: 4px 0;
  color: #087ca5;
  font-size: 12px;
  font-weight: 750;
  line-height: 1.4;
  cursor: pointer;
}
.flight-calendar__dates-details summary:focus-visible,
.flight-calendar__entry-cta:focus-visible {
  outline: 3px solid #087ca5;
  outline-offset: 3px;
}
.flight-calendar__date-groups {
  display: grid;
  gap: 10px;
  margin-top: 6px;
  padding: 11px 12px;
  border: 1px solid #e4eaec;
  border-radius: 9px;
  background: #f8fafb;
}
.flight-calendar__date-group h4 {
  margin: 0 0 6px;
  color: #17334e;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.3;
}
.flight-calendar__date-group h4 span { color: #5a6d7f; font-weight: 700; }
.flight-calendar__date-group ul {
  display: grid;
  gap: 5px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.flight-calendar__departure {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 2px 7px;
  color: #40566a;
  font-size: 12px;
  line-height: 1.4;
  font-variant-numeric: tabular-nums;
}
.flight-calendar__departure > time:first-child { color: #17334e; font-weight: 750; }
.flight-calendar__departure-duration { color: #5a6d7f; }
.flight-calendar__entry-cta {
  text-decoration: none;
}
.flight-calendar__entry:hover .flight-calendar__entry-cta { background: var(--yellow, #f8c40b); }
.flight-calendar__entry-cta:hover { background: #ffd43b; }

@media (max-width: 700px) {
  .flight-calendar__entry { min-height: 0; }
  .flight-calendar__entry-copy { gap: 6px; }
  .flight-calendar__date-preview { gap: 4px 6px; }
  .flight-calendar__date-chip { min-height: 26px; }
  .flight-calendar__dates-details summary { min-height: 44px; padding: 10px 0; }
  .flight-calendar__date-groups { padding: 9px 10px; }
}

/* Contacts page (/info/kontakti/) */
.contacts-page { --contacts-radius: 20px; display: grid; gap: clamp(40px, 6vw, 72px); margin-top: 18px; }
.contacts-icon { width: 20px; height: 20px; flex: 0 0 auto; }
.contacts-page h2 { margin: 0 0 20px; font-size: clamp(22px, 2.4vw, 30px); line-height: 1.15; letter-spacing: -.025em; color: var(--ink); }
.contacts-page h3 { display: flex; align-items: center; gap: 9px; margin: 0; font-size: 17px; line-height: 1.3; color: var(--ink); }
.contacts-page h3 .contacts-icon { color: var(--blue); }

.contacts-hero { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(320px, .9fr); gap: clamp(20px, 3vw, 32px); align-items: stretch; }
.contacts-hero__copy { position: relative; display: flex; flex-direction: column; justify-content: center; padding: clamp(28px, 4vw, 52px); overflow: hidden; border-radius: var(--contacts-radius); background: linear-gradient(145deg, #0f2f44 0%, #15384b 55%, #0a5a78 120%); color: #e6eff3; }
.contacts-hero__copy::after { content: ""; position: absolute; right: -90px; bottom: -120px; width: 320px; height: 320px; border-radius: 50%; background: radial-gradient(circle, rgba(248, 196, 11, .28), rgba(248, 196, 11, 0) 70%); pointer-events: none; }
.contacts-eyebrow { margin: 0 0 10px; color: var(--yellow); font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.site-route-page .contacts-hero h1 { margin: 0 0 14px; color: #fff; font-size: clamp(34px, 4.6vw, 56px); }
.contacts-hero__lead { max-width: 560px; margin: 0 0 22px; color: #c9d9e1; font-size: 16px; line-height: 1.6; }
.contacts-status { display: inline-flex; align-items: center; gap: 9px; width: fit-content; margin: 0 0 26px; padding: 7px 14px 7px 12px; border-radius: 999px; background: rgba(255, 255, 255, .08); color: #fff; font-size: 13px; font-weight: 700; }
.contacts-status__dot { width: 9px; height: 9px; border-radius: 50%; background: #f07a5a; box-shadow: 0 0 0 4px rgba(240, 122, 90, .2); }
.contacts-status.is-open .contacts-status__dot { background: #3ddc84; box-shadow: 0 0 0 4px rgba(61, 220, 132, .22); animation: contacts-pulse 2.4s ease-in-out infinite; }
@keyframes contacts-pulse { 50% { box-shadow: 0 0 0 7px rgba(61, 220, 132, .06); } }
.contacts-hero__actions { position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: 10px; }

.contacts-btn { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 48px; padding: 12px 20px; border: 1px solid transparent; border-radius: 999px; font-size: 15px; font-weight: 750; text-decoration: none; cursor: pointer; transition: background-color .18s ease, border-color .18s ease, transform .18s ease; }
.contacts-btn:active { transform: scale(.98); }
.contacts-btn .contacts-icon { width: 18px; height: 18px; }
.contacts-btn--primary { background: var(--yellow); color: var(--ink); }
.contacts-btn--primary:hover { background: #ffd43b; }
.contacts-btn--whatsapp { background: #25d366; color: #06301a; }
.contacts-btn--whatsapp:hover { background: #3be079; }
.contacts-btn--ghost { border-color: rgba(255, 255, 255, .35); color: #fff; }
.contacts-btn--ghost:hover { border-color: #fff; background: rgba(255, 255, 255, .08); }
.contacts-page a:focus-visible,
.contacts-copy:focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; }
.contacts-hero__copy a:focus-visible { outline-color: var(--yellow); }

.contacts-office { display: flex; flex-direction: column; gap: 14px; padding: clamp(22px, 3vw, 32px); border: 1px solid var(--line); border-radius: var(--contacts-radius); background: var(--cream); }
.contacts-page .contacts-office h2 { display: flex; align-items: center; gap: 9px; margin: 0; font-size: 20px; }
.contacts-office h2 .contacts-icon { color: var(--blue); }
.contacts-page .contacts-office h3 { margin-top: 8px; font-size: 16px; }
.contacts-office__address { color: var(--ink); font-size: 17px; font-style: normal; font-weight: 700; line-height: 1.45; }
.contacts-office__links { display: flex; flex-wrap: wrap; gap: 8px; }
.contacts-office__links a { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 7px 12px; border: 1px solid #dcd8c6; border-radius: 999px; background: #fff; color: var(--ink); font-size: 13px; font-weight: 700; text-decoration: none; }
.contacts-office__links a:hover { border-color: var(--blue); color: var(--blue); }
.contacts-office__links .contacts-icon { width: 14px; height: 14px; }
.contacts-hours { display: grid; gap: 2px; margin: 0; }
.contacts-hours > div { display: flex; justify-content: space-between; gap: 12px; padding: 9px 12px; border-radius: 10px; }
.contacts-hours > div.is-today { background: #fff; box-shadow: 0 1px 0 #ebe7d6; }
.contacts-hours dt { color: var(--body); }
.contacts-hours dd { margin: 0; color: var(--ink); font-weight: 750; font-variant-numeric: tabular-nums; white-space: nowrap; }
.contacts-hours__today { margin-left: 4px; padding: 2px 7px; border-radius: 999px; background: var(--ice); color: var(--blue); font-size: 11px; font-weight: 800; }
.contacts-office__online { display: flex; align-items: center; gap: 12px; margin-top: auto; padding: 14px 16px; border-radius: 14px; background: var(--ink); color: #fff; text-decoration: none; transition: background-color .18s ease; }
.contacts-office__online:hover { background: #15384b; }
.contacts-office__online .contacts-icon { width: 26px; height: 26px; color: var(--yellow); }
.contacts-office__online span { display: grid; gap: 2px; }
.contacts-office__online small { color: #b6c6cf; font-size: 12px; }

.contacts-section__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 20px; margin-bottom: 20px; }
.contacts-page .contacts-section__head h2 { margin: 0; }
.contacts-section__head p { margin: 0; color: var(--body); }

.contacts-channels { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin: 0; padding: 0; list-style: none; }
.contacts-channels li { position: relative; display: flex; flex-direction: column; gap: 4px; padding: 22px; border: 1px solid var(--line); border-radius: 18px; background: #fff; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.contacts-channels li:hover { border-color: #b9d7e2; box-shadow: 0 12px 30px -18px rgba(13, 26, 45, .35); transform: translateY(-2px); }
.contacts-channels__icon { display: inline-grid; place-items: center; width: 44px; height: 44px; margin-bottom: 10px; border-radius: 12px; background: var(--ice); color: var(--blue); }
.contacts-channels__icon--whatsapp { background: #e3f9eb; color: #128c4b; }
.contacts-channels__label { color: var(--muted); font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.contacts-channels__value { color: var(--ink); font-size: 18px; font-weight: 800; text-decoration: none; overflow-wrap: anywhere; }
.contacts-channels__value::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.contacts-channels__note { color: var(--body); font-size: 13px; }
.contacts-channels__note a { position: relative; z-index: 1; color: var(--blue); font-weight: 700; }

.contacts-teams { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.contacts-team { padding: 24px; border: 1px solid var(--line); border-radius: var(--contacts-radius); background: #fff; }
.contacts-team > p { margin: 6px 0 16px; color: var(--body); }
.contacts-team ul { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.contacts-person { display: flex; align-items: center; gap: 14px; padding: 10px 10px 10px 12px; border-radius: 14px; background: #f6f9fa; }
.contacts-person__avatar { display: grid; place-items: center; width: 42px; height: 42px; flex: 0 0 auto; border-radius: 50%; background: linear-gradient(135deg, #15384b, #087da3); color: #fff; font-size: 16px; font-weight: 800; }
.contacts-person__info { display: grid; min-width: 0; flex: 1; }
.contacts-person__info strong { color: var(--ink); font-size: 15px; }
.contacts-person__info a { color: var(--body); font-variant-numeric: tabular-nums; text-decoration: none; }
.contacts-person__info a:hover { color: var(--blue); }
.contacts-person__actions { display: flex; gap: 6px; }
.contacts-person__actions a { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: #fff; color: var(--ink); box-shadow: inset 0 0 0 1px var(--line); transition: background-color .18s ease, color .18s ease; }
.contacts-person__actions a:hover { background: var(--ink); color: #fff; }
.contacts-person__actions a + a:hover { background: #25d366; color: #06301a; }
.contacts-person__actions .contacts-icon { width: 18px; height: 18px; }

.contacts-social { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.contacts-social__link { display: flex; align-items: center; gap: 12px; height: 100%; padding: 16px; border: 1px solid var(--line); border-radius: 16px; color: var(--ink); text-decoration: none; transition: border-color .18s ease, background-color .18s ease; }
.contacts-social__link:hover { border-color: #b9d7e2; background: #fafcfd; }
.contacts-social__link .contacts-icon { width: 26px; height: 26px; }
.contacts-social__link--facebook .contacts-icon { color: #1877f2; }
.contacts-social__link--instagram .contacts-icon { color: #d6249f; }
.contacts-social__link--telegram .contacts-icon { color: #229ed9; }
.contacts-social__link span { display: grid; min-width: 0; }
.contacts-social__link small { color: var(--body); font-size: 12px; overflow-wrap: anywhere; }

.contacts-legal__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.contacts-card { display: flex; flex-direction: column; gap: 16px; padding: 24px; border: 1px solid var(--line); border-radius: var(--contacts-radius); background: #fff; }
.contacts-details { display: grid; gap: 12px; margin: 0; }
.contacts-details dt { color: var(--muted); font-size: 12px; font-weight: 700; }
.contacts-details dd { display: flex; align-items: center; gap: 6px; min-height: 34px; margin: 0; color: var(--ink); font-weight: 700; }
.contacts-banks { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.contacts-banks li { display: grid; gap: 8px; padding: 14px; border-radius: 14px; background: #f6f9fa; }
.contacts-banks__name { display: flex; justify-content: space-between; gap: 10px; }
.contacts-banks__name small { color: var(--muted); font-weight: 700; }
.contacts-banks__iban { display: flex; align-items: center; justify-content: space-between; gap: 6px; }
.contacts-banks__iban code { color: var(--ink); font-family: ui-monospace, Consolas, monospace; font-size: 14px; font-weight: 600; letter-spacing: .02em; overflow-wrap: anywhere; }
.contacts-copy { position: relative; display: inline-grid; place-items: center; width: 34px; height: 34px; flex: 0 0 auto; padding: 0; border: 0; border-radius: 9px; background: transparent; color: var(--muted); cursor: pointer; transition: background-color .15s ease, color .15s ease; }
.contacts-copy:hover { background: var(--ice); color: var(--blue); }
.contacts-copy .contacts-icon { grid-area: 1 / 1; width: 17px; height: 17px; transition: opacity .15s ease, transform .15s ease; }
.contacts-copy .contacts-icon + .contacts-icon { opacity: 0; transform: scale(.6); color: #128c4b; }
.contacts-copy.is-copied .contacts-icon:first-child { opacity: 0; transform: scale(.6); }
.contacts-copy.is-copied .contacts-icon + .contacts-icon { opacity: 1; transform: none; }
.contacts-card--trust { background: linear-gradient(180deg, #f3faf6, #fff 60%); }
.contacts-trust { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; }
.contacts-trust li { display: grid; gap: 2px; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.contacts-trust li:last-child { padding-bottom: 0; border-bottom: 0; }
.contacts-trust span { color: var(--body); font-size: 13px; }
.contacts-trust strong { color: var(--ink); }
.contacts-trust small { color: var(--muted); font-variant-numeric: tabular-nums; }
.contacts-trust a { display: inline-flex; align-items: center; gap: 6px; width: fit-content; color: var(--blue); font-weight: 800; text-decoration: none; }
.contacts-trust a .contacts-icon { width: 14px; height: 14px; }
.contacts-copy-status { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.contacts-cta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px 30px; padding: clamp(24px, 4vw, 40px); border-radius: var(--contacts-radius); background: var(--ice); }
.contacts-page .contacts-cta h2 { margin: 0 0 6px; }
.contacts-cta p { margin: 0; color: var(--body); font-size: 15px; }
.contacts-cta .contacts-btn--primary { background: var(--ink); color: #fff; }
.contacts-cta .contacts-btn--primary:hover { background: #15384b; }

@media (max-width: 1080px) {
  .contacts-channels,
  .contacts-social { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .contacts-legal__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .contacts-card--trust { grid-column: 1 / -1; }
}
@media (max-width: 860px) {
  .contacts-hero,
  .contacts-teams { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
  .contacts-page { gap: 40px; margin-top: 8px; }
  .contacts-hero__copy { padding: 26px 20px; }
  .contacts-hero__actions { flex-direction: column; }
  .contacts-hero__actions .contacts-btn,
  .contacts-cta .contacts-btn { width: 100%; }
  .contacts-channels,
  .contacts-social,
  .contacts-legal__grid { grid-template-columns: minmax(0, 1fr); }
  .contacts-channels li { padding: 18px; }
  .contacts-team,
  .contacts-card { padding: 18px; }
  .contacts-person { gap: 10px; }
}
@media (hover: none) {
  .contacts-channels li:hover { box-shadow: none; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .contacts-status.is-open .contacts-status__dot { animation: none; }
  .contacts-channels li,
  .contacts-btn,
  .contacts-copy .contacts-icon { transition-duration: .01ms; }
}

/* Trip finder results (/celojumu-atlase/) */
.trip-results__header { margin-bottom: 4px; }
.trip-results__layout { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 24px; align-items: start; }
.trip-results__aside { position: sticky; top: 16px; }
.trip-results__filters { padding: 16px; display: grid; gap: 16px; border: 1px solid #ecebe3; border-radius: 12px; background: var(--cream); }
.trip-results__group { min-width: 0; margin: 0; padding: 0; border: 0; display: grid; gap: 4px; }
.trip-results__group legend, .trip-results__select > span { margin-bottom: 6px; padding: 0; color: #203b56; font-size: 13px; font-weight: 800; }
.trip-results__check { display: flex; align-items: center; gap: 8px; padding: 4px 0; color: #34495d; font-size: 13px; cursor: pointer; }
.trip-results__check input { width: 16px; height: 16px; margin: 0; accent-color: #087da3; }
.trip-results__check span { flex: 1 1 auto; }
.trip-results__check small { color: #8494a3; font-size: 11px; }
.trip-results__check.is-empty { opacity: .5; }
.trip-results__select { display: grid; }
.trip-results__select select { min-height: 40px; padding: 0 10px; border: 1px solid #dfe5e7; border-radius: 8px; background: #fff; color: #203b56; font: inherit; font-size: 13px; }
.trip-results__filter-actions { display: grid; gap: 10px; justify-items: center; }
.trip-results__filter-actions .site-route-button { width: 100%; min-height: 44px; }
.trip-results__filter-actions a, .trip-results__chips-clear { color: #087da3; font-size: 13px; font-weight: 700; text-decoration: none; }
.trip-results__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 20px; }
.trip-results__count { margin: 0; color: #475d70; font-size: 14px; }
.trip-results__count strong { color: #16314c; font-size: 24px; letter-spacing: -.04em; }
.trip-results__sort { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 12px; }
.trip-results__sort > span { color: #5b6b7b; }
.trip-results__sort a { padding: 6px 11px; border: 1px solid #e2e8e9; border-radius: 20px; background: #fff; color: #43566b; font-weight: 700; text-decoration: none; }
.trip-results__sort a:hover, .trip-results__sort a[aria-current] { border-color: #7ca9ba; background: #e8f5fa; color: #006d9d; }
.trip-results__chips { margin: 14px 0 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; list-style: none; }
.trip-results__chips a:not(.trip-results__chips-clear) { padding: 5px 10px; display: inline-block; border-radius: 20px; background: #15384b; color: #fff; font-size: 12px; font-weight: 700; text-decoration: none; }
.trip-results__chips-clear { margin-left: 4px; }
.trip-results .catalog-card-grid.trip-results__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.trip-results__pages { margin: 26px 0 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; }
.trip-results__pages a, .trip-results__pages span { min-width: 38px; min-height: 38px; padding: 0 10px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid #e2e8e9; border-radius: 8px; background: #fff; color: #203b56; font-size: 13px; font-weight: 700; text-decoration: none; }
.trip-results__pages span[aria-current] { border-color: #15384b; background: #15384b; color: #fff; }
.trip-results .site-route-empty { margin-top: 20px; }
@media (max-width: 1200px) { .trip-results .catalog-card-grid.trip-results__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 900px) {
  .trip-results__layout { grid-template-columns: 1fr; }
  .trip-results__aside { position: static; }
  .trip-results__filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .trip-results__select, .trip-results__filter-actions { grid-column: 1 / -1; }
}
@media (max-width: 620px) {
  .trip-results__filters { grid-template-columns: 1fr; }
  .trip-results .catalog-card-grid.trip-results__grid { grid-template-columns: 1fr; }
}

body.online-search-page .site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
}

/* iOS Safari zooms the page when a focused control has a font size below 16px. */
@media (pointer: coarse) {
  input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]):not([type="button"]),
  select,
  textarea {
    font-size: 16px;
  }
}

/* Cookie consent banner */
.cookie-banner {
  position: fixed;
  left: 16px;
  bottom: 16px;
  z-index: 2100;
  width: min(400px, calc(100vw - 32px));
  max-height: calc(100vh - 32px);
  overflow-y: auto;
  padding: 16px 18px 18px;
  border: 1px solid #d5e0e3;
  border-radius: 14px;
  background: #fff;
  color: #172634;
  box-shadow: 0 12px 36px rgba(23, 38, 52, .22);
  font-size: 13px;
  line-height: 1.5;
}
.cookie-banner p { margin: 0; }
.cookie-banner__title { margin-bottom: 4px !important; font-size: 15px; font-weight: 800; }
.cookie-banner__body { color: #33475e; }
.cookie-banner__links { margin-top: 6px !important; }
.cookie-banner__links a, .cookie-banner__details summary { color: #176b83; font-weight: 700; text-decoration: underline; text-underline-offset: 2px; cursor: pointer; }
.cookie-banner__details { margin-top: 6px; }
.cookie-banner__details summary { display: inline-block; }
.cookie-banner__details p { margin-top: 6px; color: #47545f; font-size: 12px; }
.cookie-banner__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 14px; }
.cookie-banner__button {
  min-height: 44px;
  padding: 10px 12px;
  border: 2px solid #172634;
  border-radius: 10px;
  background: #fff;
  color: #172634;
  font: inherit;
  font-size: 14px;
  font-weight: 800;
  cursor: pointer;
}
.cookie-banner__button:hover { background: #f1f5f6; }
.cookie-banner a:focus-visible, .cookie-banner summary:focus-visible, .cookie-banner__button:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.cookie-settings-link {
  padding: 0;
  border: 0;
  background: none;
  color: inherit;
  font: inherit;
  font-size: 11px;
  text-decoration: underline;
  cursor: pointer;
}
.cookie-settings-link:hover { color: var(--yellow); }
.cookie-settings-link:focus-visible { outline: 2px solid var(--yellow); outline-offset: 3px; }
@media (max-width: 560px) {
  .cookie-banner { left: 8px; right: 8px; bottom: 8px; width: auto; }
  .site-footer__bottom { flex-wrap: wrap; }
}
.site-footer__bottom .cookie-settings-link { color: #e3ebf0; }
.newsletter-fallback-button { width: fit-content; min-width: 200px; }
.form-guard-field { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
