/* Thailand Express site.css: generated by scripts/css-bundle.js from tokens.css + base.css + components.css + legacy-skin.css + legacy-patterns.css + attractions.css + hotels.css + transfers.css + flights.css + mobile.css. Do not edit. */
/* tokens.css */
:root {
  --c-navy-950: #04182e;
  --c-navy-900: #072742;
  --c-navy-800: #0b3a5e;
  --c-navy-700: #10507f;
  --c-navy-600: #17689f;
  --c-sea-600: #0d7d8f;
  --c-sea-500: #12a0b3;
  --c-sea-400: #2dbed0;
  --c-sea-200: #9fe3ec;
  --c-sea-050: #eaf8fb;
  --c-gold-700: #a96f08;
  --c-gold-600: #d08c0d;
  --c-gold-500: #f0a81a;
  --c-gold-200: #fbe3b0;
  --c-gold-050: #fdf6e8;
  --c-ink-900: #14181d;
  --c-ink-700: #33404d;
  --c-ink-500: #5c6b7a;
  --c-ink-400: #8494a3;
  --c-line:    #dfe4ea;
  --c-surface-raised: #ffffff;
  --c-surface:        #f7f5f1;
  --c-white:          #ffffff;
  --c-success: #17794a;
  --c-danger:  #b3261e;
  --bg-page:       var(--c-surface);
  --bg-card:       var(--c-surface-raised);
  --text-strong:   var(--c-ink-900);
  --text-body:     var(--c-ink-700);
  --text-muted:    var(--c-ink-500);
  --text-on-dark:  var(--c-white);
  --accent:        var(--c-sea-600);
  --accent-warm:   var(--c-gold-600);
  --border:        var(--c-line);
  --font-display: "Heebo", system-ui, sans-serif;
  --font-body:    "Assistant", system-ui, sans-serif;
  --font-mono:    ui-monospace, "SF Mono", monospace;
  --fs-3xs: 0.75rem;
  --fs-2xs: 0.8125rem;
  --fs-xs:  0.875rem;
  --fs-sm:  0.9375rem;
  --fs-md:  1rem;
  --fs-lg:  1.0625rem;
  --fs-xl:  clamp(1.1rem, 1rem + 0.5vw, 1.28rem);
  --fs-2xl: clamp(1.38rem, 1.2rem + 0.8vw, 1.68rem);
  --fs-3xl: clamp(1.6rem, 1.35rem + 1.2vw, 2.1rem);
  --fs-4xl: clamp(1.75rem, 1.4rem + 1.8vw, 2.5rem);
  --fs-5xl: clamp(2rem, 1.5rem + 2.6vw, 3.2rem);
  --fw-regular: 400;
  --fw-medium:  500;
  --fw-semibold:600;
  --fw-bold:    700;
  --fw-black:   900;
  --lh-tight:   1.15;
  --lh-snug:    1.3;
  --lh-normal:  1.6;
  --lh-relaxed: 1.65;
  --ls-tight: -0.02em;
  --ls-normal: 0;
  --ls-wide:   0.06em;
  --sp-1:  0.25rem;
  --sp-2:  0.5rem;
  --sp-3:  0.75rem;
  --sp-4:  1rem;
  --sp-5:  1.5rem;
  --sp-6:  1.75rem;
  --sp-7:  2.1rem;
  --sp-8:  2.5rem;
  --sp-9:  3.2rem;
  --sp-10: 4rem;
  --sp-11: 5rem;
  --sp-12: 6rem;
  --section-y: clamp(var(--sp-6), 2.6vw, var(--sp-8));
  --section-pad: clamp(1.25rem, 1.9vw, 1.85rem);
  --gutter:    clamp(var(--sp-4), 4vw, var(--sp-7));
  --w-prose: 68ch;
  --w-content: 1120px;
  --w-wide:    1360px;
  --r-sm:   6px;
  --r-md:   14px;
  --r-lg:   24px;
  --r-full: 999px;
  --shadow-sm: 0 1px 2px rgba(7, 39, 66, 0.06);
  --shadow-md: 0 4px 16px -4px rgba(7, 39, 66, 0.12);
  --shadow-lg: 0 18px 44px -12px rgba(7, 39, 66, 0.22);
  --ease: cubic-bezier(0.22, 0.61, 0.36, 1);
  --dur-fast: 140ms;
  --dur-mid:  260ms;
  --z-sticky: 50;
  --z-header: 100;
  --z-modal:  1000;
  --tap-min: 44px;
  --tap-cta: 48px;
  --control-font-min: 16px;
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
/* base.css */
*, *::before, *::after { box-sizing: border-box; }
html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--header-h, 66px) + var(--fl-bar-h, 0px) + var(--sp-4));
}
body {
  margin: 0;
  background: var(--bg-page);
  color: var(--text-body);
  font-family: var(--font-body);
  font-size: var(--fs-md);
  line-height: var(--lh-relaxed);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
img, picture, video, svg { max-width: 100%; height: auto; display: block; }
svg { fill: currentColor; }
h1, h2, h3, h4 {
  font-family: var(--font-display);
  color: var(--text-strong);
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-tight);
  margin: 0 0 var(--sp-4);
  text-wrap: balance;
}
h1 { font-size: var(--fs-4xl); font-weight: var(--fw-black); }
h2 { font-size: var(--fs-3xl); font-weight: var(--fw-bold); }
h3 { font-size: var(--fs-xl);  font-weight: var(--fw-bold);  line-height: var(--lh-snug); }
h4 { font-size: var(--fs-lg);  font-weight: var(--fw-semibold); line-height: var(--lh-snug); }
p { margin: 0 0 var(--sp-4); max-width: var(--w-prose); text-wrap: pretty; }
p:where(:last-child) { margin-bottom: 0; }
strong, b { font-weight: var(--fw-bold); color: var(--text-strong); }
small { font-size: var(--fs-xs); }
a {
  color: var(--c-sea-600);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
  transition: color var(--dur-fast) var(--ease);
}
a:hover { color: var(--c-navy-800); }
ul, ol { margin: 0 0 var(--sp-4); padding-inline-start: var(--sp-5); }
li { margin-bottom: var(--sp-2); }
li::marker { color: var(--c-sea-500); }
hr { border: 0; border-top: 1px solid var(--border); margin: var(--sp-7) 0; }
:focus-visible {
  outline: 3px solid var(--c-sea-500);
  outline-offset: 2px;
  border-radius: var(--r-sm);
}
.skip-link {
  position: absolute;
  inset-inline-start: var(--sp-4);
  top: -100%;
  z-index: var(--z-modal);
  background: var(--c-navy-900);
  color: var(--text-on-dark);
  padding: var(--sp-3) var(--sp-5);
  border-radius: 0 0 var(--r-md) var(--r-md);
  font-weight: var(--fw-semibold);
  text-decoration: none;
}
.skip-link:focus { top: 0; color: var(--text-on-dark); }
.visually-hidden {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%);
  white-space: nowrap; border: 0;
}
.container {
  width: 100%;
  max-width: var(--w-content);
  margin-inline: auto;
  padding-inline: var(--gutter);
}
.container--wide { max-width: var(--w-wide); }
.container--prose { max-width: 76ch; }
.section { padding-block: var(--section-y); }
.section--tight { padding-block: clamp(var(--sp-6), 4vw, var(--sp-8)); }
.section--dark {
  background: var(--c-navy-900);
  color: rgba(255, 255, 255, 0.86);
}
.section--dark h1, .section--dark h2,
.section--dark h3, .section--dark h4 { color: var(--text-on-dark); }
.section--dark a { color: var(--c-sea-200); }
.section--sand { background: var(--c-gold-050); }
.section--sea  { background: var(--c-sea-050); }
.section-head { margin-bottom: var(--sp-7); max-width: 62ch; }
.section-head .eyebrow {
  display: inline-block;
  font-family: var(--font-display);
  font-size: var(--fs-2xs);
  font-weight: var(--fw-bold);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--c-sea-600);
  margin-bottom: var(--sp-2);
}
.section-head p { color: var(--text-muted); font-size: var(--fs-lg); }
.grid { display: grid; gap: var(--sp-5); }
@media (min-width: 640px)  { .grid--2 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px)  { .grid--3 { grid-template-columns: repeat(3, 1fr); }
                             .grid--4 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .grid--4 { grid-template-columns: repeat(4, 1fr); } }
@media (min-width: 900px) {
  .grid--offset { grid-template-columns: 1.4fr 1fr; align-items: center; gap: var(--sp-8); }
  .grid--offset-rev { grid-template-columns: 1fr 1.4fr; align-items: center; gap: var(--sp-8); }
}
.stack > * + * { margin-top: var(--sp-4); }
.stack-lg > * + * { margin-top: var(--sp-6); }
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp-2);
  font-family: var(--font-display);
  font-size: var(--fs-md);
  font-weight: var(--fw-bold);
  line-height: 1;
  padding: var(--sp-3) var(--sp-5);
  min-height: 48px;
  border: 1.5px solid transparent;
  border-radius: var(--r-full);
  cursor: pointer;
  text-decoration: none;
  transition: background var(--dur-fast) var(--ease),
              color var(--dur-fast) var(--ease),
              border-color var(--dur-fast) var(--ease);
}
.btn--primary {
  background: var(--c-gold-500);
  color: var(--c-navy-950);
}
.btn--primary:hover { background: var(--c-gold-600); color: var(--c-navy-950); }
.btn--secondary {
  background: var(--c-navy-800);
  color: var(--text-on-dark);
}
.btn--secondary:hover { background: var(--c-navy-900); color: var(--text-on-dark); }
.btn--ghost {
  background: transparent;
  border-color: currentColor;
  color: var(--c-navy-800);
}
.btn--ghost:hover { background: var(--c-navy-800); color: var(--text-on-dark); }
.btn--on-dark { background: var(--c-white); color: var(--c-navy-900); }
.btn--on-dark:hover { background: var(--c-sea-050); color: var(--c-navy-950); }
.btn--lg { font-size: var(--fs-lg); padding: var(--sp-4) var(--sp-7); min-height: 56px; }
.btn--block { width: 100%; }
.btn-row { display: flex; flex-wrap: wrap; gap: var(--sp-3); }
.tag {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-1);
  font-family: var(--font-display);
  font-size: var(--fs-2xs);
  font-weight: var(--fw-semibold);
  padding: var(--sp-1) var(--sp-3);
  border-radius: var(--r-full);
  background: var(--c-sea-050);
  color: var(--c-sea-600);
  border: 1px solid var(--c-sea-200);
}
.tag--warm { background: var(--c-gold-050); color: var(--c-gold-700); border-color: var(--c-gold-200); }
.media { position: relative; overflow: hidden; border-radius: var(--r-lg); background: var(--c-navy-800); }
.media img { width: 100%; height: 100%; object-fit: cover; }
.media--4x3  { aspect-ratio: 4 / 3; }
.media--16x9 { aspect-ratio: 16 / 9; }
.media--3x4  { aspect-ratio: 3 / 4; }
.media--square { aspect-ratio: 1; }
figure { margin: 0 0 var(--sp-5); }
figcaption {
  font-size: var(--fs-xs);
  color: var(--text-muted);
  margin-top: var(--sp-2);
  padding-inline-start: var(--sp-3);
  border-inline-start: 2px solid var(--c-sea-200);
}
.ltr-num { direction: ltr; unicode-bidi: isolate; display: inline-block; }
:where([hidden]) { display: none !important; }
.grid {
  width: 100%;
  box-sizing: border-box;
}
@media (max-width: 720px) {
  main table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    max-inline-size: 100%;
    scroll-snap-type: x proximity;
  }
  main table :where(th:first-child, td:first-child) { min-inline-size: 96px; }
}
/* components.css */
.site-header {
  position: sticky;
  top: 0;
  z-index: var(--z-header);
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: saturate(160%) blur(12px);
  border-bottom: 1px solid var(--border);
}
.header-inner {
  display: flex;
  align-items: center;
  gap: var(--sp-4);
  min-height: 64px;
}
.brand { display: flex; align-items: center; gap: var(--sp-2); text-decoration: none; flex-shrink: 0; }
.brand img { height: 40px; width: auto; }
.brand-name {
  font-family: var(--font-display);
  font-weight: var(--fw-black);
  font-size: var(--fs-lg);
  color: var(--c-navy-900);
  line-height: 1.1;
}
.nav-toggle {
  margin-inline-start: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px; height: 48px;
  background: none;
  border: 1px solid var(--border);
  border-radius: var(--r-sm);
  cursor: pointer;
  color: var(--c-navy-900);
}
.nav-toggle svg { width: 22px; height: 22px; }
.nav-toggle[aria-expanded="true"] .icon-menu,
.nav-toggle[aria-expanded="false"] .icon-close { display: none; }
.main-nav { display: none; }
.main-nav[data-open="true"] {
  display: block;
  position: absolute;
  inset-inline: 0;
  top: 100%;
  background: var(--c-white);
  border-bottom: 1px solid var(--border);
  box-shadow: var(--shadow-lg);
  padding: var(--sp-4) var(--gutter) var(--sp-6);
  max-height: calc(100dvh - 64px);
  overflow-y: auto;
}
.main-nav ul { list-style: none; margin: 0; padding: 0; }
.main-nav > ul > li { border-bottom: 1px solid var(--border); }
.main-nav > ul > li:last-child { border-bottom: 0; }
.main-nav a {
  display: block;
  padding: var(--sp-3) 0;
  font-family: var(--font-display);
  font-weight: var(--fw-semibold);
  color: var(--c-navy-900);
  text-decoration: none;
  min-height: 48px;
  line-height: 1.5;
}
.main-nav a:hover, .main-nav a[aria-current="page"] { color: var(--c-sea-600); }
.header-cta { display: none; }
@media (min-width: 1000px) {
  .nav-toggle { display: none; }
  .main-nav { display: block; margin-inline-start: auto; }
  .main-nav > ul { display: flex; gap: var(--sp-1); }
  .main-nav > ul > li { border: 0; position: relative; }
  .main-nav a { padding: var(--sp-2) var(--sp-3); border-radius: var(--r-sm); min-height: 0; }
  .main-nav a:hover { background: var(--c-sea-050); }
  .main-nav li > ul {
    position: absolute;
    top: 100%;
    inset-inline-start: 0;
    min-width: 230px;
    background: var(--c-white);
    border: 1px solid var(--border);
    border-radius: var(--r-md);
    box-shadow: var(--shadow-lg);
    padding: var(--sp-2);
    opacity: 0; visibility: hidden;
    transform: translateY(-6px);
    transition: opacity var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease), visibility var(--dur-fast);
  }
  .main-nav li:hover > ul,
  .main-nav li:has(> a:focus-visible) > ul,
  .main-nav li:has(ul :focus-visible) > ul {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }
  .main-nav li { position: relative; }
  .main-nav li:hover,
  .main-nav li:has(:focus-visible) { z-index: 2; }
  .main-nav li > ul { z-index: 1; }
  .main-nav li > ul { transition-delay: 120ms; }
  .main-nav li:hover > ul,
  .main-nav li:has(:focus-visible) > ul { transition-delay: 0s; }
  .header-cta { display: inline-flex; flex-shrink: 0; }
}
.breadcrumbs { padding-block: var(--sp-3); font-size: var(--fs-xs); }
.breadcrumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: var(--sp-2); margin: 0; padding: 0; }
.breadcrumbs li { margin: 0; display: flex; align-items: center; gap: var(--sp-2); color: var(--text-muted); }
.breadcrumbs li + li::before { content: "‹"; color: var(--c-ink-400); }
.breadcrumbs a { color: var(--text-muted); text-decoration: none; }
.breadcrumbs a:hover { color: var(--c-sea-600); text-decoration: underline; }
.breadcrumbs [aria-current="page"] { color: var(--text-strong); font-weight: var(--fw-semibold); }
.hero { position: relative; isolation: isolate; background: var(--c-navy-900); }
.hero__media { position: absolute; inset: 0; z-index: -2; }
.hero__media img { width: 100%; height: 100%; object-fit: cover; }
.hero::after {
  content: "";
  position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(to top,
    rgba(4, 24, 46, 0.94) 0%,
    rgba(4, 24, 46, 0.72) 42%,
    rgba(4, 24, 46, 0.38) 100%);
}
.hero__inner {
  padding-block: clamp(var(--sp-9), 12vw, var(--sp-12));
  color: rgba(255, 255, 255, 0.9);
  max-width: 62ch;
}
.hero h1 { color: var(--text-on-dark); font-size: var(--fs-5xl); margin-bottom: var(--sp-4); }
.hero__lede { font-size: var(--fs-lg); line-height: var(--lh-normal); margin-bottom: var(--sp-6); }
.hero__eyebrow {
  display: inline-block;
  font-family: var(--font-display);
  font-size: var(--fs-2xs);
  font-weight: var(--fw-bold);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--c-gold-500);
  margin-bottom: var(--sp-3);
}
.hero .btn-row { margin-bottom: var(--sp-5); }
.hero__facts {
  display: flex; flex-wrap: wrap; gap: var(--sp-3) var(--sp-6);
  padding-top: var(--sp-5);
  border-top: 1px solid rgba(255, 255, 255, 0.18);
  font-size: var(--fs-sm);
}
.hero__fact { display: flex; flex-direction: column; gap: 2px; }
.hero__fact dt { font-size: var(--fs-3xs); text-transform: uppercase; letter-spacing: var(--ls-wide); color: var(--c-sea-200); }
.hero__fact dd { margin: 0; font-family: var(--font-display); font-weight: var(--fw-bold); color: var(--text-on-dark); font-size: var(--fs-md); }
.hero--compact .hero__inner { padding-block: clamp(var(--sp-6), 4.5vw, var(--sp-8)); }
.hero--compact h1 { font-size: var(--fs-3xl); }
.card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: border-color var(--dur-mid) var(--ease), box-shadow var(--dur-mid) var(--ease);
}
.card:hover { border-color: var(--c-sea-200); box-shadow: var(--shadow-md); }
.card__media { aspect-ratio: 4 / 3; overflow: hidden; background: #eceff3; }
.card__media img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 600ms var(--ease);
}
.card:hover .card__media img { transform: scale(1.04); }
.card__body { padding: var(--sp-4) var(--sp-5) var(--sp-5); display: flex; flex-direction: column; gap: var(--sp-2); flex: 1; }
.card__title { font-size: var(--fs-lg); font-weight: var(--fw-bold); margin: 0; }
.card__title a { color: inherit; text-decoration: none; }
.card__title a::after { content: ""; position: absolute; inset: 0; }
.card { position: relative; }
.card__text { font-size: var(--fs-sm); color: var(--text-muted); margin: 0; }
.card__foot { margin-top: auto; padding-top: var(--sp-3); display: flex; align-items: baseline; justify-content: space-between; gap: var(--sp-3); }
.card__price { font-family: var(--font-display); font-weight: var(--fw-black); font-size: var(--fs-lg); color: var(--c-navy-800); }
.card__price small { font-weight: var(--fw-regular); color: var(--text-muted); font-size: var(--fs-2xs); }
.card--feature { }
@media (min-width: 760px) {
  .card--feature { flex-direction: row; grid-column: 1 / -1; }
  .card--feature .card__media { aspect-ratio: auto; flex: 0 0 44%; }
  .card--feature .card__body { padding: var(--sp-6) var(--sp-7); justify-content: center; }
  .card--feature .card__title { font-size: var(--fs-2xl); }
}
.pricing { margin-block: var(--sp-6); }
.pricing__note {
  font-size: var(--fs-sm);
  color: var(--text-muted);
  margin-top: var(--sp-3);
  padding-inline-start: var(--sp-3);
  border-inline-start: 3px solid var(--c-gold-200);
}
.price-table { width: 100%; border-collapse: collapse; font-size: var(--fs-sm); }
.price-table caption {
  text-align: start;
  font-family: var(--font-display);
  font-weight: var(--fw-bold);
  font-size: var(--fs-lg);
  color: var(--text-strong);
  margin-bottom: var(--sp-3);
}
.price-table th, .price-table td {
  padding: var(--sp-3);
  text-align: start;
  border-bottom: 1px solid var(--border);
  vertical-align: top;
}
.price-table thead th {
  background: var(--c-navy-900);
  color: var(--text-on-dark);
  font-family: var(--font-display);
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  border-bottom: 0;
}
.price-table thead th:first-child { border-start-start-radius: var(--r-sm); }
.price-table thead th:last-child  { border-start-end-radius: var(--r-sm); }
.price-table tbody tr:nth-child(even) { background: rgba(18, 160, 179, 0.04); }
.price-table .price {
  font-family: var(--font-display);
  font-weight: var(--fw-black);
  color: var(--c-navy-800);
  white-space: nowrap;
  direction: ltr;
  unicode-bidi: isolate;
  text-align: start;
}
@media (max-width: 719px) {
  .price-table, .price-table tbody, .price-table tr, .price-table td { display: block; width: 100%; }
  .price-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .price-table tr {
    border: 1px solid var(--border);
    border-radius: var(--r-md);
    margin-bottom: var(--sp-3);
    background: var(--bg-card);
    overflow: hidden;
  }
  .price-table tbody tr:nth-child(even) { background: var(--bg-card); }
  .price-table td { border-bottom: 1px solid var(--border); padding: var(--sp-3) var(--sp-4); }
  .price-table td:last-child { border-bottom: 0; }
  .price-table td[data-label]::before {
    content: attr(data-label);
    display: block;
    font-size: var(--fs-3xs);
    font-weight: var(--fw-bold);
    letter-spacing: var(--ls-wide);
    text-transform: uppercase;
    color: var(--text-muted);
    margin-bottom: 2px;
  }
}
.price-card {
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  padding: var(--sp-5);
  background: var(--bg-card);
  display: flex; flex-direction: column; gap: var(--sp-2);
}
.price-card--highlight { border-color: var(--c-gold-500); border-width: 2px; background: var(--c-gold-050); }
.price-card__label { font-family: var(--font-display); font-weight: var(--fw-bold); font-size: var(--fs-md); color: var(--text-strong); }
.price-card__amount { font-family: var(--font-display); font-weight: var(--fw-black); font-size: var(--fs-2xl); color: var(--c-navy-800); direction: ltr; unicode-bidi: isolate; }
.price-card__meta { font-size: var(--fs-xs); color: var(--text-muted); }
.inclusions { display: grid; gap: var(--sp-5); margin-block: var(--sp-6); }
@media (min-width: 760px) { .inclusions { grid-template-columns: 1fr 1fr; } }
.inclusion-list { border-radius: var(--r-md); padding: var(--sp-5); border: 1px solid var(--border); background: var(--bg-card); }
.inclusion-list h3 { font-size: var(--fs-md); margin-bottom: var(--sp-3); display: flex; align-items: center; gap: var(--sp-2); }
.inclusion-list ul { list-style: none; padding: 0; margin: 0; }
.inclusion-list li { position: relative; padding-inline-start: var(--sp-6); margin-bottom: var(--sp-3); font-size: var(--fs-sm); }
.inclusion-list li:last-child { margin-bottom: 0; }
.inclusion-list li::before {
  position: absolute;
  inset-inline-start: 0; top: 0.1em;
  font-weight: var(--fw-bold);
  font-size: var(--fs-md);
}
.inclusion-list--yes { border-inline-start: 4px solid var(--c-success); }
.inclusion-list--yes li::before { content: "✓"; color: var(--c-success); }
.inclusion-list--no { border-inline-start: 4px solid var(--c-ink-400); }
.inclusion-list--no li::before { content: "✕"; color: var(--c-ink-400); }
.faq { margin-block: var(--sp-6); }
.faq__item { border-bottom: 1px solid var(--border); }
.faq__item summary {
  display: flex; align-items: center; justify-content: space-between; gap: var(--sp-4);
  padding: var(--sp-4) 0;
  cursor: pointer;
  font-family: var(--font-display);
  font-weight: var(--fw-semibold);
  font-size: var(--fs-md);
  color: var(--text-strong);
  list-style: none;
  min-height: 48px;
}
.faq__item summary::-webkit-details-marker { display: none; }
.faq__item summary::after {
  content: "+";
  flex-shrink: 0;
  width: 28px; height: 28px;
  display: grid; place-items: center;
  border-radius: var(--r-full);
  background: var(--c-sea-050);
  color: var(--c-sea-600);
  font-size: var(--fs-lg);
  font-weight: var(--fw-bold);
  transition: transform var(--dur-mid) var(--ease);
}
.faq__item[open] summary::after { content: "−"; transform: rotate(180deg); }
.faq__answer { padding-bottom: var(--sp-5); font-size: var(--fs-sm); color: var(--text-body); }
.prose { max-width: 76ch; }
.prose > * + * { margin-top: var(--sp-4); }
.prose h2 { margin-top: var(--sp-8); font-size: var(--fs-2xl); }
.prose h3 { margin-top: var(--sp-6); }
.prose h2:first-child, .prose h3:first-child { margin-top: 0; }
.prose img { border-radius: var(--r-md); margin-block: var(--sp-5); }
.prose table { width: 100%; border-collapse: collapse; font-size: var(--fs-sm); margin-block: var(--sp-5); }
.prose th, .prose td { padding: var(--sp-3); border: 1px solid var(--border); text-align: start; }
.prose th { background: var(--c-sea-050); font-family: var(--font-display); font-weight: var(--fw-bold); }
.prose blockquote {
  margin: var(--sp-5) 0;
  padding: var(--sp-4) var(--sp-5);
  border-inline-start: 4px solid var(--c-gold-500);
  background: var(--c-gold-050);
  border-radius: 0 var(--r-md) var(--r-md) 0;
}
.prose blockquote p:last-child { margin-bottom: 0; }
.cta-band {
  background: var(--c-navy-900);
  color: rgba(255, 255, 255, 0.88);
  border-radius: var(--r-lg);
  padding: clamp(var(--sp-6), 5vw, var(--sp-8));
  display: grid;
  gap: var(--sp-5);
}
@media (min-width: 860px) {
  .cta-band { grid-template-columns: 1.6fr auto; align-items: center; }
}
.cta-band h2 { color: var(--text-on-dark); font-size: var(--fs-2xl); margin-bottom: var(--sp-2); }
.cta-band p { margin: 0; }
.wa-float {
  position: fixed;
  inset-inline-start: 17px;
  inset-inline-end: auto;
  bottom: 34px;
  z-index: 45;
  width: 46px; height: 46px;
  border-radius: var(--r-full);
  background: #25d366;
  color: #fff;
  display: grid; place-items: center;
  box-shadow: var(--shadow-lg);
  text-decoration: none;
}
.wa-float svg { width: 26px; height: 26px; }
.wa-float { transition: opacity .3s, transform .3s; }
.wa-float.is-tucked { transform: translateX(calc(-100% - 24px)); opacity: 0; pointer-events: none; }
html[dir="rtl"] .wa-float.is-tucked { transform: translateX(calc(100% + 24px)); }
@media (prefers-reduced-motion: reduce) { .wa-float { transition: none; } }
.wa-bar { display: none; }
@media (max-width: 860px) {
  body.has-wa-bar { padding-block-end: 80px; }
  body.has-wa-bar .wa-bar {
    display: flex; justify-content: center; align-items: center; gap: 12px;
    position: fixed; inset-inline: 0; bottom: 0; z-index: 30;
    padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
    background: #fff; box-shadow: 0 -2px 12px rgba(0,0,0,.12);
  }
  body.has-wa-bar .wa-bar a {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    min-height: 48px; padding: 0 22px; border-radius: var(--r-full);
    background: #25d366; color: #fff; font-weight: 700; text-decoration: none; flex: 1; max-width: 420px;
  }
  body.has-wa-bar .wa-bar svg { width: 22px; height: 22px; fill: currentColor; }
  body.has-wa-bar .wa-float { display: none; }
}
.site-footer {
  background: var(--c-navy-950);
  color: rgba(255, 255, 255, 0.7);
  padding-block: var(--sp-8) var(--sp-6);
  font-size: var(--fs-sm);
}
.footer-grid { display: grid; gap: var(--sp-6); }
@media (min-width: 720px)  { .footer-grid { grid-template-columns: 1.4fr 1fr 1fr; } }
@media (min-width: 1000px) { .footer-grid { grid-template-columns: 1.6fr 1fr 1fr 1fr; } }
.site-footer h3 {
  color: var(--text-on-dark);
  font-size: var(--fs-sm);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  margin-bottom: var(--sp-3);
}
.site-footer ul { list-style: none; padding: 0; margin: 0; }
.site-footer li { margin-bottom: var(--sp-2); }
.site-footer a { color: rgba(255, 255, 255, 0.7); text-decoration: none; }
.site-footer a:hover { color: var(--c-sea-200); text-decoration: underline; }
.footer-bottom {
  margin-top: var(--sp-7);
  padding-top: var(--sp-5);
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  display: flex; flex-wrap: wrap; gap: var(--sp-3) var(--sp-5);
  justify-content: space-between;
  font-size: var(--fs-xs);
  color: rgba(255, 255, 255, 0.55);
}
.staging-flag {
  background: repeating-linear-gradient(45deg, #b3261e, #b3261e 12px, #8f1e18 12px, #8f1e18 24px);
  color: #fff;
  text-align: center;
  font-family: var(--font-display);
  font-weight: var(--fw-bold);
  font-size: var(--fs-xs);
  padding: var(--sp-2) var(--sp-4);
  letter-spacing: var(--ls-wide);
}
.call-bar { display: flex; flex-wrap: wrap; }
.call-link {
  flex: 1 1 200px;
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  padding: var(--sp-2) var(--sp-4);
  text-decoration: none;
  color: #fff;
  min-height: 52px;
  transition: filter var(--dur-fast) var(--ease);
}
.call-link:hover { filter: brightness(1.08); color: #fff; }
.call-link--th { background: #1aa260; }
.call-link--il { background: #4fb3e8; }
.call-icon {
  display: grid; place-items: center;
  width: 34px; height: 34px;
  border-radius: var(--r-full);
  background: rgba(255, 255, 255, 0.2);
  flex-shrink: 0;
}
.call-text { display: flex; flex-direction: column; line-height: 1.2; }
.call-primary { font-family: var(--font-display); font-size: var(--fs-xs); font-weight: var(--fw-semibold); }
.call-number  { font-family: var(--font-display); font-size: var(--fs-sm); font-weight: var(--fw-bold); direction: ltr; unicode-bidi: isolate; }
@media (max-width: 520px) {
  .call-link { padding: var(--sp-2) var(--sp-3); min-height: 46px; }
  .call-primary { font-size: var(--fs-3xs); }
  .call-number { font-size: var(--fs-xs); }
}
.main-nav a[aria-current="page"] {
  position: relative;
  color: var(--c-gold-600);
}
@media (min-width: 1000px) {
  .main-nav a[aria-current="page"]::after {
    content: "";
    position: absolute;
    inset-inline: var(--sp-3);
    bottom: -2px;
    height: 3px;
    border-radius: var(--r-full);
    background: var(--c-gold-500);
  }
}
:root {
  --c-cta-600: var(--c-gold-500);
  --c-cta-700: var(--c-gold-600);
  --c-cta-ink: var(--c-navy-950);
}
.lead-section { background: var(--c-surface); }
.lead-card {
  background: var(--c-white);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-lg);
  padding: clamp(var(--sp-5), 4vw, var(--sp-8));
  max-width: 820px;
  margin-inline: auto;
}
.lead-eyebrow {
  display: block;
  font-family: var(--font-display);
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
  color: var(--c-sea-600);
  margin-bottom: var(--sp-2);
}
.lead-title { font-size: var(--fs-3xl); margin-bottom: var(--sp-2); }
.lead-sub { color: var(--text-muted); font-size: var(--fs-sm); margin-bottom: var(--sp-5); max-width: none; }
.lead-choice {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--sp-3);
  border: 0; padding: 0; margin: 0 0 var(--sp-5);
}
@media (min-width: 720px) { .lead-choice { grid-template-columns: repeat(3, 1fr); } }
.lead-opt {
  font-family: var(--font-display);
  font-size: var(--fs-sm);
  font-weight: var(--fw-bold);
  color: var(--text-strong);
  background: var(--c-white);
  border: 1.5px solid var(--border);
  border-radius: var(--r-md);
  padding: var(--sp-3) var(--sp-4);
  min-height: 52px;
  cursor: pointer;
  transition: all var(--dur-fast) var(--ease);
}
.lead-opt:hover { border-color: var(--c-sea-500); color: var(--c-sea-600); background: var(--c-sea-050); }
.lead-opt.is-active {
  background: var(--c-navy-800);
  border-color: var(--c-navy-800);
  color: var(--text-on-dark);
  box-shadow: 0 8px 20px -8px rgba(11, 58, 94, .55);
}
.lead-grid { display: grid; grid-template-columns: 1fr; gap: var(--sp-4); }
@media (min-width: 720px) { .lead-grid { grid-template-columns: 1fr 1fr; } }
.lead-field label {
  display: block;
  font-family: var(--font-display);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  color: var(--text-strong);
  margin-bottom: var(--sp-2);
}
.lead-field input,
.lead-field textarea {
  width: 100%;
  font-family: var(--font-body);
  font-size: var(--fs-md);
  color: var(--text-strong);
  background: var(--c-white);
  border: 1.5px solid var(--border);
  border-radius: var(--r-md);
  padding: var(--sp-3);
  min-height: 50px;
}
.lead-field input:focus,
.lead-field textarea:focus {
  border-color: var(--c-sea-500);
  outline: 2px solid rgba(18, 160, 179, .3);
  outline-offset: 1px;
}
.lead-field textarea { min-height: 96px; resize: vertical; }
.lead-field select {
  width: 100%;
  font-family: var(--font-body);
  font-size: var(--fs-md);
  color: var(--text-strong);
  background-color: var(--c-white);
  border: 1.5px solid var(--border);
  border-radius: var(--r-md);
  padding: var(--sp-2) var(--sp-3);
  min-height: 50px;
}
.lead-field select:focus {
  border-color: var(--c-sea-500);
  outline: 2px solid rgba(18, 160, 179, .3);
  outline-offset: 1px;
}
.lead-party { --tr-line: var(--c-line); margin-block: var(--sp-5) 0; }
.lead-ages { margin-block-start: var(--sp-4); }
.lead-ages__title {
  margin: 0 0 var(--sp-2);
  font-family: var(--font-display);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  color: var(--text-strong);
}
.lead-ages__list { grid-template-columns: repeat(auto-fill, minmax(132px, 1fr)); }
.lead-ages__err {
  margin: var(--sp-2) 0 0;
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  color: var(--c-danger, #b42318);
}
.lead-more-toggle {
  display: inline-block;
  margin-top: var(--sp-4);
  background: none; border: 0; padding: 0;
  font-family: var(--font-display);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  color: var(--text-body);
  text-decoration: underline;
  text-underline-offset: 0.2em;
  cursor: pointer;
}
.lead-more-toggle:hover { color: var(--c-sea-600); }
.lead-more { display: grid; gap: var(--sp-4); margin-top: var(--sp-4); }
.lead-consent {
  display: flex;
  align-items: flex-start;
  gap: var(--sp-3);
  margin-top: var(--sp-5);
  font-size: var(--fs-xs);
  color: var(--text-muted);
  line-height: var(--lh-normal);
}
.lead-consent input { width: 20px; height: 20px; margin-top: 2px; flex-shrink: 0; accent-color: var(--c-sea-600); }
.lead-consent a { color: var(--text-body); }
.lead-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-3);
  margin-top: var(--sp-5);
}
.lead-submit {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-2);
  font-family: var(--font-display);
  font-size: var(--fs-md);
  font-weight: var(--fw-bold);
  color: var(--c-cta-ink);
  background: var(--c-cta-600);
  border: 0;
  border-radius: var(--r-full);
  padding: var(--sp-3) var(--sp-6);
  min-height: 52px;
  cursor: pointer;
  transition: background var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);
}
.lead-submit:hover { background: var(--c-cta-700); color: var(--c-cta-ink); transform: translateY(-1px); }
.lead-submit:disabled { opacity: .7; cursor: default; transform: none; }
.lead-submit svg { transform: scaleX(-1); }
.lead-alt { font-size: var(--fs-sm); color: var(--text-muted); }
.lead-alt a { color: var(--c-sea-600); font-weight: var(--fw-semibold); }
.lead-status {
  margin-top: var(--sp-4);
  padding: var(--sp-4);
  border-radius: var(--r-md);
  background: rgba(23, 121, 74, .1);
  border: 1px solid var(--c-success);
  color: var(--c-success);
  font-weight: var(--fw-semibold);
}
.site-header {
  position: sticky; top: 0; z-index: var(--z-header);
  background: var(--c-navy-900);
  backdrop-filter: none;
  border-bottom: 0;
}
.header-row {
  display: flex;
  align-items: stretch;
  gap: var(--sp-4);
  min-height: 72px;
  max-width: var(--w-wide);
  margin-inline: auto;
  padding-inline: var(--gutter);
}
.brand {
  display: flex; align-items: center; gap: var(--sp-3);
  text-decoration: none; flex-shrink: 0;
}
.brand-mark {
  display: grid; place-items: center;
  width: 44px; height: 44px;
  border-radius: var(--r-full);
  background: var(--c-sea-500);
  color: #fff;
  font-family: var(--font-display);
  font-weight: var(--fw-black);
  font-size: var(--fs-md);
  letter-spacing: .5px;
}
.brand-name { color: #fff; font-size: var(--fs-sm); line-height: 1.15; }
.nav-toggle {
  margin-inline-start: auto;
  align-self: center;
  background: none;
  border: 1px solid rgba(255,255,255,.25);
  color: #fff;
}
.call-bar { display: none; margin-inline-start: auto; align-items: stretch; flex-shrink: 0; }
.call-link {
  display: flex; align-items: center; gap: var(--sp-2);
  padding: var(--sp-2) var(--sp-4);
  text-decoration: none; color: #fff;
  transition: filter var(--dur-fast) var(--ease);
}
.call-link:hover { filter: brightness(1.08); color: #fff; }
.call-link--th { background: #1aa260; }
.call-link--il { background: #4fb3e8; }
.call-icon {
  display: grid; place-items: center;
  width: 30px; height: 30px;
  border-radius: var(--r-full);
  background: rgba(255,255,255,.22);
  flex-shrink: 0;
}
.call-text { display: flex; flex-direction: column; line-height: 1.15; }
.call-primary { font-family: var(--font-display); font-size: var(--fs-3xs); font-weight: var(--fw-semibold); }
.call-number  { font-family: var(--font-display); font-size: var(--fs-xs); font-weight: var(--fw-bold); direction: ltr; unicode-bidi: isolate; }
.main-nav a { color: rgba(255,255,255,.9); }
.main-nav a:hover { color: var(--c-gold-500); background: transparent; }
.main-nav a[aria-current="page"] { color: var(--c-gold-500); }
@media (min-width: 1100px) {
  .call-bar { display: flex; }
  .main-nav { margin-inline-start: auto; align-self: center; }
  .main-nav > ul { gap: var(--sp-2); }
  .main-nav li > ul { background: var(--c-navy-900); border-color: rgba(255,255,255,.15); }
  .main-nav li > ul a { color: rgba(255,255,255,.9); }
  .main-nav li > ul a:hover { color: var(--c-gold-500); }
}
@media (max-width: 1099px) {
  .main-nav[data-open="true"] { background: var(--c-navy-900); border-bottom: 1px solid rgba(255,255,255,.15); }
  .main-nav > ul > li { border-bottom-color: rgba(255,255,255,.12); }
}
@media (max-width: 1099px) {
  .site-header + .call-bar-mobile { display: flex; }
}
.call-bar {
  display: flex;
  flex-wrap: wrap;
  margin-inline-start: 0;
  width: 100%;
}
.call-link { flex: 1 1 240px; justify-content: center; padding: var(--sp-2) var(--sp-4); min-height: 46px; }
.site-header {
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: saturate(160%) blur(12px);
  border-bottom: 1px solid var(--border);
}
.header-inner { min-height: 60px; }
.brand-logo { width: 46px; height: 46px; border-radius: var(--r-full); object-fit: contain; }
.brand-name { color: var(--c-navy-900); font-size: var(--fs-xs); font-weight: var(--fw-black); }
.nav-toggle { border-color: var(--border); color: var(--c-navy-900); }
.main-nav a { color: var(--c-navy-900); font-size: var(--fs-xs); }
.main-nav a:hover { color: var(--c-gold-600); background: var(--c-gold-050); }
.main-nav a[aria-current="page"] { color: var(--c-gold-600); }
@media (min-width: 1100px) {
  .main-nav li > ul { background: var(--c-white); border-color: var(--border); }
  .main-nav li > ul a { color: var(--c-navy-900); }
}
@media (max-width: 1099px) {
  .main-nav[data-open="true"] { background: var(--c-white); border-bottom: 1px solid var(--border); }
  .main-nav > ul > li { border-bottom-color: var(--border); }
}
.legacy .section,
.legacy .content-section { padding-block: clamp(var(--sp-6), 3vw, var(--sp-8)); }
.legacy h2 { margin-top: var(--sp-6); }
.legacy p { font-size: var(--fs-sm); }
.lead-card { padding: clamp(var(--sp-5), 3vw, var(--sp-6)); }
.call-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: var(--sp-3);
  width: 100%;
  background: linear-gradient(90deg, var(--c-navy-950), var(--c-navy-800));
  padding: var(--sp-2) var(--gutter);
}
.call-link {
  flex: 0 1 auto;
  display: inline-flex;
  align-items: center;
  gap: var(--sp-3);
  padding: var(--sp-2) var(--sp-4);
  min-height: 42px;
  background: #fff;
  color: var(--c-navy-900);
  border: 1px solid rgba(255, 255, 255, .6);
  border-radius: var(--r-full);
  text-decoration: none;
  box-shadow: 0 2px 10px -2px rgba(0, 0, 0, .35);
  transition: transform var(--dur-fast) var(--ease),
              box-shadow var(--dur-fast) var(--ease),
              background var(--dur-fast) var(--ease);
}
.call-link:hover {
  color: var(--c-navy-950);
  transform: translateY(-1px);
  box-shadow: 0 6px 18px -4px rgba(0, 0, 0, .45);
  background: #fff;
}
.call-link--th, .call-link--il { background: #fff; }
.call-icon {
  display: grid; place-items: center;
  width: 28px; height: 28px;
  border-radius: var(--r-full);
  flex-shrink: 0;
  color: #fff;
}
.call-link--th .call-icon { background: #1aa260; }
.call-link--il .call-icon { background: #2f8fd4; }
.call-text { display: flex; flex-direction: column; line-height: 1.15; text-align: start; }
.call-primary {
  font-family: var(--font-display);
  font-size: var(--fs-3xs);
  font-weight: var(--fw-semibold);
  color: var(--text-muted);
}
.call-number {
  font-family: var(--font-display);
  font-size: var(--fs-xs);
  font-weight: var(--fw-black);
  color: var(--c-navy-900);
  direction: ltr; unicode-bidi: isolate;
}
@media (max-width: 560px) {
  .call-bar { justify-content: center; gap: var(--sp-2); padding: var(--sp-2) var(--sp-3); }
  .call-link { flex: 1 1 auto; justify-content: center; padding: var(--sp-2) var(--sp-3); }
  .call-primary { display: none; }
  .call-number { font-size: var(--fs-sm); }
}
.lead-card { max-width: 660px; padding: clamp(var(--sp-4), 2.5vw, var(--sp-6)); }
.lead-title { font-size: var(--fs-2xl); margin-bottom: var(--sp-1); }
.lead-sub { font-size: var(--fs-xs); margin-bottom: var(--sp-4); }
.lead-eyebrow { font-size: var(--fs-3xs); margin-bottom: var(--sp-1); }
.lead-choice { gap: var(--sp-2); margin-bottom: var(--sp-4); }
.lead-opt { font-size: var(--fs-xs); padding: var(--sp-2) var(--sp-3); min-height: 44px; }
.lead-grid { gap: var(--sp-3); }
.lead-field label { font-size: var(--fs-xs); margin-bottom: var(--sp-1); }
.lead-field input, .lead-field textarea { font-size: var(--fs-sm); padding: var(--sp-2) var(--sp-3); min-height: 42px; }
.lead-field textarea { min-height: 76px; }
.lead-more-toggle { margin-top: var(--sp-3); font-size: var(--fs-xs); }
.lead-more { gap: var(--sp-3); margin-top: var(--sp-3); }
.lead-consent { margin-top: var(--sp-4); font-size: var(--fs-3xs); }
.lead-consent input { width: 17px; height: 17px; }
.lead-actions { margin-top: var(--sp-4); }
.lead-submit { font-size: var(--fs-sm); padding: var(--sp-2) var(--sp-5); min-height: 46px; }
.lead-alt { font-size: var(--fs-xs); }
.call-bar {
  background: var(--c-navy-950);
  padding-block: var(--sp-2) 0;
  border-bottom: 0;
}
.site-header {
  background: linear-gradient(90deg, var(--c-navy-950), var(--c-navy-800));
  backdrop-filter: none;
  border-bottom: 1px solid rgba(255, 255, 255, .1);
}
.brand-name { color: #fff; }
.brand-logo {
  background: #fff;
  padding: 2px;
  box-shadow: 0 2px 8px -2px rgba(0, 0, 0, .5);
}
.nav-toggle {
  border-color: rgba(255, 255, 255, .3);
  color: #fff;
}
.main-nav a { color: #fff; }
.main-nav a:hover,
.main-nav a:focus-visible { color: var(--c-gold-500); background: transparent; }
.main-nav a[aria-current="page"] { color: var(--c-gold-500); }
@media (min-width: 1100px) {
  .main-nav li > ul {
    background: var(--c-navy-900);
    border-color: rgba(255, 255, 255, .15);
    box-shadow: 0 18px 44px -12px rgba(0, 0, 0, .6);
  }
  .main-nav li > ul a { color: rgba(255, 255, 255, .92); }
  .main-nav li > ul a:hover { color: var(--c-gold-500); background: rgba(255, 255, 255, .06); }
}
@media (max-width: 1099px) {
  .main-nav[data-open="true"] {
    background: var(--c-navy-900);
    border-bottom: 1px solid rgba(255, 255, 255, .15);
  }
  .main-nav > ul > li { border-bottom-color: rgba(255, 255, 255, .12); }
}
.breadcrumbs { background: var(--c-surface); }
.lead-more[hidden] { display: none !important; }
.lead-more-toggle {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-2);
  text-decoration: none;
  color: var(--c-navy-800);
  border: 1px dashed var(--border);
  border-radius: var(--r-full);
  padding: var(--sp-2) var(--sp-4);
  min-height: 40px;
}
.lead-more-toggle:hover { color: var(--c-cta-600); border-color: var(--c-cta-600); }
.lead-more-toggle::after {
  content: "";
  width: 8px; height: 8px;
  border-inline-end: 2px solid currentColor;
  border-block-end: 2px solid currentColor;
  transform: rotate(45deg) translateY(-2px);
  transition: transform var(--dur-fast) var(--ease);
}
.lead-more-toggle[aria-expanded="true"]::after { transform: rotate(-135deg) translateY(-2px); }
.lead-more {
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  background: var(--c-surface);
  padding: var(--sp-4);
}
.lead-more-toggle {
  border: 0;
  padding: 0;
  min-height: 0;
  background: none;
  text-decoration: underline;
  text-underline-offset: .22em;
  color: var(--text-body);
  font-weight: var(--fw-semibold);
}
.lead-more-toggle::after { content: none; }
.lead-more-toggle:hover { color: var(--c-cta-600); border: 0; }
.lead-more { border: 0; background: none; padding: 0; }
.tour-section { background: var(--c-surface); }
.tour-filters {
  display: flex; flex-wrap: wrap; gap: var(--sp-2);
  margin-bottom: var(--sp-5);
}
.tour-filter {
  font-family: var(--font-display);
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
  color: var(--text-body);
  background: var(--c-white);
  border: 1px solid var(--border);
  border-radius: var(--r-full);
  padding: var(--sp-2) var(--sp-4);
  min-height: 38px;
  cursor: pointer;
  transition: all var(--dur-fast) var(--ease);
}
@media (max-width: 700px) {
  .tour-filter { min-height: var(--tap-min); }
}
.tour-filter:hover { border-color: var(--c-cta-600); color: var(--c-cta-600); }
.tour-filter.is-active {
  background: var(--c-navy-900);
  border-color: var(--c-navy-900);
  color: #fff;
}
.tour-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr));
  gap: var(--sp-4);
}
.tour-card {
  position: relative;
  display: flex;
  flex-direction: column;
  background: var(--c-white);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: transform var(--dur-mid) var(--ease),
              box-shadow var(--dur-mid) var(--ease),
              border-color var(--dur-mid) var(--ease);
}
a.tour-card:hover {
  transform: translateY(-4px);
  border-color: var(--c-cta-600);
  box-shadow: var(--shadow-lg);
}
.tour-card[hidden] { display: none; }
.tour-card__media { aspect-ratio: 3 / 2; overflow: hidden; background: #eceff3; }
.tour-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 600ms var(--ease); }
a.tour-card:hover .tour-card__media img { transform: scale(1.06); }
.tour-card__media--none {
  background: linear-gradient(135deg, var(--c-sea-050), var(--c-gold-050));
  aspect-ratio: 3 / 2;
}
.tour-card__body {
  padding: var(--sp-3) var(--sp-4) var(--sp-4);
  display: flex; flex-direction: column; gap: var(--sp-2);
  flex: 1;
}
.tour-card__type {
  align-self: flex-start;
  font-family: var(--font-display);
  font-size: var(--fs-3xs);
  font-weight: var(--fw-bold);
  color: var(--c-sea-600);
  background: var(--c-sea-050);
  border-radius: var(--r-full);
  padding: 2px var(--sp-2);
}
.tour-card__title {
  font-family: var(--font-display);
  font-size: var(--fs-md);
  font-weight: var(--fw-bold);
  line-height: var(--lh-snug);
  color: var(--text-strong);
  margin: 0;
}
.tour-card__note { font-size: var(--fs-xs); color: var(--text-muted); margin: 0; }
.tour-card__foot {
  margin-top: auto;
  padding-top: var(--sp-2);
  display: flex; align-items: center; justify-content: space-between; gap: var(--sp-2);
}
.tour-card__price {
  display: inline-flex; flex-direction: column;
  font-family: var(--font-display);
  font-size: var(--fs-sm);
  font-weight: var(--fw-black);
  color: #fff;
  background: var(--c-cta-600);
  border-radius: var(--r-full);
  padding: var(--sp-1) var(--sp-3);
  direction: ltr; unicode-bidi: isolate;
  line-height: 1.25;
}
.tour-card__price small { font-size: var(--fs-3xs); font-weight: var(--fw-semibold); opacity: .92; }
.tour-card__rating {
  display: inline-flex; align-items: center; gap: 3px;
  font-family: var(--font-display);
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
  color: var(--c-gold-600);
  direction: ltr; unicode-bidi: isolate;
}
.site-header {
  background: linear-gradient(90deg, var(--c-navy-950), var(--c-navy-800));
  border-bottom: 1px solid rgba(255, 255, 255, .1);
}
.header-inner {
  display: flex;
  align-items: center;
  gap: var(--sp-4);
  min-height: 64px;
  max-width: var(--w-wide);
  margin-inline: auto;
  padding-inline: var(--gutter);
}
.call-bar {
  display: none;
  width: auto;
  background: none;
  padding: 0;
  margin-inline-start: auto;
  gap: var(--sp-2);
  flex-shrink: 0;
}
.call-link {
  padding: var(--sp-1) var(--sp-3);
  min-height: 38px;
  gap: var(--sp-2);
  box-shadow: none;
  border-color: rgba(255, 255, 255, .35);
}
.call-icon { width: 24px; height: 24px; }
.call-primary { font-size: 10px; }
.call-number { font-size: var(--fs-3xs); }
.main-nav { margin-inline-start: 0; }
@media (min-width: 1200px) {
  .call-bar { display: flex; }
  .main-nav { margin-inline-start: var(--sp-5); }
  .main-nav > ul { gap: 2px; }
  .main-nav a { padding: var(--sp-2); font-size: var(--fs-3xs); }
}
@media (max-width: 1199px) {
  .site-header + .call-bar,
  .header-inner .call-bar { display: none; }
  .nav-toggle { margin-inline-start: auto; }
}
@media (min-width: 1200px) {
  .main-nav a { font-size: var(--fs-xs); padding: var(--sp-2) var(--sp-3); }
}
.brand-name { font-size: var(--fs-sm); }
.call-primary { font-size: var(--fs-3xs); }
.call-number { font-size: var(--fs-xs); }
.legacy p,
.legacy li { font-size: var(--fs-md); }
.legacy [class$="-description"],
.legacy [class$="-desc"],
.legacy [class$="-text"] { font-size: var(--fs-sm); }
.tour-card__title { font-size: var(--fs-lg); }
.tour-card__price { font-size: var(--fs-md); }
.lead-field input, .lead-field textarea { font-size: var(--fs-md); }
.lead-opt { font-size: var(--fs-sm); }
@media (min-width: 1200px) {
  .main-nav a {
    white-space: nowrap;
    font-size: var(--fs-2xs);
    padding: var(--sp-2) var(--sp-2);
  }
  .main-nav > ul { gap: 0; flex-wrap: nowrap; }
  .header-inner { gap: var(--sp-3); }
  .call-link { padding: var(--sp-1) var(--sp-2); }
  .call-number { font-size: var(--fs-3xs); }
}
@media (min-width: 1440px) {
  .main-nav a { font-size: var(--fs-xs); padding: var(--sp-2) var(--sp-3); }
  .call-number { font-size: var(--fs-2xs); }
}
@media (min-width: 1200px) {
  .main-nav > ul > li > a {
    position: relative;
    isolation: isolate;
    display: inline-block;
    transition: color var(--dur-mid) var(--ease),
                transform var(--dur-mid) var(--ease);
  }
  .main-nav > ul > li > a::before {
    content: "";
    position: absolute;
    inset: 4px -2px;
    z-index: -1;
    border-radius: var(--r-sm);
    background: radial-gradient(60% 120% at 50% 100%,
                rgba(240, 168, 26, .28) 0%,
                rgba(240, 168, 26, 0) 70%);
    opacity: 0;
    transform: translateY(4px);
    transition: opacity var(--dur-mid) var(--ease),
                transform var(--dur-mid) var(--ease);
  }
  .main-nav > ul > li > a::after {
    content: "";
    position: absolute;
    inset-inline: 50%;
    bottom: 2px;
    height: 2px;
    border-radius: var(--r-full);
    background: linear-gradient(90deg,
                rgba(240, 168, 26, 0),
                var(--c-gold-500) 22%,
                #ffd97a 50%,
                var(--c-gold-500) 78%,
                rgba(240, 168, 26, 0));
    transition: inset-inline var(--dur-mid) var(--ease);
  }
  .main-nav > ul > li > a:hover,
  .main-nav > ul > li > a:focus-visible {
    color: var(--c-gold-500);
    transform: translateY(-1px);
  }
  .main-nav > ul > li > a:hover::after,
  .main-nav > ul > li > a:focus-visible::after,
  .main-nav > ul > li:focus-within > a::after { inset-inline: 6px; }
  .main-nav > ul > li > a:hover::before,
  .main-nav > ul > li > a:focus-visible::before { opacity: 1; transform: translateY(0); }
  .main-nav > ul > li > a[aria-current="page"] { color: var(--c-gold-500); }
  .main-nav > ul > li > a[aria-current="page"]::after {
    inset-inline: 8px;
    background: var(--c-gold-500);
    opacity: .75;
  }
  .main-nav > ul > li:has(ul) > a { padding-inline-end: var(--sp-4); }
  .main-nav > ul > li:has(ul) > a::first-line { }
  .main-nav > ul > li:has(ul) > a > span.caret,
  .main-nav > ul > li:has(ul) > a::marker { display: none; }
  .main-nav li > ul {
    padding: var(--sp-2);
    border-radius: var(--r-md);
    transform: translateY(-8px) scale(.98);
    transition: opacity var(--dur-mid) var(--ease),
                transform var(--dur-mid) var(--ease),
                visibility var(--dur-mid);
  }
  .main-nav li:hover > ul,
  .main-nav li:focus-within > ul { transform: translateY(0) scale(1); }
  .main-nav li > ul a {
    border-radius: var(--r-sm);
    transition: background var(--dur-fast) var(--ease),
                color var(--dur-fast) var(--ease),
                padding-inline-start var(--dur-fast) var(--ease);
  }
  .main-nav li > ul a:hover {
    background: rgba(240, 168, 26, .12);
    color: var(--c-gold-500);
    padding-inline-start: var(--sp-4);
  }
}
.call-link { position: relative; overflow: hidden; }
.call-link::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(240,168,26,0), rgba(240,168,26,.18), rgba(240,168,26,0));
  transform: translateX(-120%);
  transition: transform 600ms var(--ease);
}
.call-link:hover::after { transform: translateX(120%); }
.brand-logo { transition: transform var(--dur-mid) var(--ease), box-shadow var(--dur-mid) var(--ease); }
.brand:hover .brand-logo { transform: rotate(-4deg) scale(1.04); box-shadow: 0 6px 18px -4px rgba(240,168,26,.5); }
.brand-name { transition: color var(--dur-fast) var(--ease); }
.brand:hover .brand-name { color: var(--c-gold-500); }
.hotel-page { padding-block: var(--sp-6); }
.hotel-page__head { margin-bottom: var(--sp-5); }
.hotel-page__category {
  display: inline-block;
  font-family: var(--font-display);
  font-size: 0.68rem;
  font-weight: var(--fw-bold);
  color: #fff;
  background: var(--c-navy-900);
  padding: 2px var(--sp-3);
  border-radius: var(--r-full);
  margin-bottom: var(--sp-2);
}
.hotel-page h1 { margin-bottom: var(--sp-2); }
.hotel-page__meta {
  display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-3);
  font-size: 0.82rem; color: var(--text-muted);
}
.hotel-page__stars {
  font-family: "Segoe UI Symbol", "Apple Symbols", "Noto Sans Symbols 2", "DejaVu Sans", sans-serif;
  color: var(--c-gold-500);
  letter-spacing: .08em;
  direction: ltr; unicode-bidi: isolate;
}
.hotel-page__score {
  font-family: var(--font-display);
  font-weight: var(--fw-black);
  color: var(--c-navy-900);
  background: var(--c-gold-200);
  border-radius: var(--r-sm);
  padding: 2px var(--sp-2);
  direction: ltr; unicode-bidi: isolate;
}
.hotel-page__media {
  margin: 0 0 var(--sp-5);
  border-radius: var(--r-lg);
  overflow: hidden;
  background: #eceff3;
}
.hotel-page__media img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.hotel-page__gallery {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: var(--sp-2);
  margin-bottom: var(--sp-5);
}
.hotel-page__gallery img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r-sm); }
.hotel-page__body { max-width: 72ch; }
.hotel-page__lede { font-size: 0.95rem; line-height: 1.75; color: var(--text-body); }
.hotel-page__features h2,
.hotel-page__note h2,
.hotel-page__related h2 { font-size: 1.1rem; margin-top: var(--sp-6); margin-bottom: var(--sp-3); }
.hotel-page__features ul {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-wrap: wrap; gap: var(--sp-2);
}
.hotel-page__features li {
  font-family: var(--font-display);
  font-size: 0.78rem;
  font-weight: var(--fw-semibold);
  color: var(--c-sea-600);
  background: var(--c-sea-050);
  border: 1px solid var(--c-sea-200);
  border-radius: var(--r-full);
  padding: var(--sp-1) var(--sp-3);
  margin: 0;
}
.hotel-page__note {
  background: var(--c-gold-050);
  border: 1px solid var(--c-gold-200);
  border-inline-start: 4px solid var(--c-gold-500);
  border-radius: var(--r-md);
  padding: var(--sp-4);
  margin-top: var(--sp-5);
}
.hotel-page__note h2 { margin-top: 0; }
.hotel-page__note p { font-size: 0.85rem; margin: 0; }
.hotel-page__note p + p { margin-top: var(--sp-3); }
.hotel-page__related { margin-top: var(--sp-7); }
.hotel-page__intro h2,
.hotel-page__fit h2,
.hotel-page__rooms h2,
.hotel-page__how h2,
.hotel-page__nearby h2,
.hotel-page__guide h2 { font-size: 1.1rem; margin-top: var(--sp-6); margin-bottom: var(--sp-3); }
.hotel-page__intro p,
.hotel-page__fit p,
.hotel-page__rooms p,
.hotel-page__nearby p,
.hotel-page__guide p { font-size: 0.9rem; line-height: 1.75; color: var(--text-body); margin: 0 0 var(--sp-3); }
.hotel-page__rooms ul,
.hotel-page__how ul {
  margin: 0 0 var(--sp-4);
  padding-inline-start: var(--sp-5);
  font-size: 0.9rem;
  line-height: 1.7;
  color: var(--text-body);
}
.hotel-page__rooms li,
.hotel-page__how li { margin-bottom: var(--sp-1); }
.hotel-page__media-note {
  font-size: 0.75rem;
  color: var(--text-muted);
  padding: var(--sp-2) var(--sp-3);
  background: var(--c-neutral-050, #f6f7f9);
}
.hotel-index { padding-block: var(--sp-6); }
.hotel-index__lede { font-size: 0.9rem; color: var(--text-muted); max-width: 70ch; margin-bottom: var(--sp-6); }
.hotel-index__group { margin-bottom: var(--sp-7); }
.hotel-index__group h2 { font-size: 1.15rem; margin-bottom: var(--sp-3); }
.legacy .hotel-card__cta,
.hotel-card__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: auto;
  align-self: stretch;
  font-family: var(--font-display);
  font-size: 0.82rem;
  font-weight: var(--fw-bold);
  color: #fff;
  background: var(--c-navy-800);
  border-radius: var(--r-full);
  padding: var(--sp-2) var(--sp-4);
  min-height: 40px;
  text-decoration: none;
  transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}
.legacy .hotel-card__cta:hover,
.hotel-card__cta:hover { background: var(--c-gold-500); color: var(--c-navy-950); }
.related { background: var(--c-surface); }
.related__block { margin-bottom: var(--sp-6); }
.related__block:last-child { margin-bottom: 0; }
.related__block h2 { font-size: 1.05rem; margin-bottom: var(--sp-3); }
.related-chips { display: flex; flex-wrap: wrap; gap: var(--sp-2); }
.related-chip {
  display: inline-flex;
  align-items: center;
  font-family: var(--font-display);
  font-size: 0.82rem;
  font-weight: var(--fw-semibold);
  color: var(--c-navy-800);
  background: var(--c-white);
  border: 1px solid var(--border);
  border-radius: var(--r-full);
  padding: var(--sp-2) var(--sp-4);
  min-height: 40px;
  text-decoration: none;
  transition: all var(--dur-fast) var(--ease);
}
.related-chip:hover {
  background: var(--c-gold-500);
  border-color: var(--c-gold-500);
  color: var(--c-navy-950);
  transform: translateY(-1px);
}
.legacy > img,
.legacy p > img,
.legacy div > img:only-child:not([class]) {
  max-height: 420px;
  width: auto;
  max-width: 100%;
  margin-inline: auto;
  border-radius: var(--r-md);
}
.tour-card__price,
.tour-card__price * {
  white-space: nowrap;
}
.tour-card__price {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
  line-height: 1.3;
  padding: var(--sp-1) var(--sp-3);
  text-align: start;
}
.tour-card__price small {
  display: block;
  font-size: 0.66rem;
  opacity: .95;
  white-space: nowrap;
}
.tour-card__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-2);
  flex-wrap: nowrap;
}
.tour-card__rating { flex-shrink: 0; white-space: nowrap; }
.tour-card__enquire {
  font-family: var(--font-display);
  font-size: 0.74rem;
  font-weight: var(--fw-semibold);
  color: var(--c-sea-600);
  white-space: nowrap;
}
@container (max-width: 210px) {
  .tour-card__foot { flex-wrap: wrap; }
}
.stub { padding-block: var(--sp-5); }
.stub__note {
  background: var(--c-gold-050);
  border: 1px solid var(--c-gold-200);
  border-inline-start: 4px solid var(--c-gold-500);
  border-radius: var(--r-md);
  padding: var(--sp-5);
  margin-bottom: var(--sp-6);
  max-width: 72ch;
}
.stub__note h2 { font-size: 1.05rem; margin: 0 0 var(--sp-2); }
.stub__note p { font-size: 0.85rem; color: var(--text-body); margin-bottom: var(--sp-4); }
.stub__heading { font-size: 1.05rem; margin-bottom: var(--sp-3); }
.a11y-toggle {
  position: fixed;
  inset-inline-start: 14px;
  inset-block-end: 96px;
  z-index: 120;
  width: 52px; height: 52px;
  border-radius: var(--r-full);
  background: var(--c-navy-800);
  color: #fff;
  border: 2px solid #fff;
  box-shadow: var(--shadow-lg);
  display: grid; place-items: center;
  cursor: pointer;
  transition: background var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);
}
.a11y-toggle[aria-expanded="true"] { z-index: 2147483000; }
@media (max-width: 700px) { .a11y-toggle { inset-block-end: 88px; inset-inline-start: 10px; } }
.a11y-toggle:hover { background: var(--c-gold-500); color: var(--c-navy-950); transform: translateY(-2px); }
.a11y-panel {
  position: fixed;
  inset-inline-start: 14px;
  bottom: calc(96px + 52px + 10px);
  z-index: 2147483000;
  width: min(300px, calc(100vw - var(--sp-6)));
  max-height: min(70vh, 540px);
  overflow-y: auto;
  background: var(--c-white);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  box-shadow: var(--shadow-lg);
  padding: var(--sp-4);
}
.a11y-panel[hidden] { display: none; }
.a11y-panel__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: var(--sp-3); }
.a11y-panel__head h2 { font-size: 1rem; margin: 0; }
.a11y-close { background: none; border: 0; font-size: 1rem; cursor: pointer; color: var(--text-muted); padding: var(--sp-1); }
.a11y-group { margin-bottom: var(--sp-4); }
.a11y-label {
  display: block;
  font-family: var(--font-display);
  font-size: 0.78rem;
  font-weight: var(--fw-bold);
  color: var(--text-muted);
  margin-bottom: var(--sp-2);
}
.a11y-row { display: flex; gap: var(--sp-2); }
.a11y-row--stack { flex-direction: column; }
.a11y-panel button[data-a11y] {
  flex: 1;
  font-family: var(--font-display);
  font-size: 0.85rem;
  font-weight: var(--fw-semibold);
  color: var(--text-strong);
  background: var(--c-surface);
  border: 1px solid var(--border);
  border-radius: var(--r-sm);
  padding: var(--sp-2);
  min-height: 42px;
  cursor: pointer;
  transition: all var(--dur-fast) var(--ease);
}
.a11y-panel button[data-a11y]:hover { border-color: var(--c-navy-800); }
.a11y-panel button[aria-pressed="true"] {
  background: var(--c-navy-800);
  border-color: var(--c-navy-800);
  color: #fff;
}
.a11y-reset { width: 100%; margin-bottom: var(--sp-2); }
.a11y-statement { display: block; text-align: center; font-size: 0.82rem; color: var(--text-muted); }
html { font-size: calc(16px * var(--a11y-font-scale, 1)); }
.a11y-contrast { filter: contrast(1.35); }
.a11y-invert { filter: invert(1) hue-rotate(180deg); }
.a11y-invert img, .a11y-invert video { filter: invert(1) hue-rotate(180deg); }
.a11y-grayscale { filter: grayscale(1); }
.a11y-contrast.a11y-grayscale { filter: contrast(1.35) grayscale(1); }
.a11y-links a { text-decoration: underline !important; text-underline-offset: .2em; font-weight: var(--fw-bold) !important; }
.a11y-readable, .a11y-readable * { font-family: Arial, "Segoe UI", sans-serif !important; letter-spacing: .01em; }
.a11y-spacing p, .a11y-spacing li { line-height: 2.1 !important; letter-spacing: .04em; word-spacing: .12em; }
.a11y-stop-motion *, .a11y-stop-motion *::before, .a11y-stop-motion *::after {
  animation: none !important; transition: none !important; scroll-behavior: auto !important;
}
.a11y-statement-page { padding-block: var(--sp-6); }
.a11y-statement-page h2 { font-size: 1.15rem; margin-top: var(--sp-6); }
.a11y-statement-page li { margin-bottom: var(--sp-2); }
@media (max-width: 700px) {
  .a11y-statement-page li a {
    display: inline-flex;
    align-items: center;
    min-block-size: var(--tap-min);
    min-inline-size: var(--tap-min);
  }
}
.tour-grid {
  --card-w: 288px;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 232px), var(--card-w)));
  justify-content: center;
}
.tour-card__media { position: relative; aspect-ratio: 16 / 10; }
.tour-card__badge {
  position: absolute;
  inset-block-start: var(--sp-2);
  inset-inline-start: var(--sp-2);
  z-index: 1;
  padding: 3px var(--sp-3);
  border-radius: var(--r-full);
  background: var(--c-cta-600);
  color: var(--c-cta-ink);
  font-family: var(--font-display);
  font-size: var(--fs-3xs);
  font-weight: var(--fw-bold);
  line-height: 1.7;
  box-shadow: 0 2px 10px -2px rgba(0, 0, 0, .35);
}
.tour-card__body { padding: var(--sp-3) var(--sp-4) var(--sp-4); gap: var(--sp-2); }
.tour-card__title {
  font-size: var(--fs-sm);
  line-height: var(--lh-snug);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: calc(2 * var(--fs-sm) * 1.3);
}
.tour-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-1) var(--sp-3);
  font-size: var(--fs-3xs);
  color: var(--text-muted);
}
.tour-card__meta-item { display: inline-flex; align-items: center; gap: 4px; }
.tour-card__meta-item svg { flex-shrink: 0; opacity: .75; }
.tour-card__foot {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--sp-1) var(--sp-2);
  margin-top: auto;
  padding-top: var(--sp-2);
  border-top: 1px solid var(--border);
}
.tour-card__price {
  background: none;
  padding: 0;
  border-radius: 0;
  color: var(--c-cta-700);
  font-size: var(--fs-md);
  font-weight: var(--fw-black);
}
.tour-card__price-alt,
.tour-card__price-sub {
  font-size: var(--fs-3xs);
  color: var(--text-muted);
  font-weight: var(--fw-regular);
}
.tour-card__rating { margin-inline-start: auto; }
.beach-page { padding-block: var(--sp-6); }
.beach-page__head { margin-bottom: var(--sp-5); }
.beach-page__dest-tag {
  display: inline-block;
  font-family: var(--font-display);
  font-size: 0.75rem;
  font-weight: var(--fw-bold);
  color: var(--c-sea-600);
  background: var(--c-sea-050);
  border: 1px solid var(--c-sea-200);
  border-radius: var(--r-full);
  padding: var(--sp-1) var(--sp-3);
  margin-bottom: var(--sp-2);
}
.beach-page h1 { margin-bottom: var(--sp-2); }
.beach-page__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--sp-2) var(--sp-3);
  font-size: 0.85rem;
  color: var(--text-muted);
}
.beach-page__media {
  margin: 0 0 var(--sp-5);
  border-radius: var(--r-lg);
  overflow: hidden;
  background: #eceff3;
}
.beach-page__media img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.beach-page__media-note {
  font-size: 0.75rem;
  color: var(--text-muted);
  padding: var(--sp-2) var(--sp-3);
  background: var(--c-neutral-050, #f6f7f9);
}
.beach-page__lede,
.beach-page__intro,
.beach-page__features,
.beach-page__plan,
.beach-page__transfer,
.beach-page__guide,
.beach-page__note,
.beach-page__nearby > p,
.beach-page__stay > p { max-width: 72ch; }
.beach-page__lede { font-size: 0.95rem; line-height: 1.75; color: var(--text-body); }
.beach-page__intro h2,
.beach-page__features h2,
.beach-page__plan h2,
.beach-page__nearby h2,
.beach-page__stay h2,
.beach-page__transfer h2,
.beach-page__guide h2 { font-size: 1.1rem; margin-top: var(--sp-6); margin-bottom: var(--sp-3); }
.beach-page__intro p,
.beach-page__plan p,
.beach-page__nearby p,
.beach-page__stay p,
.beach-page__transfer p,
.beach-page__guide p { font-size: 0.9rem; line-height: 1.75; color: var(--text-body); margin: 0 0 var(--sp-3); }
.beach-page__nearby .btn,
.beach-page__stay .btn { margin-top: var(--sp-3); }
.beach-page__features ul {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-wrap: wrap; gap: var(--sp-2);
}
.beach-page__features li {
  font-family: var(--font-display);
  font-size: 0.78rem;
  font-weight: var(--fw-semibold);
  color: var(--c-sea-600);
  background: var(--c-sea-050);
  border: 1px solid var(--c-sea-200);
  border-radius: var(--r-full);
  padding: var(--sp-1) var(--sp-3);
  margin: 0;
}
.beach-page__plan ul {
  margin: 0 0 var(--sp-4);
  padding-inline-start: var(--sp-5);
  font-size: 0.9rem;
  line-height: 1.7;
  color: var(--text-body);
}
.beach-page__plan li { margin-bottom: var(--sp-1); }
.beach-page__note {
  background: var(--c-gold-050);
  border: 1px solid var(--c-gold-200);
  border-inline-start: 4px solid var(--c-gold-500);
  border-radius: var(--r-md);
  padding: var(--sp-4);
  margin-top: var(--sp-5);
}
.beach-page__note h2 { margin-top: 0; font-size: 1.1rem; margin-bottom: var(--sp-3); }
.beach-page__note p { font-size: 0.85rem; margin: 0; }
.beach-page__note p + p { margin-top: var(--sp-3); }
.beach-index { padding-block: var(--sp-6); }
.beach-index__lede { font-size: 0.9rem; color: var(--text-muted); max-width: 70ch; margin-bottom: var(--sp-6); }
.beach-index__group { margin-bottom: var(--sp-7); }
.beach-index__group h2 { font-size: 1.15rem; margin-bottom: var(--sp-3); }
.beach-index__group .btn { margin-top: var(--sp-3); }
.legacy .beach-card__cta,
.beach-card__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: var(--sp-3);
  align-self: stretch;
  font-family: var(--font-display);
  font-size: 0.82rem;
  font-weight: var(--fw-bold);
  color: #fff;
  background: var(--c-navy-800);
  border-radius: var(--r-full);
  padding: var(--sp-2) var(--sp-4);
  min-height: 40px;
  text-decoration: none;
  transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}
.legacy .beach-card__cta:hover,
.beach-card__cta:hover { background: var(--c-gold-500); color: var(--c-navy-950); }
.legacy .beach-card [class*="content"],
.legacy .activity-card [class*="content"] { display: flex; flex-direction: column; }
.logo-marquee {
  display: block;
  overflow: hidden;
  padding-block: var(--sp-4);
  -webkit-mask-image: linear-gradient(to left, transparent, #000 8%, #000 92%, transparent);
  mask-image: linear-gradient(to left, transparent, #000 8%, #000 92%, transparent);
}
.logo-marquee__track {
  display: flex;
  align-items: center;
  gap: clamp(var(--sp-5), 4vw, var(--sp-8));
  width: max-content;
  animation: logo-scroll 38s linear infinite;
}
.logo-marquee:hover .logo-marquee__track,
.logo-marquee:focus-within .logo-marquee__track { animation-play-state: paused; }
.logo-marquee__track > * {
  flex: 0 0 auto;
  width: auto;
  min-height: 0;
  margin: 0;
  padding: 0;
  background: none;
  border: 0;
  box-shadow: none;
  display: grid;
  place-items: center;
}
.logo-marquee__track img {
  height: 54px;
  width: auto;
  max-width: 190px;
  object-fit: contain;
  filter: brightness(0) invert(1);
  opacity: .78;
  transition: opacity var(--dur-mid) var(--ease);
}
.logo-marquee__track > *:hover img { opacity: 1; }
.chain-names {
  margin: var(--sp-5) auto 0;
  max-width: 62ch;
  text-align: center;
  font-size: var(--fs-sm);
  line-height: 1.7;
  color: rgba(255, 255, 255, .58);
}
.chain-names a {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);
}
.chain-names a:hover,
.chain-names a:focus-visible { color: var(--c-gold-500); border-bottom-color: currentColor; }
@keyframes logo-scroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
  .logo-marquee__track { animation: none; flex-wrap: wrap; justify-content: center; width: 100%; }
  .logo-marquee { -webkit-mask-image: none; mask-image: none; }
  .logo-marquee__track > [aria-hidden="true"] { display: none; }
}
@media (max-width: 640px) {
  .logo-marquee__track { gap: var(--sp-5); animation-duration: 26s; }
  .logo-marquee__track img { height: 40px; max-width: 140px; }
}
@media (min-width: 1024px) {
  .main-nav li > ul {
    inset-inline-start: 50%;
    transform: translate(50%, -8px) scale(.98);
    transform-origin: top center;
    min-width: 248px;
    padding: var(--sp-2);
    background: linear-gradient(180deg, var(--c-navy-900), var(--c-navy-950));
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: var(--r-lg);
    box-shadow: 0 24px 48px -20px rgba(4, 24, 46, .65),
                0 2px 8px rgba(4, 24, 46, .3);
    transition: opacity 160ms var(--ease), transform 200ms var(--ease), visibility 160ms;
  }
  .main-nav li:hover > ul,
  .main-nav li:focus-within > ul { transform: translate(50%, 0) scale(1); }
  .main-nav li > ul::before {
    content: "";
    position: absolute;
    inset-inline: 0;
    bottom: 100%;
    height: 12px;
  }
  .main-nav li > ul::after {
    content: "";
    position: absolute;
    top: -5px;
    inset-inline-start: 50%;
    width: 10px; height: 10px;
    transform: translateX(50%) rotate(45deg);
    background: var(--c-navy-900);
    border-inline-start: 1px solid rgba(255, 255, 255, .1);
    border-top: 1px solid rgba(255, 255, 255, .1);
  }
  .main-nav li > ul a {
    display: block;
    padding: var(--sp-2) var(--sp-3);
    border-radius: var(--r-sm);
    font-size: var(--fs-sm);
    color: rgba(255, 255, 255, .82);
    white-space: nowrap;
    position: relative;
    transition: background 140ms var(--ease), color 140ms var(--ease), padding-inline-start 140ms var(--ease);
  }
  .main-nav li > ul a:hover,
  .main-nav li > ul a:focus-visible {
    background: rgba(255, 255, 255, .07);
    color: var(--c-gold-500);
    padding-inline-start: var(--sp-4);
  }
  .main-nav li > ul a::before {
    content: "";
    position: absolute;
    inset-inline-start: var(--sp-2);
    top: 50%;
    width: 0; height: 2px;
    border-radius: var(--r-full);
    background: var(--c-gold-500);
    transform: translateY(-50%);
    transition: width 160ms var(--ease);
  }
  .main-nav li > ul a:hover::before { width: 8px; }
  .main-nav li > ul a[aria-current="page"] { color: var(--c-gold-500); background: rgba(240, 168, 26, .1); }
}
.info-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr));
  gap: var(--sp-4);
  margin-top: var(--sp-5);
}
.info-card {
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  padding: var(--sp-5);
  background: var(--c-white);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  transition: border-color var(--dur-mid) var(--ease),
              box-shadow var(--dur-mid) var(--ease),
              transform var(--dur-mid) var(--ease);
}
.info-card:hover {
  border-color: var(--c-sea-200);
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}
.info-card__title {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--fs-md);
  font-weight: var(--fw-bold);
  color: var(--c-navy-900);
}
.info-card__title::before {
  content: "";
  flex-shrink: 0;
  width: 7px; height: 7px;
  border-radius: var(--r-full);
  background: var(--c-gold-500);
}
.info-card__body { font-size: var(--fs-sm); line-height: var(--lh-relaxed); color: var(--text-body); }
.info-card__body > :first-child { margin-top: 0; }
.info-card__body > :last-child { margin-bottom: 0; }
.info-card__body p { margin: 0 0 var(--sp-2); }
.info-card__body a {
  color: var(--c-sea-600);
  font-weight: var(--fw-semibold);
  text-decoration-color: var(--c-sea-200);
  text-underline-offset: 0.2em;
}
.info-card__body a:hover { color: var(--c-gold-700); }
@media (min-width: 1100px) {
  .info-grid:not(:has(> :nth-child(6))) { grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); }
}
.info-section-new .section-head h2::after { content: none; }
.info-section-new .section-head h2 { padding-bottom: 0; }
@media (max-width: 1023px) {
  .main-nav li[data-has-sub] {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
  }
  .main-nav li[data-has-sub] > a { grid-column: 1; }
  .nav-sub-toggle {
    grid-column: 2;
    display: inline-grid;
    place-items: center;
    width: 42px; height: 42px;
    background: rgba(255, 255, 255, .06);
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: var(--r-sm);
    color: inherit;
    cursor: pointer;
    transition: transform var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);
  }
  .nav-sub-toggle:hover { background: rgba(255, 255, 255, .12); }
  .main-nav li[data-sub-open="true"] > .nav-sub-toggle { transform: rotate(180deg); }
  .main-nav li[data-has-sub] > ul {
    grid-column: 1 / -1;
    display: block;
    max-height: 0;
    overflow: hidden;
    transition: max-height 240ms var(--ease);
  }
  .main-nav li[data-sub-open="true"] > ul { max-height: 900px; }
  .main-nav li[data-has-sub] > ul li a {
    padding-inline-start: var(--sp-6);
    font-size: var(--fs-sm);
    opacity: .88;
  }
  .main-nav li[data-has-sub] > ul {
    border-inline-start: 2px solid rgba(255, 255, 255, .12);
    margin-inline-start: var(--sp-3);
  }
}
@media (min-width: 1024px) {
  .nav-sub-toggle { display: none; }
}
@media (max-width: 720px) {
  .tour-grid,
  .info-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-3); }
  .tour-card__body { padding: var(--sp-2) var(--sp-3) var(--sp-3); gap: 4px; }
  .tour-card__title { font-size: var(--fs-2xs); min-height: calc(2 * var(--fs-2xs) * 1.3); }
  .tour-card__meta { font-size: var(--fs-3xs); gap: 2px var(--sp-2); }
  .tour-card__price { font-size: var(--fs-sm); }
  .tour-card__price-alt, .tour-card__price-sub { font-size: var(--fs-3xs); }
  .tour-card__badge { font-size: var(--fs-3xs); padding: 1px var(--sp-1); }
  .tour-card__foot { gap: 2px var(--sp-1); padding-top: var(--sp-1); }
  .tour-card__rating { font-size: var(--fs-2xs); font-weight: var(--fw-semibold); }
  .info-card { padding: var(--sp-3); }
  .info-card__title { font-size: var(--fs-sm); }
  .info-card__body { font-size: var(--fs-xs); }
}
@media (max-width: 330px) {
  .tour-grid, .info-grid { grid-template-columns: 1fr; }
}
.hero .pill:not(:has(*)),
.hero [class*="chip"]:not(:has(*)),
.hero [class*="tag"]:not(:has(*)),
.hero__facts .hero__fact,
.legacy [class*="hero"] [class*="badge"]:not(:has(*)),
.legacy [class*="hero"] [class*="pill"]:not(:has(*)),
.legacy [class*="hero"] [class*="chip"]:not(:has(*)),
.legacy .hero-badges > *:not(:has(*)),
.legacy .hero-content [class*="badge"]:not(:has(*)) {
  transition: color var(--dur-fast) var(--ease),
              border-color var(--dur-fast) var(--ease),
              background var(--dur-fast) var(--ease),
              box-shadow var(--dur-mid) var(--ease),
              transform var(--dur-fast) var(--ease);
}
.hero .pill:not(:has(*)):hover,
.hero [class*="chip"]:not(:has(*)):hover,
.hero [class*="tag"]:not(:has(*)):hover,
.hero__facts .hero__fact:hover,
.legacy [class*="hero"] [class*="badge"]:not(:has(*)):hover,
.legacy [class*="hero"] [class*="pill"]:not(:has(*)):hover,
.legacy [class*="hero"] [class*="chip"]:not(:has(*)):hover,
.legacy .hero-badges > *:not(:has(*)):hover,
.legacy .hero-content [class*="badge"]:not(:has(*)):hover {
  color: var(--c-gold-500);
  border-color: var(--c-gold-500);
  background: rgba(240, 168, 26, .14);
  box-shadow: 0 0 0 1px rgba(240, 168, 26, .4),
              0 8px 22px -10px rgba(240, 168, 26, .7);
  transform: translateY(-1px);
}
.hero a:not(.btn),
.legacy [class*="hero"] a:not([class*="btn"]) {
  position: relative;
  color: inherit;
  text-decoration: none;
  transition: color var(--dur-fast) var(--ease);
}
.hero a:not(.btn)::after,
.legacy [class*="hero"] a:not([class*="btn"])::after {
  content: "";
  position: absolute;
  inset-inline-start: 0;
  bottom: -2px;
  width: 0; height: 2px;
  border-radius: var(--r-full);
  background: var(--c-gold-500);
  transition: width var(--dur-mid) var(--ease);
}
.hero a:not(.btn):hover,
.legacy [class*="hero"] a:not([class*="btn"]):hover { color: var(--c-gold-500); }
.hero a:not(.btn):hover::after,
.legacy [class*="hero"] a:not([class*="btn"]):hover::after { width: 100%; }
@media (prefers-reduced-motion: reduce) {
  .hero .pill:hover, .hero [class*="chip"]:hover, .hero [class*="tag"]:hover { transform: none; }
}
.area-section__lede {
  max-width: 68ch;
  margin: var(--sp-3) 0 0;
  font-size: var(--fs-sm);
  line-height: var(--lh-relaxed);
  color: var(--text-muted);
}
.area-card__links {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 2px var(--sp-1);
  margin: var(--sp-2) 0 0 !important;
  padding-top: var(--sp-2);
  border-top: 1px solid var(--border);
  font-size: var(--fs-xs);
}
@media (max-width: 700px) {
  .area-card__links a {
    display: inline-flex;
    align-items: center;
    min-block-size: var(--tap-min);
    min-inline-size: var(--tap-min);
  }
}
.info-card--area { height: 100%; }
.info-card--area .info-card__body { display: flex; flex-direction: column; flex: 1; }
.info-card--area .area-card__links { margin-top: auto !important; }
.carousel { position: relative; }
.carousel__track {
  display: flex;
  align-items: stretch;
  gap: var(--sp-4);
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x proximity;
  scrollbar-width: none;
  -ms-overflow-style: none;
  padding: var(--sp-2) 2px var(--sp-4);
  margin-inline: -2px;
}
.carousel__track::-webkit-scrollbar { display: none; }
.carousel__track:focus-visible { outline: 2px solid var(--c-sea-500); outline-offset: 4px; border-radius: var(--r-md); }
.carousel__item {
  flex: 0 0 auto;
  width: calc((100% - var(--sp-4) * 2) / 3);
  scroll-snap-align: start;
  display: flex;
  min-height: 0;
}
.carousel__item > * { width: 100%; height: 100%; display: flex; flex-direction: column; }
@media (min-width: 1280px) { .carousel__item { width: calc((100% - var(--sp-4) * 3) / 4); } }
@media (min-width: 1600px) { .carousel__item { width: calc((100% - var(--sp-4) * 4) / 5); } }
@media (max-width: 900px)  { .carousel__item { width: calc((100% - var(--sp-4)) / 2); } }
@media (max-width: 420px)  { .carousel__item { width: 78%; } }
.carousel__nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp-3);
  margin-top: var(--sp-2);
}
.carousel.is-static .carousel__nav { display: none; }
.carousel__btn {
  display: grid;
  place-items: center;
  width: 42px; height: 42px;
  border-radius: var(--r-full);
  border: 1px solid var(--border);
  background: var(--c-white);
  color: var(--c-navy-800);
  cursor: pointer;
  transition: background var(--dur-fast) var(--ease),
              color var(--dur-fast) var(--ease),
              border-color var(--dur-fast) var(--ease),
              transform var(--dur-fast) var(--ease),
              opacity var(--dur-fast) var(--ease);
}
.carousel__btn:hover:not(:disabled) {
  background: var(--c-gold-500);
  border-color: var(--c-gold-500);
  color: var(--c-navy-950);
  transform: translateY(-1px);
}
.carousel__btn:disabled { opacity: .3; cursor: default; }
.carousel__btn svg { transform: scaleX(-1); }
.carousel__dots { display: flex; align-items: center; gap: 6px; }
.carousel__dot {
  width: 8px; height: 8px;
  padding: 0;
  border: 0;
  border-radius: var(--r-full);
  background: var(--c-ink-400, #9aa4b2);
  opacity: .4;
  cursor: pointer;
  transition: width var(--dur-mid) var(--ease), opacity var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);
}
.carousel__dot:hover { opacity: .75; }
.carousel__dot.is-active { width: 24px; opacity: 1; background: var(--c-gold-500); }
.carousel .carousel__dots--buttons { gap: 0; }
.carousel .carousel__dots--buttons .carousel__dot {
  position: relative;
  min-inline-size: var(--tap-min, 44px);
  min-block-size: var(--tap-min, 44px);
  background: none;
  opacity: 1;
}
.carousel .carousel__dots--buttons .carousel__dot::before {
  content: "";
  position: absolute;
  top: 50%; left: 50%;
  width: 8px; height: 8px;
  transform: translate(-50%, -50%);
  border-radius: var(--r-full);
  background: var(--c-ink-400, #9aa4b2);
  opacity: .4;
  transition: width var(--dur-mid) var(--ease), opacity var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);
}
.carousel .carousel__dots--buttons .carousel__dot:hover::before { opacity: .75; }
.carousel .carousel__dots--buttons .carousel__dot.is-active::before { width: 24px; opacity: 1; background: var(--c-gold-500); }
.carousel .carousel__dots--buttons .carousel__dot::after,
.carousel .carousel__dots--indicator .carousel__dot::after { content: none; }
.carousel .carousel__dots--indicator { pointer-events: none; }
.carousel .carousel__dots--indicator .carousel__dot {
  display: block;
  min-inline-size: 0;
  min-block-size: 0;
  padding: 0;
  cursor: default;
}
@media (prefers-reduced-motion: reduce) {
  .carousel__track { scroll-behavior: auto; }
  .carousel__btn:hover:not(:disabled) { transform: none; }
}
.is-linked { position: relative; }
.card-cover {
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: inherit;
  font-size: 0;
  background: none;
  border: 0;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
.is-linked a:not(.card-cover),
.is-linked button,
.is-linked input,
.is-linked select { position: relative; z-index: 2; }
.is-linked { cursor: pointer; }
.is-linked:hover { border-color: var(--c-sea-200); }
@media (min-width: 900px) {
  .legacy :is([class$="-card"],[class*="-card "]) [class$="-content"],
  .legacy :is([class$="-card"],[class*="-card "]) [class$="-body"],
  .legacy :is([class$="-card"],[class*="-card "]) [class$="-info"] { padding: var(--sp-3) var(--sp-4) var(--sp-4); }
  .legacy :is([class$="-card"],[class*="-card "]) h3,
  .legacy :is([class$="-card"],[class*="-card "]) h4 { font-size: var(--fs-sm); }
  .legacy :is([class$="-card"],[class*="-card "]) p { font-size: var(--fs-xs); }
  .legacy :is([class$="-card"],[class*="-card "]) [class*="btn"] {
    padding: var(--sp-2) var(--sp-4);
    min-height: 38px;
    font-size: var(--fs-xs);
  }
}
.legacy #te-hero .chip,
.legacy #te-hero .badge,
#te-hero .chip,
#te-hero .badge {
  transition: color var(--dur-fast) var(--ease),
              border-color var(--dur-fast) var(--ease),
              background var(--dur-fast) var(--ease),
              box-shadow var(--dur-mid) var(--ease),
              transform var(--dur-fast) var(--ease);
  cursor: default;
}
.legacy #te-hero .chip:hover,
.legacy #te-hero .badge:hover,
#te-hero .chip:hover,
#te-hero .badge:hover {
  color: var(--c-gold-500);
  border-color: var(--c-gold-500);
  background: rgba(240, 168, 26, .16);
  box-shadow: 0 0 0 1px rgba(240, 168, 26, .45),
              0 10px 26px -12px rgba(240, 168, 26, .8);
  transform: translateY(-1px);
}
.legacy #te-hero .hero-title:hover,
.legacy #te-hero .hero-subtitle:hover,
#te-hero .hero-title:hover,
#te-hero .hero-subtitle:hover {
  color: var(--c-gold-500);
  text-shadow: 0 3px 14px rgba(0, 0, 0, .55), 0 0 28px rgba(240, 168, 26, .5);
}
.legacy #te-hero .hero-title,
.legacy #te-hero .hero-subtitle,
#te-hero .hero-title,
#te-hero .hero-subtitle {
  transition: color var(--dur-mid) var(--ease), text-shadow var(--dur-mid) var(--ease);
}
.main-nav > ul > li > a:hover,
.main-nav > ul > li:hover > a,
.main-nav > ul > li:focus-within > a {
  background: transparent;
  color: var(--c-gold-500);
}
@media (min-width: 1024px) {
  .main-nav li > ul a:hover { background: rgba(255, 255, 255, .07); }
}
.revived-link {
  display: flex;
  flex-direction: column;
  height: 100%;
  color: inherit;
  text-decoration: none;
  border-radius: inherit;
  overflow: hidden;
}
.revived-link:hover { color: inherit; }
.revived-link * { text-decoration: none; }
.revived-link [class$="-content"],
.revived-link [class$="-body"] { flex: 1; }
.legacy [class*="grid"] > .revived-link {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  transition: transform var(--dur-mid) var(--ease),
              box-shadow var(--dur-mid) var(--ease),
              border-color var(--dur-mid) var(--ease);
}
.legacy [class*="grid"] > .revived-link:hover {
  transform: translateY(-3px);
  border-color: var(--c-sea-200);
  box-shadow: var(--shadow-md);
}
.legacy [class*="grid"] > .revived-link img { border-radius: 0; }
.legacy #te-main .te-strip.te-strip.section {
  position: relative;
  padding-block: var(--sp-7);
  background: linear-gradient(160deg, var(--c-navy-900) 0%, var(--c-navy-950) 60%, #06203a 100%);
  color: var(--text-on-dark);
  margin-inline: calc(50% - 50vw);
  padding-inline: calc(50vw - 50%);
  overflow: hidden;
}
.legacy #te-main .te-strip.te-strip.section::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(60% 120% at 15% 0%, rgba(18, 160, 179, .22), transparent 60%),
    radial-gradient(50% 110% at 85% 100%, rgba(240, 168, 26, .14), transparent 60%);
}
.legacy #te-main .te-strip.te-strip .container { position: relative; }
.legacy #te-main .te-strip.te-strip .section-title {
  font-size: var(--fs-2xl);
  color: var(--text-on-dark);
  margin-bottom: var(--sp-2);
}
.legacy #te-main .te-strip.te-strip .section-title::after { background: var(--c-gold-500); }
.legacy #te-main .te-strip.te-strip .section-subtitle {
  font-size: var(--fs-sm);
  color: rgba(255, 255, 255, .72);
  max-width: 60ch;
  margin-inline: auto;
}
.legacy #te-main .partners-grid.logo-marquee {
  display: block;
  overflow: hidden;
  padding-block: var(--sp-5) var(--sp-4);
  margin: 0;
  -webkit-mask-image: linear-gradient(to left, transparent, #000 7%, #000 93%, transparent);
  mask-image: linear-gradient(to left, transparent, #000 7%, #000 93%, transparent);
}
.legacy #te-main .logo-marquee__track {
  display: flex;
  align-items: center;
  gap: clamp(var(--sp-6), 5vw, var(--sp-9));
  width: max-content;
  animation: logo-scroll 40s linear infinite;
}
.legacy #te-main .logo-marquee:hover .logo-marquee__track { animation-play-state: paused; }
.legacy #te-main .logo-marquee__track > * {
  flex: 0 0 auto;
  width: auto; min-width: 0; min-height: 0;
  padding: 0; margin: 0;
  background: none; border: 0; border-radius: 0; box-shadow: none;
  display: grid; place-items: center;
}
.legacy #te-main .logo-marquee__track > * {
  padding: var(--sp-3) var(--sp-5);
  background: #fff;
  border-radius: var(--r-md);
  box-shadow: 0 8px 22px -14px rgba(0, 0, 0, .8);
  transition: transform var(--dur-mid) var(--ease), box-shadow var(--dur-mid) var(--ease);
}
.legacy #te-main .logo-marquee__track > *:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 30px -14px rgba(0, 0, 0, .9);
}
.legacy #te-main .logo-marquee__track img {
  height: 34px;
  width: auto;
  max-width: 140px;
  object-fit: contain;
  filter: grayscale(1);
  opacity: .78;
  transition: filter var(--dur-mid) var(--ease), opacity var(--dur-mid) var(--ease);
}
.legacy #te-main .logo-marquee__track > *:hover img { filter: none; opacity: 1; }
.chain-marquee {
  overflow: hidden;
  margin-top: var(--sp-4);
  padding-top: var(--sp-5);
  border-top: 1px solid rgba(255, 255, 255, .12);
  -webkit-mask-image: linear-gradient(to left, transparent, #000 7%, #000 93%, transparent);
  mask-image: linear-gradient(to left, transparent, #000 7%, #000 93%, transparent);
}
.chain-marquee__lede {
  margin: 0 0 var(--sp-3);
  text-align: center;
  font-size: var(--fs-2xs);
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .5);
}
.chain-marquee__track {
  display: flex;
  align-items: center;
  gap: clamp(var(--sp-4), 3vw, var(--sp-6));
  width: max-content;
  animation: logo-scroll 60s linear infinite reverse;
}
.chain-marquee:hover .chain-marquee__track { animation-play-state: paused; }
.chain-marquee__track > span { display: contents; }
.chain-chip {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: var(--sp-2);
  padding: var(--sp-2) var(--sp-5);
  border-radius: var(--r-full);
  border: 1px solid rgba(255, 255, 255, .16);
  background: rgba(255, 255, 255, .05);
  backdrop-filter: blur(6px);
  font-family: var(--font-display);
  font-size: var(--fs-md);
  font-weight: var(--fw-bold);
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .82);
  text-decoration: none;
  white-space: nowrap;
  transition: color var(--dur-fast) var(--ease),
              border-color var(--dur-fast) var(--ease),
              background var(--dur-fast) var(--ease),
              transform var(--dur-fast) var(--ease),
              box-shadow var(--dur-mid) var(--ease);
}
.chain-chip:hover {
  color: var(--c-gold-500);
  border-color: rgba(240, 168, 26, .55);
  background: rgba(240, 168, 26, .12);
  transform: translateY(-2px);
  box-shadow: 0 10px 28px -14px rgba(240, 168, 26, .8);
}
.chain-chip img { height: 22px; width: auto; filter: brightness(0) invert(1); opacity: .85; }
.chain-chip:hover img { opacity: 1; }
@media (prefers-reduced-motion: reduce) {
  .legacy #te-main .logo-marquee__track,
  .chain-marquee__track { animation: none; flex-wrap: wrap; justify-content: center; width: 100%; }
  .legacy #te-main .partners-grid.logo-marquee,
  .chain-marquee { -webkit-mask-image: none; mask-image: none; }
  .chain-marquee__track > [aria-hidden="true"],
  .legacy #te-main .logo-marquee__track > [aria-hidden="true"] { display: none; }
}
@media (max-width: 640px) {
  .chain-chip { font-size: var(--fs-xs); padding: 4px var(--sp-3); }
}
.legacy #te-main #attractions .card,
.legacy #te-main #destinations .card {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  background: var(--c-white);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  box-shadow: none;
  transition: transform var(--dur-mid) var(--ease),
              box-shadow var(--dur-mid) var(--ease),
              border-color var(--dur-mid) var(--ease);
}
.legacy #te-main #attractions .card:hover,
.legacy #te-main #destinations .card:hover {
  transform: translateY(-4px);
  border-color: var(--c-sea-200);
  box-shadow: 0 18px 40px -22px rgba(4, 24, 46, .55);
}
.legacy #te-main #attractions .card-media,
.legacy #te-main #destinations .card-media {
  position: relative;
  aspect-ratio: 16 / 10;
  height: auto;
  overflow: hidden;
  background: var(--c-ink-100, #eceff3);
}
.legacy #te-main #attractions .card-media img,
.legacy #te-main #destinations .card-media img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 700ms var(--ease);
}
.legacy #te-main #attractions .card:hover .card-media img,
.legacy #te-main #destinations .card:hover .card-media img { transform: scale(1.07); }
.legacy #te-main #attractions .card-media::after,
.legacy #te-main #destinations .card-media::after {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 45%;
  background: linear-gradient(to top, rgba(4, 24, 46, .35), transparent);
  pointer-events: none;
}
.legacy #te-main #attractions .card-body,
.legacy #te-main #destinations .card-body {
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  flex: 1;
  padding: var(--sp-3) var(--sp-4) var(--sp-4);
}
.legacy #te-main #attractions .card-title,
.legacy #te-main #destinations .card-title {
  font-family: var(--font-display);
  font-size: var(--fs-md);
  font-weight: var(--fw-bold);
  line-height: var(--lh-snug);
  color: var(--c-navy-900);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: calc(2 * var(--fs-md) * 1.25);
  transition: color var(--dur-fast) var(--ease);
}
.legacy #te-main #attractions .card:hover .card-title,
.legacy #te-main #destinations .card:hover .card-title { color: var(--c-sea-600); }
.legacy #te-main #attractions .card-desc,
.legacy #te-main #destinations .card-desc {
  font-size: var(--fs-xs);
  line-height: var(--lh-normal);
  color: var(--text-muted);
  min-height: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.legacy #te-main #attractions .card-cta,
.legacy #te-main #destinations .card-cta {
  margin-top: auto;
  padding-top: var(--sp-2);
  border-top: 1px solid var(--border);
}
.legacy #te-main #attractions .card-cta .btn,
.legacy #te-main #attractions .card-cta > span,
.legacy #te-main #destinations .card-cta .btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0;
  min-height: 0;
  background: none;
  border: 0;
  box-shadow: none;
  font-family: var(--font-display);
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
  color: var(--c-gold-700);
  transition: gap var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}
.legacy #te-main #attractions .card-cta .btn::after,
.legacy #te-main #attractions .card-cta > span::after,
.legacy #te-main #destinations .card-cta .btn::after {
  content: "←";
  font-size: var(--fs-sm);
  line-height: 1;
}
.legacy #te-main #attractions .card:hover .card-cta .btn,
.legacy #te-main #attractions .card:hover .card-cta > span,
.legacy #te-main #destinations .card:hover .card-cta .btn { gap: 12px; color: var(--c-gold-500); }
@media (max-width: 700px) {
  .legacy #te-main #destinations .card-cta .btn {
    min-height: var(--tap-cta);
    min-inline-size: var(--tap-min);
  }
}
.legacy #te-main #about.about-section,
.about-team {
  background: var(--c-surface) !important;
  box-shadow: none;
  border-block: 1px solid var(--border);
  padding-block: clamp(var(--sp-7), 6vw, 4.5rem);
}
.legacy #te-main #about.about-section *,
.about-team * { color: var(--text-body) !important; }
.legacy #te-main #about .about-grid,
.about-team .about-grid {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: clamp(var(--sp-6), 4vw, 3.25rem);
  align-items: start;
}
.legacy #te-main #about .about-kicker,
.about-team .about-kicker {
  background: none;
  border: 0;
  backdrop-filter: none;
  padding: 0;
  margin-bottom: var(--sp-4);
  font-family: var(--font-display);
  font-size: var(--fs-2xs);
  font-weight: var(--fw-bold);
  letter-spacing: .04em;
  color: var(--c-sea-600) !important;
}
.legacy #te-main #about .about-kicker i,
.about-team .about-kicker i { color: var(--c-gold-600) !important; }
.legacy #te-main #about .about-kicker::after,
.about-team .about-kicker::after {
  content: "";
  width: 42px;
  height: 2px;
  background: var(--c-gold-500);
  border-radius: 2px;
}
.legacy #te-main #about .about-title,
.about-team .about-title {
  font-size: var(--fs-4xl);
  line-height: 1.18;
  letter-spacing: -.01em;
  color: var(--c-navy-950) !important;
  text-shadow: none;
  margin-bottom: var(--sp-4);
  max-width: 17em;
}
.legacy #te-main #about .about-text,
.about-team .about-text {
  font-size: var(--fs-lg);
  line-height: 1.85;
  max-width: 58ch;
  margin-bottom: var(--sp-5);
}
.legacy #te-main #about .about-pills,
.about-team .about-pills { gap: var(--sp-2); }
.legacy #te-main #about .about-pills .pill,
.about-team .about-pills .pill {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-2);
  font-family: var(--font-display);
  font-size: var(--fs-2xs);
  font-weight: var(--fw-semibold);
  color: var(--c-navy-800) !important;
  background: var(--c-white);
  border: 1px solid var(--border);
  border-radius: var(--r-full);
  padding: var(--sp-2) var(--sp-4);
  box-shadow: var(--shadow-sm);
}
.legacy #te-main #about .about-pills .pill i,
.about-team .about-pills .pill i { color: var(--c-gold-600) !important; }
.legacy #te-main #about .about-side,
.about-team .about-side {
  background: var(--c-white);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-lg);
  backdrop-filter: none;
  padding: clamp(var(--sp-5), 3vw, var(--sp-7));
}
.legacy #te-main #about .about-side h3,
.about-team .about-side h3 {
  font-size: var(--fs-xl);
  color: var(--c-navy-950) !important;
  margin-bottom: var(--sp-4);
  padding-bottom: var(--sp-3);
  border-bottom: 1px solid var(--border);
}
.legacy #te-main #about .about-side ul,
.about-team .about-side ul { counter-reset: step; gap: 0; }
.legacy #te-main #about .about-side li,
.about-team .about-side li {
  counter-increment: step;
  background: none;
  border: 0;
  border-radius: 0;
  padding: var(--sp-4) 0;
  gap: var(--sp-4);
  align-items: flex-start;
}
.legacy #te-main #about .about-side li + li,
.about-team .about-side li + li { border-top: 1px solid var(--border); }
.legacy #te-main #about .about-side li:first-child,
.about-team .about-side li:first-child { padding-top: 0; }
.legacy #te-main #about .about-side li:last-child,
.about-team .about-side li:last-child { padding-bottom: 0; }
.legacy #te-main #about .about-side li i,
.legacy #te-main #about .about-side li br,
.about-team .about-side li br,
.about-team .about-side li i { display: none; }
.legacy #te-main #about .about-side li::before,
.about-team .about-side li::before {
  content: counter(step);
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  font-family: var(--font-display);
  font-size: var(--fs-sm);
  font-weight: var(--fw-bold);
  color: var(--c-navy-900) !important;
  background: var(--c-gold-200);
  border-radius: var(--r-full);
}
.legacy #te-main #about .about-side li b,
.about-team .about-side li b {
  display: block;
  font-family: var(--font-display);
  font-size: var(--fs-md);
  color: var(--c-navy-950) !important;
  margin-bottom: 3px;
}
.legacy #te-main #about .about-side li span,
.about-team .about-side li span {
  display: block;
  font-size: var(--fs-sm);
  color: var(--text-muted) !important;
  opacity: 1 !important;
  line-height: 1.7;
}
@media (max-width: 880px) {
  .legacy #te-main #about .about-grid,
.about-team .about-grid { grid-template-columns: 1fr; }
  .legacy #te-main #about .about-title,
.about-team .about-title { max-width: none; }
  .legacy #te-main #about .about-kicker,
.about-team .about-kicker { width: auto; justify-content: flex-start; }
}
.lead-destinations {
  margin-top: var(--sp-6);
  padding-top: var(--sp-5);
  border-top: 1px solid var(--border);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--sp-3);
}
.lead-destinations__lede {
  font-family: var(--font-display);
  font-size: var(--fs-2xs);
  font-weight: var(--fw-bold);
  color: var(--text-muted);
}
.lead-destinations .related-chip {
  min-height: 34px;
  font-size: .78rem;
  padding: var(--sp-1) var(--sp-3);
  background: var(--c-surface);
}
.legacy #te-main { background: var(--c-surface); }
.legacy #te-main > #about.section,
.legacy #te-main > #attractions.section,
.legacy #te-main > #testimonials.section,
.legacy #te-main > #seo.section,
.legacy #te-main > #contact.section { background: var(--c-surface); }
.legacy #te-main > #destinations.section,
.legacy #te-main > #hotels.section,
.legacy #te-main > #magazine.section { background: var(--c-white); }
.legacy #te-main > #why.section.premium { background-color: var(--c-white); }
.legacy #te-main > #seo.section { border-top: 1px solid var(--border); }
.legacy #te-main .logo-marquee__track > * {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  inline-size: 152px;
  block-size: 66px;
  padding: var(--sp-3) var(--sp-4);
}
.legacy #te-main .logo-marquee__track img {
  max-inline-size: 100%;
  max-block-size: 100%;
  height: auto;
  width: auto;
}
.legacy #te-main > .section > .container > h2,
.legacy #te-main > .section > .container > .section-title,
.legacy #te-main > .section .section-title {
  font-size: var(--fs-3xl);
  color: var(--c-navy-950);
  letter-spacing: -.01em;
}
.legacy #te-main > .te-strip.te-strip.section .section-title,
.legacy #te-main > .te-strip.te-strip.section h2 { color: var(--c-white); }
.legacy #te-main > #about.section .about-title { font-size: var(--fs-4xl); }
.legacy #te-main > .section.section { padding-block: clamp(2.75rem, 4.5vw, 4.25rem); }
.legacy #te-main > .te-strip.te-strip.section.section { padding-block: clamp(2.25rem, 3.5vw, 3.25rem); }
.legacy #te-main > #contact.section { background: var(--c-white); }
.lead-section { border-top: 1px solid var(--border); }
.legacy #te-main .logo-marquee__track > * { block-size: 70px; }
.legacy #te-main > .te-strip.te-strip.section .section-title { font-size: var(--fs-3xl); }
.legacy #te-main > #contact.footer-cta {
  background: var(--c-white);
  color: var(--text-body);
}
.legacy #te-main > #contact.footer-cta::before { display: none; }
.legacy #te-main > #contact.footer-cta > .container {
  max-width: 880px;
  background: var(--c-surface);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-md);
  padding: clamp(var(--sp-6), 4vw, 3rem) clamp(var(--sp-5), 4vw, 2.5rem);
}
.legacy #te-main > #contact.footer-cta h2 {
  font-size: var(--fs-3xl);
  color: var(--c-navy-950) !important;
  margin-bottom: var(--sp-3);
}
.legacy #te-main > #contact.footer-cta p {
  font-size: var(--fs-md);
  color: var(--text-muted) !important;
  opacity: 1;
  line-height: 1.8;
}
.legacy #te-main #hotels .hotels-grid { align-items: stretch; }
.legacy #te-main #hotels .hotels-grid > * { block-size: 100%; }
.legacy #te-main #hotels .hotel-content {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
}
.legacy #te-main #hotels .hotel-title {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-block-size: 2.6em;
}
.legacy #te-main #hotels .card-desc {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.legacy #te-main #hotels .card-cta { margin-block-start: auto; }
.legacy #te-main > #about.about-section {
  padding-block: clamp(2.25rem, 3.5vw, 3.25rem);
}
.legacy #te-main #about .about-grid,
.about-team .about-grid {
  grid-template-columns: 1fr .82fr;
  gap: clamp(var(--sp-5), 3vw, 2.5rem);
}
.legacy #te-main > #about.section .about-title {
  font-size: var(--fs-3xl);
  margin-bottom: var(--sp-3);
  max-width: 20em;
}
.legacy #te-main #about .about-text,
.about-team .about-text {
  font-size: var(--fs-md);
  line-height: 1.75;
  max-width: 62ch;
  margin-bottom: var(--sp-4);
}
.legacy #te-main #about .about-kicker,
.about-team .about-kicker { margin-bottom: var(--sp-3); }
.legacy #te-main #about .about-pills .pill,
.about-team .about-pills .pill {
  font-size: var(--fs-3xs);
  padding: 6px var(--sp-3);
}
.legacy #te-main #about .about-side,
.about-team .about-side { padding: clamp(var(--sp-4), 2vw, var(--sp-6)); }
.legacy #te-main #about .about-side h3,
.about-team .about-side h3 {
  font-size: var(--fs-lg);
  margin-bottom: var(--sp-4);
  padding-bottom: var(--sp-3);
}
.legacy #te-main #about .about-side ul,
.about-team .about-side ul {
  position: relative;
  padding-inline-start: var(--sp-6);
}
.legacy #te-main #about .about-side ul::before,
.about-team .about-side ul::before {
  content: "";
  position: absolute;
  inset-block: 14px;
  inset-inline-start: 13px;
  inline-size: 2px;
  background: linear-gradient(var(--c-gold-200), var(--c-sea-200));
  border-radius: 2px;
}
.legacy #te-main #about .about-side li,
.about-team .about-side li {
  position: relative;
  padding: var(--sp-3) 0;
  gap: 0;
  border: 0;
}
.legacy #te-main #about .about-side li + li,
.about-team .about-side li + li { border-top: 0; }
.legacy #te-main #about .about-side li::before,
.about-team .about-side li::before {
  position: absolute;
  inset-inline-start: calc(-1 * var(--sp-6));
  inset-block-start: var(--sp-3);
  inline-size: 28px;
  height: 28px;
  font-size: var(--fs-3xs);
  color: var(--c-gold-700) !important;
  background: var(--c-white);
  border: 2px solid var(--c-gold-200);
  box-shadow: 0 0 0 4px var(--c-white);
}
.legacy #te-main #about .about-side li b,
.about-team .about-side li b { font-size: var(--fs-sm); }
.legacy #te-main #about .about-side li span,
.about-team .about-side li span { font-size: var(--fs-2xs); line-height: 1.6; }
.legacy #te-main #about .about-side li:hover::before,
.about-team .about-side li:hover::before {
  color: var(--c-navy-950) !important;
  border-color: var(--c-gold-500);
  background: var(--c-gold-050);
}
.legacy #te-main .logo-marquee .partner-logo,
.legacy #te-main .logo-marquee__track > .partner-logo,
.legacy #te-main .logo-marquee__track > * {
  background: none;
  box-shadow: none;
  border: 0;
  border-radius: 0;
  padding: 0 var(--sp-5);
  inline-size: auto;
  min-inline-size: 128px;
  block-size: 56px;
  display: grid;
  place-items: center;
}
.legacy #te-main .logo-marquee__track > *:hover {
  transform: none;
  box-shadow: none;
}
.legacy #te-main .logo-marquee__track img {
  max-inline-size: 100%;
  max-block-size: 40px;
  inline-size: auto;
  block-size: auto;
  filter: brightness(0) invert(1);
  opacity: .78;
  transition: opacity var(--dur-mid) var(--ease), transform var(--dur-mid) var(--ease);
}
.legacy #te-main .logo-marquee__track > *:hover img {
  opacity: 1;
  transform: scale(1.05);
}
.legacy #te-main #about .about-side ul::before,
.about-team .about-side ul::before { inset-block: 26px; }
.legacy #te-main #about .about-grid,
.about-team .about-grid { align-items: center; }
.legacy #te-main > #about.about-section { padding-block: clamp(2rem, 3vw, 2.75rem); }
.legacy #te-main #about .about-text,
.about-team .about-text { line-height: 1.7; margin-bottom: var(--sp-4); }
.legacy #te-main #about .about-side,
.about-team .about-side { padding: clamp(var(--sp-4), 1.8vw, var(--sp-5)); }
.legacy #te-main #about .about-side li,
.about-team .about-side li { padding: 10px 0; }
.legacy #te-main #about .about-side li::before,
.about-team .about-side li::before { inset-block-start: 10px; }
.legacy #te-main #about .about-side ul::before,
.about-team .about-side ul::before { inset-block: 24px; }
.legacy #te-main #about .about-side ul::before,
.about-team .about-side ul::before { display: none; }
.legacy #te-main #about .about-side li:not(:last-child)::after,
.about-team .about-side li:not(:last-child)::after {
  content: "";
  position: absolute;
  inset-inline-start: calc(-1 * var(--sp-6) + 13px);
  inset-block-start: 38px;
  inset-block-end: -10px;
  inline-size: 2px;
  background: linear-gradient(var(--c-gold-200), var(--c-sea-200));
  border-radius: 2px;
}
.legacy #te-main #about .about-side,
.about-team .about-side { padding: var(--sp-4) var(--sp-4) var(--sp-5); }
.legacy #te-main #about .about-side h3,
.about-team .about-side h3 {
  font-size: var(--fs-md);
  margin-bottom: var(--sp-3);
  padding-bottom: var(--sp-2);
}
.legacy #te-main #about .about-side ul,
.about-team .about-side ul { padding-inline-start: 30px; }
.legacy #te-main #about .about-side li,
.about-team .about-side li { padding: 6px 0; }
.legacy #te-main #about .about-side li::before,
.about-team .about-side li::before {
  inset-inline-start: -30px;
  inset-block-start: 6px;
  inline-size: 24px;
  height: 24px;
  border-width: 2px;
  box-shadow: 0 0 0 3px var(--c-white);
}
.legacy #te-main #about .about-side li:not(:last-child)::after,
.about-team .about-side li:not(:last-child)::after {
  inset-inline-start: -19px;
  inset-block-start: 30px;
  inset-block-end: -6px;
}
.legacy #te-main #about .about-side li b,
.about-team .about-side li b { margin-bottom: 1px; }
.legacy #te-main #about .about-side li span,
.about-team .about-side li span { line-height: 1.45; }
.legacy #te-main .logo-marquee__track img {
  filter: brightness(1.28) saturate(1.15) contrast(1.05);
  opacity: .95;
}
.legacy #te-main .logo-marquee__track > *:hover img {
  filter: brightness(1.4) saturate(1.25) contrast(1.05);
  opacity: 1;
}
.legacy #te-main .logo-marquee__track img[alt*="אל על"],
.legacy #te-main .logo-marquee__track img[alt*="אלעל"] {
  filter: brightness(0) invert(1);
  opacity: .9;
}
.legacy #te-main .logo-marquee__track > *:hover img[alt*="אל על"],
.legacy #te-main .logo-marquee__track > *:hover img[alt*="אלעל"] {
  filter: brightness(0) invert(1);
  opacity: 1;
}
.legacy #te-main > .te-strip.te-strip.section.section { padding-block: clamp(1.5rem, 2.4vw, 2.1rem); }
.legacy #te-main .te-strip.te-strip .section-title { margin-bottom: var(--sp-1); }
.legacy #te-main .te-strip.te-strip .section-subtitle {
  font-size: var(--fs-2xs);
  margin-bottom: var(--sp-3);
}
.legacy #te-main .te-strip.te-strip .logo-marquee { margin-block: var(--sp-2); }
.legacy #te-main .logo-marquee__track > * { block-size: 48px; }
.legacy #te-main .te-strip.te-strip .chain-marquee {
  margin-block-start: var(--sp-3);
  padding-block-start: var(--sp-3);
}
.legacy #te-main .te-strip.te-strip .chain-marquee__lede { margin-bottom: var(--sp-2); }
.legacy #te-main .te-strip.te-strip .chain-chip { font-size: var(--fs-2xs); padding: 5px var(--sp-4); }
.legacy #te-main > #why.section.section { padding-block: clamp(1.75rem, 2.6vw, 2.4rem); }
.legacy #te-main #why .section-subtitle {
  font-size: var(--fs-2xs);
  margin-bottom: var(--sp-4);
}
.legacy #te-main #why .premium-shell { padding: var(--sp-4); }
.legacy #te-main #why .premium-head { gap: var(--sp-4); margin-bottom: var(--sp-4); }
.legacy #te-main #why .premium-title { font-size: var(--fs-lg); line-height: 1.35; margin-bottom: var(--sp-2); }
.legacy #te-main #why .premium-lead { font-size: var(--fs-2xs); line-height: 1.6; }
.legacy #te-main #why .proof { padding: var(--sp-2) var(--sp-3); }
.legacy #te-main #why .proof b { font-size: var(--fs-2xs); }
.legacy #te-main #why .proof small { font-size: var(--fs-3xs); }
.legacy #te-main #why .premium-grid { gap: var(--sp-2); }
.legacy #te-main #why .feature { padding: var(--sp-3); }
.legacy #te-main #why .feature-top { margin-bottom: var(--sp-2); }
.legacy #te-main #why .feature-icon { inline-size: 30px; block-size: 30px; font-size: var(--fs-2xs); }
.legacy #te-main #why .feature h3 { font-size: var(--fs-sm); margin-bottom: 3px; }
.legacy #te-main #why .feature p { font-size: var(--fs-3xs); line-height: 1.55; }
.lead-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-5);
  margin-bottom: var(--sp-5);
}
.lead-head__text { min-inline-size: 0; }
.lead-head .lead-sub { margin-bottom: 0; }
.boarding-pass {
  flex: 0 0 auto;
  display: flex;
  align-items: stretch;
  inline-size: 224px;
  border-radius: var(--r-md);
  overflow: hidden;
  background: linear-gradient(145deg, var(--c-navy-900), var(--c-navy-800));
  color: var(--c-white);
  box-shadow: 0 14px 30px -16px rgba(4, 24, 46, .75);
  transform: rotate(-2deg);
  transition: transform var(--dur-mid) var(--ease);
}
.lead-card:hover .boarding-pass { transform: rotate(0deg) translateY(-2px); }
.boarding-pass__stub {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  gap: 2px;
  padding: var(--sp-3) var(--sp-2);
  background: linear-gradient(160deg, var(--c-gold-500), var(--c-gold-600));
  color: var(--c-navy-950);
  border-inline-end: 2px dashed rgba(4, 24, 46, .35);
}
.boarding-pass__label {
  font-size: 8px;
  font-weight: var(--fw-bold);
  letter-spacing: .14em;
  text-transform: uppercase;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
}
.boarding-pass__code {
  font-family: var(--font-display);
  font-size: var(--fs-2xs);
  font-weight: var(--fw-black);
  letter-spacing: .06em;
}
.boarding-pass__body {
  flex: 1 1 auto;
  padding: var(--sp-3) var(--sp-4);
  display: grid;
  gap: 5px;
}
.boarding-pass__route {
  direction: ltr;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-2);
}
.boarding-pass__iata {
  font-family: var(--font-display);
  font-size: var(--fs-lg);
  font-weight: var(--fw-black);
  letter-spacing: .04em;
  line-height: 1;
}
.boarding-pass__plane { color: var(--c-gold-500); transform: rotate(90deg); }
.boarding-pass__meta {
  direction: ltr;
  display: flex;
  justify-content: space-between;
  font-size: 10px;
  color: rgba(255, 255, 255, .62);
}
.boarding-pass__barcode {
  block-size: 16px;
  margin-block-start: 2px;
  border-radius: 2px;
  background-image: repeating-linear-gradient(
    90deg,
    rgba(255, 255, 255, .85) 0 2px,
    transparent 2px 4px,
    rgba(255, 255, 255, .85) 4px 5px,
    transparent 5px 8px
  );
  opacity: .5;
}
@media (max-width: 720px) {
  .lead-head { display: block; }
  .lead-head .lead-sub { margin-bottom: var(--sp-4); }
  .boarding-pass { inline-size: 200px; transform: rotate(-1.5deg); }
}
.flights-hero {
  position: relative;
  background: linear-gradient(155deg, var(--c-navy-900) 0%, var(--c-navy-950) 55%, #04162a 100%);
  color: var(--text-on-dark);
  padding-block: clamp(2.5rem, 5vw, 4rem) clamp(4rem, 8vw, 6.5rem);
  overflow: hidden;
}
.flights-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(55% 110% at 12% 0%, rgba(18, 160, 179, .26), transparent 62%),
    radial-gradient(45% 100% at 88% 100%, rgba(240, 168, 26, .16), transparent 60%);
}
.flights-hero__inner {
  position: relative;
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: clamp(var(--sp-5), 4vw, 3rem);
  align-items: center;
}
.flights-hero__eyebrow {
  display: inline-block;
  font-family: var(--font-display);
  font-size: var(--fs-2xs);
  font-weight: var(--fw-bold);
  letter-spacing: .12em;
  color: var(--c-gold-500);
  margin-bottom: var(--sp-3);
}
.flights-hero h1 {
  font-size: var(--fs-4xl);
  line-height: 1.18;
  color: var(--c-white);
  margin-bottom: var(--sp-4);
  max-width: 15em;
}
.flights-hero__lede {
  font-size: var(--fs-md);
  line-height: 1.75;
  color: rgba(255, 255, 255, .78);
  max-width: 54ch;
  margin-bottom: var(--sp-5);
}
.flights-hero__points {
  list-style: none;
  display: grid;
  gap: var(--sp-2);
  padding: 0;
  margin: 0;
}
.flights-hero__points li {
  position: relative;
  padding-inline-start: 26px;
  font-size: var(--fs-sm);
  color: rgba(255, 255, 255, .88);
}
.flights-hero__points li::before {
  content: "";
  position: absolute;
  inset-inline-start: 4px;
  inset-block-start: .45em;
  inline-size: 9px;
  block-size: 5px;
  border-left: 2px solid var(--c-gold-500);
  border-bottom: 2px solid var(--c-gold-500);
  transform: rotate(-45deg);
}
.flight-route { position: relative; }
.flight-route__svg { inline-size: 100%; block-size: auto; color: var(--c-gold-500); }
.flight-route__path {
  stroke: rgba(255, 255, 255, .34);
  stroke-width: 2;
  stroke-dasharray: 5 7;
  stroke-linecap: round;
}
.flight-route__dot { fill: var(--c-sea-400); }
.flight-route__ends {
  display: flex;
  justify-content: space-between;
  direction: ltr;
  margin-top: -14px;
  padding-inline: 10px;
}
.flight-route__end { display: grid; justify-items: center; gap: 2px; }
.flight-route__end b {
  font-family: var(--font-display);
  font-size: var(--fs-xl);
  font-weight: var(--fw-black);
  letter-spacing: .05em;
  color: var(--c-white);
  line-height: 1;
}
.flight-route__end small { font-size: var(--fs-3xs); color: rgba(255, 255, 255, .6); }
@media (prefers-reduced-motion: reduce) {
  .flight-route__plane animateMotion { display: none; }
  .flight-route__plane { display: none; }
}
.flights-form-section { padding-block-start: 0; background: var(--c-surface); }
.flights-form-section .container { position: relative; }
.flight-card {
  margin-block-start: clamp(-3.5rem, -5vw, -2rem);
  max-width: 900px;
}
.flight-form .lead-grid { grid-template-columns: repeat(2, 1fr); }
.flight-form select {
  inline-size: 100%;
  min-block-size: 46px;
  padding: 0 var(--sp-3);
  font: inherit;
  font-size: var(--fs-sm);
  color: var(--text-strong);
  background: var(--c-white);
  border: 1px solid var(--border);
  border-radius: var(--r-sm);
}
.flight-form select:focus-visible {
  outline: 2px solid var(--c-sea-500);
  outline-offset: 1px;
  border-color: var(--c-sea-500);
}
.flights-airlines { background: var(--c-white); }
.flights-airlines .partners-grid { margin-block-start: var(--sp-4); }
.flights-airlines .logo-marquee__track > * { block-size: 56px; }
.flights-airlines .logo-marquee__track img {
  max-block-size: 40px;
  inline-size: auto;
  block-size: auto;
  filter: grayscale(1);
  opacity: .7;
  transition: filter var(--dur-mid) var(--ease), opacity var(--dur-mid) var(--ease);
}
.flights-airlines .logo-marquee__track > *:hover img { filter: none; opacity: 1; }
.flights-steps { background: var(--c-surface); }
.flight-steps {
  list-style: none;
  counter-reset: none;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--sp-3);
  padding: 0;
  margin: var(--sp-5) 0 0;
}
.flight-steps li {
  display: grid;
  gap: var(--sp-2);
  padding: var(--sp-4);
  background: var(--c-white);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  transition: transform var(--dur-mid) var(--ease), box-shadow var(--dur-mid) var(--ease);
}
.flight-steps li:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-md);
}
.flight-step__num {
  inline-size: 30px;
  block-size: 30px;
  display: grid;
  place-items: center;
  font-family: var(--font-display);
  font-size: var(--fs-2xs);
  font-weight: var(--fw-bold);
  color: var(--c-gold-700);
  background: var(--c-gold-050);
  border: 2px solid var(--c-gold-200);
  border-radius: var(--r-full);
}
.flight-steps li:hover .flight-step__num {
  color: var(--c-white);
  background: var(--c-gold-500);
  border-color: var(--c-gold-500);
}
.flight-steps b {
  display: block;
  font-family: var(--font-display);
  font-size: var(--fs-sm);
  color: var(--c-navy-950);
  margin-bottom: 3px;
}
.flight-steps span:not(.flight-step__num) {
  font-size: var(--fs-2xs);
  color: var(--text-muted);
  line-height: 1.6;
}
.flights-dests { background: var(--c-white); }
.flights-dests__chips { margin-block-start: var(--sp-4); justify-content: center; }
@media (max-width: 900px) {
  .flights-hero__inner { grid-template-columns: 1fr; }
  .flights-hero h1 { max-width: none; }
  .flight-steps { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .flight-form .lead-grid { grid-template-columns: 1fr; }
  .flight-steps { grid-template-columns: 1fr; }
  .flight-card { margin-block-start: -1.5rem; }
}
@media (max-width: 700px) {
  .flight-steps li { padding-block: var(--sp-2); }
}
.flight-tab-wrap {
  position: fixed;
  inset-block-start: 50%;
  inset-inline-start: 0;
  transform: translateY(-50%);
  z-index: 60;
}
.flight-tab {
  position: relative;
  transform: translateX(calc(-1 * var(--tab-hide, 0px)));
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  padding: var(--sp-3) var(--sp-3) var(--sp-3) var(--sp-4);
  font: inherit;
  color: var(--c-white);
  background: linear-gradient(145deg, var(--c-navy-900), var(--c-navy-950));
  border: 0;
  border-start-end-radius: var(--r-md);
  border-end-end-radius: var(--r-md);
  box-shadow: 0 12px 34px -14px rgba(4, 24, 46, .85);
  cursor: pointer;
  transition: transform var(--dur-mid) var(--ease), box-shadow var(--dur-mid) var(--ease);
}
.flight-tab:hover { transform: translateX(4px); }
.flight-tab:focus-visible { outline: 3px solid var(--c-gold-500); outline-offset: 3px; }
.flight-tab__label {
  font-family: var(--font-display);
  font-size: var(--fs-2xs);
  font-weight: var(--fw-bold);
  letter-spacing: .02em;
  writing-mode: vertical-rl;
  white-space: nowrap;
  color: var(--c-gold-500);
}
.flight-tab .boarding-pass {
  inline-size: 118px;
  transform: none;
  box-shadow: none;
  border-radius: var(--r-sm);
}
.flight-tab .boarding-pass__stub { padding: var(--sp-2) 5px; }
.flight-tab .boarding-pass__body { padding: var(--sp-2) var(--sp-3); gap: 3px; }
.flight-tab .boarding-pass__iata { font-size: var(--fs-sm); }
.flight-tab .boarding-pass__meta,
.flight-tab .boarding-pass__label { display: none; }
.flight-tab .boarding-pass__barcode { block-size: 10px; }
.flight-drawer {
  position: fixed;
  inset-block: 0;
  inset-inline-start: 0;
  z-index: 70;
  inline-size: min(560px, 100vw);
  overflow-y: auto;
  overscroll-behavior: contain;
  background: var(--c-surface);
  box-shadow: 0 0 60px -10px rgba(4, 24, 46, .55);
  transform: translateX(-102%);
  visibility: hidden;
  transition: transform var(--dur-slow, .32s) var(--ease), visibility 0s linear .32s;
}
.flight-drawer__scrim {
  position: fixed;
  inset: 0;
  z-index: 65;
  background: rgba(4, 24, 46, .5);
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--dur-mid) var(--ease), visibility 0s linear .25s;
}
.flight-open .flight-drawer {
  transform: translateX(0);
  visibility: visible;
  transition: transform var(--dur-slow, .32s) var(--ease), visibility 0s;
}
.flight-open .flight-drawer__scrim { opacity: 1; visibility: visible; transition-delay: 0s; }
.flight-open .flight-tab { --tab-hide: 120px; }
.flight-drawer__close {
  position: sticky;
  inset-block-start: var(--sp-3);
  inset-inline-start: var(--sp-3);
  z-index: 2;
  display: grid;
  place-items: center;
  inline-size: 38px;
  block-size: 38px;
  margin: var(--sp-3) var(--sp-3) calc(-1 * var(--sp-5));
  font-size: 22px;
  line-height: 1;
  color: var(--text-body);
  background: var(--c-white);
  border: 1px solid var(--border);
  border-radius: var(--r-full);
  box-shadow: var(--shadow-sm);
  cursor: pointer;
}
.flight-drawer__close:hover { background: var(--c-surface); color: var(--c-navy-950); }
.flight-drawer__close:focus-visible { outline: 2px solid var(--c-sea-500); outline-offset: 2px; }
.flight-drawer .lead-section { border-top: 0; padding-block: var(--sp-5) var(--sp-6); }
.flight-drawer .lead-card {
  max-width: none;
  border: 0;
  box-shadow: none;
  background: transparent;
  padding: 0 var(--sp-5);
}
.flight-drawer .lead-grid { grid-template-columns: 1fr; }
.flight-drawer .lead-choice { grid-template-columns: 1fr; }
.flight-open body { overflow: hidden; }
@media (max-width: 560px) {
  .flight-tab { padding: var(--sp-2); }
  .flight-tab .boarding-pass { inline-size: 92px; }
  .flight-tab__label { font-size: var(--fs-3xs); }
  .flight-drawer { inline-size: 100vw; }
}
@media (prefers-reduced-motion: reduce) {
  .flight-tab,
  .flight-drawer,
  .flight-drawer__scrim,
  .flight-open .flight-drawer,
  .flight-open .flight-drawer__scrim { transition: none; }
}
.flight-tab-wrap {
  inset-inline-start: auto;
  right: 0;
  left: auto;
}
.flight-tab {
  padding: var(--sp-3) var(--sp-4) var(--sp-3) var(--sp-3);
  border-radius: var(--r-md) 0 0 var(--r-md);
  transform: translateX(var(--tab-hide, 0px));
}
.flight-tab:hover { transform: translateX(-4px); }
.flight-open .flight-tab-wrap { --tab-hide: 130px; }
.flight-open .flight-tab { --tab-hide: 130px; }
.flight-drawer {
  inset-inline-start: auto;
  right: 0;
  left: auto;
  transform: translateX(102%);
}
.flight-open .flight-drawer { transform: translateX(0); }
.flight-drawer__close {
  inset-inline-start: auto;
  margin-inline: auto var(--sp-3);
}
.flight-drawer { z-index: 120; }
.flight-drawer__scrim { z-index: 115; }
.flight-route__fan {
  stroke: rgba(45, 190, 208, .55);
  stroke-width: 1.5;
  stroke-dasharray: 260;
  stroke-dashoffset: 260;
  animation: te-fan-draw 9s var(--ease) infinite;
  animation-delay: calc(var(--i) * .16s);
}
.flight-route__fan-dot {
  fill: var(--c-gold-500);
  opacity: 0;
  animation: te-fan-pop 9s var(--ease) infinite;
  animation-delay: calc(var(--i) * .16s);
}
.flight-route__fan-label {
  fill: rgba(255, 255, 255, .8);
  font-family: var(--font-display);
  font-size: 11px;
  font-weight: var(--fw-semibold);
  opacity: 0;
  animation: te-fan-pop 9s var(--ease) infinite;
  animation-delay: calc(var(--i) * .16s + .1s);
}
.flight-route__pulse {
  fill: none;
  stroke: var(--c-sea-400);
  stroke-width: 2;
  opacity: 0;
  animation: te-hub-pulse 9s var(--ease) infinite;
}
.flight-route__code {
  fill: var(--c-white);
  font-family: var(--font-display);
  font-size: 20px;
  font-weight: var(--fw-black);
  letter-spacing: .05em;
}
.flight-route__city {
  fill: rgba(255, 255, 255, .6);
  font-family: var(--font-body);
  font-size: 11px;
}
@keyframes te-fan-draw {
  0%, 44%   { stroke-dashoffset: 260; }
  62%, 90%  { stroke-dashoffset: 0; }
  100%      { stroke-dashoffset: 0; opacity: 0; }
}
@keyframes te-fan-pop {
  0%, 56%   { opacity: 0; transform: scale(.6); }
  66%, 90%  { opacity: 1; transform: scale(1); }
  100%      { opacity: 0; }
}
@keyframes te-hub-pulse {
  0%, 40%  { opacity: 0; r: 9; }
  46%      { opacity: .9; r: 9; }
  60%      { opacity: 0; r: 26; }
  100%     { opacity: 0; r: 9; }
}
@media (prefers-reduced-motion: reduce) {
  .flight-route__fan { stroke-dashoffset: 0; animation: none; }
  .flight-route__fan-dot, .flight-route__fan-label { opacity: 1; animation: none; }
  .flight-route__pulse { animation: none; }
}
.flight-tab {
  right: var(--sp-2);
  padding: 0;
  background: none;
  border-radius: 0;
  box-shadow: none;
  gap: var(--sp-3);
  align-items: center;
  filter: drop-shadow(0 14px 26px rgba(4, 24, 46, .5));
}
.flight-tab:hover { background: none; }
.flight-tab__stack {
  position: relative;
  display: block;
  inline-size: 112px;
  block-size: 82px;
  flex: 0 0 auto;
}
.flight-tab .boarding-pass {
  position: absolute;
  inset-block-start: 50%;
  inset-inline-start: 0;
  inline-size: 112px;
  box-shadow: 0 8px 18px -10px rgba(4, 24, 46, .9);
  transition: transform var(--dur-mid) var(--ease);
}
.flight-tab .boarding-pass--back {
  transform: translateY(-50%) rotate(-15deg) translate(-7px, 5px);
  opacity: .6;
}
.flight-tab .boarding-pass:not(.boarding-pass--back) {
  transform: translateY(-50%) rotate(-6deg);
}
.flight-tab:hover .boarding-pass--back {
  transform: translateY(-50%) rotate(-19deg) translate(-11px, 7px);
}
.flight-tab:hover .boarding-pass:not(.boarding-pass--back) {
  transform: translateY(-50%) rotate(-3deg) translate(2px, -2px);
}
.flight-tab .boarding-pass__stub { padding: 5px 4px; }
.flight-tab .boarding-pass__code { font-size: 9px; }
.flight-tab .boarding-pass__body { padding: 6px 8px; gap: 2px; }
.flight-tab .boarding-pass__iata { font-size: 13px; }
.flight-tab .boarding-pass__plane { inline-size: 13px; block-size: 13px; }
.flight-tab .boarding-pass__meta { display: none; }
.flight-tab .boarding-pass__label { display: none; }
.flight-tab .boarding-pass__barcode { block-size: 8px; }
.flight-tab__label {
  order: -1;
  max-inline-size: 0;
  overflow: hidden;
  white-space: nowrap;
  opacity: 0;
  writing-mode: horizontal-tb;
  font-family: var(--font-display);
  font-size: var(--fs-2xs);
  font-weight: var(--fw-bold);
  color: var(--c-navy-950);
  background: var(--c-white);
  border-radius: var(--r-full);
  box-shadow: var(--shadow-md);
  padding: 0;
  transition: max-inline-size var(--dur-mid) var(--ease), opacity var(--dur-mid) var(--ease),
              padding var(--dur-mid) var(--ease);
}
.flight-tab:hover .flight-tab__label,
.flight-tab:focus-visible .flight-tab__label {
  max-inline-size: 15em;
  opacity: 1;
  padding: var(--sp-2) var(--sp-4);
}
@media (max-width: 560px) {
  .flight-tab { right: 4px; }
  .flight-tab__stack { inline-size: 88px; block-size: 66px; }
  .flight-tab .boarding-pass { inline-size: 88px; }
  .flight-tab .boarding-pass__iata { font-size: 11px; }
  .flight-tab__label { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .flight-tab .boarding-pass { transition: none; }
}
.flights-hero__inner { grid-template-columns: 1fr 1.02fr; }
.flight-route { transform: translateX(-28px); }
@media (max-width: 900px) { .flight-route { transform: none; } }
.lead-form.is-gated .lead-grid,
.lead-form.is-gated .lead-party,
.lead-form.is-gated .lead-ages,
.lead-form.is-gated .lead-more-toggle,
.lead-form.is-gated .lead-more,
.lead-form.is-gated .lead-consent,
.lead-form.is-gated .lead-actions { display: none; }
.lead-form.is-gated.is-open .lead-grid { display: grid; }
.lead-form.is-gated.is-open .lead-party { display: flex; }
.lead-form.is-gated.is-open .lead-ages { display: block; }
.lead-form.is-gated.is-open .lead-more-toggle { display: inline-flex; }
.lead-form.is-gated.is-open .lead-consent { display: flex; }
.lead-form.is-gated.is-open .lead-actions { display: flex; }
.lead-form.is-gated.is-open .lead-grid,
.lead-form.is-gated.is-open .lead-more-toggle,
.lead-form.is-gated.is-open .lead-consent,
.lead-form.is-gated.is-open .lead-actions {
  animation: te-reveal var(--dur-mid) var(--ease) both;
}
.lead-form.is-gated.is-open .lead-more-toggle { animation-delay: .04s; }
.lead-form.is-gated.is-open .lead-consent { animation-delay: .08s; }
.lead-form.is-gated.is-open .lead-actions { animation-delay: .12s; }
@keyframes te-reveal {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: none; }
}
.lead-form.is-gated .lead-choice::after {
  content: "בחרו אחת מהאפשרויות כדי להמשיך";
  display: block;
  margin-block-start: var(--sp-3);
  font-size: var(--fs-2xs);
  color: var(--text-muted);
  text-align: center;
}
.lead-form.is-gated.is-open .lead-choice::after { display: none; }
.lead-opt.is-active {
  color: var(--c-navy-950);
  background: var(--c-gold-050);
  border-color: var(--c-gold-500);
  box-shadow: inset 0 0 0 1px var(--c-gold-500);
}
@media (prefers-reduced-motion: reduce) {
  .lead-form.is-gated.is-open .lead-grid,
  .lead-form.is-gated.is-open .lead-more-toggle,
  .lead-form.is-gated.is-open .lead-consent,
  .lead-form.is-gated.is-open .lead-actions { animation: none; }
}
.flight-tab:hover,
.flight-tab:focus-visible { transform: translateX(var(--tab-hide, 0px)); }
.legacy #te-main #about .about-side ul li:hover,
.legacy #te-main #about .about-side ul li:focus-within,
.about-team .about-side ul li:focus-within,
.about-team .about-side ul li:hover { transform: none; }
.flight-steps li {
  position: relative;
  transform: none !important;
}
.flight-steps li::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: inherit;
  background: var(--c-white);
  box-shadow: none;
  transition: transform var(--dur-mid) var(--ease), box-shadow var(--dur-mid) var(--ease);
}
.flight-steps li:hover::before {
  transform: translateY(-3px);
  box-shadow: var(--shadow-md);
}
.legacy #te-main #about .about-pills a.pill:hover,
.about-team .about-pills a.pill:hover { transform: none; }
.cover-strip {
  position: relative;
  min-block-size: clamp(160px, 26vw, 300px);
  overflow: hidden;
  background: var(--c-navy-900);
}
.cover-strip img {
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
  display: block;
}
.cover-strip::after {
  content: "";
  position: absolute;
  inset-inline: 0;
  inset-block-end: 0;
  block-size: 45%;
  background: linear-gradient(to top, var(--bg-page), transparent);
  pointer-events: none;
}
.cover-strip {
  display: flex;
  align-items: flex-end;
  min-block-size: clamp(230px, 34vw, 400px);
}
.cover-strip img { position: absolute; inset: 0; }
.cover-strip::before {
  content: "";
  position: absolute;
  inset-inline: 0;
  inset-block-end: 0;
  block-size: 78%;
  background: linear-gradient(to top, rgba(4, 24, 46, .82), rgba(4, 24, 46, .45) 45%, transparent);
  pointer-events: none;
}
.cover-strip::after { block-size: 26%; }
.cover-strip__text {
  position: relative;
  z-index: 2;
  inline-size: min(100% - 2 * var(--sp-5), 1180px);
  margin-inline: auto;
  padding-block-end: clamp(var(--sp-5), 4vw, var(--sp-7));
  color: var(--c-white);
}
.cover-strip__eyebrow {
  display: block;
  font-family: var(--font-display);
  font-size: var(--fs-2xs);
  font-weight: var(--fw-bold);
  letter-spacing: .08em;
  color: var(--c-gold-500);
  margin-bottom: var(--sp-2);
}
.cover-strip__title {
  font-family: var(--font-display);
  font-size: var(--fs-4xl);
  font-weight: var(--fw-black);
  line-height: 1.15;
  color: var(--c-white);
  margin: 0 0 var(--sp-2);
  text-shadow: 0 2px 18px rgba(4, 24, 46, .5);
  max-width: 18em;
}
.cover-strip__lede {
  font-size: var(--fs-sm);
  line-height: 1.65;
  color: rgba(255, 255, 255, .88);
  margin: 0;
  max-width: 56ch;
}
@media (max-width: 560px) {
  .cover-strip { min-block-size: clamp(200px, 52vw, 280px); }
  .cover-strip__lede { display: none; }
  .cover-strip__ctas { flex-direction: column; align-items: stretch; }
}
@media (min-width: 900px) {
  .cover-strip__text { padding-right: 130px; }
}
.cover-strip::after { block-size: 16%; }
.cover-strip::before { block-size: 85%; }
.cover-strip__text { padding-block-end: clamp(var(--sp-7), 6vw, 3.5rem); }
.cover-strip__lede {
  color: #fff;
  text-shadow: 0 1px 10px rgba(4, 24, 46, .75);
}
.cover-strip__eyebrow { text-shadow: 0 1px 8px rgba(4, 24, 46, .6); }
.cover-strip::before {
  block-size: 100%;
  background: linear-gradient(
    to top,
    rgba(4, 24, 46, .88) 0%,
    rgba(4, 24, 46, .72) 38%,
    rgba(4, 24, 46, .42) 68%,
    rgba(4, 24, 46, .12) 100%
  );
}
.legacy #te-main .notification-banner {
  margin-block: var(--sp-5);
  padding: var(--sp-4) var(--sp-5);
  background: var(--c-gold-050);
  border: 1px solid var(--c-gold-200);
  border-inline-start: 3px solid var(--c-gold-500);
  border-radius: var(--r-md);
  color: var(--text-body);
  text-align: start;
  box-shadow: none;
  animation: none;
}
.legacy #te-main .notification-banner > div {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  justify-content: flex-start;
}
.legacy #te-main .notification-banner h3 {
  font-family: var(--font-display);
  font-size: var(--fs-md);
  color: var(--c-navy-950);
  margin: 0;
}
.legacy #te-main .notification-banner i {
  font-size: var(--fs-lg);
  color: var(--c-gold-600);
}
.legacy #te-main .notification-banner p {
  font-size: var(--fs-sm);
  line-height: 1.7;
  color: var(--text-muted);
  margin: var(--sp-2) 0 var(--sp-3);
}
.legacy #te-main .notification-banner a {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-2);
  font-family: var(--font-display);
  font-size: var(--fs-2xs);
  font-weight: var(--fw-bold);
  color: var(--c-navy-950);
  background: var(--c-white);
  border: 1px solid var(--c-gold-500);
  border-radius: var(--r-full);
  padding: var(--sp-2) var(--sp-4);
  text-decoration: none;
}
.legacy #te-main .notification-banner a:hover { background: var(--c-gold-500); }
.lead-when { animation: te-reveal var(--dur-mid) var(--ease) both; }
.lead-when .lead-grid { margin-top: var(--sp-3); }
.lead-form.is-gated:not(.is-open) .lead-when { display: none; }
@media (prefers-reduced-motion: reduce) { .lead-when { animation: none; } }
.tour-card__media--none {
  position: relative;
  background:
    radial-gradient(120% 90% at 50% 120%, rgba(18, 160, 179, .28), transparent 60%),
    linear-gradient(160deg, var(--c-navy-800), var(--c-navy-950));
}
.tour-card__media--none::after {
  content: "";
  position: absolute;
  inset-inline: 12%;
  inset-block-end: 26%;
  block-size: 34px;
  border-radius: 50%;
  border-block-start: 2px solid rgba(255, 255, 255, .22);
  border-inline: 2px solid transparent;
  transform: rotate(-4deg);
}
.tour-card__media--none .tour-card__badge {
  background: var(--c-gold-500);
  color: var(--c-navy-950);
}
.legacy #te-main .guide-gallery,
.guide-gallery {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr));
  gap: var(--sp-2);
  align-items: stretch;
}
.guide-gallery img {
  inline-size: 100%;
  block-size: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--r-md);
  display: block;
}
@media (min-width: 900px) { .guide-gallery { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 560px) { .guide-gallery { grid-template-columns: repeat(2, 1fr); } }
.tour-card__media--named {
  display: grid;
  place-items: center;
  padding: var(--sp-4);
  position: relative;
  aspect-ratio: 3 / 2;
  box-sizing: border-box;
  overflow: hidden;
  background:
    radial-gradient(120% 100% at 50% 0%, rgba(45, 190, 208, .16), transparent 70%),
    linear-gradient(135deg, var(--c-navy-900), var(--c-navy-800));
}
.tour-card__media--named::after {
  content: "";
  position: absolute;
  inset-inline: 22%;
  inset-block-end: var(--sp-3);
  block-size: 2px;
  border-radius: var(--r-full);
  background: linear-gradient(90deg, transparent, var(--c-gold-500), transparent);
}
.tour-card__media--named > span {
  font-family: var(--font-display);
  font-size: var(--fs-sm);
  font-weight: var(--fw-bold);
  line-height: var(--lh-snug);
  text-align: center;
  color: rgba(255, 255, 255, .92);
  direction: ltr;
  unicode-bidi: isolate;
  text-wrap: balance;
}
a.tour-card:hover .tour-card__media--named::after {
  inset-inline: 12%;
  transition: inset-inline var(--dur-mid) var(--ease);
}
.booking {
  margin-block: var(--sp-5);
}
.booking .container:not(:has(> .booking__inner)) {
  padding: var(--sp-4);
  background: var(--c-sea-050);
  border: 1px solid var(--c-sea-200);
  border-radius: var(--r-md);
}
.booking__head {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: var(--sp-1) var(--sp-3);
  margin-block-end: var(--sp-3);
}
.booking__title {
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--fs-lg);
  font-weight: var(--fw-bold);
  line-height: 1.2;
  color: var(--c-navy-900);
}
.booking__lede {
  margin: 0;
  font-size: var(--fs-xs);
  color: var(--text-muted);
}
.booking__form {
  display: grid;
  grid-template-columns: minmax(0, 2.2fr) minmax(0, 2.2fr) minmax(0, .7fr) minmax(0, .7fr) minmax(0, 1.1fr) auto;
  gap: var(--sp-2);
  align-items: end;
}
.booking__field {
  display: grid;
  gap: 3px;
  min-inline-size: 0;
}
.booking__field[hidden] { display: none !important; }
.booking__label {
  font-size: var(--fs-3xs);
  font-weight: var(--fw-semibold);
  color: var(--c-sea-600);
}
.booking__input {
  inline-size: 100%;
  min-block-size: 40px;
  padding: 6px var(--sp-3);
  background: var(--c-white);
  color: var(--c-ink-900);
  border: 1px solid var(--c-sea-200);
  border-radius: var(--r-sm);
  font-family: var(--font-body);
  font-size: var(--fs-xs);
  line-height: 1.3;
}
.booking__input:focus-visible {
  outline: 2px solid var(--c-sea-500);
  outline-offset: 1px;
}
.booking select.booking__input {
  appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, var(--c-sea-600) 50%),
                    linear-gradient(135deg, var(--c-sea-600) 50%, transparent 50%);
  background-position: calc(var(--sp-3) - 2px) calc(50% + 1px), calc(var(--sp-3) + 3px) calc(50% + 1px);
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
  padding-inline-start: var(--sp-6);
  text-overflow: ellipsis;
}
.booking__send {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp-2);
  min-block-size: 40px;
  padding: 0 var(--sp-4);
  background: #25d366;
  color: #062e16;
  border-radius: var(--r-sm);
  font-weight: var(--fw-bold);
  font-size: var(--fs-xs);
  text-decoration: none;
  white-space: nowrap;
  transition: background var(--dur-mid) var(--ease);
}
.booking__send:hover { background: #1eb955; color: #062e16; }
.booking__send i { font-size: 1.15em; }
.booking__note {
  margin: var(--sp-3) 0 0;
  font-size: var(--fs-3xs);
  line-height: 1.45;
  color: var(--text-muted);
}
@media (max-width: 900px) {
  .booking__form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .booking__field:nth-child(1),
  .booking__field:nth-child(2) { grid-column: 1 / -1; }
  .booking__send { grid-column: 1 / -1; }
}
@media (max-width: 460px) {
  .booking__form { grid-template-columns: 1fr 1fr; }
}
.related-chips--after {
  margin-block-start: var(--sp-5);
  justify-content: center;
}
.reviews-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
  gap: var(--sp-4);
}
.review-card {
  display: grid;
  grid-template-rows: auto auto 1fr;
  gap: var(--sp-4);
  margin: 0;
  padding: var(--sp-5) var(--sp-5) var(--sp-6);
  text-align: start;
  background: var(--c-surface-raised, #fff);
  border: 1px solid var(--border);
  border-radius: var(--r-md, 12px);
}
.review-card .review-header {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: var(--sp-3);
  margin: 0;
}
.review-card .review-avatar {
  inline-size: 44px;
  block-size: 44px;
  flex: none;
  margin: 0;
  border-radius: 50%;
  overflow: hidden;
}
.review-card .review-avatar--letter {
  display: grid;
  place-items: center;
  background: var(--c-sea-050);
  color: var(--c-sea-600);
  font-family: var(--font-display);
  font-size: var(--fs-lg);
  font-weight: var(--fw-bold);
  line-height: 1;
}
.review-card .review-author {
  font-family: var(--font-display);
  font-weight: var(--fw-bold);
  font-size: var(--fs-sm);
  color: var(--text-strong);
  line-height: 1.3;
}
.review-card .review-date {
  font-size: var(--fs-xs);
  color: var(--text-muted);
}
.review-card .review-stars {
  color: var(--c-gold-500);
  font-size: var(--fs-sm);
  letter-spacing: 2px;
  margin: 0;
}
.review-card > p,
.review-card .review-text {
  margin: 0;
  font-style: normal;
  font-size: var(--fs-base);
  line-height: var(--lh-relaxed);
  color: var(--text-body);
  -webkit-line-clamp: unset;
  line-clamp: unset;
  overflow: visible;
}
.review-card > p::before,
.review-card .review-text::before {
  content: "”";
  float: inline-start;
  margin-inline-end: .25rem;
  font-family: var(--font-display);
  font-size: 2.4rem;
  line-height: .9;
  color: var(--c-sea-200);
}
.section-header {
  margin-block-end: var(--sp-6);
  text-align: center;
}
.section-header .section-badge {
  display: inline-block;
  margin-block-end: var(--sp-3);
  padding: .35em .9em;
  background: var(--c-sea-050);
  color: var(--c-sea-700);
  border-radius: var(--r-full, 999px);
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
  letter-spacing: .02em;
}
.section-header .section-title {
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--fs-3xl);
  font-weight: var(--fw-black);
  line-height: var(--lh-tight);
  text-wrap: balance;
}
.section-header .section-title::after {
  content: "";
  display: block;
  inline-size: 56px;
  block-size: 2px;
  margin: var(--sp-4) auto 0;
  background: var(--c-sea-500);
  border-radius: 2px;
}
.section-header .section-description {
  margin: var(--sp-4) auto 0;
  max-inline-size: 62ch;
  color: var(--text-muted);
  font-size: var(--fs-sm);
}
@media (min-width: 62rem) {
  .reviews-grid:has(> :last-child:nth-child(4)) {
    grid-template-columns: repeat(2, 1fr);
  }
}
.logo-marquee__track > span,
.chain-marquee__track > span {
  display: contents;
}
@keyframes logo-scroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-33.3333%); }
}
.logo-marquee__track .partner-logo {
  inline-size: clamp(120px, 14vw, 168px);
  aspect-ratio: 320 / 120;
  block-size: auto;
  display: grid;
  place-items: center;
}
.logo-marquee__track .partner-logo img {
  max-inline-size: 100%;
  max-block-size: 100%;
  inline-size: auto;
  block-size: auto;
}
@media (max-width: 640px) {
  .logo-marquee__track .partner-logo { inline-size: 104px; }
}
@media (max-width: 999px) {
  .related__block .tour-grid {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: 62%;
    grid-template-columns: none;
    gap: var(--sp-3);
    overflow-x: auto;
    scroll-snap-type: x proximity;
    overscroll-behavior-inline: contain;
    scrollbar-width: none;
    margin-inline: calc(var(--sp-4) * -1);
    padding-inline: var(--sp-4);
    padding-block-end: var(--sp-2);
  }
  .related__block .tour-grid::-webkit-scrollbar { display: none; }
  .related__block .tour-card { scroll-snap-align: start; }
  .related__block--chips .related-chips { overflow: visible; }
}
@media (prefers-reduced-motion: reduce) {
  .related__block .tour-grid { scroll-snap-type: none; }
}
.flight-tab-wrap[data-arrival="waiting"] {
  visibility: hidden;
  pointer-events: none;
  transform: translateX(140%) rotate(8deg);
  opacity: 0;
}
.flight-tab-wrap[data-arrival="present"] {
  visibility: visible;
  pointer-events: auto;
  opacity: 1;
  transform: none;
}
.flight-tab-wrap[data-arrival="landed"] {
  visibility: visible;
  pointer-events: auto;
  animation: flight-tab-land 900ms cubic-bezier(.22, 1.2, .36, 1) both;
}
@keyframes flight-tab-land {
  0%   { opacity: 0; transform: translateX(140%) rotate(8deg); }
  70%  { opacity: 1; transform: translateX(-10px) rotate(-2deg); }
  100% { opacity: 1; transform: translateX(0) rotate(0); }
}
.flight-tab-wrap[data-arrival="landed"] .flight-tab::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  box-shadow: 0 0 0 0 var(--c-gold-500);
  animation: flight-tab-ping 1.6s ease-out 900ms 2 both;
  pointer-events: none;
}
@keyframes flight-tab-ping {
  0%   { box-shadow: 0 0 0 0 rgba(240, 168, 26, .55); }
  100% { box-shadow: 0 0 0 18px rgba(240, 168, 26, 0); }
}
@media (prefers-reduced-motion: reduce) {
  .flight-tab-wrap[data-arrival="landed"] { animation: none; }
  .flight-tab-wrap[data-arrival="landed"] .flight-tab::after { animation: none; }
}
.flight-tab-wrap[data-seen="1"] .flight-tab__stack {
  transform: scale(.82);
  transform-origin: 100% 50%;
  transition: transform var(--dur-mid) var(--ease);
}
.flight-tab-wrap[data-seen="1"] .flight-tab {
  padding-inline-end: 0;
  opacity: .88;
}
.flight-tab-wrap[data-seen="1"] .flight-tab:hover,
.flight-tab-wrap[data-seen="1"] .flight-tab:focus-visible {
  opacity: 1;
}
.flight-tab-wrap[data-seen="1"] .flight-tab:hover .flight-tab__stack,
.flight-tab-wrap[data-seen="1"] .flight-tab:focus-visible .flight-tab__stack {
  transform: scale(1);
}
@media (prefers-reduced-motion: reduce) {
  .flight-tab-wrap[data-seen="1"] .flight-tab__stack { transition: none; }
}
.nav-badge {
  display: inline-block;
  margin-inline-start: var(--sp-2);
  padding: 1px 7px;
  border-radius: var(--r-full);
  border: 1px solid rgba(240, 168, 26, .45);
  background: rgba(240, 168, 26, .12);
  color: var(--c-gold-500);
  font-size: 10px;
  font-weight: var(--fw-bold);
  letter-spacing: .04em;
  line-height: 1.6;
  vertical-align: middle;
  pointer-events: none;
}
.main-nav li > ul a:hover .nav-badge,
.main-nav li > ul a:focus-visible .nav-badge {
  border-color: rgba(240, 168, 26, .75);
  background: rgba(240, 168, 26, .2);
}
.nf {
  padding-block: clamp(3rem, 8vw, 6rem);
  background:
    radial-gradient(120% 90% at 50% 0%, rgba(16, 60, 92, .55), transparent 70%),
    var(--c-navy-900, #0b1b2b);
  color: #fff;
  text-align: center;
}
.nf-code {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(4rem, 14vw, 8rem);
  font-weight: 800;
  line-height: .9;
  letter-spacing: .04em;
  color: rgba(255, 255, 255, .10);
}
.nf-title {
  margin: clamp(-1.6rem, -3vw, -1rem) 0 var(--sp-3);
  font-size: clamp(1.6rem, 4.5vw, 2.6rem);
  color: #fff;
}
.nf-lede {
  margin: 0 auto;
  max-width: 54ch;
  color: rgba(255, 255, 255, .72);
  line-height: 1.75;
}
.nf-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-3);
  justify-content: center;
  margin-block: var(--sp-6) var(--sp-8);
}
.nf-group { margin-block-start: var(--sp-7); }
.nf-group h2 {
  margin: 0 0 var(--sp-4);
  font-size: var(--fs-md);
  font-weight: var(--fw-bold);
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--c-gold-500);
}
.nf-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: var(--sp-3);
  max-width: 60rem;
  margin-inline: auto;
}
.nf-card {
  display: grid;
  place-items: center;
  min-block-size: 64px;
  padding: var(--sp-3) var(--sp-4);
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: var(--r-lg, 14px);
  background: rgba(255, 255, 255, .04);
  color: #fff;
  text-decoration: none;
  font-weight: var(--fw-bold);
  line-height: 1.4;
  transition: border-color var(--dur-fast) var(--ease),
              background var(--dur-fast) var(--ease),
              transform var(--dur-fast) var(--ease);
}
.nf-card:hover,
.nf-card:focus-visible {
  border-color: rgba(240, 168, 26, .55);
  background: rgba(240, 168, 26, .10);
  transform: translateY(-2px);
}
@media (prefers-reduced-motion: reduce) {
  .nf-card:hover, .nf-card:focus-visible { transform: none; }
}
@media (max-width: 640px) {
  .nf-grid { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
  .nf-card { min-block-size: 56px; font-size: var(--fs-sm); }
}
.cc {
  position: fixed;
  inset-inline: 0;
  bottom: 0;
  z-index: 9000;
  padding: var(--sp-4);
  background: rgba(8, 20, 33, .97);
  backdrop-filter: blur(10px);
  border-block-start: 1px solid rgba(255, 255, 255, .12);
  box-shadow: 0 -16px 48px -20px rgba(0, 0, 0, .8);
  color: #fff;
  animation: cc-in var(--dur-mid) var(--ease);
}
@keyframes cc-in { from { transform: translateY(100%); } to { transform: none; } }
@media (prefers-reduced-motion: reduce) { .cc { animation: none; } }
.cc__box { max-width: 62rem; margin-inline: auto; }
.cc__title { margin: 0 0 var(--sp-2); font-size: var(--fs-lg); color: #fff; }
.cc__text { margin: 0 0 var(--sp-4); color: rgba(255, 255, 255, .78); line-height: 1.7; }
.cc__text strong { color: var(--c-gold-500); font-weight: var(--fw-bold); }
.cc__opts {
  display: grid;
  gap: var(--sp-2);
  margin-block-end: var(--sp-4);
}
.cc__opt {
  display: flex;
  align-items: flex-start;
  gap: var(--sp-3);
  padding: var(--sp-3);
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: var(--r-lg, 12px);
  background: rgba(255, 255, 255, .04);
  cursor: pointer;
  line-height: 1.6;
  font-size: var(--fs-sm);
  color: rgba(255, 255, 255, .82);
}
.cc__opt:hover { border-color: rgba(240, 168, 26, .4); }
.cc__opt input { inline-size: 20px; block-size: 20px; margin-block-start: 2px; flex: 0 0 auto; accent-color: var(--c-gold-500); }
.cc__opt strong { color: #fff; }
.cc__actions { display: flex; flex-wrap: wrap; gap: var(--sp-3); }
.cc__btn { min-inline-size: 150px; justify-content: center; }
.cc__fine { margin: var(--sp-4) 0 0; font-size: var(--fs-xs); color: rgba(255, 255, 255, .55); }
.cc__fine a { color: var(--c-gold-500); }
@media (max-width: 640px) {
  .cc { padding: var(--sp-3); max-block-size: 82vh; overflow-y: auto; }
  .cc__btn { flex: 1 1 100%; }
}
.cc-placeholder {
  display: grid;
  place-items: center;
  gap: var(--sp-3);
  min-block-size: 180px;
  padding: var(--sp-5);
  border: 1px dashed rgba(255, 255, 255, .2);
  border-radius: var(--r-lg, 12px);
  background: rgba(16, 32, 48, .5);
  text-align: center;
}
.cc-placeholder p { margin: 0; max-inline-size: 42ch; color: var(--text-muted, rgba(255,255,255,.7)); font-size: var(--fs-sm); line-height: 1.6; }
:where(iframe[data-consent-src]) { display: none !important; }
.cc {
  inset-inline: auto var(--sp-4);
  bottom: var(--sp-4);
  padding: var(--sp-4);
  max-inline-size: 46rem;
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: var(--r-lg, 14px);
  box-shadow: 0 24px 60px -24px rgba(0, 0, 0, .85);
}
.cc__title { font-size: var(--fs-md); margin-block-end: var(--sp-1); }
.cc__text {
  margin-block-end: var(--sp-3);
  font-size: var(--fs-sm);
  line-height: 1.6;
}
.cc__opts { gap: var(--sp-1); margin-block-end: var(--sp-3); }
.cc__opt {
  padding: var(--sp-2) var(--sp-3);
  font-size: var(--fs-xs);
  line-height: 1.5;
  align-items: center;
}
.cc__opt input { inline-size: 17px; block-size: 17px; margin-block-start: 0; }
.cc__actions { gap: var(--sp-2); }
.cc__btn {
  min-inline-size: 120px;
  padding-block: var(--sp-2);
  font-size: var(--fs-sm);
}
.cc__fine { margin-block-start: var(--sp-3); font-size: 11px; line-height: 1.5; }
@media (max-width: 720px) {
  .cc {
    inset-inline: 0;
    bottom: 0;
    max-inline-size: none;
    border-inline: 0;
    border-block-end: 0;
    border-radius: 0;
    padding: var(--sp-3);
  }
  .cc__btn { flex: 1 1 calc(50% - var(--sp-2)); min-inline-size: 0; }
}
.cc-panel {
  max-inline-size: 70rem;
  margin: var(--sp-8) auto;
  padding: var(--sp-6);
  border: 1px solid var(--border, rgba(0, 0, 0, .1));
  border-radius: var(--r-lg, 14px);
  background: var(--surface, #fff);
  scroll-margin-top: calc(var(--header-h, 66px) + var(--sp-5));
}
.cc-panel h2 { margin-block-start: 0; }
.cc-panel h3 { margin-block-start: var(--sp-6); font-size: var(--fs-md); }
.cc-panel__state {
  padding: var(--sp-4);
  border-radius: var(--r-md, 10px);
  background: var(--surface-2, rgba(0, 0, 0, .035));
}
.cc-panel__state ul { margin: 0; padding-inline-start: var(--sp-5); line-height: 1.9; }
.cc-panel__state code { font-size: var(--fs-xs); opacity: .75; }
.cc-panel__actions { display: flex; flex-wrap: wrap; gap: var(--sp-3); margin-block: var(--sp-4) 0; }
.cc-panel__note { color: var(--text-muted); font-size: var(--fs-sm); margin-block: var(--sp-2) var(--sp-4); }
.cc-panel__tablewrap { overflow-x: auto; }
.cc-panel__table { inline-size: 100%; border-collapse: collapse; font-size: var(--fs-sm); }
.cc-panel__table th,
.cc-panel__table td {
  padding: var(--sp-3);
  text-align: start;
  border-block-end: 1px solid var(--border, rgba(0, 0, 0, .08));
  vertical-align: top;
}
.cc-panel__table th { font-weight: var(--fw-bold); white-space: nowrap; }
.cc-panel__table tbody tr:last-child td { border-block-end: 0; }
.cc-panel__none { margin: 0; padding-inline-start: var(--sp-5); line-height: 1.9; color: var(--text-muted); }
.cc-panel__ver { margin-block-start: var(--sp-5); font-size: var(--fs-xs); color: var(--text-muted); }
@media (max-width: 640px) {
  .cc-panel { padding: var(--sp-4); margin-inline: var(--sp-3); }
  .cc-panel__table { font-size: var(--fs-xs); }
}
:where(:is(figure, picture, .tour-card, .hotel-card, .price-card, .package-card,
    .ticket-card, .pricing-card, [class$="__media"], [class*="-media"],
    [class*="gallery"] > *, .hero, .card):has(> img, > picture > img)) {
  position: relative;
}
:is(figure, picture, .tour-card, .hotel-card, .price-card, .package-card,
    .ticket-card, .pricing-card, [class$="__media"], [class*="-media"],
    [class*="gallery"] > *, .hero, .card):has(> img, > picture > img)::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: auto;
  background: transparent;
  z-index: 1;
}
img {
  -webkit-user-drag: none;
  user-select: none;
}
.hero {
  max-block-size: min(62dvh, 460px);
  overflow: hidden;
}
.hero__inner {
  padding-block: clamp(var(--sp-7), 8vw, var(--sp-10));
}
@media (max-width: 700px) {
  .hero { max-block-size: min(46dvh, 320px); }
  .hero__inner { padding-block: var(--sp-7); }
}
@media (min-width: 1000px) {
  .related__block .tour-grid:has(> :first-child:last-child) {
    grid-template-columns: minmax(0, 360px);
  }
  .related__block .tour-grid:has(> :nth-child(2):last-child) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-inline-size: 720px;
  }
  .related__block .tour-grid:has(> :nth-child(3):last-child) {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .related__block .tour-grid:has(> :nth-child(5):last-child) {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
  .related__block .tour-grid:has(> :nth-child(6):last-child) {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
:where(:has(> .card-cover)) { position: relative; }
.lang-switch { position: relative; display: flex; align-items: center; }
.lang-switch__btn {
  display: inline-flex; align-items: center; gap: var(--sp-2);
  padding: var(--sp-2) var(--sp-3);
  min-height: 40px;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, .28);
  border-radius: 999px;
  color: #fff; cursor: pointer;
  font: inherit; font-size: .9rem; font-weight: 700;
  transition: background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);
}
.lang-switch__btn:hover,
.lang-switch__btn[aria-expanded="true"] {
  background: rgba(255, 255, 255, .12);
  border-color: rgba(255, 255, 255, .55);
}
.lang-switch__btn:focus-visible { outline: 2px solid var(--c-gold-500); outline-offset: 2px; }
.lang-switch__code { line-height: 1; }
.lang-switch__menu {
  position: absolute; inset-block-start: calc(100% + 8px);
  inset-inline-end: 0;
  z-index: 60;
  margin: 0; padding: 6px;
  list-style: none;
  min-inline-size: 170px;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 14px 34px rgba(0, 0, 0, .22);
}
.lang-switch__menu[hidden] { display: none; }
.lang-switch__menu a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border-radius: 8px;
  color: var(--c-navy-950, #10233a);
  text-decoration: none;
  font-size: .95rem;
}
.lang-switch__menu .lang-flag {
  width: 22px;
  height: 15px;
  flex: 0 0 22px;
  border-radius: 2px;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, .14);
  display: block;
}
.lang-switch__menu .lang-name { flex: 1 1 auto; }
.lang-switch__btn .lang-flag {
  width: 18px;
  height: 12px;
  border-radius: 2px;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, .25);
  display: block;
}
.lang-switch__menu a:hover { background: #f1f4f8; }
.lang-switch__menu a[aria-current="true"] { font-weight: 800; background: #f1f4f8; }
@media (max-width: 719px) {
  .lang-switch__btn { padding: var(--sp-1) var(--sp-2); min-height: var(--tap-min); }
  .lang-switch__menu { min-inline-size: 150px; }
  .breadcrumbs { padding-block: 0; }
  .breadcrumbs a { display: inline-flex; align-items: center; justify-content: center; min-block-size: var(--tap-min); min-inline-size: var(--tap-min); }
}
.nl { background: var(--c-navy-900, #072742); color: #fff; padding-block: var(--sp-6, 32px); }
.nl__wrap { display: grid; gap: var(--sp-5, 24px); align-items: center; }
@media (min-width: 800px) { .nl__wrap { grid-template-columns: 1fr 1.4fr; } }
.nl__title { margin: 0 0 .25em; font-size: var(--fs-lg, 1.25rem); color: #fff; }
.nl__text p { margin: 0; opacity: .85; }
.nl__row { display: flex; gap: 8px; flex-wrap: wrap; }
.nl__row input[type=email] { flex: 1 1 220px; min-height: 44px; padding: 8px 12px; border: 1px solid transparent; border-radius: 8px; font: inherit; color: #072742; background: #fff; }
.nl__consent { display: flex; gap: 8px; align-items: flex-start; margin-block-start: 10px; font-size: .875rem; opacity: .9; }
.nl__consent input { margin-block-start: .3em; flex: none; width: 18px; height: 18px; }
.nl__consent a { color: #fff; text-decoration: underline; }
.nl__msg { margin: 10px 0 0; font-weight: 600; }
.nl__msg--bad { color: #ffb4a8; }
/* legacy-skin.css */
.legacy { --legacy-gap: var(--sp-5); }
.legacy .section,
.legacy .content-section {
  padding-block: var(--section-y);
}
.legacy .section-alt,
.legacy .section.section-alt { background: var(--c-sea-050); }
.legacy .section:nth-of-type(even) > .container { }
.legacy .container {
  width: 100%;
  max-width: var(--w-content);
  margin-inline: auto;
  padding-inline: var(--gutter);
}
.legacy .section-header { margin-bottom: var(--sp-7); max-width: 64ch; }
.legacy .section-title {
  font-family: var(--font-display);
  font-size: var(--fs-3xl);
  font-weight: var(--fw-black);
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-tight);
  color: var(--text-strong);
  margin: 0 0 var(--sp-3);
  text-wrap: balance;
}
.legacy .section-description {
  font-size: var(--fs-lg);
  color: var(--text-muted);
  line-height: var(--lh-normal);
  margin: 0;
  max-width: var(--w-prose);
}
.legacy .grid,
.legacy .features-grid,
.legacy .pricing-cards,
.legacy .schedule-grid,
.legacy .tips-grid,
.legacy .dates-grid,
.legacy .stages-grid,
.legacy .packages-grid,
.legacy .gallery {
  display: grid;
  gap: var(--legacy-gap);
  margin-block: var(--sp-5);
  padding: 0;
  list-style: none;
}
.legacy .grid:not([class*="grid--"]),
.legacy .features-grid,
.legacy .pricing-cards,
.legacy .schedule-grid,
.legacy .tips-grid,
.legacy .dates-grid,
.legacy .stages-grid,
.legacy .packages-grid,
.legacy .gallery {
  grid-template-columns: 1fr;
}
@media (min-width: 620px) {
  .legacy .features-grid,
  .legacy .pricing-cards,
  .legacy .tips-grid,
  .legacy .dates-grid,
  .legacy .stages-grid,
  .legacy .packages-grid,
  .legacy .grid:not([class*="grid--"]),
  .legacy .gallery { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 980px) {
  .legacy .features-grid,
  .legacy .tips-grid,
  .legacy .dates-grid,
  .legacy .stages-grid,
  .legacy .grid:not([class*="grid--"]) { grid-template-columns: repeat(3, 1fr); }
  .legacy .gallery { grid-template-columns: repeat(4, 1fr); }
  .legacy .pricing-cards,
  .legacy .packages-grid { grid-template-columns: repeat(3, 1fr); }
}
.legacy .schedule-grid { gap: var(--sp-3); }
.legacy .feature-card,
.legacy .tip-card,
.legacy .stage-card,
.legacy .date-card,
.legacy .accommodation-card,
.legacy .review-card,
.legacy .info-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  padding: var(--sp-5);
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  transition: border-color var(--dur-mid) var(--ease), box-shadow var(--dur-mid) var(--ease);
}
.legacy .feature-card:hover,
.legacy .tip-card:hover,
.legacy .date-card:hover,
.legacy .accommodation-card:hover {
  border-color: var(--c-sea-200);
  box-shadow: var(--shadow-md);
}
.legacy .feature-icon,
.legacy .tip-icon,
.legacy .stage-icon {
  font-size: var(--fs-2xl);
  line-height: 1;
  width: 52px; height: 52px;
  display: grid; place-items: center;
  border-radius: var(--r-md);
  background: var(--c-sea-050);
  color: var(--c-sea-600);
  margin-bottom: var(--sp-2);
}
.legacy .feature-title,
.legacy .tip-card h3,
.legacy .stage-card h3,
.legacy .date-card h3,
.legacy .accommodation-card h3 {
  font-family: var(--font-display);
  font-size: var(--fs-lg);
  font-weight: var(--fw-bold);
  color: var(--text-strong);
  margin: 0;
  line-height: var(--lh-snug);
}
.legacy .feature-card p,
.legacy .tip-card p,
.legacy .stage-card p { font-size: var(--fs-sm); color: var(--text-body); margin: 0; }
.legacy .date-card {
  border-inline-start: 4px solid var(--c-gold-500);
  background: var(--c-gold-050);
}
.legacy .date-content { display: flex; flex-direction: column; gap: var(--sp-1); }
.legacy .price-card,
.legacy .package-card {
  position: relative;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: var(--sp-6) var(--sp-5);
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
  text-align: start;
}
.legacy .price-card.featured,
.legacy .package-card.featured {
  border: 2px solid var(--c-gold-500);
  background: linear-gradient(180deg, var(--c-gold-050), var(--bg-card) 55%);
  box-shadow: var(--shadow-md);
}
.legacy .featured-badge {
  position: absolute;
  top: calc(var(--sp-3) * -1);
  inset-inline-start: var(--sp-5);
  background: var(--c-gold-500);
  color: var(--c-navy-950);
  font-family: var(--font-display);
  font-size: var(--fs-3xs);
  font-weight: var(--fw-black);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  padding: var(--sp-1) var(--sp-3);
  border-radius: var(--r-full);
  white-space: nowrap;
}
.legacy .price-type,
.legacy .package-card h3 {
  font-family: var(--font-display);
  font-size: var(--fs-md);
  font-weight: var(--fw-bold);
  color: var(--text-strong);
  margin: 0;
}
.legacy .price-amount,
.legacy .package-price {
  font-family: var(--font-display);
  font-size: var(--fs-3xl);
  font-weight: var(--fw-black);
  line-height: 1;
  color: var(--c-navy-800);
  direction: ltr;
  unicode-bidi: isolate;
  display: inline-flex;
  align-items: baseline;
  gap: 0.15em;
}
.legacy .price-currency,
.legacy .package-currency {
  font-size: var(--fs-lg);
  font-weight: var(--fw-bold);
  color: var(--c-sea-600);
}
.legacy .price-period,
.legacy .price-description {
  font-size: var(--fs-xs);
  color: var(--text-muted);
  font-weight: var(--fw-regular);
}
.legacy .package-features,
.legacy .package-content ul {
  list-style: none;
  padding: 0;
  margin: var(--sp-2) 0 0;
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
}
.legacy .package-features li {
  position: relative;
  padding-inline-start: var(--sp-6);
  font-size: var(--fs-sm);
  margin: 0;
}
.legacy .package-features li::before {
  content: "✓";
  position: absolute;
  inset-inline-start: 0;
  color: var(--c-success);
  font-weight: var(--fw-bold);
}
.legacy .included-list,
.legacy .bring-list,
.legacy .info-list,
.legacy .excluded-list {
  list-style: none;
  padding: var(--sp-5);
  margin-block: var(--sp-5);
  display: grid;
  gap: var(--sp-3);
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
}
@media (min-width: 720px) {
  .legacy .included-list,
  .legacy .bring-list,
  .legacy .info-list { grid-template-columns: 1fr 1fr; }
}
.legacy .included-list { border-inline-start: 4px solid var(--c-success); }
.legacy .excluded-list { border-inline-start: 4px solid var(--c-ink-400); }
.legacy .bring-list { border-inline-start: 4px solid var(--c-gold-500); }
.legacy .list-item {
  display: flex;
  align-items: flex-start;
  gap: var(--sp-3);
  font-size: var(--fs-sm);
  margin: 0;
}
.legacy .list-icon {
  flex-shrink: 0;
  width: 24px; height: 24px;
  display: grid; place-items: center;
  border-radius: var(--r-full);
  background: var(--c-sea-050);
  color: var(--c-sea-600);
  font-size: var(--fs-xs);
  margin-top: 2px;
}
.legacy .included-list .list-icon { background: rgba(23, 121, 74, 0.1); color: var(--c-success); }
.legacy .excluded-list .list-icon { background: rgba(92, 107, 122, 0.12); color: var(--c-ink-500); }
.legacy .schedule-item {
  display: flex;
  gap: var(--sp-4);
  align-items: baseline;
  padding: var(--sp-3) var(--sp-4);
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--r-sm);
}
.legacy .schedule-time {
  flex-shrink: 0;
  font-family: var(--font-display);
  font-weight: var(--fw-black);
  color: var(--c-sea-600);
  direction: ltr;
  unicode-bidi: isolate;
  min-width: 5.5em;
}
.legacy .gallery-item {
  margin: 0;
  overflow: hidden;
  border-radius: var(--r-md);
  aspect-ratio: 4 / 3;
  background: #eceff3;
}
.legacy .gallery-item img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 600ms var(--ease);
}
.legacy .gallery-item:hover img { transform: scale(1.05); }
.legacy .important-notice,
.legacy .highlight-box,
.legacy .notice,
.legacy .warning-box {
  background: var(--c-gold-050);
  border: 1px solid var(--c-gold-200);
  border-inline-start: 4px solid var(--c-gold-500);
  border-radius: var(--r-md);
  padding: var(--sp-5);
  margin-block: var(--sp-5);
}
.legacy .important-notice h3,
.legacy .highlight-box h3 {
  font-size: var(--fs-md);
  margin-bottom: var(--sp-2);
  color: var(--c-gold-700);
}
.legacy .important-notice p:last-child,
.legacy .highlight-box p:last-child { margin-bottom: 0; }
.legacy .faq-container { margin-block: var(--sp-5); }
.legacy .faq-item {
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  background: var(--bg-card);
  margin-bottom: var(--sp-3);
  overflow: hidden;
}
.legacy .faq-question {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-4);
  padding: var(--sp-4) var(--sp-5);
  margin: 0;
  cursor: pointer;
  font-family: var(--font-display);
  font-weight: var(--fw-semibold);
  font-size: var(--fs-md);
  color: var(--text-strong);
  min-height: 56px;
  list-style: none;
}
.legacy .faq-question::-webkit-details-marker { display: none; }
.legacy .faq-toggle {
  flex-shrink: 0;
  width: 28px; height: 28px;
  display: grid; place-items: center;
  border-radius: var(--r-full);
  background: var(--c-sea-050);
  color: var(--c-sea-600);
  font-weight: var(--fw-bold);
  transition: transform var(--dur-mid) var(--ease);
}
.legacy .faq-item[open] .faq-toggle,
.legacy .faq-item.active .faq-toggle { transform: rotate(45deg); }
.legacy .faq-answer {
  padding: 0 var(--sp-5) var(--sp-5);
  font-size: var(--fs-sm);
  color: var(--text-body);
  line-height: var(--lh-relaxed);
}
.legacy .faq-item:not([open]) .faq-answer { display: block; }
.legacy .btn,
.legacy .book-button,
.legacy .cta-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp-2);
  font-family: var(--font-display);
  font-size: var(--fs-md);
  font-weight: var(--fw-bold);
  line-height: 1;
  padding: var(--sp-3) var(--sp-5);
  min-height: 48px;
  border: 1.5px solid transparent;
  border-radius: var(--r-full);
  background: var(--c-gold-500);
  color: var(--c-navy-950);
  text-decoration: none;
  cursor: pointer;
  transition: background var(--dur-fast) var(--ease);
}
.legacy .btn:hover,
.legacy .book-button:hover,
.legacy .cta-button:hover { background: var(--c-gold-600); color: var(--c-navy-950); }
.legacy .btn-large { font-size: var(--fs-lg); padding: var(--sp-4) var(--sp-7); min-height: 56px; }
.legacy .btn-secondary,
.legacy .btn.secondary {
  background: transparent;
  border-color: var(--c-navy-800);
  color: var(--c-navy-800);
}
.legacy .btn-secondary:hover { background: #eceff3; color: var(--text-on-dark); }
.legacy .stars { color: var(--c-gold-500); letter-spacing: 0.08em; direction: ltr; unicode-bidi: isolate; }
.legacy .review-rating, .legacy .accommodation-rating { font-size: var(--fs-sm); }
.legacy .intro-grid {
  display: grid;
  gap: var(--sp-6);
  align-items: center;
  margin-block: var(--sp-6);
}
@media (min-width: 900px) {
  .legacy .intro-grid { grid-template-columns: 1.25fr 1fr; }
}
.legacy .intro-image img { border-radius: var(--r-lg); width: 100%; }
.legacy img {
  max-height: 520px;
  width: 100%;
  object-fit: cover;
}
.legacy .gallery-item img,
.legacy .card-image img,
.legacy figure img { max-height: none; height: 100%; }
.legacy div:has(> img + img),
.legacy div:has(> a > img):has(> a + a),
.legacy ul:has(> li > img + img) {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: var(--sp-4);
  align-items: start;
}
.legacy div:has(> img + img) > img {
  aspect-ratio: 4 / 3;
  height: auto;
  max-height: none;
  border-radius: var(--r-md);
}
.legacy div:has(> img:only-child) > img {
  max-width: 900px;
  margin-inline: auto;
  border-radius: var(--r-md);
}
.legacy div:empty,
.legacy section:empty,
.legacy p:empty,
.legacy figure:empty { display: none; }
.legacy [class*="image"]:not(:has(img)):not(:has(picture)):not(img):not(picture):not(svg):not(video) { display: none; }
.legacy h1 { font-size: var(--fs-4xl); }
.legacy h2 { font-size: var(--fs-3xl); margin-top: var(--sp-7); }
.legacy h3 { font-size: var(--fs-xl); margin-top: var(--sp-5); }
.legacy .feature-card h3,
.legacy .price-card h3,
.legacy .package-card h3,
.legacy .tip-card h3,
.legacy .date-card h3 { margin-top: 0; }
.legacy p { font-size: var(--fs-md); line-height: var(--lh-relaxed); }
.legacy img { border-radius: var(--r-md); }
.legacy table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--fs-sm);
  margin-block: var(--sp-5);
}
.legacy th, .legacy td {
  padding: var(--sp-3);
  text-align: start;
  border-bottom: 1px solid var(--border);
  vertical-align: top;
}
.legacy thead th {
  background: var(--c-navy-900);
  color: var(--text-on-dark);
  font-family: var(--font-display);
  font-size: var(--fs-xs);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  border-bottom: 0;
}
.legacy tbody tr:nth-child(even) { background: rgba(18, 160, 179, 0.04); }
@media (max-width: 719px) {
  .legacy table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
}
.booking-form {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: clamp(var(--sp-5), 3vw, var(--sp-7));
  box-shadow: var(--shadow-md);
  max-width: 860px;
  margin-inline: auto;
}
.booking-form__note {
  font-size: var(--fs-xs);
  color: var(--c-gold-700);
  background: var(--c-gold-050);
  border: 1px solid var(--c-gold-200);
  border-radius: var(--r-sm);
  padding: var(--sp-2) var(--sp-3);
  margin-bottom: var(--sp-5);
}
.booking-form h2 {
  font-size: var(--fs-2xl);
  margin: 0 0 var(--sp-5);
  text-align: start;
}
.booking-form form { display: flex; flex-direction: column; gap: var(--sp-2); }
.booking-form label {
  display: block;
  font-family: var(--font-display);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  color: var(--text-strong);
  margin-top: var(--sp-3);
  margin-bottom: var(--sp-1);
}
.booking-form .inline-fields label:first-child,
.booking-form > form > label:first-of-type { margin-top: 0; }
.booking-form input[type="text"],
.booking-form input[type="email"],
.booking-form input[type="tel"],
.booking-form input[type="number"],
.booking-form input[type="date"],
.booking-form input[type="time"],
.booking-form select,
.booking-form textarea {
  width: 100%;
  font-family: var(--font-body);
  font-size: var(--fs-md);
  color: var(--text-strong);
  background: var(--c-white);
  border: 1.5px solid var(--border);
  border-radius: var(--r-md);
  padding: var(--sp-3);
  min-height: 48px;
}
.booking-form input:focus,
.booking-form select:focus,
.booking-form textarea:focus {
  border-color: var(--c-sea-500);
  outline: 2px solid var(--c-sea-200);
  outline-offset: 1px;
}
.booking-form textarea { min-height: 110px; resize: vertical; }
.booking-form input[type="date"],
.booking-form input[type="time"] { direction: ltr; text-align: start; }
.booking-form .inline-fields,
.booking-form .return-date-time {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--sp-3) var(--sp-4);
  align-items: end;
}
@media (min-width: 640px) {
  .booking-form .inline-fields,
  .booking-form .return-date-time { grid-template-columns: 1fr 1fr; }
}
.booking-form .inline-fields > label,
.booking-form .return-date-time > label { margin: 0 0 var(--sp-1); }
.booking-form #custom-from,
.booking-form #custom-to { margin-top: var(--sp-2); }
.booking-form button,
.booking-form input[type="submit"] {
  align-self: flex-start;
  margin-top: var(--sp-5);
  font-family: var(--font-display);
  font-size: var(--fs-lg);
  font-weight: var(--fw-bold);
  background: var(--c-gold-500);
  color: var(--c-navy-950);
  border: 0;
  border-radius: var(--r-full);
  padding: var(--sp-3) var(--sp-7);
  min-height: 52px;
  cursor: pointer;
  transition: background var(--dur-fast) var(--ease);
}
.booking-form button:hover,
.booking-form input[type="submit"]:hover { background: var(--c-gold-600); }
.booking-form #message,
.booking-form #loading-message {
  padding: var(--sp-4) var(--sp-5);
  border-radius: var(--r-md);
  font-weight: var(--fw-semibold);
  margin-top: var(--sp-4);
}
.booking-form #message {
  background: rgba(23, 121, 74, 0.1);
  border: 1px solid var(--c-success);
  color: var(--c-success);
}
.booking-form #loading-message { background: var(--c-sea-050); color: var(--c-sea-600); }
.fact-list { list-style: none; padding: 0; display: grid; gap: var(--sp-2); }
.fact-list li {
  padding: var(--sp-2) var(--sp-3);
  background: var(--c-sea-050);
  border-radius: var(--r-sm);
  font-size: var(--fs-sm);
  margin: 0;
}
.info-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  padding: var(--sp-5);
}
.info-card h3 { font-size: var(--fs-lg); margin-bottom: var(--sp-2); }
.info-card p { font-size: var(--fs-sm); color: var(--text-body); margin: 0; }
.card-group { margin-block: var(--sp-7); }
.card-group > h2 { font-size: var(--fs-2xl); margin-bottom: var(--sp-5); }
/* legacy-patterns.css */
.legacy [class$="-grid"],
.legacy [class*="-grid "],
.legacy [class$="-cards"],
.legacy [class$="-container"]:has(> :is([class$="-card"],[class*="-card "])),
.legacy [class$="-wrapper"]:has(> :is([class$="-card"],[class*="-card "])) {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 224px), 1fr));
  gap: var(--sp-4);
  margin-block: var(--sp-5);
  padding: 0;
  list-style: none;
  align-items: stretch;
}
.legacy [class*="hotel"][class$="-grid"],
.legacy [class*="package"][class$="-grid"],
.legacy [class*="room"][class$="-grid"] {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 270px), 1fr));
}
.legacy :is([class$="-card"],[class*="-card "]),
.legacy [class*="-card "] {
  position: relative;
  display: flex;
  flex-direction: column;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: transform var(--dur-mid) var(--ease),
              box-shadow var(--dur-mid) var(--ease),
              border-color var(--dur-mid) var(--ease);
}
.legacy a:is([class$="-card"],[class*="-card "]):hover,
.legacy :is([class$="-card"],[class*="-card "]):hover {
  transform: translateY(-3px);
  border-color: var(--c-sea-200);
  box-shadow: var(--shadow-md);
}
.legacy [class$="-content"],
.legacy [class$="-body"],
.legacy [class$="-info"] {
  padding: var(--sp-4) var(--sp-5) var(--sp-5);
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  flex: 1;
}
.legacy section[class$="-content"],
.legacy :is([class$="-card"],[class*="-card "]) > [class$="-content"] ~ [class$="-content"] { padding: 0; }
.legacy [class$="-image"]:not(img):not(picture):not([class*="hero"]),
.legacy [class$="-media"]:not(img):not(picture):not([class*="hero"]),
.legacy [class$="-photo"]:not(img):not(picture):not([class*="hero"]),
.legacy [class$="-thumb"]:not(img):not(picture):not([class*="hero"]),
.legacy [class$="-img"]:not(img):not(picture):not([class*="hero"]) {
  position: relative;
  overflow: hidden;
  background: linear-gradient(110deg, #eceff3 25%, #f6f8fa 45%, #eceff3 65%);
  aspect-ratio: 4 / 3;
  flex-shrink: 0;
  margin: 0;
}
.legacy [class$="-image"]:not([class*="hero"]) > img,
.legacy [class$="-media"]:not([class*="hero"]) > img,
.legacy [class$="-photo"]:not([class*="hero"]) > img,
.legacy [class$="-thumb"]:not([class*="hero"]) > img,
.legacy [class$="-img"]:not([class*="hero"]) > img {
  width: 100%;
  height: 100%;
  max-height: none;
  object-fit: cover;
  border-radius: 0;
  transition: transform 600ms var(--ease);
}
.legacy :is([class$="-card"],[class*="-card "]):hover [class$="-image"] > img,
.legacy :is([class$="-card"],[class*="-card "]):hover [class$="-media"] > img { transform: scale(1.05); }
.legacy [class$="-image"]:not(:has(img)):not(img):not(picture):not(svg):not(video),
.legacy [class$="-media"]:not(:has(img)):not(img):not(picture):not(svg):not(video),
.legacy [class$="-photo"]:not(:has(img)):not(img):not(picture):not(svg):not(video),
.legacy [class$="-thumb"]:not(:has(img)):not(img):not(picture):not(svg):not(video) { display: none; }
.legacy [class$="-title"],
.legacy [class$="-name"],
.legacy [class$="-heading"] {
  font-family: var(--font-display);
  font-size: var(--fs-lg);
  font-weight: var(--fw-bold);
  line-height: var(--lh-snug);
  color: var(--text-strong);
  margin: 0;
}
.legacy [class$="-description"],
.legacy [class$="-desc"],
.legacy [class$="-text"],
.legacy [class$="-subtitle"] {
  font-size: var(--fs-sm);
  color: var(--text-muted);
  line-height: var(--lh-normal);
  margin: 0;
}
.legacy [class$="-price"],
.legacy [class*="price-amount"],
.legacy [class$="-cost"] {
  display: inline-flex;
  align-items: baseline;
  gap: 0.2em;
  align-self: flex-start;
  font-family: var(--font-display);
  font-weight: var(--fw-black);
  font-size: var(--fs-md);
  color: var(--c-navy-950);
  background: var(--c-gold-500);
  padding: var(--sp-1) var(--sp-3);
  border-radius: var(--r-full);
  direction: ltr;
  unicode-bidi: isolate;
  white-space: nowrap;
}
.legacy [class$="-original"],
.legacy [class*="old-price"],
.legacy del {
  text-decoration: line-through;
  color: var(--text-muted);
  background: none;
  font-weight: var(--fw-regular);
  padding: 0;
  font-size: var(--fs-sm);
}
.legacy [class$="-rating"],
.legacy [class$="-stars"],
.legacy [class$="-score"] {
  display: inline-flex;
  align-items: center;
  gap: 0.25em;
  color: var(--c-gold-600);
  font-family: var(--font-display);
  font-weight: var(--fw-bold);
  font-size: var(--fs-sm);
  direction: ltr;
  unicode-bidi: isolate;
  background: none;
  padding: 0;
}
.legacy [class$="-icon"]:not(:empty) {
  display: inline-grid;
  place-items: center;
  width: 48px; height: 48px;
  flex-shrink: 0;
  border-radius: var(--r-md);
  background: var(--c-sea-050);
  color: var(--c-sea-600);
  font-size: var(--fs-xl);
  line-height: 1;
}
.legacy [class$="-icon"]:empty:not([class*="fa-"]) { display: none; }
.legacy i[class*="fa-"] { font-style: normal; line-height: 1; }
.legacy [class$="-badge"],
.legacy [class$="-tag"],
.legacy [class$="-label"],
.legacy [class$="-category"],
.legacy [class$="-type"] {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  font-family: var(--font-display);
  font-size: var(--fs-3xs);
  font-weight: var(--fw-bold);
  letter-spacing: var(--ls-wide);
  padding: var(--sp-1) var(--sp-3);
  border-radius: var(--r-full);
  background: var(--c-sea-050);
  color: var(--c-sea-600);
  border: 1px solid var(--c-sea-200);
  white-space: nowrap;
}
.legacy :is(.price-card, .package-card, .pricing-card, .ticket-card, .route-card)
        :is([class$="-badge"], [class$="-tag"], [class$="-label"], [class$="-category"], [class$="-type"]) {
  white-space: normal;
  max-inline-size: 100%;
  overflow-wrap: anywhere;
}
.legacy [class$="-features"],
.legacy [class$="-includes"],
.legacy [class$="-amenities"],
.legacy [class$="-options"] {
  list-style: none;
  padding: 0;
  margin: var(--sp-2) 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-2);
}
.legacy [class$="-features"] > li,
.legacy [class$="-includes"] > li,
.legacy [class$="-amenities"] > li {
  font-size: var(--fs-xs);
  background: var(--c-surface);
  border: 1px solid var(--border);
  border-radius: var(--r-full);
  padding: var(--sp-1) var(--sp-3);
  margin: 0;
}
.legacy [class*="hero-banner"],
.legacy [class*="hero-content"],
.legacy [class*="hero-title"],
.legacy [class*="hero-subtitle"] { display: revert; }
.legacy [class*="hero-banner"] {
  border-radius: var(--r-lg);
  overflow: hidden;
  margin-bottom: var(--sp-7);
}
.legacy [class*="hero-title"] {
  font-family: var(--font-display);
  font-size: var(--fs-4xl);
  font-weight: var(--fw-black);
  line-height: var(--lh-tight);
  margin: 0 0 var(--sp-3);
}
.legacy [class*="hero-subtitle"],
.legacy [class*="hero-description"] { font-size: var(--fs-lg); opacity: .92; margin: 0; }
.legacy .swiper:not(.swiper-initialized) > .swiper-wrapper {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
  gap: var(--sp-5);
}
.legacy .swiper { overflow: hidden; max-width: 100%; }
.legacy [class$="faq"],
.legacy [class*="faq-container"] { display: grid; gap: var(--sp-3); margin-block: var(--sp-6); }
.legacy [class*="faq-item"] {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  padding: var(--sp-4) var(--sp-5);
  display: grid;
  gap: var(--sp-2);
}
.legacy [class*="faq-q"],
.legacy [class*="faq-question"] {
  display: block;
  width: 100%;
  text-align: start;
  background: none;
  border: 0;
  padding: 0;
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--fs-md);
  font-weight: var(--fw-bold);
  color: var(--text-strong);
  line-height: var(--lh-snug);
  cursor: default;
}
.legacy [class*="faq-a"],
.legacy [class*="faq-answer"] {
  display: block;
  font-size: var(--fs-sm);
  color: var(--text-body);
  line-height: var(--lh-relaxed);
  margin: 0;
  padding: 0;
  max-height: none;
  overflow: visible;
  opacity: 1;
}
.legacy [class$="toc"],
.legacy [class$="-toc"] {
  background: var(--c-sea-050);
  border: 1px solid var(--c-sea-200);
  border-radius: var(--r-md);
  padding: var(--sp-5);
  margin-block: var(--sp-6);
}
.legacy [class$="toc-list"] { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--sp-2); }
.legacy [class$="toc-item"] { margin: 0; }
.legacy [class$="toc-link"] { color: var(--c-navy-800); text-decoration: none; font-weight: var(--fw-semibold); }
.legacy [class$="toc-link"]:hover { color: var(--c-sea-600); text-decoration: underline; }
.legacy [class$="quick-facts"],
.legacy [class$="-stats"],
.legacy [class$="-facts"] {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: var(--sp-4);
  padding: var(--sp-5);
  background: var(--c-surface);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  margin-block: var(--sp-5);
  list-style: none;
  text-align: center;
}
.legacy [class$="quick-facts"] > * { display: grid; gap: var(--sp-1); align-content: start; }
.legacy [class$="video-container"],
.legacy [class$="video-wrapper"],
.legacy [class$="-video"] {
  position: relative;
  aspect-ratio: 16 / 9;
  inline-size: 100%;
  max-inline-size: 760px;
  margin-inline: auto;
  border-radius: var(--r-md);
  overflow: hidden;
  margin-block: var(--sp-4);
  background: var(--c-navy-950);
}
.legacy [class$="video-container"] > iframe,
.legacy [class$="video-wrapper"] > iframe,
.legacy [class$="-video"] > iframe {
  position: absolute;
  inset: 0;
  inline-size: 100%;
  block-size: 100%;
  border: 0;
}
.legacy .was-link { color: inherit; font-weight: inherit; }
.legacy [class$="logo"] img,
.legacy img[class*="logo"] { max-height: 56px; width: auto; object-fit: contain; }
.legacy [class$="-header"]:not([class*="card"]):not([class*="hotel"]) {
  margin-bottom: var(--sp-5);
  max-width: 64ch;
}
.legacy [class$="section-content"] { margin-block: var(--sp-4); }
.legacy .feature,
.legacy .benefit,
.legacy .service,
.legacy .step,
.legacy .item:has(h3, h4) {
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  padding: var(--sp-5);
}
.legacy .feature > h3,
.legacy .benefit > h3 { margin: 0; font-size: var(--fs-lg); }
.legacy div:has(> .feature + .feature),
.legacy div:has(> .benefit + .benefit),
.legacy div:has(> .step + .step) {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
  gap: var(--sp-5);
  margin-block: var(--sp-6);
}
.legacy :is([class$="-card"],[class*="-card "]) > [class$="-badge"],
.legacy .feature > [class$="-badge"],
.legacy .feature > [class$="-tag"] { order: -1; }
.legacy [class*="testimonial"][class*="card"],
.legacy [class*="testimonial"][class*="item"],
.legacy .swiper-slide > [class*="testimonial"],
.legacy [class*="review"][class*="card"] {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--sp-2);
  height: 100%;
  padding: var(--sp-5) var(--sp-4);
  text-align: center;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  overflow: hidden;
}
.legacy [class*="testimonial"]:not([class*="card"]):not([class*="item"]),
.legacy [class*="review"]:not([class*="card"]) {
  background: none;
  border: 0;
  border-radius: 0;
  padding: 0;
  width: auto;
  max-width: 100%;
}
.legacy [class*="testimonial"] img,
.legacy [class*="review"] img {
  width: 72px;
  height: 72px;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: var(--r-full);
  border: 2px solid var(--c-sea-200);
}
.legacy [class*="testimonial"][class*="image"],
.legacy [class*="testimonial"][class*="avatar"] {
  width: auto;
  flex: 0 0 auto;
  background: none;
  border: 0;
}
.legacy [class*="testimonial"] p,
.legacy [class*="review"] p {
  padding: 0;
  margin: 0;
  font-size: var(--fs-sm);
  line-height: var(--lh-relaxed);
  color: var(--text-body);
  font-style: italic;
}
.legacy [class*="testimonial"][class*="name"],
.legacy [class*="testimonial"][class*="author"] {
  font-family: var(--font-display);
  font-weight: var(--fw-bold);
  font-size: var(--fs-sm);
  color: var(--text-strong);
  font-style: normal;
}
.legacy [class*="testimonial"][class*="trip"],
.legacy [class*="testimonial"][class*="meta"] {
  font-size: var(--fs-xs);
  color: var(--c-sea-600);
  font-style: normal;
}
.legacy [class*="testimonial"][class*="rating"],
.legacy [class*="testimonial"][class*="stars"] {
  display: inline-flex;
  gap: 1px;
  color: var(--c-gold-500);
  letter-spacing: 1px;
}
@media (max-width: 640px) {
  .legacy [class$="-grid"],
  .legacy [class$="-cards"],
  .legacy .swiper,
  .legacy [class*="swiper-wrapper"] { grid-template-columns: 1fr; gap: var(--sp-4); }
  .legacy img { max-height: 340px; }
  .legacy [class$="-icon"] { width: 40px; height: 40px; font-size: var(--fs-lg); }
}
.legacy a:hover,
.legacy :is([class$="-card"],[class*="-card "]):hover [class$="-title"],
.legacy :is([class$="-card"],[class*="-card "]):hover [class$="-name"],
.legacy .card:hover .card-title,
.legacy [class$="toc-link"]:hover { color: var(--c-gold-600); }
.legacy :is([class$="-card"],[class*="-card "]):hover,
.legacy .card:hover,
.legacy .feature:hover { border-color: var(--c-gold-500); }
.legacy .btn:hover,
.legacy [class*="btn-"]:hover,
.legacy .book-button:hover,
.legacy .cta-button:hover { background: var(--c-gold-500); color: var(--c-navy-950); border-color: var(--c-gold-500); }
.main-nav a:hover { color: var(--c-gold-600); background: var(--c-gold-050); }
.breadcrumbs a:hover { color: var(--c-gold-600); }
.site-footer a:hover { color: var(--c-gold-500); }
a:hover { color: var(--c-gold-600); }
.legacy .swiper { padding-block: var(--sp-2) var(--sp-4); }
.legacy .nav-btn,
.legacy [class*="swiper-button"] {
  width: 46px; height: 46px;
  border-radius: var(--r-full);
  border: 1px solid var(--border);
  background: var(--c-white);
  box-shadow: var(--shadow-md);
  display: grid; place-items: center;
  cursor: pointer;
  transition: background var(--dur-fast) var(--ease),
              border-color var(--dur-fast) var(--ease),
              transform var(--dur-fast) var(--ease);
}
.legacy .nav-btn:hover,
.legacy [class*="swiper-button"]:hover {
  background: var(--c-gold-500);
  border-color: var(--c-gold-500);
  transform: translateY(-2px);
}
.legacy .nav-btn i { color: var(--c-navy-800); font-size: 17px; }
.legacy .nav-btn:hover i { color: var(--c-navy-950); }
.legacy .nav-btn:not(:has(i)):not(:has(svg))::after { content: "‹"; font-size: 26px; line-height: 1; color: var(--c-navy-800); }
.legacy [class*="-next"]:not(:has(i)):not(:has(svg))::after { content: "›"; }
.legacy .swiper-pagination-bullet {
  width: 9px; height: 9px;
  background: var(--c-ink-400);
  opacity: .4;
  transition: all var(--dur-fast) var(--ease);
}
.legacy .swiper-pagination-bullet-active {
  opacity: 1;
  width: 26px;
  border-radius: var(--r-full);
  background: var(--c-gold-500);
}
.legacy .swiper-slide .card {
  height: 100%;
  border-radius: var(--r-lg);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-sm);
  transition: transform var(--dur-mid) var(--ease), box-shadow var(--dur-mid) var(--ease), border-color var(--dur-mid) var(--ease);
}
.legacy .swiper-slide .card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-lg);
  border-color: var(--c-gold-500);
}
.legacy .swiper-slide .card-cta .btn {
  background: var(--c-gold-500);
  color: var(--c-navy-950) !important;
  box-shadow: none;
}
.legacy .swiper-slide .card-cta .btn:hover { background: var(--c-gold-600); }
.legacy img[class$="-image"],
.legacy img[class$="-media"],
.legacy img[class$="-photo"],
.legacy img[class$="-thumb"] {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  max-height: none;
  border-radius: var(--r-sm);
  margin-bottom: var(--sp-3);
}
.legacy [class*="faq-item"] {
  padding: 0;
  overflow: hidden;
}
.legacy [class*="faq-q"],
.legacy [class*="faq-question"] {
  padding: var(--sp-3) var(--sp-4);
  margin: 0;
  min-height: 0;
}
.legacy [class*="faq-a"],
.legacy [class*="faq-answer"] {
  padding: 0 var(--sp-4) var(--sp-3);
  margin: 0;
  border-top: 1px solid var(--border);
  padding-top: var(--sp-3);
}
.legacy [class*="faq-item"] + [class*="faq-item"] { margin-top: var(--sp-2); }
.legacy [class$="toc"],
.legacy [class$="-toc"] {
  padding: var(--sp-4) var(--sp-5);
  margin-block: var(--sp-5);
}
.legacy [class$="toc"] > h2,
.legacy [class$="toc"] > h3,
.legacy [class$="-toc"] > h2,
.legacy [class$="-toc"] > h3 {
  font-size: var(--fs-lg);
  margin: 0 0 var(--sp-3);
}
.legacy [class$="toc-list"] {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: var(--sp-1) var(--sp-4);
}
.legacy [class$="toc-item"] { margin: 0; }
.legacy [class$="toc-link"] {
  display: block;
  padding: var(--sp-1) 0;
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  line-height: 1.5;
}
.legacy [class$="-header"] { margin-bottom: var(--sp-4); }
.legacy [class$="-grid"],
.legacy [class$="-cards"] { margin-block: var(--sp-4); }
.legacy [class*="important-notice"],
.legacy [class*="highlight-box"] { padding: var(--sp-4); margin-block: var(--sp-4); }
.legacy [class$="quick-facts"] { padding: var(--sp-4); margin-block: var(--sp-4); }
.legacy h2 { margin-top: var(--sp-5); }
.legacy h3 { margin-top: var(--sp-4); }
.legacy .container > :first-child { margin-top: 0; }
.legacy .stars,
.legacy [class$="-stars"],
.legacy [class*="rating"] .stars {
  font-family: "Segoe UI Symbol", "Apple Symbols", "Noto Sans Symbols 2",
               "DejaVu Sans", "Arial Unicode MS", sans-serif;
  font-size: var(--fs-sm);
  letter-spacing: .08em;
  color: var(--c-gold-500);
  direction: ltr;
  unicode-bidi: isolate;
  line-height: 1;
}
.legacy .numeric-rating {
  font-family: var(--font-display);
  font-weight: var(--fw-black);
  font-size: var(--fs-sm);
  color: var(--c-navy-900);
  background: var(--c-gold-200);
  border-radius: var(--r-sm);
  padding: 2px var(--sp-2);
  direction: ltr; unicode-bidi: isolate;
}
.legacy .hotels-grid,
.legacy .restaurants-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr));
  gap: var(--sp-4);
  margin-block: var(--sp-5);
}
.legacy .hotel-card,
.legacy .restaurant-card {
  position: relative;
  display: flex;
  flex-direction: column;
  background: var(--c-white);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  transition: transform var(--dur-mid) var(--ease),
              box-shadow var(--dur-mid) var(--ease),
              border-color var(--dur-mid) var(--ease);
}
.legacy .hotel-card:hover,
.legacy .restaurant-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-lg);
  border-color: var(--c-gold-500);
}
.legacy .hotel-card > img,
.legacy .restaurant-card > img,
.legacy .hotel-card [class*="image"] img,
.legacy .restaurant-card [class*="image"] img {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  border-radius: 0;
  margin: 0;
  max-height: none;
}
.legacy .hotel-category {
  position: absolute;
  top: var(--sp-3);
  inset-inline-start: var(--sp-3);
  z-index: 2;
  background: rgba(4, 24, 46, .85);
  backdrop-filter: blur(6px);
  color: #fff;
  font-family: var(--font-display);
  font-size: var(--fs-3xs);
  font-weight: var(--fw-bold);
  padding: var(--sp-1) var(--sp-3);
  border-radius: var(--r-full);
  border: 0;
  white-space: nowrap;
}
.legacy .hotel-content,
.legacy .restaurant-content {
  padding: var(--sp-4);
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  flex: 1;
}
.legacy .hotel-title,
.legacy .restaurant-card h3 {
  font-family: var(--font-display);
  font-size: var(--fs-lg);
  font-weight: var(--fw-bold);
  line-height: var(--lh-snug);
  margin: 0;
}
.legacy .hotel-features,
.legacy .restaurant-features {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-1);
  margin: 0;
  padding: 0;
  list-style: none;
}
.legacy .hotel-feature,
.legacy .restaurant-features > * {
  font-family: var(--font-display);
  font-size: var(--fs-3xs);
  font-weight: var(--fw-semibold);
  color: var(--c-sea-600);
  background: var(--c-sea-050);
  border: 1px solid var(--c-sea-200);
  border-radius: var(--r-full);
  padding: 2px var(--sp-2);
  white-space: nowrap;
}
.legacy .hotel-description,
.legacy .restaurant-card p {
  font-size: var(--fs-sm);
  color: var(--text-body);
  line-height: var(--lh-normal);
  margin: 0;
}
.legacy .hotel-card .btn,
.legacy .hotel-card a[class*="btn"],
.legacy .restaurant-card .btn,
.legacy .restaurant-card a[class*="btn"] {
  margin-top: auto;
  align-self: stretch;
  justify-content: center;
  background: var(--c-navy-800);
  color: #fff;
  border-radius: var(--r-full);
  padding: var(--sp-2) var(--sp-4);
  min-height: 42px;
  font-size: var(--fs-sm);
}
.legacy .hotel-card .btn:hover,
.legacy .hotel-card a[class*="btn"]:hover,
.legacy .restaurant-card .btn:hover,
.legacy .restaurant-card a[class*="btn"]:hover {
  background: var(--c-gold-500);
  color: var(--c-navy-950);
}
main {
  font-size: 0.8rem;
}
.legacy,
.legacy p,
.legacy li,
.legacy td,
.legacy th,
.prose p,
.prose li {
  font-size: 0.85rem;
  line-height: 1.7;
}
.legacy h1, .hero h1 { font-size: clamp(1.5rem, 1.2rem + 1.5vw, 2rem); }
.legacy h2, .legacy .section-title, .section-head h2 { font-size: clamp(1.25rem, 1.05rem + 0.9vw, 1.6rem); }
.legacy h3 { font-size: clamp(1.05rem, 0.95rem + 0.4vw, 1.2rem); }
.legacy h4 { font-size: 1rem; }
.legacy .section-description,
.legacy [class$="-description"],
.legacy [class$="-desc"],
.legacy [class$="-text"],
.legacy [class$="-subtitle"] { font-size: 0.82rem; }
.legacy [class$="-title"],
.legacy [class$="-name"],
.legacy .hotel-title,
.legacy .card-title { font-size: 0.95rem; }
.legacy [class$="-price"],
.legacy [class*="price-amount"] { font-size: 0.88rem; }
.legacy [class$="-badge"],
.legacy [class$="-tag"],
.legacy [class$="-category"],
.legacy .hotel-feature { font-size: 0.68rem; }
.legacy .btn,
.legacy [class*="btn-"],
.legacy .book-button { font-size: 0.82rem; padding: var(--sp-2) var(--sp-4); min-height: 40px; }
.legacy [class*="faq-q"],
.legacy [class*="faq-question"] { font-size: 0.88rem; }
.legacy [class*="faq-a"],
.legacy [class*="faq-answer"] { font-size: 0.82rem; }
.legacy [class$="toc-link"] { font-size: 0.82rem; }
.tour-card__title { font-size: 0.92rem; }
.tour-card__price { font-size: 0.85rem; }
.tour-card__note,
.tour-card__type { font-size: 0.7rem; }
.lead-title { font-size: clamp(1.2rem, 1.05rem + 0.7vw, 1.5rem); }
.lead-sub { font-size: 0.8rem; }
.lead-field label { font-size: 0.78rem; }
.lead-field input, .lead-field textarea { font-size: 0.85rem; }
.lead-opt { font-size: 0.8rem; }
.breadcrumbs { font-size: 0.75rem; }
.site-footer { font-size: 0.8rem; }
.legacy { overflow-x: clip; max-width: 100%; }
.legacy * { max-width: 100%; }
.legacy [style*="width"],
.legacy [width] { max-width: 100% !important; }
.legacy [class*="section"],
.legacy [class*="container"],
.legacy [class*="grid"],
.legacy [class*="card"]:not(.card-cover) { position: relative; }
.legacy [class*="gallery"]:not(:has(> img + img)) > img,
.legacy [class*="images"] > img {
  float: none;
  position: static;
}
.legacy section:has(> img + img) > img,
.legacy div:has(> img + img) > img { float: none; }
.legacy [class*="float"],
.legacy img[align] { float: none !important; }
.legacy p, .legacy li, .legacy h1, .legacy h2, .legacy h3, .legacy h4 {
  overflow-wrap: anywhere;
  word-break: normal;
}
.legacy [class$="-content"]:has(> [class$="-images"]),
.legacy .club-content {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--sp-5);
  align-items: start;
  margin-block: var(--sp-5);
}
@media (min-width: 900px) {
  .legacy [class$="-content"]:has(> [class$="-images"]),
  .legacy .club-content { grid-template-columns: 1.15fr 1fr; }
}
.legacy [class$="-images"],
.legacy .club-images {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--sp-2);
  height: auto;
}
.legacy [class$="-images"] > img,
.legacy .club-images > img {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  max-height: none;
  border-radius: var(--r-sm);
  margin: 0;
}
.legacy [class$="-images"]:has(> img:only-child) { grid-template-columns: 1fr; }
.legacy [class$="-info"] { min-width: 0; }
.legacy [class$="-info"] > :first-child { margin-top: 0; }
.legacy #attractions-container:empty,
.legacy [id$="-container"]:empty { display: none; }
.legacy .filters,
.legacy .filters-grid,
.legacy [class$="filters"]:has(select),
.legacy [class$="filter-group"] { display: none; }
.legacy .categories-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
  gap: var(--sp-4);
  margin-block: var(--sp-5);
}
.legacy .category-card {
  background: var(--c-white);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  padding: var(--sp-5);
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  box-shadow: var(--shadow-sm);
  transition: transform var(--dur-mid) var(--ease),
              box-shadow var(--dur-mid) var(--ease),
              border-color var(--dur-mid) var(--ease);
}
.legacy .category-card:hover {
  transform: translateY(-3px);
  border-color: var(--c-gold-500);
  box-shadow: var(--shadow-md);
}
.legacy .category-card h3 {
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: var(--fw-bold);
  margin: 0;
  color: var(--text-strong);
}
.legacy .category-card p { font-size: 0.82rem; line-height: 1.7; margin: 0; color: var(--text-body); }
.legacy .category-card a { color: var(--c-sea-600); font-weight: var(--fw-semibold); }
.legacy .category-card a:hover { color: var(--c-gold-600); }
.legacy #car,
.legacy #smoke,
.legacy #road,
.legacy [id$="-animation"] { display: none !important; }
.legacy [class*="hero-banner"] {
  background-size: cover;
  background-position: center;
  min-height: 0;
}
.legacy [class*="hero-banner"]:not([style*="url"]):not([class*="has-image"]) {
  background-image: none !important;
  background-color: transparent;
  padding: 0;
}
.legacy .destination-card,
.legacy .attraction-card,
.legacy .activity-card,
.legacy .package-card,
.legacy .hotel-card,
.legacy .restaurant-card,
.legacy .feature-card,
.legacy .tip-card,
.legacy .info-card,
.legacy .card {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
  background: var(--c-white);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
}
.legacy .destination-card > img,
.legacy .attraction-card > img,
.legacy .activity-card > img,
.legacy .card > img,
.legacy :is([class$="-card"],[class*="-card "]) > img:first-child {
  order: -1;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  max-height: none;
  margin: 0;
  border-radius: 0;
}
.legacy :is([class$="-card"],[class*="-card "]) > :not(img):not([class*="image"]):not([class*="media"]) {
  padding-inline: var(--sp-4);
}
.legacy :is([class$="-card"],[class*="-card "]) > :not(img):first-of-type { padding-top: var(--sp-3); }
.legacy :is([class$="-card"],[class*="-card "]) > :not(img):last-child { padding-bottom: var(--sp-4); }
.legacy :is([class$="-card"],[class*="-card "]) h3,
.legacy :is([class$="-card"],[class*="-card "]) h4,
.legacy :is([class$="-card"],[class*="-card "]) [class$="-title"] {
  font-size: 0.95rem;
  line-height: 1.4;
  margin: 0 0 var(--sp-1);
}
.legacy [class$="-grid"],
.legacy [class$="-cards"],
.legacy .categories-grid,
.legacy .destinations-grid { align-items: stretch; }
.legacy .swiper:not(.swiper-initialized) [class*="swiper-button"],
.legacy .swiper:not(.swiper-initialized) [class*="swiper-pagination"],
.legacy .slider-controls:not(:has(+ .swiper-initialized)),
.legacy [class*="carousel-control"]:not(:has(~ [class*="carousel-item"])) { display: none; }
.legacy .nav-btn:not(:has(i)):empty,
.legacy [class*="slider-controls"]:empty { display: none; }
.legacy .section-title,
.legacy [class$="-title"]:not([class*="card"]):not([class*="hotel"]):not([class*="price"]) {
  position: relative;
}
.legacy .section-title::after {
  content: "";
  display: block;
  position: static;
  width: 72px;
  height: 3px;
  margin: var(--sp-4) auto 0;
  border-radius: var(--r-full);
  background: linear-gradient(90deg, var(--c-sea-500), var(--c-sea-400));
  transition: width var(--dur-mid) var(--ease),
              background var(--dur-mid) var(--ease),
              box-shadow var(--dur-mid) var(--ease);
}
.legacy .section:hover .section-title::after,
.legacy .content-section:hover .section-title::after,
.legacy .section-title:hover::after {
  width: 150px;
  background: linear-gradient(90deg, var(--c-gold-500), #ffd97a, var(--c-gold-500));
  box-shadow: 0 4px 14px -4px rgba(240, 168, 26, .6);
}
.section-head h2 { position: relative; padding-bottom: var(--sp-3); }
.section-head h2::after {
  content: "";
  position: absolute;
  bottom: 0;
  inset-inline-start: 0;
  width: 56px;
  height: 3px;
  border-radius: var(--r-full);
  background: var(--c-sea-500);
  transition: width var(--dur-mid) var(--ease), background var(--dur-mid) var(--ease);
}
.section:hover .section-head h2::after { width: 120px; background: var(--c-gold-500); }
@media (min-width: 1280px) {
  .legacy [class$="-grid"],
  .legacy [class$="-cards"],
  .legacy .categories-grid,
  .legacy .destinations-grid,
  .tour-grid {
    grid-template-columns: repeat(4, 1fr);
  }
  .legacy [class*="hotel"][class$="-grid"],
  .legacy [class*="package"][class$="-grid"] { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 1700px) {
  .tour-grid { grid-template-columns: repeat(5, 1fr); }
}
.legacy .destination-card.destination-card,
.legacy .category-card.category-card:has(img),
.legacy .city-card.city-card:has(img),
.tour-card--visual {
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 0;
  border: 0;
  border-radius: var(--r-lg);
  overflow: hidden;
  min-height: 250px;
  background: var(--c-navy-900);
  box-shadow: var(--shadow-md);
}
.legacy .destination-card.destination-card > img,
.legacy .destination-card.destination-card > img,
.legacy .category-card.category-card:has(img) > img,
.legacy .city-card.city-card:has(img) > img,
.legacy .destination-card.destination-card > [class*="image"],
.legacy .destination-card.destination-card > [class*="img"],
.legacy .destination-card.destination-card > figure,
.legacy .destination-card.destination-card > [class*="image"],
.legacy .category-card.category-card:has(img) > [class*="image"],
.legacy .category-card.category-card:has(img) > figure,
.legacy .city-card.city-card:has(img) > [class*="image"] {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  aspect-ratio: auto !important;
  object-fit: cover;
  background: none;
  border-radius: 0;
  overflow: hidden;
  transition: transform 700ms var(--ease);
}
.legacy .destination-card.destination-card > [class*="image"] > img,
.legacy .destination-card.destination-card > [class*="img"] > img,
.legacy .destination-card.destination-card > figure > img,
.legacy .destination-card.destination-card > [class*="image"] > img,
.legacy .category-card.category-card:has(img) > [class*="image"] > img,
.legacy .category-card.category-card:has(img) > figure > img,
.legacy .city-card.city-card:has(img) > [class*="image"] > img {
  width: 100%;
  height: 100%;
  max-height: none;
  object-fit: cover;
  border-radius: 0;
  aspect-ratio: auto !important;
}
.legacy .destination-card.destination-card::after,
.legacy .category-card.category-card:has(img)::after,
.legacy .city-card.city-card:has(img)::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(to top,
    rgba(4, 24, 46, .93) 0%,
    rgba(4, 24, 46, .62) 42%,
    rgba(4, 24, 46, .10) 78%);
  transition: opacity var(--dur-mid) var(--ease);
}
.legacy .destination-card.destination-card:hover > img,
.legacy .destination-card.destination-card:hover > [class*="image"],
.legacy .destination-card.destination-card:hover > [class*="image"],
.legacy .category-card.category-card:has(img):hover > img { transform: scale(1.06); }
.legacy .destination-card.destination-card > :not(img),
.legacy .destination-card.destination-card > :not(img),
.legacy .category-card.category-card:has(img) > :not(img),
.legacy .city-card.city-card:has(img) > :not(img) {
  position: relative;
  z-index: 2;
  background: none;
  padding: var(--sp-3) var(--sp-4);
  color: #fff;
}
.legacy .destination-card.destination-card > [class*="image"],
.legacy .destination-card.destination-card > [class*="img"],
.legacy .destination-card.destination-card > figure,
.legacy .destination-card.destination-card > [class*="image"],
.legacy .category-card.category-card:has(img) > [class*="image"],
.legacy .category-card.category-card:has(img) > figure { padding: 0; }
.legacy .destination-card.destination-card h2,
.legacy .destination-card.destination-card h3,
.legacy .destination-card.destination-card h4,
.legacy .destination-card.destination-card [class$="-title"],
.legacy .destination-card.destination-card h3,
.legacy .category-card.category-card:has(img) h3,
.legacy .city-card.city-card:has(img) h3 {
  color: #fff;
  font-size: var(--fs-lg);
  line-height: var(--lh-snug);
  text-shadow: 0 2px 12px rgba(0, 0, 0, .6);
  margin: 0 0 var(--sp-1);
}
.legacy .destination-card.destination-card p,
.legacy .destination-card.destination-card p,
.legacy .category-card.category-card:has(img) p,
.legacy .city-card.city-card:has(img) p {
  color: rgba(255, 255, 255, .9);
  font-size: var(--fs-xs);
  line-height: var(--lh-normal);
  text-shadow: 0 1px 8px rgba(0, 0, 0, .55);
  margin: 0;
}
.legacy .destination-card .btn,
.legacy .destination-card [class*="btn"],
.legacy .category-card:has(img) [class*="btn"] {
  align-self: flex-start;
  margin-top: var(--sp-2);
  background: rgba(255, 255, 255, .16);
  border: 1px solid rgba(255, 255, 255, .35);
  backdrop-filter: blur(8px);
  color: #fff;
}
.legacy .destination-card:hover .btn,
.legacy .destination-card:hover [class*="btn"],
.legacy .category-card:has(img):hover [class*="btn"] {
  background: var(--c-gold-500);
  border-color: var(--c-gold-500);
  color: var(--c-navy-950);
}
main { font-size: 1rem; }
.legacy,
.legacy p,
.legacy li,
.legacy td,
.legacy th,
.prose p,
.prose li {
  font-size: 0.95rem;
  line-height: 1.75;
}
.legacy .section-description,
.legacy [class$="-description"],
.legacy [class$="-desc"],
.legacy [class$="-text"],
.legacy [class$="-subtitle"] { font-size: 0.9rem; line-height: 1.7; }
.legacy [class$="-title"],
.legacy [class$="-name"],
.legacy .hotel-title,
.legacy .card-title { font-size: 1.05rem; }
.legacy h1, .hero h1 { font-size: clamp(1.7rem, 1.35rem + 1.7vw, 2.4rem); }
.legacy h2, .legacy .section-title, .section-head h2 { font-size: clamp(1.35rem, 1.15rem + 1vw, 1.8rem); }
.legacy h3 { font-size: clamp(1.1rem, 1rem + 0.45vw, 1.3rem); }
.legacy h4 { font-size: 1.05rem; }
.legacy [class$="-price"],
.legacy [class*="price-amount"] { font-size: 0.95rem; }
.legacy [class$="-badge"],
.legacy [class$="-tag"],
.legacy [class$="-category"],
.legacy .hotel-feature { font-size: 0.75rem; }
.legacy .btn,
.legacy [class*="btn-"],
.legacy .book-button { font-size: 0.88rem; min-height: var(--tap-min); }
.legacy .btn--primary { min-height: var(--tap-cta); }
.legacy [class*="faq-q"],
.legacy [class*="faq-question"] { font-size: 0.95rem; }
.legacy [class*="faq-a"],
.legacy [class*="faq-answer"] { font-size: 0.9rem; line-height: 1.75; }
.legacy [class$="toc-link"] { font-size: 0.88rem; }
.hero__lede,
.legacy [class*="hero-subtitle"],
.legacy [class*="hero-description"] {
  font-size: clamp(0.95rem, 0.88rem + 0.35vw, 1.1rem);
  line-height: 1.65;
  max-width: 62ch;
}
.tour-card__title { font-size: 1rem; }
.tour-card__price { font-size: 0.92rem; }
.tour-card__note { font-size: 0.82rem; }
.tour-card__type { font-size: 0.74rem; }
.lead-sub { font-size: 0.9rem; }
.lead-field label { font-size: 0.85rem; }
.lead-field input, .lead-field textarea { font-size: 0.95rem; }
.lead-opt { font-size: 0.88rem; }
.breadcrumbs { font-size: 0.82rem; }
.site-footer { font-size: 0.88rem; }
.related__block h2 { font-size: 1.2rem; }
.related-chip { font-size: 0.88rem; }
.legacy .hotel-card,
.legacy .restaurant-card {
  padding: 0;
  text-align: start;
  gap: 0;
}
.legacy .hotel-card > img,
.legacy .hotel-card [class*="image"],
.legacy .hotel-card [class*="image"] > img,
.legacy .restaurant-card > img,
.legacy .restaurant-card [class*="image"] > img {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  border-radius: 0;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  max-height: none;
}
.legacy .hotel-card [class*="image"] { aspect-ratio: 16 / 10; overflow: hidden; }
.legacy .hotel-card > :not(img):not([class*="image"]),
.legacy .restaurant-card > :not(img):not([class*="image"]) {
  padding-inline: var(--sp-4);
}
.legacy .hotel-card [class*="content"],
.legacy .hotel-card [class*="info"],
.legacy .restaurant-card [class*="content"] {
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  padding: var(--sp-4);
  flex: 1;
}
.legacy .hotel-card h3,
.legacy .hotel-card [class*="title"],
.legacy .restaurant-card h3 {
  text-align: start;
  font-size: 1.05rem;
  margin: 0;
}
.legacy .hotel-card p,
.legacy .restaurant-card p { text-align: start; font-size: 0.88rem; margin: 0; }
.legacy .hotel-card [class*="rating"],
.legacy .hotel-card .stars { align-self: flex-start; font-size: 0.95rem; }
.legacy .hotel-card [class*="features"] { margin-top: var(--sp-1); }
.legacy .hotel-card [class*="btn"],
.legacy .hotel-card .hotel-card__cta,
.legacy .restaurant-card [class*="btn"] {
  margin: auto var(--sp-4) var(--sp-4);
  align-self: stretch;
  justify-content: center;
  background: var(--c-navy-800);
  color: #fff;
  border: 0;
  font-size: 0.88rem;
  min-height: 42px;
}
.legacy .hotel-card:hover [class*="btn"],
.legacy .hotel-card:hover .hotel-card__cta {
  background: var(--c-gold-500);
  color: var(--c-navy-950);
}
.legacy .hotel-card [class*="content"],
.legacy .hotel-card [class*="info"] { border-top: 1px solid var(--border); }
.legacy [class$="-icon"] i,
.legacy [class$="-icon"] svg { font-size: 1.1rem; line-height: 1; }
.legacy .feature-icon,
.legacy .benefit-icon,
.legacy .tip-icon,
.legacy .stage-icon,
.legacy .list-icon,
.legacy .call-icon {
  color: var(--c-sea-600);
  background: var(--c-sea-050);
}
.legacy .list-icon { width: 22px; height: 22px; font-size: 0.75rem; }
.legacy .list-icon i { font-size: 0.75rem; }
.legacy .btn i,
.legacy a i,
.legacy [class*="btn"] i { color: inherit; background: none; width: auto; height: auto; }
.legacy .included-list .list-icon,
.legacy [class*="check"] { color: var(--c-success); }
.legacy .excluded-list .list-icon { color: var(--c-ink-500); }
.legacy .acc {
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  background: var(--surface);
  margin-block: var(--sp-2);
  overflow: hidden;
}
.legacy .acc + .acc { margin-top: calc(var(--sp-2) * -1 + var(--sp-2)); }
.legacy .acc[open] { border-color: var(--c-sea-300); box-shadow: var(--shadow-sm); }
.legacy .acc__q {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-4);
  padding: var(--sp-4) var(--sp-5);
  cursor: pointer;
  list-style: none;
  min-height: 48px;
  font-family: var(--font-display);
  font-weight: var(--fw-semibold);
  font-size: var(--fs-md);
  color: var(--text-strong);
  transition: background var(--dur-fast) var(--ease);
}
.legacy .acc__q::-webkit-details-marker { display: none; }
.legacy .acc__q:hover { background: var(--c-sea-050); }
.legacy .acc__q::after {
  content: "+";
  flex-shrink: 0;
  width: 28px; height: 28px;
  display: grid; place-items: center;
  border-radius: var(--r-full);
  background: var(--c-sea-050);
  color: var(--c-sea-600);
  font-size: var(--fs-lg);
  font-weight: var(--fw-bold);
  transition: transform var(--dur-mid) var(--ease);
}
.legacy .acc[open] .acc__q::after { content: "−"; }
.legacy .acc__q h1, .legacy .acc__q h2, .legacy .acc__q h3,
.legacy .acc__q h4, .legacy .acc__q p {
  margin: 0; font-size: inherit; font-weight: inherit; color: inherit;
}
.legacy .acc__a {
  padding: 0 var(--sp-5) var(--sp-5);
  font-size: var(--fs-sm);
  color: var(--text-body);
}
.legacy .acc__a > :first-child { margin-top: 0; }
.legacy .acc__a > :last-child { margin-bottom: 0; }
.legacy img,
.legacy picture,
.legacy video,
.legacy iframe,
.legacy svg,
.legacy canvas,
.legacy table {
  max-width: 100% !important;
}
.legacy img:not([width]):not([height]) { height: auto; }
.legacy [class$="-gallery"],
.legacy [class$="-images"],
.legacy [class$="-photos"] {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr));
  gap: var(--sp-3);
  margin-block: var(--sp-4);
}
.legacy [class$="-gallery"] > img,
.legacy [class$="-images"] > img,
.legacy [class$="-photos"] > img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--r-sm);
}
.legacy .intro-section.intro-section,
.legacy .categories-section.categories-section,
.legacy .info-section.info-section,
.legacy .attractions-section.attractions-section {
  padding-block: var(--sp-7);
  margin-block: 0;
}
.legacy .intro-section.intro-section { padding-block: var(--sp-6); }
.legacy .intro-section.intro-section p {
  max-width: 68ch;
  margin-inline: auto;
  font-size: var(--fs-md);
  line-height: var(--lh-relaxed);
  color: var(--text-body);
}
.legacy .categories-grid.categories-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
  gap: var(--sp-4);
  margin-block: var(--sp-5);
}
.legacy .category-card.category-card:not(:has(img)) {
  position: static;
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  min-height: 0;
  padding: var(--sp-5);
  background: var(--c-white);
  border: 1px solid var(--border);
  border-inline-start: 3px solid var(--c-sea-500);
  border-radius: var(--r-md);
  box-shadow: none;
  transition: border-color var(--dur-mid) var(--ease),
              box-shadow var(--dur-mid) var(--ease),
              transform var(--dur-mid) var(--ease);
}
.legacy .category-card.category-card:not(:has(img))::after { content: none; }
.legacy .category-card.category-card:not(:has(img)):hover {
  border-inline-start-color: var(--c-gold-500);
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}
.legacy .category-card.category-card:not(:has(img)) h3 {
  font-family: var(--font-display);
  font-size: var(--fs-lg);
  font-weight: var(--fw-bold);
  color: var(--c-navy-900);
  text-shadow: none;
  margin: 0;
}
.legacy .category-card.category-card:not(:has(img)) p {
  font-size: var(--fs-sm);
  line-height: var(--lh-relaxed);
  color: var(--text-body);
  text-shadow: none;
  margin: 0;
}
.legacy .category-card.category-card:not(:has(img)) a {
  color: var(--c-sea-600);
  font-weight: var(--fw-semibold);
  text-decoration-color: var(--c-sea-200);
  text-underline-offset: 0.2em;
}
.legacy .category-card.category-card:not(:has(img)) a:hover { color: var(--c-gold-700); }
.legacy .info-section.info-section > .container > h3,
.legacy .info-content.info-content > h3 {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  font-size: var(--fs-md);
  font-weight: var(--fw-bold);
  color: var(--c-navy-900);
  margin: var(--sp-5) 0 var(--sp-2);
}
.legacy .info-section.info-section > .container > h3::before,
.legacy .info-content.info-content > h3::before {
  content: "";
  width: 8px; height: 8px;
  border-radius: var(--r-full);
  background: var(--c-gold-500);
  flex-shrink: 0;
}
.legacy .info-section.info-section > .container > p,
.legacy .info-content.info-content > p {
  margin: 0 0 var(--sp-4);
  padding-inline-start: var(--sp-4);
  border-inline-start: 2px solid var(--border);
  font-size: var(--fs-sm);
  line-height: var(--lh-relaxed);
  color: var(--text-body);
}
.legacy [class$="-features"],
.legacy [class$="-tags"],
.legacy [class$="-amenities"],
.legacy [class$="-badges"],
.legacy [class$="-labels"] {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-2);
  padding: 0;
  margin: 0 0 var(--sp-2);
  background: none;
  border: 0;
  box-shadow: none;
  min-height: 0;
}
.legacy [class$="-features"] > *,
.legacy [class$="-tags"] > *,
.legacy [class$="-amenities"] > *,
.legacy [class$="-badges"] > *,
.legacy [class$="-labels"] > * {
  display: inline-flex;
  align-items: center;
  width: auto;
  flex: 0 0 auto;
  min-height: 0;
  padding: 2px var(--sp-3);
  border: 1px solid var(--c-sea-200);
  border-radius: var(--r-full);
  background: var(--c-sea-050);
  color: var(--c-sea-600);
  font-size: var(--fs-3xs);
  font-weight: var(--fw-semibold);
  line-height: 1.7;
  white-space: nowrap;
  box-shadow: none;
  flex-direction: row;
}
.legacy :is([class$="-card"],[class*="-card "]) [class$="-content"],
.legacy :is([class$="-card"],[class*="-card "]) [class$="-body"],
.legacy :is([class$="-card"],[class*="-card "]) [class$="-info"] {
  padding: var(--sp-3) var(--sp-4) var(--sp-4);
  gap: var(--sp-2);
}
.legacy :is([class$="-card"],[class*="-card "]) [class$="-image"]:not(img):not(picture),
.legacy :is([class$="-card"],[class*="-card "]) [class$="-media"]:not(img):not(picture) {
  aspect-ratio: 16 / 10;
}
.legacy :is([class$="-card"],[class*="-card "]) p {
  font-size: var(--fs-xs);
  line-height: var(--lh-normal);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.legacy :is([class$="-card"],[class*="-card "]) h3,
.legacy :is([class$="-card"],[class*="-card "]) h4 { font-size: var(--fs-md); }
.legacy :is([class$="-card"],[class*="-card "]) [class$="-image"] > img,
.legacy :is([class$="-card"],[class*="-card "]) [class$="-media"] > img,
.legacy :is([class$="-card"],[class*="-card "]) [class$="-img"] > img,
.legacy :is([class$="-card"],[class*="-card "]) [class$="-photo"] > img,
.legacy :is([class$="-card"],[class*="-card "]) [class$="-thumb"] > img {
  width: 100%;
  height: 100%;
  min-height: 100%;
  max-height: none;
  object-fit: cover;
  object-position: center;
  padding: 0;
  margin: 0;
  border-radius: 0;
}
.legacy :is([class$="-card"],[class*="-card "]) ul,
.legacy [class*="package"] ul,
.legacy [class*="included"] ul {
  display: grid;
  gap: 2px;
  margin: var(--sp-2) 0;
  padding: 0;
  list-style: none;
}
.legacy :is([class$="-card"],[class*="-card "]) ul > li,
.legacy [class*="package"] ul > li,
.legacy [class*="included"] ul > li {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  min-height: 0;
  padding: 3px var(--sp-2);
  margin: 0;
  border: 0;
  border-radius: var(--r-sm);
  background: none;
  font-size: var(--fs-xs);
  line-height: 1.5;
  color: var(--text-body);
  box-shadow: none;
}
.legacy :is([class$="-card"],[class*="-card "]) ul > li:nth-child(odd),
.legacy [class*="package"] ul > li:nth-child(odd) { background: var(--c-ink-050, #f6f7f9); }
.legacy [class*="package"][class*="card"],
.legacy [class*="pkg"][class*="card"] { padding: 0; }
.legacy [class*="package"][class*="card"] > [class*="image"],
.legacy [class*="package"][class*="card"] > [class*="media"] {
  aspect-ratio: 16 / 9;
  margin: 0;
  padding: 0;
  background: var(--c-ink-100, #eceff3);
}
.legacy .destinations-grid.destinations-grid,
.legacy .categories-grid.categories-grid:has(> [class*="destination"]) {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 190px), 1fr));
  gap: var(--sp-3);
}
@media (min-width: 1100px) {
  .legacy .destinations-grid.destinations-grid { grid-template-columns: repeat(5, 1fr); }
}
@media (min-width: 1500px) {
  .legacy .destinations-grid.destinations-grid { grid-template-columns: repeat(6, 1fr); }
}
.legacy .destination-card.destination-card { min-height: 168px; }
.legacy .destination-card.destination-card > :not(img) { padding: var(--sp-2) var(--sp-3); }
.legacy .destination-card.destination-card h2,
.legacy .destination-card.destination-card h3,
.legacy .destination-card.destination-card h4,
.legacy .destination-card.destination-card [class$="-title"] {
  font-size: var(--fs-sm);
  margin-bottom: 0;
}
.legacy .destination-card.destination-card p { display: none; }
.legacy .destination-card.destination-card [class*="btn"] { display: none; }
.legacy .destination-card.destination-card::after {
  background: linear-gradient(to top,
    rgba(4, 24, 46, .88) 0%,
    rgba(4, 24, 46, .45) 32%,
    rgba(4, 24, 46, 0) 62%);
}
.legacy .destination-card.destination-card > :not(img) {
  flex: 0 0 auto;
  margin-top: auto;
}
.legacy .destination-card.destination-card a,
.legacy .destination-card.destination-card [class*="btn"] {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: block;
  width: auto;
  min-height: 0;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  box-shadow: none;
  font-size: 0;
  line-height: 0;
  color: transparent;
}
.legacy .destination-card.destination-card a::after,
.legacy .destination-card.destination-card a::before { content: none; }
.legacy .destination-card.destination-card img,
.legacy .destination-card.destination-card [class*="image"] {
  border-radius: 0 !important;
  clip-path: none;
}
.legacy .destination-card.destination-card > a.tile-link,
.legacy .destination-card.destination-card > a {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 4;
  display: block;
  font-size: 0;
  line-height: 0;
  color: transparent;
  background: none;
  border: 0;
  padding: 0;
  margin: 0;
  cursor: pointer;
}
.legacy .destination-card.destination-card > a,
.legacy .destination-card.destination-card > a.tile-link,
.legacy .destination-card.destination-card > [class*="btn"] {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  filter: none !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
.legacy #seo.section,
.legacy #magazine.section,
.legacy [id*="magazine"].section {
  padding-block: var(--sp-6);
}
.legacy #seo .section-title,
.legacy #magazine .section-title,
.legacy [id*="magazine"] .section-title {
  font-size: var(--fs-2xl);
  margin-bottom: var(--sp-2);
}
.legacy #seo .section-subtitle,
.legacy #magazine .section-subtitle {
  font-size: var(--fs-sm);
  max-width: 62ch;
  margin-inline: auto;
}
.legacy #seo .seo-box {
  padding: var(--sp-5);
  border-radius: var(--r-lg);
  max-width: 900px;
  margin-inline: auto;
}
.legacy #seo .seo-box h3 {
  font-size: var(--fs-md);
  margin: var(--sp-4) 0 var(--sp-1);
}
.legacy #seo .seo-box > h3:first-child { margin-top: 0; }
.legacy #seo .seo-box p {
  font-size: var(--fs-sm);
  line-height: var(--lh-normal);
  margin: 0 0 var(--sp-2);
}
.legacy #seo .seo-kws { gap: 6px; margin-block: var(--sp-3); }
.legacy #seo .seo-kws > * {
  padding: 2px var(--sp-3);
  font-size: var(--fs-3xs);
  line-height: 1.8;
  min-height: 0;
}
.legacy #seo details,
.legacy #seo .faq-item,
.legacy #seo .acc { margin-block: 2px; }
.legacy #seo summary,
.legacy #seo .acc__q {
  padding: var(--sp-2) var(--sp-4);
  min-height: 40px;
  font-size: var(--fs-sm);
}
.legacy #seo .acc__a { padding: 0 var(--sp-4) var(--sp-3); font-size: var(--fs-xs); }
@media (min-width: 1000px) {
  .legacy #seo .seo-box {
    max-width: 1080px;
    column-count: 2;
    column-gap: var(--sp-7);
  }
  .legacy #seo .seo-box > * { break-inside: avoid; }
  .legacy #seo .seo-box > h3 { break-after: avoid; margin-top: var(--sp-3); }
  .legacy #seo .seo-box > h3:first-child { margin-top: 0; }
}
@media (min-width: 900px) {
  .legacy #seo .faq {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--sp-2) var(--sp-4);
    align-items: start;
  }
}
.legacy #seo .faq-item {
  margin: 0;
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  background: var(--c-white);
  overflow: hidden;
  transition: border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);
}
.legacy #seo .faq-item:hover { border-color: var(--c-sea-200); box-shadow: var(--shadow-sm); }
.legacy #seo .faq-q {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-3);
  width: 100%;
  min-height: 44px;
  padding: var(--sp-2) var(--sp-4);
  background: none;
  border: 0;
  text-align: start;
  font-family: var(--font-display);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  line-height: var(--lh-snug);
  color: var(--text-strong);
  cursor: pointer;
}
.legacy #seo .faq-q:hover { color: var(--c-sea-600); }
.legacy #seo .faq-q i {
  flex-shrink: 0;
  width: 22px; height: 22px;
  display: grid; place-items: center;
  border-radius: var(--r-full);
  background: var(--c-sea-050);
  color: var(--c-sea-600);
  font-size: 11px;
  transition: transform var(--dur-mid) var(--ease);
}
.legacy #seo .faq-item.is-open .faq-q i,
.legacy #seo .faq-item[open] .faq-q i { transform: rotate(180deg); }
.legacy #seo .faq-a {
  padding: 0 var(--sp-4) var(--sp-3);
  font-size: var(--fs-xs);
  line-height: var(--lh-relaxed);
  color: var(--text-body);
}
.legacy #seo h3 + .faq,
.legacy #seo .faq { margin-top: var(--sp-2); }
@media (min-width: 900px) {
  .legacy #seo .seo-box > .faq,
  .legacy #seo .seo-box > h3:has(+ .faq) {
    column-span: all;
  }
  .legacy #seo .seo-box > .faq { margin-top: var(--sp-3); }
}
.legacy .kw-chip {
  text-decoration: none;
  transition: background var(--dur-fast) var(--ease),
              color var(--dur-fast) var(--ease),
              border-color var(--dur-fast) var(--ease),
              transform var(--dur-fast) var(--ease);
}
.legacy .kw-chip:hover {
  background: var(--c-gold-050, #fdf6e8);
  border-color: var(--c-gold-500);
  color: var(--c-gold-700);
  transform: translateY(-1px);
}
.legacy #why.section,
.legacy #hotels.section,
.legacy #magazine.section { padding-block: var(--sp-6); }
.legacy #why .section-title,
.legacy #hotels .section-title,
.legacy #magazine .section-title { font-size: var(--fs-2xl); margin-bottom: var(--sp-2); }
.legacy #why .section-subtitle,
.legacy #hotels .section-subtitle,
.legacy #magazine .section-subtitle { font-size: var(--fs-sm); max-width: 62ch; margin-inline: auto; }
.legacy #why .premium-grid { gap: var(--sp-3); margin-block: var(--sp-4); }
.legacy #why .premium-grid > * { padding: var(--sp-4); }
.legacy #why .premium-grid h3,
.legacy #why .premium-grid [class$="-title"] { font-size: var(--fs-sm); }
.legacy #why .premium-grid p { font-size: var(--fs-xs); line-height: var(--lh-normal); }
@media (min-width: 1100px) {
  .legacy #why .premium-grid { grid-template-columns: repeat(3, 1fr); }
}
.legacy #hotels .hotels-grid {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 210px), 1fr));
  gap: var(--sp-3);
}
@media (min-width: 1280px) { .legacy #hotels .hotels-grid { grid-template-columns: repeat(4, 1fr); } }
@media (min-width: 1600px) { .legacy #hotels .hotels-grid { grid-template-columns: repeat(5, 1fr); } }
.legacy #hotels .hotel-image { aspect-ratio: 16 / 10; }
.legacy #hotels .hotel-content { padding: var(--sp-3) var(--sp-4) var(--sp-4); gap: var(--sp-1); }
.legacy #hotels .hotel-title { font-size: var(--fs-sm); }
.legacy #hotels .card-desc {
  font-size: var(--fs-xs);
  line-height: var(--lh-normal);
  min-height: 0 !important;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.legacy #hotels .hotel-rating { font-size: var(--fs-2xs); }
.legacy #hotels .card-cta { margin-top: var(--sp-2); }
.legacy #hotels .card-cta .btn { padding: var(--sp-2) var(--sp-4); min-height: 36px; font-size: var(--fs-xs); }
.legacy #magazine .magazine-grid {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 230px), 1fr));
  gap: var(--sp-3);
}
@media (min-width: 1280px) { .legacy #magazine .magazine-grid { grid-template-columns: repeat(5, 1fr); } }
.legacy #magazine .article-image { aspect-ratio: 16 / 10; }
.legacy #magazine .article-content { padding: var(--sp-3) var(--sp-4) var(--sp-4); }
.legacy #magazine .article-title { font-size: var(--fs-sm); margin-bottom: var(--sp-1); }
.legacy #magazine .article-excerpt {
  font-size: var(--fs-xs);
  line-height: var(--lh-normal);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.legacy #magazine .read-more { font-size: var(--fs-xs); margin-top: var(--sp-2); }
.legacy #te-main #hotels .hotels-grid {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr));
  gap: var(--sp-3);
}
.legacy #te-main #magazine .magazine-grid {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 210px), 1fr));
  gap: var(--sp-3);
}
@media (min-width: 1200px) {
  .legacy #te-main #hotels .hotels-grid,
  .legacy #te-main #magazine .magazine-grid { grid-template-columns: repeat(5, 1fr); }
}
@media (max-width: 720px) {
  .legacy #te-main #hotels .hotels-grid,
  .legacy #te-main #magazine .magazine-grid { grid-template-columns: repeat(2, 1fr); gap: var(--sp-2); }
}
.legacy #te-main .premium-shell { padding: var(--sp-4); border-radius: var(--r-lg); }
.legacy #te-main .premium-grid { gap: var(--sp-3); margin-top: var(--sp-3); }
.legacy #te-main #hotels .hotel-image { height: auto; aspect-ratio: 16 / 10; }
.legacy #te-main #hotels .hotel-content { padding: var(--sp-3) var(--sp-4) var(--sp-4); }
.legacy #te-main #hotels .hotel-title { font-size: var(--fs-sm); }
.legacy #te-main #hotels .card-desc {
  font-size: var(--fs-xs);
  line-height: var(--lh-normal);
  min-height: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.legacy #te-main #hotels .card-cta .btn { padding: var(--sp-2) var(--sp-4); min-height: 34px; font-size: var(--fs-xs); }
.legacy #te-main #magazine .article-image { height: auto; aspect-ratio: 16 / 10; }
.legacy #te-main #magazine .article-content { padding: var(--sp-3) var(--sp-4) var(--sp-4); }
.legacy #te-main #why .premium-grid > .feature { padding: var(--sp-3) var(--sp-4); }
.legacy #te-main #why .feature h3 { font-size: var(--fs-sm); margin: var(--sp-1) 0; }
.legacy #te-main #why .feature p {
  font-size: var(--fs-xs);
  line-height: var(--lh-normal);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.legacy #te-main #why .feature-icon { width: 34px; height: 34px; font-size: var(--fs-sm); }
.legacy #te-main .section-title::after {
  transition: width var(--dur-mid) var(--ease),
              background var(--dur-mid) var(--ease),
              box-shadow var(--dur-mid) var(--ease);
}
.legacy #te-main .section:hover .section-title::after,
.legacy #te-main .section-title:hover::after {
  width: 130px;
  background: linear-gradient(90deg, var(--c-gold-500), #ffd97a, var(--c-gold-500));
  box-shadow: 0 4px 16px -4px rgba(240, 168, 26, .7);
}
.legacy #te-main .te-strip.te-strip.section:hover .section-title::after {
  width: 130px;
  background: linear-gradient(90deg, var(--c-gold-500), #ffe09a, var(--c-gold-500));
  box-shadow: 0 4px 18px -4px rgba(240, 168, 26, .9);
}
.legacy #te-main .section-title { transition: color var(--dur-mid) var(--ease); }
.legacy #te-main .section:hover .section-title { color: var(--c-navy-950); }
.legacy #te-main .te-strip.te-strip.section:hover .section-title { color: #fff; }
.legacy #te-main > #why.section.section { padding-block: clamp(1.75rem, 2.6vw, 2.4rem); }
.legacy #te-main #why .section-title { margin-bottom: var(--sp-2); }
.legacy #te-main #why .section-subtitle {
  font-size: var(--fs-2xs);
  line-height: 1.6;
  margin-bottom: var(--sp-4);
}
.legacy #te-main #why .premium-shell { padding: var(--sp-4); }
.legacy #te-main #why .premium-head { gap: var(--sp-4); margin-bottom: var(--sp-4); }
.legacy #te-main #why .premium-title {
  font-size: var(--fs-lg);
  line-height: 1.35;
  margin-bottom: var(--sp-2);
}
.legacy #te-main #why .premium-lead { font-size: var(--fs-2xs); line-height: 1.6; }
.legacy #te-main #why .proof { padding: var(--sp-2) var(--sp-3); }
.legacy #te-main #why .proof b { font-size: var(--fs-2xs); }
.legacy #te-main #why .proof small { font-size: var(--fs-3xs); line-height: 1.4; }
.legacy #te-main #why .premium-grid { gap: var(--sp-2); }
@media (min-width: 900px) {
  .legacy #te-main #why .premium-grid { grid-template-columns: repeat(3, 1fr); }
}
.legacy #te-main #why .feature { padding: var(--sp-3); }
.legacy #te-main #why .feature-top { margin-bottom: var(--sp-2); gap: var(--sp-2); }
.legacy #te-main #why .feature-icon {
  inline-size: 28px;
  block-size: 28px;
  font-size: var(--fs-3xs);
}
.legacy #te-main #why .feature-tag { font-size: var(--fs-3xs); }
.legacy #te-main #why .feature h3 { font-size: var(--fs-sm); margin-bottom: 3px; }
.legacy #te-main #why .feature p { font-size: var(--fs-3xs); line-height: 1.55; }
.legacy #te-main > .te-strip.te-strip.section.section { padding-block: clamp(1.5rem, 2.4vw, 2.1rem); }
.legacy #te-main .te-strip.te-strip .section-title { margin-bottom: var(--sp-1); }
.legacy #te-main .te-strip.te-strip .section-subtitle { font-size: var(--fs-2xs); margin-bottom: var(--sp-3); }
.legacy #te-main .te-strip.te-strip .logo-marquee { margin-block: var(--sp-2); }
.legacy #te-main .logo-marquee__track > * { block-size: 48px; }
.legacy #te-main .te-strip.te-strip .chain-marquee {
  margin-block-start: var(--sp-3);
  padding-block-start: var(--sp-3);
}
.legacy #te-main .te-strip.te-strip .chain-chip { font-size: var(--fs-2xs); padding: 5px var(--sp-4); }
.legacy #te-main .te-strip.te-strip .logo-marquee {
  padding: 0;
  margin-block: var(--sp-2);
}
.legacy #te-main .te-strip.te-strip .section-title { padding-bottom: var(--sp-2); }
.legacy #te-main .te-strip.te-strip .chain-marquee__lede { margin-bottom: var(--sp-2); }
.legacy #te-main #why .feature p {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.legacy #te-main #why .feature h3 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.legacy #te-main #why .feature { min-height: 0; }
.legacy #te-main #why .premium-grid { align-items: stretch; }
.legacy #te-main .te-strip.te-strip .section-subtitle { max-width: 78ch; }
.legacy #te-main #about .about-side li,
.about-team .about-side li {
  transition: opacity var(--dur-mid) var(--ease), transform var(--dur-mid) var(--ease);
}
.legacy #te-main #about .about-side ul:hover li,
.legacy #te-main #about .about-side ul:focus-within li,
.about-team .about-side ul:hover li,
.about-team .about-side ul:focus-within li { opacity: .45; }
.legacy #te-main #about .about-side ul li:hover,
.legacy #te-main #about .about-side ul li:focus-within,
.about-team .about-side ul li:hover,
.about-team .about-side ul li:focus-within {
  opacity: 1;
  transform: translateX(-2px);
}
.legacy #te-main #about .about-side li::before,
.about-team .about-side li::before {
  transition: background var(--dur-mid) var(--ease), color var(--dur-mid) var(--ease),
              border-color var(--dur-mid) var(--ease), transform var(--dur-mid) var(--ease);
}
.legacy #te-main #about .about-side li:hover::before,
.legacy #te-main #about .about-side li:focus-within::before,
.about-team .about-side li:hover::before,
.about-team .about-side li:focus-within::before {
  background: var(--c-gold-500);
  border-color: var(--c-gold-500);
  color: var(--c-white) !important;
  transform: scale(1.12);
}
.legacy #te-main #about .about-side li:not(:last-child)::after,
.about-team .about-side li:not(:last-child)::after {
  transition: background var(--dur-mid) var(--ease);
}
.legacy #te-main #about .about-side li:hover:not(:last-child)::after,
.legacy #te-main #about .about-side li:focus-within:not(:last-child)::after,
.about-team .about-side li:hover:not(:last-child)::after,
.about-team .about-side li:focus-within:not(:last-child)::after {
  background: var(--c-gold-500);
}
.legacy #te-main #about .about-side li b,
.about-team .about-side li b {
  transition: color var(--dur-fast) var(--ease);
}
.legacy #te-main #about .about-side li:hover b,
.legacy #te-main #about .about-side li:focus-within b,
.about-team .about-side li:hover b,
.about-team .about-side li:focus-within b { color: var(--c-gold-700) !important; }
@media (prefers-reduced-motion: reduce) {
  .legacy #te-main #about .about-side ul li:hover,
.legacy #te-main #about .about-side ul li:focus-within,
.about-team .about-side ul li:hover,
.about-team .about-side ul li:focus-within { transform: none; }
  .legacy #te-main #about .about-side li:hover::before,
.legacy #te-main #about .about-side li:focus-within::before,
.about-team .about-side li:hover::before,
.about-team .about-side li:focus-within::before { transform: none; }
}
.legacy #te-main #about .about-pills a.pill,
.about-team .about-pills a.pill {
  text-decoration: none;
  color: var(--c-navy-800) !important;
  transition: border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease),
              transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);
}
.legacy #te-main #about .about-pills a.pill:hover,
.about-team .about-pills a.pill:hover {
  border-color: var(--c-gold-500);
  background: var(--c-gold-050);
  transform: translateY(-1px);
  box-shadow: var(--shadow-md);
}
.legacy #te-main #about .about-pills a.pill:hover i,
.about-team .about-pills a.pill:hover i { color: var(--c-gold-700) !important; }
.legacy #te-main .section { background: var(--c-white); }
.legacy #te-main .section:nth-of-type(even) { background: var(--c-surface); }
.legacy #te-main .section.section { padding-block: var(--section-pad); }
.legacy #te-main .attraction-image,
.legacy #te-main .tour-card__media,
.legacy #te-main .hotel-image {
  position: relative;
  padding: 0;
  margin: 0;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--c-surface);
  border-radius: 0;
}
.legacy #te-main .attraction-image img,
.legacy #te-main .hotel-image img {
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
  display: block;
  transition: transform var(--dur-slow, .4s) var(--ease);
}
.legacy #te-main .attraction-card:hover .attraction-image img,
.legacy #te-main .hotel-card:hover .hotel-image img { transform: scale(1.06); }
.legacy #te-main .attraction-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: var(--c-white);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  box-shadow: none;
  transition: border-color var(--dur-mid) var(--ease), box-shadow var(--dur-mid) var(--ease);
}
.legacy #te-main .attraction-card:hover {
  border-color: var(--c-gold-200);
  box-shadow: var(--shadow-md);
}
.legacy #te-main .attraction-content {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  gap: var(--sp-2);
  padding: var(--sp-4);
}
.legacy #te-main .attraction-title {
  font-family: var(--font-display);
  font-size: var(--fs-md);
  font-weight: var(--fw-bold);
  color: var(--c-navy-950);
  line-height: 1.3;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
@media (max-width: 700px) {
  .legacy #te-main .attraction-title a {
    display: block;
    padding-block: max(0px, calc((var(--tap-min) - 1lh) / 2));
    min-block-size: var(--tap-min);
  }
}
.legacy #te-main .attraction-description {
  font-size: var(--fs-2xs);
  line-height: 1.6;
  color: var(--text-muted);
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.legacy #te-main .attraction-details {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--sp-2);
  margin-block-start: auto;
  padding-block-start: var(--sp-2);
  font-size: var(--fs-3xs);
}
.legacy #te-main .attraction-price {
  font-family: var(--font-display);
  font-size: var(--fs-2xs);
  font-weight: var(--fw-bold);
  color: var(--c-navy-950);
  background: var(--c-gold-500);
  border-radius: var(--r-full);
  padding: 5px var(--sp-3);
}
.legacy #te-main .attraction-duration {
  color: var(--text-muted);
  font-size: var(--fs-3xs);
}
.legacy #te-main .attractions-grid,
.legacy #te-main [class*="attraction"][class*="grid"] {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 232px), 1fr));
  gap: var(--sp-3);
  align-items: stretch;
}
@media (min-width: 1200px) {
  .legacy #te-main .attractions-grid,
  .legacy #te-main [class*="attraction"][class*="grid"] { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 720px) {
  .legacy #te-main .attractions-grid,
  .legacy #te-main [class*="attraction"][class*="grid"] { grid-template-columns: repeat(2, 1fr); gap: var(--sp-2); }
  .legacy #te-main .attraction-content { padding: var(--sp-3); }
}
.legacy #te-main > .te-strip.te-strip.section.section {
  padding-block: clamp(2.5rem, 4.5vw, 4rem);
}
.legacy #te-main .te-strip.te-strip .section-subtitle {
  font-size: var(--fs-sm);
  margin-bottom: var(--sp-5);
}
.legacy #te-main .te-strip.te-strip .logo-marquee { margin-block: var(--sp-5); }
.legacy #te-main .te-strip.te-strip .logo-marquee__track > * {
  block-size: 84px;
  min-inline-size: 176px;
  padding: 0 var(--sp-6);
}
.legacy #te-main .te-strip.te-strip .logo-marquee__track img {
  max-block-size: 56px;
  opacity: .85;
}
.legacy #te-main .te-strip.te-strip .logo-marquee__track > *:hover img { opacity: 1; }
.legacy #te-main .te-strip.te-strip .chain-marquee {
  margin-block-start: var(--sp-5);
  padding-block-start: var(--sp-5);
  border-block-start: 1px solid rgba(255, 255, 255, .14);
}
.legacy #te-main .te-strip.te-strip .chain-marquee__lede {
  font-size: var(--fs-2xs);
  margin-bottom: var(--sp-4);
}
.legacy #te-main .te-strip.te-strip .chain-chip {
  font-size: var(--fs-lg);
  letter-spacing: .16em;
  padding: var(--sp-3) var(--sp-5);
}
@media (max-width: 720px) {
  .legacy #te-main .te-strip.te-strip .logo-marquee__track > * {
    block-size: 60px;
    min-inline-size: 128px;
    padding: 0 var(--sp-4);
  }
  .legacy #te-main .te-strip.te-strip .chain-chip { font-size: var(--fs-sm); }
}
.hotel-page__gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--sp-2);
  align-items: stretch;
  margin-block-start: var(--sp-4);
}
.hotel-page__gallery img {
  inline-size: 100%;
  block-size: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--r-md);
  display: block;
  max-block-size: 190px;
}
@media (min-width: 1100px) { .hotel-page__gallery { grid-template-columns: repeat(6, 1fr); } }
@media (max-width: 720px)  { .hotel-page__gallery { grid-template-columns: repeat(2, 1fr); } }
.legacy #te-main .section--tight,
#main > .section--tight { padding-block: clamp(1.75rem, 3vw, 2.5rem); }
#main > .section--tight > .container > h2 {
  font-size: var(--fs-2xl);
  margin-bottom: var(--sp-3);
}
.legacy .hotel-page__gallery.hotel-page__gallery > img,
.hotel-page__gallery.hotel-page__gallery > img {
  max-height: 170px;
  max-block-size: 170px;
}
#main .related__block .tour-card__media,
.legacy #te-main .related__block .tour-card__media { aspect-ratio: 16 / 10; }
#main .related__block .tour-card__body,
.legacy #te-main .related__block .tour-card__body {
  padding: var(--sp-3);
  gap: 4px;
}
#main .related__block .tour-card__title { font-size: var(--fs-sm); line-height: 1.3; }
#main .related__block .tour-card__note {
  font-size: var(--fs-3xs);
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
#main .related__block + .related__block { margin-block-start: var(--sp-5); }
#main .related__block > h2 { font-size: var(--fs-xl); margin-bottom: var(--sp-3); }
.legacy #te-main > .te-strip.te-strip.section.section {
  padding-block: clamp(1.9rem, 3.2vw, 2.9rem);
}
.legacy #te-main .te-strip.te-strip .logo-marquee { margin-block: var(--sp-4); }
.legacy #te-main .te-strip.te-strip .logo-marquee__track > * {
  block-size: 58px;
  min-inline-size: 132px;
  padding: 0 var(--sp-5);
}
.legacy #te-main .te-strip.te-strip .chain-marquee {
  margin-block-start: var(--sp-4);
  padding-block-start: var(--sp-4);
}
.legacy #te-main .te-strip.te-strip .chain-chip {
  font-size: var(--fs-sm);
  letter-spacing: .12em;
  padding: var(--sp-2) var(--sp-4);
}
.legacy #te-main .te-strip.te-strip .section-subtitle { margin-bottom: var(--sp-4); }
@media (max-width: 720px) {
  .legacy #te-main .te-strip.te-strip .logo-marquee__track > * {
    block-size: 46px; min-inline-size: 104px; padding: 0 var(--sp-3);
  }
  .legacy #te-main .te-strip.te-strip .chain-chip { font-size: var(--fs-2xs); }
}
.legacy #te-main .te-strip.te-strip .logo-marquee__track > * {
  block-size: 46px;
  min-inline-size: 112px;
  padding: 0 var(--sp-4);
}
.legacy #te-main .te-strip.te-strip .chain-chip {
  font-size: var(--fs-2xs);
  letter-spacing: .1em;
  padding: 6px var(--sp-3);
}
.legacy #te-main > .te-strip.te-strip.section.section {
  padding-block: clamp(1.6rem, 2.6vw, 2.3rem);
}
.legacy .hotels-grid,
.legacy .beaches-grid,
.legacy .restaurants-grid,
.legacy .shopping-grid,
.legacy .nightlife-grid,
.legacy .attractions-grid,
.legacy .tour-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 232px), 1fr));
  gap: var(--sp-4);
  align-items: stretch;
}
.legacy .hotel-card [class*="content"],
.legacy .hotel-card [class*="info"],
.legacy .restaurant-card [class*="content"],
.legacy .beach-card .beach-content,
.legacy .revived-link .hotel-content {
  gap: var(--sp-2);
  padding: var(--sp-3);
}
.legacy .beach-features,
.legacy .hotel-features,
.legacy .restaurant-features,
.legacy .nightlife-features,
.legacy .shopping-features {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.legacy .beach-feature,
.legacy .hotel-feature,
.legacy .beach-features > *,
.legacy .restaurant-features > *,
.legacy .nightlife-features > *,
.legacy .shopping-features > * {
  font-family: var(--font-display);
  font-size: var(--fs-3xs);
  font-weight: var(--fw-semibold);
  line-height: 1.5;
  color: var(--c-sea-600);
  background: var(--c-sea-050);
  border: 1px solid var(--c-sea-200);
  border-radius: var(--r-full);
  padding: 1px var(--sp-2);
  white-space: nowrap;
}
.legacy :is([class$="-card"],[class*="-card "]) p,
.legacy .revived-link .card-desc,
.legacy .hotel-description {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  overflow: hidden;
  font-size: var(--fs-2xs);
  line-height: 1.55;
  margin: 0;
}
.legacy .hotel-card h3,
.legacy .hotel-card [class*="title"],
.legacy .restaurant-card h3,
.legacy .beach-card .beach-title,
.legacy .revived-link .hotel-title {
  font-size: var(--fs-sm);
  line-height: 1.35;
  margin: 0;
}
.legacy .hotel-rating { font-size: var(--fs-3xs); line-height: 1; margin: 0; }
.legacy .hotel-rating i { font-size: var(--fs-3xs); }
.legacy .hotel-card .btn,
.legacy .hotel-card a[class*="btn"],
.legacy .restaurant-card .btn,
.legacy .restaurant-card a[class*="btn"],
.legacy .revived-link .card-cta .btn,
.legacy .beach-card .beach-card__cta {
  margin-top: auto;
  align-self: stretch;
  justify-content: center;
  text-align: center;
  border-radius: var(--r-full);
  padding: var(--sp-2) var(--sp-3);
  min-height: 34px;
  font-size: var(--fs-3xs);
  line-height: 1.2;
}
.legacy .revived-link .card-cta { margin-top: auto; padding: 0; }
.legacy .hotel-card [class*="image"],
.legacy .hotel-card > img,
.legacy .restaurant-card [class*="image"],
.legacy .beach-card .beach-image,
.legacy .revived-link .card-media {
  aspect-ratio: 16 / 9;
  overflow: hidden;
}
.legacy .beach-card .beach-image img,
.legacy .revived-link .card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  margin: 0;
  padding: 0;
  border-radius: 0;
  max-height: none;
}
.legacy .revived-link {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: var(--c-white);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  text-decoration: none;
  color: inherit;
}
.legacy .revived-link .hotel-content {
  display: flex;
  flex-direction: column;
  flex: 1;
}
.dest-toc,
.legacy .toc {
  margin-block: var(--sp-5);
  padding: var(--sp-4) var(--sp-5);
  background: var(--c-surface);
  border: 1px solid var(--border);
  border-inline-start: 3px solid var(--c-gold-500);
  border-radius: var(--r-md);
}
.dest-toc__title,
.legacy .toc > h2 {
  font-family: var(--font-display);
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
  letter-spacing: 0.06em;
  color: var(--text-muted);
  margin: 0 0 var(--sp-3);
}
.dest-toc__title::after,
.legacy .toc > h2::after { display: none; }
.dest-toc__list,
.legacy .toc ol,
.legacy .toc ul {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 210px), 1fr));
  gap: 2px var(--sp-4);
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: toc;
}
.dest-toc__list li,
.legacy .toc li { margin: 0; padding: 0; list-style: none; counter-increment: toc; }
.dest-toc__list a,
.legacy .toc li a {
  display: flex;
  align-items: baseline;
  gap: var(--sp-2);
  padding: var(--sp-2) 0;
  font-size: var(--fs-2xs);
  font-weight: var(--fw-semibold);
  color: var(--c-navy-800);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: color .16s ease, border-color .16s ease;
}
@media (max-width: 700px) {
  .dest-toc__list a,
  .legacy .toc li a {
    padding-block: max(var(--sp-2), calc((var(--tap-min) - 1lh - 1px) / 2));
    min-block-size: var(--tap-min);
  }
}
.dest-toc__list a::before,
.legacy .toc li a::before {
  content: counter(toc);
  flex: none;
  min-width: 1.4em;
  font-variant-numeric: tabular-nums;
  font-size: var(--fs-3xs);
  font-weight: var(--fw-bold);
  color: var(--c-gold-700);
}
.dest-toc__list a:hover,
.legacy .toc li a:hover {
  color: var(--c-sea-600);
  border-bottom-color: var(--c-sea-200);
}
.legacy [class$="quick-facts"] .fact-item,
.legacy [class$="-facts"] .fact-item {
  display: grid;
  justify-items: center;
  gap: var(--sp-2);
  align-content: start;
}
.legacy .fact-icon {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: var(--r-full);
  background: var(--c-sea-050);
  color: var(--c-sea-600);
  font-size: 1rem;
}
.legacy [class$="quick-facts"] .fact-item h3,
.legacy [class$="-facts"] .fact-item h3 {
  font-size: var(--fs-2xs);
  font-weight: var(--fw-bold);
  color: var(--text-muted);
  letter-spacing: .02em;
  margin: 0;
}
.legacy [class$="quick-facts"] .fact-item p,
.legacy [class$="-facts"] .fact-item p {
  font-size: var(--fs-sm);
  color: var(--text-body);
  margin: 0;
}
.legacy [class$="quick-facts"] { padding: var(--sp-4) var(--sp-5); }
.legacy #te-main [class$="-features"],
.legacy #te-main .hotel-features,
.legacy #te-main .beach-features {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin: 0;
  padding: 0;
}
.legacy #te-main .hotel-feature,
.legacy #te-main .beach-feature,
.legacy #te-main [class$="-features"] > * {
  font-size: var(--fs-3xs);
  line-height: 1.45;
  padding: 2px var(--sp-2);
  min-height: 0;
  border-radius: var(--r-full);
}
.legacy #te-main .hotel-card p,
.legacy #te-main .restaurant-card p,
.legacy #te-main .beach-card p,
.legacy #te-main .hotel-content p,
.legacy #te-main .hotel-description,
.legacy #te-main .revived-link .card-desc {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  overflow: hidden;
  font-size: var(--fs-2xs);
  line-height: 1.5;
  margin: 0;
}
.legacy #te-main .hotel-card__cta,
.legacy #te-main .beach-card__cta,
.legacy #te-main .restaurant-card__cta,
.legacy #te-main .hotel-card .btn,
.legacy #te-main .revived-link .card-cta .btn {
  min-height: 32px;
  padding: var(--sp-2) var(--sp-3);
  font-size: var(--fs-3xs);
  line-height: 1.2;
  border-radius: var(--r-full);
}
@media (max-width: 700px) {
  .legacy #te-main .beach-card__cta { min-height: var(--tap-min); }
  .legacy #te-main .hotel-card__cta { min-height: var(--tap-min); }
  .legacy #te-main .hotel-card .btn-primary.hotel-card__cta { min-height: var(--tap-cta); }
}
.legacy #te-main :is([class$="-card"],[class*="-card "]) .was-link:has(+ a),
.legacy #te-main .hotel-content .was-link:has(+ a) { display: none; }
.legacy #te-main .hotel-content,
.legacy #te-main .beach-content,
.legacy #te-main .restaurant-content {
  gap: var(--sp-2);
  padding: var(--sp-3);
}
.legacy #te-main .hotel-card h3,
.legacy #te-main .beach-card h3,
.legacy #te-main .restaurant-card h3,
.legacy #te-main :is([class$="-card"],[class*="-card "]) [class$="-title"] {
  font-size: var(--fs-sm);
  line-height: 1.35;
  margin: 0;
}
.legacy #te-main [class$="-category"],
.legacy #te-main .hotel-category {
  font-size: var(--fs-3xs);
  padding: 2px var(--sp-2);
  min-height: 0;
  line-height: 1.5;
}
.legacy #te-main .hotel-card .activity-image,
.legacy #te-main .hotel-card [class$="-image"],
.legacy #te-main .beach-card [class$="-image"],
.legacy #te-main .restaurant-card [class$="-image"],
.legacy #te-main .revived-link .card-media {
  aspect-ratio: 16 / 9;
  height: auto;
  overflow: hidden;
  position: relative;
}
.legacy #te-main .hotel-card .activity-image > img,
.legacy #te-main .hotel-card [class$="-image"] > img,
.legacy #te-main .beach-card [class$="-image"] > img,
.legacy #te-main .restaurant-card [class$="-image"] > img,
.legacy #te-main .revived-link .card-media > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  margin: 0;
  max-height: none;
}
.legacy #te-main .beaches-grid,
.legacy #te-main .hotels-grid,
.legacy #te-main .restaurants-grid,
.legacy #te-main .shopping-grid,
.legacy #te-main .nightlife-grid,
.legacy #te-main .attractions-grid,
.legacy #te-main .activities-grid,
.legacy #te-main .areas-grid,
.legacy #te-main .tour-grid {
  display: grid;
  --card-w: 288px;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 232px), var(--card-w)));
  justify-content: center;
  gap: var(--sp-4);
  align-items: stretch;
}
.legacy #te-main .hotel-content,
.legacy #te-main .beach-content,
.legacy #te-main .restaurant-content { justify-content: flex-start; }
.flight-tab__close {
  position: absolute;
  inset-block-start: -9px;
  inset-inline-end: -9px;
  width: 24px;
  height: 24px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, .28);
  border-radius: var(--r-full);
  background: var(--c-navy-950);
  color: rgba(255, 255, 255, .75);
  font-size: 14px;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 4px 12px -4px rgba(4, 24, 46, .9);
  transition: color .15s ease, border-color .15s ease, background .15s ease;
  z-index: 2;
}
.flight-tab__close:hover,
.flight-tab__close:focus-visible {
  color: #fff;
  background: var(--c-gold-500);
  border-color: var(--c-gold-500);
  color: var(--c-navy-950);
}
.flight-tab__close:focus-visible { outline: 2px solid var(--c-gold-500); outline-offset: 2px; }
.flight-tab-wrap[hidden] { display: none !important; }
.legacy #te-main .btn-cta,
.legacy #te-main .activity-card .btn-cta,
.legacy #te-main :is([class$="-card"],[class*="-card "]) .btn-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: auto;
  background: var(--c-navy-800);
  color: #fff;
  border: 0;
  border-radius: var(--r-full);
  min-height: 32px;
  padding: var(--sp-2) var(--sp-3);
  font-family: var(--font-display);
  font-size: var(--fs-3xs);
  font-weight: var(--fw-semibold);
  line-height: 1.2;
  text-decoration: none;
  transition: background .16s ease, color .16s ease;
}
.legacy #te-main .btn-cta:hover,
.legacy #te-main .btn-cta:focus-visible {
  background: var(--c-gold-500);
  color: var(--c-navy-950);
}
@media (max-width: 700px) {
  .legacy #te-main .btn-cta,
  .legacy #te-main .activity-card .btn-cta,
  .legacy #te-main :is([class$="-card"],[class*="-card "]) .btn-cta { min-height: var(--tap-min); }
  .legacy #te-main .activity-content > a {
    display: flex;
    align-items: center;
    min-block-size: var(--tap-min);
  }
  .legacy #te-main .sticky .whatsapp {
    display: inline-flex;
    align-items: center;
    min-block-size: var(--tap-min);
  }
}
.legacy #te-main .activity-card .activity-content,
.legacy #te-main .activity-content {
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  padding: var(--sp-3);
  flex: 1;
}
.legacy #te-main .activity-card p,
.legacy #te-main .activity-content p {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  overflow: hidden;
  font-size: var(--fs-2xs);
  line-height: 1.5;
  margin: 0;
}
.legacy #te-main .activity-card h3,
.legacy #te-main .activity-content h3 {
  font-size: var(--fs-sm);
  line-height: 1.35;
  margin: 0;
}
.legacy #te-main .activity-image [class*="price"],
.legacy #te-main .activity-image [class*="duration"],
.legacy #te-main :is([class$="-card"],[class*="-card "]) [class*="badge"] {
  font-size: var(--fs-3xs);
  padding: 3px var(--sp-2);
  line-height: 1.4;
  min-height: 0;
}
.legacy #te-main .tips-container {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
  gap: var(--sp-4);
  margin: 0;
  padding: 0;
}
.legacy #te-main .tip-category {
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
  padding: var(--sp-4);
  background: var(--c-white);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  box-shadow: var(--shadow-sm);
}
.legacy #te-main .tip-title {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  font-family: var(--font-display);
  font-size: var(--fs-sm);
  font-weight: var(--fw-bold);
  color: var(--c-navy-900);
  margin: 0;
}
.legacy #te-main .tip-icon {
  display: grid;
  place-items: center;
  flex: none;
  width: 30px;
  height: 30px;
  border-radius: var(--r-full);
  background: var(--c-sea-050);
  color: var(--c-sea-600);
  font-size: 0.8rem;
}
.legacy #te-main .tip-category ul {
  display: grid;
  gap: var(--sp-2);
  margin: 0;
  padding: 0;
  min-width: 0;
  list-style: none;
}
.legacy #te-main .tip-category > * { min-width: 0; }
.legacy #te-main .tip-category li {
  min-width: 0;
  overflow-wrap: anywhere;
  white-space: normal;
}
.legacy #te-main .tip-category li {
  position: relative;
  margin: 0;
  padding-inline-start: var(--sp-4);
  font-size: var(--fs-2xs);
  line-height: 1.6;
  color: var(--text-body);
  list-style: none;
}
.legacy #te-main .tip-category li::before {
  content: "";
  position: absolute;
  inset-inline-start: 0;
  top: 0.6em;
  width: 5px;
  height: 5px;
  border-radius: var(--r-full);
  background: var(--c-gold-500);
}
.legacy #te-main :is([class$="-card"],[class*="-card "]) > [class$="-content"],
.legacy #te-main :is([class$="-card"],[class*="-card "]) > [class$="-body"],
.legacy #te-main :is([class$="-card"],[class*="-card "]) > [class$="-info"] {
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: var(--sp-2);
  padding: var(--sp-3);
  min-width: 0;
}
.legacy #te-main :is([class$="-card"],[class*="-card "]) > [class$="-content"] > h3,
.legacy #te-main :is([class$="-card"],[class*="-card "]) > [class$="-body"] > h3,
.legacy #te-main :is([class$="-card"],[class*="-card "]) h3 {
  font-size: var(--fs-sm);
  line-height: 1.35;
  margin: 0;
}
.legacy #te-main :is([class$="-card"],[class*="-card "]) p {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  overflow: hidden;
  font-size: var(--fs-2xs);
  line-height: 1.5;
  margin: 0;
}
.legacy #te-main :is([class$="-card"],[class*="-card "]) [class*="hours"],
.legacy #te-main :is([class$="-card"],[class*="-card "]) [class*="price"],
.legacy #te-main :is([class$="-card"],[class*="-card "]) [class*="distance"],
.legacy #te-main :is([class$="-card"],[class*="-card "]) [class*="duration"] {
  font-size: var(--fs-3xs);
  line-height: 1.5;
  margin: 0;
}
.legacy #te-main :is([class$="-card"],[class*="-card "]).is-linked .was-link,
.legacy #te-main a:is([class$="-card"],[class*="-card "]) .was-link { display: none; }
.legacy #te-main :is([class$="-card"],[class*="-card "]) > [class$="-image"],
.legacy #te-main :is([class$="-card"],[class*="-card "]) > [class$="-media"],
.legacy #te-main :is([class$="-card"],[class*="-card "]) > [class$="-thumb"] {
  aspect-ratio: 16 / 9;
  height: auto;
  overflow: hidden;
  position: relative;
  flex: none;
}
.legacy #te-main :is([class$="-card"],[class*="-card "]) > [class$="-image"] > img,
.legacy #te-main :is([class$="-card"],[class*="-card "]) > [class$="-media"] > img,
.legacy #te-main :is([class$="-card"],[class*="-card "]) > [class$="-thumb"] > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  margin: 0;
  padding: 0;
  border-radius: 0;
  max-height: none;
}
.legacy #te-main :is([class$="-card"],[class*="-card "]) [class$="-features"],
.legacy #te-main :is([class$="-card"],[class*="-card "]) [class$="-tags"] {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin: 0;
  padding: 0;
  min-width: 0;
  list-style: none;
}
.legacy #te-main :is([class$="-card"],[class*="-card "]) [class$="-features"] > *,
.legacy #te-main :is([class$="-card"],[class*="-card "]) [class$="-tags"] > * {
  font-size: var(--fs-3xs);
  line-height: 1.45;
  padding: 2px var(--sp-2);
  min-height: 0;
  border-radius: var(--r-full);
  white-space: nowrap;
}
@media (max-width: 700px) {
  .legacy #te-main :is([class$="-card"],[class*="-card "]) [class$="-features"] > .btn { min-height: var(--tap-min); }
}
.legacy #te-main .location {
  margin-block: var(--sp-6);
}
.legacy #te-main .location > h2,
.legacy #te-main .location-header h2 {
  margin-bottom: var(--sp-4);
}
.legacy #te-main .location {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
  gap: var(--sp-4);
  align-items: stretch;
}
.legacy #te-main .location > h2,
.legacy #te-main .location > .location-header,
.legacy #te-main .location > p {
  grid-column: 1 / -1;
}
.legacy #te-main .club {
  display: flex;
  flex-direction: column;
  min-width: 0;
  background: var(--c-white);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
}
.legacy #te-main .club > h3 {
  order: 2;
  margin: 0;
  padding: var(--sp-3) var(--sp-3) 0;
  font-size: var(--fs-sm);
  line-height: 1.35;
}
.legacy #te-main .club-content {
  order: 3;
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: var(--sp-2);
  padding: var(--sp-3);
  min-width: 0;
}
.legacy #te-main .club-info {
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  flex: 1;
  min-width: 0;
}
.legacy #te-main .club-info > p {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  overflow: hidden;
  margin: 0;
  font-size: var(--fs-2xs);
  line-height: 1.55;
}
.legacy #te-main .club-info > p:has(strong) {
  -webkit-line-clamp: 2;
  line-clamp: 2;
  font-size: var(--fs-3xs);
  color: var(--text-muted);
}
.legacy #te-main .club-info > p > strong {
  color: var(--c-navy-800);
  font-weight: var(--fw-semibold);
}
.legacy #te-main .club-info > a {
  margin-top: auto;
  align-self: stretch;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: var(--sp-2) var(--sp-3);
  border-radius: var(--r-full);
  background: var(--c-navy-800);
  color: #fff;
  font-family: var(--font-display);
  font-size: var(--fs-3xs);
  font-weight: var(--fw-semibold);
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  transition: background .16s ease, color .16s ease;
}
.legacy #te-main .club-info > a:hover,
.legacy #te-main .club-info > a:focus-visible {
  background: var(--c-gold-500);
  color: var(--c-navy-950);
}
@media (max-width: 700px) {
  .legacy #te-main .club-info > a { min-height: var(--tap-min); }
}
.legacy #te-main .club-images {
  order: -1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2px;
  margin: 0;
  padding: 0;
  min-width: 0;
}
.legacy #te-main .club-images img {
  width: 100%;
  height: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  display: block;
  margin: 0;
  padding: 0;
  border-radius: 0;
  max-height: none;
}
.legacy #te-main .club-images img:first-child {
  grid-column: 1 / -1;
  aspect-ratio: 16 / 9;
}
.legacy #te-main .club-images {
  grid-template-columns: 1fr;
}
.legacy #te-main .club-images img:nth-child(n + 2) { display: none; }
.legacy #te-main .club-images img:first-child { aspect-ratio: 16 / 9; }
@media (max-width: 560px) {
  .legacy #te-main .location { grid-template-columns: 1fr; }
}
.legacy #te-main .container > div:has(> .club),
.legacy #te-main .section-content:has(> .club) {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr));
  gap: var(--sp-4);
  align-items: stretch;
}
.legacy #te-main .club-images img { max-height: 220px; }
.legacy #te-main .club-images img:first-child { max-height: 260px; }
.dest-toc__list { display: grid; }
.legacy #te-main .club-info > .club-cta {
  margin-top: auto;
  align-self: stretch;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: var(--sp-2) var(--sp-3);
  border-radius: var(--r-full);
  background: var(--c-navy-800);
  color: #fff;
  font-family: var(--font-display);
  font-size: var(--fs-3xs);
  font-weight: var(--fw-semibold);
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  transition: background .16s ease, color .16s ease;
}
.legacy #te-main .club-info > .club-cta:hover,
.legacy #te-main .club-info > .club-cta:focus-visible {
  background: var(--c-gold-500);
  color: var(--c-navy-950);
}
@media (max-width: 700px) {
  .legacy #te-main .club-info > .club-cta { min-height: var(--tap-min); }
}
.legacy #te-main .hero-section {
  position: relative;
  display: grid;
  place-items: center;
  min-block-size: clamp(340px, 46vh, 520px);
  padding-block: var(--sp-10);
  padding-inline: var(--gutter);
  background-size: cover;
  background-position: center;
  text-align: center;
  isolation: isolate;
}
.legacy #te-main .hero-section::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(
    to bottom,
    rgba(4, 24, 46, .45) 0%,
    rgba(4, 24, 46, .72) 55%,
    rgba(4, 24, 46, .88) 100%
  );
}
.legacy #te-main .hero-content {
  max-inline-size: 46rem;
  margin-inline: auto;
  display: grid;
  gap: var(--sp-5);
}
.legacy #te-main .hero-section .hero-title,
.legacy #te-main .hero-section h1 {
  margin: 0;
  color: var(--c-white);
  font-family: var(--font-display);
  font-size: var(--fs-5xl);
  font-weight: var(--fw-black);
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-tight);
  text-wrap: balance;
  text-shadow: 0 2px 18px rgba(4, 24, 46, .55);
}
.legacy #te-main .hero-section .hero-subtitle {
  margin: 0;
  color: rgba(255, 255, 255, .92);
  font-size: var(--fs-xl);
  line-height: var(--lh-normal);
  text-wrap: balance;
}
.legacy #te-main .hero-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-3);
  justify-content: center;
}
.legacy #te-main .hero-section .btn-outline {
  background: transparent;
  color: var(--c-white);
  border: 1.5px solid rgba(255, 255, 255, .7);
}
.legacy #te-main .hero-section .btn-outline:hover {
  background: rgba(255, 255, 255, .12);
  border-color: var(--c-white);
}
.legacy #te-main .section-light,
.legacy #te-main .section-dark,
.cta-section {
  padding-block: clamp(var(--sp-8), 5vw, var(--sp-11));
  margin: 0;
}
.legacy #te-main .section-light {
  background: var(--c-surface-raised);
}
.legacy #te-main .section-dark {
  background: var(--c-navy-900);
  color: rgba(255, 255, 255, .9);
}
.legacy #te-main .section-dark h2,
.legacy #te-main .section-dark h3,
.legacy #te-main .section-dark h4,
.legacy #te-main .section-dark strong {
  color: var(--c-white);
}
.legacy #te-main .section-dark a {
  color: var(--c-sea-200);
}
.legacy #te-main .section-dark a:hover {
  color: var(--c-white);
}
.legacy #te-main .content-section > h2:first-child,
.legacy #te-main .section-light > .container > h2:first-child,
.legacy #te-main .section-dark > .container > h2:first-child {
  margin-block-start: 0;
}
.legacy #te-main .content-section > p,
.legacy #te-main .content-section > ul,
.legacy #te-main .content-section > ol,
.legacy #te-main .content-section > h3,
.legacy #te-main .content-section > h4,
.legacy #te-main .content-section > blockquote {
  max-inline-size: 76ch;
}
.legacy #te-main .content-section > p {
  line-height: var(--lh-relaxed);
}
.legacy #te-main .callout {
  margin-block: var(--sp-7);
  padding: var(--sp-5) var(--sp-6);
  background: var(--c-sea-050);
  border-radius: var(--r-md, 12px);
  border-inline-start: 3px solid var(--c-sea-500);
}
.legacy #te-main .callout .callout-title {
  margin: 0 0 var(--sp-2);
  color: var(--c-sea-600);
  font-size: var(--fs-lg);
  font-weight: var(--fw-bold);
}
.legacy #te-main .callout p:last-child { margin-bottom: 0; }
.legacy #te-main .section-dark .callout {
  background: rgba(255, 255, 255, .06);
  border-inline-start-color: var(--c-sea-400);
}
.legacy #te-main .section-dark .callout .callout-title { color: var(--c-sea-200); }
.legacy #te-main .gallery {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr));
  gap: var(--sp-3);
  margin-block: var(--sp-7);
}
.legacy #te-main .gallery-item {
  margin: 0;
  overflow: hidden;
  border-radius: var(--r-md, 12px);
  background: var(--c-navy-950);
}
.legacy #te-main .gallery-item img {
  inline-size: 100%;
  block-size: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
  border-radius: 0;
  max-block-size: none;
}
.legacy #te-main .table-scroll {
  overflow-x: auto;
  margin-block: var(--sp-6);
  border-radius: var(--r-md, 12px);
  border: 1px solid var(--border);
  background: var(--c-surface-raised);
}
.legacy #te-main .section-dark .table-scroll {
  border-color: rgba(255, 255, 255, .14);
  background: rgba(255, 255, 255, .04);
}
.legacy #te-main table {
  inline-size: 100%;
  border-collapse: collapse;
  font-size: var(--fs-sm);
}
.legacy #te-main table th {
  padding: var(--sp-3) var(--sp-4);
  background: var(--c-navy-800);
  color: var(--c-white);
  font-weight: var(--fw-semibold);
  text-align: start;
  white-space: nowrap;
}
.legacy #te-main table td {
  padding: var(--sp-3) var(--sp-4);
  border-block-start: 1px solid var(--border);
  vertical-align: top;
  line-height: var(--lh-normal);
}
.legacy #te-main table tbody tr:nth-child(even) td {
  background: color-mix(in srgb, var(--c-surface) 55%, transparent);
}
.legacy #te-main .section-dark table td {
  border-block-start-color: rgba(255, 255, 255, .1);
  color: rgba(255, 255, 255, .88);
}
.legacy #te-main .section-dark table tbody tr:nth-child(even) td {
  background: rgba(255, 255, 255, .04);
}
.legacy #te-main table td:first-child {
  font-weight: var(--fw-semibold);
  white-space: nowrap;
}
.legacy #te-main .content-section ul {
  display: grid;
  gap: var(--sp-2);
  margin-block: var(--sp-5);
  padding-inline-start: 0;
  list-style: none;
}
.legacy #te-main .content-section ul > li {
  position: relative;
  padding-inline-start: var(--sp-5);
  line-height: var(--lh-relaxed);
}
.legacy #te-main .content-section ul > li::before {
  content: "";
  position: absolute;
  inset-inline-start: var(--sp-2);
  inset-block-start: .62em;
  inline-size: 6px;
  block-size: 6px;
  border-radius: 50%;
  background: var(--c-sea-500);
}
.legacy #te-main .section-dark .content-section ul > li::before {
  background: var(--c-sea-400);
}
.cta-section {
  background: linear-gradient(135deg, var(--c-navy-900), var(--c-navy-700));
  color: var(--c-white);
  text-align: center;
}
.cta-section h2,
.cta-section h3 {
  color: var(--c-white);
  margin-block-start: 0;
}
.cta-section p {
  max-inline-size: 44rem;
  margin-inline: auto;
  color: rgba(255, 255, 255, .88);
}
@media (max-width: 560px) {
  .legacy #te-main .hero-section {
    min-block-size: clamp(280px, 40vh, 380px);
    padding-block: var(--sp-8);
  }
  .legacy #te-main .hero-buttons .btn { inline-size: 100%; }
}
.legacy #te-main .party-dates {
  margin-block: var(--sp-6);
}
.legacy #te-main .party-dates__lede {
  max-inline-size: 76ch;
  margin-inline: auto;
  margin-block-end: var(--sp-6);
  opacity: .85;
}
.legacy #te-main .date-year + .date-year {
  margin-block-start: var(--sp-8);
}
.legacy #te-main .date-year__title {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  margin: 0 0 var(--sp-4);
  font-family: var(--font-display);
  font-size: var(--fs-xs);
  font-weight: var(--fw-black);
  letter-spacing: .18em;
  color: var(--c-gold-500);
}
.legacy #te-main .date-year__title::after {
  content: "";
  flex: 1;
  block-size: 1px;
  background: linear-gradient(to left, currentColor, transparent);
  opacity: .4;
}
.legacy #te-main .date-tickets {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 276px), 1fr));
  gap: var(--sp-3);
  margin: 0;
  padding: 0;
  list-style: none;
}
.legacy #te-main .date-ticket {
  position: relative;
  display: grid;
  grid-template-columns: 3.6rem 1fr;
  align-items: stretch;
  margin: 0;
  padding: 0;
  border-radius: var(--r-md, 12px);
  overflow: hidden;
  background: linear-gradient(145deg, var(--c-navy-900), var(--c-navy-800));
  color: var(--c-white);
  box-shadow: 0 10px 24px -18px rgba(4, 24, 46, .8);
  min-block-size: 104px;
  transition: transform var(--dur-mid, .2s) var(--ease, ease),
              box-shadow var(--dur-mid, .2s) var(--ease, ease);
}
.legacy #te-main .date-ticket::before { content: none; }
.legacy #te-main .date-ticket:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 30px -18px rgba(4, 24, 46, .9);
}
.legacy #te-main .date-ticket__stub {
  display: grid;
  place-content: center;
  gap: 1px;
  padding: var(--sp-3) var(--sp-1);
  background: linear-gradient(160deg, var(--c-gold-500), var(--c-gold-600));
  color: var(--c-navy-950);
  border-inline-end: 2px dashed rgba(4, 24, 46, .35);
  text-align: center;
}
.legacy #te-main .date-ticket__day {
  font-family: var(--font-display);
  font-size: var(--fs-2xl);
  font-weight: var(--fw-black);
  line-height: 1;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.legacy #te-main .date-ticket__month {
  font-size: 10px;
  font-weight: var(--fw-bold);
  letter-spacing: .04em;
  opacity: .85;
  white-space: nowrap;
}
.legacy #te-main .date-ticket::after {
  content: "";
  position: absolute;
  inset-inline-start: calc(3.6rem - 5px);
  inset-block: -5px;
  inline-size: 10px;
  background:
    radial-gradient(circle at 50% 0, var(--ticket-punch, var(--c-surface)) 5px, transparent 5.5px) top / 10px 10px no-repeat,
    radial-gradient(circle at 50% 100%, var(--ticket-punch, var(--c-surface)) 5px, transparent 5.5px) bottom / 10px 10px no-repeat;
  pointer-events: none;
}
.legacy #te-main .section-dark .date-ticket { --ticket-punch: var(--c-navy-900); }
.legacy #te-main .section-light .date-ticket { --ticket-punch: var(--c-surface-raised); }
.legacy #te-main .date-ticket__body {
  position: relative;
  display: grid;
  gap: 2px;
  align-content: center;
  padding: var(--sp-3) var(--sp-4);
  min-inline-size: 0;
}
.legacy #te-main .date-ticket__flag {
  font-size: 10px;
  font-weight: var(--fw-black);
  letter-spacing: .12em;
  color: var(--c-gold-500);
  margin-block-end: 1px;
}
.legacy #te-main .date-ticket__date {
  font-family: var(--font-display);
  font-size: var(--fs-md);
  font-weight: var(--fw-bold);
  line-height: 1.25;
  color: var(--c-white);
}
.legacy #te-main .date-ticket__weekday {
  font-size: var(--fs-3xs);
  color: rgba(255, 255, 255, .62);
}
.legacy #te-main .date-ticket__note {
  margin: 0;
  font-size: var(--fs-3xs);
  line-height: 1.4;
  color: rgba(255, 255, 255, .72);
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.legacy #te-main .date-ticket--shot .date-ticket__body::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: linear-gradient(to left, rgba(4, 24, 46, .93), rgba(4, 24, 46, .74)), var(--shot);
  background-size: cover;
  background-position: center;
  z-index: -1;
}
.legacy #te-main .date-ticket--shot .date-ticket__body { isolation: isolate; }
.legacy #te-main .date-ticket--next {
  outline: 2px solid var(--c-gold-500);
  outline-offset: -2px;
}
.legacy #te-main .date-ticket--next .date-ticket__date { color: var(--c-gold-200); }
.legacy #te-main .date-ticket--special .date-ticket__stub {
  background: linear-gradient(160deg, var(--c-sea-400), var(--c-sea-600));
  color: var(--c-white);
}
.legacy #te-main .date-ticket__buy {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  justify-self: start;
  margin-block-start: var(--sp-2);
  padding: 5px var(--sp-3);
  background: var(--c-gold-500);
  color: var(--c-navy-950);
  border-radius: 999px;
  font-size: var(--fs-3xs);
  font-weight: var(--fw-bold);
  text-decoration: none;
  transition: background var(--dur-mid, .2s) var(--ease, ease);
}
.legacy #te-main .date-ticket__buy:hover {
  background: var(--c-gold-400, var(--c-gold-200));
  color: var(--c-navy-950);
}
@media (max-width: 700px) {
  .legacy #te-main .date-ticket__buy {
    min-block-size: var(--tap-min);
    min-inline-size: var(--tap-min);
  }
}
@media (max-width: 420px) {
  .legacy #te-main .date-tickets { grid-template-columns: 1fr; }
}
.legacy #te-main .cover-strip__ctas,
.cover-strip__ctas {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-3);
  margin-block-start: var(--sp-5);
}
@media (max-width: 560px) {
  .cover-strip__ctas { inline-size: 100%; }
  .cover-strip__ctas .btn { flex: 1 1 auto; justify-content: center; }
}
.legacy #te-main .row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
  gap: var(--sp-4);
  margin: 0;
}
.legacy #te-main .row > .col-12,
.legacy #te-main .row > .col-md-6,
.legacy #te-main .row > .col-lg-4 {
  inline-size: auto;
  padding: 0;
  min-inline-size: 0;
}
.legacy #te-main .row > .col-12 { grid-column: 1 / -1; }
.legacy #te-main .card {
  display: flex;
  flex-direction: column;
  block-size: 100%;
  margin: 0;
  background: var(--c-surface-raised);
  border: 1px solid var(--border);
  border-radius: var(--r-md, 12px);
  box-shadow: none;
  overflow: hidden;
  transition: border-color var(--dur-mid, .2s) var(--ease, ease),
              transform var(--dur-mid, .2s) var(--ease, ease);
}
.legacy #te-main .card:hover {
  transform: translateY(-2px);
  border-color: var(--c-sea-400);
  box-shadow: none;
}
.legacy #te-main .card-image {
  position: relative;
  inline-size: 100%;
  block-size: auto;
  aspect-ratio: 16 / 10;
  overflow: hidden;
}
.legacy #te-main .card-image img {
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
  display: block;
  border-radius: 0;
  max-block-size: none;
  transition: transform var(--dur-slow, .4s) var(--ease, ease);
}
.legacy #te-main .card:hover .card-image img { transform: scale(1.04); }
.legacy #te-main .card-content {
  display: grid;
  gap: var(--sp-2);
  align-content: start;
  padding: var(--sp-4);
  flex: 1;
}
.legacy #te-main .card-title {
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--fs-lg);
  font-weight: var(--fw-bold);
  color: var(--text-strong);
  line-height: var(--lh-snug);
}
.legacy #te-main .card-content p {
  margin: 0;
  font-size: var(--fs-sm);
  color: var(--text-body);
  line-height: var(--lh-normal);
}
.legacy #te-main .price {
  font-weight: var(--fw-bold);
  color: var(--c-sea-600);
}
.legacy #te-main .stars { color: var(--c-gold-500); }
.legacy #te-main .section-title {
  text-align: center;
  font-family: var(--font-display);
  font-size: var(--fs-3xl);
  font-weight: var(--fw-black);
  line-height: var(--lh-tight);
  margin-block: 0 var(--sp-7);
  text-wrap: balance;
}
.legacy #te-main .section-title::after {
  content: "";
  display: block;
  inline-size: 56px;
  block-size: 2px;
  margin: var(--sp-4) auto 0;
  background: var(--c-sea-500);
  border-radius: 2px;
}
.legacy #te-main .section-dark .section-title::after { background: var(--c-sea-400); }
.legacy #te-main .review-card {
  margin: 0;
  padding: var(--sp-5);
  background: var(--c-surface-raised);
  border: 1px solid var(--border);
  border-radius: var(--r-md, 12px);
  box-shadow: none;
}
.legacy #te-main .section-dark .review-card {
  background: rgba(255, 255, 255, .05);
  border-color: rgba(255, 255, 255, .14);
}
.legacy #te-main .review-header {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  margin-block-end: var(--sp-3);
}
.legacy #te-main .review-avatar {
  inline-size: 44px;
  block-size: 44px;
  flex: 0 0 auto;
  margin: 0;
  border-radius: 50%;
  overflow: hidden;
}
.legacy #te-main .review-avatar img {
  inline-size: 100%; block-size: 100%; object-fit: cover; display: block;
  border-radius: 0; max-block-size: none;
}
.legacy #te-main .review-author { font-weight: var(--fw-semibold); color: inherit; }
.legacy #te-main .review-date { font-size: var(--fs-xs); color: var(--text-muted); }
.legacy #te-main .section-dark .review-date { color: rgba(255, 255, 255, .6); }
.legacy #te-main .review-stars { color: var(--c-gold-500); }
.legacy #te-main .scroll-nav,
.legacy #te-main .scroll-prev,
.legacy #te-main .scroll-next { display: none; }
.legacy #te-main .scroll-container {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(258px, 1fr);
  gap: var(--sp-4);
  padding-block: var(--sp-2);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: thin;
  overscroll-behavior-inline: contain;
}
.legacy #te-main .scroll-item {
  scroll-snap-align: start;
  margin: 0;
  background: var(--c-surface-raised);
  border: 1px solid var(--border);
  border-radius: var(--r-md, 12px);
  box-shadow: none;
  overflow: hidden;
}
.legacy #te-main .scroll-item-image {
  aspect-ratio: 16 / 10;
  overflow: hidden;
}
.legacy #te-main .scroll-item-image img {
  inline-size: 100%; block-size: 100%; object-fit: cover; display: block;
  border-radius: 0; max-block-size: none;
}
.legacy #te-main .scroll-item-content {
  display: grid;
  gap: var(--sp-2);
  padding: var(--sp-4);
}
.legacy #te-main .map-container {
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: var(--r-md, 12px);
}
.legacy #te-main .map-container iframe {
  display: block;
  inline-size: 100%;
  border: 0;
}
.related-links {
  padding: var(--sp-5);
  background: var(--c-sea-050);
  border: 0;
  border-radius: var(--r-md, 12px);
}
.section-dark .related-links {
  background: rgba(255, 255, 255, .06);
}
.related-links-title {
  margin: 0 0 var(--sp-3);
  font-size: var(--fs-lg);
  font-weight: var(--fw-bold);
}
.related-link-item {
  padding-block: var(--sp-2);
  border-block-start: 1px solid var(--border);
}
.related-link-item:first-of-type { border-block-start: 0; }
.section-dark .related-link-item {
  border-block-start-color: rgba(255, 255, 255, .12);
}
.legacy #te-main .faq-answer { display: block; }
.legacy #te-main .faq-question { cursor: auto; }
.legacy #te-main .faq-question::after { content: none; }
.legacy #te-main .faq-item {
  padding-block-end: var(--sp-4);
  margin-block-end: var(--sp-4);
  border-block-end: 1px solid var(--border);
}
.legacy #te-main .section-dark .faq-item { border-block-end-color: rgba(255, 255, 255, .12); }
.legacy #te-main .table-container { overflow-x: auto; }
.legacy #te-main .hotel-wa {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp-2);
  margin-block-start: var(--sp-3);
  padding: var(--sp-3) var(--sp-4);
  background: #25d366;
  color: #062e16;
  border-radius: 999px;
  font-weight: var(--fw-semibold);
  font-size: var(--fs-sm);
  text-decoration: none;
  transition: background var(--dur-mid, .2s) var(--ease, ease);
}
.legacy #te-main .hotel-wa:hover {
  background: #1eb955;
  color: #062e16;
}
.legacy #te-main .hotel-wa i { font-size: 1.15em; }
.legacy #te-main .accommodation-card {
  display: flex;
  flex-direction: column;
}
.legacy #te-main .accommodation-card .hotel-wa { margin-block-start: auto; }
.legacy #te-main .card-link {
  color: inherit;
  text-decoration: none;
}
@media (max-width: 700px) {
  .legacy #te-main .card-link {
    display: inline-flex;
    align-items: center;
    min-block-size: var(--tap-min);
  }
}
.legacy #te-main .card-link:hover { text-decoration: underline; }
.legacy #te-main .calendar-images img,
.legacy #te-main .card-cover img {
  inline-size: 100%;
  block-size: auto;
  aspect-ratio: auto;
  object-fit: contain;
  max-block-size: none;
  border-radius: var(--r-md, 12px);
}
.legacy #te-main .calendar-images {
  margin-block: var(--sp-6);
}
.legacy #te-main .content-section ul > li,
.legacy #te-main .content-section ol > li {
  margin-block-end: 0;
}
.legacy #te-main .content-section > ul,
.legacy #te-main .content-section > ol {
  row-gap: var(--sp-2);
  margin-block: var(--sp-4);
}
.legacy #te-main .section-light,
.legacy #te-main .section-dark,
.cta-section {
  padding-block: clamp(var(--sp-7), 3vw, var(--sp-9));
}
.legacy #te-main .section-title {
  font-size: var(--fs-2xl);
  margin-block-end: var(--sp-5);
}
.legacy #te-main .section-title::after {
  margin-block-start: var(--sp-3);
}
.legacy #te-main .content-section > h3 {
  margin-block: var(--sp-6) var(--sp-2);
  font-size: var(--fs-lg);
}
.legacy #te-main .content-section > h4 {
  margin-block: var(--sp-4) var(--sp-2);
  font-size: var(--fs-md);
}
.legacy #te-main .content-section > :is(h3, h4) + p { margin-block-start: 0; }
.legacy #te-main .content-section > p {
  margin-block: 0 var(--sp-3);
}
.legacy #te-main .callout {
  margin-block: var(--sp-5);
  padding: var(--sp-4) var(--sp-5);
}
.legacy #te-main .section-dark .scroll-item,
.legacy #te-main .section-dark .card,
.legacy #te-main .section-dark .tip-card,
.legacy #te-main .section-dark .stage-card,
.legacy #te-main .section-dark .accommodation-card,
.legacy #te-main .section-dark .testimonial-card {
  background: rgba(255, 255, 255, .06);
  border: 1px solid rgba(255, 255, 255, .14);
  color: rgba(255, 255, 255, .88);
  box-shadow: none;
}
.legacy #te-main .section-dark .scroll-item h3,
.legacy #te-main .section-dark .scroll-item h4,
.legacy #te-main .section-dark .card .card-title,
.legacy #te-main .section-dark .card h3,
.legacy #te-main .section-dark .tip-card h3,
.legacy #te-main .section-dark .stage-card h3,
.legacy #te-main .section-dark .accommodation-card h3 {
  color: var(--c-white);
}
.legacy #te-main .section-dark .scroll-item p,
.legacy #te-main .section-dark .card p,
.legacy #te-main .section-dark .tip-card p,
.legacy #te-main .section-dark .stage-card p {
  color: rgba(255, 255, 255, .75);
}
.legacy #te-main .scroll-container {
  scroll-padding-inline: var(--sp-1);
  padding-inline: 1px;
}
.legacy #te-main .scroll-item-content > :empty,
.legacy #te-main .card-content > :empty {
  display: none;
}
.legacy #te-main .scroll-item-content > *,
.legacy #te-main .card-content > *,
.legacy #te-main .mini-card__body > *,
.legacy #te-main .tip-card > *,
.legacy #te-main .stage-card > *,
.legacy #te-main .accommodation-card > * {
  margin-block: 0;
}
.legacy #te-main .scroll-item-content,
.legacy #te-main .card-content {
  gap: var(--sp-2);
  padding: var(--sp-3) var(--sp-4) var(--sp-4);
}
.legacy #te-main .scroll-item-content h3,
.legacy #te-main .card-content .card-title {
  font-size: var(--fs-lg);
  line-height: var(--lh-snug);
}
.legacy #te-main .scroll-item-content p,
.legacy #te-main .card-content p {
  font-size: var(--fs-sm);
  line-height: var(--lh-normal);
}
.legacy #te-main .scroll-item-content .btn,
.legacy #te-main .card-content .btn {
  margin-block-start: var(--sp-1);
  justify-self: stretch;
  text-align: center;
}
.legacy #te-main .mini-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 244px), 1fr));
  gap: var(--sp-3);
  margin-block: var(--sp-5);
  max-inline-size: none;
}
.legacy #te-main .mini-card {
  display: grid;
  gap: var(--sp-2);
  align-content: start;
  padding: var(--sp-4);
  background: var(--c-surface-raised);
  border: 1px solid var(--border);
  border-radius: var(--r-md, 12px);
}
.legacy #te-main .section-dark .mini-card {
  background: rgba(255, 255, 255, .06);
  border-color: rgba(255, 255, 255, .14);
}
.legacy #te-main .mini-card__title {
  margin: 0;
  font-size: var(--fs-md);
  font-weight: var(--fw-bold);
  line-height: var(--lh-snug);
  color: var(--text-strong);
}
.legacy #te-main .section-dark .mini-card__title { color: var(--c-white); }
.legacy #te-main .mini-card__body ul,
.legacy #te-main .mini-card__body ol {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--sp-2);
  margin: 0;
  padding-inline-start: 0;
  list-style: none;
}
.legacy #te-main .mini-card__body li {
  position: relative;
  padding-inline-start: var(--sp-4);
  margin: 0;
  font-size: var(--fs-sm);
  line-height: var(--lh-normal);
}
.legacy #te-main .mini-card__body li::before {
  content: "";
  position: absolute;
  inset-inline-start: 2px;
  inset-block-start: .62em;
  inline-size: 5px;
  block-size: 5px;
  border-radius: 50%;
  background: var(--c-sea-500);
}
.legacy #te-main .section-dark .mini-card__body li::before { background: var(--c-sea-400); }
.legacy #te-main .mini-card__body p {
  margin: 0;
  font-size: var(--fs-sm);
  line-height: var(--lh-normal);
}
.legacy #te-main .scroll-container {
  display: grid;
  grid-auto-flow: row;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 232px), 1fr));
  grid-auto-columns: auto;
  gap: var(--sp-3);
  overflow: visible;
  padding-inline: 0;
  scroll-snap-type: none;
}
.legacy #te-main .scroll-section { position: static; }
.legacy #te-main ul.list--compact,
.legacy #te-main ol.list--compact {
  display: block;
  columns: 3 248px;
  column-gap: var(--sp-6);
  max-inline-size: none;
}
.legacy #te-main .list--compact > li {
  break-inside: avoid;
  margin-block-end: var(--sp-2);
}
.legacy #te-main ul.list--cards,
.legacy #te-main ol.list--cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 268px), 1fr));
  gap: var(--sp-3);
  max-inline-size: none;
  margin-block: var(--sp-5);
}
.legacy #te-main ul.list--cards > li,
.legacy #te-main ol.list--cards > li {
  padding: var(--sp-4);
  background: var(--c-surface-raised);
  border: 1px solid var(--border);
  border-radius: var(--r-md, 12px);
  font-size: var(--fs-sm);
  line-height: var(--lh-normal);
  padding-inline-start: var(--sp-4);
}
.legacy #te-main ul.list--cards > li::before,
.legacy #te-main ol.list--cards > li::before { content: none; }
.legacy #te-main .list--cards > li > strong:first-child,
.legacy #te-main .list--cards > li > b:first-child {
  display: block;
  margin-block-end: var(--sp-1);
  font-size: var(--fs-md);
  font-weight: var(--fw-bold);
  color: var(--text-strong);
}
.legacy #te-main .list--cards > li a {
  font-weight: var(--fw-semibold);
}
.legacy #te-main .section-dark ul.list--cards > li,
.legacy #te-main .section-dark ol.list--cards > li {
  background: rgba(255, 255, 255, .06);
  border-color: rgba(255, 255, 255, .14);
}
.legacy #te-main .section-dark .list--cards > li > strong:first-child,
.legacy #te-main .section-dark .list--cards > li > b:first-child {
  color: var(--c-white);
}
.legacy #te-main .party-dates .date-card__note {
  -webkit-line-clamp: 1;
}
.legacy #te-main .testimonial-grid,
.legacy #te-main .reviews-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 268px), 1fr));
  gap: var(--sp-3);
  margin-block: var(--sp-5);
}
.legacy #te-main .review-card {
  display: grid;
  gap: var(--sp-3);
  align-content: start;
  padding: var(--sp-5);
  background: var(--c-surface-raised);
  border: 1px solid var(--border);
  border-radius: var(--r-md, 12px);
  box-shadow: none;
  margin: 0;
}
.legacy #te-main .review-header {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: var(--sp-3);
  margin: 0;
}
.legacy #te-main .review-avatar {
  inline-size: 40px;
  block-size: 40px;
  flex: none;
  margin: 0;
  border-radius: 50%;
  overflow: hidden;
}
.legacy #te-main .review-avatar--letter {
  display: grid;
  place-items: center;
  background: var(--c-sea-050);
  color: var(--c-sea-600);
  font-family: var(--font-display);
  font-size: var(--fs-lg);
  font-weight: var(--fw-bold);
  line-height: 1;
}
.legacy #te-main .section-dark .review-avatar--letter {
  background: rgba(255, 255, 255, .1);
  color: var(--c-sea-200);
}
.legacy #te-main .review-author {
  font-weight: var(--fw-semibold);
  font-size: var(--fs-sm);
  color: var(--text-strong);
  line-height: 1.3;
}
.legacy #te-main .review-date {
  font-size: var(--fs-3xs);
  color: var(--text-muted);
}
.legacy #te-main .review-stars {
  color: var(--c-gold-500);
  font-size: var(--fs-xs);
  letter-spacing: 1px;
  margin: 0;
}
.legacy #te-main .review-card p {
  margin: 0;
  font-style: normal;
  font-size: var(--fs-sm);
  line-height: var(--lh-relaxed);
  color: var(--text-body);
}
.legacy #te-main .section-dark .review-card p { color: rgba(255, 255, 255, .8); }
.legacy #te-main .section-dark .review-author { color: var(--c-white); }
.legacy #te-main .section-dark .review-date { color: rgba(255, 255, 255, .6); }
.related-links {
  padding: 0;
  background: none;
  border: 0;
}
.related-links-title {
  margin: 0 0 var(--sp-4);
  font-family: var(--font-display);
  font-size: var(--fs-2xl);
  font-weight: var(--fw-black);
  text-align: center;
}
.related-links .row {
  display: contents;
}
.related-links .col-md-6,
.related-links .col-lg-4,
.related-links .col-12 {
  display: contents;
}
.related-links {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 236px), 1fr));
  gap: var(--sp-3);
}
.related-links-title {
  grid-column: 1 / -1;
}
.related-link-item {
  display: grid;
  align-content: end;
  aspect-ratio: 1;
  margin: 0;
  padding: var(--sp-4);
  background: var(--c-surface-raised);
  border: 1px solid var(--border);
  border-block-start: 0;
  border-radius: var(--r-md, 12px);
  transition: border-color var(--dur-mid, .2s) var(--ease, ease),
              transform var(--dur-mid, .2s) var(--ease, ease);
}
.related-link-item:hover {
  border-color: var(--c-sea-400);
  transform: translateY(-2px);
}
.related-link-item::before {
  content: "↗";
  align-self: start;
  justify-self: start;
  font-size: var(--fs-lg);
  color: var(--c-sea-500);
  opacity: .7;
}
.related-link-item a {
  font-size: var(--fs-md);
  font-weight: var(--fw-semibold);
  line-height: var(--lh-snug);
  text-decoration: none;
  color: var(--text-strong);
}
.related-link-item a:hover { text-decoration: underline; }
.section-dark .related-link-item,
.section-dark .related-links {
  background: none;
}
.section-dark .related-link-item {
  background: rgba(255, 255, 255, .06);
  border-color: rgba(255, 255, 255, .14);
}
.section-dark .related-link-item a { color: var(--c-white); }
.section-dark .related-link-item::before { color: var(--c-sea-200); }
.legacy #te-main .callout {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: var(--sp-2) var(--sp-4);
  align-items: start;
  margin-block: var(--sp-5);
  padding: var(--sp-4) var(--sp-5);
  background: var(--c-sea-050);
  border: 0;
  border-inline-start: 3px solid var(--c-sea-500);
  border-radius: var(--r-md, 12px);
  max-inline-size: none;
}
.legacy #te-main .callout-icon {
  grid-row: 1 / span 2;
  display: grid;
  place-items: center;
  inline-size: 38px;
  block-size: 38px;
  border-radius: 50%;
  background: var(--c-white);
  font-size: 18px;
  line-height: 1;
  box-shadow: 0 2px 8px -4px rgba(4, 24, 46, .5);
}
.legacy #te-main .callout .callout-title,
.legacy #te-main .callout > h3,
.legacy #te-main .callout > h4 {
  margin: 0;
  align-self: center;
  font-family: var(--font-display);
  font-size: var(--fs-md);
  font-weight: var(--fw-bold);
  color: var(--c-sea-600);
  line-height: 1.3;
}
.legacy #te-main .callout p {
  margin: 0;
  grid-column: 2;
  font-size: var(--fs-sm);
  line-height: var(--lh-relaxed);
  color: var(--text-body);
  max-inline-size: 74ch;
}
.legacy #te-main .callout p + p { margin-block-start: var(--sp-2); }
.legacy #te-main .callout--tip {
  background: var(--c-gold-050);
  border-inline-start-color: var(--c-gold-500);
}
.legacy #te-main .callout--tip .callout-title { color: var(--c-gold-700); }
.legacy #te-main .callout--warn {
  background: color-mix(in srgb, var(--c-danger) 7%, var(--c-surface-raised));
  border-inline-start-color: var(--c-danger);
}
.legacy #te-main .callout--warn .callout-title { color: var(--c-danger); }
.legacy #te-main .section-dark .callout {
  background: rgba(255, 255, 255, .06);
}
.legacy #te-main .section-dark .callout p { color: rgba(255, 255, 255, .8); }
.legacy #te-main .section-dark .callout-icon { background: rgba(255, 255, 255, .12); }
.legacy #te-main .section-dark .callout .callout-title { color: var(--c-sea-200); }
.legacy #te-main .section-dark .callout--tip .callout-title { color: var(--c-gold-200); }
.legacy #te-main .section-dark .callout--warn .callout-title { color: #ff9a92; }
.related-links {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 172px), 1fr));
  gap: var(--sp-2);
}
.related-link-item {
  aspect-ratio: 4 / 3;
  padding: var(--sp-3);
}
.related-link-item a { font-size: var(--fs-sm); }
.related-link-item::before { font-size: var(--fs-md); }
.legacy #te-main ul.list--items,
.legacy #te-main ol.list--items {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr));
  gap: var(--sp-2);
  max-inline-size: none;
  margin-block: var(--sp-4);
}
.legacy #te-main .list--items > li {
  display: grid;
  grid-template-columns: 34px 1fr;
  gap: var(--sp-3);
  align-items: start;
  padding: var(--sp-3);
  padding-inline-start: var(--sp-3);
  background: var(--c-surface-raised);
  border: 1px solid var(--border);
  border-radius: var(--r-sm, 6px);
  font-size: var(--fs-sm);
  line-height: var(--lh-normal);
}
.legacy #te-main .list--items > li::before { content: none; }
.legacy #te-main .item-icon {
  display: grid;
  place-items: center;
  inline-size: 34px;
  block-size: 34px;
  border-radius: 50%;
  background: var(--c-sea-050);
  color: var(--c-sea-600);
  font-size: 14px;
}
.legacy #te-main .list--items > li > strong:first-of-type,
.legacy #te-main .list--items > li > b:first-of-type {
  display: block;
  font-size: var(--fs-sm);
  font-weight: var(--fw-bold);
  color: var(--text-strong);
}
.legacy #te-main .section-dark .list--items > li {
  background: rgba(255, 255, 255, .06);
  border-color: rgba(255, 255, 255, .14);
}
.legacy #te-main .section-dark .item-icon {
  background: rgba(255, 255, 255, .1);
  color: var(--c-sea-200);
}
.legacy #te-main .section-dark .list--items > li > strong:first-of-type { color: var(--c-white); }
.legacy #te-main .row {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 216px), 1fr));
  gap: var(--sp-3);
}
.legacy #te-main .related-links .row,
.legacy #te-main .related-links [class*="col-"],
.related-links .row,
.related-links [class*="col-"] {
  display: contents;
}
.legacy #te-main .card-image { aspect-ratio: 16 / 11; }
.legacy #te-main .card-content { padding: var(--sp-3); gap: var(--sp-1); }
.legacy #te-main .card-content .card-title { font-size: var(--fs-md); }
.legacy #te-main .card-content p {
  font-size: var(--fs-xs);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.legacy #te-main .card-content .btn {
  padding: var(--sp-2) var(--sp-3);
  font-size: var(--fs-xs);
}
.legacy #te-main .mini-card__body li,
.legacy #te-main .list--cards > li {
  display: block;
}
.legacy #te-main .mini-card__body li > strong,
.legacy #te-main .mini-card__body li > b {
  display: inline;
  font-weight: var(--fw-bold);
  color: var(--text-strong);
}
.legacy #te-main .section-dark .mini-card__body li > strong,
.legacy #te-main .section-dark .mini-card__body li > b { color: var(--c-white); }
.legacy #te-main .list--cards > li > strong:first-child,
.legacy #te-main .list--cards > li > b:first-child {
  display: block;
}
@media (min-width: 760px) {
  .attractions-grid:has(> :nth-child(5):last-child),
  .activities-grid:has(> :nth-child(5):last-child),
  .restaurants-grid:has(> :nth-child(5):last-child),
  .shopping-grid:has(> :nth-child(5):last-child),
  .nightlife-grid:has(> :nth-child(5):last-child),
  .beaches-grid:has(> :nth-child(5):last-child),
  .hotels-grid:has(> :nth-child(5):last-child),
  .rooms-grid:has(> :nth-child(5):last-child),
  ul.list--cards:has(> :nth-child(5):last-child) {
    grid-template-columns: repeat(3, minmax(0, var(--card-w, 288px)));
  }
  .attractions-grid:has(> :nth-child(9):last-child),
  .activities-grid:has(> :nth-child(9):last-child),
  ul.list--cards:has(> :nth-child(9):last-child) {
    grid-template-columns: repeat(3, minmax(0, var(--card-w, 288px)));
  }
}
@media (min-width: 980px) {
  .features-grid:has(> :nth-child(4):last-child),
  .highlights-grid:has(> :nth-child(4):last-child),
  .tickets-grid:has(> :nth-child(4):last-child),
  .benefits-grid:has(> :nth-child(4):last-child),
  ul.list--cards:has(> :nth-child(4):last-child) {
    grid-template-columns: repeat(4, minmax(0, var(--card-w, 288px)));
  }
  .attractions-grid:has(> :nth-child(6):last-child),
  .activities-grid:has(> :nth-child(6):last-child),
  .hotels-grid:has(> :nth-child(6):last-child),
  ul.list--cards:has(> :nth-child(6):last-child) {
    grid-template-columns: repeat(3, minmax(0, var(--card-w, 288px)));
  }
  .attractions-grid:has(> :nth-child(8):last-child),
  .hotels-grid:has(> :nth-child(8):last-child) {
    grid-template-columns: repeat(4, minmax(0, var(--card-w, 288px)));
  }
  .tour-grid:has(> :nth-child(7):last-child),
  .attractions-grid:has(> :nth-child(7):last-child) {
    grid-template-columns: repeat(4, minmax(0, var(--card-w, 288px)));
  }
}
@media (min-width: 760px) and (max-width: 979px) {
  .features-grid:has(> :nth-child(4):last-child),
  .highlights-grid:has(> :nth-child(4):last-child),
  .tickets-grid:has(> :nth-child(4):last-child),
  .benefits-grid:has(> :nth-child(4):last-child) {
    grid-template-columns: repeat(2, minmax(0, var(--card-w, 288px)));
  }
}
.legacy #te-main .hotel-page__category { font-size: var(--fs-3xs); }
.legacy #te-main ul.list--cards--tight,
.legacy #te-main ol.list--cards--tight {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 236px), 1fr));
  gap: var(--sp-2);
  margin-block: var(--sp-4);
}
.legacy #te-main .list--cards--tight > li {
  padding: var(--sp-3);
  border-radius: var(--r-sm, 6px);
  font-size: var(--fs-xs);
  line-height: var(--lh-normal);
}
.legacy #te-main .list--cards--tight > li > strong:first-child,
.legacy #te-main .list--cards--tight > li > b:first-child {
  font-size: var(--fs-sm);
  margin-block-end: 2px;
}
.legacy #te-main ul.list--cards--tight,
.legacy #te-main ol.list--cards--tight {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 232px), 1fr));
  gap: var(--sp-2);
  margin-block: var(--sp-4);
}
.legacy #te-main ul.list--cards--tight > li,
.legacy #te-main ol.list--cards--tight > li {
  padding: var(--sp-3);
  font-size: var(--fs-xs);
  line-height: var(--lh-normal);
  border-inline-start: 3px solid var(--c-sea-400);
}
.legacy #te-main .list--cards--tight > li > strong:first-child,
.legacy #te-main .list--cards--tight > li > b:first-child {
  font-size: var(--fs-sm);
  margin-block-end: 2px;
}
.legacy #te-main .section-dark ul.list--cards--tight > li,
.legacy #te-main .section-dark ol.list--cards--tight > li {
  border-inline-start-color: var(--c-gold-500);
}
.legacy #te-main .mini-cards { align-items: stretch; }
.legacy #te-main .mini-card {
  align-content: stretch;
  grid-template-rows: auto 1fr;
  transition: border-color var(--dur-fast) var(--ease),
              box-shadow var(--dur-fast) var(--ease);
}
.legacy #te-main .mini-card:hover {
  border-color: var(--c-sea-400);
  box-shadow: var(--shadow-md);
}
.legacy #te-main .mini-card__title {
  display: flex;
  align-items: baseline;
  gap: var(--sp-2);
  padding-block-end: var(--sp-2);
  border-block-end: 1px solid var(--border);
}
.legacy #te-main .section-dark .mini-card__title {
  border-block-end-color: rgba(255, 255, 255, .14);
}
.testimonial-image--monogram {
  display: grid;
  place-items: center;
  aspect-ratio: 16 / 10;
  border-radius: var(--r-sm);
  font-family: var(--font-display);
  font-weight: var(--fw-black);
  font-size: var(--fs-3xl);
  letter-spacing: var(--ls-tight);
  user-select: none;
}
.testimonial-image--monogram[data-tone="0"] { background: var(--c-sea-050);  color: var(--c-sea-600); }
.testimonial-image--monogram[data-tone="1"] { background: var(--c-gold-050); color: var(--c-gold-700); }
.testimonial-image--monogram[data-tone="2"] { background: #eef2f7;           color: var(--c-navy-700); }
.btn-primary {
  background: var(--c-gold-500);
  color: var(--c-navy-950);
  border: 0;
}
.btn-primary:hover {
  background: var(--c-gold-600);
  color: var(--c-navy-950);
}
.btn-secondary {
  background: var(--c-navy-800);
  color: var(--text-on-dark);
  border: 0;
}
.btn-secondary:hover {
  background: var(--c-navy-900);
  color: var(--text-on-dark);
}
.btn-outline {
  background: transparent;
  color: var(--c-white);
  border: 1.5px solid rgba(255, 255, 255, .7);
}
.btn-outline:hover {
  background: rgba(255, 255, 255, .14);
  border-color: var(--c-white);
}
.section-light .btn-outline,
.legacy #te-main .section-light .btn-outline {
  color: var(--c-navy-900);
  border-color: var(--c-navy-800);
}
.section-light .btn-outline:hover,
.legacy #te-main .section-light .btn-outline:hover {
  background: var(--c-navy-900);
  color: var(--c-white);
}
.btn-sm {
  padding: var(--sp-2) var(--sp-4);
  font-size: var(--fs-xs);
}
.legacy #te-main .mini-card ul > li,
.legacy #te-main .mini-card ul > li:nth-child(odd) {
  background: none;
  border-radius: 0;
  padding: 0;
  padding-inline-start: var(--sp-4);
}
.legacy #te-main .section-dark .mini-card ul > li,
.legacy #te-main .section-dark .mini-card ul > li:nth-child(odd),
.legacy #te-main .section-dark .mini-card__body p,
.legacy #te-main .section-dark .mini-card__body {
  color: rgba(255, 255, 255, .82);
}
.legacy #te-main .mini-cards { align-items: stretch; }
.legacy #te-main .mini-card {
  align-content: start;
}
.legacy #te-main .destination-card.destination-card,
.legacy #te-main .category-card.category-card:has(img),
.legacy #te-main .city-card.city-card:has(img) {
  --tile-notch: 9px;
  position: relative;
  min-height: 0;
  border-radius: var(--r-lg);
  overflow: hidden;
  background: var(--c-surface-raised);
  border: 0;
  box-shadow: 0 14px 30px -18px rgba(4, 24, 46, .55);
  transition: transform var(--dur-mid) var(--ease),
              box-shadow var(--dur-mid) var(--ease);
}
.legacy #te-main .destination-card.destination-card:hover,
.legacy #te-main .category-card.category-card:has(img):hover,
.legacy #te-main .city-card.city-card:has(img):hover {
  transform: translateY(-5px);
  box-shadow: 0 22px 44px -18px rgba(4, 24, 46, .6);
}
.legacy #te-main .destination-card.destination-card > [class*="image"],
.legacy #te-main .destination-card.destination-card > figure,
.legacy #te-main .category-card.category-card:has(img) > [class*="image"],
.legacy #te-main .city-card.city-card:has(img) > [class*="image"] {
  position: relative;
  aspect-ratio: 16 / 10 !important;
  inline-size: 100%;
  block-size: auto;
  margin: 0;
  padding: 0;
  border-radius: 0;
  overflow: hidden;
  background: var(--c-navy-900);
}
.legacy #te-main .destination-card.destination-card > [class*="image"] > img,
.legacy #te-main .destination-card.destination-card > figure > img,
.legacy #te-main .category-card.category-card:has(img) > [class*="image"] > img,
.legacy #te-main .city-card.city-card:has(img) > [class*="image"] > img {
  inline-size: 100%;
  block-size: 100%;
  max-block-size: none;
  object-fit: cover;
  border-radius: 0;
  aspect-ratio: auto !important;
  transition: transform 700ms var(--ease);
}
.legacy #te-main .destination-card.destination-card:hover > [class*="image"] > img {
  transform: scale(1.05);
}
.legacy #te-main .destination-card.destination-card::after,
.legacy #te-main .category-card.category-card:has(img)::after,
.legacy #te-main .city-card.city-card:has(img)::after {
  content: none;
}
.legacy #te-main .destination-card.destination-card .destination-content {
  position: relative;
  padding: var(--sp-4) var(--sp-4) var(--sp-4) var(--sp-4);
  padding-inline-start: calc(var(--sp-4) + 7px);
  background: var(--c-surface-raised);
  color: var(--text-body);
}
.legacy #te-main .destination-card.destination-card .destination-content::after {
  content: "";
  position: absolute;
  inset-block: 0;
  inset-inline-start: 0;
  inline-size: 5px;
  background: linear-gradient(160deg, var(--c-gold-500), var(--c-gold-600));
}
.legacy #te-main .destination-card.destination-card .destination-content::before {
  content: "";
  position: absolute;
  inset-inline: var(--sp-3);
  inset-block-start: 0;
  block-size: 0;
  border-block-start: 2px dashed var(--c-line);
}
.legacy #te-main .destination-card.destination-card > [class*="image"]::before,
.legacy #te-main .destination-card.destination-card > [class*="image"]::after {
  content: "";
  position: absolute;
  z-index: 3;
  inset-block-end: calc(var(--tile-notch) * -1);
  inline-size: calc(var(--tile-notch) * 2);
  block-size: calc(var(--tile-notch) * 2);
  border-radius: 50%;
  background: var(--bg-page);
}
.legacy #te-main .destination-card.destination-card > [class*="image"]::before {
  inset-inline-start: calc(var(--tile-notch) * -1);
}
.legacy #te-main .destination-card.destination-card > [class*="image"]::after {
  inset-inline-end: calc(var(--tile-notch) * -1);
}
.legacy #te-main .destination-card.destination-card h3,
.legacy #te-main .destination-card.destination-card [class$="-title"] {
  margin: 0 0 var(--sp-1);
  font-family: var(--font-display);
  font-size: var(--fs-xl);
  font-weight: var(--fw-bold);
  line-height: var(--lh-snug);
  letter-spacing: var(--ls-tight);
  color: var(--text-strong);
  text-shadow: none;
}
.legacy #te-main .destination-card.destination-card p,
.legacy #te-main .category-card.category-card:has(img) p,
.legacy #te-main .city-card.city-card:has(img) p {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  overflow: hidden;
  margin: 0;
  font-size: var(--fs-2xs);
  line-height: 1.55;
  color: var(--text-muted);
  text-shadow: none;
}
.legacy #te-main .destination-card.destination-card .destination-content .btn,
.legacy #te-main .destination-card.destination-card .destination-content [class*="btn"] {
  align-self: flex-start;
  margin-block-start: var(--sp-3);
  padding: 0;
  background: none;
  border: 0;
  backdrop-filter: none;
  color: var(--c-sea-600);
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
}
.legacy #te-main .hero.hero--photo,
.legacy #te-main .hero-section.hero--photo {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}
.legacy #te-main .hero--photo > .hero__bg {
  position: absolute;
  inset: 0;
  z-index: -2;
  inline-size: 100%;
  block-size: 100%;
  max-block-size: none;
  object-fit: cover;
  margin: 0;
  border-radius: 0;
  aspect-ratio: auto !important;
}
.legacy #te-main .hero--photo::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(to top, rgba(4, 24, 46, .92) 0%, rgba(4, 24, 46, .66) 45%, rgba(4, 24, 46, .42) 100%);
}
.legacy #te-main .hero--photo > :not(.hero__bg) {
  position: relative;
  z-index: 1;
}
.legacy #te-main .review-card.review-card {
  text-align: start;
  gap: var(--sp-4);
  padding: var(--sp-5) var(--sp-5) var(--sp-6);
  grid-template-rows: auto auto 1fr;
  align-content: stretch;
}
.legacy #te-main .review-card.review-card p {
  -webkit-line-clamp: unset;
  line-clamp: unset;
  display: block;
  overflow: visible;
  text-overflow: clip;
  max-block-size: none;
  font-size: var(--fs-base);
  line-height: var(--lh-relaxed);
  color: var(--text-body);
}
.legacy #te-main .review-card.review-card p::before {
  content: "”";
  float: inline-start;
  margin-inline-end: .25rem;
  font-family: var(--font-display);
  font-size: 2.4rem;
  line-height: .9;
  color: var(--c-sea-200);
}
.legacy #te-main .review-card .review-header {
  align-items: center;
  text-align: start;
}
.legacy #te-main .review-card .review-stars {
  font-size: var(--fs-sm);
  letter-spacing: 2px;
}
.legacy #te-main .review-card .review-text {
  margin: 0;
  font-style: normal;
}
.logo-marquee__track img,
.legacy #te-main .logo-marquee__track img,
.legacy #te-main .te-strip.te-strip .logo-marquee__track img {
  block-size: 54px;
  max-block-size: 54px;
  inline-size: auto;
  max-inline-size: 150px;
  object-fit: contain;
  filter: brightness(0) invert(1);
  opacity: .78;
  transition: opacity var(--dur-mid) var(--ease);
}
.logo-marquee__track > *:hover img,
.legacy #te-main .logo-marquee__track > *:hover img,
.legacy #te-main .te-strip.te-strip .logo-marquee__track > *:hover img {
  filter: brightness(0) invert(1);
  opacity: 1;
}
.logo-marquee__track > span[aria-hidden="true"],
.legacy #te-main .logo-marquee__track > span[aria-hidden="true"],
.legacy #te-main .te-strip.te-strip .logo-marquee__track > span[aria-hidden="true"] {
  display: contents;
}
.logo-marquee__track,
.legacy #te-main .logo-marquee__track,
.legacy #te-main .te-strip.te-strip .logo-marquee__track {
  inline-size: max-content;
  max-inline-size: none;
  flex-wrap: nowrap;
}
.logo-marquee__track,
.legacy #te-main .te-strip.te-strip .logo-marquee__track {
  animation-duration: calc(var(--n, 12) * 5.5s);
}
@keyframes logo-scroll-rev {
  from { transform: translateX(-50%); }
  to   { transform: translateX(0); }
}
.logo-marquee--rev .logo-marquee__track,
.legacy #te-main .te-strip.te-strip .logo-marquee--rev .logo-marquee__track {
  animation-name: logo-scroll-rev;
}
.legacy #te-main .te-strip.te-strip .logo-marquee + .logo-marquee { margin-block-start: var(--sp-2); }
.logo-marquee__track,
.legacy #te-main .logo-marquee__track,
.legacy #te-main .te-strip.te-strip .logo-marquee__track {
  gap: clamp(10px, 1vw, 16px);
}
.legacy #te-main .te-strip.te-strip .logo-marquee__track > * {
  block-size: auto;
  min-inline-size: 92px;
}
@media (prefers-reduced-motion: reduce) {
  .logo-marquee__track > span[aria-hidden="true"],
  .legacy #te-main .logo-marquee__track > span[aria-hidden="true"],
  .legacy #te-main .te-strip.te-strip .logo-marquee__track > span[aria-hidden="true"] {
    display: none;
  }
  .logo-marquee__track,
  .legacy #te-main .logo-marquee__track,
  .legacy #te-main .te-strip.te-strip .logo-marquee__track {
    inline-size: 100%;
    flex-wrap: wrap;
    justify-content: center;
  }
}
@media (max-width: 640px) {
  .logo-marquee__track img,
  .legacy #te-main .logo-marquee__track img,
  .legacy #te-main .te-strip.te-strip .logo-marquee__track img {
    block-size: 40px;
    max-block-size: 40px;
    max-inline-size: 140px;
  }
  .legacy #te-main .te-strip.te-strip .logo-marquee__track > * { min-inline-size: 112px; }
}
@keyframes logo-scroll-rtl {
  from { transform: translateX(0); }
  to   { transform: translateX(50%); }
}
@keyframes logo-scroll-rtl-rev {
  from { transform: translateX(50%); }
  to   { transform: translateX(0); }
}
.logo-marquee__track,
.legacy #te-main .logo-marquee__track,
.legacy #te-main .te-strip.te-strip .logo-marquee__track {
  animation-name: logo-scroll-rtl;
}
.logo-marquee--rev .logo-marquee__track,
.legacy #te-main .logo-marquee--rev .logo-marquee__track,
.legacy #te-main .te-strip.te-strip .logo-marquee--rev .logo-marquee__track {
  animation-name: logo-scroll-rtl-rev;
}
.logo-marquee__track img,
.legacy #te-main .logo-marquee__track img,
.legacy #te-main .te-strip.te-strip .logo-marquee__track img {
  block-size: 54px;
  max-block-size: 54px;
}
@media (max-width: 640px) {
  .logo-marquee__track img,
  .legacy #te-main .logo-marquee__track img,
  .legacy #te-main .te-strip.te-strip .logo-marquee__track img {
    block-size: 40px;
    max-block-size: 40px;
  }
}
.logo-marquee__track .partner-logo,
.legacy #te-main .logo-marquee__track .partner-logo,
.legacy #te-main .te-strip.te-strip .logo-marquee__track .partner-logo {
  inline-size: 150px;
  min-inline-size: 0;
  max-inline-size: none;
  padding-inline: 0;
  padding-block: 0;
}
@media (max-width: 640px) {
  .logo-marquee__track .partner-logo,
  .legacy #te-main .logo-marquee__track .partner-logo,
  .legacy #te-main .te-strip.te-strip .logo-marquee__track .partner-logo { inline-size: 104px; }
}
.logo-marquee__track,
.legacy #te-main .logo-marquee__track,
.legacy #te-main .te-strip.te-strip .logo-marquee__track {
  --item: 150px;
  --gapx: 16px;
  --copy: calc(var(--n, 12) * (var(--item) + var(--gapx)));
  gap: var(--gapx);
}
@keyframes logo-scroll-rtl {
  from { transform: translateX(0); }
  to   { transform: translateX(var(--copy)); }
}
@keyframes logo-scroll-rtl-rev {
  from { transform: translateX(var(--copy)); }
  to   { transform: translateX(0); }
}
.logo-marquee__track,
.legacy #te-main .logo-marquee__track,
.legacy #te-main .te-strip.te-strip .logo-marquee__track {
  animation-timing-function: linear;
}
@media (max-width: 640px) {
  .logo-marquee__track,
  .legacy #te-main .logo-marquee__track,
  .legacy #te-main .te-strip.te-strip .logo-marquee__track {
    --item: 104px;
    --gapx: 10px;
  }
}
.logo-marquee__track,
.legacy #te-main .logo-marquee__track,
.legacy #te-main .te-strip.te-strip .logo-marquee__track {
  gap: 0;
}
.logo-marquee__track .partner-logo,
.legacy #te-main .logo-marquee__track .partner-logo,
.legacy #te-main .te-strip.te-strip .logo-marquee__track .partner-logo {
  inline-size: 166px;
  padding-inline: 8px;
}
@keyframes logo-scroll-rtl {
  from { transform: translateX(0); }
  to   { transform: translateX(50%); }
}
@keyframes logo-scroll-rtl-rev {
  from { transform: translateX(50%); }
  to   { transform: translateX(0); }
}
@media (max-width: 640px) {
  .logo-marquee__track .partner-logo,
  .legacy #te-main .logo-marquee__track .partner-logo,
  .legacy #te-main .te-strip.te-strip .logo-marquee__track .partner-logo {
    inline-size: 114px;
    padding-inline: 5px;
  }
}
.partner-logo--text,
.legacy #te-main .partner-logo--text {
  display: grid;
  place-items: center;
  text-decoration: none;
}
@media (max-width: 700px) {
  .partner-logo--text,
  .legacy #te-main .partner-logo--text {
    min-block-size: var(--tap-min);
    min-inline-size: var(--tap-min);
  }
}
.partner-logo--text span {
  font-family: var(--font-display);
  font-size: 13px;
  font-weight: var(--fw-bold);
  letter-spacing: .12em;
  text-transform: uppercase;
  line-height: 1.25;
  text-align: center;
  color: #fff;
  opacity: .78;
  transition: opacity var(--dur-mid) var(--ease);
  max-inline-size: 100%;
  overflow-wrap: anywhere;
}
.partner-logo--text:hover span,
.partner-logo--text:focus-visible span { opacity: 1; }
@media (max-width: 640px) {
  .partner-logo--text span { font-size: 10px; letter-spacing: .08em; }
}
.chain-names { display: none; }
.section-head h2::after,
.legacy #te-main .section-head h2::after {
  inset-inline-start: auto;
  left: 50%;
  translate: -50% 0;
  transition: width var(--dur-mid) var(--ease),
              background var(--dur-mid) var(--ease);
}
.section:hover .section-head h2::after { width: 56px; }
.section-head:hover h2::after,
.section-head h2:hover::after {
  width: 120px;
  background: var(--c-gold-500);
}
@media (prefers-reduced-motion: reduce) {
  .section-head h2::after { transition: none; }
}
.container .section-title::after,
.legacy .container .section-title::after,
.legacy #te-main .container .section-title::after {
  position: static;
  display: block;
  inline-size: 56px;
  block-size: 3px;
  margin: var(--sp-4) auto 0;
  border-radius: var(--r-full);
  background: var(--c-sea-500);
  translate: none;
  transform: none;
  transition: inline-size var(--dur-mid) var(--ease),
              background var(--dur-mid) var(--ease);
}
.container .section-title:hover::after,
.legacy .container .section-title:hover::after,
.legacy #te-main .container .section-title:hover::after,
.legacy #te-main .section:hover .container .section-title::after {
  inline-size: 132px;
  background: linear-gradient(90deg, var(--c-gold-500), #ffd97a, var(--c-gold-500));
}
@media (prefers-reduced-motion: reduce) {
  .container .section-title::after,
  .legacy #te-main .container .section-title::after { transition: none; }
}
@media (max-width: 900px) {
  .carousel__dot {
    min-inline-size: 28px;
    min-block-size: 28px;
    padding: 10px;
    background-clip: content-box;
    border: 0;
  }
  .flight-tab__close,
  .flight-drawer__close,
  .mapdlg__x {
    min-inline-size: 44px;
    min-block-size: 44px;
    display: inline-grid;
    place-items: center;
  }
}
@media (prefers-reduced-motion: reduce) {
  .legacy #te-main .section-head h2::after { transition: none; }
}
/* attractions.css */
.legacy #te-main .hero {
  position: relative;
  display: grid;
  place-items: center;
  min-block-size: clamp(200px, 26vh, 300px);
  padding: var(--sp-6) var(--gutter);
  background-size: cover;
  background-position: center;
  text-align: center;
  isolation: isolate;
  animation: none;
}
.legacy #te-main .hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(to bottom, rgba(4, 24, 46, .5), rgba(4, 24, 46, .82));
}
.legacy #te-main .hero-content {
  max-inline-size: 44rem;
  display: grid;
  gap: var(--sp-3);
  transition: none;
}
.legacy #te-main .hero-content:hover .hero-description { transform: none; }
.legacy #te-main .hero h1 {
  margin: 0;
  color: var(--c-white);
  font-family: var(--font-display);
  font-size: var(--fs-4xl);
  font-weight: var(--fw-black);
  line-height: var(--lh-tight);
  text-wrap: balance;
  text-shadow: 0 2px 16px rgba(4, 24, 46, .5);
}
.legacy #te-main .hero-description {
  margin: 0;
  color: rgba(255, 255, 255, .9);
  font-size: var(--fs-lg);
  line-height: var(--lh-normal);
  text-wrap: balance;
  transition: none;
}
.legacy #te-main .section,
.legacy #te-main .section-alt {
  padding-block: var(--section-pad);
}
.legacy #te-main .section-alt { background: var(--c-surface); }
.legacy #te-main .section-header {
  margin-block-end: var(--sp-4);
  text-align: center;
}
.legacy #te-main .section-title {
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--fs-2xl);
  font-weight: var(--fw-black);
  line-height: var(--lh-tight);
  color: var(--text-strong);
  text-wrap: balance;
}
.legacy #te-main .section-title::after {
  content: "";
  display: block;
  inline-size: 52px;
  block-size: 2px;
  margin: var(--sp-2) auto 0;
  background: var(--c-sea-500);
  border-radius: 2px;
  transform: none;
}
.legacy #te-main .section-title:hover::after { transform: none; }
.legacy #te-main .section-description {
  margin: var(--sp-2) auto 0;
  max-inline-size: 68ch;
  font-size: var(--fs-sm);
  color: var(--text-muted);
  line-height: var(--lh-normal);
}
.legacy #te-main .intro-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
  gap: var(--sp-5);
  align-items: center;
}
.legacy #te-main .intro-content > h2 {
  margin: 0 0 var(--sp-3);
  font-family: var(--font-display);
  font-size: var(--fs-xl);
  font-weight: var(--fw-bold);
  line-height: var(--lh-snug);
}
.legacy #te-main .intro-content p {
  margin: 0 0 var(--sp-3);
  font-size: var(--fs-sm);
  line-height: var(--lh-relaxed);
  color: var(--text-body);
}
.legacy #te-main .intro-content p:last-child { margin-bottom: 0; }
.legacy #te-main .intro-image {
  margin: 0;
  border-radius: var(--r-md);
  overflow: hidden;
}
.legacy #te-main .intro-image img {
  inline-size: 100%;
  block-size: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
  border-radius: 0;
  max-block-size: none;
}
.legacy #te-main .package-options {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 290px), 1fr));
  gap: var(--sp-4);
  margin-block: var(--sp-5);
}
.legacy #te-main .package-card {
  position: relative;
  display: flex;
  flex-direction: column;
  margin: 0;
  background: var(--c-surface-raised);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  overflow: hidden;
  box-shadow: none;
  transition: border-color var(--dur-mid) var(--ease),
              transform var(--dur-mid) var(--ease);
}
.legacy #te-main .package-card:hover {
  border-color: var(--c-sea-400);
  transform: translateY(-2px);
  box-shadow: none;
}
.legacy #te-main .featured-badge {
  position: absolute;
  inset-block-start: var(--sp-3);
  inset-inline-start: auto;
  inset-inline-end: var(--sp-3);
  z-index: 1;
  padding: 3px var(--sp-3);
  background: var(--c-gold-500);
  color: var(--c-navy-950);
  border-radius: 999px;
  font-size: var(--fs-3xs);
  font-weight: var(--fw-bold);
}
.legacy #te-main .package-image {
  aspect-ratio: 16 / 10;
  overflow: hidden;
}
.legacy #te-main .package-image img {
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
  display: block;
  border-radius: 0;
  max-block-size: none;
  transition: transform var(--dur-slow) var(--ease);
}
.legacy #te-main .package-card:hover .package-image img { transform: scale(1.04); }
.legacy #te-main .package-content {
  display: grid;
  gap: var(--sp-2);
  align-content: start;
  padding: var(--sp-4);
  flex: 1;
}
.legacy #te-main .package-content > * { margin-block: 0; }
.legacy #te-main .price-tag {
  font-family: var(--font-display);
  font-weight: var(--fw-bold);
  color: var(--c-navy-800);
}
.legacy #te-main .package-type {
  margin: 0;
  display: block;
  white-space: normal;
  overflow-wrap: anywhere;
  font-family: var(--font-display);
  font-size: var(--fs-lg);
  font-weight: var(--fw-bold);
  line-height: var(--lh-snug);
  color: var(--text-strong);
}
.legacy #te-main .package-includes {
  font-size: var(--fs-xs);
  color: var(--text-muted);
}
.legacy #te-main .package-price {
  display: flex;
  align-items: baseline;
  gap: var(--sp-2);
  font-family: var(--font-display);
  font-size: var(--fs-xl);
  font-weight: var(--fw-black);
  color: var(--c-navy-900);
  line-height: 1.1;
}
.legacy #te-main .package-currency {
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  color: var(--text-muted);
}
.legacy #te-main .package-original {
  font-size: var(--fs-sm);
  font-weight: var(--fw-medium);
  color: var(--text-muted);
  text-decoration: line-through;
}
.legacy #te-main .package-features {
  display: grid;
  gap: 4px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.legacy #te-main .package-features li {
  position: relative;
  margin: 0;
  padding-inline-start: var(--sp-5);
  font-size: var(--fs-xs);
  line-height: var(--lh-normal);
  color: var(--text-body);
  background: none;
}
.legacy #te-main .package-features li::before {
  content: "✓";
  position: absolute;
  inset-inline-start: 0;
  color: var(--c-sea-500);
  font-weight: var(--fw-bold);
}
.legacy #te-main .features-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 244px), 1fr));
  gap: var(--sp-3);
}
.legacy #te-main .feature-card {
  display: grid;
  gap: var(--sp-2);
  align-content: start;
  padding: var(--sp-4);
  background: var(--c-surface-raised);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  box-shadow: none;
}
.legacy #te-main .feature-card > * { margin-block: 0; }
.legacy #te-main .feature-icon {
  inline-size: 34px;
  block-size: 34px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--c-sea-050);
  color: var(--c-sea-600);
  font-size: 15px;
}
.legacy #te-main .feature-title {
  margin: 0;
  font-size: var(--fs-md);
  font-weight: var(--fw-bold);
  color: var(--text-strong);
  line-height: var(--lh-snug);
}
.legacy #te-main .feature-card p {
  margin: 0;
  font-size: var(--fs-xs);
  line-height: var(--lh-normal);
  color: var(--text-body);
}
.legacy #te-main .included-list,
.legacy #te-main .bring-list,
.legacy #te-main .info-list {
  columns: 2 260px;
  column-gap: var(--sp-6);
  margin-block: var(--sp-4);
  padding-inline-start: 0;
  list-style: none;
}
.legacy #te-main .included-list .list-item,
.legacy #te-main .bring-list .list-item,
.legacy #te-main .info-list .list-item,
.legacy #te-main .included-list li,
.legacy #te-main .bring-list li,
.legacy #te-main .info-list li {
  break-inside: avoid;
  display: grid;
  grid-template-columns: 22px 1fr;
  gap: var(--sp-2);
  align-items: start;
  margin: 0 0 var(--sp-2);
  padding: 0;
  font-size: var(--fs-sm);
  line-height: var(--lh-normal);
  background: none;
}
.legacy #te-main .list-icon {
  inline-size: 22px;
  text-align: center;
  color: var(--c-sea-500);
  font-size: 13px;
  line-height: 1.5;
}
.legacy #te-main .price-table-container {
  overflow-x: auto;
  margin-block: var(--sp-4);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  background: var(--c-surface-raised);
}
.legacy #te-main .price-table {
  inline-size: 100%;
  border-collapse: collapse;
  font-size: var(--fs-xs);
}
.legacy #te-main .price-table th {
  padding: var(--sp-2) var(--sp-3);
  background: var(--c-navy-800);
  color: var(--c-white);
  font-weight: var(--fw-semibold);
  text-align: start;
  white-space: nowrap;
}
.legacy #te-main .price-table td {
  padding: var(--sp-2) var(--sp-3);
  border-block-start: 1px solid var(--border);
  vertical-align: top;
}
.legacy #te-main .price-table tbody tr:nth-child(even) td {
  background: color-mix(in srgb, var(--c-surface) 60%, transparent);
}
.legacy #te-main .important-notice {
  display: grid;
  gap: var(--sp-2);
  margin-block: var(--sp-5);
  padding: var(--sp-4) var(--sp-5);
  background: var(--c-gold-050);
  border: 0;
  border-inline-start: 3px solid var(--c-gold-500);
  border-radius: var(--r-md);
}
.legacy #te-main .important-notice h3 {
  margin: 0;
  font-size: var(--fs-md);
  font-weight: var(--fw-bold);
  color: var(--c-gold-700);
}
.legacy #te-main .important-notice ul {
  display: grid;
  gap: var(--sp-1);
  margin: 0;
  padding-inline-start: var(--sp-4);
}
.legacy #te-main .important-notice li {
  margin: 0;
  font-size: var(--fs-sm);
  line-height: var(--lh-normal);
}
.legacy #te-main .gallery {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr));
  gap: var(--sp-2);
  margin-block: var(--sp-4);
}
.legacy #te-main .gallery-item {
  margin: 0;
  border-radius: var(--r-md);
  overflow: hidden;
}
.legacy #te-main .gallery-item img {
  inline-size: 100%;
  block-size: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
  border-radius: 0;
  max-block-size: none;
}
.legacy #te-main .book-button,
.legacy #te-main .btn-large {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp-2);
  min-block-size: 44px;
  padding: var(--sp-2) var(--sp-5);
  background: var(--c-gold-500);
  color: var(--c-navy-950);
  border: 0;
  border-radius: 999px;
  font-weight: var(--fw-bold);
  font-size: var(--fs-sm);
  text-decoration: none;
  transition: background var(--dur-mid) var(--ease);
}
.legacy #te-main .book-button:hover,
.legacy #te-main .btn-large:hover {
  background: var(--c-gold-600);
  color: var(--c-navy-950);
}
.legacy #te-main .package-content .book-button { margin-block-start: auto; }
@media (max-width: 560px) {
  .legacy #te-main .hero { min-block-size: clamp(220px, 32vh, 320px); }
  .legacy #te-main .included-list,
  .legacy #te-main .bring-list,
  .legacy #te-main .info-list { columns: 1; }
}
.legacy #te-main .package-image {
  max-block-size: 190px;
}
.legacy #te-main .package-features li > i,
.legacy #te-main .package-features li > svg { display: none; }
.legacy #te-main .package-options {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 290px), 420px));
  justify-content: center;
}
.attr-split {
  display: grid;
  gap: var(--sp-5);
  padding-block: clamp(var(--sp-5), 2.2vw, var(--sp-7));
}
.attr-split__main > .section,
.attr-split__main > .section-alt {
  padding-block: 0;
  background: none;
}
.attr-split .booking { padding-block: 0; }
.attr-split .booking .container {
  max-inline-size: none;
  padding-inline: 0;
}
@media (min-width: 1080px) {
  .attr-split {
    grid-template-columns: minmax(0, 1fr) 340px;
    align-items: start;
    max-inline-size: var(--w-content);
    margin-inline: auto;
    padding-inline: var(--gutter);
  }
  .attr-split__main { grid-column: 1; grid-row: 1; }
  .attr-split__side {
    grid-column: 2;
    grid-row: 1;
    position: sticky;
    inset-block-start: calc(var(--header-h, 66px) + var(--sp-4));
  }
  .attr-split__main > .section .container,
  .attr-split__main > .section-alt .container {
    max-inline-size: none;
    padding-inline: 0;
  }
  .legacy #te-main .attr-split__main .package-options {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
    justify-content: stretch;
  }
}
.booking__inner {
  --w-ink: #f5f7fa;
  --w-ink-soft: rgba(245, 247, 250, .58);
  --w-line: rgba(255, 255, 255, .09);
  --w-fill: rgba(255, 255, 255, .045);
  --w-accent: #f0a81a;
  position: relative;
  overflow: hidden;
  padding: var(--sp-5) var(--sp-4) var(--sp-4);
  border-radius: 22px;
  color: var(--w-ink);
  background:
    radial-gradient(130% 80% at 88% -10%, rgba(240, 168, 26, .20), transparent 58%),
    linear-gradient(180deg, var(--c-navy-900) 0%, var(--c-navy-950) 100%);
  border: 1px solid var(--w-line);
  box-shadow:
    0 1px 0 0 rgba(255, 255, 255, .06) inset,
    0 24px 60px -28px rgba(0, 0, 0, .85),
    0 2px 10px -4px rgba(0, 0, 0, .5);
}
.booking__inner::before {
  content: "";
  position: absolute;
  inset-block-start: 0;
  inset-inline: 14%;
  block-size: 1px;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .5), transparent);
}
.booking__inner .booking__head {
  margin-block-end: var(--sp-4);
  text-align: start;
}
.booking__inner .booking__eyebrow {
  display: inline-block;
  margin-block-end: var(--sp-2);
  padding: 3px 10px;
  font-size: 11px;
  font-weight: var(--fw-semibold);
  letter-spacing: .06em;
  color: var(--w-accent);
  background: rgba(240, 168, 26, .14);
  border: 1px solid rgba(240, 168, 26, .28);
  border-radius: 999px;
}
.booking__inner .booking__title {
  margin: 0;
  color: var(--w-ink);
  font-size: var(--fs-xl);
  font-weight: var(--fw-bold);
  letter-spacing: -.01em;
  line-height: 1.15;
}
.booking__inner .booking__lede {
  margin-block-start: 6px;
  color: var(--w-ink-soft);
  font-size: var(--fs-2xs);
  line-height: var(--lh-normal);
}
.booking__inner .booking__form {
  display: block;
  grid-template-columns: none;
  gap: 0;
}
.booking__inner .booking__group {
  border-radius: 14px;
  background: var(--w-fill);
  border: 1px solid var(--w-line);
  overflow: hidden;
}
.booking__inner .booking__field {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: var(--sp-3);
  margin: 0;
  padding: 11px var(--sp-3);
  min-block-size: 46px;
  border-block-start: 1px solid var(--w-line);
  transition: background var(--dur-fast) var(--ease);
}
.booking__inner .booking__field:first-child { border-block-start: 0; }
.booking__inner .booking__field:hover { background: rgba(255, 255, 255, .03); }
.booking__inner .booking__field[hidden] { display: none !important; }
.booking__inner .booking__label {
  margin: 0;
  color: var(--w-ink-soft);
  font-size: var(--fs-2xs);
  font-weight: var(--fw-medium);
  letter-spacing: 0;
  text-transform: none;
  white-space: nowrap;
}
.booking__inner .booking__input {
  min-block-size: 0;
  padding: 0;
  background: none;
  border: 0;
  border-radius: 0;
  color: var(--w-ink);
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
  text-align: end;
  text-overflow: ellipsis;
  appearance: none;
}
.booking__inner select.booking__input {
  background-image: none;
  padding-inline: 0;
  direction: rtl;
}
.booking__inner select.booking__input option { color: #10131a; background: #fff; }
.booking__inner input[type="number"].booking__input { text-align: end; }
.booking__inner input[type="date"].booking__input {
  color-scheme: dark;
  inline-size: 100%;
}
.booking__inner .booking__input:focus { outline: none; }
.booking__inner .booking__field:focus-within {
  background: rgba(240, 168, 26, .09);
  box-shadow: inset 0 0 0 1px rgba(240, 168, 26, .45);
}
.booking__inner .booking__send {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp-2);
  margin-block-start: var(--sp-4);
  min-block-size: 50px;
  padding-inline: var(--sp-4);
  border-radius: 14px;
  background: linear-gradient(180deg, #f6b83a, #e09a0c);
  color: #2a1b00;
  font-size: var(--fs-sm);
  font-weight: var(--fw-bold);
  letter-spacing: -.01em;
  box-shadow:
    0 1px 0 0 rgba(255, 255, 255, .38) inset,
    0 10px 24px -12px rgba(240, 168, 26, .7);
  transition: transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);
}
.booking__inner .booking__send:hover {
  background: linear-gradient(180deg, #ffc451, #efa50e);
  color: #2a1b00;
  transform: translateY(-1px);
  box-shadow:
    0 1px 0 0 rgba(255, 255, 255, .42) inset,
    0 14px 28px -12px rgba(240, 168, 26, .8);
}
.booking__inner .booking__send:active { transform: translateY(0); }
.booking__inner .booking__send i { font-size: 1.2em; }
.booking__inner .booking__note {
  margin: 0;
  margin-block-start: var(--sp-3);
  padding-block-start: var(--sp-3);
  border-block-start: 1px solid var(--w-line);
  color: var(--w-ink-soft);
  font-size: 11.5px;
  line-height: 1.5;
}
@media (max-width: 1079px) {
  .booking__inner {
    max-inline-size: 520px;
    margin-inline: auto;
  }
}
.legacy #te-main .rail { position: relative; }
.legacy #te-main .gallery--rail {
  display: flex;
  gap: var(--sp-3);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  padding-block-end: var(--sp-2);
  scroll-padding-inline: var(--sp-1);
}
.legacy #te-main .gallery--rail::-webkit-scrollbar { display: none; }
.legacy #te-main .gallery--rail > .gallery-item {
  flex: 0 0 clamp(200px, 26vw, 268px);
  scroll-snap-align: start;
  margin: 0;
  border-radius: var(--r-md);
  overflow: hidden;
}
.legacy #te-main .gallery--rail > .gallery-item img {
  inline-size: 100%;
  block-size: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
  border-radius: 0;
  max-block-size: none;
}
.legacy #te-main .rail__nav {
  position: absolute;
  inset-block-start: 50%;
  translate: 0 -50%;
  z-index: 2;
  inline-size: 40px;
  block-size: 40px;
  display: grid;
  place-items: center;
  padding: 0;
  font-size: 1.5rem;
  line-height: 1;
  color: var(--c-navy-900);
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid var(--border);
  border-radius: 999px;
  box-shadow: 0 6px 18px -8px rgba(4, 20, 38, 0.5);
  cursor: pointer;
  transition: background var(--dur-fast) var(--ease), opacity var(--dur-fast) var(--ease);
}
.legacy #te-main .rail__nav:hover { background: #fff; }
.legacy #te-main .rail__nav--prev { inset-inline-start: calc(var(--sp-3) * -1); }
.legacy #te-main .rail__nav--next { inset-inline-end: calc(var(--sp-3) * -1); }
.legacy #te-main .rail__nav[disabled] { opacity: 0; pointer-events: none; }
@media (hover: none) {
  .legacy #te-main .rail__nav { display: none; }
}
.legacy #te-main { --card-min: 244px; }
.legacy #te-main .features-grid,
.legacy #te-main .info-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--card-min)), 1fr));
  gap: var(--sp-3);
}
.legacy #te-main .pricing-cards {
  --card-w: 300px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 232px), var(--card-w)));
  justify-content: center;
  gap: var(--sp-3);
  margin-block: var(--sp-4);
  padding-block-start: 10px;
}
.legacy #te-main .price-card {
  position: relative;
  display: grid;
  align-content: start;
  gap: var(--sp-2);
  margin: 0;
  padding: var(--sp-4);
  text-align: center;
  background: var(--c-surface-raised);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  box-shadow: none;
  transition: border-color var(--dur-mid) var(--ease), transform var(--dur-mid) var(--ease);
}
.legacy #te-main .price-card:hover {
  border-color: var(--c-sea-400);
  transform: translateY(-2px);
}
.legacy #te-main .price-card.featured {
  border-color: var(--c-gold-500);
  box-shadow: 0 0 0 1px var(--c-gold-500) inset;
}
.legacy #te-main .price-card .featured-tag {
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: 50%;
  translate: 50% -50%;
  z-index: 2;
  padding: 3px var(--sp-3);
  background: var(--c-gold-500);
  color: var(--c-navy-950);
  border-radius: 999px;
  font-size: var(--fs-3xs);
  font-weight: var(--fw-bold);
  white-space: nowrap;
}
.legacy #te-main .price-type {
  justify-self: center;
  margin: 0;
  padding: 4px var(--sp-3);
  background: var(--c-sea-050);
  color: var(--c-navy-900);
  border: 1px solid var(--c-sea-200);
  border-radius: 999px;
  font-family: var(--font-display);
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
}
.legacy #te-main .price-amount {
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--fs-2xl);
  font-weight: var(--fw-black);
  line-height: 1.05;
  color: var(--c-navy-900);
}
.legacy #te-main .price-currency {
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
  color: var(--text-muted);
}
.legacy #te-main .price-period {
  display: block;
  margin: 0;
  font-size: var(--fs-2xs);
  font-weight: var(--fw-semibold);
  color: var(--c-sea-600);
}
.legacy #te-main .price-description {
  margin: 0;
  padding-block-start: var(--sp-2);
  border-block-start: 1px solid var(--border);
  font-size: var(--fs-2xs);
  line-height: var(--lh-normal);
  color: var(--text-body);
  text-wrap: pretty;
}
.legacy #te-main :is(.pricing-cards, .package-options, .tab-content)
  :is(.package-card, .price-card) p.price-description {
  -webkit-line-clamp: none;
  line-clamp: none;
  display: block;
  overflow: visible;
}
@media (min-width: 1080px) {
  .legacy #te-main .attr-split__main .pricing-cards {
    --card-w: 205px;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), var(--card-w)));
    gap: var(--sp-2);
  }
}
.booking__inner .bsel { position: relative; min-inline-size: 0; }
.booking__inner .bsel__native {
  position: absolute;
  inline-size: 1px;
  block-size: 1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
.booking__inner .bsel__btn {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--sp-2);
  inline-size: 100%;
  min-block-size: 0;
  padding: 0;
  background: none;
  border: 0;
  color: var(--w-ink);
  font-family: inherit;
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
  text-align: end;
  cursor: pointer;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.booking__inner .bsel__btn::after {
  content: "";
  flex: none;
  inline-size: 7px;
  block-size: 7px;
  margin-inline-start: 2px;
  border-inline-start: 1.5px solid var(--w-ink-soft);
  border-block-end: 1.5px solid var(--w-ink-soft);
  rotate: -45deg;
  translate: 0 -2px;
  transition: rotate var(--dur-fast) var(--ease);
}
.booking__inner .bsel__btn[aria-expanded="true"]::after {
  rotate: 135deg;
  translate: 0 1px;
}
.booking__inner .bsel__panel {
  position: absolute;
  inset-block-start: calc(100% + 10px);
  inset-inline: -8px;
  z-index: 30;
  max-block-size: 268px;
  overflow-y: auto;
  padding: 5px;
  background: #0a2138;
  border: 1px solid rgba(255, 255, 255, .13);
  border-radius: 14px;
  box-shadow: 0 24px 48px -18px rgba(0, 0, 0, .8);
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, .22) transparent;
}
.booking__inner .bsel__panel[hidden] { display: none; }
.booking__inner .bsel__opt {
  padding: 9px 10px;
  border-radius: 9px;
  color: rgba(245, 247, 250, .84);
  font-size: var(--fs-2xs);
  line-height: 1.35;
  cursor: pointer;
  transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}
.booking__inner .bsel__opt:hover { background: rgba(255, 255, 255, .07); color: #fff; }
.booking__inner .bsel__opt.is-on {
  background: rgba(240, 168, 26, .14);
  color: #fff;
  font-weight: var(--fw-semibold);
}
.booking__inner .bsel__opt.is-on::before {
  content: "";
  display: inline-block;
  inline-size: 5px;
  block-size: 5px;
  margin-inline-end: 7px;
  border-radius: 50%;
  background: var(--c-gold-500);
  translate: 0 -2px;
}
.booking__inner .bsel__panel::-webkit-scrollbar { inline-size: 6px; }
.booking__inner .bsel__panel::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, .22);
  border-radius: 999px;
}
.booking__inner .booking__group:has(.bsel__panel:not([hidden])) { overflow: visible; }
.booking__inner .booking__field:has(.bsel__panel:not([hidden])) { position: relative; z-index: 30; }
.legacy #te-main .deck__stage {
  position: relative;
  margin-block: var(--sp-4);
}
.legacy #te-main .deck__svg {
  inline-size: 100%;
  block-size: auto;
  display: block;
  min-inline-size: 0;
}
.deck__hull {
  fill: var(--c-surface);
  stroke: var(--border);
  stroke-width: 2;
}
.deck__pool {
  fill: var(--c-sea-050);
  stroke: var(--c-sea-200);
  stroke-width: 2;
}
.deck__poolText,
.deck__bow {
  fill: var(--text-muted);
  font-family: var(--font-body);
  font-size: 15px;
  text-anchor: middle;
}
.deck__rail {
  stroke: var(--border);
  stroke-width: 2;
  stroke-dasharray: 3 7;
  stroke-linecap: round;
}
.deck__zone { cursor: pointer; }
.deck__zone rect {
  fill: var(--c-surface-raised);
  stroke: var(--border);
  stroke-width: 1.5;
  transition: fill var(--dur-fast) var(--ease), stroke var(--dur-fast) var(--ease);
}
.deck__zone text {
  fill: var(--c-navy-900);
  font-family: var(--font-display);
  font-size: 15px;
  font-weight: var(--fw-bold);
  text-anchor: middle;
  pointer-events: none;
}
.deck__zone .deck__zoneCap {
  fill: var(--text-muted);
  font-family: var(--font-body);
  font-size: 12.5px;
  font-weight: var(--fw-medium);
}
.deck__zone.is-featured rect {
  stroke: var(--c-gold-500);
  stroke-width: 2;
}
.deck__zone:hover rect,
.deck__zone.is-on rect {
  fill: var(--c-gold-500);
  stroke: var(--c-gold-600);
}
.deck__zone:hover text,
.deck__zone.is-on text { fill: var(--c-navy-950); }
.deck__zone:hover .deck__zoneCap,
.deck__zone.is-on .deck__zoneCap { fill: rgba(4, 24, 46, .72); }
.deck__zone:focus { outline: none; }
.deck__zone:focus-visible rect {
  stroke: var(--c-sea-500);
  stroke-width: 3;
}
.legacy #te-main .deck__card {
  position: absolute;
  inset-block-start: var(--sp-3);
  inset-inline-start: var(--sp-3);
  z-index: 3;
  inline-size: min(260px, 74%);
  background: var(--c-surface-raised);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  overflow: hidden;
  box-shadow: 0 16px 38px -18px rgba(4, 24, 46, .45);
  pointer-events: none;
}
.legacy #te-main .deck__card[hidden] { display: none; }
.deck__cardMedia { aspect-ratio: 16 / 10; background: var(--c-surface); }
.deck__cardMedia img {
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
  display: block;
}
.deck__cardBody { padding: var(--sp-3); display: grid; gap: 3px; }
.deck__cardTitle {
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--fs-sm);
  font-weight: var(--fw-bold);
  color: var(--text-strong);
}
.deck__cardMeta {
  margin: 0;
  font-size: var(--fs-2xs);
  color: var(--text-muted);
}
.deck__cardPrice {
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--fs-lg);
  font-weight: var(--fw-black);
  color: var(--c-navy-900);
}
.legacy #te-main .deck__note {
  margin: 0;
  font-size: var(--fs-3xs);
  color: var(--text-muted);
  text-align: center;
}
@media (max-width: 719px) {
  .legacy #te-main .deck__card {
    position: static;
    inline-size: 100%;
    margin-block-start: var(--sp-3);
  }
  .deck__zone text { font-size: 19px; }
  .deck__zone .deck__zoneCap { font-size: 16px; }
  .deck__poolText, .deck__bow { font-size: 19px; }
}
.legacy #te-main .pricing-tabs {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 6px;
  margin-block: var(--sp-4);
  padding: 5px;
  background: var(--c-surface);
  border: 1px solid var(--border);
  border-radius: 999px;
  inline-size: fit-content;
  margin-inline: auto;
  max-inline-size: 100%;
}
.legacy #te-main .pricing-tab {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-2);
  margin: 0;
  padding: 9px var(--sp-4);
  border-radius: 999px;
  background: transparent;
  color: var(--text-muted);
  font-family: var(--font-display);
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
  line-height: 1.2;
  white-space: nowrap;
  cursor: pointer;
  user-select: none;
  transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}
.legacy #te-main .pricing-tab:hover { color: var(--c-navy-900); background: rgba(7, 39, 66, .05); }
.legacy #te-main .pricing-tab.active {
  background: var(--c-navy-900);
  color: var(--c-white);
}
.legacy #te-main .pricing-tab.active i { color: var(--c-gold-400); }
.legacy #te-main .pricing-tab i { font-size: .95em; }
.legacy #te-main .tab-content { display: none; }
.legacy #te-main .tab-content.active { display: block; }
@media (max-width: 719px) {
  .legacy #te-main .pricing-tabs {
    inline-size: 100%;
    flex-wrap: nowrap;
    overflow-x: auto;
    justify-content: flex-start;
    scrollbar-width: none;
    border-radius: var(--r-md);
  }
  .legacy #te-main .pricing-tabs::-webkit-scrollbar { display: none; }
  .legacy #te-main .pricing-tab { flex: 0 0 auto; }
}
.deck__water {
  fill: var(--c-sea-050);
  stroke: var(--c-sea-200);
  stroke-width: 1.5;
}
.legacy #te-main .deck__hull { stroke: var(--c-navy-800); stroke-width: 2.5; }
.legacy #te-main .deck__card[data-side="bow"] {
  inset-inline-start: auto;
  inset-inline-end: var(--sp-3);
}
.legacy #te-main .deck__card[data-side="stern"] {
  inset-inline-start: var(--sp-3);
  inset-inline-end: auto;
}
@media (max-width: 719px) {
  .legacy #te-main .deck__card[data-side="bow"],
  .legacy #te-main .deck__card[data-side="stern"] {
    inset-inline: auto;
  }
}
.legacy #te-main .hero-badge {
  justify-self: center;
  margin: 0 0 var(--sp-2);
  padding: 5px var(--sp-4);
  background: rgba(255, 255, 255, .13);
  border: 1px solid rgba(255, 255, 255, .26);
  border-radius: 999px;
  color: #fff;
  font-size: var(--fs-2xs);
  font-weight: var(--fw-semibold);
  backdrop-filter: blur(6px);
}
.legacy #te-main .hero-subtitle {
  margin: 0;
  color: rgba(255, 255, 255, .92);
  font-size: var(--fs-base);
  line-height: var(--lh-normal);
  text-wrap: balance;
}
.legacy #te-main .hero-highlights {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--sp-2) var(--sp-3);
  margin-block-start: var(--sp-2);
}
.legacy #te-main .hero-highlight {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 6px var(--sp-3);
  background: rgba(255, 255, 255, .10);
  border: 1px solid rgba(255, 255, 255, .20);
  border-radius: 999px;
  color: #fff;
  font-size: var(--fs-2xs);
  font-weight: var(--fw-medium);
  white-space: nowrap;
}
.legacy #te-main .hero-highlight i { color: var(--c-gold-400); font-size: .95em; }
.legacy #te-main .hero-cta {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--sp-3);
  margin-block-start: var(--sp-3);
}
.legacy #te-main .cta-primary,
.legacy #te-main .cta-secondary {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-2);
  min-block-size: 48px;
  padding: 0 var(--sp-5);
  border-radius: var(--r-sm);
  font-family: var(--font-display);
  font-size: var(--fs-sm);
  font-weight: var(--fw-bold);
  text-decoration: none;
  white-space: nowrap;
  transition: transform var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);
}
.legacy #te-main .cta-primary {
  background: var(--c-gold-500);
  color: var(--c-navy-950);
  box-shadow: 0 1px 0 0 rgba(255, 255, 255, .34) inset;
}
.legacy #te-main .cta-primary:hover {
  background: var(--c-gold-400, #ffc451);
  color: var(--c-navy-950);
  transform: translateY(-1px);
}
.legacy #te-main .cta-secondary {
  background: rgba(255, 255, 255, .10);
  border: 1px solid rgba(255, 255, 255, .34);
  color: #fff;
}
.legacy #te-main .cta-secondary:hover {
  background: rgba(255, 255, 255, .18);
  color: #fff;
  transform: translateY(-1px);
}
@media (max-width: 719px) {
  .legacy #te-main .hero-cta { flex-direction: column; align-items: stretch; }
  .legacy #te-main .cta-primary,
  .legacy #te-main .cta-secondary { justify-content: center; }
}
.legacy #te-main .pricing-grid {
  --card-w: 272px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), var(--card-w)));
  justify-content: center;
  gap: var(--sp-3);
  margin-block: var(--sp-4);
  padding-block-start: 10px;
}
.legacy #te-main .pricing-card {
  position: relative;
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background: var(--c-surface-raised);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  text-align: center;
  transition: border-color var(--dur-mid) var(--ease), transform var(--dur-mid) var(--ease);
}
.legacy #te-main .pricing-card:hover {
  border-color: var(--c-sea-400);
  transform: translateY(-2px);
}
.legacy #te-main .pricing-card.featured {
  border-color: var(--c-gold-500);
  box-shadow: 0 0 0 1px var(--c-gold-500) inset;
}
.legacy #te-main .pricing-image {
  aspect-ratio: 4 / 3;
  max-block-size: 168px;
  overflow: hidden;
  margin: 0;
}
.legacy #te-main .pricing-image img {
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
  display: block;
  border-radius: 0;
  max-block-size: none;
}
.legacy #te-main .pricing-card .card-content {
  display: grid;
  gap: var(--sp-2);
  align-content: start;
  padding: var(--sp-3);
  flex: 1;
}
.legacy #te-main .level-badge {
  position: absolute;
  inset-block-start: var(--sp-2);
  inset-inline-start: auto;
  inset-inline-end: var(--sp-2);
  z-index: 2;
  padding: 3px 10px;
  background: rgba(255, 255, 255, .92);
  color: var(--c-navy-900);
  border-radius: 999px;
  font-size: var(--fs-3xs);
  font-weight: var(--fw-bold);
}
.legacy #te-main .pricing-capacity {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-size: var(--fs-2xs);
  color: var(--text-muted);
}
.legacy #te-main .pricing-capacity i { color: var(--c-sea-500); }
.legacy #te-main .pricing-card .price,
.legacy #te-main .pricing-card [class*="amount"] {
  font-family: var(--font-display);
  font-size: var(--fs-2xl);
  font-weight: var(--fw-black);
  line-height: 1.05;
  color: var(--c-navy-900);
}
.legacy #te-main .pricing-card ul {
  display: grid;
  gap: 3px;
  margin: 0;
  padding: var(--sp-2) 0 0;
  list-style: none;
  border-block-start: 1px solid var(--border);
}
.legacy #te-main .pricing-card li {
  margin: 0;
  padding: 0;
  background: none;
  font-size: var(--fs-2xs);
  line-height: var(--lh-normal);
  color: var(--text-body);
}
.legacy #te-main .pricing-card li i { color: var(--c-sea-500); margin-inline-end: 5px; }
.legacy #te-main .pricing-card .book-button,
.legacy #te-main .pricing-card a[href*="wa.me"] {
  margin: auto var(--sp-3) var(--sp-3);
  min-block-size: 44px;
}
.deck__upper { fill: var(--c-sea-050); stroke: none; }
.deck__floor2 { fill: rgba(45, 190, 208, .09); stroke: none; }
.deck__floor3 { fill: rgba(45, 190, 208, .19); stroke: none; }
.deck__floor--3 { font-size: 13px; }
.deck__split {
  stroke: var(--c-navy-800);
  stroke-width: 2;
  stroke-dasharray: 6 5;
}
.deck__floor {
  fill: var(--c-navy-800);
  font-family: var(--font-display);
  font-size: 14px;
  font-weight: 700;
  text-anchor: middle;
  letter-spacing: .04em;
}
.legacy #te-main .pricing-image { max-block-size: 124px; aspect-ratio: 16 / 10; }
.legacy #te-main .pricing-card .card-content { gap: 6px; padding: var(--sp-3) var(--sp-3) var(--sp-2); }
.legacy #te-main .pricing-card ul { gap: 1px; }
.legacy #te-main .pricing-card li { font-size: var(--fs-3xs); line-height: 1.45; }
.legacy #te-main .pricing-type { margin: 0; font-size: var(--fs-sm); }
.legacy #te-main .pricing-card .price-credit { font-size: var(--fs-3xs); line-height: 1.4; }
.deck__dining {
  fill: var(--c-surface);
  stroke: var(--border);
  stroke-width: 1.5;
  stroke-dasharray: 4 4;
}
.deck__dining-t {
  fill: var(--text-muted);
  font-family: var(--font-body);
  font-size: 13px;
  text-anchor: middle;
}
.deck__band {
  fill: var(--c-surface-raised);
  stroke: var(--border);
  stroke-width: 1.5;
  transition: fill var(--dur-fast) var(--ease), stroke var(--dur-fast) var(--ease);
}
.deck__unit {
  fill: var(--c-surface);
  stroke: var(--border);
  stroke-width: 1;
  transition: fill var(--dur-fast) var(--ease), stroke var(--dur-fast) var(--ease);
}
.deck__zone:hover .deck__band,
.deck__zone.is-on .deck__band {
  fill: rgba(240, 168, 26, .16);
  stroke: var(--c-gold-600);
}
.deck__zone:hover .deck__unit,
.deck__zone.is-on .deck__unit {
  fill: var(--c-gold-500);
  stroke: var(--c-gold-600);
}
.deck__zone.is-featured .deck__band { stroke: var(--c-gold-500); stroke-width: 2; }
.deck__zone text { font-size: 13.5px; }
.deck__zone .deck__zoneCap { font-size: 11.5px; }
.deck__zone:focus-visible .deck__band { stroke: var(--c-sea-500); stroke-width: 3; }
.legacy #te-main .pricing-card .featured-badge {
  inset-block-start: var(--sp-2);
  inset-inline-start: var(--sp-2);
  inset-inline-end: auto;
  z-index: 3;
}
.deck__dj {
  fill: var(--c-navy-900);
  stroke: var(--c-navy-950);
  stroke-width: 1.5;
}
.deck__dj-t {
  fill: var(--c-gold-400, #ffc451);
  font-family: var(--font-display);
  font-size: 15px;
  font-weight: 800;
  text-anchor: middle;
  letter-spacing: .06em;
}
.legacy #te-main .stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr));
  gap: var(--sp-3);
  margin-block: var(--sp-4);
  padding: 0;
  list-style: none;
  max-inline-size: 860px;
  margin-inline: auto;
}
.legacy #te-main .stat-item {
  display: grid;
  gap: 2px;
  justify-items: center;
  margin: 0;
  padding: var(--sp-4) var(--sp-3);
  text-align: center;
  background: var(--c-surface-raised);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
}
.legacy #te-main .stat-number {
  display: block;
  margin: 0;
  padding: 0;
  background: none;
  border: 0;
  font-family: var(--font-display);
  font-size: var(--fs-2xl);
  font-weight: var(--fw-black);
  line-height: 1.05;
  color: var(--c-navy-900);
}
.legacy #te-main .stat-label {
  display: block;
  margin: 0;
  padding: 0;
  background: none;
  border: 0;
  border-radius: 0;
  font-size: var(--fs-2xs);
  font-weight: var(--fw-medium);
  line-height: var(--lh-normal);
  color: var(--text-muted);
  white-space: normal;
}
.legacy #te-main *:not(.hero):not(.hero-content) > .cta-secondary,
.legacy #te-main .section .cta-secondary {
  background: var(--c-surface-raised);
  border: 1px solid var(--border);
  color: var(--c-navy-900);
}
.legacy #te-main .section .cta-secondary:hover {
  background: var(--c-surface);
  border-color: var(--c-sea-400);
  color: var(--c-navy-950);
}
.legacy #te-main .section [style*="text-align:center"]:has(> .cta-primary),
.legacy #te-main .section [style*="text-align: center"]:has(> .cta-primary) {
  display: flex !important;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--sp-3);
  margin: var(--sp-4) 0 0 !important;
}
.legacy #te-main .section .cta-primary,
.legacy #te-main .section .cta-secondary { margin: 0 !important; }
.legacy #te-main .whatsapp-float { display: none; }
.pa-intro h1 {
  margin: 0 0 var(--sp-3);
  font-family: var(--font-display);
  font-size: var(--fs-3xl);
  font-weight: var(--fw-black);
  line-height: var(--lh-tight);
  text-wrap: balance;
}
.pa-intro__lede {
  margin: 0;
  max-inline-size: 62ch;
  font-size: var(--fs-md);
  line-height: var(--lh-relaxed);
  color: var(--text-body);
}
.pa-intro__from {
  display: inline-block;
  margin: var(--sp-5) 0 0;
  padding: .5em 1em;
  background: var(--c-gold-050, #fdf6e6);
  border: 1px solid var(--c-gold-500);
  border-radius: var(--r-full, 999px);
  font-size: var(--fs-sm);
  color: var(--text-strong);
}
.pa-intro__from b { font-size: var(--fs-lg); }
.pa .gallery {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr));
  gap: var(--sp-2);
  margin-block: var(--sp-4);
}
.pa .gallery-item {
  margin: 0;
  border-radius: var(--r-md);
  overflow: hidden;
}
.pa .gallery-item img {
  inline-size: 100%;
  block-size: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
  border-radius: 0;
  max-block-size: none;
}
.pa .pa-hero {
  margin: var(--sp-4) 0 0;
  border-radius: var(--r-md);
  overflow: hidden;
}
.pa .pa-hero img {
  display: block;
  inline-size: 100%;
  block-size: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  object-position: center 35%;
  max-block-size: 460px;
}
.pa-price__note {
  display: block;
  font-size: var(--fs-xs);
  color: var(--text-muted);
}
.pa-price__was { color: var(--text-muted); }
.pa-price__was s { text-decoration-thickness: 1px; }
.pa-rules__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: var(--sp-3);
  max-inline-size: 70ch;
}
.pa-rules__list li {
  position: relative;
  padding-inline-start: 1.5em;
  line-height: var(--lh-relaxed);
  color: var(--text-body);
}
.pa-rules__list li::before {
  content: "";
  position: absolute;
  inset-inline-start: 0;
  inset-block-start: .62em;
  inline-size: 7px;
  block-size: 7px;
  border-radius: 50%;
  background: var(--c-sea-500);
}
.pa-combine { background: var(--c-sea-050); }
.pa-combine__lede {
  margin: 0 0 var(--sp-6);
  max-inline-size: 66ch;
  color: var(--text-body);
  line-height: var(--lh-relaxed);
}
.pa-chips {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 190px), 1fr));
  gap: var(--sp-3);
}
.pa-chip {
  display: grid;
  gap: 2px;
  padding: var(--sp-4);
  background: var(--c-white);
  border: 1px solid var(--border);
  border-radius: var(--r-md, 12px);
  text-decoration: none;
  transition: border-color var(--dur-mid) var(--ease), transform var(--dur-mid) var(--ease);
}
.pa-chip:hover {
  border-color: var(--c-sea-500);
  transform: translateY(-2px);
}
.pa-chip__name {
  font-family: var(--font-display);
  font-weight: var(--fw-bold);
  color: var(--text-strong);
}
.pa-chip__from {
  font-size: var(--fs-xs);
  color: var(--c-gold-600, #a8740a);
  font-weight: var(--fw-semibold);
}
.legacy #te-main button.price-card--pick {
  inline-size: 100%;
  font: inherit;
  color: inherit;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  text-align: center;
}
.legacy #te-main button.price-card--pick[aria-pressed="true"] {
  border-color: var(--c-gold-500);
  box-shadow: 0 0 0 2px var(--c-gold-500), var(--shadow-md);
}
.legacy #te-main button.price-card--pick[aria-pressed="true"]::after {
  content: "✓";
  position: absolute;
  inset-block-start: var(--sp-2);
  inset-inline-start: var(--sp-2);
  inline-size: 22px;
  block-size: 22px;
  display: grid;
  place-items: center;
  border-radius: var(--r-full);
  background: var(--c-gold-500);
  color: var(--c-navy-950);
  font-size: var(--fs-3xs);
  font-weight: var(--fw-black);
  line-height: 1;
}
.legacy #te-main button.price-card--pick:focus-visible {
  outline: 3px solid var(--c-sea-500);
  outline-offset: 2px;
}
.legacy #te-main button.price-card--pick:hover {
  border-color: var(--c-gold-500);
}
@media (hover: none) {
  .legacy #te-main button.price-card--pick::before {
    content: "בחירה";
    position: absolute;
    inset-block-end: var(--sp-2);
    inset-inline-end: var(--sp-3);
    font-size: var(--fs-3xs);
    font-weight: var(--fw-bold);
    color: var(--c-sea-600);
  }
  .legacy #te-main button.price-card--pick[aria-pressed="true"]::before {
    content: "נבחר";
    color: var(--c-gold-700);
  }
}
@media (max-width: 560px) {
  .legacy #te-main { --card-min: 150px; }
  .legacy #te-main .feature-card,
  .legacy #te-main .info-card {
    padding: var(--sp-3);
    gap: var(--sp-1);
  }
  .legacy #te-main .feature-card p,
  .legacy #te-main .info-card p {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    overflow: hidden;
    font-size: var(--fs-2xs);
    line-height: 1.5;
  }
  .legacy #te-main .feature-card h3,
  .legacy #te-main .feature-card h4,
  .legacy #te-main .info-card h3 {
    font-size: var(--fs-xs);
    line-height: var(--lh-snug);
  }
  .legacy #te-main .feature-icon {
    inline-size: 26px;
    block-size: 26px;
  }
}
.legacy #te-main .feature-card p,
.legacy #te-main .info-card p {
  -webkit-line-clamp: none;
  line-clamp: none;
  display: block;
  overflow: visible;
}
.legacy #te-main .feature-card,
.legacy #te-main .info-card {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-areas:
    "icon title"
    "body body";
  align-items: center;
  column-gap: var(--sp-2);
  row-gap: var(--sp-2);
  padding: var(--sp-3) var(--sp-4);
}
.legacy #te-main .feature-card > .feature-icon,
.legacy #te-main .info-card > [class*="icon"] {
  grid-area: icon;
  inline-size: 30px;
  block-size: 30px;
  margin: 0;
  padding: 0;
  display: grid;
  place-items: center;
}
.legacy #te-main .feature-card > .feature-title,
.legacy #te-main .feature-card > h3,
.legacy #te-main .feature-card > h4,
.legacy #te-main .info-card > h3,
.legacy #te-main .info-card > h4 {
  grid-area: title;
  margin: 0;
  align-self: center;
}
.legacy #te-main .feature-card > p,
.legacy #te-main .info-card > p {
  margin: 0;
}
.legacy #te-main .feature-card > :not(.feature-icon, .feature-title, h3, h4, .card-cover),
.legacy #te-main .info-card > :not([class*="icon"], h3, h4, .card-cover) {
  grid-column: 1 / -1;
}
.legacy #te-main .feature-card > .feature-title,
.legacy #te-main .feature-card > h3,
.legacy #te-main .info-card > h3 {
  line-height: var(--lh-snug);
}
.legacy #te-main figure.attr-figure {
  margin: var(--sp-4) auto var(--sp-5);
  max-inline-size: 30rem;
  border-radius: var(--r-md);
  overflow: hidden;
  background: var(--c-surface-raised);
  border: 1px solid var(--border);
}
@media (min-width: 900px) {
  .legacy #te-main figure.attr-figure {
    float: inline-end;
    inline-size: 44%;
    max-inline-size: 24rem;
    margin: var(--sp-1) 0 var(--sp-3) var(--sp-4);
  }
  .legacy #te-main .attr-figure + h2,
  .legacy #te-main .attr-figure ~ h2,
  .legacy #te-main .attr-figure ~ h3 { clear: both; }
}
.legacy #te-main figure.attr-figure img {
  display: block;
  inline-size: 100%;
  block-size: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  margin: 0;
  border-radius: 0;
}
.legacy #te-main figure.attr-figure figcaption {
  padding: var(--sp-2) var(--sp-3);
  font-size: var(--fs-2xs);
  line-height: var(--lh-snug);
  color: var(--text-muted);
  border-inline-start: 3px solid var(--c-sea-400);
}
@media (max-width: 560px) {
  .legacy #te-main figure.attr-figure {
    margin: var(--sp-3) 0 var(--sp-4);
  }
  .legacy #te-main figure.attr-figure img { aspect-ratio: 4 / 3; }
}
.pa-incl__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
  gap: var(--sp-4);
}
.pa-incl__col {
  padding: var(--sp-4);
  border-radius: var(--r-md);
  background: var(--c-surface-raised);
  border: 1px solid var(--border);
  border-inline-start: 4px solid var(--border);
}
.pa-incl__col--yes { border-inline-start-color: var(--c-sea-500); }
.pa-incl__col--no  { border-inline-start-color: var(--c-sand-500, #c9a227); }
.pa-incl__col h3 {
  margin: 0 0 var(--sp-3);
  font-size: var(--fs-md);
}
.pa-incl__col ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.pa-incl__col li {
  position: relative;
  padding-inline-start: 1.5em;
  margin-block-end: var(--sp-2);
  line-height: var(--lh-snug);
}
.pa-incl__col li::before {
  position: absolute;
  inset-inline-start: 0;
  font-weight: 700;
}
.pa-incl__col--yes li::before { content: "✓"; color: var(--c-sea-600, #0b6e7a); }
.pa-incl__col--no  li::before { content: "✕"; color: var(--text-muted); }
.pa-incl__hours {
  margin-block-start: var(--sp-3);
  margin-block-end: 0;
  color: var(--text-muted);
  font-size: var(--fs-sm);
}
.legacy #te-main .attr-notice,
.attr-notice {
  padding: var(--sp-4);
  border-radius: var(--r-md);
  background: var(--c-surface-raised);
  border: 1px solid var(--border);
  border-inline-start: 4px solid var(--c-sea-500);
}
.legacy #te-main .attr-notice > strong,
.attr-notice > strong {
  display: block;
  margin-block-end: var(--sp-2);
  font-size: var(--fs-md);
}
.legacy #te-main .attr-notice p:last-child,
.attr-notice p:last-child { margin-block-end: 0; }
.legacy #te-main .tickets-grid,
.legacy #te-main .ticket-options {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 290px), 1fr));
  gap: var(--sp-4);
  margin-block: var(--sp-5);
}
.legacy #te-main .ticket-card {
  position: relative;
  display: flex;
  flex-direction: column;
  margin: 0;
  background: var(--c-surface-raised);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  overflow: hidden;
  box-shadow: none;
  transition: border-color var(--dur-mid) var(--ease),
              transform var(--dur-mid) var(--ease);
}
.legacy #te-main .ticket-card:hover {
  border-color: var(--c-sea-400);
  transform: translateY(-2px);
}
.legacy #te-main .ticket-card .ticket-image img {
  display: block;
  inline-size: 100%;
  block-size: auto;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  margin: 0;
  border-radius: 0;
  transition: transform var(--dur-mid) var(--ease);
}
.legacy #te-main .ticket-card:hover .ticket-image img { transform: scale(1.04); }
.legacy #te-main .ticket-card .ticket-content {
  display: grid;
  align-content: start;
  gap: var(--sp-2);
  padding: var(--sp-4);
}
.legacy #te-main .ticket-card .ticket-type,
.legacy #te-main .ticket-card .ticket-header {
  margin: 0;
  font-size: var(--fs-md);
  font-weight: 700;
}
.legacy #te-main .ticket-card .ticket-includes {
  color: var(--text-muted);
  font-size: var(--fs-sm);
  line-height: var(--lh-snug);
}
.legacy #te-main .ticket-card .ticket-price {
  font-size: var(--fs-xl);
  font-weight: 800;
  color: var(--c-gold-600, #a8761a);
  line-height: 1.1;
}
.legacy #te-main .ticket-card .ticket-currency { font-size: var(--fs-md); }
.legacy #te-main .ticket-card .ticket-original {
  margin-inline-start: var(--sp-2);
  color: var(--text-muted);
  font-size: var(--fs-sm);
  font-weight: 500;
  text-decoration: line-through;
}
.legacy #te-main .package-options,
.legacy #te-main .package-cards,
.legacy #te-main :is(.pricing-cards, .cards, .grid):has(> .package-card) {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 320px));
  justify-content: center;
  align-items: stretch;
  gap: var(--sp-4);
  margin-block: var(--sp-5);
  padding-block-start: 10px;
}
.legacy #te-main .pricing-cards:has(> .package-card) { --card-w: 320px; }
.legacy #te-main .package-card {
  block-size: 100%;
  min-inline-size: 0;
}
.legacy #te-main .package-card :is(h3, .package-title) {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-block-size: calc(2 * 1.25em);
}
.legacy #te-main .package-card .package-content {
  flex: 1 1 auto;
  min-block-size: 0;
}
.legacy #te-main .package-card :is(.btn, .package-cta, a[href*="wa.me"]) {
  margin-block-start: auto;
}
@media (max-width: 560px) {
  .legacy #te-main .package-options,
  .legacy #te-main .package-cards,
  .legacy #te-main :is(.pricing-cards, .cards, .grid):has(> .package-card) {
    grid-template-columns: 1fr;
  }
}
@media (min-width: 1080px) {
  .legacy #te-main .attr-split__main .package-options,
  .legacy #te-main .attr-split__main .package-cards,
  .legacy #te-main .attr-split__main :is(.pricing-cards, .cards, .grid):has(> .package-card) {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 320px));
    justify-content: center;
    gap: var(--sp-4);
  }
}
.legacy #te-main .tabs {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-2);
  justify-content: center;
  margin-block: var(--sp-5) var(--sp-4);
  padding-block-end: var(--sp-3);
  border-block-end: 1px solid var(--border);
}
.legacy #te-main .tab-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-block-size: 48px;
  padding: var(--sp-3) var(--sp-5);
  border: 1px solid var(--border);
  border-radius: var(--r-full);
  background: var(--c-surface-raised);
  color: var(--text-muted);
  font-family: var(--font-display);
  font-weight: var(--fw-bold);
  font-size: var(--fs-md);
  line-height: 1.2;
  cursor: pointer;
  transition: background var(--dur-fast) var(--ease),
              color var(--dur-fast) var(--ease),
              border-color var(--dur-fast) var(--ease);
}
.legacy #te-main .tab-btn:hover {
  border-color: var(--c-sea-400);
  color: var(--c-navy-900);
}
.legacy #te-main .tab-btn.active,
.legacy #te-main .tab-btn[aria-selected="true"] {
  background: var(--c-gold-500);
  border-color: var(--c-gold-500);
  color: var(--c-navy-950);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}
.legacy #te-main .tab-btn:focus-visible {
  outline: 2px solid var(--c-sea-600);
  outline-offset: 2px;
}
.legacy #te-main .tab-content { display: none; }
.legacy #te-main .tab-content.active { display: block; }
.legacy #te-main .tab-content:not(.active) { display: none; }
html:not(.js-tabs) .legacy #te-main .tab-content { display: block; }
.legacy #te-main .package-options > .route-switch {
  grid-column: 1 / -1;
}
.legacy #te-main .tab-content.active:has(> .package-card) {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 290px), 1fr));
  gap: var(--sp-4);
  margin-block: var(--sp-5);
  justify-content: center;
}
html:not(.js-tabs) .legacy #te-main .tab-content:has(> .package-card) {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 290px), 1fr));
  gap: var(--sp-4);
  margin-block: var(--sp-5);
}
@media (max-width: 560px) {
  .legacy #te-main .tabs { gap: var(--sp-1); }
  .legacy #te-main .tab-btn {
    flex: 1 1 auto;
    padding-inline: var(--sp-3);
    font-size: var(--fs-sm);
  }
}
.pricing-cards:has(> :only-child),
.package-options:has(> :only-child),
.tickets-grid:has(> :only-child),
.ticket-options:has(> :only-child) {
  grid-template-columns: minmax(0, 360px);
  justify-content: center;
}
@media (min-width: 1080px) {
  .legacy #te-main .attr-split__main .pricing-cards:has(> :only-child) {
    grid-template-columns: minmax(0, 360px);
    justify-content: center;
  }
}
@media (min-width: 1080px) {
  .attr-split__side {
    max-block-size: calc(100dvh - var(--header-h, 66px) - var(--sp-6));
    overflow-y: auto;
    overscroll-behavior: contain;
    padding-block: 2px calc(var(--sp-6) + 24px);
    padding-inline: var(--sp-2);
    scrollbar-gutter: stable;
  }
}
.legacy #te-main :is(.pricing-cards, .package-options, .package-cards,
                     .tickets-grid, .ticket-options):has(> :only-child) {
  grid-template-columns: minmax(0, 360px);
  justify-content: center;
}
.boat-lede {
  margin: 0 0 var(--sp-3);
  color: var(--text-muted);
  font-size: var(--fs-sm);
  line-height: 1.5;
  text-align: center;
  max-inline-size: 58ch;
  margin-inline: auto;
}
.boat-note {
  margin: var(--sp-2) 0 0;
  padding-block-start: var(--sp-2);
  border-block-start: 1px solid color-mix(in srgb, currentColor 12%, transparent);
  display: grid;
  gap: 2px;
  font-size: var(--fs-3xs);
  line-height: 1.45;
  text-align: start;
}
.boat-note__good {
  color: var(--text);
  font-weight: 500;
}
.boat-note__good::before {
  content: "✓ ";
  color: var(--gold, #d4a94a);
}
.boat-note__note {
  color: var(--text-muted);
}
.boat-note__note::before {
  content: "· ";
}
.price-card--pick .boat-note__good,
.booking__inner .boat-note__good { color: inherit; }
:root {
  --te-card-w: 320px;
  --te-card-media: 62%;
}
.legacy #te-main :is(.pricing-cards, .package-options, .package-cards,
                     .pricing-grid, .tickets-grid, .ticket-options, .routes-grid) {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--te-card-w)), var(--te-card-w)));
  justify-content: center;
  gap: var(--sp-3);
  align-items: stretch;
  padding: 0;
  margin-inline: auto;
  list-style: none;
}
.legacy #te-main :is(.pricing-cards, .package-options, .package-cards,
                     .pricing-grid, .tickets-grid, .ticket-options,
                     .routes-grid):has(> :only-child) {
  grid-template-columns: minmax(0, 360px);
}
.legacy #te-main :is(.price-card, .package-card, .pricing-card,
                     .ticket-card, .route-card) {
  display: grid;
  grid-template-rows: auto 1fr auto;
  grid-template-columns: minmax(0, 1fr);
  inline-size: 100%;
  min-inline-size: 0;
  box-sizing: border-box;
  background: var(--surface, #fff);
  border: 1px solid var(--line, #e6e1d8);
  border-radius: var(--r-lg, 14px);
  overflow: hidden;
  text-align: start;
  font: inherit;
  color: inherit;
  padding: 0;
  cursor: pointer;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.legacy #te-main :is(.price-card, .package-card, .pricing-card,
                     .ticket-card, .route-card):hover {
  transform: translateY(-2px);
  border-color: var(--gold, #d4a94a);
  box-shadow: 0 10px 24px -14px rgba(0, 0, 0, .35);
}
.legacy #te-main :is(.price-card, .package-card, .pricing-card,
                     .ticket-card, .route-card) > img,
.legacy #te-main :is(.price-card, .package-card, .pricing-card,
                     .ticket-card, .route-card) :is(.card-media, .ticket-media, [class$="__media"]) {
  display: block;
  inline-size: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  background: var(--surface-2, #f2efe9);
}
.legacy #te-main :is(.price-card, .package-card, .pricing-card,
                     .ticket-card, .route-card) > :is(div, p, span, h3, h4):not([class$="__media"]) {
  padding-inline: var(--sp-3);
}
.legacy #te-main :is(.price-card, .package-card, .pricing-card,
                     .ticket-card, .route-card) :is([class$="-type"], [class$="-name"],
                     [class$="-title"], [class$="-header"], .price-type, .package-type, h3, h4) {
  margin: var(--sp-3) 0 var(--sp-1);
  font-size: var(--fs-sm);
  font-weight: 600;
  line-height: 1.35;
  text-align: center;
}
.legacy #te-main :is(.price-card, .package-card, .pricing-card,
                     .ticket-card, .route-card) :is(.price, .card-price, [class$="__price"], .ticket-price) {
  padding-block: var(--sp-2) var(--sp-3);
  text-align: center;
}
.legacy #te-main :is(.price-card, .package-card, .pricing-card,
                     .ticket-card, .route-card) :is(.price, .card-price, [class$="__price"], .ticket-price) {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: center;
  gap: var(--sp-1);
}
.legacy #te-main :is(.price-card, .package-card, .pricing-card,
                     .ticket-card, .route-card) :is(del, s, .price-was, .ticket-original, .package-was) {
  order: -1;
  opacity: .55;
  font-size: .85em;
}
@media (max-width: 900px) {
  .booking__inner .booking__input,
  .booking__input {
    font-size: max(16px, var(--fs-sm));
    min-block-size: 44px;
    padding-block: var(--sp-2);
  }
  .booking__inner .booking__field {
    align-items: center;
    min-block-size: 48px;
  }
  .booking__inner select.booking__input,
  .booking__inner input.booking__input {
    inline-size: 100%;
  }
  .booking__inner .booking__send,
  .booking__send {
    min-block-size: 52px;
    font-size: max(16px, var(--fs-base));
  }
}
.legacy #te-main .boat-table {
  margin-block: var(--s-6, 1.5rem);
}
.legacy #te-main .boat-table > h3 {
  margin-block-end: var(--s-3, .75rem);
  font-size: 1.05rem;
}
.legacy #te-main .boat-table__grid {
  display: block;
  overflow-x: auto;
  white-space: nowrap;
  -webkit-overflow-scrolling: touch;
}
.legacy #te-main .boat-table__grid th[scope="row"] {
  white-space: normal;
  min-inline-size: 11ch;
  font-weight: 600;
}
.legacy #te-main .boat-table__grid td:nth-last-child(3) {
  white-space: normal;
  max-inline-size: 26ch;
}
.legacy #te-main .boat-table__note {
  margin-block-start: var(--s-2, .5rem);
  font-size: .8rem;
  opacity: .7;
}
.legacy #te-main .boat-table__grid {
  inline-size: 100%;
  border-collapse: collapse;
  font-size: .9rem;
}
.legacy #te-main .boat-table__grid th,
.legacy #te-main .boat-table__grid td {
  padding: var(--s-2, .5rem) var(--s-3, .75rem);
  border-block-end: 1px solid var(--c-line, rgba(7, 39, 66, .12));
  text-align: start;
}
.legacy #te-main .boat-table__grid thead th {
  font-weight: 700;
  background: var(--c-surface-2, rgba(7, 39, 66, .04));
  white-space: nowrap;
}
.legacy #te-main .boat-table__grid tbody tr:last-child th,
.legacy #te-main .boat-table__grid tbody tr:last-child td {
  border-block-end: 0;
}
.legacy #te-main .boat-table__grid thead th {
  background: var(--c-navy-900, #072742);
  color: #fff;
  border-block-end: 3px solid var(--c-gold-500, #f0a81a);
}
.legacy #te-main .boat-table__grid tbody tr:nth-child(even) {
  background: var(--c-navy-900, #072742);
  background: color-mix(in srgb, var(--c-navy-900, #072742) 4%, transparent);
}
.legacy #te-main .boat-table__grid tbody th[scope="row"] {
  background: color-mix(in srgb, var(--c-navy-900, #072742) 8%, transparent);
  color: var(--c-navy-900, #072742);
}
.legacy #te-main .boat-table__grid td:not(:empty) mark,
.legacy #te-main .boat-table__grid .boat-table__route {
  display: inline-block;
  padding: .1em .5em;
  border-radius: .35em;
  background: color-mix(in srgb, var(--c-gold-500, #f0a81a) 22%, transparent);
  color: var(--c-navy-900, #072742);
  font-weight: 600;
}
.legacy #te-main .boat-table__grid tbody tr[data-row-for][aria-current="true"] {
  outline: 2px solid var(--c-gold-500, #f0a81a);
  outline-offset: -2px;
}
.legacy #te-main .option-details {
  margin-block: var(--s-4, 1rem);
  padding: var(--s-4, 1rem);
  border-radius: var(--r-3, .75rem);
  background: color-mix(in srgb, var(--c-navy-900, #072742) 5%, transparent);
  border-inline-start: 4px solid var(--c-gold-500, #f0a81a);
}
.legacy #te-main .option-details__lead {
  margin-block-end: var(--s-3, .75rem);
  font-size: .9rem;
}
.legacy #te-main .option-detail__title {
  margin-block-end: var(--s-2, .5rem);
  font-size: 1rem;
  color: var(--c-navy-900, #072742);
}
.legacy #te-main .option-detail__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: var(--s-2, .5rem);
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
}
.legacy #te-main .option-detail__list li {
  margin: 0;
  padding-inline-start: 0;
}
.legacy #te-main .option-detail__list i {
  color: var(--c-gold-600, #d08c0d);
  margin-inline-end: .35em;
}
.legacy #te-main [data-ticket-detail][hidden] { display: none; }
.legacy #te-main .schedule-note {
  margin-block-end: var(--s-4, 1rem);
  padding: var(--s-3, .75rem) var(--s-4, 1rem);
  border-inline-start: 4px solid var(--c-gold-500, #f0a81a);
  border-radius: var(--r-2, .5rem);
  background: color-mix(in srgb, var(--c-gold-500, #f0a81a) 10%, transparent);
  font-size: .9rem;
}
.legacy #te-main .schedule-grid--live {
  display: grid;
  grid-template-columns: max-content 1fr;
  gap: 0;
  position: relative;
  padding-inline-start: 0;
}
.legacy #te-main .schedule-grid--live > * {
  position: relative;
  padding-block: var(--s-3, .75rem);
  border-block-end: 1px solid color-mix(in srgb, var(--c-navy-900, #072742) 8%, transparent);
}
.legacy #te-main .schedule-grid--live > *:nth-last-child(-n+2) {
  border-block-end: 0;
}
.legacy #te-main .schedule-grid--live > .schedule-time {
  padding-inline-end: var(--s-5, 1.25rem);
  padding-inline-start: var(--s-5, 1.25rem);
  min-inline-size: 7.5em;
  color: var(--c-navy-900, #072742);
  font-variant-numeric: tabular-nums;
}
.legacy #te-main .schedule-grid--live > .schedule-time::before {
  content: "";
  position: absolute;
  inset-inline-start: .3em;
  inset-block: 0;
  inline-size: 2px;
  background: color-mix(in srgb, var(--c-navy-900, #072742) 14%, transparent);
}
.legacy #te-main .schedule-grid--live > .schedule-time::after {
  content: "";
  position: absolute;
  inset-inline-start: 0;
  inset-block-start: calc(var(--s-3, .75rem) + .35em);
  inline-size: .85em;
  block-size: .85em;
  border-radius: 50%;
  background: var(--c-gold-500, #f0a81a);
  box-shadow: 0 0 0 3px var(--c-bg, #fff);
}
.legacy #te-main .schedule-grid--live > .schedule-time:first-child::before { inset-block-start: calc(var(--s-3, .75rem) + .35em); }
.legacy #te-main .schedule-grid--live > .schedule-time:nth-last-child(2)::before { inset-block-end: calc(100% - var(--s-3, .75rem) - 1.2em); }
.legacy #te-main .schedule-grid--live [data-pickup-for] {
  display: inline-block;
  padding: .05em .45em;
  border-radius: .3em;
  background: color-mix(in srgb, var(--c-gold-500, #f0a81a) 24%, transparent);
}
.legacy #te-main .schedule-grid--live .schedule-extra {
  color: color-mix(in srgb, var(--c-navy-900, #072742) 65%, transparent);
  font-size: .92em;
}
.legacy #te-main [data-pickup-for][hidden] { display: none; }
@media (max-width: 560px) {
  .legacy #te-main .schedule-grid--live { grid-template-columns: 1fr; }
  .legacy #te-main .schedule-grid--live > .schedule-time { padding-block-end: 0; border-block-end: 0; }
}
.legacy #te-main :is(.pricing-cards, .package-options, .package-cards,
                     .pricing-grid, .tickets-grid, .ticket-options,
                     .routes-grid):has(> .route-switch:only-child) {
  grid-template-columns: 1fr;
  justify-content: stretch;
}
.legacy #te-main .route-switch { grid-column: 1 / -1; width: 100%; }
.price-tabs { display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; margin: 0 0 1.8rem; }
.price-tabs[hidden] { display: none; }
.price-tab {
  padding: .7rem 1.3rem; background: #fff; border: 2px solid var(--border);
  border-radius: 50px; font: inherit; font-size: 1rem; font-weight: 600;
  color: var(--text-strong); cursor: pointer; transition: all .25s ease; max-width: 100%;
}
.price-tab:hover, .price-tab.active {
  background: var(--gradient-primary, linear-gradient(135deg, var(--c-sea-600), var(--c-navy-900)));
  border-color: transparent; color: #fff;
}
.price-tab:focus-visible { outline: 3px solid var(--accent-warm); outline-offset: 2px; }
.package-panel { display: contents; }
.package-panel[hidden] { display: none; }
.has-price-tabs .package-group-title { display: none; }
@media (max-width: 600px) {
  .price-tabs { gap: .5rem; }
  .price-tab { padding: .55rem 1rem; font-size: .92rem; }
}
:where(.legacy .tiger-sizes, .legacy .skill-levels, .legacy .related-attractions) {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
  gap: var(--sp-4);
  align-items: stretch;
  margin-block: var(--sp-5);
}
:where(.legacy .highlight-list) {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr));
  gap: var(--sp-3);
  margin-block: var(--sp-4);
}
:where(.legacy .highlight-item) {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
}
:where(.legacy .highlight-icon) {
  color: var(--accent);
  font-size: var(--fs-lg);
}
:where(.legacy .skill-header, .legacy .menu-header, .legacy .package-header) {
  padding: var(--sp-3) var(--sp-4);
  background: var(--c-sea-050);
  border-block-end: 1px solid var(--border);
  font-family: var(--font-display);
  font-weight: var(--fw-bold);
  color: var(--text-strong);
}
:where(.legacy .skill-header h3, .legacy .menu-header h3) {
  margin: 0;
}
:where(.legacy .card-header) {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-2) var(--sp-3);
  margin-block-end: var(--sp-3);
}
:where(.legacy .tiger-age) {
  font-size: var(--fs-xs);
  color: var(--text-muted);
}
:where(.legacy .menu-item) {
  padding-block: var(--sp-3);
  border-block-end: 1px dashed var(--border);
}
:where(.legacy .menu-item:first-child) { padding-block-start: 0; }
:where(.legacy .menu-item:last-child) { padding-block-end: 0; border-block-end: 0; }
:where(.legacy .package-details ul) {
  list-style: none;
}
:where(.legacy .package-details li) {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
}
:where(.legacy .package-details li i) {
  color: var(--accent);
}
:where(.legacy .gallery-overlay) {
  display: block;
  padding: var(--sp-2) var(--sp-3);
  font-size: var(--fs-xs);
  color: var(--text-muted);
  background: var(--bg-card);
}
:where(.legacy .gcard) {
  overflow: hidden;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
}
:where(.legacy .gcard img) {
  display: block;
  inline-size: 100%;
  block-size: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
:where(.legacy .gcap) {
  padding: var(--sp-2) var(--sp-3);
  font-size: var(--fs-xs);
  color: var(--text-muted);
}
:where(.legacy .zone-number, .legacy .step-num, .legacy .timeline-number, .legacy .timeline-dot) {
  display: inline-grid;
  place-items: center;
  flex: none;
  inline-size: 2rem;
  block-size: 2rem;
  margin-inline-end: var(--sp-2);
  border-radius: 50%;
  background: var(--c-navy-800);
  color: var(--c-white);
  font-family: var(--font-display);
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
  line-height: 1;
}
:where(.legacy .timeline-number, .legacy .timeline-dot) {
  inline-size: 2.75rem;
  block-size: 2.75rem;
  margin-inline-end: 0;
  font-size: var(--fs-md);
}
:where(.legacy .timeline, .legacy .journey-timeline, .legacy .itinerary-timeline, .legacy .itinerary) {
  display: grid;
  gap: var(--sp-4);
  margin-block: var(--sp-5);
}
:where(.legacy .timeline-item, .legacy .itinerary-item) {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--sp-3);
}
@media (min-width: 600px) {
  :where(.legacy .timeline-item, .legacy .itinerary-item) {
    flex-direction: row;
    align-items: flex-start;
  }
}
:where(.legacy .timeline-content, .legacy .itinerary-content) {
  flex: 1 1 auto;
  min-inline-size: 0;
  inline-size: 100%;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  box-shadow: var(--shadow-sm);
}
:where(.legacy .timeline-item > .timeline-content:only-child) {
  border-inline-start: 4px solid var(--c-sea-500);
}
:where(.legacy .itinerary-time) {
  display: flex;
  flex: none;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--sp-1) var(--sp-2);
  padding: var(--sp-2) var(--sp-3);
  background: var(--c-sea-050);
  border: 1px solid var(--c-sea-200);
  border-radius: var(--r-md);
  color: var(--c-sea-600);
  font-family: var(--font-display);
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
  direction: ltr;
  unicode-bidi: isolate;
  white-space: nowrap;
}
@media (min-width: 600px) {
  :where(.legacy .itinerary-time) {
    flex-direction: column;
    inline-size: 5.5rem;
  }
}
:where(.legacy .timeline-time) {
  font-size: var(--fs-sm);
  font-weight: var(--fw-bold);
  color: var(--c-sea-600);
}
:where(.legacy .day-section) {
  display: grid;
  gap: 0;
  margin-block: var(--sp-5);
  overflow: hidden;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  box-shadow: var(--shadow-sm);
}
@media (min-width: 720px) {
  :where(.legacy .day-section) {
    grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
  }
}
:where(.legacy .day-images) {
  display: grid;
  align-content: start;
  gap: var(--sp-2);
  padding: var(--sp-4);
  background: var(--c-surface);
}
:where(.legacy .day-image) {
  display: block;
  inline-size: 100%;
  max-inline-size: 100%;
  block-size: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--r-sm);
}
:where(.legacy .attraction-box) {
  margin-block-end: var(--sp-3);
  padding: var(--sp-3) var(--sp-4);
  background: var(--c-surface);
  border: 1px solid var(--border);
  border-radius: var(--r-sm);
}
:where(.legacy .attraction-box h3) { margin-block-start: 0; }
:where(.legacy .price-value, .legacy .price-highlight, .legacy .price-free) {
  font-weight: var(--fw-bold);
  white-space: nowrap;
}
:where(.legacy .price-value)     { color: var(--c-navy-800); }
:where(.legacy .price-highlight) { color: var(--c-gold-700); }
:where(.legacy .price-free)      { color: var(--c-success); }
:where(.legacy .check, .legacy .cross) { font-size: var(--fs-lg); }
:where(.legacy .check) { color: var(--c-success); }
:where(.legacy .cross) { color: var(--c-danger); }
:where(.legacy .special-promo, .legacy .package-notice) {
  margin-block: var(--sp-5);
  padding: var(--sp-4) var(--sp-5);
  background: var(--c-gold-050);
  border: 1px solid var(--c-gold-200);
  border-inline-start: 4px solid var(--c-gold-500);
  border-radius: var(--r-md);
}
:where(.legacy .special-promo h3, .legacy .package-notice h3) { margin-block-start: 0; }
:where(.legacy .call-to-action) {
  margin-block: var(--sp-6);
  padding: var(--sp-6) var(--sp-4);
  background: var(--c-sea-050);
  border-radius: var(--r-md);
  text-align: center;
}
:where(.legacy .cta-text) {
  max-inline-size: 60ch;
  margin-inline: auto;
}
:where(.legacy .stats-section) {
  margin-block: var(--sp-5);
  padding-block: var(--sp-5);
  background: var(--c-sea-050);
  text-align: center;
}
:where(.legacy .center)  { text-align: center; }
:where(.legacy .lead, .legacy .sub) {
  max-inline-size: var(--w-prose);
  margin-inline: auto;
  color: var(--text-muted);
  font-size: var(--fs-lg);
  text-align: center;
}
:where(.legacy .tagline) {
  margin-block-start: var(--sp-4);
  color: var(--text-muted);
  text-align: center;
}
:where(.legacy .seo-header) {
  margin-block: var(--sp-3);
  color: var(--text-muted);
  font-size: var(--fs-xs);
  text-align: center;
}
:where(.legacy .kicker) {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  color: var(--c-sea-600);
  font-size: var(--fs-sm);
  font-weight: var(--fw-bold);
}
:where(.legacy .hr) {
  block-size: 1px;
  margin-block: var(--sp-4);
  background: var(--border);
}
:where(.legacy .alt) { background: var(--c-surface-raised); }
:where(.legacy .faq .q) {
  font-weight: var(--fw-bold);
  color: var(--text-strong);
}
:where(.legacy .tour-note) {
  margin-block-start: var(--sp-3);
  color: var(--text-muted);
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
}
:where(.legacy .chips, .legacy .package-tags) {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-2);
  margin-block: var(--sp-3);
}
:where(.legacy .trust-bar) {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--sp-2) var(--sp-5);
  margin-block: var(--sp-4);
  padding: var(--sp-3) var(--gutter);
  background: var(--c-sea-050);
  border-block: 1px solid var(--c-sea-200);
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
}
:where(.legacy .trust-bar > span) {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-2);
}
:where(.legacy .trust-bar i, .legacy .include i, .legacy .rules i, .legacy .list i, .legacy .bullets i) {
  color: var(--accent);
}
:where(.legacy .list, .legacy .bullets) {
  display: grid;
  gap: var(--sp-2);
  list-style: none;
}
:where(.legacy .list > li, .legacy .bullets > li) {
  display: flex;
  align-items: flex-start;
  gap: var(--sp-2);
  margin: 0;
}
:where(.legacy .include, .legacy .rules) {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  margin-block-start: var(--sp-2);
  color: var(--text-muted);
}
:where(.legacy .card.block, .legacy .card.tour, .legacy .card.notice) {
  gap: var(--sp-2);
  padding: var(--sp-4) var(--sp-5);
}
:where(.legacy .tour-top) {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--sp-3);
}
:where(.legacy .tour-cta) {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-3);
  margin-block-start: var(--sp-3);
}
:where(.legacy .rel) { position: relative; }
:where(.legacy .flag) {
  position: absolute;
  inset-block-start: var(--sp-3);
  inset-inline-end: var(--sp-3);
  z-index: 1;
  padding: var(--sp-1) var(--sp-3);
  background: var(--c-gold-500);
  border-radius: var(--r-full);
  color: var(--c-navy-950);
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
}
:where(.legacy .book) {
  display: block;
  margin-block-start: var(--sp-3);
  padding: var(--sp-3) var(--sp-4);
  border: 2px solid var(--c-sea-600);
  border-radius: var(--r-md);
  font-weight: var(--fw-bold);
  text-align: center;
  text-decoration: none;
}
:where(.legacy .sticky .inner) {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-3);
}
:where(.legacy .sticky .title) { font-weight: var(--fw-bold); }
:where(.legacy .tab-container > .tabs) {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-2);
  margin-block-end: var(--sp-3);
}
:where(.legacy .tab) {
  display: inline-flex;
  align-items: center;
  padding: var(--sp-2) var(--sp-4);
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--r-full);
  color: var(--text-muted);
  font-family: var(--font-display);
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
  cursor: pointer;
}
:where(.legacy .tab.active) {
  background: var(--c-navy-900);
  border-color: var(--c-navy-900);
  color: var(--c-white);
}
:where(.legacy .route-details) {
  display: grid;
  gap: var(--sp-2);
  margin-block: var(--sp-4);
}
:where(.legacy .route-detail-item) {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
}
:where(.legacy .route-detail-icon) {
  color: var(--accent);
  font-size: var(--fs-lg);
}
:where(.legacy .seating-plan, .legacy .route-map) {
  margin-block: var(--sp-5);
  overflow: hidden;
  border-radius: var(--r-md);
  box-shadow: var(--shadow-md);
  text-align: center;
}
:where(.legacy .seating-plan img, .legacy .route-map img) {
  display: block;
  inline-size: 100%;
  max-inline-size: 100%;
  block-size: auto;
  margin-inline: auto;
}
:where(.legacy .table-wrap) {
  max-inline-size: 100%;
  margin-block: var(--sp-4);
  overflow-x: auto;
}
:where(.legacy .two-col-section) {
  display: grid;
  gap: var(--sp-5);
  align-items: center;
  margin-block: var(--sp-6);
}
@media (min-width: 720px) {
  :where(.legacy .two-col-section) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--sp-7);
  }
}
:where(.legacy .highlight) {
  margin-block: var(--sp-5);
  padding: var(--sp-5);
  background: var(--c-sea-050);
  border-radius: var(--r-md);
}
:where(.legacy .testimonials-slider) {
  display: grid;
  gap: var(--sp-4);
  margin-block: var(--sp-5);
}
:where(.legacy .testimonial) {
  padding: var(--sp-5);
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
}
:where(.legacy .testimonial-author) {
  font-weight: var(--fw-bold);
  color: var(--text-strong);
}
:where(.legacy .banner) {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr));
  gap: var(--sp-3);
  margin-block: var(--sp-5);
  padding: var(--sp-4);
  background: var(--c-sea-050);
  border: 1px solid var(--c-sea-200);
  border-radius: var(--r-md);
}
:where(.legacy .banner-item) {
  display: grid;
  justify-items: center;
  align-content: center;
  gap: var(--sp-1);
  text-align: center;
}
:where(.legacy .banner-icon) {
  font-size: var(--fs-2xl);
  line-height: 1;
}
:where(.legacy .banner-text) {
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
}
:where(.legacy .cta-buttons) {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--sp-3);
  margin-block-start: var(--sp-4);
}
:where(.legacy .badges) {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-2);
  margin-block: var(--sp-3);
}
:where(.legacy .pricing-amount) {
  display: flex;
  align-items: baseline;
  gap: var(--sp-1);
  font-family: var(--font-display);
  font-size: var(--fs-3xl);
  font-weight: var(--fw-black);
  color: var(--text-strong);
  direction: ltr;
  unicode-bidi: isolate;
}
:where(.legacy .pricing-currency) {
  font-size: var(--fs-lg);
  font-weight: var(--fw-semibold);
  color: var(--text-muted);
}
:where(.legacy .muted) { color: var(--text-muted); }
:where(.legacy .small) {
  font-size: var(--fs-xs);
  color: var(--text-muted);
}
/* hotels.css */
.hotel-hub__hero {
  position: relative;
  isolation: isolate;
  margin-block-end: var(--section-y);
  background: var(--c-navy-900);
  overflow: hidden;
}
.hotel-hub__herofig {
  position: absolute;
  inset: 0;
  z-index: -2;
}
.hotel-hub__herofig img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hotel-hub__hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(to top, var(--c-navy-950) 8%, transparent 78%);
  background: linear-gradient(
    to top,
    var(--c-navy-950) 4%,
    color-mix(in srgb, var(--c-navy-950) 74%, transparent) 38%,
    color-mix(in srgb, var(--c-navy-950) 22%, transparent) 78%,
    transparent 100%
  );
}
.hotel-hub__introwrap {
  position: relative;
  padding-block: var(--sp-10) var(--sp-6);
  color: var(--text-on-dark);
}
.hotel-hub__hero h1 {
  color: var(--text-on-dark);
  font-family: var(--font-display);
  font-size: var(--fs-4xl);
  font-weight: var(--fw-bold);
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-tight);
  margin: 0 0 var(--sp-3);
}
.hotel-hub__lede {
  max-width: var(--w-prose);
  margin: 0;
  font-size: var(--fs-lg);
  line-height: var(--lh-relaxed);
  color: var(--c-sea-050);
}
.hotel-hub__stats {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-5);
  margin: var(--sp-6) 0 0;
  padding: 0;
}
.hotel-hub__stats div {
  display: flex;
  flex-direction: column;
  gap: var(--sp-1);
}
.hotel-hub__stats dt {
  order: 2;
  font-size: var(--fs-3xs);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-wide);
  color: var(--c-sea-200);
}
.hotel-hub__stats dd {
  order: 1;
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--fs-2xl);
  font-weight: var(--fw-bold);
  line-height: 1;
  color: var(--c-gold-500);
}
.hotel-filter {
  position: sticky;
  top: var(--header-h, 66px);
  z-index: var(--z-sticky);
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
  padding: var(--sp-4);
  margin-block-end: var(--sp-4);
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  box-shadow: var(--shadow-md);
}
.hotel-filter__search {
  display: flex;
  gap: var(--sp-2);
  align-items: center;
}
.hotel-filter__q {
  flex: 1 1 auto;
  min-width: 0;
  padding: var(--sp-3) var(--sp-4);
  font-family: var(--font-body);
  font-size: var(--fs-md);
  color: var(--text-strong);
  background: var(--bg-page);
  border: 1px solid var(--border);
  border-radius: var(--r-full);
  transition: border-color var(--dur-fast) var(--ease);
}
.hotel-filter__q::placeholder {
  color: var(--text-muted);
}
.hotel-filter__q:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
  border-color: var(--accent);
}
.hotel-filter__reset {
  flex: 0 0 auto;
  padding: var(--sp-2) var(--sp-4);
  font-family: var(--font-body);
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
  color: var(--text-body);
  background: transparent;
  border: 1px solid var(--border);
  border-radius: var(--r-full);
  cursor: pointer;
}
.hotel-filter__reset:hover {
  color: var(--text-strong);
  border-color: var(--text-muted);
}
.hotel-filter__row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-2);
}
.hotel-filter__chip {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 7px var(--sp-3);
  font-family: var(--font-body);
  font-size: var(--fs-2xs);
  font-weight: var(--fw-medium);
  color: var(--text-body);
  background: var(--c-white);
  border: 1px solid var(--border);
  border-radius: var(--r-full);
  cursor: pointer;
  transition: background var(--dur-fast) var(--ease),
              color var(--dur-fast) var(--ease),
              border-color var(--dur-fast) var(--ease),
              box-shadow var(--dur-fast) var(--ease);
}
.hotel-filter__chip:hover {
  border-color: var(--c-sea-400);
  color: var(--text-strong);
  box-shadow: 0 1px 4px rgb(7 39 66 / 0.07);
}
.hotel-filter__chip:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.hotel-filter__chip[aria-pressed="true"] {
  color: var(--text-on-dark);
  background: var(--c-navy-800);
  border-color: var(--c-navy-800);
}
.hotel-filter__n {
  font-size: var(--fs-3xs);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-wide);
  color: var(--text-muted);
}
.hotel-filter__chip[aria-pressed="true"] .hotel-filter__n {
  color: var(--c-sea-200);
}
.hotel-filter__row--stars .hotel-filter__chip span:first-child {
  color: var(--c-gold-600);
  letter-spacing: 0.08em;
}
.hotel-filter__chip[aria-pressed="true"] span:first-child {
  color: inherit;
}
.hotel-hub__count {
  margin: 0 0 var(--sp-5);
  font-size: var(--fs-xs);
  color: var(--text-muted);
}
.hotel-hub__group {
  margin-block-end: var(--sp-8);
}
.hotel-hub__group[hidden] {
  display: none;
}
.hotel-hub__grouphead {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  margin: 0 0 var(--sp-4);
  font-family: var(--font-display);
  font-size: var(--fs-2xl);
  font-weight: var(--fw-bold);
  color: var(--text-strong);
}
.hotel-hub__n {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.9em;
  padding: 0.15em 0.5em;
  font-family: var(--font-body);
  font-size: var(--fs-2xs);
  font-weight: var(--fw-semibold);
  color: var(--c-sea-600);
  background: var(--c-sea-050);
  border-radius: var(--r-full);
}
.hotel-hub__empty {
  padding: var(--sp-7) var(--sp-5);
  text-align: center;
  font-size: var(--fs-sm);
  line-height: var(--lh-relaxed);
  color: var(--text-body);
  background: var(--bg-card);
  border: 1px dashed var(--border);
  border-radius: var(--r-md);
}
.hotel-hub__empty a {
  color: var(--accent);
  font-weight: var(--fw-semibold);
}
.tour-card__where {
  font-size: var(--fs-3xs);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-wide);
  color: var(--text-muted);
}
@media (min-width: 700px) {
  .hotel-filter {
    padding: var(--sp-5);
  }
  .hotel-hub__introwrap {
    padding-block: var(--sp-11) var(--sp-8);
  }
  .hotel-hub__stats {
    gap: var(--sp-8);
  }
}
@media (max-width: 699px) {
  .hotel-filter__row {
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
    padding-block-end: var(--sp-1);
    scroll-snap-type: x proximity;
  }
  .hotel-filter__row::-webkit-scrollbar {
    display: none;
  }
  .hotel-filter__chip {
    flex: 0 0 auto;
    scroll-snap-align: start;
  }
  .hotel-hub__stats dd {
    font-size: var(--fs-xl);
  }
}
.hotel-rooms__lede {
  margin: 0 0 var(--sp-5);
  font-size: var(--fs-sm);
  line-height: var(--lh-relaxed);
  color: var(--text-body);
}
.hotel-page__roomtypes {
  max-width: none;
}
@media (min-width: 900px) {
  .hotel-layout { container-type: inline-size; }
  .hotel-page__roomtypes {
    width: calc(100cqw - 352px - var(--sp-8));
  }
}
.hotel-rooms {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--sp-4);
  grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr));
}
.hotel-rooms__item {
  padding: var(--sp-3);
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
}
.hotel-rooms__item--shot {
  padding: 0;
  overflow: hidden;
}
.hotel-rooms__item--shot .hotel-rooms__text {
  padding: var(--sp-3);
}
.rgal__main {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 3 / 2;
  background: var(--c-surface);
  overflow: hidden;
  padding: 0;
  border: 0;
  cursor: zoom-in;
}
.rgal__count {
  position: absolute;
  inset-block-end: var(--sp-2);
  inset-inline-end: var(--sp-2);
  padding: 0.25em 0.6em;
  border-radius: var(--r-full);
  background: rgb(4 24 46 / 0.62);
  backdrop-filter: blur(6px);
  color: #fff;
  font-size: var(--fs-xs);
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.02em;
  line-height: 1.4;
  pointer-events: none;
  direction: ltr;
  unicode-bidi: isolate;
}
.rgal__count b { font-weight: 600; }
.rgal__zoom {
  position: absolute;
  inset-block-end: var(--sp-2);
  inset-inline-end: var(--sp-2);
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border-radius: var(--r-full);
  background: rgb(4 24 46 / 0.55);
  backdrop-filter: blur(4px);
  color: #fff;
  font-size: 0.95rem;
  opacity: 0;
  transition: opacity var(--dur-fast) var(--ease);
}
.rgal__main:hover .rgal__zoom,
.rgal__main:focus-visible .rgal__zoom { opacity: 1; }
@media (hover: none) {
  .rgal__zoom { opacity: 1; }
}
.hotel-gal__thumbs,
.rgal__strip {
  scroll-behavior: smooth;
}
.rail {
  position: relative;
}
.rail__btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  appearance: none;
  border: 0;
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: var(--r-full);
  background: rgb(4 24 46 / 0.62);
  backdrop-filter: blur(6px);
  color: #fff;
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 2px 8px rgb(7 39 66 / 0.3);
  transition: background var(--dur-fast) var(--ease);
}
.rail__btn:hover { background: rgb(4 24 46 / 0.85); }
.rail__btn[hidden] { display: none; }
.rail__btn--prev { inset-inline-start: 2px; }
.rail__btn--next { inset-inline-end: 2px; }
.rail[data-more] .hotel-gal__thumbs,
.rail[data-more] .rgal__strip {
  mask-image: linear-gradient(to left,
    transparent 0, #000 26px, #000 calc(100% - 26px), transparent 100%);
}
.rzoom {
  border: 0;
  padding: 0;
  width: min(1100px, calc(100vw - var(--sp-4)));
  max-width: 100%;
  background: var(--c-navy-950);
  color: var(--c-white);
  border-radius: var(--r-lg);
  overflow: hidden;
  box-shadow: var(--shadow-lg);
}
.rzoom::backdrop { background: rgb(0 0 0 / 0.82); }
.rzoom__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-3);
  padding: var(--sp-3) var(--sp-4);
}
.rzoom__bar b {
  font-size: var(--fs-sm);
  font-weight: var(--fw-bold);
  color: var(--c-white);
}
.rzoom__x {
  appearance: none;
  border: 0;
  background: none;
  cursor: pointer;
  font-size: 1.6rem;
  line-height: 1;
  padding: 0 var(--sp-1);
  color: rgb(255 255 255 / 0.7);
}
.rzoom__x:hover { color: #fff; }
.rzoom__stage {
  position: relative;
  aspect-ratio: 16 / 10;
  max-height: 78vh;
  background: #000;
}
.rzoom__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.rzoom__nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  appearance: none;
  border: 0;
  width: 46px;
  height: 46px;
  border-radius: var(--r-full);
  background: rgb(255 255 255 / 0.14);
  backdrop-filter: blur(6px);
  color: #fff;
  font-size: 1.7rem;
  line-height: 1;
  cursor: pointer;
}
.rzoom__nav:hover { background: rgb(255 255 255 / 0.28); }
.rzoom__nav--prev { inset-inline-start: var(--sp-3); }
.rzoom__nav--next { inset-inline-end: var(--sp-3); }
.rzoom__count {
  position: absolute;
  inset-block-end: var(--sp-3);
  inset-inline-end: var(--sp-4);
  padding: 3px 12px;
  border-radius: var(--r-full);
  background: rgb(0 0 0 / 0.55);
  font-size: var(--fs-3xs);
  font-variant-numeric: tabular-nums;
}
.rgal__main img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.rgal__main img[hidden] { display: none; }
.rgal__strip {
  display: flex;
  gap: 4px;
  padding: 4px;
  overflow-x: auto;
  scroll-snap-type: x proximity;
  scrollbar-width: none;
  -ms-overflow-style: none;
  background: var(--bg-card);
}
.rgal__strip::-webkit-scrollbar { display: none; }
.rgal__dot {
  flex: 0 0 auto;
  scroll-snap-align: start;
  appearance: none;
  border: 2px solid transparent;
  border-radius: var(--r-sm);
  padding: 0;
  background: none;
  cursor: pointer;
  overflow: hidden;
  line-height: 0;
  opacity: 0.6;
  transition: opacity var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);
}
.rgal__dot img {
  display: block;
  width: 52px;
  height: 36px;
  object-fit: cover;
}
.rgal__dot:hover,
.rgal__dot:focus-visible { opacity: 1; }
.rgal__dot[aria-current="true"] {
  opacity: 1;
  border-color: var(--accent);
}
.hotel-rooms__name {
  margin: 0 0 var(--sp-2);
  font-family: var(--font-display);
  font-size: var(--fs-md);
  font-weight: var(--fw-bold);
  line-height: var(--lh-snug);
  color: var(--text-strong);
}
.hotel-rooms__name span {
  display: block;
  margin-block-start: var(--sp-1);
  font-family: var(--font-body);
  font-size: var(--fs-xs);
  font-weight: var(--fw-medium);
  color: var(--text-muted);
}
.hotel-rooms__facts {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-1);
  margin: 0 0 var(--sp-2);
  padding: 0;
}
.hotel-rooms__facts li {
  padding: 3px var(--sp-2);
  font-size: var(--fs-3xs);
  font-weight: var(--fw-semibold);
  color: var(--c-navy-800);
  background: var(--c-sea-050);
  border-radius: var(--r-full);
}
.hotel-rooms__note {
  margin: 0;
  font-size: var(--fs-xs);
  line-height: var(--lh-relaxed);
  color: var(--text-body);
}
.hotel-page__pair {
  display: grid;
  gap: var(--sp-5);
  align-items: start;
}
@media (min-width: 56rem) {
  .hotel-page__pair {
    grid-template-columns: 1.55fr 1fr;
    gap: var(--sp-6);
  }
}
.hotel-page__pair > section {
  margin-block: 0;
}
.hotel-place__beach {
  color: var(--accent);
  font-weight: var(--fw-semibold);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.hotel-place__beach:hover { text-decoration-thickness: 2px; }
.hotel-facts {
  display: grid;
  gap: var(--sp-5);
}
.hotel-facts__block h3 {
  margin: 0 0 var(--sp-3);
  font-family: var(--font-display);
  font-size: var(--fs-md);
  font-weight: var(--fw-semibold);
  color: var(--text-strong);
}
.hotel-facts__block ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--sp-2);
}
.hotel-facts__block li {
  position: relative;
  padding-inline-start: var(--sp-4);
  font-size: var(--fs-sm);
  line-height: var(--lh-relaxed);
  color: var(--text-body);
}
.hotel-facts__block li::before {
  content: "";
  position: absolute;
  inset-inline-start: 0;
  inset-block-start: 0.72em;
  width: var(--sp-3);
  height: 2px;
  background: var(--c-sea-400);
}
.hotel-place {
  display: grid;
  gap: var(--sp-3);
  margin: 0 0 var(--sp-4);
  padding: var(--sp-4);
  background: var(--c-sea-050);
  border-radius: var(--r-md);
}
.hotel-place div {
  display: grid;
  gap: var(--sp-1);
}
.hotel-place dt {
  font-size: var(--fs-3xs);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-wide);
  color: var(--c-sea-600);
}
.hotel-place dd {
  margin: 0;
  font-size: var(--fs-sm);
  line-height: var(--lh-normal);
  color: var(--text-strong);
}
.hotel-place__source {
  margin: 0;
  font-size: var(--fs-2xs);
  line-height: var(--lh-relaxed);
  color: var(--text-muted);
}
@media (min-width: 700px) {
  .hotel-facts__block ul {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--sp-2) var(--sp-5);
  }
  .hotel-place {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--sp-4) var(--sp-5);
  }
}
.hotel-hero {
  position: relative;
  isolation: isolate;
  margin-block-end: var(--section-y);
  background: var(--c-navy-900);
  overflow: hidden;
}
.hotel-hero__media {
  position: absolute;
  inset: 0;
  z-index: -2;
}
.hotel-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hotel-hero--borrowed .hotel-hero__media img {
  filter: saturate(0.72);
}
.hotel-hero__media--none {
  background: linear-gradient(140deg, var(--c-navy-900), var(--c-sea-600));
}
.hotel-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(to top, var(--c-navy-950) 12%, transparent 82%);
  background: linear-gradient(
    to top,
    var(--c-navy-950) 6%,
    color-mix(in srgb, var(--c-navy-950) 82%, transparent) 42%,
    color-mix(in srgb, var(--c-navy-950) 28%, transparent) 80%,
    transparent 100%
  );
}
.hotel-hero__inner {
  position: relative;
  padding-block: var(--sp-10) var(--sp-6);
  color: var(--text-on-dark);
}
.hotel-hero__cat {
  display: inline-block;
  margin-block-end: var(--sp-3);
  padding: var(--sp-1) var(--sp-3);
  font-size: var(--fs-3xs);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-wide);
  color: var(--c-navy-950);
  background: var(--c-gold-500);
  border-radius: var(--r-full);
}
.hotel-hero h1 {
  margin: 0 0 var(--sp-3);
  color: var(--text-on-dark);
  font-family: var(--font-display);
  font-size: var(--fs-4xl);
  font-weight: var(--fw-bold);
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-tight);
}
.hotel-hero__where {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--sp-3);
  margin: 0;
  font-size: var(--fs-sm);
  color: var(--c-sea-050);
}
.hotel-rate {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-2);
  padding: var(--sp-1) var(--sp-3);
  background: color-mix(in srgb, var(--c-white) 14%, transparent);
  border: 1px solid color-mix(in srgb, var(--c-white) 26%, transparent);
  border-radius: var(--r-full);
}
.hotel-rate__stars {
  color: var(--c-gold-500);
  letter-spacing: 0.06em;
}
.hotel-rate__text {
  font-size: var(--fs-3xs);
  font-weight: var(--fw-semibold);
  color: var(--c-white);
}
.hotel-hero__dest {
  font-weight: var(--fw-medium);
}
.hotel-hero__quick {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-5);
  margin: var(--sp-5) 0 0;
  padding: 0;
}
.hotel-hero__quick li {
  display: flex;
  flex-direction: column;
  gap: var(--sp-1);
}
.hotel-hero__quick b {
  font-family: var(--font-display);
  font-size: var(--fs-xl);
  font-weight: var(--fw-bold);
  line-height: 1;
  color: var(--c-gold-500);
}
.hotel-hero__quick span {
  font-size: var(--fs-3xs);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-wide);
  color: var(--c-sea-200);
}
.hotel-hero__note {
  margin: var(--sp-4) 0 0;
  font-size: var(--fs-2xs);
  color: var(--c-sea-200);
}
.hotel-layout {
  display: grid;
  gap: var(--sp-7);
  align-items: start;
}
.hotel-page__body {
  min-width: 0;
  order: 1;
}
.hotel-aside {
  min-width: 0;
  order: 2;
}
@media (min-width: 900px) {
  .hotel-layout {
    grid-template-columns: minmax(0, 1fr) 352px;
    gap: var(--sp-8);
  }
  .hotel-aside {
    position: sticky;
    top: calc(var(--header-h, 66px) + var(--sp-4));
  }
}
.bcard {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-radius: var(--r-lg);
  background: linear-gradient(155deg, var(--c-navy-900), var(--c-navy-950) 62%);
  box-shadow: var(--shadow-lg);
}
.bcard__glow {
  position: absolute;
  inset-block-start: -40%;
  inset-inline-start: -30%;
  width: 90%;
  aspect-ratio: 1;
  z-index: -1;
  border-radius: 50%;
  background: radial-gradient(circle, var(--c-sea-500), transparent 68%);
  opacity: 0.34;
}
.bcard__inner {
  padding: var(--sp-6) var(--sp-5);
  color: var(--text-on-dark);
}
.bcard__eyebrow {
  margin: 0 0 var(--sp-2);
  font-size: var(--fs-3xs);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-wide);
  color: var(--c-sea-200);
}
.bcard__title {
  margin: 0 0 var(--sp-3);
  font-family: var(--font-display);
  font-size: var(--fs-xl);
  font-weight: var(--fw-bold);
  line-height: var(--lh-snug);
  color: var(--c-white);
}
.bcard__lede {
  margin: 0 0 var(--sp-5);
  font-size: var(--fs-xs);
  line-height: var(--lh-relaxed);
  color: var(--c-sea-050);
}
.bcard__form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--sp-3);
  margin-block-end: var(--sp-4);
}
.bcard__field {
  display: flex;
  flex-direction: column;
  gap: var(--sp-1);
  min-width: 0;
}
.bcard__field label {
  font-size: var(--fs-3xs);
  font-weight: var(--fw-semibold);
  color: var(--c-sea-200);
}
.bcard__field input {
  width: 100%;
  min-width: 0;
  padding: var(--sp-2) var(--sp-3);
  font-family: var(--font-body);
  font-size: var(--fs-xs);
  color: var(--c-white);
  background: color-mix(in srgb, var(--c-white) 10%, transparent);
  border: 1px solid color-mix(in srgb, var(--c-white) 22%, transparent);
  border-radius: var(--r-sm);
  color-scheme: dark;
}
.bcard__field input:focus-visible {
  outline: 2px solid var(--c-gold-500);
  outline-offset: 1px;
}
.bcard__send {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp-2);
  padding: var(--sp-3) var(--sp-4);
  font-size: var(--fs-sm);
  font-weight: var(--fw-bold);
  text-decoration: none;
  color: var(--c-navy-950);
  background: var(--c-gold-500);
  border-radius: var(--r-full);
  transition: background var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);
}
.bcard__send:hover {
  background: var(--c-gold-600);
  transform: translateY(-1px);
}
.bcard__send:focus-visible {
  outline: 2px solid var(--c-white);
  outline-offset: 2px;
}
.bcard__preview {
  margin: var(--sp-3) 0 0;
  font-size: var(--fs-3xs);
  line-height: 1.5;
  color: var(--c-sea-200);
}
.bcard__trust {
  list-style: none;
  margin: var(--sp-5) 0 0;
  padding: var(--sp-4) 0 0;
  border-block-start: 1px solid color-mix(in srgb, var(--c-white) 16%, transparent);
  display: grid;
  gap: var(--sp-2);
}
.bcard__trust li {
  position: relative;
  padding-inline-start: var(--sp-4);
  font-size: var(--fs-2xs);
  line-height: var(--lh-relaxed);
  color: var(--c-sea-050);
}
.bcard__trust li::before {
  content: "";
  position: absolute;
  inset-inline-start: 0;
  inset-block-start: 0.7em;
  width: var(--sp-3);
  height: 2px;
  background: var(--c-sea-400);
}
.bcard__or {
  display: flex;
  flex-direction: column;
  gap: var(--sp-1);
  margin-block-start: var(--sp-4);
  padding-block-start: var(--sp-4);
  border-block-start: 1px solid color-mix(in srgb, var(--c-white) 16%, transparent);
}
.bcard__or a {
  font-family: var(--font-display);
  font-size: var(--fs-lg);
  font-weight: var(--fw-bold);
  color: var(--c-white);
  text-decoration: none;
  direction: ltr;
  unicode-bidi: isolate;
  text-align: start;
}
.bcard__or span {
  font-size: var(--fs-3xs);
  color: var(--c-sea-200);
}
.hotel-map {
  margin: 0 0 var(--sp-4);
}
.hotel-map__frame {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  background: var(--c-sea-050);
}
.hotel-map__cap {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--sp-2);
  margin-block-start: var(--sp-2);
  font-size: var(--fs-2xs);
  color: var(--text-muted);
}
.hotel-map__cap a {
  font-weight: var(--fw-semibold);
  color: var(--accent);
}
.tour-grid--compact {
  grid-template-columns: repeat(auto-fill, minmax(168px, 1fr));
  gap: var(--sp-3);
}
.tour-grid--compact .tour-card__media {
  aspect-ratio: 4 / 3;
}
.tour-grid--compact .tour-card__body {
  padding: var(--sp-3);
  gap: var(--sp-1);
}
.tour-grid--compact .tour-card__title {
  font-size: var(--fs-sm);
  line-height: var(--lh-snug);
}
.tour-grid--compact .tour-card__note {
  display: none;
}
.tour-grid--compact .tour-card__type,
.tour-grid--compact .tour-card__foot {
  font-size: var(--fs-3xs);
}
@media (min-width: 700px) {
  .tour-grid--compact {
    grid-template-columns: repeat(auto-fill, minmax(196px, 1fr));
  }
}
.dest-h1 {
  margin: 0 0 var(--sp-4);
  font-family: var(--font-display);
  font-size: var(--fs-3xl);
  font-weight: var(--fw-bold);
  line-height: var(--lh-tight);
  color: var(--text-strong);
  text-align: start;
}
.dhero {
  margin-block: 0 var(--sp-6);
}
.dhero__media {
  position: relative;
  aspect-ratio: 21 / 9;
  max-height: 46vh;
  border-radius: var(--r-lg);
  overflow: hidden;
  background: var(--c-navy-800);
  box-shadow:
    0 1px 2px rgb(7 39 66 / 0.08),
    0 18px 40px -20px rgb(7 39 66 / 0.5);
}
.dhero__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.dhero__scrim {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg,
    rgb(4 24 46 / 0.10) 0%,
    rgb(4 24 46 / 0.20) 42%,
    rgb(4 24 46 / 0.86) 100%);
}
.dhero__cap {
  position: absolute;
  inset-inline: 0;
  inset-block-end: 0;
  padding: var(--sp-5);
  color: var(--c-white);
}
.dhero__eyebrow {
  margin: 0 0 var(--sp-1);
  font-size: var(--fs-3xs);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-wide);
  color: var(--c-gold-500);
  text-transform: none;
}
.dhero__title {
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--fs-2xl);
  font-weight: var(--fw-bold);
  line-height: var(--lh-tight);
  color: var(--c-white);
  text-shadow: 0 1px 14px rgb(4 24 46 / 0.55);
}
.dhero__sub {
  margin: var(--sp-2) 0 0;
  font-size: var(--fs-sm);
  color: rgb(255 255 255 / 0.9);
  max-width: 44ch;
}
.dhero__credit {
  margin: var(--sp-2) 0 0;
  font-size: var(--fs-3xs);
  color: var(--text-muted);
}
.dtabs {
  margin-block: var(--sp-6);
}
.dtabs__bar {
  display: flex;
  gap: var(--sp-2);
  overflow-x: auto;
  scrollbar-width: none;
  padding-block-end: var(--sp-2);
  border-block-end: 1px solid var(--border);
  margin-block-end: var(--sp-5);
}
.dtabs__bar::-webkit-scrollbar { display: none; }
.dtabs__tab {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  appearance: none;
  padding: 9px var(--sp-4);
  font: inherit;
  font-size: var(--fs-2xs);
  font-weight: var(--fw-semibold);
  color: var(--text-body);
  background: var(--c-white);
  border: 1px solid var(--border);
  border-radius: var(--r-full);
  cursor: pointer;
  white-space: nowrap;
  transition: background var(--dur-fast) var(--ease),
              color var(--dur-fast) var(--ease),
              border-color var(--dur-fast) var(--ease);
}
.dtabs__tab:hover { border-color: var(--c-sea-400); }
.dtabs__tab[aria-selected="true"] {
  background: var(--c-navy-800);
  border-color: var(--c-navy-800);
  color: var(--text-on-dark);
}
.dtabs__n {
  font-size: var(--fs-3xs);
  font-weight: var(--fw-semibold);
  color: var(--text-muted);
}
.dtabs__tab[aria-selected="true"] .dtabs__n { color: var(--c-sea-200); }
.dtabs__panel[hidden] { display: none; }
.dgrid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--sp-3);
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
}
.dcard a {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: border-color var(--dur-fast) var(--ease),
              box-shadow var(--dur-fast) var(--ease),
              transform var(--dur-fast) var(--ease);
}
.dcard a:hover {
  border-color: var(--c-sea-400);
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}
.dcard__media {
  display: block;
  aspect-ratio: 3 / 2;
  background: var(--c-surface);
}
.dcard__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.dcard__body {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: var(--sp-3);
}
.dcard__name {
  font-weight: var(--fw-bold);
  font-size: var(--fs-sm);
  line-height: var(--lh-snug);
  color: var(--text-strong);
}
.dcard__meta {
  font-size: var(--fs-3xs);
  color: var(--c-gold-600);
  font-variant-numeric: tabular-nums;
}
.dcard__note {
  font-size: var(--fs-3xs);
  line-height: var(--lh-snug);
  color: var(--text-muted);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
@media (max-width: 40rem) {
  .dhero__media { aspect-ratio: 4 / 3; max-height: none; }
  .dhero__cap { padding: var(--sp-4) var(--sp-3) var(--sp-3); }
  .dhero__title { font-size: var(--fs-xl); }
}
.dest-hotels {
  margin-block: var(--sp-7);
}
.dest-hotels > h3 {
  margin: 0 0 var(--sp-2);
  font-family: var(--font-display);
  font-size: var(--fs-2xl);
  font-weight: var(--fw-bold);
  line-height: var(--lh-snug);
  color: var(--text-strong);
}
.dest-hotels__lede {
  max-width: var(--w-prose);
  margin: 0 0 var(--sp-5);
  font-size: var(--fs-sm);
  line-height: var(--lh-relaxed);
  color: var(--text-body);
}
.dest-hotels__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--sp-3);
  counter-reset: none;
}
.dest-hotel {
  display: flex;
  align-items: flex-start;
  gap: var(--sp-3);
  padding: var(--sp-4);
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
}
.dest-hotel__rank {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  font-family: var(--font-display);
  font-size: var(--fs-sm);
  font-weight: var(--fw-bold);
  color: var(--c-navy-800);
  background: var(--c-sea-050);
  border-radius: var(--r-full);
}
.dest-hotel__body {
  min-width: 0;
  flex: 1 1 auto;
}
.dest-hotel__name {
  margin: 0 0 var(--sp-2);
  font-family: var(--font-display);
  font-size: var(--fs-lg);
  font-weight: var(--fw-bold);
  line-height: var(--lh-snug);
  color: var(--text-strong);
}
.dest-hotel__name a {
  color: inherit;
  text-decoration: none;
}
.dest-hotel__name a:hover {
  color: var(--accent);
  text-decoration: underline;
}
.dest-hotel__tags {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-2);
  margin: 0 0 var(--sp-2);
  padding: 0;
}
.dest-hotel__tags li {
  padding: var(--sp-1) var(--sp-3);
  font-size: var(--fs-3xs);
  font-weight: var(--fw-semibold);
  color: var(--text-body);
  background: var(--bg-page);
  border: 1px solid var(--border);
  border-radius: var(--r-full);
}
.dest-hotel__stars {
  color: var(--c-gold-700);
  letter-spacing: 0.04em;
}
.dest-hotel__price {
  color: var(--c-sea-600);
  background: var(--c-sea-050);
  border-color: transparent;
}
.dest-hotel__fac {
  margin: 0;
  font-size: var(--fs-xs);
  line-height: var(--lh-relaxed);
  color: var(--text-muted);
}
.dest-hotels__more {
  margin: var(--sp-4) 0 0;
  font-size: var(--fs-xs);
}
.dest-hotels__more a {
  color: var(--accent);
  font-weight: var(--fw-semibold);
}
.dest-tickets__list {
  gap: var(--sp-4);
}
.dest-ticket {
  padding: var(--sp-4);
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
}
.dest-ticket h4 {
  margin: 0 0 var(--sp-3);
  font-family: var(--font-display);
  font-size: var(--fs-lg);
  font-weight: var(--fw-bold);
  line-height: var(--lh-snug);
}
.dest-ticket h4 a {
  color: var(--text-strong);
  text-decoration: none;
}
.dest-ticket h4 a:hover {
  color: var(--accent);
  text-decoration: underline;
}
.dest-ticket__opts {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--sp-2);
}
.dest-ticket__opts li {
  display: flex;
  align-items: baseline;
  gap: var(--sp-2);
  font-size: var(--fs-sm);
  color: var(--text-body);
}
.dest-ticket__opts li span {
  flex: 1 1 auto;
  min-width: 0;
  border-block-end: 1px dotted var(--border);
}
.dest-ticket__opts li b {
  flex: 0 0 auto;
  font-weight: var(--fw-bold);
  color: var(--text-strong);
  unicode-bidi: isolate;
}
.dest-ticket__more {
  margin: var(--sp-3) 0 0;
  font-size: var(--fs-3xs);
  color: var(--text-muted);
}
@media (min-width: 700px) {
  .dest-hotels__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .dest-tickets__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.hotel-head {
  margin-block-end: var(--sp-5);
}
.hotel-head__cat {
  display: inline-block;
  margin-block-end: var(--sp-3);
  padding: var(--sp-1) var(--sp-3);
  font-size: var(--fs-3xs);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-wide);
  color: var(--c-navy-950);
  background: var(--c-gold-200);
  border-radius: var(--r-full);
}
.hotel-head h1 {
  margin: 0 0 var(--sp-4);
  font-family: var(--font-display);
  font-size: var(--fs-4xl);
  font-weight: var(--fw-bold);
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-tight);
  color: var(--text-strong);
}
.hotel-head__quick {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-3) var(--sp-6);
  margin: 0;
  padding: 0;
}
.hotel-head__quick li {
  display: flex;
  flex-direction: column;
  gap: var(--sp-1);
}
.hotel-head__quick b {
  font-family: var(--font-display);
  font-size: var(--fs-lg);
  font-weight: var(--fw-bold);
  line-height: 1.1;
  color: var(--text-strong);
}
.hotel-head__quick span {
  font-size: var(--fs-3xs);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-wide);
  color: var(--text-muted);
}
.hotel-gal {
  margin: 0 0 var(--sp-7);
}
.hotel-gal__main {
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: var(--c-sea-050);
  border-radius: var(--r-md);
}
.hotel-gal__main img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.hotel-gal__main--none {
  background: linear-gradient(140deg, var(--c-navy-900), var(--c-sea-600));
}
.hotel-gal__thumbs {
  list-style: none;
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(84px, 1fr);
  gap: var(--sp-2);
  margin: var(--sp-2) 0 0;
  padding: 0;
  overflow-x: auto;
  scroll-snap-type: x proximity;
  scrollbar-width: none;
  -ms-overflow-style: none;
  overscroll-behavior-x: contain;
}
.hotel-gal__thumbs::-webkit-scrollbar { display: none; }
.hotel-gal__thumb {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  scroll-snap-align: start;
  padding: 0;
  overflow: hidden;
  cursor: pointer;
  background: var(--c-sea-050);
  border: 2px solid transparent;
  border-radius: var(--r-sm);
  transition: border-color var(--dur-fast) var(--ease), opacity var(--dur-fast) var(--ease);
  opacity: 0.72;
}
.hotel-gal__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.hotel-gal__thumb:hover {
  opacity: 1;
}
.hotel-gal__thumb[aria-current="true"] {
  opacity: 1;
  border-color: var(--accent);
}
.hotel-gal__thumb:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.hotel-gal figcaption {
  margin-block-start: var(--sp-3);
  font-size: var(--fs-2xs);
  line-height: var(--lh-relaxed);
  color: var(--text-muted);
}
.ratecard {
  padding: var(--sp-4) var(--sp-5);
  margin-block-end: var(--sp-4);
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
}
.ratecard__stars {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--sp-2);
  margin: 0 0 var(--sp-2);
}
.ratecard__stars span {
  font-size: var(--fs-xl);
  letter-spacing: 0.06em;
  color: var(--c-gold-500);
}
.ratecard__stars b {
  font-size: var(--fs-2xs);
  font-weight: var(--fw-semibold);
  color: var(--text-muted);
}
.ratecard__stars--none {
  display: block;
  font-size: var(--fs-2xs);
  line-height: var(--lh-relaxed);
  color: var(--text-muted);
}
.ratecard__where {
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--fs-md);
  font-weight: var(--fw-semibold);
  color: var(--text-strong);
}
.ratecard__cat {
  margin: var(--sp-1) 0 0;
  font-size: var(--fs-2xs);
  color: var(--c-sea-600);
}
.fac-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--sp-3);
}
.fac {
  display: flex;
  align-items: flex-start;
  gap: var(--sp-3);
  font-size: var(--fs-sm);
  line-height: var(--lh-normal);
  color: var(--text-body);
}
.fac-icon {
  flex: 0 0 auto;
  width: 1.35rem;
  height: 1.35rem;
  margin-block-start: 0.1em;
  fill: none;
  stroke: var(--c-sea-600);
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.hotel-facts__block .fac-list li::before {
  content: none;
}
.hotel-facts__block .fac {
  padding-inline-start: 0;
}
@media (min-width: 560px) {
  .fac-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--sp-3) var(--sp-5);
  }
  .hotel-gal__main {
    aspect-ratio: 4 / 3;
  }
}
@media (min-width: 900px) {
  .hotel-gal__main {
    aspect-ratio: 1 / 1;
    max-width: 520px;
    margin-inline: auto;
  }
  .hotel-gal__thumbs {
    max-width: 520px;
    margin-inline: auto;
  }
}
.hotel-gal__credit {
  display: block;
  margin-block-start: var(--sp-2);
  font-size: var(--fs-3xs);
  line-height: 1.5;
  color: var(--text-muted);
}
.hotel-gal__credit a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.hotel-gal__credit a:hover {
  color: var(--accent);
}
.rank {
  list-style: none;
  margin: 0;
  padding: 0;
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  overflow: hidden;
  background: var(--bg-card);
}
.rankrow {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: var(--sp-1) var(--sp-3);
  align-items: baseline;
  padding: var(--sp-4);
}
.rankrow + .rankrow {
  border-block-start: 1px solid var(--border);
}
.rankrow--head {
  display: none;
}
.rankrow__n {
  grid-row: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.75rem;
  height: 1.75rem;
  font-family: var(--font-display);
  font-size: var(--fs-2xs);
  font-weight: var(--fw-bold);
  color: var(--c-navy-800);
  background: var(--c-sea-050);
  border-radius: var(--r-full);
}
.rankrow__name {
  grid-row: 1;
  font-family: var(--font-display);
  font-size: var(--fs-md);
  font-weight: var(--fw-bold);
  line-height: var(--lh-snug);
  color: var(--text-strong);
}
.rankrow__name a {
  color: var(--accent);
  text-decoration: none;
}
.rankrow__name a:hover {
  text-decoration: underline;
}
.rankrow__stars {
  grid-column: 2;
  font-size: var(--fs-2xs);
  letter-spacing: 0.04em;
  color: var(--c-gold-600);
}
.rankrow__style,
.rankrow__price {
  grid-column: 2;
  font-size: var(--fs-2xs);
  color: var(--text-muted);
}
.rankrow__price {
  color: var(--c-sea-600);
  font-weight: var(--fw-semibold);
}
.rankrow__fac {
  grid-column: 2;
  font-size: var(--fs-xs);
  line-height: var(--lh-relaxed);
  color: var(--text-body);
}
.rankrow__stars:empty,
.rankrow__style:empty,
.rankrow__price:empty {
  display: none;
}
@media (min-width: 720px) {
  .rankrow {
    grid-template-columns: 2.25rem minmax(0, 1fr) 6.5rem minmax(0, 9rem) 6rem;
    gap: var(--sp-2) var(--sp-4);
    align-items: center;
    padding-block: var(--sp-3);
  }
  .rankrow--head {
    display: grid;
    background: var(--bg-page);
    font-size: var(--fs-3xs);
    font-weight: var(--fw-semibold);
    letter-spacing: var(--ls-wide);
    color: var(--text-muted);
    padding-block: var(--sp-2);
  }
  .rankrow--head span {
    color: inherit;
    font: inherit;
  }
  .rankrow__stars,
  .rankrow__style,
  .rankrow__price {
    grid-column: auto;
    grid-row: 1;
  }
  .rankrow__fac {
    grid-column: 2 / -1;
    grid-row: 2;
    font-size: var(--fs-2xs);
    color: var(--text-muted);
  }
  .rankrow--head .rankrow__fac {
    display: none;
  }
}
.rank {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(260px, 100%), 1fr));
  gap: var(--sp-4);
  border: 0;
  border-radius: 0;
  overflow: visible;
  background: none;
}
.rankrow,
.rankrow + .rankrow {
  display: block;
  padding: 0;
  border: 0;
  border-block-start: 0;
}
.rankrow__link {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: border-color var(--dur-fast) var(--ease),
              box-shadow var(--dur-fast) var(--ease),
              transform var(--dur-fast) var(--ease);
}
a.rankrow__link:hover,
a.rankrow__link:focus-visible {
  border-color: var(--c-sea-300);
  box-shadow: 0 6px 20px rgb(7 39 66 / 0.10);
  transform: translateY(-2px);
}
@media (prefers-reduced-motion: reduce) {
  .rankrow__link { transition: none; }
  a.rankrow__link:hover,
  a.rankrow__link:focus-visible { transform: none; }
}
.rankrow__shot {
  position: relative;
  display: block;
  aspect-ratio: 3 / 2;
  background: var(--c-surface);
  overflow: hidden;
}
.rankrow__shot img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.rankrow__shot--none {
  background: linear-gradient(135deg, var(--c-sea-050), var(--c-surface));
}
.rankrow .rankrow__n {
  position: absolute;
  inset-block-start: var(--sp-2);
  inset-inline-start: var(--sp-2);
  min-width: 1.9rem;
  height: 1.9rem;
  font-size: var(--fs-xs);
  color: #fff;
  background: rgb(4 24 46 / 0.72);
  backdrop-filter: blur(4px);
  grid-row: auto;
  z-index: 1;
}
.rankrow__main {
  display: flex;
  flex-direction: column;
  gap: var(--sp-1);
  padding: var(--sp-3);
}
.rankrow .rankrow__name {
  grid-row: auto;
  font-size: var(--fs-sm);
}
.rankrow .rankrow__stars,
.rankrow .rankrow__meta {
  grid-column: auto;
  grid-row: auto;
}
.rankrow__meta {
  font-size: var(--fs-2xs);
  color: var(--text-muted);
}
.rankrow__go { display: none; }
@media (min-width: 720px) {
  .rankrow { grid-template-columns: none; }
  .rankrow__link { display: flex; }
}
.dest-tickets__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--sp-4);
}
.dest-ticket {
  padding: var(--sp-4);
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
}
.dest-ticket h4 {
  margin: 0 0 var(--sp-2);
  font-family: var(--font-display);
  font-size: var(--fs-lg);
  font-weight: var(--fw-bold);
  line-height: var(--lh-snug);
}
.dest-ticket h4 a {
  color: var(--text-strong);
  text-decoration: none;
}
.dest-ticket h4 a:hover {
  color: var(--accent);
  text-decoration: underline;
}
.dest-ticket__from {
  margin: 0 0 var(--sp-3);
  font-size: var(--fs-2xs);
  color: var(--text-muted);
}
.dest-ticket__from b {
  font-family: var(--font-display);
  font-size: var(--fs-lg);
  font-weight: var(--fw-bold);
  color: var(--c-gold-700);
  unicode-bidi: isolate;
}
.dest-ticket__opts {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--sp-2);
}
.dest-ticket__opts li {
  display: flex;
  align-items: baseline;
  gap: var(--sp-2);
  font-size: var(--fs-xs);
  color: var(--text-body);
}
.dest-ticket__opts li span {
  flex: 1 1 auto;
  min-width: 0;
  border-block-end: 1px dotted var(--border);
}
.dest-ticket__opts li b {
  flex: 0 0 auto;
  font-weight: var(--fw-semibold);
  color: var(--text-strong);
  unicode-bidi: isolate;
}
.dest-ticket__more {
  margin: var(--sp-3) 0 0;
  font-size: var(--fs-3xs);
  color: var(--text-muted);
}
@media (min-width: 720px) {
  .dest-tickets__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.ratecard__score {
  display: flex;
  align-items: baseline;
  gap: var(--sp-2);
  margin: 0 0 var(--sp-2);
}
.ratecard__score b {
  font-family: var(--font-display);
  font-size: var(--fs-2xl);
  font-weight: var(--fw-bold);
  line-height: 1;
  color: var(--c-navy-800);
  unicode-bidi: isolate;
}
.ratecard__score span {
  font-size: var(--fs-2xs);
  color: var(--text-muted);
}
.ratecard__sep {
  color: var(--c-ink-400);
  font-size: var(--fs-sm);
}
.bcard {
  background:
    linear-gradient(155deg,
      color-mix(in srgb, var(--c-navy-900) 92%, transparent) 0%,
      color-mix(in srgb, var(--c-sea-600) 78%, transparent) 100%),
    url('/assets/img/Main_Pool3-1-19f847eb6d.webp') center / cover no-repeat;
}
.bcard__glow {
  display: none;
}
.hotel-gal__note {
  display: block;
}
.ratecard {
  padding: var(--sp-3) var(--sp-4);
  margin-block-end: var(--sp-2);
}
.ratecard__score {
  margin-block-end: var(--sp-1);
}
.ratecard__score b {
  font-size: var(--fs-xl);
}
.ratecard__stars {
  margin-block-end: var(--sp-1);
  gap: var(--sp-2);
}
.ratecard__stars span {
  font-size: var(--fs-md);
}
.ratecard__where {
  font-size: var(--fs-sm);
}
.hotel-map {
  margin-block-end: var(--sp-3);
}
.hotel-map__frame {
  aspect-ratio: 16 / 9;
}
.hotel-map__cap {
  margin-block-start: var(--sp-1);
  font-size: var(--fs-3xs);
}
.tour-grid--compact {
  grid-template-columns: repeat(auto-fill, minmax(132px, 1fr));
  gap: var(--sp-2);
}
.tour-grid--compact .tour-card__body {
  padding: var(--sp-2) var(--sp-3);
}
.tour-grid--compact .tour-card__title {
  font-size: var(--fs-2xs);
}
@media (min-width: 700px) {
  .tour-grid--compact {
    grid-template-columns: repeat(auto-fill, minmax(156px, 1fr));
  }
}
.hotel-page__credits {
  margin: var(--sp-6) 0 0;
  padding-block-start: var(--sp-3);
  border-block-start: 1px solid var(--border);
  font-size: var(--fs-3xs);
  line-height: 1.5;
  color: var(--text-muted);
}
.hotel-page__credits a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.hmeta {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--sp-2);
  margin: 0 0 var(--sp-4);
  font-size: var(--fs-2xs);
  color: var(--text-muted);
}
.hmeta__dot {
  color: var(--c-ink-400);
}
.hmeta__stars {
  color: var(--c-gold-600);
  letter-spacing: 0.04em;
  font-size: var(--fs-xs);
}
.hmeta__score b {
  font-family: var(--font-display);
  font-size: var(--fs-sm);
  font-weight: var(--fw-bold);
  color: var(--text-strong);
  unicode-bidi: isolate;
}
.hmeta__score span {
  color: var(--text-muted);
}
.hmeta__where {
  font-weight: var(--fw-semibold);
  color: var(--text-body);
}
.hmeta__map {
  appearance: none;
  border: 0;
  padding: 0;
  background: none;
  font: inherit;
  cursor: pointer;
  color: var(--accent);
  font-weight: var(--fw-semibold);
  text-decoration: none;
}
.hmeta__map:hover {
  text-decoration: underline;
}
.mapdlg {
  border: 0;
  padding: 0;
  width: min(560px, calc(100vw - var(--sp-6)));
  max-width: 100%;
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-lg);
  background: var(--bg-card);
  color: var(--text-body);
  overflow: hidden;
}
.mapdlg::backdrop {
  background: rgb(0 0 0 / 0.55);
}
.mapdlg__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-3);
  padding: var(--sp-3) var(--sp-4);
  border-block-end: 1px solid var(--border);
}
.mapdlg__head b {
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
}
.mapdlg__x {
  appearance: none;
  border: 0;
  background: none;
  cursor: pointer;
  font-size: 1.5rem;
  line-height: 1;
  padding: 0 var(--sp-1);
  color: var(--text-muted);
}
.mapdlg__x:hover {
  color: var(--text-body);
}
.mapdlg__frame {
  display: block;
  width: 100%;
  height: 320px;
  border: 0;
}
.mapdlg__ext {
  display: block;
  padding: var(--sp-3) var(--sp-4);
  text-align: center;
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  color: var(--accent);
  border-block-start: 1px solid var(--border);
}
@media (max-width: 40rem) {
  .mapdlg__frame {
    height: 260px;
  }
}
.hotel-head {
  margin-block-end: var(--sp-4);
}
.hotel-head h1 {
  margin-block-end: var(--sp-2);
}
.hero-shot {
  margin-block-end: var(--sp-6);
}
.hero-shot .hotel-gal {
  margin-block-end: 0;
}
.hero-shot .hotel-gal__main {
  position: relative;
  aspect-ratio: 16 / 9;
  max-height: 58vh;
  border-radius: var(--r-lg);
  box-shadow:
    0 1px 2px rgb(7 39 66 / 0.08),
    0 18px 40px -20px rgb(7 39 66 / 0.55);
}
.hgal-cap {
  position: absolute;
  inset-inline: 0;
  inset-block-end: 0;
  padding: var(--sp-6) var(--sp-5) var(--sp-4);
  background: linear-gradient(180deg,
    rgb(4 24 46 / 0) 0%,
    rgb(4 24 46 / 0.55) 45%,
    rgb(4 24 46 / 0.88) 100%);
  color: var(--c-white);
  pointer-events: none;
}
.hgal-cap a,
.hgal-cap button { pointer-events: auto; }
.hgal-cap h1 {
  margin: 0;
  color: var(--c-white);
  font-size: var(--fs-2xl);
  line-height: var(--lh-tight);
  text-shadow: 0 1px 12px rgb(4 24 46 / 0.5);
}
.hgal-badge {
  position: absolute;
  inset-block-start: var(--sp-3);
  inset-inline-start: var(--sp-3);
  z-index: 1;
  padding: 4px 12px;
  border-radius: var(--r-full);
  background: rgb(4 24 46 / 0.55);
  backdrop-filter: blur(8px);
  color: var(--c-gold-200);
  font-size: var(--fs-3xs);
  font-weight: var(--fw-semibold);
  letter-spacing: 0.02em;
}
.hgal-cap .hmeta {
  margin-block-start: var(--sp-3);
  margin-block-end: 0;
  gap: var(--sp-2) var(--sp-3);
  font-size: var(--fs-xs);
  color: rgb(255 255 255 / 0.92);
}
.hgal-cap .hmeta__where,
.hgal-cap .hmeta__stars { color: inherit; }
.hgal-cap .hmeta__score {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  padding: 3px 10px;
  border-radius: var(--r-full);
  background: rgb(4 24 46 / 0.5);
  backdrop-filter: blur(6px);
}
.hgal-cap .hmeta__score b {
  font-size: var(--fs-md);
  color: var(--c-gold-500);
}
.hgal-cap .hmeta__score span {
  font-size: var(--fs-3xs);
  color: rgb(255 255 255 / 0.88);
}
.hgal-cap .hmeta__stars {
  font-size: var(--fs-md);
  color: var(--c-gold-500);
  text-shadow: 0 1px 8px rgb(4 24 46 / 0.85);
}
.hgal-cap .hmeta__dot { display: none; }
.hgal-cap .hmeta__kosher {
  background: rgb(255 255 255 / 0.16);
  color: var(--c-white);
}
.hgal-cap .hmeta__map {
  padding: 3px 10px;
  border-radius: var(--r-full);
  background: rgb(255 255 255 / 0.18);
  backdrop-filter: blur(6px);
  color: var(--c-white);
}
.hgal-cap .hmeta__map:hover {
  background: rgb(255 255 255 / 0.3);
  text-decoration: none;
}
@media (max-width: 40rem) {
  .hero-shot .hotel-gal__main {
    aspect-ratio: 1 / 1;
    max-height: none;
  }
  .hgal-cap {
    padding: var(--sp-6) var(--sp-3) var(--sp-3);
  }
  .hgal-cap h1 {
    font-size: var(--fs-lg);
    text-wrap: balance;
  }
  .hgal-cap .hotel-head__cat {
    margin-block-end: var(--sp-1);
    font-size: var(--fs-3xs);
  }
  .hgal-cap .hmeta {
    margin-block-start: var(--sp-1);
    font-size: var(--fs-3xs);
    row-gap: 2px;
  }
  .hero-shot .hotel-head__quick {
    gap: var(--sp-2) var(--sp-4);
  }
}
.hero-shot .hotel-gal__thumbs {
  margin-block-start: var(--sp-3);
  grid-auto-columns: minmax(104px, 1fr);
}
.hero-shot .hotel-gal__thumb {
  border-width: 0;
  border-radius: var(--r-sm);
  opacity: 0.58;
  transition:
    opacity var(--dur-fast) var(--ease),
    transform var(--dur-fast) var(--ease),
    box-shadow var(--dur-fast) var(--ease);
}
.hero-shot .hotel-gal__thumb:hover {
  opacity: 1;
  transform: translateY(-2px);
}
.hero-shot .hotel-gal__thumb[aria-current="true"] {
  opacity: 1;
  box-shadow: 0 0 0 2px var(--c-sea-500);
}
.hero-shot .hotel-head__quick {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: var(--sp-3) var(--sp-4);
  margin-block-start: var(--sp-4);
  padding-block-start: var(--sp-4);
  border-block-start: 1px solid var(--border);
}
.hero-shot .hotel-head__quick li {
  gap: 2px;
}
.hero-shot .hotel-head__quick b {
  font-family: var(--font-display);
  font-size: var(--fs-lg);
  line-height: var(--lh-tight);
  color: var(--text-strong);
}
.hero-shot .hotel-head__quick span {
  font-size: var(--fs-3xs);
  line-height: var(--lh-snug);
  color: var(--text-muted);
}
.hotel-page__kosher {
  padding: var(--sp-4);
  background: var(--c-sea-050);
  border-radius: var(--r-md);
}
.hotel-page__kosher h2 {
  margin-top: 0;
}
.kosher-line {
  margin: 0 0 var(--sp-2);
  font-size: var(--fs-sm);
  line-height: var(--lh-relaxed);
  color: var(--text-body);
}
.kosher-line b {
  font-family: var(--font-display);
  font-size: var(--fs-lg);
  font-weight: var(--fw-bold);
  color: var(--c-navy-800);
  unicode-bidi: isolate;
}
.kosher-line span {
  display: block;
  margin-block-start: var(--sp-1);
  font-size: var(--fs-2xs);
  color: var(--text-muted);
}
.kosher-note {
  margin: 0;
  font-size: var(--fs-2xs);
  line-height: var(--lh-relaxed);
  color: var(--text-muted);
}
.kosher-note strong {
  color: var(--text-body);
  font-weight: var(--fw-semibold);
}
.hmeta__kosher {
  padding: 0 var(--sp-2);
  font-weight: var(--fw-semibold);
  color: var(--c-sea-600);
  background: var(--c-sea-050);
  border-radius: var(--r-full);
  unicode-bidi: isolate;
}
.hotel-filter__chip:disabled {
  opacity: .34;
  cursor: default;
  box-shadow: none;
}
.hotel-filter__chip:disabled:hover {
  background: var(--c-white);
  border-color: var(--border);
  color: var(--text-body);
  box-shadow: none;
  transform: none;
}
.hotel-filter__toggle {
  display: none;
  align-items: center;
  gap: .3em;
  padding: .45em .8em;
  background: var(--c-sea-050);
  color: var(--c-sea-700);
  border: 1px solid var(--c-sea-200);
  border-radius: var(--r-full, 999px);
  font: inherit;
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
  cursor: pointer;
  flex: none;
}
.hotel-filter__toggle-caret { transition: transform .15s; }
.hotel-filter[data-open="1"] .hotel-filter__toggle-caret { transform: rotate(180deg); }
.hotel-filter__mark { block-size: 1px; margin-block-end: -1px; }
.hotel-filter[data-tall="1"] .hotel-filter__toggle { display: inline-flex; }
.hotel-filter__rows {
  display: grid;
  grid-template-rows: 1fr;
  transition: grid-template-rows var(--dur-slow, 260ms) var(--ease);
}
.hotel-filter__rows-in {
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  min-height: 0;
  overflow: hidden;
  opacity: 1;
  transition: opacity 180ms var(--ease), visibility 0s;
}
.hotel-filter[data-tall="1"][data-condensed="1"] {
  gap: 0;
  padding-block: var(--sp-3);
}
.hotel-filter[data-tall="1"][data-condensed="1"] .hotel-filter__rows {
  grid-template-rows: 0fr;
}
.hotel-filter[data-tall="1"][data-condensed="1"] .hotel-filter__rows-in {
  opacity: 0;
  visibility: hidden;
  transition: opacity 140ms var(--ease), visibility 0s linear 260ms;
}
@media (prefers-reduced-motion: reduce) {
  .hotel-filter__rows,
  .hotel-filter__rows-in,
  .hotel-filter[data-tall="1"][data-condensed="1"] .hotel-filter__rows-in { transition: none; }
}
.hotel-filter[data-condensed="1"][data-active="1"] .hotel-filter__toggle {
  background: var(--c-gold-500);
  border-color: var(--c-gold-500);
  color: #2a1b00;
}
.hotel-filter__spacer {
  block-size: 0;
  transition: none;
}
.rank {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(270px, 100%), 1fr));
  gap: var(--sp-4);
  border: 0;
  border-radius: 0;
  background: none;
  overflow: visible;
}
.rankrow { display: block; padding: 0; }
.rankrow + .rankrow { border-block-start: 0; }
.rankrow__link {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  gap: 0;
  padding: 0;
  text-decoration: none;
  color: inherit;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  overflow: hidden;
  transition: border-color var(--dur-fast) var(--ease),
              box-shadow var(--dur-fast) var(--ease);
}
a.rankrow__link:hover,
a.rankrow__link:focus-visible {
  border-color: var(--c-sea-300);
  box-shadow: 0 6px 20px rgb(7 39 66 / 0.10);
  background: var(--bg-card);
}
.rankrow__link:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--c-sea-500);
}
.rankrow__link--flat { cursor: default; }
.rankrow__link--flat .rankrow__name { color: var(--c-ink-700); }
.rankrow__n {
  position: absolute;
  inset-block-start: var(--sp-2);
  inset-inline-start: var(--sp-2);
  z-index: 1;
  inline-size: 1.9rem;
  block-size: 1.9rem;
  display: grid;
  place-items: center;
  border-radius: var(--r-full);
  background: rgb(4 24 46 / 0.72);
  backdrop-filter: blur(4px);
  color: #fff;
  font-family: var(--font-display);
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
}
.rankrow__main {
  min-inline-size: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: var(--sp-3);
}
.rankrow__name {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  font-family: var(--font-display);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  line-height: var(--lh-snug);
  color: var(--c-navy-900);
}
.rankrow__meta {
  display: block;
  font-size: var(--fs-3xs);
  color: var(--c-ink-500);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.rankrow__stars {
  font-size: var(--fs-3xs);
  color: var(--c-gold-500);
  letter-spacing: -0.05em;
  white-space: nowrap;
}
.rankrow__go {
  color: var(--c-sea-400);
  font-size: var(--fs-md);
  line-height: 1;
  transform: scaleX(-1);
  transition: transform var(--dur-fast) ease;
}
.rankrow__link:hover .rankrow__go { transform: scaleX(-1) translateX(2px); }
.dest-hotels__more {
  margin-block-start: var(--sp-3);
  font-size: var(--fs-2xs);
}
.dest-hotels__more a {
  color: var(--c-sea-600);
  text-decoration: none;
  border-block-end: 1px solid color-mix(in srgb, var(--c-sea-400) 50%, transparent);
}
.dest-hotels__more a:hover { color: var(--c-navy-900); border-color: currentColor; }
@media (prefers-reduced-motion: reduce) {
  .rankrow__link, .rankrow__go { transition: none; }
  .rankrow__link:hover .rankrow__go { transform: scaleX(-1); }
}
/* transfers.css */
.transfers-page {
  --section-pad: clamp(var(--sp-5), 2.4vw, var(--sp-7));
  --tr-card: var(--c-surface-raised);
  --tr-line: var(--c-line);
}
.transfers-page h2 {
  font-family: var(--font-display);
  font-size: var(--fs-2xl);
  font-weight: var(--fw-bold);
  line-height: var(--lh-tight);
  color: var(--c-navy-900);
  margin-block: 0 var(--sp-3);
}
.transfers-page .tr-lead {
  max-inline-size: 76ch;
  font-size: var(--fs-md);
  line-height: var(--lh-relaxed);
  color: var(--c-ink-700);
  margin-block: 0 var(--sp-6);
}
.tr-hero__grid {
  display: grid;
  gap: var(--sp-6);
}
.tr-hero__media {
  grid-column: 1 / -1;
  margin: 0;
  border-radius: var(--r-md);
  overflow: hidden;
  background: var(--c-sea-050);
}
.tr-hero__media img {
  inline-size: 100%;
  block-size: 100%;
  aspect-ratio: 21 / 9;
  object-fit: cover;
  display: block;
}
@media (max-width: 719px) {
  .tr-hero__media img { aspect-ratio: 16 / 9; }
}
.tr-hero__eyebrow {
  font-family: var(--font-display);
  font-size: var(--fs-2xs);
  font-weight: var(--fw-bold);
  letter-spacing: var(--ls-wide);
  color: var(--c-sea-600);
  text-transform: uppercase;
  margin-block: 0 var(--sp-3);
}
.tr-hero__title {
  font-family: var(--font-display);
  font-size: var(--fs-3xl);
  font-weight: var(--fw-black);
  line-height: var(--lh-tight);
  color: var(--c-navy-900);
  margin-block: 0 var(--sp-3);
}
.tr-hero__lede {
  max-inline-size: 60ch;
  font-size: var(--fs-lg);
  line-height: var(--lh-relaxed);
  color: var(--c-ink-700);
  margin-block: 0 var(--sp-5);
}
.tr-hero__points {
  list-style: none;
  margin: 0 0 var(--sp-6);
  padding: 0;
  display: grid;
  gap: var(--sp-2);
}
@media (min-width: 640px) {
  .tr-hero--cover .tr-hero__points {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: var(--sp-5);
  }
}
.tr-hero__points li {
  position: relative;
  padding-inline-start: var(--sp-6);
  font-size: var(--fs-sm);
  color: var(--c-ink-700);
}
.tr-hero__points li::before {
  content: "";
  position: absolute;
  inset-inline-start: 0;
  inset-block-start: 0.45em;
  inline-size: var(--sp-3);
  block-size: var(--sp-3);
  border-inline-start: 2px solid var(--c-sea-500);
  border-block-end: 2px solid var(--c-sea-500);
  transform: rotate(-45deg);
}
.tr-ico {
  inline-size: 20px;
  block-size: 20px;
  flex: 0 0 auto;
}
.tr-svc { margin-block-end: var(--sp-6); }
.tr-svc__grid {
  list-style: none;
  margin: 0 0 var(--sp-5);
  padding: 0;
  display: grid;
  gap: var(--sp-2);
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
}
.tr-svc__item {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  padding: var(--sp-3);
  background: var(--tr-card);
  border: 1px solid var(--tr-line);
  border-radius: var(--r-sm);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  color: var(--c-navy-900);
}
.tr-svc__item .tr-ico { color: var(--c-sea-600); }
.tr-incl__title {
  font-size: var(--fs-2xs);
  font-weight: var(--fw-bold);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--c-ink-500);
  margin-block: 0 var(--sp-3);
}
.tr-incl {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-2) var(--sp-5);
}
.tr-incl__item {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  font-size: var(--fs-sm);
  color: var(--c-ink-700);
}
.tr-incl__item .tr-ico { color: var(--c-gold-600); }
.tr-hero__quick {
  background: var(--c-navy-900);
  color: var(--c-white);
  border-radius: var(--r-md);
  padding: var(--sp-5);
  box-shadow: var(--shadow-md);
}
.tr-map { margin-block-end: var(--sp-5); }
.tr-map__svg {
  inline-size: 100%;
  block-size: auto;
  display: block;
  overflow: visible;
}
.tr-map__road {
  stroke: var(--c-sea-400);
  stroke-width: 1.5;
  stroke-dasharray: 5 7;
  opacity: 0.55;
  animation: tr-road 2.4s linear infinite;
  animation-delay: calc(var(--i) * -0.6s);
}
@keyframes tr-road { to { stroke-dashoffset: -24; } }
.tr-map__stop {
  fill: var(--c-gold-500);
  stroke: var(--c-navy-900);
  stroke-width: 2;
}
.tr-map__label {
  fill: var(--c-white);
  font-family: var(--font-display);
  font-size: 15px;
  font-weight: var(--fw-bold);
}
.tr-map__price {
  fill: var(--c-gold-500);
  font-family: var(--font-display);
  font-size: 14px;
  font-weight: var(--fw-bold);
}
.tr-map__hub-label {
  fill: var(--c-sea-200);
  font-family: var(--font-display);
  font-size: 13px;
  font-weight: var(--fw-semibold);
}
.tr-map__hub-dot { fill: var(--c-gold-500); }
.tr-map__pulse {
  fill: var(--c-gold-500);
  opacity: 0.35;
  transform-origin: center;
  transform-box: fill-box;
  animation: tr-pulse 2.6s ease-out infinite;
}
@keyframes tr-pulse {
  0% { transform: scale(0.7); opacity: 0.45; }
  70% { transform: scale(2.1); opacity: 0; }
  100% { transform: scale(2.1); opacity: 0; }
}
.tr-map__car { color: var(--c-white); }
@media (prefers-reduced-motion: reduce) {
  .tr-map__road { animation: none; opacity: 0.7; }
  .tr-map__pulse { animation: none; opacity: 0.25; }
  .tr-map__car { display: none; }
}
@media (max-width: 719px) {
  .tr-map { display: none; }
}
.tr-hero__quick-title {
  font-family: var(--font-display);
  font-size: var(--fs-md);
  font-weight: var(--fw-bold);
  color: var(--c-white);
  margin-block: 0 var(--sp-4);
}
.tr-hero__quick-note {
  font-size: var(--fs-2xs);
  color: var(--c-sea-200);
  margin-block: var(--sp-4) 0;
}
.tr-quick { list-style: none; margin: 0; padding: 0; }
.tr-quick__item {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--sp-3);
  padding-block: var(--sp-3);
  border-block-end: 1px solid rgb(255 255 255 / 0.12);
}
.tr-quick__item:last-child { border-block-end: 0; }
.tr-quick__route {
  font-size: var(--fs-sm);
  color: var(--c-white);
}
.tr-quick__price {
  font-family: var(--font-display);
  font-size: var(--fs-md);
  font-weight: var(--fw-bold);
  color: var(--c-gold-500);
  white-space: nowrap;
}
@media (min-width: 900px) {
  .tr-hero__grid {
    grid-template-columns: minmax(0, 1.5fr) minmax(320px, 1fr);
  }
  .tr-hero--cover .tr-hero__grid {
    grid-template-columns: minmax(0, 1fr) minmax(186px, 236px) minmax(190px, 280px);
    gap: var(--sp-6);
    align-items: start;
  }
}
.tr-dests__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--sp-4);
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}
.tr-dest {
  background: var(--tr-card);
  border: 1px solid var(--tr-line);
  border-radius: var(--r-md);
  overflow: hidden;
  display: flex;
}
.tr-dest__link {
  display: flex;
  flex-direction: column;
  inline-size: 100%;
  text-decoration: none;
  color: inherit;
  transition: box-shadow var(--dur-fast) var(--ease);
}
.tr-dest__link:hover { box-shadow: var(--shadow-md); }
.tr-dest__link:focus-visible {
  outline: 2px solid var(--c-sea-500);
  outline-offset: -2px;
}
.tr-dest--current {
  border-color: var(--c-gold-500);
  flex-direction: column;
}
.tr-dest__media {
  display: block;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--c-sea-050);
}
.tr-dest__media img {
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
  display: block;
}
.tr-dest__media--none { background: var(--c-navy-800); }
.tr-dest__body {
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  padding: var(--sp-4);
  flex: 1 1 auto;
}
.tr-dest__title {
  font-family: var(--font-display);
  font-size: var(--fs-md);
  font-weight: var(--fw-bold);
  color: var(--c-navy-900);
}
.tr-dest__blurb {
  font-size: var(--fs-sm);
  line-height: var(--lh-relaxed);
  color: var(--c-ink-700);
}
.tr-dest__price {
  margin-block-start: auto;
  padding-block-start: var(--sp-2);
  font-family: var(--font-display);
  font-size: var(--fs-md);
  font-weight: var(--fw-bold);
  color: var(--c-gold-700);
}
.tr-why__grid,
.tr-fleet__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--sp-4);
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
}
.tr-why__card,
.tr-vehicle {
  background: var(--tr-card);
  border: 1px solid var(--tr-line);
  border-radius: var(--r-md);
  padding: var(--sp-5);
}
.tr-why__title,
.tr-vehicle__name {
  font-family: var(--font-display);
  font-size: var(--fs-md);
  font-weight: var(--fw-bold);
  color: var(--c-navy-900);
  margin-block: 0 var(--sp-2);
}
.tr-why__text {
  font-size: var(--fs-sm);
  line-height: var(--lh-relaxed);
  color: var(--c-ink-700);
  margin: 0;
}
@media (min-width: 640px) and (max-width: 1099px) {
  .tr-why__grid:has(> :nth-child(4):last-child),
  .tr-fleet__grid:has(> :nth-child(4):last-child) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.tr-vehicle__media {
  display: block;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: var(--r-sm);
  background: var(--c-sea-050);
  margin-block-end: var(--sp-3);
}
.tr-vehicle__media img {
  inline-size: 100%;
  block-size: 100%;
  object-fit: contain;
  display: block;
}
.tr-vehicle__badge {
  display: inline-block;
  font-family: var(--font-display);
  font-size: var(--fs-3xs);
  font-weight: var(--fw-bold);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--c-sea-600);
  background: var(--c-sea-050);
  border-radius: var(--r-sm);
  padding: var(--sp-1) var(--sp-2);
  margin-block-end: var(--sp-3);
}
.tr-vehicle__facts {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--sp-1);
  font-size: var(--fs-sm);
  color: var(--c-ink-700);
}
.tr-vehicle__facts li {
  padding-inline-start: var(--sp-4);
  position: relative;
}
.tr-vehicle__facts li::before {
  content: "";
  position: absolute;
  inset-inline-start: 0;
  inset-block-start: 0.6em;
  inline-size: 5px;
  block-size: 5px;
  border-radius: var(--r-full);
  background: var(--c-sea-400);
}
.tr-table-wrap {
  background: var(--tr-card);
  border: 1px solid var(--tr-line);
  border-radius: var(--r-md);
  overflow: hidden;
}
.tr-table {
  inline-size: 100%;
  border-collapse: collapse;
  font-size: var(--fs-sm);
}
.tr-table thead th {
  background: var(--c-navy-900);
  color: var(--c-white);
  font-family: var(--font-display);
  font-size: var(--fs-2xs);
  font-weight: var(--fw-bold);
  text-align: start;
  padding: var(--sp-3) var(--sp-4);
  white-space: nowrap;
}
.tr-table tbody tr { border-block-start: 1px solid var(--tr-line); }
.tr-table tbody tr:first-child { border-block-start: 0; }
.tr-table__route {
  text-align: start;
  font-weight: var(--fw-medium);
  color: var(--c-navy-900);
  padding: var(--sp-3) var(--sp-4);
}
.tr-table__route-name { display: block; }
.tr-table__route-note {
  display: block;
  font-size: var(--fs-2xs);
  font-weight: var(--fw-regular);
  color: var(--c-ink-500);
  margin-block-start: var(--sp-1);
}
.tr-table__price {
  padding: var(--sp-3) var(--sp-4);
  font-family: var(--font-display);
  font-weight: var(--fw-bold);
  color: var(--c-navy-800);
  white-space: nowrap;
  text-align: start;
}
.tr-table__price--none {
  color: var(--c-ink-400);
  font-weight: var(--fw-regular);
}
.tr-prices__pay {
  font-size: var(--fs-2xs);
  color: var(--c-ink-500);
  margin-block: var(--sp-3) 0;
}
.tr-prices__note {
  background: var(--c-gold-050);
  border-inline-start: 3px solid var(--c-gold-500);
  border-radius: var(--r-sm);
  padding: var(--sp-4);
  margin-block: var(--sp-4) 0;
  max-inline-size: 76ch;
}
.tr-prices__note-title {
  font-family: var(--font-display);
  font-size: var(--fs-2xs);
  font-weight: var(--fw-bold);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--c-gold-700);
  margin-block: 0 var(--sp-2);
}
.tr-prices__extras {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--sp-2);
  font-size: var(--fs-sm);
  line-height: var(--lh-relaxed);
  color: var(--c-ink-700);
}
.tr-prices__extras li {
  position: relative;
  padding-inline-start: var(--sp-4);
}
.tr-prices__extras li::before {
  content: "";
  position: absolute;
  inset-inline-start: 0;
  inset-block-start: 0.62em;
  inline-size: 5px;
  block-size: 5px;
  border-radius: var(--r-full);
  background: var(--c-gold-600);
}
@media (max-width: 719px) {
  .tr-table, .tr-table tbody, .tr-table tr { display: block; }
  .tr-table thead { display: none; }
  .tr-table tbody { min-width: 0; }
  .tr-table tbody tr {
    padding: var(--sp-4);
    border-block-start: 1px solid var(--tr-line);
  }
  .tr-table th.tr-table__route {
    display: block;
    margin: calc(var(--sp-4) * -1) calc(var(--sp-4) * -1) var(--sp-3);
    padding: var(--sp-3) var(--sp-4);
    background: var(--c-navy-900);
    color: var(--c-white);
    border-start-start-radius: var(--r-sm);
    border-start-end-radius: var(--r-sm);
  }
  .tr-table th.tr-table__route .tr-table__route-note { color: var(--c-sea-200); }
  .tr-table td.tr-table__price {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--sp-3);
    padding: var(--sp-1) 0;
  }
  .tr-table__price::before {
    content: attr(data-label);
    font-family: var(--font-body);
    font-size: var(--fs-2xs);
    font-weight: var(--fw-regular);
    color: var(--c-ink-500);
  }
}
.tr-booking__panel {
  background: var(--tr-card);
  border: 1px solid var(--tr-line);
  border-radius: var(--r-md);
  padding: clamp(var(--sp-5), 3vw, var(--sp-7));
  box-shadow: var(--shadow-md);
  max-inline-size: 860px;
  position: relative;
  overflow: hidden;
}
.tr-booking__head { margin-block-end: var(--sp-5); }
.tr-booking__title {
  font-family: var(--font-display);
  font-size: var(--fs-xl);
  font-weight: var(--fw-bold);
  color: var(--c-navy-900);
  margin-block: 0 var(--sp-2);
}
.tr-booking__sub {
  font-size: var(--fs-sm);
  line-height: var(--lh-relaxed);
  color: var(--c-ink-700);
  margin: 0;
  max-inline-size: 60ch;
}
.tr-form__more {
  border: 1px solid var(--tr-line);
  border-radius: var(--r-sm);
  background: var(--c-surface);
  padding: var(--sp-3) var(--sp-4);
  margin-block-start: var(--sp-4);
}
.tr-form__more-sum {
  font-family: var(--font-display);
  font-size: var(--fs-sm);
  font-weight: var(--fw-bold);
  color: var(--c-navy-900);
  cursor: pointer;
}
.tr-form__more-hint {
  display: block;
  font-family: var(--font-body);
  font-size: var(--fs-2xs);
  font-weight: var(--fw-regular);
  color: var(--c-ink-500);
  margin-block-start: var(--sp-1);
}
.tr-form__more-body { margin-block-start: var(--sp-4); }
.tr-form__grid {
  display: grid;
  gap: var(--sp-3) var(--sp-4);
  margin-block-end: var(--sp-3);
}
.tr-form__grid:last-child { margin-block-end: 0; }
.tr-booking [hidden] { display: none; }
@media (min-width: 640px) {
  .tr-form__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tr-form__grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.tr-step + .tr-step { margin-block-start: var(--sp-3); }
.tr-step__title { margin: 0; }
.tr-step__head {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  inline-size: 100%;
  padding: var(--sp-3) var(--sp-4);
  background: var(--c-surface);
  border: 1px solid var(--tr-line);
  border-radius: var(--r-sm);
  cursor: pointer;
  text-align: start;
  font-family: var(--font-display);
  transition: border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);
}
.tr-step__head:hover { border-color: var(--c-sea-400); }
.tr-step__head:focus-visible { outline: 2px solid var(--c-sea-500); outline-offset: 2px; }
.tr-step__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  inline-size: 28px;
  block-size: 28px;
  border-radius: var(--r-full);
  background: var(--c-navy-900);
  color: var(--c-white);
  font-size: var(--fs-2xs);
  font-weight: var(--fw-bold);
}
.tr-step__label {
  font-size: var(--fs-md);
  font-weight: var(--fw-bold);
  color: var(--c-navy-900);
}
.tr-step__sum {
  min-inline-size: 0;
  flex: 1 1 auto;
  text-align: end;
  font-family: var(--font-body);
  font-size: var(--fs-2xs);
  font-weight: var(--fw-regular);
  color: var(--c-ink-500);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.tr-step.is-open > .tr-step__title > .tr-step__head {
  background: var(--c-white);
  border-color: var(--c-gold-500);
}
.tr-step__body { padding: var(--sp-4) var(--sp-1) var(--sp-2); }
.tr-step__next { margin-block-start: var(--sp-5); }
@media (prefers-reduced-motion: reduce) {
  .tr-step__head { transition: none; }
}
.tr-seg { border: 0; margin: 0 0 var(--sp-4); padding: 0; }
.tr-seg__legend {
  font-size: var(--fs-2xs);
  font-weight: var(--fw-semibold);
  color: var(--c-ink-700);
  padding: 0;
  margin-block-end: var(--sp-2);
}
.tr-seg__opts {
  display: inline-flex;
  gap: 4px;
  padding: 4px;
  background: var(--c-sea-050);
  border-radius: var(--r-full);
}
.tr-seg__opt { position: relative; }
.tr-seg__opt input {
  position: absolute;
  inset: 0;
  opacity: 0;
  margin: 0;
  cursor: pointer;
}
.tr-seg__opt span {
  display: block;
  padding: var(--sp-2) var(--sp-5);
  border-radius: var(--r-full);
  font-family: var(--font-display);
  font-size: var(--fs-sm);
  font-weight: var(--fw-bold);
  color: var(--c-ink-700);
  transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}
.tr-seg__opt input:checked + span {
  background: var(--c-navy-900);
  color: var(--c-white);
}
.tr-seg__opt input:focus-visible + span {
  outline: 2px solid var(--c-sea-500);
  outline-offset: 2px;
}
.tr-form__counts {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-5);
  margin-block-end: var(--sp-4);
}
.tr-count { margin: 0; }
.tr-count__label {
  display: block;
  font-size: var(--fs-2xs);
  font-weight: var(--fw-semibold);
  color: var(--c-ink-700);
  margin-block-end: var(--sp-1);
}
.tr-count__box {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--tr-line);
  border-radius: var(--r-full);
  background: var(--c-white);
  overflow: hidden;
}
.tr-count__btn {
  inline-size: 44px;
  block-size: 46px;
  border: 0;
  background: transparent;
  font-size: var(--fs-lg);
  font-weight: var(--fw-bold);
  color: var(--c-navy-900);
  cursor: pointer;
  line-height: 1;
}
.tr-count__btn:hover { background: var(--c-sea-050); }
.tr-count__btn:focus-visible { outline: 2px solid var(--c-sea-500); outline-offset: -2px; }
.tr-count__val {
  inline-size: 44px;
  border: 0;
  text-align: center;
  font-family: var(--font-display);
  font-size: var(--fs-md);
  font-weight: var(--fw-bold);
  color: var(--c-navy-900);
  background: transparent;
  -moz-appearance: textfield;
}
.tr-count__val::-webkit-outer-spin-button,
.tr-count__val::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.tr-veh { border: 0; margin: 0 0 var(--sp-4); padding: 0; }
.tr-veh__legend {
  font-size: var(--fs-2xs);
  font-weight: var(--fw-semibold);
  color: var(--c-ink-700);
  padding: 0;
  margin-block-end: var(--sp-2);
}
.tr-veh__grid {
  display: grid;
  gap: var(--sp-3);
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}
.tr-veh__opt { position: relative; display: block; }
.tr-veh__opt input {
  position: absolute;
  inset: 0;
  opacity: 0;
  margin: 0;
  cursor: pointer;
}
.tr-veh__card {
  display: block;
  border: 2px solid var(--tr-line);
  border-radius: var(--r-md);
  background: var(--c-white);
  padding: var(--sp-2);
  transition: border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);
}
.tr-veh__media {
  display: block;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: var(--r-sm);
  background: var(--c-sea-050);
}
.tr-veh__media img { inline-size: 100%; block-size: 100%; object-fit: contain; display: block; }
.tr-veh__name {
  display: block;
  padding: var(--sp-2) var(--sp-1) 0;
  font-family: var(--font-display);
  font-size: var(--fs-2xs);
  font-weight: var(--fw-bold);
  color: var(--c-navy-900);
  text-align: center;
}
.tr-veh__opt input:checked + .tr-veh__card {
  border-color: var(--c-gold-500);
  box-shadow: var(--shadow-md);
}
.tr-veh__opt input:focus-visible + .tr-veh__card {
  outline: 2px solid var(--c-sea-500);
  outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
  .tr-seg__opt span,
  .tr-veh__card { transition: none; }
}
.tr-field { margin: 0; }
.tr-field__label {
  display: block;
  font-size: var(--fs-2xs);
  font-weight: var(--fw-semibold);
  color: var(--c-ink-700);
  margin-block-end: var(--sp-1);
}
.tr-field__req { color: var(--c-danger); }
.tr-field__input {
  inline-size: 100%;
  min-block-size: 48px;
  padding: var(--sp-2) var(--sp-3);
  font-family: var(--font-body);
  font-size: 16px;
  color: var(--c-ink-900);
  background: var(--c-white);
  border: 1px solid var(--tr-line);
  border-radius: var(--r-sm);
}
.tr-field__input:hover { border-color: var(--c-sea-400); }
.tr-field__input:focus-visible {
  outline: 2px solid var(--c-sea-500);
  outline-offset: 1px;
  border-color: var(--c-sea-500);
}
.tr-field__input:not(:placeholder-shown):not([value=""]) { border-color: var(--c-sea-200); }
textarea.tr-field__input { min-block-size: 96px; resize: vertical; }
.tr-phone { display: flex; gap: var(--sp-2); }
.tr-phone__prefix { inline-size: 88px; flex: 0 0 auto; text-align: center; }
.tr-phone__num { flex: 1 1 auto; }
.tr-form__flight {
  border: 1px solid var(--tr-line);
  border-radius: var(--r-sm);
  background: var(--c-sea-050);
  padding: var(--sp-4);
  margin-block-start: var(--sp-5);
}
.tr-form__flight-sum {
  font-family: var(--font-display);
  font-size: var(--fs-sm);
  font-weight: var(--fw-bold);
  color: var(--c-navy-900);
  cursor: pointer;
}
.tr-form__flight-hint {
  display: block;
  font-family: var(--font-body);
  font-size: var(--fs-2xs);
  font-weight: var(--fw-regular);
  color: var(--c-ink-500);
  margin-block-start: var(--sp-1);
}
.tr-form__flight-body { margin-block-start: var(--sp-4); }
.tr-form__flight-title {
  font-size: var(--fs-2xs);
  font-weight: var(--fw-bold);
  color: var(--c-ink-700);
  margin-block: 0 var(--sp-3);
}
.tr-form__foot { margin-block-start: var(--sp-6); }
.tr-form__note {
  font-size: var(--fs-2xs);
  color: var(--c-ink-500);
  text-align: center;
  margin-block: var(--sp-3) 0;
}
.tr-form__ok,
.tr-form__err {
  border-radius: var(--r-md);
  padding: var(--sp-5);
  font-size: var(--fs-sm);
  line-height: var(--lh-relaxed);
}
.tr-form__ok {
  background: var(--c-sea-050);
  border: 1px solid var(--c-sea-200);
  color: var(--c-ink-900);
}
.tr-form__ok-title,
.tr-form__err-title {
  font-family: var(--font-display);
  font-size: var(--fs-md);
  font-weight: var(--fw-bold);
  margin-block: 0 var(--sp-2);
}
.tr-form__ok-title { color: var(--c-sea-600); }
.tr-form__err {
  background: var(--c-gold-050);
  border: 1px solid var(--c-gold-200);
  color: var(--c-ink-900);
}
.tr-form__err-title { color: var(--c-gold-700); }
.tr-form__err .btn { margin-block-start: var(--sp-4); }
.transfers-page {
  --primary: var(--c-navy-900);
  --secondary: var(--c-sea-600);
  --accent-gold: var(--c-gold-500);
  --text-muted: var(--c-ink-500);
  --radius-lg: var(--r-md);
  --radius-md: var(--r-sm);
  --shadow-hover: var(--shadow-md);
  --bg-light: var(--c-surface);
}
.transfers-page .grid-4 {
  display: grid;
  gap: var(--sp-4);
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
}
.transfers-page .card {
  background: var(--tr-card);
  border: 1px solid var(--tr-line);
  border-radius: var(--r-md);
  padding: var(--sp-5);
}
.transfers-page .card h3 {
  font-family: var(--font-display);
  font-size: var(--fs-md);
  font-weight: var(--fw-bold);
  color: var(--c-navy-900);
  margin-block: 0 var(--sp-2);
}
.transfers-page .card-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--sp-1);
  font-size: var(--fs-sm);
  color: var(--c-ink-700);
}
.transfers-page .badge {
  display: inline-block;
  font-family: var(--font-display);
  font-size: var(--fs-3xs);
  font-weight: var(--fw-bold);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--c-sea-600);
  background: var(--c-sea-050);
  border-radius: var(--r-sm);
  padding: var(--sp-1) var(--sp-2);
  margin-block-end: var(--sp-3);
}
.transfers-page .vehicle-img-wrap {
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: var(--r-sm);
  margin-block-end: var(--sp-3);
  background: var(--c-sea-050);
}
.transfers-page .vehicle-img-wrap img {
  inline-size: 100%;
  block-size: 100%;
  object-fit: contain;
}
.transfers-page .table-wrapper {
  background: var(--tr-card);
  border: 1px solid var(--tr-line);
  border-radius: var(--r-md);
  overflow: hidden;
}
.transfers-page .table-wrapper table {
  inline-size: 100%;
  border-collapse: collapse;
  font-size: var(--fs-sm);
}
.transfers-page .table-wrapper thead th {
  background: var(--c-navy-900);
  color: var(--c-white);
  font-family: var(--font-display);
  font-size: var(--fs-2xs);
  font-weight: var(--fw-bold);
  text-align: start;
  padding: var(--sp-3) var(--sp-4);
}
.transfers-page .table-wrapper tbody tr { border-block-start: 1px solid var(--tr-line); }
.transfers-page .table-wrapper td { padding: var(--sp-3) var(--sp-4); text-align: start; }
.transfers-page .route-name { display: block; font-weight: var(--fw-medium); color: var(--c-navy-900); }
.transfers-page .route-note { display: block; font-size: var(--fs-2xs); color: var(--c-ink-500); margin-block-start: var(--sp-1); }
.transfers-page .price-tag {
  font-family: var(--font-display);
  font-weight: var(--fw-bold);
  color: var(--c-navy-800);
  white-space: nowrap;
}
.transfers-page .eyebrow {
  font-family: var(--font-display);
  font-size: var(--fs-2xs);
  font-weight: var(--fw-bold);
  letter-spacing: var(--ls-wide);
  color: var(--c-sea-600);
  text-transform: uppercase;
}
.transfers-page .hero-card {
  background: var(--c-navy-900);
  color: var(--c-white);
  border-radius: var(--r-md);
  padding: var(--sp-5);
}
.transfers-page .hero-card h3 { color: var(--c-white); }
.transfers-page .quick-grid { display: grid; gap: var(--sp-2); }
.transfers-page .quick-box {
  display: flex;
  justify-content: space-between;
  gap: var(--sp-3);
  padding-block: var(--sp-2);
  border-block-end: 1px solid rgb(255 255 255 / 0.12);
}
.transfers-page .quick-box span {
  font-family: var(--font-display);
  font-weight: var(--fw-bold);
  color: var(--c-gold-500);
}
.transfers-page .hero-grid { display: grid; gap: var(--sp-6); }
@media (min-width: 900px) {
  .transfers-page .hero-grid { grid-template-columns: minmax(0, 1.5fr) minmax(300px, 1fr); align-items: start; }
}
.transfers-page .hero-points { list-style: none; margin: 0 0 var(--sp-5); padding: 0; display: grid; gap: var(--sp-2); }
.transfers-page .btn-group { display: flex; flex-wrap: wrap; gap: var(--sp-3); }
.transfers-page .btn-primary { background: var(--c-gold-500); color: var(--c-navy-950); }
.transfers-page .btn-secondary { background: var(--c-navy-800); color: var(--c-white); }
.transfers-page .faq-container {
  max-inline-size: 76ch;
  border: 1px solid var(--tr-line);
  border-radius: var(--r-md);
  background: var(--tr-card);
  overflow: hidden;
}
.transfers-page .faq-container details { border-block-start: 1px solid var(--tr-line); }
.transfers-page .faq-container details:first-child { border-block-start: 0; }
.transfers-page .faq-container summary {
  padding: var(--sp-4) var(--sp-5);
  font-family: var(--font-display);
  font-size: var(--fs-sm);
  font-weight: var(--fw-bold);
  color: var(--c-navy-900);
  cursor: pointer;
}
.transfers-page .faq-container details > p {
  padding: 0 var(--sp-5) var(--sp-4);
  font-size: var(--fs-sm);
  line-height: var(--lh-relaxed);
  color: var(--c-ink-700);
  margin: 0;
}
.tr-seo__body {
  max-inline-size: 76ch;
  font-size: var(--fs-md);
  line-height: var(--lh-relaxed);
  color: var(--c-ink-700);
}
.tr-seo__body p { margin-block: 0 var(--sp-4); }
.tr-seo__body p:last-child { margin-block-end: 0; }
.tr-seo__body strong { color: var(--c-navy-900); font-weight: var(--fw-semibold); }
.transfers-page .section-title h2 { margin-block-end: var(--sp-2); }
.tr-cta__panel {
  background: var(--c-navy-900);
  color: var(--c-white);
  border-radius: var(--r-md);
  padding: var(--sp-7) var(--sp-5);
  text-align: center;
}
.tr-cta__title {
  font-family: var(--font-display);
  font-size: var(--fs-xl);
  font-weight: var(--fw-bold);
  line-height: var(--lh-tight);
  color: var(--c-white);
  margin-block: 0 var(--sp-3);
}
.tr-cta__text {
  font-size: var(--fs-md);
  line-height: var(--lh-relaxed);
  color: var(--c-sea-200);
  margin-block: 0 var(--sp-5);
}
.tr-cta__actions { justify-content: center; }
.tr-cta__wa { color: var(--c-white); }
.tr-cta__wa:hover { background: var(--c-white); color: var(--c-navy-900); }
.tr-faq__list {
  max-inline-size: 76ch;
  border: 1px solid var(--tr-line);
  border-radius: var(--r-md);
  background: var(--tr-card);
  overflow: hidden;
}
.tr-faq__item { border-block-start: 1px solid var(--tr-line); }
.tr-faq__item:first-child { border-block-start: 0; }
.tr-faq__q {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-3);
  padding: var(--sp-4) var(--sp-5);
  font-family: var(--font-display);
  font-size: var(--fs-sm);
  font-weight: var(--fw-bold);
  color: var(--c-navy-900);
  cursor: pointer;
  list-style: none;
}
.tr-faq__q::-webkit-details-marker { display: none; }
.tr-faq__q::after {
  content: "";
  flex: 0 0 auto;
  inline-size: var(--sp-2);
  block-size: var(--sp-2);
  border-inline-end: 2px solid var(--c-sea-500);
  border-block-end: 2px solid var(--c-sea-500);
  transform: rotate(45deg);
  transition: transform var(--dur-fast) var(--ease);
}
.tr-faq__item[open] .tr-faq__q::after { transform: rotate(-135deg); }
.tr-faq__a {
  padding: 0 var(--sp-5) var(--sp-4);
  font-size: var(--fs-sm);
  line-height: var(--lh-relaxed);
  color: var(--c-ink-700);
}
.tr-faq__a p { margin: 0; }
@media (prefers-reduced-motion: reduce) {
  .tr-faq__q::after { transition: none; }
}
.tr-hero--cover {
  position: relative;
  isolation: isolate;
  --section-pad: var(--sp-7);
  color: var(--c-white);
}
@media (min-width: 1100px) {
  .tr-hero--cover { --section-pad: var(--sp-9); }
}
.tr-hero--cover::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image:
    linear-gradient(180deg, rgb(4 26 51 / 0.86) 0%, rgb(4 26 51 / 0.74) 45%, rgb(4 26 51 / 0.92) 100%),
    var(--tr-hero-img);
  background-size: cover;
  background-position: center;
}
.tr-hero--cover .tr-hero__eyebrow { color: var(--c-sea-200); }
.tr-hero--cover .tr-hero__title { color: var(--c-white); }
.tr-hero--cover .tr-hero__lede { color: var(--c-sea-050); }
.tr-hero--cover .tr-hero__points li { color: var(--c-sea-050); }
.tr-hero--cover .tr-hero__points li::before { color: var(--c-gold-500); }
.tr-hero--cover {
  background: rgb(255 255 255 / 0.10);
  border: 1px solid rgb(255 255 255 / 0.22);
  border-radius: var(--r-md);
  padding: var(--sp-5);
  backdrop-filter: blur(10px);
}
.tr-svc__title {
  font-family: var(--font-display);
  font-size: var(--fs-2xs);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  font-weight: var(--fw-bold);
  color: var(--c-sea-200);
  margin-block: 0 var(--sp-3);
}
.tr-hero--cover .tr-svc__grid {
  grid-template-columns: 1fr;
  gap: var(--sp-2);
  margin-block-end: 0;
}
.tr-hero--cover .tr-svc__item {
  background: rgb(255 255 255 / 0.08);
  border-color: rgb(255 255 255 / 0.18);
  color: var(--c-white);
}
.tr-hero--cover .tr-svc__item .tr-ico { color: var(--c-sea-200); }
.tr-hero--cover .tr-incl__title { color: var(--c-sea-200); }
@supports not (backdrop-filter: blur(10px)) {
  .tr-hero--cover { background: rgb(4 26 51 / 0.72); }
}
.tr-hero--cover .tr-svc__item {
  position: relative;
  overflow: hidden;
  align-items: center;
  gap: var(--sp-3);
  padding: var(--sp-3);
  transition: background-color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);
}
.tr-hero--cover .tr-svc__item::before {
  content: "";
  position: absolute;
  inset-block: 0;
  inset-inline-start: 0;
  inline-size: 3px;
  background: linear-gradient(180deg, var(--c-sea-200), var(--c-gold-500));
  transform: scaleY(0);
  transform-origin: top;
  transition: transform var(--dur-fast) var(--ease);
}
.tr-hero--cover .tr-svc__item:hover { background: rgb(255 255 255 / 0.16); }
.tr-hero--cover .tr-svc__item:hover::before { transform: scaleY(1); }
.tr-svc__chip {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  inline-size: 32px;
  block-size: 32px;
  border-radius: var(--r-full);
  background: rgb(255 255 255 / 0.12);
  border: 1px solid rgb(255 255 255 / 0.20);
}
.tr-hero--cover .tr-svc__chip .tr-ico { color: var(--c-sea-200); }
.tr-svc__text { display: block; }
.tr-svc__label {
  display: block;
  font-size: var(--fs-sm);
  font-weight: var(--fw-bold);
  line-height: var(--lh-tight);
}
.tr-svc__note {
  display: block;
  margin-block-start: var(--sp-1);
  font-size: var(--fs-2xs);
  font-weight: var(--fw-regular);
  line-height: var(--lh-normal);
  color: var(--c-sea-200);
}
@media (prefers-reduced-motion: no-preference) {
  .tr-hero--cover .tr-svc__item {
    animation: tr-svc-in 420ms both;
    animation-delay: calc(var(--i, 0) * 70ms + 120ms);
  }
  @keyframes tr-svc-in {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: none; }
  }
}
.tr-hero__map {
  justify-self: center;
  align-self: start;
  inline-size: min(100%, 280px);
}
.tr-atlas__svg {
  inline-size: 100%;
  max-inline-size: 280px;
  block-size: auto;
  display: block;
  overflow: visible;
}
.tr-atlas__land {
  fill: rgb(46 156 176 / 0.14);
  stroke: var(--c-sea-200);
  stroke-width: 1.2;
  stroke-linejoin: round;
}
.tr-atlas__road {
  stroke: var(--c-sea-200);
  stroke-width: 1.4;
  stroke-opacity: 0.55;
  stroke-dasharray: 5 6;
  stroke-linecap: round;
}
.tr-atlas__halo {
  fill: var(--c-gold-500);
  opacity: 0.18;
}
.tr-atlas__dot {
  fill: var(--c-gold-500);
  stroke: var(--c-navy-950);
  stroke-width: 1.5;
  transition: fill var(--dur-fast) var(--ease), stroke var(--dur-fast) var(--ease), stroke-width var(--dur-fast) var(--ease);
}
.tr-atlas__pin {
  direction: ltr;
  unicode-bidi: isolate;
  fill: var(--c-white);
  font-family: var(--font-display);
  font-size: 20px;
  font-weight: 700;
  paint-order: stroke;
  stroke: rgb(4 24 46 / 0.9);
  stroke-width: 4.5;
  stroke-linejoin: round;
}
.tr-atlas__node--minor .tr-atlas__dot {
  fill: var(--c-sea-200);
  stroke: var(--c-navy-950);
  stroke-width: 1.2;
}
.tr-atlas__node--minor .tr-atlas__halo { fill: var(--c-sea-200); opacity: 0.3; }
.tr-atlas__car { color: var(--c-white); }
@media (prefers-reduced-motion: no-preference) {
  .tr-atlas__road {
    animation: tr-atlas-flow 2.4s linear infinite;
    animation-delay: calc(var(--i, 0) * -0.6s);
  }
  @keyframes tr-atlas-flow { to { stroke-dashoffset: -22; } }
  .tr-atlas__halo {
    transform-box: fill-box;
    transform-origin: center;
    animation: tr-atlas-pulse 3.2s ease-in-out infinite;
  }
  @keyframes tr-atlas-pulse {
    0%, 100% { transform: scale(0.88); }
    50% { transform: scale(1.14); }
  }
}
@media (prefers-reduced-motion: reduce) {
  .tr-atlas__car { display: none; }
}
.tr-cover {
  margin-block-start: var(--sp-7);
  padding-block-start: var(--sp-5);
  border-block-start: 1px solid rgb(255 255 255 / 0.16);
}
.tr-cover__title {
  font-size: var(--fs-2xs);
  font-weight: var(--fw-bold);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--c-sea-200);
  margin-block: 0 var(--sp-3);
}
.tr-cover__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-2);
}
.tr-cover__city {
  padding: var(--sp-1) var(--sp-3);
  border: 1px solid rgb(255 255 255 / 0.18);
  border-radius: var(--r-full);
  background: rgb(255 255 255 / 0.06);
  font-size: var(--fs-xs);
  color: var(--c-sea-050);
  cursor: default;
  transition: background-color var(--dur-fast) var(--ease),
              border-color var(--dur-fast) var(--ease),
              color var(--dur-fast) var(--ease);
}
.tr-cover__city:hover {
  background: rgb(255 255 255 / 0.14);
  border-color: var(--c-gold-500);
  color: var(--c-white);
}
.tr-hero--cover:has(.tr-cover__city[data-k="chiangmai"]:hover) .tr-atlas__node[data-k="chiangmai"] .tr-atlas__halo,
.tr-hero--cover:has(.tr-cover__city[data-k="bangkok"]:hover) .tr-atlas__node[data-k="bangkok"] .tr-atlas__halo,
.tr-hero--cover:has(.tr-cover__city[data-k="ayutthaya"]:hover) .tr-atlas__node[data-k="ayutthaya"] .tr-atlas__halo,
.tr-hero--cover:has(.tr-cover__city[data-k="kanchanaburi"]:hover) .tr-atlas__node[data-k="kanchanaburi"] .tr-atlas__halo,
.tr-hero--cover:has(.tr-cover__city[data-k="khaoyai"]:hover) .tr-atlas__node[data-k="khaoyai"] .tr-atlas__halo,
.tr-hero--cover:has(.tr-cover__city[data-k="huahin"]:hover) .tr-atlas__node[data-k="huahin"] .tr-atlas__halo,
.tr-hero--cover:has(.tr-cover__city[data-k="pattaya"]:hover) .tr-atlas__node[data-k="pattaya"] .tr-atlas__halo,
.tr-hero--cover:has(.tr-cover__city[data-k="rayong"]:hover) .tr-atlas__node[data-k="rayong"] .tr-atlas__halo,
.tr-hero--cover:has(.tr-cover__city[data-k="samet"]:hover) .tr-atlas__node[data-k="samet"] .tr-atlas__halo,
.tr-hero--cover:has(.tr-cover__city[data-k="chang"]:hover) .tr-atlas__node[data-k="chang"] .tr-atlas__halo,
.tr-hero--cover:has(.tr-cover__city[data-k="kood"]:hover) .tr-atlas__node[data-k="kood"] .tr-atlas__halo,
.tr-hero--cover:has(.tr-cover__city[data-k="samui"]:hover) .tr-atlas__node[data-k="samui"] .tr-atlas__halo,
.tr-hero--cover:has(.tr-cover__city[data-k="donsak"]:hover) .tr-atlas__node[data-k="donsak"] .tr-atlas__halo,
.tr-hero--cover:has(.tr-cover__city[data-k="phuket"]:hover) .tr-atlas__node[data-k="phuket"] .tr-atlas__halo,
.tr-hero--cover:has(.tr-cover__city[data-k="khaolak"]:hover) .tr-atlas__node[data-k="khaolak"] .tr-atlas__halo,
.tr-hero--cover:has(.tr-cover__city[data-k="khaosok"]:hover) .tr-atlas__node[data-k="khaosok"] .tr-atlas__halo,
.tr-hero--cover:has(.tr-cover__city[data-k="krabi"]:hover) .tr-atlas__node[data-k="krabi"] .tr-atlas__halo,
.tr-hero--cover:has(.tr-cover__city[data-k="lanta"]:hover) .tr-atlas__node[data-k="lanta"] .tr-atlas__halo {
  opacity: 0.55;
}
.tr-hero--cover:has(.tr-cover__city[data-k="chiangmai"]:hover) .tr-atlas__node[data-k="chiangmai"] .tr-atlas__dot,
.tr-hero--cover:has(.tr-cover__city[data-k="bangkok"]:hover) .tr-atlas__node[data-k="bangkok"] .tr-atlas__dot,
.tr-hero--cover:has(.tr-cover__city[data-k="ayutthaya"]:hover) .tr-atlas__node[data-k="ayutthaya"] .tr-atlas__dot,
.tr-hero--cover:has(.tr-cover__city[data-k="kanchanaburi"]:hover) .tr-atlas__node[data-k="kanchanaburi"] .tr-atlas__dot,
.tr-hero--cover:has(.tr-cover__city[data-k="khaoyai"]:hover) .tr-atlas__node[data-k="khaoyai"] .tr-atlas__dot,
.tr-hero--cover:has(.tr-cover__city[data-k="huahin"]:hover) .tr-atlas__node[data-k="huahin"] .tr-atlas__dot,
.tr-hero--cover:has(.tr-cover__city[data-k="pattaya"]:hover) .tr-atlas__node[data-k="pattaya"] .tr-atlas__dot,
.tr-hero--cover:has(.tr-cover__city[data-k="rayong"]:hover) .tr-atlas__node[data-k="rayong"] .tr-atlas__dot,
.tr-hero--cover:has(.tr-cover__city[data-k="samet"]:hover) .tr-atlas__node[data-k="samet"] .tr-atlas__dot,
.tr-hero--cover:has(.tr-cover__city[data-k="chang"]:hover) .tr-atlas__node[data-k="chang"] .tr-atlas__dot,
.tr-hero--cover:has(.tr-cover__city[data-k="kood"]:hover) .tr-atlas__node[data-k="kood"] .tr-atlas__dot,
.tr-hero--cover:has(.tr-cover__city[data-k="samui"]:hover) .tr-atlas__node[data-k="samui"] .tr-atlas__dot,
.tr-hero--cover:has(.tr-cover__city[data-k="donsak"]:hover) .tr-atlas__node[data-k="donsak"] .tr-atlas__dot,
.tr-hero--cover:has(.tr-cover__city[data-k="phuket"]:hover) .tr-atlas__node[data-k="phuket"] .tr-atlas__dot,
.tr-hero--cover:has(.tr-cover__city[data-k="khaolak"]:hover) .tr-atlas__node[data-k="khaolak"] .tr-atlas__dot,
.tr-hero--cover:has(.tr-cover__city[data-k="khaosok"]:hover) .tr-atlas__node[data-k="khaosok"] .tr-atlas__dot,
.tr-hero--cover:has(.tr-cover__city[data-k="krabi"]:hover) .tr-atlas__node[data-k="krabi"] .tr-atlas__dot,
.tr-hero--cover:has(.tr-cover__city[data-k="lanta"]:hover) .tr-atlas__node[data-k="lanta"] .tr-atlas__dot {
  fill: var(--c-white);
  stroke: var(--c-gold-500);
  stroke-width: 2.5;
}
@media (min-width: 900px) {
  .tr-cover__list { gap: var(--sp-2) var(--sp-3); }
}
@media (max-width: 639px) {
  .tr-cover__list {
    display: block;
    line-height: var(--lh-relaxed);
  }
  .tr-cover__city {
    display: inline;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: none;
    font-size: var(--fs-sm);
  }
  .tr-cover__city:not(:last-child)::after {
    content: " · ";
    color: var(--c-sea-200);
    opacity: 0.6;
  }
  .tr-cover__city:hover { background: none; color: var(--c-gold-500); }
  .tr-hero__map { inline-size: min(100%, 220px); }
}
.tr-booking__panel {
  background:
    linear-gradient(180deg,
      color-mix(in srgb, var(--c-sea-050) 55%, var(--c-white)) 0,
      var(--c-white) 180px),
    var(--c-white);
  border: 1px solid color-mix(in srgb, var(--c-sea-200) 55%, transparent);
  border-radius: var(--r-lg);
  box-shadow:
    0 1px 2px color-mix(in srgb, var(--c-navy-950) 6%, transparent),
    0 12px 32px -18px color-mix(in srgb, var(--c-navy-950) 42%, transparent);
}
.tr-booking__title {
  position: relative;
  padding-block-end: var(--sp-3);
}
.tr-booking__title::after {
  content: "";
  position: absolute;
  inset-block-end: 0;
  inset-inline-start: 0;
  inline-size: 40px;
  block-size: 3px;
  border-radius: var(--r-full);
  background: var(--c-gold-500);
}
.tr-field__label {
  font-size: var(--fs-3xs);
  font-weight: var(--fw-bold);
  letter-spacing: 0.02em;
  color: var(--c-ink-500);
  margin-block-end: var(--sp-2);
}
.tr-field__req {
  color: var(--c-gold-600);
  font-weight: var(--fw-bold);
}
.tr-field__input {
  min-block-size: 52px;
  padding-block: var(--sp-2);
  padding-inline: var(--sp-4);
  color: var(--c-navy-900);
  background-color: color-mix(in srgb, var(--c-sea-050) 60%, var(--c-white));
  border: 1px solid color-mix(in srgb, var(--c-sea-200) 70%, transparent);
  border-radius: var(--r-md);
  transition:
    background-color var(--dur-fast) ease,
    border-color var(--dur-fast) ease,
    box-shadow var(--dur-fast) ease;
}
.tr-field__input::placeholder { color: var(--c-ink-400); }
.tr-field__input:hover {
  background-color: var(--c-white);
  border-color: var(--c-sea-400);
}
.tr-field__input:focus,
.tr-field__input:focus-visible {
  outline: none;
  background-color: var(--c-white);
  border-color: var(--c-sea-500);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--c-sea-500) 16%, transparent);
}
select.tr-field__input {
  appearance: none;
  -webkit-appearance: none;
  padding-inline-end: var(--sp-8);
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%232F6F8F' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 8l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: 18px 18px;
  background-position: left var(--sp-4) center;
  cursor: pointer;
}
[dir="ltr"] select.tr-field__input {
  background-position: right var(--sp-4) center;
}
.tr-field__input::-webkit-calendar-picker-indicator {
  padding: var(--sp-1);
  border-radius: var(--r-sm);
  cursor: pointer;
  opacity: 0.55;
  transition: opacity var(--dur-fast) ease, background-color var(--dur-fast) ease;
}
.tr-field__input::-webkit-calendar-picker-indicator:hover {
  opacity: 1;
  background-color: var(--c-sea-050);
}
.tr-field__hint {
  display: block;
  font-size: var(--fs-3xs);
  color: var(--c-ink-500);
  margin-block-start: var(--sp-1);
}
.tr-step__head {
  padding: var(--sp-4);
  border: 1px solid color-mix(in srgb, var(--c-sea-200) 55%, transparent);
  border-radius: var(--r-md);
  background: color-mix(in srgb, var(--c-sea-050) 45%, var(--c-white));
  transition: border-color var(--dur-fast) ease, background var(--dur-fast) ease;
}
.tr-step__num {
  display: grid;
  place-items: center;
  inline-size: 30px;
  block-size: 30px;
  flex: 0 0 auto;
  border-radius: var(--r-full);
  background: var(--c-white);
  border: 1px solid var(--c-sea-200);
  color: var(--c-sea-600);
  font-family: var(--font-display);
  font-size: var(--fs-2xs);
  font-weight: var(--fw-bold);
  transition: background var(--dur-fast) ease, color var(--dur-fast) ease,
              border-color var(--dur-fast) ease;
}
.tr-step.is-open > .tr-step__title > .tr-step__head {
  background: var(--c-white);
  border-color: var(--c-sea-400);
  box-shadow: 0 1px 2px color-mix(in srgb, var(--c-navy-950) 6%, transparent);
}
.tr-step.is-open > .tr-step__title > .tr-step__head .tr-step__num {
  background: var(--c-gold-500);
  border-color: var(--c-gold-600);
  color: var(--c-navy-950);
}
.tr-seg__opts {
  gap: var(--sp-1);
  padding: var(--sp-1);
  background: color-mix(in srgb, var(--c-sea-050) 70%, var(--c-white));
  border: 1px solid color-mix(in srgb, var(--c-sea-200) 55%, transparent);
  border-radius: var(--r-full);
}
.tr-seg__opt span {
  border: 0;
  border-radius: var(--r-full);
  background: transparent;
  color: var(--c-ink-700);
  transition: background var(--dur-fast) ease, color var(--dur-fast) ease;
}
.tr-seg__opt:hover span {
  background: color-mix(in srgb, var(--c-white) 80%, transparent);
}
.tr-seg__opt input:checked + span {
  background: var(--c-navy-900);
  color: var(--c-white);
  box-shadow: 0 1px 3px color-mix(in srgb, var(--c-navy-950) 30%, transparent);
}
.tr-seg__opt input:focus-visible + span {
  outline: none;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--c-sea-500) 30%, transparent);
}
.tr-veh__card {
  border-radius: var(--r-md);
  transition: transform var(--dur-fast) ease, box-shadow var(--dur-fast) ease,
              border-color var(--dur-fast) ease;
}
.tr-veh__opt:hover .tr-veh__card { border-color: var(--c-sea-400); }
.tr-veh__opt input:checked + .tr-veh__card {
  transform: translateY(-2px);
  box-shadow:
    0 0 0 2px var(--c-sea-500),
    0 10px 24px -14px color-mix(in srgb, var(--c-navy-950) 60%, transparent);
}
.tr-form__flight,
.tr-form__more {
  border: 1px solid color-mix(in srgb, var(--c-sea-200) 50%, transparent);
  border-radius: var(--r-md);
  background: color-mix(in srgb, var(--c-sea-050) 50%, var(--c-white));
}
@media (prefers-reduced-motion: reduce) {
  .tr-field__input,
  .tr-step__head,
  .tr-step__num,
  .tr-seg__opt span,
  .tr-veh__card { transition: none; }
  .tr-veh__opt input:checked + .tr-veh__card { transform: none; }
}
.tr-phone__prefix {
  padding-inline: var(--sp-2);
  background-image: none;
  text-align: center;
}
html[data-tr-booking="1"] #flight-tab-wrap {
  visibility: hidden;
  pointer-events: none;
}
.tr-region {
  border: 0;
  margin: 0 0 var(--sp-4);
  padding: 0;
}
.tr-region__legend {
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
  color: var(--c-ink-700);
  margin-block-end: var(--sp-2);
  padding: 0;
}
.tr-region__opts {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-2);
}
.tr-region__opt input {
  position: absolute;
  opacity: 0;
  inline-size: 1px;
  block-size: 1px;
}
.tr-region__opt span {
  display: inline-block;
  padding: var(--sp-2) var(--sp-4);
  border: 1px solid var(--tr-line);
  border-radius: var(--r-full);
  background: var(--c-white);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  color: var(--c-ink-700);
  cursor: pointer;
  transition: background-color var(--dur-fast) var(--ease),
              border-color var(--dur-fast) var(--ease),
              color var(--dur-fast) var(--ease);
}
.tr-region__opt:hover span { border-color: var(--c-sea-400); }
.tr-region__opt input:checked + span {
  background: var(--c-navy-900);
  border-color: var(--c-navy-900);
  color: var(--c-white);
}
.tr-region__opt input:focus-visible + span {
  box-shadow: 0 0 0 3px var(--c-sea-200);
}
.tr-field__input:disabled {
  background: var(--c-sea-050);
  color: var(--c-ink-400);
  cursor: not-allowed;
}
.tr-booking .tr-field__input {
  padding-block: var(--sp-2);
  line-height: var(--lh-tight);
}
.tr-booking .tr-field__label { margin-block-end: var(--sp-1); }
.tr-booking .tr-field__hint { margin-block-start: var(--sp-1); }
.tr-booking__panel { padding: var(--sp-5); }
.tr-booking .tr-step__head { padding: var(--sp-3) var(--sp-4); }
.tr-booking .tr-step__body { padding: var(--sp-3) var(--sp-1) var(--sp-1); }
.tr-booking .tr-form__grid {
  gap: var(--sp-2) var(--sp-4);
  margin-block-end: var(--sp-2);
}
.tr-booking .tr-seg { margin-block-end: var(--sp-3); }
.tr-booking .tr-seg__legend,
.tr-booking .tr-region__legend { margin-block-end: var(--sp-1); }
.tr-booking .tr-seg__opt span { padding-block: var(--sp-2); }
.tr-booking .tr-region { margin-block-end: var(--sp-3); }
.tr-booking .tr-region__opt span { padding: var(--sp-1) var(--sp-3); }
.tr-booking .tr-step__next { margin-block-start: var(--sp-3); }
@media (max-width: 639px) {
  .tr-booking__panel { padding: var(--sp-4) var(--sp-3); }
  .tr-booking .tr-step__head { padding: var(--sp-3); }
}
.tr-sel { position: relative; }
.tr-sel__native {
  position: absolute;
  inset: 0;
  inline-size: 100%;
  block-size: 100%;
  opacity: 0;
  pointer-events: none;
}
.tr-sel__btn {
  position: relative;
  z-index: 1;
  inline-size: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-3);
  padding: var(--sp-2) var(--sp-4);
  min-block-size: 44px;
  border: 1px solid var(--c-sea-200);
  border-radius: var(--r-sm);
  background: var(--c-sea-050);
  font-family: inherit;
  font-size: var(--fs-md);
  line-height: var(--lh-tight);
  color: var(--c-ink-900);
  text-align: start;
  cursor: pointer;
  transition: border-color var(--dur-fast) var(--ease),
              background-color var(--dur-fast) var(--ease);
}
.tr-sel__btn::after {
  content: "";
  inline-size: 10px;
  block-size: 10px;
  flex: 0 0 auto;
  border-right: 2px solid var(--c-sea-600);
  border-bottom: 2px solid var(--c-sea-600);
  transform: rotate(45deg) translate(-2px, -2px);
  transition: transform var(--dur-fast) var(--ease);
}
.tr-sel.is-open .tr-sel__btn::after { transform: rotate(-135deg) translate(-3px, -3px); }
.tr-sel__btn:hover { border-color: var(--c-sea-400); background: var(--c-white); }
.tr-sel__btn:focus-visible {
  outline: none;
  border-color: var(--c-sea-600);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--c-sea-400) 40%, transparent);
}
.tr-sel__btn.is-placeholder { color: var(--c-ink-400); }
.tr-sel__btn:disabled {
  background: var(--c-sea-050);
  color: var(--c-ink-400);
  cursor: not-allowed;
}
.tr-sel__list {
  position: absolute;
  z-index: 20;
  inset-inline: 0;
  inset-block-start: calc(100% + 4px);
  max-block-size: 264px;
  overflow-y: auto;
  margin: 0;
  padding: var(--sp-1);
  list-style: none;
  border: 1px solid var(--c-sea-200);
  border-radius: var(--r-md);
  background: var(--c-white);
  box-shadow: 0 18px 40px -18px color-mix(in srgb, var(--c-navy-950) 55%, transparent);
}
.tr-sel__opt {
  padding: var(--sp-2) var(--sp-3);
  border-radius: var(--r-sm);
  font-size: var(--fs-sm);
  color: var(--c-ink-700);
  cursor: pointer;
}
.tr-sel__opt:hover { background: var(--c-sea-050); }
.tr-sel__opt:focus-visible,
.tr-sel__opt:focus {
  outline: none;
  background: var(--c-sea-050);
  box-shadow: inset 0 0 0 2px var(--c-sea-400);
}
.tr-sel__opt[aria-selected="true"] {
  background: var(--c-navy-900);
  color: var(--c-white);
  font-weight: var(--fw-semibold);
}
.tr-sel__opt.is-placeholder { color: var(--c-ink-400); }
.tr-sel__opt[aria-disabled="true"] {
  color: var(--c-ink-400);
  text-decoration: line-through;
  cursor: not-allowed;
}
@media (prefers-reduced-motion: reduce) {
  .tr-sel__btn,
  .tr-sel__btn::after { transition: none; }
}
.tr-sel__group {
  padding: var(--sp-3) var(--sp-3) var(--sp-1);
  font-size: var(--fs-2xs);
  font-weight: var(--fw-bold);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--c-ink-400);
}
.tr-sel__group:not(:first-child) {
  margin-block-start: var(--sp-2);
  border-block-start: 1px solid var(--tr-line);
}
.tr-dests__more {
  margin-block: var(--sp-5) 0;
  font-size: var(--fs-sm);
  color: var(--c-ink-500);
}
.tr-dests__more a {
  color: var(--c-sea-600);
  font-weight: var(--fw-semibold);
}
.tr-dests__more a:hover { color: var(--c-navy-900); }
.tr-suggest-wrap { position: relative; display: block; }
.tr-suggest {
  position: absolute; inset-inline: 0; top: 100%; z-index: 30;
  margin: 2px 0 0; padding: 4px 0; list-style: none;
  background: #fff; border: 1px solid var(--c-sea-400); border-radius: 8px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, .14); max-height: 16rem; overflow-y: auto;
}
.tr-suggest[hidden] { display: none; }
.tr-suggest li {
  display: flex; align-items: center; min-height: 44px; padding: 8px 14px;
  font-size: 16px; line-height: 1.3; cursor: pointer; text-align: start;
}
.tr-suggest li b { font-weight: 700; }
.tr-suggest li:hover, .tr-suggest li[aria-selected="true"] { background: #eaf4f7; }
/* flights.css */
.fl-airports__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--sp-4);
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}
.fl-airport {
  position: relative;
  background: var(--c-surface-raised);
  border: 1px solid var(--c-line);
  border-radius: var(--r-md);
  padding: var(--sp-5);
}
.fl-airport__code {
  display: inline-block;
  direction: ltr;
  font-family: var(--font-mono, monospace);
  font-size: var(--fs-lg);
  font-weight: var(--fw-bold);
  letter-spacing: var(--ls-wide);
  color: var(--c-gold-700);
  background: var(--c-gold-050);
  border-radius: var(--r-sm);
  padding: var(--sp-1) var(--sp-3);
  margin-block-end: var(--sp-3);
}
.fl-airport__name {
  font-family: var(--font-display);
  font-size: var(--fs-md);
  font-weight: var(--fw-bold);
  color: var(--c-navy-900);
  margin-block: 0 var(--sp-1);
}
.fl-airport__city {
  font-size: var(--fs-2xs);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--c-sea-600);
  margin-block: 0 var(--sp-3);
}
.fl-airport__note {
  font-size: var(--fs-sm);
  line-height: var(--lh-relaxed);
  color: var(--c-ink-700);
  margin: 0;
}
.fl-airlines__list {
  list-style: none;
  margin: 0;
  padding: 0;
  columns: 2;
  column-gap: var(--sp-7);
}
@media (max-width: 719px) {
  .fl-airlines__list { columns: 1; }
}
.fl-airline {
  break-inside: avoid;
  padding-block: var(--sp-4);
  border-block-end: 1px solid var(--c-line);
}
.fl-airline__name {
  font-family: var(--font-display);
  font-size: var(--fs-md);
  font-weight: var(--fw-bold);
  color: var(--c-navy-900);
  margin-block: 0 var(--sp-1);
}
.fl-airline__note {
  font-size: var(--fs-sm);
  line-height: var(--lh-relaxed);
  color: var(--c-ink-700);
  margin: 0;
}
.fl-honest__panel {
  background: var(--c-navy-900);
  color: var(--c-white);
  border-radius: var(--r-md);
  padding: clamp(var(--sp-5), 3vw, var(--sp-8));
  max-inline-size: 76ch;
}
.fl-honest__title {
  font-family: var(--font-display);
  font-size: var(--fs-xl);
  font-weight: var(--fw-bold);
  color: var(--c-white);
  margin-block: 0 var(--sp-4);
}
.fl-honest__lede {
  font-size: var(--fs-md);
  line-height: var(--lh-relaxed);
  color: var(--c-sea-200);
  margin-block: 0 var(--sp-4);
}
.fl-honest__list {
  list-style: none;
  margin: 0 0 var(--sp-5);
  padding: 0;
  display: grid;
  gap: var(--sp-3);
}
.fl-honest__list li {
  position: relative;
  padding-inline-start: var(--sp-6);
  font-size: var(--fs-sm);
  line-height: var(--lh-relaxed);
  color: var(--c-white);
}
.fl-honest__list li::before {
  content: "";
  position: absolute;
  inset-inline-start: 0;
  inset-block-start: 0.45em;
  inline-size: var(--sp-3);
  block-size: var(--sp-3);
  border-left: 2px solid var(--c-gold-500);
  border-bottom: 2px solid var(--c-gold-500);
  transform: rotate(-45deg);
}
.fl-honest__note {
  font-size: var(--fs-sm);
  line-height: var(--lh-relaxed);
  color: var(--c-sea-200);
  margin: 0;
  padding-block-start: var(--sp-4);
  border-block-start: 1px solid rgb(255 255 255 / 0.15);
}
.fl-tips__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--sp-4);
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}
.fl-tip {
  background: var(--c-sea-050);
  border-radius: var(--r-md);
  padding: var(--sp-5);
}
.fl-tip__title {
  font-family: var(--font-display);
  font-size: var(--fs-md);
  font-weight: var(--fw-bold);
  color: var(--c-navy-900);
  margin-block: 0 var(--sp-2);
}
.fl-tip__text {
  font-size: var(--fs-sm);
  line-height: var(--lh-relaxed);
  color: var(--c-ink-700);
  margin: 0;
}
.fl-seo__body {
  max-inline-size: 76ch;
  font-size: var(--fs-md);
  line-height: var(--lh-relaxed);
  color: var(--c-ink-700);
}
.fl-seo__body p { margin-block: 0 var(--sp-4); }
.fl-seo__body p:last-child { margin-block-end: 0; }
:root:has(.fl-progress) { --fl-bar-h: 32px; }
.fl-seo__wrap {
  display: grid;
  gap: clamp(var(--sp-5), 3vw, var(--sp-8));
}
.fl-seo__block + .fl-seo__block { margin-block-start: var(--sp-6); }
.fl-seo__h {
  margin: 0 0 var(--sp-2);
  font-family: var(--font-display);
  font-size: var(--fs-lg);
  font-weight: var(--fw-bold);
  color: var(--text-strong);
  line-height: var(--lh-tight);
}
.fl-seo__h::before {
  content: "";
  display: inline-block;
  inline-size: 18px;
  block-size: 2px;
  margin-inline-end: .5em;
  vertical-align: middle;
  background: var(--c-gold-500);
  border-radius: 2px;
}
.fl-facts {
  padding: var(--sp-5);
  background: var(--c-sea-050);
  border: 1px solid var(--c-sea-200);
  border-radius: var(--r-md, 12px);
}
.fl-facts__title {
  margin: 0 0 var(--sp-4);
  font-family: var(--font-display);
  font-size: var(--fs-sm);
  font-weight: var(--fw-bold);
  color: var(--c-sea-700);
  letter-spacing: var(--ls-wide);
}
.fl-facts__list { margin: 0; padding: 0; list-style: none; }
.fl-facts__row {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: baseline;
  gap: var(--sp-3);
  padding-block: var(--sp-2);
  border-block-end: 1px solid rgba(0, 0, 0, .06);
}
.fl-facts__row:last-child { border-block-end: 0; }
.fl-facts__code {
  direction: ltr;
  unicode-bidi: isolate;
  min-inline-size: 3.2em;
  font-family: var(--font-mono, ui-monospace, monospace);
  font-size: var(--fs-sm);
  font-weight: var(--fw-bold);
  color: var(--c-sea-700);
}
.fl-facts__place { font-size: var(--fs-sm); color: var(--text-body); }
.fl-facts__note {
  margin: var(--sp-4) 0 0;
  font-size: var(--fs-xs);
  color: var(--text-muted);
  line-height: var(--lh-relaxed);
}
@media (min-width: 900px) {
  .fl-seo__wrap {
    grid-template-columns: minmax(0, 1fr) clamp(240px, 26%, 300px);
    align-items: start;
  }
  .fl-seo__aside {
    position: sticky;
    top: calc(var(--header-h, 66px) + var(--fl-bar-h, 32px) + var(--sp-4));
  }
  .fl-seo__body { max-inline-size: none; }
}
.fl-progress {
  --p: 0%;
  --fl-bar-h: 32px;
  pointer-events: none;
  position: fixed;
  inset-block-start: var(--header-h, 66px);
  inset-inline: 0;
  z-index: calc(var(--z-sticky) - 1);
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: var(--sp-3);
  padding: 6px clamp(var(--sp-4), 4vw, var(--sp-7));
  background: color-mix(in srgb, var(--c-navy-900, #0b1420) 88%, transparent);
  backdrop-filter: blur(8px);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: opacity .2s var(--ease), transform .2s var(--ease), visibility .2s;
}
.fl-progress[data-on="1"] {
  opacity: 1;
  visibility: visible;
  transform: none;
}
.fl-progress__from,
.fl-progress__to {
  font-size: var(--fs-3xs, .7rem);
  font-weight: var(--fw-semibold);
  color: rgba(255, 255, 255, .62);
  letter-spacing: var(--ls-wide);
  white-space: nowrap;
}
.fl-progress__track {
  position: relative;
  block-size: 2px;
  border-radius: 2px;
  background-image: repeating-linear-gradient(
    to left,
    rgba(255, 255, 255, .28) 0 5px,
    transparent 5px 11px
  );
}
.fl-progress__done {
  position: absolute;
  inset-block: 0;
  inset-inline-start: auto;
  inset-inline-end: 0;
  inline-size: var(--p);
  border-radius: 2px;
  background: linear-gradient(to left, var(--c-gold-500), var(--c-sea-400));
}
.fl-progress__plane {
  position: absolute;
  inset-inline-end: var(--p);
  inset-block-start: 50%;
  translate: 50% -50%;
  display: grid;
  place-items: center;
  inline-size: 26px;
  block-size: 26px;
  border-radius: 50%;
  background: var(--c-gold-500);
  color: #2a1b00;
  box-shadow: 0 2px 10px rgba(0, 0, 0, .35);
  transition: inset-inline-end .08s linear;
}
.fl-progress__plane svg { transform: scaleX(-1); }
@media (max-width: 640px) {
  :root:has(.fl-progress) { --fl-bar-h: 28px; }
  .fl-progress { gap: var(--sp-2); padding-inline: var(--sp-3); }
  .fl-progress__from,
  .fl-progress__to { font-size: .62rem; }
  .fl-progress__plane { inline-size: 22px; block-size: 22px; }
  .fl-progress__plane svg { width: 14px; height: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  .fl-progress { display: none; }
}
.fl-supplier-strip .te-strip.section {
  position: relative;
  padding-block: var(--sp-7);
  background: linear-gradient(160deg, var(--c-navy-900) 0%, var(--c-navy-950) 60%, #06203a 100%);
  color: var(--text-on-dark);
  margin-inline: calc(50% - 50vw);
  padding-inline: calc(50vw - 50%);
  overflow: hidden;
}
.fl-supplier-strip .te-strip.section::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(60% 120% at 15% 0%, rgba(18, 160, 179, .22), transparent 60%),
    radial-gradient(50% 110% at 85% 100%, rgba(240, 168, 26, .14), transparent 60%);
}
.fl-supplier-strip .te-strip .container { position: relative; }
.fl-supplier-strip .te-strip h2 {
  font-size: var(--fs-2xl);
  color: var(--text-on-dark);
  margin-bottom: var(--sp-2);
}
.fl-supplier-strip .te-strip > .container > p {
  font-size: var(--fs-sm);
  color: rgba(255, 255, 255, .72);
  max-width: 60ch;
  margin-inline: auto;
}
.fl-supplier-strip .partner-logo--text {
  color: rgba(255, 255, 255, .78);
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
}
.fl-supplier-strip .partner-logo--text:hover { color: #fff; }
/* mobile.css */
@media (max-width: 700px) {
  .hero,
  .hotel-hero,
  .tr-hero {
    max-block-size: min(46dvh, 320px);
    overflow: hidden;
  }
  .hero__inner,
  .hotel-hero__inner {
    padding-block: var(--sp-6);
  }
  .cc__opt input[type="checkbox"],
  :where(input:is([type="checkbox"], [type="radio"]):not(.visually-hidden, [data-tap-exempt])) {
    inline-size: 22px;
    block-size: 22px;
    margin: 11px;
    outline-offset: 4px;
  }
  .cc__opt {
    display: flex;
    align-items: center;
    gap: var(--sp-1);
    min-height: 44px;
    cursor: pointer;
  }
  .related-chip,
  .kw-chip,
  .pill {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
  }
  p, li, td, dd, figcaption, span, small {
    font-size: max(12px, 1em);
  }
  .boarding-pass__label,
  .boarding-pass__code,
  .boarding-pass__iata {
    font-size: 11px;
  }
  .nav-badge { font-size: 11px; }
  .features-grid,
  .feature-grid,
  .info-grid,
  .facts-grid,
  .highlights-grid,
  .bcard__form {
    grid-template-columns: 1fr !important;
  }
  .feature-card {
    grid-template-columns: 32px 1fr !important;
    align-items: start;
    gap: var(--sp-2);
  }
  .price-table,
  .pricing-table,
  .tickets-table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
  }
  .price-table > *,
  .pricing-table > *,
  .tickets-table > * {
    min-width: max-content;
  }
  .btn--primary,
  .btn-primary:not(.card-cta .btn-primary),
  .booking__send,
  .lead-submit,
  :where([type="submit"]) {
    min-height: var(--tap-cta);
    font-size: max(var(--control-font-min), var(--fs-base));
  }
  .container,
  .hero__inner,
  main > section > .container {
    padding-inline: max(16px, var(--gutter));
  }
  h1 { font-size: clamp(24px, 7vw, 32px); line-height: 1.2; }
  h2 { font-size: clamp(20px, 5.6vw, 26px); line-height: 1.25; }
  h3 { font-size: clamp(17px, 4.6vw, 20px); }
  .section,
  .section-alt { padding-block: var(--sp-7); }
}
@media (max-width: 400px) {
  :root { --te-card-w: 100%; }
  .legacy #te-main :is(.pricing-cards, .package-options, .package-cards,
                       .pricing-grid, .tickets-grid, .ticket-options) {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 700px) {
  .carousel__dot,
  .rgal__dot,
  .rail__btn,
  .carousel__btn {
    position: relative;
  }
  .carousel__dot::after,
  .rgal__dot::after,
  .rail__btn::after,
  .carousel__btn::after {
    content: "";
    position: absolute;
    inset: -8px;
    z-index: 0;
  }
  a.brand,
  .site-header .brand {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
  }
  .partner-logo { min-height: 44px; }
}
@media (max-width: 700px) {
  .related-chip.related-chip,
  .kw-chip.kw-chip,
  .pill.pill {
    min-height: 44px;
    padding-block: 8px;
  }
  .carousel__dot.carousel__dot,
  .rgal__dot.rgal__dot { min-width: 28px; min-height: 28px; }
  .rail__btn.rail__btn,
  .carousel__btn.carousel__btn { min-width: 44px; min-height: 44px; }
  .btn-secondary.btn-secondary,
  .btn-whatsapp.btn-whatsapp { min-height: 44px; }
  .btn-secondary.btn-secondary[type="submit"] { min-height: var(--tap-cta); }
  .booking__note.booking__note,
  .booking__eyebrow.booking__eyebrow { font-size: 12px; }
  .nav-badge.nav-badge { font-size: 11px; }
  .boarding-pass__label.boarding-pass__label,
  .boarding-pass__code.boarding-pass__code,
  .boarding-pass__iata.boarding-pass__iata { font-size: 11px; }
}
@media (max-width: 700px) {
  a.revived-link-inline { padding-block: 12px; }
}
@media (max-width: 700px) {
  .tr-seg__opt,
  .tr-veh__opt,
  .lead-consent,
  .nl__consent,
  .checkbox-group .checkbox-label,
  :where(label:has(> input[type="radio"]), label:has(> input[type="checkbox"])) {
    min-height: var(--tap-min);
    display: flex;
    align-items: center;
    gap: var(--sp-1);
  }
  .site-footer a,
  .footer-legal a,
  .a11y-statement {
    padding-block: 10px;
    display: inline-flex;
    align-items: center;
    min-block-size: var(--tap-min);
  }
}
@media (max-width: 700px) {
  .rgal,
  .hotel-rooms__item .rgal {
    max-height: 190px;
  }
  .rgal__main,
  .rgal__main img {
    aspect-ratio: 16 / 10;
    max-height: 190px;
    object-fit: cover;
  }
  .rgal__dots { margin-block: 4px; }
  .hotel-rooms__text { padding-block: var(--sp-2); }
  .hotel-rooms__item {
    padding-block-end: var(--sp-3);
    border-block-end: 1px solid var(--line, #e6e1d8);
  }
  .hotel-rooms { gap: var(--sp-3); }
  .hero h1,
  .hero__inner h1 { font-size: clamp(22px, 6vw, 28px); line-height: 1.15; }
  .hero__lede { font-size: 15px; line-height: 1.45; }
  .btn-row,
  .hero__chips,
  .kw-chips,
  .related-chips {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--sp-2);
  }
  .btn-row > *,
  .hero__chips > * { flex: 0 1 auto; }
  .steps li,
  .step-list li,
  :where([class*="step"] > li) { padding-block: var(--sp-2); }
  .section,
  .section-alt { padding-block: var(--sp-6); }
  .section-header { margin-block-end: var(--sp-4); }
}
@media (max-width: 700px) {
  .footer-grid {
    grid-template-columns: 1fr 1fr;
    gap: var(--sp-4) var(--sp-3);
    align-items: start;
  }
  .footer-grid > *:first-child { grid-column: 1 / -1; }
  .footer-grid ul { margin: 0; }
  .footer-grid li { margin-block: 0; }
  .footer-grid li a {
    display: flex;
    padding-block: 4px;
    font-size: 13.5px;
    line-height: 1.3;
  }
  .footer-bottom {
    flex-wrap: wrap;
    gap: var(--sp-1);
    padding-block: var(--sp-3);
  }
}
@media (max-width: 700px) {
  .card.is-linked:has(> .card-media),
  .pillar-card:has(> .card-media) {
    display: grid;
    grid-template-columns: 110px 1fr;
    align-items: stretch;
  }
  .card.is-linked > .card-media,
  .pillar-card > .card-media {
    height: 100%;
    min-height: 110px;
  }
  .card.is-linked > .card-media img,
  .pillar-card > .card-media img {
    height: 100%;
    object-fit: cover;
  }
  .card.is-linked > .card-body,
  .pillar-card > .card-body { padding: var(--sp-2) var(--sp-3); }
  .card.is-linked .card-title { font-size: 15px; line-height: 1.25; }
  .card.is-linked .card-desc,
  .card.is-linked p { font-size: 13px; line-height: 1.4; }
}
@media (max-width: 700px) {
  .legacy #te-main :is(.price-card, .package-card, .pricing-card,
                       .ticket-card):has(> :is(.package-image, .price-image,
                       .ticket-image, [class$="-image"], [class$="__media"])) {
    grid-template-columns: 120px 1fr;
    grid-template-rows: auto;
    align-items: stretch;
  }
  .legacy #te-main :is(.price-card, .package-card, .pricing-card, .ticket-card)
    > :is(.package-image, .price-image, .ticket-image, [class$="-image"], [class$="__media"]) {
    height: 100%;
    min-height: 120px;
  }
  .legacy #te-main :is(.price-card, .package-card, .pricing-card, .ticket-card)
    > :is(.package-image, .price-image, .ticket-image, [class$="-image"], [class$="__media"]) img {
    height: 100%;
    aspect-ratio: auto;
    object-fit: cover;
  }
  .legacy #te-main :is(.price-card, .package-card, .pricing-card, .ticket-card)
    :is([class$="-content"], [class$="__body"], .package-content) {
    text-align: start;
    padding: var(--sp-2) var(--sp-3);
    display: flex;
    flex-direction: column;
    gap: 4px;
  }
  .legacy #te-main :is(.price-card, .package-card, .pricing-card, .ticket-card)
    :is([class$="-type"], [class$="-name"], [class$="-title"], h3, h4) {
    margin: 0;
    text-align: start;
    font-size: 14.5px;
  }
  .legacy #te-main :is(.price-card, .package-card, .pricing-card, .ticket-card)
    :is(.price, .card-price, [class$="__price"], .ticket-price) {
    justify-content: flex-start;
    padding-block: 2px 0;
  }
  .boat-note { margin-block-start: 6px; padding-block-start: 6px; }
}
@media (max-width: 900px) {
  .nav-sub-toggle {
    background: none;
    border: 0;
    border-radius: 0;
    inline-size: auto;
    min-width: 0;
    padding: 0 6px;
    opacity: .5;
    position: relative;
  }
  .nav-sub-toggle::after {
    content: "";
    position: absolute;
    inset: -12px -8px;
  }
  .nav-sub-toggle[aria-expanded="true"] { opacity: .9; }
  .main-nav li:has(> .nav-sub-toggle) > a { font-weight: 600; }
  .main-nav li ul {
    padding-inline-start: var(--sp-3);
    margin-inline-start: var(--sp-2);
    border-inline-start: 2px solid rgba(255, 255, 255, .14);
  }
  .main-nav li ul a {
    padding-block: 10px;
    font-size: 14.5px;
    opacity: .82;
  }
  .main-nav[data-open="true"] {
    display: flex;
    flex-direction: column;
    max-block-size: calc(100dvh - var(--header-h, 66px));
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  .main-nav[data-open="true"] > ul { flex: 1 1 auto; }
  .main-nav__foot,
  .main-nav .nav-contact {
    margin-block-start: auto;
    padding-block: var(--sp-4);
    border-block-start: 1px solid rgba(255, 255, 255, .12);
  }
  .main-nav > ul > li > a { padding-block: 11px; }
}
@media (max-width: 900px) {
  .main-nav .nav-sub-toggle,
  .nav-sub-toggle.nav-sub-toggle {
    background: transparent;
    box-shadow: none;
  }
  .main-nav > ul > li:not(:has(> .nav-sub-toggle)) > a {
    font-weight: 500;
  }
  .main-nav > ul > li:has(> .nav-sub-toggle) > a {
    font-weight: 700;
  }
}
@media (max-width: 900px) {
  .main-nav .nav-sub-toggle {
    inline-size: 48px;
    min-block-size: 44px;
    opacity: .72;
  }
  .main-nav .nav-sub-toggle::after {
    content: '';
    position: absolute;
    inset: -14px -10px;
  }
  .main-nav > ul > li:has(> .nav-sub-toggle) > a {
    padding-inline-end: 56px;
  }
}
@media (max-width: 720px) {
  .hotel-rooms__item--shot {
    display: grid;
    grid-template-columns: 118px minmax(0, 1fr);
    gap: var(--sp-3);
    align-items: start;
  }
  .hotel-rooms__item--shot .rgal,
  .hotel-rooms__item--shot .rgal__main,
  .hotel-rooms__item--shot .rgal__main img {
    max-height: none;
    aspect-ratio: 4 / 3;
  }
  .hotel-rooms__item--shot .rgal__dots { display: none; }
  .hotel-rooms__item--shot .hotel-rooms__name {
    font-size: 15px;
    line-height: 1.3;
    margin-block: 0 4px;
  }
  .hotel-rooms__item--shot .hotel-rooms__facts {
    gap: 4px;
    margin-block: 0;
  }
  .hotel-rooms__item--shot .hotel-rooms__facts li {
    font-size: 12px;
    padding: 2px 8px;
    line-height: 1.35;
  }
  .hotel-rooms__item--shot .hotel-rooms__note {
    font-size: 12.5px;
    line-height: 1.4;
    margin-block: 4px 0;
  }
  .hotel-rooms__item--shot .hotel-rooms__text { padding-block: 0; }
}
@media (max-width: 720px) {
  #te-main table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    max-inline-size: 100%;
    scroll-snap-type: x proximity;
  }
  #te-main table th,
  #te-main table td,
  main table th,
  main table td {
    white-space: nowrap;
    scroll-snap-align: start;
  }
  #te-main table th:first-child,
  #te-main table td:first-child,
  main table th:first-child,
  main table td:first-child {
    white-space: normal;
  }
  #te-main table th:first-child,
  #te-main table td:first-child {
    min-inline-size: 96px;
  }
}
@media (max-width: 900px) {
  .attr-split > *,
  .attr-split__main,
  .attr-split__aside,
  :where([class*="-split"] > *),
  .grid > *,
  .tour-grid > * {
    min-inline-size: 0;
  }
  .compare-table-container,
  #te-main .container,
  main .container {
    max-inline-size: 100%;
  }
}
@media (max-width: 880px) {
  .about-team .about-grid,
  .legacy #te-main #about .about-grid,
  .legacy #te-main .about-grid {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }
  .about-team .about-side,
  .legacy #te-main #about .about-side {
    padding: 14px 14px 16px;
  }
}
@media (max-width: 720px) {
  .flight-tab-wrap {
    inset-block-start: auto;
    inset-block-end: 100px;
    transform: none;
  }
}
@media (max-width: 720px) {
  .pricing {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .pricing > table,
  .pricing .price-table { min-inline-size: 0; }
}
