/* ==========================================================================
   IslandTravelAtlas v36 Core CSS
   Generated 2026-07-29 from the audited v35 component system.
   This replaces the inconsistent multi-patch load chain used by v35.
   ========================================================================== */

/* ===== BEGIN SOURCE: css/style.css ===== */
/* ============================================
   IslandTravelAtlas.com — Design System
   Premium palette: navy / teal / gold
   Playfair Display + Inter
   ============================================ */

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400&family=Inter:wght@400;500;600;700;800;900&display=swap');

:root {
  --ink: #0A1F44;
  --ink-muted: #3A4A62;
  --ink-soft: #8B97A8;
  --canvas: #FFFFFF;
  --surface: #F7F8FA;
  --surface-warm: #FDF8F0;
  --primary: #0077B6;
  --primary-dark: #005a8a;
  --primary-light: #E8F4FD;
  --accent: #D4A762;
  --accent-dark: #c49650;
  --accent-light: #FEF5E6;
  --hairline: #E5E8EC;
  --shadow-sm: 0 2px 8px rgba(10,31,68,0.04);
  --shadow-md: 0 4px 20px rgba(10,31,68,0.06);
  --shadow-lg: 0 8px 32px rgba(10,31,68,0.08);
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }

body {
  margin: 0;
  color: var(--ink);
  background: var(--surface);
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }
a { color: var(--primary); transition: color 0.2s ease; }

h1, h2, h3, h4 {
  font-family: 'Playfair Display', Georgia, serif;
  color: var(--ink);
  letter-spacing: -0.02em;
}
h1 { font-size: clamp(2.4rem, 5vw, 3.6rem); line-height: 1.1; }
h2 { font-size: clamp(1.6rem, 3vw, 2.2rem); line-height: 1.15; }
h3 { font-size: clamp(1.1rem, 1.8vw, 1.4rem); line-height: 1.2; }
h4 { font-size: 1.05rem; line-height: 1.3; }
p { color: var(--ink-muted); }

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

.skip-link {
  position: fixed; z-index: 9999; top: 10px; left: 10px;
  transform: translateY(-160%); padding: .7rem 1rem;
  color: #fff !important; background: var(--ink); border-radius: 8px; text-decoration: none;
}
.skip-link:focus { transform: translateY(0); }

.site-container {
  width: min(calc(100% - 40px), 1260px);
  margin-inline: auto;
}

/* === ITA TRANSFERS RECONFIGURATION START === */

/*
 * Transfers page styling is scoped under .ita-transfers-page.
 * This keeps the shared stylesheet as the single source of truth
 * without unintentionally restyling unrelated pages.
 */

body.ita-transfers-page {
  --ita-ink: #10251c;
  --ita-muted: #52665d;
  --ita-green: #1a6b4a;
  --ita-green-dark: #124d39;
  --ita-deep: #0d2f26;
  --ita-sand: #f7f4ec;
  --ita-soft: #eef5f0;
  --ita-card: #ffffff;
  --ita-line: #dce6df;
  --ita-shadow: 0 18px 45px rgba(16, 37, 28, 0.10);

  background: var(--ita-sand);
  color: var(--ita-ink);
}

.ita-transfers-page main,
.ita-transfers-page .site-main,
.ita-transfers-page .page-main {
  min-width: 0;
  overflow: clip;
  color: var(--ita-ink);
}

.ita-transfers-page main :where(
  h1,
  h2,
  h3,
  h4,
  strong,
  b
) {
  color: var(--ita-ink);
}

.ita-transfers-page main :where(
  p,
  li,
  dd,
  dt,
  small
) {
  color: var(--ita-muted);
}

.ita-transfers-page main :where(
  p,
  li
) {
  line-height: 1.72;
}

.ita-transfers-page main img {
  display: block;
  max-width: 100%;
  height: auto;
}

.ita-transfers-page :where(
  .page-shell,
  .content-shell,
  .content-wrap,
  .container,
  .wrapper,
  .page-container
) {
  width: min(1180px, calc(100% - 32px));
  margin-inline: auto;
}

/* Hero and opening decision area */

.ita-transfers-page :where(
  .page-hero,
  .tool-hero,
  .planning-hero,
  .transfer-hero,
  .hero
) {
  position: relative;
  isolation: isolate;
  overflow: hidden;

  padding: clamp(28px, 5vw, 64px);

  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 28px;

  background:
    radial-gradient(
      circle at 88% 12%,
      rgba(113, 205, 164, 0.24),
      transparent 28%
    ),
    linear-gradient(
      135deg,
      #0d2f26 0%,
      #174c3b 58%,
      #1a6b4a 100%
    );

  box-shadow: var(--ita-shadow);
}

.ita-transfers-page :where(
  .page-hero,
  .tool-hero,
  .planning-hero,
  .transfer-hero,
  .hero
) :where(
  h1,
  h2,
  h3,
  p,
  li,
  small,
  strong,
  span
) {
  color: #ffffff;
}

.ita-transfers-page :where(
  .page-hero,
  .tool-hero,
  .planning-hero,
  .transfer-hero,
  .hero
) p {
  max-width: 760px;
  color: rgba(255, 255, 255, 0.84);
}

.ita-transfers-page :where(
  .page-hero,
  .tool-hero,
  .planning-hero,
  .transfer-hero,
  .hero
) img {
  border-radius: 22px;
  box-shadow: 0 24px 55px rgba(0, 0, 0, 0.24);
}

/* Buttons and conversion actions */

.ita-transfers-page main :where(
  .button,
  .btn,
  .cta,
  .primary-button,
  .secondary-button,
  a[class*="button"],
  button[class*="button"],
  a[class*="btn-"],
  button[class*="btn-"]
) {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-height: 46px;
  padding: 0.78rem 1.15rem;

  border: 1px solid transparent;
  border-radius: 999px;

  font-weight: 750;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;

  transition:
    transform 0.16s ease,
    box-shadow 0.16s ease,
    background-color 0.16s ease,
    border-color 0.16s ease;
}

.ita-transfers-page main :where(
  .button-primary,
  .btn-primary,
  .primary-button,
  .cta-primary,
  a[rel~="sponsored"]
) {
  background: var(--ita-green);
  color: #ffffff;
  box-shadow: 0 10px 24px rgba(26, 107, 74, 0.22);
}

.ita-transfers-page main :where(
  .button-secondary,
  .btn-secondary,
  .secondary-button,
  .cta-secondary
) {
  border-color: var(--ita-line);
  background: #ffffff;
  color: var(--ita-ink);
}

.ita-transfers-page main :where(
  .button,
  .btn,
  .cta,
  a[rel~="sponsored"]
):hover {
  transform: translateY(-2px);
  background: var(--ita-green-dark);
  color: #ffffff;
  box-shadow: 0 14px 30px rgba(16, 37, 28, 0.16);
}

.ita-transfers-page main :where(
  .button,
  .btn,
  .cta,
  a,
  button
):focus-visible {
  outline: 3px solid rgba(26, 107, 74, 0.32);
  outline-offset: 3px;
}

/* Grids */

.ita-transfers-page :where(
  .steps-grid,
  .step-grid,
  .decision-grid,
  .transfer-grid,
  .transfer-type-grid,
  .options-grid,
  .provider-grid,
  .comparison-grid,
  .guide-grid,
  .related-grid,
  .card-grid,
  .cards-grid
) {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(16px, 2vw, 24px);
  align-items: stretch;
}

/* Cards */

.ita-transfers-page :where(
  .step-card,
  .decision-card,
  .transfer-card,
  .transfer-type,
  .option-card,
  .provider-card,
  .affiliate-card,
  .comparison-card,
  .guide-card,
  .related-card,
  .resource-card,
  .faq-item,
  details
) {
  min-width: 0;
  height: 100%;

  padding: clamp(18px, 2.5vw, 28px);

  border: 1px solid var(--ita-line);
  border-radius: 20px;

  background: var(--ita-card);
  box-shadow: 0 10px 28px rgba(16, 37, 28, 0.06);
}

.ita-transfers-page :where(
  .provider-card,
  .affiliate-card,
  .comparison-card
) {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;

  border-top: 4px solid var(--ita-green);
}

.ita-transfers-page :where(
  .provider-card,
  .affiliate-card,
  .comparison-card
) a[rel~="sponsored"] {
  width: 100%;
  margin-top: auto;
}

/* Numbered process cards */

.ita-transfers-page :where(
  .step-number,
  .card-number,
  .sequence-number,
  [class*="step-number"]
) {
  display: inline-grid;
  place-items: center;

  width: 42px;
  height: 42px;

  border-radius: 50%;

  background: var(--ita-soft);
  color: var(--ita-green-dark);

  font-weight: 850;
}

/* Section spacing */

.ita-transfers-page main :where(
  section,
  .section,
  .content-section
) {
  scroll-margin-top: 110px;
}

.ita-transfers-page main :where(
  section,
  .section,
  .content-section
) + :where(
  section,
  .section,
  .content-section
) {
  margin-top: clamp(34px, 6vw, 72px);
}

.ita-transfers-page main :where(
  section,
  .section,
  .content-section
) > :where(
  h2,
  .section-title
) {
  max-width: 850px;
  margin-bottom: 0.75rem;

  font-size: clamp(1.65rem, 3vw, 2.45rem);
  line-height: 1.12;
  letter-spacing: -0.03em;
}

.ita-transfers-page main :where(
  section,
  .section,
  .content-section
) > p {
  max-width: 780px;
}

/* Disclosures and notices */

.ita-transfers-page :where(
  .affiliate-disclosure,
  .disclosure,
  .notice,
  .planning-notice,
  .important-notice,
  .alert,
  .callout
) {
  padding: 18px 20px;

  border: 1px solid #cbded2;
  border-left: 5px solid var(--ita-green);
  border-radius: 16px;

  background: #f3f8f5;
  color: var(--ita-ink);
}

/* Checklists */

.ita-transfers-page :where(
  .checklist,
  .booking-checklist,
  .details-list,
  .requirements-list
) {
  display: grid;
  gap: 0.7rem;

  margin: 0;
  padding: 0;

  list-style: none;
}

.ita-transfers-page :where(
  .checklist,
  .booking-checklist,
  .details-list,
  .requirements-list
) > li {
  position: relative;
  padding-left: 1.75rem;
}

.ita-transfers-page :where(
  .checklist,
  .booking-checklist,
  .details-list,
  .requirements-list
) > li::before {
  content: "✓";

  position: absolute;
  left: 0;

  color: var(--ita-green);
  font-weight: 900;
}

/* FAQ */

.ita-transfers-page details summary {
  cursor: pointer;
  color: var(--ita-ink);
  font-weight: 780;
}

/* Tables */

.ita-transfers-page main :where(
  .table-wrap,
  .table-scroll,
  .responsive-table
) {
  overflow-x: auto;

  border: 1px solid var(--ita-line);
  border-radius: 16px;

  background: #ffffff;
}

.ita-transfers-page main table {
  width: 100%;
  border-collapse: collapse;
  background: #ffffff;
  color: var(--ita-ink);
}

.ita-transfers-page main :where(
  th,
  td
) {
  padding: 0.9rem 1rem;

  border-bottom: 1px solid var(--ita-line);

  text-align: left;
  vertical-align: top;
}

.ita-transfers-page main th {
  background: var(--ita-soft);
  color: var(--ita-ink);
}

/* New mega-menu panel styling */

.ita-transfers-page header :where(
  .mega-menu-panel,
  .mega-panel,
  .nav-mega-panel,
  .navigation-panel,
  [data-mega-panel]
) {
  border: 1px solid var(--ita-line);

  background: #ffffff;
  color: var(--ita-ink);

  box-shadow: 0 24px 60px rgba(16, 37, 28, 0.16);
}

.ita-transfers-page header :where(
  .mega-menu-panel,
  .mega-panel,
  .nav-mega-panel,
  .navigation-panel,
  [data-mega-panel]
) :where(
  h2,
  h3,
  p,
  a,
  span
) {
  color: inherit;
}

.ita-transfers-page footer {
  margin-top: clamp(56px, 8vw, 96px);
}

/* Tablet */

@media (max-width: 980px) {
  .ita-transfers-page :where(
    .steps-grid,
    .step-grid,
    .decision-grid,
    .transfer-grid,
    .transfer-type-grid,
    .options-grid,
    .provider-grid,
    .comparison-grid,
    .guide-grid,
    .related-grid,
    .card-grid,
    .cards-grid
  ) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Mobile */

@media (max-width: 680px) {
  .ita-transfers-page :where(
    .page-shell,
    .content-shell,
    .content-wrap,
    .container,
    .wrapper,
    .page-container
  ) {
    width: min(100% - 22px, 1180px);
  }

  .ita-transfers-page :where(
    .page-hero,
    .tool-hero,
    .planning-hero,
    .transfer-hero,
    .hero
  ) {
    padding: 24px 18px;
    border-radius: 20px;
  }

  .ita-transfers-page :where(
    .steps-grid,
    .step-grid,
    .decision-grid,
    .transfer-grid,
    .transfer-type-grid,
    .options-grid,
    .provider-grid,
    .comparison-grid,
    .guide-grid,
    .related-grid,
    .card-grid,
    .cards-grid
  ) {
    grid-template-columns: 1fr;
  }

  .ita-transfers-page main :where(
    .button,
    .btn,
    .cta,
    .primary-button,
    .secondary-button,
    a[rel~="sponsored"]
  ) {
    width: 100%;
  }

  .ita-transfers-page main :where(
    th,
    td
  ) {
    padding: 0.72rem 0.8rem;
  }
}

/* Accessibility */

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

/* === ITA TRANSFERS RECONFIGURATION END === */
/* ===== END SOURCE: css/style.css ===== */

/* ===== BEGIN SOURCE: assets/css/ita-global.css ===== */
/* ==========================================================
   IslandTravelAtlas Global Design System
   Canonical site-wide stylesheet
   ========================================================== */

:root {
  --ita-bg: #f7f4ec;
  --ita-surface: #ffffff;
  --ita-surface-soft: #eef5f0;
  --ita-surface-warm: #fbfaf6;

  --ita-ink: #10251c;
  --ita-text: #40584d;
  --ita-muted: #61746b;

  --ita-green: #1a6b4a;
  --ita-green-dark: #104b36;
  --ita-green-soft: #dcebe2;
  --ita-deep: #0d2f26;

  --ita-border: #dce6df;
  --ita-border-strong: #c8d8ce;

  --ita-warning-bg: #fff8e6;
  --ita-warning-border: #e6b94a;

  --ita-radius-sm: 10px;
  --ita-radius-md: 16px;
  --ita-radius-lg: 24px;
  --ita-radius-xl: 30px;

  --ita-shadow-sm:
    0 8px 24px rgba(16, 37, 28, 0.06);

  --ita-shadow-md:
    0 18px 45px rgba(16, 37, 28, 0.10);

  --ita-shadow-lg:
    0 28px 70px rgba(16, 37, 28, 0.15);

  --ita-content:
    min(1180px, calc(100% - 32px));

  --ita-reading:
    760px;
}

/* ---------- Foundation ---------- */

html {
  box-sizing: border-box;
  scroll-behavior: smooth;
  text-size-adjust: 100%;
}

*,
*::before,
*::after {
  box-sizing: inherit;
}

body.ita-site {
  min-width: 320px;
  margin: 0;

  background: var(--ita-bg);
  color: var(--ita-text);

  font-family:
    Inter,
    ui-sans-serif,
    system-ui,
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    sans-serif;

  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

body.ita-site :where(
  h1,
  h2,
  h3,
  h4,
  h5,
  h6
) {
  margin-top: 0;
  color: var(--ita-ink);
  font-weight: 780;
  line-height: 1.12;
  letter-spacing: -0.025em;
}

body.ita-site h1 {
  font-size: clamp(2.25rem, 6vw, 4.75rem);
}

body.ita-site h2 {
  font-size: clamp(1.7rem, 3.8vw, 2.75rem);
}

body.ita-site h3 {
  font-size: clamp(1.18rem, 2vw, 1.5rem);
}

body.ita-site :where(
  p,
  ul,
  ol,
  dl,
  blockquote
) {
  margin-top: 0;
}

body.ita-site p {
  color: var(--ita-text);
}

body.ita-site strong {
  color: var(--ita-ink);
}

body.ita-site a {
  color: var(--ita-green-dark);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;
}

body.ita-site a:hover {
  color: var(--ita-green);
}

body.ita-site img,
body.ita-site picture,
body.ita-site video,
body.ita-site iframe {
  max-width: 100%;
}

body.ita-site img {
  display: block;
  height: auto;
}

body.ita-site button,
body.ita-site input,
body.ita-site select,
body.ita-site textarea {
  font: inherit;
}

body.ita-site :focus-visible {
  outline: 3px solid rgba(26, 107, 74, 0.34);
  outline-offset: 3px;
}

/* ---------- Shared containers ---------- */

body.ita-site :where(
  .container,
  .wrapper,
  .site-container,
  .site-shell,
  .page-shell,
  .content-shell,
  .content-wrap,
  .page-container,
  .layout-shell
) {
  width: var(--ita-content);
  margin-inline: auto;
}

body.ita-site main {
  min-width: 0;
}

body.ita-site main > :where(
  .container,
  .wrapper,
  .site-container,
  .site-shell,
  .page-shell,
  .content-shell,
  .content-wrap,
  .page-container,
  .layout-shell
) {
  padding-block:
    clamp(28px, 5vw, 72px);
}

/* ---------- Header and navigation ---------- */

body.ita-site :where(
  .site-header,
  .main-header,
  header[role="banner"]
) {
  position: relative;
  z-index: 100;

  border-bottom: 1px solid var(--ita-border);
  background: rgba(255, 255, 255, 0.97);
  color: var(--ita-ink);

  box-shadow:
    0 6px 20px rgba(16, 37, 28, 0.04);
}

body.ita-site :where(
  .site-header,
  .main-header,
  header[role="banner"]
) a {
  color: var(--ita-ink);
  text-decoration: none;
}

body.ita-site :where(
  .site-header,
  .main-header,
  header[role="banner"]
) a:hover {
  color: var(--ita-green);
}

body.ita-site :where(
  .site-header,
  .main-header
) :where(
  nav,
  .nav-links,
  .navigation
) {
  min-width: 0;
}

body.ita-site :where(
  .site-header,
  .main-header
) :where(
  .mega-menu,
  .mega-menu-panel,
  .mega-panel,
  .navigation-panel,
  .dropdown-menu
) {
  border: 1px solid var(--ita-border);
  background: var(--ita-surface);
  color: var(--ita-ink);
  box-shadow: var(--ita-shadow-lg);
}

/* ---------- Breadcrumbs ---------- */

body.ita-site :where(
  .breadcrumbs,
  .breadcrumb,
  nav[aria-label="Breadcrumb"],
  nav[aria-label="breadcrumbs"]
) {
  width: var(--ita-content);
  margin: 0 auto;
  padding-top: 22px;

  color: var(--ita-muted);
  font-size: 0.9rem;
}

body.ita-site :where(
  .breadcrumbs,
  .breadcrumb,
  nav[aria-label="Breadcrumb"],
  nav[aria-label="breadcrumbs"]
) a {
  color: var(--ita-green-dark);
}

/* ---------- Hero sections ---------- */

body.ita-site :where(
  .hero,
  .page-hero,
  .home-hero,
  .tool-hero,
  .planning-hero,
  .guide-hero,
  .destination-hero,
  .transfer-hero
) {
  position: relative;
  isolation: isolate;
  overflow: hidden;

  width: var(--ita-content);
  margin-inline: auto;
  padding: clamp(30px, 6vw, 72px);

  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: var(--ita-radius-xl);

  background:
    radial-gradient(
      circle at 88% 10%,
      rgba(125, 211, 171, 0.23),
      transparent 30%
    ),
    linear-gradient(
      135deg,
      #0d2f26 0%,
      #164b3a 58%,
      #1a6b4a 100%
    );

  color: #ffffff;
  box-shadow: var(--ita-shadow-md);
}

body.ita-site :where(
  .hero,
  .page-hero,
  .home-hero,
  .tool-hero,
  .planning-hero,
  .guide-hero,
  .destination-hero,
  .transfer-hero
) :where(
  h1,
  h2,
  h3,
  h4,
  p,
  li,
  strong,
  span,
  small
) {
  color: inherit;
}

body.ita-site :where(
  .hero,
  .page-hero,
  .home-hero,
  .tool-hero,
  .planning-hero,
  .guide-hero,
  .destination-hero,
  .transfer-hero
) p {
  max-width: 780px;
  color: rgba(255, 255, 255, 0.84);
}

body.ita-site :where(
  .hero,
  .page-hero,
  .home-hero,
  .tool-hero,
  .planning-hero,
  .guide-hero,
  .destination-hero,
  .transfer-hero
) img {
  border-radius: var(--ita-radius-lg);
  box-shadow: var(--ita-shadow-lg);
}

/* ---------- Eyebrows and labels ---------- */

body.ita-site :where(
  .eyebrow,
  .kicker,
  .section-label,
  .overline,
  .page-label
) {
  margin-bottom: 0.65rem;

  color: var(--ita-green);
  font-size: 0.76rem;
  font-weight: 850;
  letter-spacing: 0.12em;
  line-height: 1.3;
  text-transform: uppercase;
}

/* ---------- Sections ---------- */

body.ita-site main :where(
  section,
  .section,
  .content-section
) {
  scroll-margin-top: 100px;
}

body.ita-site main :where(
  section,
  .section,
  .content-section
) + :where(
  section,
  .section,
  .content-section
) {
  margin-top: clamp(34px, 6vw, 72px);
}

body.ita-site main :where(
  .section-header,
  .section-intro
) {
  max-width: 820px;
  margin-bottom: clamp(18px, 3vw, 30px);
}

/* ---------- Shared grids ---------- */

body.ita-site :where(
  .card-grid,
  .cards-grid,
  .guide-grid,
  .destination-grid,
  .route-grid,
  .tool-grid,
  .provider-grid,
  .comparison-grid,
  .feature-grid,
  .resource-grid,
  .related-grid,
  .steps-grid,
  .step-grid,
  .options-grid,
  .transfer-grid,
  .standards-grid,
  .policy-grid,
  .about-grid
) {
  display: grid;
  grid-template-columns:
    repeat(3, minmax(0, 1fr));

  gap: clamp(16px, 2.2vw, 26px);
  align-items: stretch;
}

/* ---------- Shared cards ---------- */

body.ita-site :where(
  .card,
  .content-card,
  .guide-card,
  .destination-card,
  .route-card,
  .tool-card,
  .provider-card,
  .comparison-card,
  .feature-card,
  .resource-card,
  .related-card,
  .step-card,
  .option-card,
  .transfer-card,
  .standard-card,
  .policy-card,
  .about-card,
  .faq-item,
  details
) {
  min-width: 0;
  padding: clamp(19px, 2.5vw, 29px);

  border: 1px solid var(--ita-border);
  border-radius: var(--ita-radius-lg);

  background: var(--ita-surface);
  color: var(--ita-text);

  box-shadow: var(--ita-shadow-sm);
}

body.ita-site :where(
  .card,
  .content-card,
  .guide-card,
  .destination-card,
  .route-card,
  .tool-card,
  .provider-card,
  .comparison-card,
  .feature-card,
  .resource-card,
  .related-card,
  .step-card,
  .option-card,
  .transfer-card,
  .standard-card,
  .policy-card,
  .about-card
) :where(
  h2,
  h3,
  h4
) {
  color: var(--ita-ink);
}

body.ita-site :where(
  .provider-card,
  .comparison-card,
  .tool-card
) {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}

body.ita-site :where(
  .provider-card,
  .comparison-card,
  .tool-card
) :where(
  .button,
  .btn,
  .cta,
  a[rel~="sponsored"]
) {
  margin-top: auto;
}

/* ---------- Buttons ---------- */

body.ita-site main :where(
  .button,
  .btn,
  .cta,
  .primary-button,
  .secondary-button,
  a[class*="button"],
  button[class*="button"],
  a[class*="btn-"],
  button[class*="btn-"]
) {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-height: 46px;
  padding: 0.78rem 1.15rem;

  border: 1px solid transparent;
  border-radius: 999px;

  font-weight: 760;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;

  transition:
    transform 0.16s ease,
    box-shadow 0.16s ease,
    background-color 0.16s ease,
    border-color 0.16s ease;
}

body.ita-site main :where(
  .button-primary,
  .btn-primary,
  .primary-button,
  .cta-primary
) {
  background: var(--ita-green);
  color: #ffffff;
  box-shadow:
    0 10px 25px rgba(26, 107, 74, 0.22);
}

body.ita-site main :where(
  .button-secondary,
  .btn-secondary,
  .secondary-button,
  .cta-secondary
) {
  border-color: var(--ita-border-strong);
  background: var(--ita-surface);
  color: var(--ita-ink);
}

body.ita-site main :where(
  .button,
  .btn,
  .cta,
  .primary-button,
  .secondary-button
):hover {
  transform: translateY(-2px);
  box-shadow: var(--ita-shadow-md);
}

/* ---------- Notices and disclosures ---------- */

body.ita-site :where(
  .notice,
  .alert,
  .callout,
  .affiliate-disclosure,
  .disclosure,
  .planning-notice,
  .important-notice
) {
  padding: 18px 20px;

  border: 1px solid #cadfd2;
  border-left: 5px solid var(--ita-green);
  border-radius: var(--ita-radius-md);

  background: #f1f7f3;
  color: var(--ita-text);
}

body.ita-site :where(
  .warning,
  .warning-notice
) {
  border-color: var(--ita-warning-border);
  background: var(--ita-warning-bg);
}

/* ---------- Lists ---------- */

body.ita-site :where(
  .checklist,
  .details-list,
  .requirements-list,
  .booking-checklist
) {
  display: grid;
  gap: 0.7rem;

  margin: 0;
  padding: 0;

  list-style: none;
}

body.ita-site :where(
  .checklist,
  .details-list,
  .requirements-list,
  .booking-checklist
) > li {
  position: relative;
  padding-left: 1.75rem;
}

body.ita-site :where(
  .checklist,
  .details-list,
  .requirements-list,
  .booking-checklist
) > li::before {
  content: "✓";

  position: absolute;
  left: 0;

  color: var(--ita-green);
  font-weight: 900;
}

/* ---------- Tables ---------- */

body.ita-site :where(
  .table-wrap,
  .table-scroll,
  .responsive-table
) {
  overflow-x: auto;

  border: 1px solid var(--ita-border);
  border-radius: var(--ita-radius-md);

  background: var(--ita-surface);
}

body.ita-site table {
  width: 100%;
  border-collapse: collapse;

  background: var(--ita-surface);
  color: var(--ita-text);
}

body.ita-site :where(
  th,
  td
) {
  padding: 0.9rem 1rem;

  border-bottom: 1px solid var(--ita-border);

  text-align: left;
  vertical-align: top;
}

body.ita-site th {
  background: var(--ita-surface-soft);
  color: var(--ita-ink);
}

/* ---------- Forms ---------- */

body.ita-site :where(
  input,
  select,
  textarea
) {
  width: 100%;
  min-height: 44px;
  padding: 0.7rem 0.8rem;

  border: 1px solid var(--ita-border-strong);
  border-radius: var(--ita-radius-sm);

  background: var(--ita-surface);
  color: var(--ita-ink);
}

body.ita-site textarea {
  min-height: 130px;
  resize: vertical;
}

/* ---------- Dark-section contrast ---------- */

body.ita-site :where(
  .dark-section,
  .theme-dark,
  .surface-dark,
  .site-footer,
  footer[role="contentinfo"]
) {
  background: var(--ita-deep);
  color: rgba(255, 255, 255, 0.84);
}

body.ita-site :where(
  .dark-section,
  .theme-dark,
  .surface-dark,
  .site-footer,
  footer[role="contentinfo"]
) :where(
  h1,
  h2,
  h3,
  h4,
  strong
) {
  color: #ffffff;
}

body.ita-site :where(
  .dark-section,
  .theme-dark,
  .surface-dark,
  .site-footer,
  footer[role="contentinfo"]
) :where(
  p,
  li,
  small,
  span
) {
  color: rgba(255, 255, 255, 0.78);
}

body.ita-site :where(
  .dark-section,
  .theme-dark,
  .surface-dark,
  .site-footer,
  footer[role="contentinfo"]
) a {
  color: #dff4e8;
}

/* ---------- Footer ---------- */

body.ita-site :where(
  .site-footer,
  footer[role="contentinfo"]
) {
  margin-top: clamp(54px, 8vw, 100px);
  padding-block: clamp(42px, 6vw, 72px);
}

body.ita-site :where(
  .site-footer,
  footer[role="contentinfo"]
) :where(
  .container,
  .wrapper,
  .site-container,
  .site-shell
) {
  width: var(--ita-content);
  margin-inline: auto;
}

/* ==========================================================
   ABOUT PAGE
   Stored globally and scoped through the body page class
   ========================================================== */

body.ita-page--about main {
  width: var(--ita-content);
  margin-inline: auto;
  padding-block:
    clamp(28px, 5vw, 74px);
}

body.ita-page--about main :where(
  .about-page,
  .about-content,
  article
) {
  max-width: 960px;
}

body.ita-page--about main > :where(
  article,
  .about-page,
  .about-content,
  .page-content,
  .content-shell
) {
  margin-inline: auto;
}

body.ita-page--about main h1 {
  max-width: 940px;
  margin-bottom: 1.1rem;
}

body.ita-page--about main h1 + p {
  max-width: 780px;

  color: var(--ita-text);
  font-size: clamp(1.08rem, 2vw, 1.28rem);
  line-height: 1.7;
}

body.ita-page--about main h2 {
  margin-top: clamp(34px, 6vw, 58px);
  margin-bottom: 0.85rem;
  padding-top: clamp(22px, 3vw, 30px);

  border-top: 1px solid var(--ita-border);
}

body.ita-page--about main h2 + p {
  max-width: var(--ita-reading);
}

body.ita-page--about main :where(
  .editorial-standards,
  .standards-links,
  .about-links,
  .policy-links
) {
  display: grid;
  grid-template-columns:
    repeat(3, minmax(0, 1fr));

  gap: 14px;
}

body.ita-page--about main :where(
  .editorial-standards,
  .standards-links,
  .about-links,
  .policy-links
) a {
  display: flex;
  align-items: center;

  min-height: 64px;
  padding: 14px 16px;

  border: 1px solid var(--ita-border);
  border-radius: var(--ita-radius-md);

  background: var(--ita-surface);
  color: var(--ita-ink);

  font-weight: 700;
  text-decoration: none;

  box-shadow: var(--ita-shadow-sm);
}

body.ita-page--about main :where(
  .editorial-standards,
  .standards-links,
  .about-links,
  .policy-links
) a:hover {
  border-color: var(--ita-green);
  color: var(--ita-green-dark);
  transform: translateY(-1px);
}

/* ---------- Responsive ---------- */

@media (max-width: 980px) {
  body.ita-site :where(
    .card-grid,
    .cards-grid,
    .guide-grid,
    .destination-grid,
    .route-grid,
    .tool-grid,
    .provider-grid,
    .comparison-grid,
    .feature-grid,
    .resource-grid,
    .related-grid,
    .steps-grid,
    .step-grid,
    .options-grid,
    .transfer-grid,
    .standards-grid,
    .policy-grid,
    .about-grid
  ) {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }

  body.ita-page--about main :where(
    .editorial-standards,
    .standards-links,
    .about-links,
    .policy-links
  ) {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 680px) {
  :root {
    --ita-content:
      min(100% - 22px, 1180px);
  }

  body.ita-site :where(
    .hero,
    .page-hero,
    .home-hero,
    .tool-hero,
    .planning-hero,
    .guide-hero,
    .destination-hero,
    .transfer-hero
  ) {
    padding: 25px 18px;
    border-radius: 20px;
  }

  body.ita-site :where(
    .card-grid,
    .cards-grid,
    .guide-grid,
    .destination-grid,
    .route-grid,
    .tool-grid,
    .provider-grid,
    .comparison-grid,
    .feature-grid,
    .resource-grid,
    .related-grid,
    .steps-grid,
    .step-grid,
    .options-grid,
    .transfer-grid,
    .standards-grid,
    .policy-grid,
    .about-grid
  ) {
    grid-template-columns: 1fr;
  }

  body.ita-page--about main :where(
    .editorial-standards,
    .standards-links,
    .about-links,
    .policy-links
  ) {
    grid-template-columns: 1fr;
  }

  body.ita-site main :where(
    .button,
    .btn,
    .cta,
    .primary-button,
    .secondary-button
  ) {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  body.ita-site *,
  body.ita-site *::before,
  body.ita-site *::after {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}

/* === ITA GLOBAL DARK CONTRAST START === */

:root {
  --ita-on-dark: #ffffff;
  --ita-on-dark-body: #e3eee8;
  --ita-on-dark-muted: #cadbd2;
  --ita-on-dark-link: #f4fff8;
  --ita-on-dark-border:
    rgba(255, 255, 255, 0.26);
}

/*
 * Generated from actual dark-background selectors
 * detected across the website.
 */

.skip-link,
.rf-header-cta,
.rf-mobile-cta,
.rf-menu-button > span:not(.sr-only),
.rf-button-dark,
.rf-route-card,
.rf-connection-strip,
.rf-destination-shade,
.rf-route-method,
.rf-feature-story,
.rf-final-cta,
.rf-planning-section,
.rf-filter-row button.is-active,
.rf-destination-hub .cluster-hero,
.rf-destination-hub .greek-hub-hero,
.rf-destination-hub .ocean-hub-hero,
.rf-destination-hub .caribbean-hub-hero,
.rf-guide-article .article-hero,
.rf-guide-article .greek-article-hero,
.rf-guide-article .ocean-article-hero,
.rf-guide-article .caribbean-article-hero,
.rf-guide-article th,
.rf-commercial-page th,
.rf-footer,
.rf-guide-article figure.article-hero,
.rf-flight-hero-visual,
.rf-flight-hero-visual figcaption,
.rf-flight-steps,
.rf-flight-dark-section,
.rf-flight-gateway-list article,
.rf-flight-table th,
.rf-flight-destination-grid a,
.rf-flight-booking-card,
.rf-button-primary,
.button.button-primary,
.button-primary,
a.button-primary,
.ita-transfers-page :where(
  .page-hero,
.tool-hero,
.planning-hero,
.transfer-hero,
.hero
),
.pm-header-cta,
body.ita-site :where(
  .hero,
.page-hero,
.home-hero,
.guide-hero,
.destination-hero,
.transfer-hero
),
.ita-dark-surface,
.dark-section,
.theme-dark,
.surface-dark,
.bg-dark,
[data-theme='dark'],
[class*='dark-surface'],
[class*='dark-section'],
.site-footer,
footer[role='contentinfo'],
.guide-index-hero,
.guide-library-hero,
.library-hero,
.planning-band,
.route-band,
.tool-band,
.cta-band {
  color: var(--ita-on-dark-body) !important;
}

.skip-link :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.rf-header-cta :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.rf-mobile-cta :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.rf-menu-button > span:not(.sr-only) :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.rf-button-dark :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.rf-route-card :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.rf-connection-strip :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.rf-destination-shade :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.rf-route-method :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.rf-feature-story :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.rf-final-cta :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.rf-planning-section :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.rf-filter-row button.is-active :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.rf-destination-hub .cluster-hero :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.rf-destination-hub .greek-hub-hero :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.rf-destination-hub .ocean-hub-hero :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.rf-destination-hub .caribbean-hub-hero :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.rf-guide-article .article-hero :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.rf-guide-article .greek-article-hero :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.rf-guide-article .ocean-article-hero :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.rf-guide-article .caribbean-article-hero :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.rf-guide-article th :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.rf-commercial-page th :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.rf-footer :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.rf-guide-article figure.article-hero :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.rf-flight-hero-visual :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.rf-flight-hero-visual figcaption :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.rf-flight-steps :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.rf-flight-dark-section :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.rf-flight-gateway-list article :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.rf-flight-table th :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.rf-flight-destination-grid a :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.rf-flight-booking-card :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.rf-button-primary :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.button.button-primary :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.button-primary :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
a.button-primary :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.ita-transfers-page :where(
  .page-hero :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.tool-hero :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.planning-hero :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.transfer-hero :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.hero
) :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.pm-header-cta :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
body.ita-site :where(
  .hero :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.page-hero :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.home-hero :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.guide-hero :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.destination-hero :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.transfer-hero
) :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.ita-dark-surface :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.dark-section :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.theme-dark :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.surface-dark :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.bg-dark :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
[data-theme='dark'] :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
[class*='dark-surface'] :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
[class*='dark-section'] :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.site-footer :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
footer[role='contentinfo'] :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.guide-index-hero :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.guide-library-hero :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.library-hero :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.planning-band :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.route-band :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.tool-band :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.cta-band :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading) {
  color: var(--ita-on-dark) !important;

  text-shadow:
    0 1px 1px rgba(0, 0, 0, 0.18);
}

.skip-link :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.rf-header-cta :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.rf-mobile-cta :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.rf-menu-button > span:not(.sr-only) :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.rf-button-dark :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.rf-route-card :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.rf-connection-strip :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.rf-destination-shade :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.rf-route-method :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.rf-feature-story :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.rf-final-cta :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.rf-planning-section :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.rf-filter-row button.is-active :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.rf-destination-hub .cluster-hero :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.rf-destination-hub .greek-hub-hero :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.rf-destination-hub .ocean-hub-hero :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.rf-destination-hub .caribbean-hub-hero :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.rf-guide-article .article-hero :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.rf-guide-article .greek-article-hero :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.rf-guide-article .ocean-article-hero :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.rf-guide-article .caribbean-article-hero :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.rf-guide-article th :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.rf-commercial-page th :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.rf-footer :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.rf-guide-article figure.article-hero :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.rf-flight-hero-visual :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.rf-flight-hero-visual figcaption :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.rf-flight-steps :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.rf-flight-dark-section :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.rf-flight-gateway-list article :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.rf-flight-table th :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.rf-flight-destination-grid a :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.rf-flight-booking-card :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.rf-button-primary :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.button.button-primary :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.button-primary :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
a.button-primary :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.ita-transfers-page :where(
  .page-hero :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.tool-hero :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.planning-hero :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.transfer-hero :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.hero
) :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.pm-header-cta :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
body.ita-site :where(
  .hero :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.page-hero :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.home-hero :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.guide-hero :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.destination-hero :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.transfer-hero
) :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.ita-dark-surface :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.dark-section :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.theme-dark :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.surface-dark :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.bg-dark :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
[data-theme='dark'] :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
[class*='dark-surface'] :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
[class*='dark-section'] :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.site-footer :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
footer[role='contentinfo'] :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.guide-index-hero :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.guide-library-hero :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.library-hero :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.planning-band :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.route-band :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.tool-band :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker),
.cta-band :where(p,li,dd,dt,small,label,.description,.summary,.meta,.eyebrow,.kicker) {
  color:
    var(--ita-on-dark-body) !important;

  opacity: 1 !important;
}

.skip-link a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-header-cta a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-mobile-cta a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-menu-button > span:not(.sr-only) a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-button-dark a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-route-card a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-connection-strip a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-destination-shade a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-route-method a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-feature-story a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-final-cta a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-planning-section a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-filter-row button.is-active a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-destination-hub .cluster-hero a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-destination-hub .greek-hub-hero a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-destination-hub .ocean-hub-hero a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-destination-hub .caribbean-hub-hero a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-guide-article .article-hero a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-guide-article .greek-article-hero a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-guide-article .ocean-article-hero a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-guide-article .caribbean-article-hero a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-guide-article th a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-commercial-page th a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-footer a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-guide-article figure.article-hero a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-flight-hero-visual a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-flight-hero-visual figcaption a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-flight-steps a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-flight-dark-section a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-flight-gateway-list article a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-flight-table th a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-flight-destination-grid a a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-flight-booking-card a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-button-primary a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.button.button-primary a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.button-primary a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
a.button-primary a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.ita-transfers-page :where(
  .page-hero a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.tool-hero a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.planning-hero a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.transfer-hero a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.hero
) a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.pm-header-cta a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
body.ita-site :where(
  .hero a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.page-hero a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.home-hero a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.guide-hero a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.destination-hero a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.transfer-hero
) a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.ita-dark-surface a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.dark-section a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.theme-dark a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.surface-dark a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.bg-dark a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
[data-theme='dark'] a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
[class*='dark-surface'] a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
[class*='dark-section'] a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.site-footer a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
footer[role='contentinfo'] a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.guide-index-hero a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.guide-library-hero a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.library-hero a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.planning-band a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.route-band a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.tool-band a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.cta-band a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']) {
  color:
    var(--ita-on-dark-link) !important;

  text-decoration-color:
    rgba(244, 255, 248, 0.68) !important;
}

.skip-link a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-header-cta a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-mobile-cta a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-menu-button > span:not(.sr-only) a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-button-dark a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-route-card a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-connection-strip a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-destination-shade a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-route-method a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-feature-story a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-final-cta a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-planning-section a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-filter-row button.is-active a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-destination-hub .cluster-hero a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-destination-hub .greek-hub-hero a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-destination-hub .ocean-hub-hero a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-destination-hub .caribbean-hub-hero a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-guide-article .article-hero a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-guide-article .greek-article-hero a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-guide-article .ocean-article-hero a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-guide-article .caribbean-article-hero a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-guide-article th a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-commercial-page th a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-footer a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-guide-article figure.article-hero a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-flight-hero-visual a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-flight-hero-visual figcaption a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-flight-steps a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-flight-dark-section a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-flight-gateway-list article a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-flight-table th a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-flight-destination-grid a a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-flight-booking-card a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.rf-button-primary a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.button.button-primary a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.button-primary a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
a.button-primary a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.ita-transfers-page :where(
  .page-hero a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.tool-hero a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.planning-hero a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.transfer-hero a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.hero
) a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.pm-header-cta a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
body.ita-site :where(
  .hero a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.page-hero a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.home-hero a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.guide-hero a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.destination-hero a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.transfer-hero
) a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.ita-dark-surface a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.dark-section a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.theme-dark a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.surface-dark a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.bg-dark a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
[data-theme='dark'] a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
[class*='dark-surface'] a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
[class*='dark-section'] a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.site-footer a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
footer[role='contentinfo'] a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.guide-index-hero a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.guide-library-hero a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.library-hero a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.planning-band a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.route-band a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.tool-band a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']),
.cta-band a:not(.button):not(.btn):not([class*='button']):not([class*='btn-']):hover {
  color: #ffffff !important;

  text-decoration-color:
    #ffffff !important;
}

.skip-link :where(.button-secondary,.btn-secondary,.secondary-button),
.rf-header-cta :where(.button-secondary,.btn-secondary,.secondary-button),
.rf-mobile-cta :where(.button-secondary,.btn-secondary,.secondary-button),
.rf-menu-button > span:not(.sr-only) :where(.button-secondary,.btn-secondary,.secondary-button),
.rf-button-dark :where(.button-secondary,.btn-secondary,.secondary-button),
.rf-route-card :where(.button-secondary,.btn-secondary,.secondary-button),
.rf-connection-strip :where(.button-secondary,.btn-secondary,.secondary-button),
.rf-destination-shade :where(.button-secondary,.btn-secondary,.secondary-button),
.rf-route-method :where(.button-secondary,.btn-secondary,.secondary-button),
.rf-feature-story :where(.button-secondary,.btn-secondary,.secondary-button),
.rf-final-cta :where(.button-secondary,.btn-secondary,.secondary-button),
.rf-planning-section :where(.button-secondary,.btn-secondary,.secondary-button),
.rf-filter-row button.is-active :where(.button-secondary,.btn-secondary,.secondary-button),
.rf-destination-hub .cluster-hero :where(.button-secondary,.btn-secondary,.secondary-button),
.rf-destination-hub .greek-hub-hero :where(.button-secondary,.btn-secondary,.secondary-button),
.rf-destination-hub .ocean-hub-hero :where(.button-secondary,.btn-secondary,.secondary-button),
.rf-destination-hub .caribbean-hub-hero :where(.button-secondary,.btn-secondary,.secondary-button),
.rf-guide-article .article-hero :where(.button-secondary,.btn-secondary,.secondary-button),
.rf-guide-article .greek-article-hero :where(.button-secondary,.btn-secondary,.secondary-button),
.rf-guide-article .ocean-article-hero :where(.button-secondary,.btn-secondary,.secondary-button),
.rf-guide-article .caribbean-article-hero :where(.button-secondary,.btn-secondary,.secondary-button),
.rf-guide-article th :where(.button-secondary,.btn-secondary,.secondary-button),
.rf-commercial-page th :where(.button-secondary,.btn-secondary,.secondary-button),
.rf-footer :where(.button-secondary,.btn-secondary,.secondary-button),
.rf-guide-article figure.article-hero :where(.button-secondary,.btn-secondary,.secondary-button),
.rf-flight-hero-visual :where(.button-secondary,.btn-secondary,.secondary-button),
.rf-flight-hero-visual figcaption :where(.button-secondary,.btn-secondary,.secondary-button),
.rf-flight-steps :where(.button-secondary,.btn-secondary,.secondary-button),
.rf-flight-dark-section :where(.button-secondary,.btn-secondary,.secondary-button),
.rf-flight-gateway-list article :where(.button-secondary,.btn-secondary,.secondary-button),
.rf-flight-table th :where(.button-secondary,.btn-secondary,.secondary-button),
.rf-flight-destination-grid a :where(.button-secondary,.btn-secondary,.secondary-button),
.rf-flight-booking-card :where(.button-secondary,.btn-secondary,.secondary-button),
.rf-button-primary :where(.button-secondary,.btn-secondary,.secondary-button),
.button.button-primary :where(.button-secondary,.btn-secondary,.secondary-button),
.button-primary :where(.button-secondary,.btn-secondary,.secondary-button),
a.button-primary :where(.button-secondary,.btn-secondary,.secondary-button),
.ita-transfers-page :where(
  .page-hero :where(.button-secondary,.btn-secondary,.secondary-button),
.tool-hero :where(.button-secondary,.btn-secondary,.secondary-button),
.planning-hero :where(.button-secondary,.btn-secondary,.secondary-button),
.transfer-hero :where(.button-secondary,.btn-secondary,.secondary-button),
.hero
) :where(.button-secondary,.btn-secondary,.secondary-button),
.pm-header-cta :where(.button-secondary,.btn-secondary,.secondary-button),
body.ita-site :where(
  .hero :where(.button-secondary,.btn-secondary,.secondary-button),
.page-hero :where(.button-secondary,.btn-secondary,.secondary-button),
.home-hero :where(.button-secondary,.btn-secondary,.secondary-button),
.guide-hero :where(.button-secondary,.btn-secondary,.secondary-button),
.destination-hero :where(.button-secondary,.btn-secondary,.secondary-button),
.transfer-hero
) :where(.button-secondary,.btn-secondary,.secondary-button),
.ita-dark-surface :where(.button-secondary,.btn-secondary,.secondary-button),
.dark-section :where(.button-secondary,.btn-secondary,.secondary-button),
.theme-dark :where(.button-secondary,.btn-secondary,.secondary-button),
.surface-dark :where(.button-secondary,.btn-secondary,.secondary-button),
.bg-dark :where(.button-secondary,.btn-secondary,.secondary-button),
[data-theme='dark'] :where(.button-secondary,.btn-secondary,.secondary-button),
[class*='dark-surface'] :where(.button-secondary,.btn-secondary,.secondary-button),
[class*='dark-section'] :where(.button-secondary,.btn-secondary,.secondary-button),
.site-footer :where(.button-secondary,.btn-secondary,.secondary-button),
footer[role='contentinfo'] :where(.button-secondary,.btn-secondary,.secondary-button),
.guide-index-hero :where(.button-secondary,.btn-secondary,.secondary-button),
.guide-library-hero :where(.button-secondary,.btn-secondary,.secondary-button),
.library-hero :where(.button-secondary,.btn-secondary,.secondary-button),
.planning-band :where(.button-secondary,.btn-secondary,.secondary-button),
.route-band :where(.button-secondary,.btn-secondary,.secondary-button),
.tool-band :where(.button-secondary,.btn-secondary,.secondary-button),
.cta-band :where(.button-secondary,.btn-secondary,.secondary-button) {
  border-color:
    var(--ita-on-dark-border) !important;

  background:
    rgba(255, 255, 255, 0.10) !important;

  color: #ffffff !important;
}

/*
 * Specific reinforcement for the guide library page.
 * Still stored in the canonical global stylesheet.
 */

body.ita-page--guides-index :where(
  .guide-index-hero,
  .guide-library-hero,
  .library-hero,
  .planning-band,
  .route-band,
  .tool-band,
  .cta-band,
  .ita-dark-surface
) :where(
  p,
  li,
  small,
  .description,
  .summary,
  .meta
) {
  color: #e7f1ec !important;
}

body.ita-page--guides-index :where(
  .guide-index-hero,
  .guide-library-hero,
  .library-hero,
  .planning-band,
  .route-band,
  .tool-band,
  .cta-band,
  .ita-dark-surface
) :where(
  h1,
  h2,
  h3,
  h4,
  strong,
  .title,
  .heading
) {
  color: #ffffff !important;
}

/* === ITA GLOBAL DARK CONTRAST END === */
/* ===== END SOURCE: assets/css/ita-global.css ===== */

/* ===== BEGIN SOURCE: css/route-first-premium.css ===== */
:root {
  --rf-navy: #082b3a;
  --rf-navy-2: #0d4052;
  --rf-ocean: #16747d;
  --rf-lagoon: #8dd8d2;
  --rf-coral: #e8745d;
  --rf-gold: #e9b36b;
  --rf-canvas: #f4f7f5;
  --rf-paper: #ffffff;
  --rf-ink: #18333e;
  --rf-muted: #61747b;
  --rf-line: rgba(8,43,58,.14);
  --rf-shadow: 0 24px 64px rgba(8,43,58,.13);
  --rf-serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
  --rf-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --rf-shell: 1240px;
  --rf-radius: 22px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body.rf-theme { margin: 0; color: var(--rf-ink); background: var(--rf-canvas); font-family: var(--rf-sans); font-size: 17px; line-height: 1.72; -webkit-font-smoothing: antialiased; }
body.rf-theme img { max-width: 100%; }
body.rf-theme a { color: var(--rf-ocean); }
body.rf-theme h1,
body.rf-theme h2,
body.rf-theme h3,
body.rf-theme h4 { color: var(--rf-navy); font-family: var(--rf-serif); letter-spacing: -.025em; }
body.rf-theme h1 { font-size: clamp(3rem, 6.1vw, 5.9rem); line-height: .98; }
body.rf-theme h2 { font-size: clamp(2.25rem, 4.6vw, 4.25rem); line-height: 1.04; }
body.rf-theme h3 { font-size: clamp(1.35rem, 2vw, 1.85rem); line-height: 1.18; }
body.rf-theme p { color: var(--rf-muted); }
.rf-shell { width: min(calc(100% - 42px), var(--rf-shell)); margin-inline: auto; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 9999; top: 10px; left: 10px; transform: translateY(-160%); padding: .75rem 1rem; color: #fff!important; background: var(--rf-navy); border-radius: 8px; }
.skip-link:focus { transform: translateY(0); }

.rf-kicker { margin: 0 0 .75rem; color: var(--rf-coral)!important; font-size: .78rem!important; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.rf-kicker-light { color: var(--rf-lagoon)!important; }

/* Unified global header */
.rf-header { position: sticky; z-index: 1000; top: 0; color: var(--rf-navy); background: rgba(255,255,255,.92); border-bottom: 1px solid rgba(8,43,58,.09); backdrop-filter: blur(18px); transition: box-shadow .2s ease, background .2s ease; }
.rf-header.is-scrolled { background: rgba(255,255,255,.98); box-shadow: 0 14px 38px rgba(8,43,58,.1); }
.rf-header-inner { display: grid; grid-template-columns: auto minmax(0,1fr) auto auto; gap: 1.4rem; align-items: center; width: min(calc(100% - 40px), 1360px); min-height: 78px; margin-inline: auto; }
.rf-brand { display: inline-flex; align-items: center; gap: .75rem; color: var(--rf-navy)!important; text-decoration: none; }
.rf-brand-mark { display: grid; width: 44px; height: 44px; place-items: center; color: var(--rf-ocean); }
.rf-brand-mark svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 2.25; }
.rf-brand-copy { display: grid; line-height: 1.1; }
.rf-brand-copy strong { font-size: 1.06rem; letter-spacing: -.02em; }
.rf-brand-copy small { margin-top: .25rem; color: var(--rf-muted); font-size: .64rem; letter-spacing: .06em; text-transform: uppercase; }
.rf-nav { display: flex; justify-content: center; gap: clamp(.7rem,1.35vw,1.35rem); }
.rf-nav a { color: #31505b!important; font-size: .86rem; font-weight: 750; text-decoration: none; }
.rf-nav a:hover,
.rf-nav a:focus-visible { color: var(--rf-ocean)!important; }
.rf-header-cta,
.rf-mobile-cta { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; padding: .72rem 1.08rem; color: #fff!important; background: var(--rf-navy); border-radius: 10px; font-size: .86rem; font-weight: 850; text-decoration: none; }
.rf-menu-button { display: none; width: 45px; height: 45px; padding: 11px; border: 1px solid var(--rf-line); border-radius: 12px; background: #fff; }
.rf-menu-button > span:not(.sr-only) { display: block; width: 21px; height: 2px; margin: 4px auto; background: var(--rf-navy); }
.rf-mobile-nav { display: none; padding: .7rem 20px 1rem; background: #fff; border-top: 1px solid var(--rf-line); }
.rf-mobile-nav a { display: block; padding: .82rem .15rem; color: var(--rf-navy)!important; text-decoration: none; border-bottom: 1px solid var(--rf-line); }
.rf-mobile-nav[hidden] { display: none!important; }

.rf-button { display: inline-flex; min-height: 50px; align-items: center; justify-content: center; padding: .86rem 1.25rem; border-radius: 10px; font-size: .94rem; font-weight: 850; text-decoration: none; transition: transform .18s ease, box-shadow .18s ease; }
.rf-button:hover { transform: translateY(-2px); }
.rf-button-primary { color: #fff!important; background: var(--rf-coral); box-shadow: 0 12px 28px rgba(232,116,93,.22); }
.rf-button-quiet { color: var(--rf-navy)!important; background: #fff; border: 1px solid var(--rf-line); }
.rf-button-dark { color: #fff!important; background: var(--rf-navy); }
.rf-actions { display: flex; flex-wrap: wrap; gap: .8rem; align-items: center; }

/* Homepage */
.rf-hero { position: relative; overflow: hidden; padding: clamp(4rem,7vw,7rem) 0 3.5rem; background: linear-gradient(145deg,#eef7f5 0%,#f8faf8 52%,#e8f2f1 100%); }
.rf-hero::before { position: absolute; inset: 0; content: ""; pointer-events: none; opacity: .28; background-image: linear-gradient(rgba(8,43,58,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(8,43,58,.08) 1px,transparent 1px); background-size: 58px 58px; mask-image: linear-gradient(90deg,#000,transparent 65%); }
.rf-hero-grid { position: relative; display: grid; grid-template-columns: minmax(0,.9fr) minmax(420px,1.1fr); gap: clamp(3rem,7vw,7rem); align-items: center; }
.rf-hero-copy h1 { max-width: 760px; margin: 0 0 1.4rem; }
.rf-hero-lead { max-width: 700px; margin: 0 0 2rem; font-size: clamp(1.08rem,1.55vw,1.24rem); line-height: 1.75; }
.rf-hero-proof { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; max-width: 660px; margin: 2.2rem 0 0; }
.rf-hero-proof div { padding-top: 1rem; border-top: 2px solid rgba(8,43,58,.12); }
.rf-hero-proof dt { color: var(--rf-navy); font-family: var(--rf-serif); font-size: 1.7rem; font-weight: 800; line-height: 1; }
.rf-hero-proof dd { margin: .35rem 0 0; color: var(--rf-muted); font-size: .78rem; font-weight: 750; letter-spacing: .04em; text-transform: uppercase; }
.rf-hero-visual { position: relative; min-height: 620px; }
.rf-hero-visual > img { width: 100%; height: 620px; object-fit: cover; border-radius: 30px 8px 30px 8px; box-shadow: var(--rf-shadow); }
.rf-route-card { position: absolute; right: -22px; bottom: 28px; width: min(310px,82%); padding: 1.2rem; color: #fff; background: rgba(8,43,58,.92); border: 1px solid rgba(255,255,255,.13); border-radius: 18px; box-shadow: 0 22px 48px rgba(8,43,58,.24); backdrop-filter: blur(12px); }
.rf-route-card > span { display: block; margin-bottom: .6rem; color: var(--rf-lagoon); font-size: .69rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.rf-route-card ol { margin: 0; padding: 0; list-style: none; }
.rf-route-card li { display: grid; grid-template-columns: 30px minmax(0,1fr); gap: .65rem; align-items: center; padding: .48rem 0; border-top: 1px solid rgba(255,255,255,.12); }
.rf-route-card b { color: var(--rf-coral); font-size: .7rem; }
.rf-route-card strong { color: #fff; font-size: .88rem; }
.rf-connection-strip { color: #fff; background: var(--rf-navy); }
.rf-connection-strip .rf-shell { display: flex; min-height: 74px; align-items: center; justify-content: space-between; gap: 1rem; }
.rf-connection-strip span { font-size: .79rem; font-weight: 800; letter-spacing: .04em; }
.rf-connection-strip i { width: 32px; height: 1px; background: linear-gradient(90deg,var(--rf-lagoon),rgba(255,255,255,.18)); }
.rf-section { padding: clamp(5rem,8vw,8rem) 0; }
.rf-section-heading { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(280px,.65fr); gap: clamp(2rem,6vw,6rem); align-items: end; margin-bottom: 2.5rem; }
.rf-section-heading h2 { max-width: 780px; margin: 0; }
.rf-section-heading > p { max-width: 520px; margin: 0; font-size: 1.04rem; }
.rf-destination-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.1rem; }
.rf-destination-card { position: relative; overflow: hidden; min-height: 420px; color: #fff!important; border-radius: var(--rf-radius); text-decoration: none; box-shadow: 0 18px 48px rgba(8,43,58,.11); }
.rf-destination-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s ease; }
.rf-destination-card:hover img { transform: scale(1.035); }
.rf-destination-shade { position: absolute; inset: 0; background: linear-gradient(to top,rgba(5,27,38,.91),rgba(5,27,38,.07) 72%); }
.rf-destination-content { position: absolute; inset: auto 0 0; padding: clamp(1.5rem,3vw,2.4rem); }
.rf-destination-content small { display: block; margin-bottom: .45rem; color: var(--rf-lagoon); font-size: .74rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.rf-destination-content strong { display: block; color: #fff; font-family: var(--rf-serif); font-size: clamp(2.05rem,3.5vw,3.4rem); line-height: 1; }
.rf-destination-content p { max-width: 620px; margin: .7rem 0 .8rem; color: rgba(255,255,255,.81); font-size: .95rem; line-height: 1.6; }
.rf-destination-content em { color: #fff; font-size: .86rem; font-style: normal; font-weight: 850; }
.rf-route-method { padding: clamp(5rem,8vw,8rem) 0; color: #fff; background: radial-gradient(circle at 85% 10%,rgba(141,216,210,.18),transparent 32%),var(--rf-navy); }
.rf-route-method-grid { display: grid; grid-template-columns: minmax(280px,.72fr) minmax(0,1.28fr); gap: clamp(3rem,8vw,8rem); align-items: start; }
.rf-route-method h2 { margin: 0 0 1rem; color: #fff; }
.rf-route-method p { color: rgba(255,255,255,.68); }
.rf-method-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(255,255,255,.14); }
.rf-method-list li { display: grid; grid-template-columns: 48px minmax(0,1fr); gap: 1rem; padding: 1.15rem 0; border-bottom: 1px solid rgba(255,255,255,.14); }
.rf-method-list b { color: var(--rf-coral); font-family: var(--rf-serif); }
.rf-method-list strong { display: block; color: #fff; font-size: 1.08rem; }
.rf-method-list small { display: block; margin-top: .2rem; color: rgba(255,255,255,.62); font-size: .9rem; }
.rf-feature-section { background: #fff; }
.rf-feature-grid { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(330px,.75fr); gap: 1.25rem; }
.rf-feature-story { position: relative; overflow: hidden; min-height: 600px; border-radius: var(--rf-radius); box-shadow: var(--rf-shadow); }
.rf-feature-story > img { width: 100%; height: 100%; object-fit: cover; }
.rf-feature-story::after { position: absolute; inset: 0; content: ""; background: linear-gradient(to top,rgba(5,27,38,.92),rgba(5,27,38,.02) 70%); }
.rf-feature-story > div { position: absolute; z-index: 1; inset: auto 0 0; padding: clamp(2rem,4vw,3.6rem); }
.rf-feature-story h2 { margin: 0 0 1rem; color: #fff; }
.rf-feature-story p { max-width: 720px; color: rgba(255,255,255,.76); }
.rf-feature-story a { color: #fff!important; font-weight: 850; text-decoration: none; }
.rf-tool-panel { display: flex; min-height: 600px; flex-direction: column; justify-content: center; padding: clamp(2.2rem,4vw,3.6rem); background: #eaf4f2; border-radius: var(--rf-radius); }
.rf-tool-panel h2 { margin: 0 0 1rem; }
.rf-tool-panel .rf-button { align-self: flex-start; margin: 1rem 0; }
.rf-tool-panel ul { margin: .8rem 0 0; padding-left: 1.2rem; color: var(--rf-muted); }
.rf-latest-section { background: var(--rf-canvas); }
.rf-latest-grid { display: grid; grid-template-columns: minmax(280px,.66fr) minmax(0,1.34fr); gap: clamp(3rem,7vw,7rem); }
.rf-latest-grid h2 { margin: 0 0 1rem; }
.rf-latest-list { border-top: 1px solid var(--rf-line); }
.rf-latest-list a { display: grid; grid-template-columns: 120px minmax(0,1fr) auto; gap: 1rem; align-items: center; padding: 1.25rem 0; color: var(--rf-ink)!important; text-decoration: none; border-bottom: 1px solid var(--rf-line); }
.rf-latest-list span { color: var(--rf-coral); font-size: .72rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.rf-latest-list strong { font-family: var(--rf-serif); font-size: 1.2rem; line-height: 1.3; }
.rf-latest-list em { color: var(--rf-ocean); font-size: .82rem; font-style: normal; font-weight: 850; }
.rf-final-cta { padding: clamp(5rem,8vw,8rem) 0; color: #fff; background: linear-gradient(135deg,var(--rf-ocean),var(--rf-navy)); }
.rf-final-cta h2 { max-width: 900px; margin: 0 0 1.8rem; color: #fff; }

/* Guide library */
.rf-library-hero { padding: clamp(4rem,7vw,7rem) 0; background: #eef6f4; }
.rf-library-hero-grid { display: grid; grid-template-columns: minmax(0,.9fr) minmax(420px,1.1fr); gap: clamp(3rem,7vw,7rem); align-items: center; }
.rf-library-hero h1 { margin: .7rem 0 1rem; }
.rf-library-hero p { max-width: 760px; font-size: 1.08rem; }
.rf-library-hero img { width: 100%; height: 520px; object-fit: cover; border-radius: 28px 8px 28px 8px; box-shadow: var(--rf-shadow); }
.rf-search { position: relative; display: block; max-width: 680px; margin-top: 1.7rem; }
.rf-search input { width: 100%; min-height: 56px; padding: 0 3rem 0 1rem; color: var(--rf-ink); border: 1px solid var(--rf-line); border-radius: 12px; background: #fff; font-size: 1rem; box-shadow: 0 12px 30px rgba(8,43,58,.08); }
.rf-search b { position: absolute; top: 50%; right: 1rem; transform: translateY(-50%); color: var(--rf-ocean); }
.rf-search-status { min-height: 1.3em; font-size: .86rem!important; }
.rf-library-destinations .rf-destination-card { min-height: 360px; }
.rf-planning-section { color: #fff; background: var(--rf-navy); }
.rf-planning-grid { display: grid; grid-template-columns: minmax(280px,.65fr) minmax(0,1.35fr); gap: clamp(3rem,7vw,7rem); }
.rf-planning-section h2 { color: #fff; }
.rf-planning-links { border-top: 1px solid rgba(255,255,255,.14); }
.rf-planning-link { display: grid; grid-template-columns: 46px minmax(0,1fr) auto; gap: 1rem; align-items: center; padding: 1.15rem 0; color: #fff!important; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.14); }
.rf-planning-link > span { color: var(--rf-coral); font-family: var(--rf-serif); }
.rf-planning-link strong { color: #fff; font-size: 1.04rem; }
.rf-planning-link p { margin: .2rem 0 0; color: rgba(255,255,255,.62); font-size: .9rem; }
.rf-planning-link em { color: var(--rf-lagoon); font-size: .82rem; font-style: normal; font-weight: 850; }
.rf-library-toolbar { display: flex; flex-wrap: wrap; gap: 1.5rem; align-items: end; justify-content: space-between; margin-bottom: 1.6rem; }
.rf-library-toolbar h2 { margin: 0; }
.rf-filter-row { display: flex; flex-wrap: wrap; gap: .45rem; }
.rf-filter-row button { min-height: 40px; padding: .6rem .85rem; color: var(--rf-navy); border: 1px solid var(--rf-line); border-radius: 9px; background: #fff; font-weight: 750; }
.rf-filter-row button.is-active { color: #fff; background: var(--rf-navy); }
.rf-library-group { margin-bottom: .75rem; border: 1px solid var(--rf-line); border-radius: 14px; background: #fff; overflow: hidden; }
.rf-library-group summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.2rem; color: var(--rf-navy); cursor: pointer; font-family: var(--rf-serif); font-size: 1.25rem; font-weight: 800; list-style: none; }
.rf-library-group summary::-webkit-details-marker { display: none; }
.rf-library-group summary b { color: var(--rf-muted); font-family: var(--rf-sans); font-size: .76rem; letter-spacing: .04em; text-transform: uppercase; }
.rf-library-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); border-top: 1px solid var(--rf-line); }
.rf-library-item { display: flex; min-height: 220px; flex-direction: column; padding: 1.35rem; color: var(--rf-ink)!important; text-decoration: none; border-right: 1px solid var(--rf-line); border-bottom: 1px solid var(--rf-line); }
.rf-library-item:nth-child(2n) { border-right: 0; }
.rf-library-item span { color: var(--rf-coral); font-size: .72rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.rf-library-item strong { margin-top: .55rem; font-family: var(--rf-serif); font-size: 1.27rem; line-height: 1.28; }
.rf-library-item p { margin: .55rem 0 1rem; font-size: .94rem; line-height: 1.58; }
.rf-library-item em { margin-top: auto; color: var(--rf-ocean); font-size: .82rem; font-style: normal; font-weight: 850; }
.rf-library-item[hidden] { display: none!important; }

/* Existing destination hubs and articles */
.rf-destination-hub .destination-photo-section { display: none!important; }
.rf-destination-hub main > .compliance-notice,
.rf-destination-hub main > .affiliate-notice { margin-top: 1rem; }
.rf-destination-hub .cluster-hero,
.rf-destination-hub .greek-hub-hero,
.rf-destination-hub .ocean-hub-hero,
.rf-destination-hub .caribbean-hub-hero,
.rf-guide-article .article-hero,
.rf-guide-article .greek-article-hero,
.rf-guide-article .ocean-article-hero,
.rf-guide-article .caribbean-article-hero { color: #fff; background: linear-gradient(135deg,var(--rf-navy),var(--rf-ocean))!important; }
.rf-destination-hub .cluster-hero h1,
.rf-destination-hub .greek-hub-hero h1,
.rf-destination-hub .ocean-hub-hero h1,
.rf-destination-hub .caribbean-hub-hero h1,
.rf-guide-article .article-hero h1,
.rf-guide-article .greek-article-hero h1,
.rf-guide-article .ocean-article-hero h1,
.rf-guide-article .caribbean-article-hero h1 { color: #fff!important; }
.rf-destination-hub .cluster-hero p,
.rf-destination-hub .greek-hub-hero p,
.rf-destination-hub .ocean-hub-hero p,
.rf-destination-hub .caribbean-hub-hero p,
.rf-guide-article .article-hero p,
.rf-guide-article .greek-article-hero p,
.rf-guide-article .ocean-article-hero p,
.rf-guide-article .caribbean-article-hero p { color: rgba(255,255,255,.78)!important; }
.rf-destination-hub .cluster-summary { gap: 1rem; }
.rf-destination-hub .cluster-summary > div { background: transparent!important; border: 0!important; border-top: 2px solid var(--rf-line)!important; border-radius: 0!important; box-shadow: none!important; }
.rf-destination-hub [class*="sequence"],
.rf-destination-hub [class*="route-sequence"] { box-shadow: none!important; }
.rf-destination-hub [class*="hub-card"],
.rf-destination-hub [class*="guide-card"],
.rf-guide-article [class*="sidebar-widget"],
.rf-commercial-page [class*="partner-card"],
.rf-commercial-page [class*="decision-card"] { border-color: var(--rf-line)!important; box-shadow: 0 12px 32px rgba(8,43,58,.06)!important; }
.rf-guide-article article p,
.rf-guide-article article li { font-size: 1.065rem; line-height: 1.78; }
.rf-guide-article article { max-width: 760px; }
.rf-guide-article .sticky-aside,
.rf-guide-article [class*="sticky"] { box-shadow: none!important; }
.rf-guide-article .toc { border-left: 4px solid var(--rf-lagoon); background: #edf6f4!important; box-shadow: none!important; }
.rf-guide-article table,
.rf-commercial-page table { background: #fff; border-collapse: collapse; }
.rf-guide-article th,
.rf-commercial-page th { color: #fff; background: var(--rf-navy); }
.rf-guide-article td,
.rf-guide-article th,
.rf-commercial-page td,
.rf-commercial-page th { padding: .85rem; border: 1px solid var(--rf-line); }
.rf-commercial-page main { background: var(--rf-canvas); }
.rf-commercial-page .page-hero,
.rf-commercial-page [class*="commercial-hero"] { background: #edf6f4!important; }
.rf-commercial-page .page-hero h1,
.rf-commercial-page [class*="commercial-hero"] h1 { color: var(--rf-navy)!important; }
.rf-commercial-page .decision-grid,
.rf-commercial-page .partner-grid,
.rf-commercial-page .provider-grid { gap: 1rem; }
.rf-information-page main,
.rf-tool-page main { background: var(--rf-canvas); }
.rf-information-page .policy-content,
.rf-information-page .content-narrow { max-width: 800px; }

/* Unified footer */
.rf-footer { color: #fff; background: var(--rf-navy); }
.rf-footer-main { display: grid; grid-template-columns: 1.25fr repeat(3,.75fr); gap: clamp(2rem,5vw,5rem); width: min(calc(100% - 42px),var(--rf-shell)); margin-inline: auto; padding: clamp(4rem,7vw,6rem) 0 3rem; }
.rf-footer .rf-brand { color: #fff!important; }
.rf-footer .rf-brand-mark { color: var(--rf-lagoon); }
.rf-footer .rf-brand-copy small { color: rgba(255,255,255,.56); }
.rf-footer-brand p { max-width: 410px; color: rgba(255,255,255,.64); font-size: .94rem; }
.rf-footer-column { display: flex; flex-direction: column; gap: .55rem; }
.rf-footer-column h2 { margin: 0 0 .45rem; color: var(--rf-lagoon); font-family: var(--rf-sans); font-size: .76rem; letter-spacing: .1em; text-transform: uppercase; }
.rf-footer-column a { color: rgba(255,255,255,.76)!important; font-size: .9rem; text-decoration: none; }
.rf-footer-column a:hover { color: #fff!important; }
.rf-footer-bottom { display: flex; gap: 1rem; align-items: center; justify-content: space-between; width: min(calc(100% - 42px),var(--rf-shell)); margin-inline: auto; padding: 1.2rem 0 1.7rem; border-top: 1px solid rgba(255,255,255,.12); }
.rf-footer-bottom p { margin: 0; color: rgba(255,255,255,.52); font-size: .76rem; }
.rf-footer-bottom > div { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .7rem; }
.rf-footer-bottom a,
.rf-footer-bottom button { padding: 0; color: rgba(255,255,255,.62)!important; border: 0; background: transparent; font: inherit; font-size: .76rem; text-decoration: none; }

[data-rf-reveal] { opacity: 0; transform: translateY(18px); transition: opacity .55s ease, transform .55s ease; }
[data-rf-reveal].is-visible { opacity: 1; transform: none; }
.route-number-redundant { display: none!important; }

@media (max-width: 1120px) {
  .rf-nav { display: none; }
  .rf-menu-button { display: block; }
  .rf-header-inner { grid-template-columns: minmax(0,1fr) auto auto; }
  .rf-mobile-nav.is-open { display: block; }
  .rf-mobile-nav[hidden].is-open { display: block!important; }
  .rf-hero-grid,
  .rf-library-hero-grid { grid-template-columns: 1fr; }
  .rf-hero-visual { min-height: 540px; }
  .rf-hero-visual > img { height: 540px; }
  .rf-route-card { right: 22px; }
}

@media (max-width: 900px) {
  .rf-section-heading,
  .rf-route-method-grid,
  .rf-feature-grid,
  .rf-latest-grid,
  .rf-planning-grid { grid-template-columns: 1fr; }
  .rf-destination-grid { grid-template-columns: 1fr; }
  .rf-destination-card { min-height: 390px; }
  .rf-library-grid { grid-template-columns: 1fr; }
  .rf-library-item { border-right: 0; }
  .rf-footer-main { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .rf-footer-brand { grid-column: span 2; }
  .rf-footer-bottom { align-items: flex-start; flex-direction: column; }
  .rf-footer-bottom > div { justify-content: flex-start; }
}

@media (max-width: 680px) {
  .rf-shell { width: min(calc(100% - 28px),var(--rf-shell)); }
  .rf-header-inner { width: min(calc(100% - 24px),1360px); min-height: 70px; }
  .rf-brand-copy small { display: none; }
  .rf-header-cta { display: none; }
  .rf-header-inner { grid-template-columns: minmax(0,1fr) auto; }
  body.rf-theme h1 { font-size: clamp(2.55rem,13vw,4rem); }
  body.rf-theme h2 { font-size: clamp(2rem,10vw,3rem); }
  .rf-hero { padding-top: 3.2rem; }
  .rf-hero-proof { grid-template-columns: 1fr; }
  .rf-hero-visual,
  .rf-hero-visual > img { min-height: 430px; height: 430px; }
  .rf-route-card { right: 12px; bottom: 12px; width: calc(100% - 24px); }
  .rf-connection-strip .rf-shell { overflow-x: auto; justify-content: flex-start; padding-block: 1rem; }
  .rf-connection-strip span { flex: 0 0 auto; }
  .rf-connection-strip i { flex: 0 0 28px; }
  .rf-destination-card { min-height: 350px; }
  .rf-destination-content p { display: none; }
  .rf-feature-story,
  .rf-tool-panel { min-height: 500px; }
  .rf-latest-list a { grid-template-columns: 1fr auto; }
  .rf-latest-list span { grid-column: 1 / -1; }
  .rf-planning-link { grid-template-columns: 34px minmax(0,1fr); }
  .rf-planning-link em { grid-column: 2; }
  .rf-library-toolbar { align-items: flex-start; flex-direction: column; }
  .rf-footer-main { grid-template-columns: 1fr; width: min(calc(100% - 28px),var(--rf-shell)); }
  .rf-footer-brand { grid-column: auto; }
  .rf-footer-bottom { width: min(calc(100% - 28px),var(--rf-shell)); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  [data-rf-reveal] { opacity: 1; transform: none; transition: none; }
  .rf-destination-card img,
  .rf-button { transition: none; }
}

/* ITA_GUIDE_CSS_REPAIR_START */
/* Reset the legacy page-frame spacing that remained active under the
   route-first theme. It was narrowing every guide and causing mobile
   grid children to overflow the viewport. */
body.rf-theme {
  padding: 0 !important;
  overflow-x: clip;
}

body.rf-theme .container,
body.rf-theme .site-container {
  width: min(calc(100% - 40px), 1200px);
  max-width: 1200px;
  margin-inline: auto;
  padding-inline: 0;
}

.rf-guide-article main,
.rf-guide-article main > *,
.rf-guide-article .content-grid,
.rf-guide-article .content-grid > *,
.rf-guide-article [class$="-article-layout"],
.rf-guide-article [class$="-article-layout"] > *,
.rf-guide-article [class$="-article-hero-grid"],
.rf-guide-article [class$="-article-hero-grid"] > * {
  min-width: 0;
}

/* Consistent guide heading scale. Page and homepage headings remain
   unchanged; only guide and hub typography is constrained. */
.rf-guide-article h1 {
  max-width: 900px;
  font-size: clamp(2.75rem, 5vw, 4.8rem) !important;
  line-height: 1.02 !important;
  text-wrap: balance;
  overflow-wrap: normal;
  word-break: normal;
}

.rf-guide-article article h2,
.rf-guide-article .toc h2,
.rf-guide-article [class$="-article-content"] h2 {
  margin-top: clamp(2.4rem, 5vw, 3.8rem);
  font-size: clamp(1.85rem, 3.2vw, 2.65rem) !important;
  line-height: 1.12 !important;
  text-wrap: balance;
}

.rf-guide-article article h3,
.rf-guide-article [class$="-article-content"] h3 {
  margin-top: 1.8rem;
  font-size: clamp(1.3rem, 2vw, 1.65rem) !important;
  line-height: 1.25 !important;
}

/* Generic/Bali article template. */
.rf-guide-article main.container {
  padding-block: clamp(1.8rem, 4vw, 3rem) clamp(4rem, 7vw, 7rem);
}

.rf-guide-article .content-grid {
  display: grid;
  grid-template-columns: minmax(0, 760px) minmax(240px, 290px);
  justify-content: space-between;
  gap: clamp(2rem, 5vw, 4.5rem);
  width: 100%;
  align-items: start;
}

.rf-guide-article .content-grid > article {
  width: 100%;
  max-width: 760px;
  min-width: 0;
}

.rf-guide-article .content-grid > aside,
.rf-guide-article .sticky-aside {
  width: 100%;
  min-width: 0;
  align-self: start;
}

.rf-guide-article .sticky-aside {
  position: sticky;
  top: 102px;
  height: auto;
}

.rf-guide-article .page-header {
  width: 100%;
  max-width: 760px;
  margin-bottom: 1.6rem;
}

.rf-guide-article .page-header .excerpt {
  max-width: 720px;
  font-size: clamp(1.04rem, 1.7vw, 1.18rem);
  line-height: 1.7;
}

.rf-guide-article .breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  gap: .25rem .42rem;
  align-items: center;
  margin-bottom: 1rem;
  padding-top: 0;
  font-size: .78rem;
  line-height: 1.5;
}

.rf-guide-article .breadcrumbs span,
.rf-guide-article .breadcrumbs .sep {
  margin: 0;
  color: #87999f;
}

.rf-guide-article figure.article-hero {
  overflow: hidden;
  width: 100%;
  margin: 1.4rem 0 1rem;
  border: 0;
  border-radius: 20px;
  background: var(--rf-navy) !important;
  box-shadow: 0 20px 46px rgba(8, 43, 58, .12);
}

.rf-guide-article figure.article-hero img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  height: auto;
  object-fit: cover;
}

.rf-guide-article figure.article-hero figcaption {
  padding: .82rem 1rem .9rem;
  color: #d9e7e9 !important;
  font-size: .82rem;
  line-height: 1.5;
}

.rf-guide-article .review-bar,
.rf-guide-article [class$="-review-bar"] {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem 1.2rem;
  align-items: center;
  width: 100%;
  margin: 1rem 0 1.3rem;
  padding: .85rem 1rem;
  border: 1px solid var(--rf-line);
  border-radius: 12px;
  background: #edf6f4;
  color: var(--rf-ink);
  font-size: .84rem;
  line-height: 1.45;
}

.rf-guide-article .review-bar span,
.rf-guide-article [class$="-review-bar"] span {
  display: inline-flex;
  flex-wrap: wrap;
  gap: .25rem;
}

.rf-guide-article .cluster-inline-nav {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  align-items: center;
  width: 100%;
  margin: 1.1rem 0 1.5rem;
  padding: .9rem;
}

.rf-guide-article .cluster-inline-nav strong {
  flex: 0 0 100%;
  width: auto;
  margin-bottom: .1rem;
}

.rf-guide-article .cluster-inline-nav a,
.rf-guide-article .inline-links a,
.rf-guide-article .mini-actions a {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: .52rem .7rem;
  line-height: 1.25;
}

.rf-guide-article .quick-facts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .75rem;
  width: 100%;
  margin: 1.35rem 0;
}

.rf-guide-article .quick-facts > div {
  min-width: 0;
  padding: 1rem;
}

.rf-guide-article .quick-facts strong {
  display: block;
  overflow-wrap: anywhere;
}

.rf-guide-article .toc {
  width: 100%;
  margin: 1.4rem 0 2.2rem;
  padding: 1.15rem 1.25rem;
}

.rf-guide-article .toc h2,
.rf-guide-article .toc h4 {
  margin: 0 0 .7rem;
  font-family: var(--rf-sans) !important;
  font-size: .75rem !important;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.rf-guide-article .toc li {
  margin-bottom: .42rem;
  font-size: .92rem;
  line-height: 1.45;
}

.rf-guide-article .sidebar-widget {
  display: grid;
  gap: .62rem;
  width: 100%;
  min-width: 0;
  padding: 1.15rem;
}

.rf-guide-article .sidebar-widget h2,
.rf-guide-article .sidebar-widget h3,
.rf-guide-article .sidebar-widget h4 {
  margin: 0 0 .25rem;
  padding: 0 0 .65rem;
  border-bottom: 1px solid var(--rf-line);
  font-family: var(--rf-serif) !important;
  font-size: 1.28rem !important;
  line-height: 1.2 !important;
  letter-spacing: -.02em !important;
  text-transform: none;
}

.rf-guide-article .sidebar-widget a {
  display: block;
  padding: .18rem 0;
  font-size: .88rem;
  font-weight: 720;
  line-height: 1.4;
}

.rf-guide-article .sidebar-widget small {
  display: block;
  margin-top: .35rem;
  font-size: .76rem;
  line-height: 1.55;
}

/* Destination-specific article families. */
.rf-guide-article .greek-article-layout,
.rf-guide-article .ocean-article-layout,
.rf-guide-article .caribbean-article-layout {
  display: grid;
  grid-template-columns: minmax(0, 760px) minmax(240px, 300px);
  justify-content: space-between;
  width: min(calc(100% - 40px), 1120px);
  max-width: 1120px;
  margin-inline: auto;
  padding-inline: 0;
  gap: clamp(2rem, 5vw, 4rem);
  align-items: start;
}

.rf-guide-article .greek-article-content,
.rf-guide-article .ocean-article-content,
.rf-guide-article .caribbean-article-content {
  width: 100%;
  max-width: 760px;
  min-width: 0;
}

.rf-guide-article .greek-sticky-planner,
.rf-guide-article .ocean-sticky-planner,
.rf-guide-article .caribbean-sticky {
  width: 100%;
  min-width: 0;
  align-self: start;
}

.rf-guide-article .greek-article-hero,
.rf-guide-article .ocean-article-hero,
.rf-guide-article .caribbean-article-hero {
  width: 100%;
  margin: 0;
}

.rf-guide-article .greek-article-hero-grid,
.rf-guide-article .ocean-article-hero-grid,
.rf-guide-article .caribbean-article-hero-grid {
  width: min(calc(100% - 40px), 1200px);
  max-width: 1200px;
  margin-inline: auto;
  padding-inline: 0;
}

.rf-guide-article .affiliate-notice,
.rf-guide-article .compliance-notice {
  width: 100%;
  margin: 1rem 0;
  padding: .9rem 1rem;
  border: 1px solid var(--rf-line);
  border-radius: 12px;
  background: #f8fbfa;
  font-size: .86rem;
  line-height: 1.55;
}

.rf-guide-article .affiliate-notice p,
.rf-guide-article .compliance-notice p {
  margin: 0;
  font-size: inherit;
  line-height: inherit;
}

.rf-guide-article article,
.rf-guide-article article section,
.rf-guide-article article div,
.rf-guide-article aside,
.rf-guide-article table,
.rf-guide-article pre,
.rf-guide-article code {
  max-width: 100%;
}

.rf-guide-article article p,
.rf-guide-article article li,
.rf-guide-article [class$="-article-content"] p,
.rf-guide-article [class$="-article-content"] li {
  overflow-wrap: break-word;
  word-break: normal;
}

.rf-guide-article article > table,
.rf-guide-article [class$="-article-content"] > table {
  display: block;
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.rf-guide-article .table-wrap {
  max-width: 100%;
  overflow-x: auto;
}

.rf-guide-article .inline-links,
.rf-guide-article .mini-actions,
.rf-guide-article .cta-stack,
.rf-guide-article .caribbean-related > div {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
}

@media (max-width: 980px) {
  .rf-guide-article .content-grid,
  .rf-guide-article .greek-article-layout,
  .rf-guide-article .ocean-article-layout,
  .rf-guide-article .caribbean-article-layout {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .rf-guide-article .content-grid > article,
  .rf-guide-article .greek-article-content,
  .rf-guide-article .ocean-article-content,
  .rf-guide-article .caribbean-article-content {
    width: 100%;
    max-width: none;
  }

  .rf-guide-article .sticky-aside,
  .rf-guide-article .greek-sticky-planner,
  .rf-guide-article .ocean-sticky-planner,
  .rf-guide-article .caribbean-sticky {
    position: static !important;
    top: auto;
  }

  .rf-guide-article .quick-facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 680px) {
  body.rf-theme .container,
  body.rf-theme .site-container,
  .rf-guide-article .greek-article-layout,
  .rf-guide-article .ocean-article-layout,
  .rf-guide-article .caribbean-article-layout,
  .rf-guide-article .greek-article-hero-grid,
  .rf-guide-article .ocean-article-hero-grid,
  .rf-guide-article .caribbean-article-hero-grid {
    width: min(calc(100% - 32px), 1200px);
  }

  .rf-guide-article main.container {
    padding-block: 1.4rem 4rem;
  }

  .rf-guide-article h1 {
    font-size: clamp(2.25rem, 11vw, 3.15rem) !important;
    line-height: 1.04 !important;
  }

  .rf-guide-article article h2,
  .rf-guide-article [class$="-article-content"] h2 {
    margin-top: 2.25rem;
    font-size: clamp(1.7rem, 8vw, 2.15rem) !important;
  }

  .rf-guide-article article h3,
  .rf-guide-article [class$="-article-content"] h3 {
    font-size: 1.35rem !important;
  }

  .rf-guide-article .page-header .excerpt {
    font-size: 1rem;
    line-height: 1.65;
  }

  .rf-guide-article figure.article-hero {
    border-radius: 14px;
  }

  .rf-guide-article figure.article-hero img {
    aspect-ratio: 4 / 3;
  }

  .rf-guide-article .review-bar,
  .rf-guide-article [class$="-review-bar"] {
    display: grid;
    gap: .45rem;
  }

  .rf-guide-article .cluster-inline-nav {
    padding: .75rem;
  }

  .rf-guide-article .cluster-inline-nav a {
    flex: 1 1 auto;
    justify-content: center;
    min-width: 0;
    text-align: center;
  }

  .rf-guide-article .quick-facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .6rem;
  }

  .rf-guide-article .quick-facts > div {
    padding: .85rem;
  }

  .rf-guide-article .toc {
    padding: 1rem;
  }

  .rf-guide-article .sidebar-widget {
    padding: 1rem;
  }

  .rf-guide-article .greek-article-hero,
  .rf-guide-article .ocean-article-hero,
  .rf-guide-article .caribbean-article-hero {
    padding-block: 2.25rem !important;
  }

  .rf-guide-article .greek-day-grid,
  .rf-guide-article .ocean-day-grid,
  .rf-guide-article .caribbean-day-grid,
  .rf-guide-article .greek-provider-grid,
  .rf-guide-article .ocean-provider-grid,
  .rf-guide-article .caribbean-provider-grid,
  .rf-guide-article .partner-choice-grid,
  .rf-guide-article .recommendation-grid,
  .rf-guide-article .scenario-grid,
  .rf-guide-article .season-strip {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}
/* Review cards sit inside dark destination heroes but use pale surfaces. */
.rf-guide-article .greek-article-hero .greek-review-bar,
.rf-guide-article .ocean-article-hero .ocean-review-bar,
.rf-guide-article .caribbean-article-hero .caribbean-review-bar {
  color: var(--rf-ink) !important;
  background: #f3faf8 !important;
  border-color: rgba(8, 43, 58, .14) !important;
}

.rf-guide-article .greek-article-hero .greek-review-bar :where(span, strong, p),
.rf-guide-article .ocean-article-hero .ocean-review-bar :where(span, strong, p),
.rf-guide-article .caribbean-article-hero .caribbean-review-bar :where(span, strong, p) {
  color: var(--rf-ink) !important;
}

.rf-guide-article .greek-article-hero .greek-review-bar a,
.rf-guide-article .ocean-article-hero .ocean-review-bar a,
.rf-guide-article .caribbean-article-hero .caribbean-review-bar a {
  color: var(--rf-ocean) !important;
}
/* ITA_GUIDE_CSS_REPAIR_END */
/* ===== END SOURCE: css/route-first-premium.css ===== */

/* ===== BEGIN SOURCE: css/planning-workspace.css ===== */
/* IslandTravelAtlas editorial planning workspace */
:root {
  --ita-tool-ocean: #082b3a;
  --ita-tool-ocean-2: #0d4557;
  --ita-tool-lagoon: #00a991;
  --ita-tool-lagoon-dark: #007f70;
  --ita-tool-coral: #b84c39;
  --ita-tool-paper: #fbfdfc;
  --ita-tool-mist: #eef7f5;
  --ita-tool-line: rgba(8, 43, 58, .14);
  --ita-tool-ink: #17313a;
  --ita-tool-muted: #5a7078;
}

body.rf-theme {
  --ita-dock-height: 0px;
}

.ita-tool-shell {
  width: min(1180px, calc(100% - 2rem));
  margin-inline: auto;
}

.ita-tool-hero {
  padding: clamp(3rem, 7vw, 6.5rem) 0 clamp(2.4rem, 5vw, 4.5rem);
  color: #fff;
  background:
    radial-gradient(circle at 85% 15%, rgba(0, 169, 145, .34), transparent 32rem),
    linear-gradient(135deg, var(--ita-tool-ocean), var(--ita-tool-ocean-2));
}

.ita-tool-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr);
  gap: clamp(2rem, 6vw, 6rem);
  align-items: center;
}

.ita-tool-hero h1 {
  max-width: 15ch;
  margin: .45rem 0 1rem;
  color: #fff !important;
  font-size: clamp(2.65rem, 6vw, 5.6rem) !important;
  line-height: .98 !important;
  text-wrap: balance;
}

.ita-tool-hero p {
  max-width: 64ch;
  color: #d8e8eb !important;
  font-size: clamp(1rem, 1.5vw, 1.18rem);
  line-height: 1.72;
}

.ita-tool-eyebrow {
  margin: 0;
  color: #bdf2ed !important;
  font-size: .74rem !important;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.ita-route-preview {
  display: grid;
  gap: .75rem;
  padding: clamp(1.1rem, 2.5vw, 1.65rem);
  background: rgba(255, 255, 255, .08);
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 1.15rem;
  backdrop-filter: blur(10px);
}

.ita-route-preview span {
  display: grid;
  grid-template-columns: 2rem minmax(0, 1fr);
  gap: .75rem;
  align-items: center;
  color: #fff;
  font-weight: 750;
}

.ita-route-preview b {
  display: grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  color: var(--ita-tool-ocean);
  background: #bdf2ed;
  border-radius: 50%;
  font-size: .72rem;
}

.ita-tool-section {
  padding: clamp(3rem, 7vw, 6rem) 0;
}

.ita-tool-section:nth-child(even) {
  background: var(--ita-tool-mist);
}

.ita-section-heading {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(250px, .9fr);
  gap: clamp(1.5rem, 5vw, 5rem);
  align-items: end;
  margin-bottom: clamp(1.5rem, 4vw, 2.8rem);
}

.ita-section-heading h2 {
  max-width: 18ch;
  margin: .35rem 0 0;
  color: var(--ita-tool-ink);
  font-size: clamp(2rem, 4.5vw, 4.2rem) !important;
  line-height: 1.02 !important;
  text-wrap: balance;
}

.ita-section-heading > p {
  margin: 0;
  color: var(--ita-tool-muted);
  line-height: 1.7;
}

.ita-tool-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.ita-tool-card,
.ita-provider-card,
.ita-widget-panel,
.ita-route-panel {
  min-width: 0;
  color: var(--ita-tool-ink);
  background: #fff;
  border: 1px solid var(--ita-tool-line);
  border-radius: 1rem;
  box-shadow: 0 16px 44px rgba(8, 43, 58, .07);
}

.ita-tool-card {
  display: grid;
  gap: .8rem;
  padding: 1.25rem;
  text-decoration: none;
  transition: transform .18s ease, box-shadow .18s ease;
}

.ita-tool-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 22px 52px rgba(8, 43, 58, .11);
}

.ita-tool-card span,
.ita-provider-card > span {
  color: var(--ita-tool-lagoon-dark);
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.ita-tool-card h3,
.ita-provider-card h3 {
  margin: 0;
  color: var(--ita-tool-ink) !important;
  font-size: clamp(1.18rem, 2vw, 1.55rem) !important;
  line-height: 1.2 !important;
}

.ita-tool-card p,
.ita-provider-card p {
  margin: 0;
  color: var(--ita-tool-muted);
  font-size: .94rem;
  line-height: 1.62;
}

.ita-tool-card strong {
  margin-top: auto;
  color: var(--ita-tool-ocean);
  font-size: .88rem;
}

.ita-provider-groups {
  display: grid;
  gap: 2rem;
}

.ita-provider-group {
  display: grid;
  gap: 1rem;
}

.ita-provider-group > header {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: end;
}

.ita-provider-group h2 {
  margin: 0;
  color: var(--ita-tool-ink);
  font-size: clamp(1.5rem, 3vw, 2.35rem) !important;
}

.ita-provider-group header p {
  max-width: 54ch;
  margin: 0;
  color: var(--ita-tool-muted);
  font-size: .92rem;
}

.ita-provider-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .85rem;
}

.ita-provider-card {
  display: grid;
  gap: .65rem;
  padding: 1.05rem;
}

.ita-provider-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  margin-top: .25rem;
}

.ita-provider-link,
.ita-provider-widget-button,
.ita-widget-load,
.ita-dock-toggle,
.ita-dock-link {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-height: 2.65rem;
  padding: .68rem .9rem;
  color: #fff !important;
  background: var(--ita-tool-ocean);
  border: 0;
  border-radius: .65rem;
  font: inherit;
  font-size: .82rem;
  font-weight: 780;
  text-decoration: none;
  cursor: pointer;
}

.ita-provider-widget-button,
.ita-widget-load {
  background: var(--ita-tool-lagoon-dark);
}

.ita-provider-link[data-provider-state="fallback"] {
  color: var(--ita-tool-ocean) !important;
  background: #edf5f3;
  border: 1px solid var(--ita-tool-line);
}

.ita-widget-panel {
  padding: clamp(1rem, 3vw, 1.65rem);
  overflow: clip;
}

.ita-widget-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  margin-bottom: 1rem;
}

.ita-widget-tab {
  padding: .7rem .9rem;
  color: var(--ita-tool-ocean);
  background: #edf5f3;
  border: 1px solid var(--ita-tool-line);
  border-radius: .65rem;
  font: inherit;
  font-size: .82rem;
  font-weight: 750;
  cursor: pointer;
}

.ita-widget-tab[aria-selected="true"] {
  color: #fff;
  background: var(--ita-tool-ocean);
}

.ita-widget-stage {
  min-height: 300px;
  padding: clamp(.7rem, 2vw, 1rem);
  overflow: auto;
  background: #fff;
  border: 1px solid var(--ita-tool-line);
  border-radius: .85rem;
}

.ita-widget-pane[hidden] {
  display: none !important;
}

.ita-widget-placeholder {
  display: grid;
  place-items: center;
  align-content: center;
  gap: .75rem;
  min-height: 260px;
  padding: 1.25rem;
  text-align: center;
  color: var(--ita-tool-muted);
}

.ita-widget-placeholder strong {
  color: var(--ita-tool-ink);
  font-size: 1.05rem;
}

.ita-provider-widget-output {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--ita-tool-line);
}

.ita-editorial-next {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .75rem;
  margin-top: 1rem;
}

.ita-editorial-next a {
  padding: .9rem;
  color: var(--ita-tool-ocean);
  background: #edf5f3;
  border-radius: .75rem;
  font-size: .85rem;
  font-weight: 750;
  text-decoration: none;
}

.ita-home-widget {
  padding: clamp(3rem, 7vw, 6rem) 0;
  background: linear-gradient(180deg, #eef7f5, #fff);
}

.ita-home-widget .ita-widget-panel {
  margin-top: 1.4rem;
}

.ita-destination-tools {
  margin: clamp(2.5rem, 6vw, 5rem) auto;
}

.ita-destination-tool-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .75rem;
}

.ita-destination-tool-grid a {
  display: grid;
  gap: .45rem;
  min-width: 0;
  padding: 1rem;
  color: var(--ita-tool-ink);
  background: #fff;
  border: 1px solid var(--ita-tool-line);
  border-radius: .85rem;
  text-decoration: none;
}

.ita-destination-tool-grid strong {
  color: var(--ita-tool-ink);
  font-size: 1rem;
}

.ita-destination-tool-grid span {
  color: var(--ita-tool-muted);
  font-size: .82rem;
  line-height: 1.45;
}

.ita-planning-dock {
  position: fixed;
  right: 1rem;
  bottom: 1rem;
  z-index: 999;
  width: min(360px, calc(100vw - 2rem));
  color: #fff;
}

.ita-dock-toggle {
  width: 100%;
  justify-content: space-between;
  background: var(--ita-tool-ocean);
  box-shadow: 0 12px 35px rgba(8, 43, 58, .24);
}

.ita-dock-panel {
  margin-bottom: .55rem;
  padding: 1rem;
  color: var(--ita-tool-ink);
  background: #fff;
  border: 1px solid var(--ita-tool-line);
  border-radius: .95rem;
  box-shadow: 0 20px 55px rgba(8, 43, 58, .2);
}

.ita-dock-panel[hidden] {
  display: none;
}

.ita-dock-panel h2 {
  margin: 0 0 .35rem;
  color: var(--ita-tool-ink);
  font-size: 1.15rem !important;
  line-height: 1.2 !important;
}

.ita-dock-panel > p {
  margin: 0 0 .8rem;
  color: var(--ita-tool-muted);
  font-size: .82rem;
  line-height: 1.5;
}

.ita-dock-steps {
  display: grid;
  gap: .45rem;
}

.ita-dock-link {
  justify-content: flex-start;
  color: var(--ita-tool-ocean) !important;
  background: #edf5f3;
  font-size: .8rem;
}

.ita-dock-link.is-current {
  color: #fff !important;
  background: var(--ita-tool-lagoon-dark);
}

@media (max-width: 980px) {
  .ita-tool-hero-grid,
  .ita-section-heading {
    grid-template-columns: 1fr;
  }

  .ita-tool-grid,
  .ita-provider-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ita-editorial-next,
  .ita-destination-tool-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .ita-tool-shell {
    width: min(100% - 1rem, 1180px);
  }

  .ita-tool-hero h1 {
    font-size: clamp(2.35rem, 13vw, 3.65rem) !important;
  }

  .ita-tool-grid,
  .ita-provider-grid,
  .ita-editorial-next,
  .ita-destination-tool-grid {
    grid-template-columns: 1fr;
  }

  .ita-provider-group > header {
    display: grid;
  }

  .ita-planning-dock {
    right: .5rem;
    bottom: .5rem;
    width: calc(100vw - 1rem);
  }
}

@media (prefers-reduced-motion: reduce) {
  .ita-tool-card {
    transition: none;
  }
}
/* ===== END SOURCE: css/planning-workspace.css ===== */

/* ===== BEGIN SOURCE: css/premium-experience.css ===== */
/* IslandTravelAtlas Premium Experience
 * Shared mega menu, destination-first tools, image system, and footer.
 */
:root {
  --pm-ocean-950: #062b3a;
  --pm-ocean-900: #083747;
  --pm-ocean-800: #0d4a5e;
  --pm-lagoon-600: #0f8f8b;
  --pm-lagoon-500: #19a7a1;
  --pm-coral-600: #b84c39;
  --pm-ink: #152f38;
  --pm-muted: #5c7077;
  --pm-canvas: #f6f4ef;
  --pm-paper: #fff;
  --pm-line: #dfe7e6;
  --pm-dark-text: #e5eff1;
  --pm-dark-muted: #c6d5d9;
  --pm-dark-link: #bdf2ed;
  --pm-shadow: 0 22px 65px rgba(6, 43, 58, .18);
  --pm-radius-lg: 24px;
  --pm-radius-md: 16px;
}

html.pm-nav-open,
html.pm-nav-open body { overflow: hidden; }

/* Shared header */
.pm-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  width: 100%;
  color: var(--pm-ink);
  background: rgba(255, 255, 255, .94);
  border-bottom: 1px solid rgba(8, 55, 71, .1);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.pm-header-inner {
  width: min(1240px, calc(100% - 40px));
  min-height: 78px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 24px;
}

.pm-brand {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  min-width: max-content;
  color: var(--pm-ink) !important;
  text-decoration: none !important;
}

.pm-brand-mark {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  color: #fff;
  background: var(--pm-ocean-900);
  border-radius: 50%;
}

.pm-brand-mark svg { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 2; }
.pm-brand-copy { display: grid; gap: 2px; }
.pm-brand-copy strong { color: var(--pm-ink) !important; font-size: 1rem !important; line-height: 1.1 !important; letter-spacing: -.02em; }
.pm-brand-copy small { color: var(--pm-muted) !important; font-size: .64rem !important; line-height: 1.25 !important; letter-spacing: .06em; text-transform: uppercase; }

.pm-desktop-nav { margin-left: auto; display: flex; align-items: stretch; gap: 4px; }
.pm-nav-item { position: static; display: flex; align-items: stretch; }
.pm-nav-link,
.pm-nav-trigger {
  min-height: 48px;
  padding: 0 13px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  border: 0;
  border-radius: 10px;
  color: var(--pm-ink) !important;
  background: transparent;
  font: inherit;
  font-size: .88rem !important;
  font-weight: 680;
  line-height: 1.2;
  text-decoration: none !important;
  cursor: pointer;
}
.pm-nav-link:hover,
.pm-nav-trigger:hover,
.pm-nav-trigger[aria-expanded="true"] { background: #edf5f4; color: var(--pm-ocean-900) !important; }
.pm-nav-trigger svg { width: 13px; transition: transform .18s ease; }
.pm-nav-trigger[aria-expanded="true"] svg { transform: rotate(180deg); }

.pm-mega {
  position: absolute;
  top: calc(100% + 1px);
  left: 50%;
  width: min(1180px, calc(100vw - 42px));
  padding: 24px;
  color: var(--pm-ink);
  background: var(--pm-paper);
  border: 1px solid rgba(8, 55, 71, .12);
  border-radius: 0 0 24px 24px;
  box-shadow: var(--pm-shadow);
  transform: translateX(-50%);
}
.pm-mega[hidden] { display: none !important; }
.pm-mega-grid { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 24px; }
.pm-mega-intro { padding: 22px; color: #fff; background: linear-gradient(145deg, var(--pm-ocean-950), var(--pm-ocean-800)); border-radius: 18px; }
.pm-mega-intro span { color: #9ee7df; font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.pm-mega-intro h2 { margin: .55rem 0 .75rem !important; color: #fff !important; font-size: clamp(1.35rem, 2vw, 1.9rem) !important; line-height: 1.05 !important; }
.pm-mega-intro p { margin: 0 0 1rem; color: var(--pm-dark-muted) !important; font-size: .86rem !important; line-height: 1.55 !important; }
.pm-mega-intro a { color: var(--pm-dark-link) !important; font-size: .82rem; font-weight: 760; }

.pm-destination-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 13px; }
.pm-destination-card {
  min-width: 0;
  overflow: hidden;
  color: var(--pm-ink) !important;
  background: #f7faf9;
  border: 1px solid var(--pm-line);
  border-radius: 16px;
  text-decoration: none !important;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.pm-destination-card:hover { transform: translateY(-3px); border-color: rgba(15, 143, 139, .4); box-shadow: 0 14px 28px rgba(8, 55, 71, .12); }
.pm-destination-card img { width: 100%; aspect-ratio: 4 / 2.3; display: block; object-fit: cover; }
.pm-destination-card div { padding: 13px 14px 15px; }
.pm-destination-card span { color: var(--pm-lagoon-600); font-size: .64rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.pm-destination-card strong { display: block; margin-top: 4px; color: var(--pm-ink) !important; font-size: .95rem !important; line-height: 1.2 !important; }
.pm-destination-card small { display: block; margin-top: 4px; color: var(--pm-muted) !important; font-size: .72rem !important; line-height: 1.4 !important; }

.pm-mega-columns { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.pm-mega-column { min-width: 0; padding: 4px 10px; }
.pm-mega-column h2 { margin: 0 0 9px !important; color: var(--pm-ocean-900) !important; font-family: inherit !important; font-size: .7rem !important; font-weight: 820 !important; line-height: 1.2 !important; letter-spacing: .1em !important; text-transform: uppercase; }
.pm-mega-column a { display: block; padding: 8px 0; color: var(--pm-ink) !important; font-size: .84rem !important; font-weight: 620; line-height: 1.35; text-decoration: none !important; }
.pm-mega-column a:hover { color: var(--pm-lagoon-600) !important; }
.pm-mega-column a span { display: block; margin-top: 2px; color: var(--pm-muted) !important; font-size: .7rem; font-weight: 450; }

.pm-header-cta {
  min-width: max-content;
  padding: 11px 15px;
  color: #fff !important;
  background: var(--pm-coral-600);
  border-radius: 999px;
  font-size: .82rem !important;
  font-weight: 760;
  text-decoration: none !important;
}
.pm-header-cta:hover { background: #9e3f31; }

.pm-menu-button { display: none; width: 44px; height: 44px; padding: 10px; border: 1px solid var(--pm-line); border-radius: 12px; background: #fff; }
.pm-menu-button i { display: block; height: 2px; margin: 5px 0; background: var(--pm-ink); border-radius: 2px; }
.pm-mobile-nav { display: none; }

/* Destination-first tools */
.pm-tools-hero { padding: clamp(56px, 8vw, 96px) 0; background: var(--pm-canvas); }
.pm-tools-hero-grid { width: min(1180px, calc(100% - 40px)); margin: 0 auto; display: grid; grid-template-columns: minmax(0, .9fr) minmax(360px, 1.1fr); gap: clamp(32px, 6vw, 72px); align-items: center; }
.pm-tools-hero h1 { max-width: 12ch; margin: .6rem 0 1rem !important; font-size: clamp(2.65rem, 5.6vw, 5rem) !important; line-height: .95 !important; letter-spacing: -.055em; }
.pm-tools-hero p { max-width: 60ch; color: var(--pm-muted); font-size: 1rem; line-height: 1.7; }
.pm-tools-hero img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--pm-radius-lg); box-shadow: var(--pm-shadow); }
.pm-kicker { color: var(--pm-lagoon-600); font-size: .7rem; font-weight: 820; letter-spacing: .12em; text-transform: uppercase; }
.pm-section { padding: clamp(58px, 8vw, 96px) 0; }
.pm-shell { width: min(1180px, calc(100% - 40px)); margin: 0 auto; }
.pm-section-heading { max-width: 760px; margin-bottom: 32px; }
.pm-section-heading h2 { margin: .55rem 0 .8rem !important; font-size: clamp(2rem, 4vw, 3.5rem) !important; line-height: 1 !important; letter-spacing: -.04em; }
.pm-section-heading p { color: var(--pm-muted); line-height: 1.65; }
.pm-tools-destinations { background: #fff; }
.pm-tool-choice-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.pm-tool-choice { min-width: 0; padding: 20px; color: var(--pm-ink) !important; background: #fff; border: 1px solid var(--pm-line); border-radius: var(--pm-radius-md); text-decoration: none !important; }
.pm-tool-choice span { color: var(--pm-lagoon-600); font-size: .68rem; font-weight: 820; letter-spacing: .08em; text-transform: uppercase; }
.pm-tool-choice strong { display: block; margin: 7px 0 6px; color: var(--pm-ink) !important; font-size: 1.02rem !important; line-height: 1.25 !important; }
.pm-tool-choice p { margin: 0; color: var(--pm-muted); font-size: .82rem; line-height: 1.5; }
.pm-tool-choice:hover { border-color: rgba(15,143,139,.45); box-shadow: 0 14px 32px rgba(8,55,71,.09); }

.pm-destination-tools { margin-top: clamp(54px, 8vw, 88px); padding: clamp(46px, 6vw, 72px) 0; color: var(--pm-dark-text); background: linear-gradient(140deg, var(--pm-ocean-950), var(--pm-ocean-800)); }
.pm-destination-tools-grid { width: min(1120px, calc(100% - 40px)); margin: 0 auto; display: grid; grid-template-columns: minmax(0, .95fr) minmax(360px, 1.05fr); gap: 46px; align-items: center; }
.pm-destination-tools h2 { margin: .55rem 0 .8rem !important; color: #fff !important; font-size: clamp(2rem, 4vw, 3.4rem) !important; line-height: 1 !important; letter-spacing: -.04em; }
.pm-destination-tools p { color: var(--pm-dark-muted) !important; line-height: 1.65; }
.pm-destination-tools img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 18px; }
.pm-destination-tool-links { margin-top: 22px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.pm-destination-tool-links a { min-width: 0; padding: 14px 15px; color: #fff !important; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.16); border-radius: 12px; font-size: .82rem !important; font-weight: 700; text-decoration: none !important; }
.pm-destination-tool-links a:hover { background: rgba(255,255,255,.15); }

.pm-tool-destination-strip { padding: 56px 0; background: #f2f7f6; }
.pm-tool-destination-strip .pm-destination-grid { margin-top: 24px; }

/* Real-image handling */
img.pm-real-image { background: #dfe9e7; }
.pm-image-frame { overflow: hidden; border-radius: var(--pm-radius-lg); }
.pm-image-frame img { width: 100%; height: 100%; object-fit: cover; }

/* Shared premium footer; headings are component sized, not page h2 sized. */
.pm-footer { color: var(--pm-dark-text); background: var(--pm-ocean-950); }
.pm-footer-main { width: min(1180px, calc(100% - 40px)); margin: 0 auto; padding: 58px 0 42px; display: grid; grid-template-columns: minmax(280px, 1.5fr) repeat(3, minmax(150px, .72fr)); gap: 40px; }
.pm-footer .pm-brand { color: #fff !important; }
.pm-footer .pm-brand-copy strong { color: #fff !important; }
.pm-footer .pm-brand-copy small { color: var(--pm-dark-muted) !important; }
.pm-footer-brand p { max-width: 42ch; margin: 18px 0 0; color: var(--pm-dark-muted) !important; font-size: .88rem !important; line-height: 1.65 !important; }
.pm-footer-heading { margin: 0 0 10px !important; color: #fff !important; font-family: inherit !important; font-size: .72rem !important; font-weight: 820 !important; line-height: 1.25 !important; letter-spacing: .11em !important; text-transform: uppercase; }
.pm-footer-column { min-width: 0; }
.pm-footer-column a { display: block; padding: 5px 0; color: var(--pm-dark-muted) !important; font-size: .84rem !important; line-height: 1.45 !important; text-decoration: none !important; }
.pm-footer-column a:hover { color: var(--pm-dark-link) !important; }
.pm-footer-bottom { width: min(1180px, calc(100% - 40px)); margin: 0 auto; padding: 20px 0 28px; display: flex; justify-content: space-between; gap: 24px; border-top: 1px solid rgba(255,255,255,.13); }
.pm-footer-bottom p,
.pm-footer-bottom a,
.pm-footer-bottom button { color: var(--pm-dark-muted) !important; font-size: .69rem !important; line-height: 1.5 !important; }
.pm-footer-bottom p { margin: 0; max-width: 62ch; }
.pm-footer-bottom div { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px 14px; }
.pm-footer-bottom button { padding: 0; border: 0; background: none; cursor: pointer; }

@media (max-width: 1080px) {
  .pm-desktop-nav, .pm-header-cta { display: none; }
  .pm-menu-button { display: block; margin-left: auto; }
  .pm-mobile-nav { padding: 14px 20px 26px; background: #fff; border-top: 1px solid var(--pm-line); max-height: calc(100vh - 78px); overflow-y: auto; }
  .pm-mobile-nav:not([hidden]) { display: block; }
  .pm-mobile-nav details { border-bottom: 1px solid var(--pm-line); }
  .pm-mobile-nav summary { padding: 16px 0; color: var(--pm-ink); font-size: .94rem; font-weight: 760; cursor: pointer; list-style: none; }
  .pm-mobile-nav summary::-webkit-details-marker { display: none; }
  .pm-mobile-links { padding: 0 0 14px 14px; display: grid; gap: 2px; }
  .pm-mobile-links a { padding: 9px 0; color: var(--pm-muted) !important; font-size: .86rem; text-decoration: none; }
  .pm-mobile-direct { display: block; padding: 16px 0; color: var(--pm-ink) !important; border-bottom: 1px solid var(--pm-line); font-size: .94rem; font-weight: 760; text-decoration: none; }
  .pm-mobile-cta { display: block; margin-top: 18px; padding: 13px 16px; color: #fff !important; background: var(--pm-coral-600); border-radius: 999px; text-align: center; font-weight: 760; text-decoration: none; }
  .pm-footer-main { grid-template-columns: 1.4fr repeat(2, 1fr); }
  .pm-footer-brand { grid-column: 1 / -1; }
}

@media (max-width: 760px) {
  .pm-header-inner { width: min(100% - 28px, 1240px); min-height: 70px; gap: 12px; }
  .pm-brand-copy small { display: none; }
  .pm-brand-mark { width: 36px; height: 36px; }
  .pm-tools-hero-grid,
  .pm-destination-tools-grid { grid-template-columns: 1fr; }
  .pm-tools-hero-grid { width: min(100% - 28px, 1180px); }
  .pm-tools-hero h1 { font-size: clamp(2.45rem, 13vw, 4rem) !important; }
  .pm-tool-choice-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pm-destination-tool-links { grid-template-columns: 1fr; }
  .pm-footer-main { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 22px; }
  .pm-footer-brand { grid-column: 1 / -1; }
  .pm-footer-bottom { flex-direction: column; }
  .pm-footer-bottom div { justify-content: flex-start; }
}

@media (max-width: 520px) {
  .pm-brand-copy strong { font-size: .91rem !important; }
  .pm-tool-choice-grid { grid-template-columns: 1fr; }
  .pm-footer-main { grid-template-columns: 1fr 1fr; }
  .pm-footer-column:last-child { grid-column: 1 / -1; }
}

@media (prefers-reduced-motion: reduce) {
  .pm-destination-card, .pm-nav-trigger svg { transition: none; }
}
/* ===== END SOURCE: css/premium-experience.css ===== */

/* ===== BEGIN SOURCE: css/site-integrity.css ===== */
/* ITA_SITE_INTEGRITY_CONTRAST_START
 *
 * Managed contrast layer for the Route-First visual system.
 * Normal text on dark surfaces is held above WCAG AA's 4.5:1 target.
 */

:root {
  --ita-dark-surface: #082b3a;
  --ita-dark-surface-2: #0d4052;
  --ita-dark-text: #e5eff1;
  --ita-dark-muted: #c6d5d9;
  --ita-dark-link: #bdf2ed;
  --ita-accessible-coral: #b84c39;
  --ita-focus: #f7c66d;
}

/* The previous coral was visually attractive but white text did not
   reach normal-text contrast. */
.rf-button-primary,
.button.button-primary,
.button-primary,
a.button-primary,
input[type="submit"].button-primary {
  color: #fff !important;
  background-color: var(--ita-accessible-coral) !important;
}

.rf-button-primary:hover,
.button.button-primary:hover,
.button-primary:hover,
a.button-primary:hover {
  background-color: #9e3f31 !important;
}

/* Explicitly scope every established dark theme surface. */
:where(
  .rf-route-card,
  .rf-connection-strip,
  .rf-route-method,
  .rf-planning-section,
  .rf-final-cta,
  .rf-footer,
  .site-footer,
  .premium-footer,
  .r-footer,
  .home-v2-route-method,
  .home-v2-final-cta,
  .home-v2-dark-section,
  .cluster-hero,
  .greek-hub-hero,
  .ocean-hub-hero,
  .caribbean-hub-hero,
  .article-hero,
  .greek-article-hero,
  .ocean-article-hero,
  .caribbean-article-hero
) {
  color: var(--ita-dark-text);
}

:where(
  .rf-route-card,
  .rf-connection-strip,
  .rf-route-method,
  .rf-planning-section,
  .rf-final-cta,
  .rf-footer,
  .site-footer,
  .premium-footer,
  .r-footer,
  .home-v2-route-method,
  .home-v2-final-cta,
  .home-v2-dark-section,
  .cluster-hero,
  .greek-hub-hero,
  .ocean-hub-hero,
  .caribbean-hub-hero,
  .article-hero,
  .greek-article-hero,
  .ocean-article-hero,
  .caribbean-article-hero
) :where(p, li, dd, figcaption, small, .editorial-byline, .breadcrumbs) {
  color: var(--ita-dark-muted) !important;
}

:where(
  .rf-route-card,
  .rf-connection-strip,
  .rf-route-method,
  .rf-planning-section,
  .rf-final-cta,
  .rf-footer,
  .site-footer,
  .premium-footer,
  .r-footer,
  .home-v2-route-method,
  .home-v2-final-cta,
  .home-v2-dark-section,
  .cluster-hero,
  .greek-hub-hero,
  .ocean-hub-hero,
  .caribbean-hub-hero,
  .article-hero,
  .greek-article-hero,
  .ocean-article-hero,
  .caribbean-article-hero
) :where(h1, h2, h3, h4, strong) {
  color: #fff !important;
}

:where(
  .rf-route-card,
  .rf-connection-strip,
  .rf-route-method,
  .rf-planning-section,
  .rf-final-cta,
  .rf-footer,
  .site-footer,
  .premium-footer,
  .r-footer,
  .home-v2-route-method,
  .home-v2-final-cta,
  .home-v2-dark-section,
  .cluster-hero,
  .greek-hub-hero,
  .ocean-hub-hero,
  .caribbean-hub-hero,
  .article-hero,
  .greek-article-hero,
  .ocean-article-hero,
  .caribbean-article-hero
) a:not(.button):not(.rf-button) {
  color: var(--ita-dark-link) !important;
  text-decoration-color: rgba(189, 242, 237, 0.65);
  text-underline-offset: 0.18em;
}

.rf-footer-bottom p,
.rf-footer-bottom a,
.rf-footer-bottom button,
.site-footer .footer-bottom p,
.site-footer .footer-bottom a,
.site-footer .footer-bottom button {
  color: #c6d5d9 !important;
}

.rf-footer .rf-brand-copy small,
.site-footer .footer-brand small {
  color: #c6d5d9 !important;
}

/* Focus must remain visible on both pale and dark surfaces. */
body :where(a, button, input, select, textarea, summary):focus-visible {
  outline: 3px solid var(--ita-focus) !important;
  outline-offset: 3px !important;
}

/* Keep text readable when browser text or page zoom is increased. */
body {
  overflow-wrap: anywhere;
}

table {
  overflow-wrap: normal;
}

.table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

/* ITA_SITE_INTEGRITY_CONTRAST_END */
/* ===== END SOURCE: css/site-integrity.css ===== */

/* ===== BEGIN SOURCE: css/affiliate-contrast-images.css ===== */
/* IslandTravelAtlas — Affiliate, Contrast and Image Integrity v2 */
:root {
  --fix-ocean-950: #052a38;
  --fix-ocean-900: #073746;
  --fix-ocean-800: #0c4a5d;
  --fix-ink: #17313a;
  --fix-muted: #50676e;
  --fix-paper: #ffffff;
  --fix-canvas: #f5f7f5;
  --fix-line: rgba(5, 42, 56, .16);
  --fix-dark-text: #f2f8f9;
  --fix-dark-muted: #d6e4e6;
  --fix-dark-link: #c6fff7;
  --fix-coral: #b84c39;
  --fix-coral-hover: #963d31;
  --fix-focus: #ffd377;
  --fix-shadow: 0 12px 34px rgba(5, 42, 56, .10);
  --fix-radius: 18px;
  --fix-shell: 1180px;
}

[hidden] {
  display: none !important;
}

html,
body {
  max-width: 100%;
  overflow-x: clip;
}

body,
body.rf-theme,
body.ita-tool-page,
body.guide-page {
  margin: 0 !important;
  padding: 0 !important;
  color: var(--fix-ink);
  background: var(--fix-canvas);
}

body *,
body *::before,
body *::after {
  box-sizing: border-box;
}

main,
article,
section,
aside,
nav,
header,
footer,
figure,
form,
[class*="grid"],
[class*="layout"],
[class*="shell"],
[class*="container"] {
  min-width: 0;
}

img,
picture,
video,
svg,
iframe,
embed,
object {
  max-width: 100%;
}

img,
picture,
video {
  display: block;
  height: auto;
}

iframe,
embed,
object {
  width: 100%;
  border: 0;
}

p,
li,
dd,
figcaption,
a,
button,
summary,
th,
td {
  overflow-wrap: break-word;
}

body :where(a, button, input, select, textarea, summary):focus-visible {
  outline: 3px solid var(--fix-focus) !important;
  outline-offset: 3px !important;
}

/* All known dark components plus runtime-detected dark surfaces. */
:where(
  .ita-dark-surface,
  .rf-route-card,
  .rf-connection-strip,
  .rf-route-method,
  .rf-planning-section,
  .rf-final-cta,
  .rf-flight-dark-section,
  .rf-flight-hero,
  .rf-footer,
  .pm-mega-intro,
  .pm-destination-tools,
  .pm-footer,
  .ita-tool-hero,
  .ita-route-preview,
  .ita-dock-panel,
  .site-footer,
  .premium-footer,
  .r-footer,
  .atlas-footer,
  .coastal-footer,
  .cluster-hero,
  .greek-cluster-hero,
  .ocean-cluster-hero,
  .caribbean-hub-hero,
  .article-hero,
  .greek-article-hero,
  .ocean-article-hero,
  .caribbean-article-hero,
  .decision-hero,
  .page-hero.dark,
  .compact-hero.dark,
  .home-v2-route-method,
  .home-v2-final-cta,
  .home-v2-dark-section,
  .section.dark,
  section.dark
) {
  color: var(--fix-dark-text) !important;
}

:where(
  .ita-dark-surface,
  .rf-route-card,
  .rf-connection-strip,
  .rf-route-method,
  .rf-planning-section,
  .rf-final-cta,
  .rf-flight-dark-section,
  .rf-flight-hero,
  .rf-footer,
  .pm-mega-intro,
  .pm-destination-tools,
  .pm-footer,
  .ita-tool-hero,
  .ita-route-preview,
  .ita-dock-panel,
  .site-footer,
  .premium-footer,
  .r-footer,
  .atlas-footer,
  .coastal-footer,
  .cluster-hero,
  .greek-cluster-hero,
  .ocean-cluster-hero,
  .caribbean-hub-hero,
  .article-hero,
  .greek-article-hero,
  .ocean-article-hero,
  .caribbean-article-hero,
  .decision-hero,
  .page-hero.dark,
  .compact-hero.dark,
  .home-v2-route-method,
  .home-v2-final-cta,
  .home-v2-dark-section,
  .section.dark,
  section.dark
) :where(h1, h2, h3, h4, h5, h6, strong, b) {
  color: #ffffff !important;
}

:where(
  .ita-dark-surface,
  .rf-route-card,
  .rf-connection-strip,
  .rf-route-method,
  .rf-planning-section,
  .rf-final-cta,
  .rf-flight-dark-section,
  .rf-flight-hero,
  .rf-footer,
  .pm-mega-intro,
  .pm-destination-tools,
  .pm-footer,
  .ita-tool-hero,
  .ita-route-preview,
  .ita-dock-panel,
  .site-footer,
  .premium-footer,
  .r-footer,
  .atlas-footer,
  .coastal-footer,
  .cluster-hero,
  .greek-cluster-hero,
  .ocean-cluster-hero,
  .caribbean-hub-hero,
  .article-hero,
  .greek-article-hero,
  .ocean-article-hero,
  .caribbean-article-hero,
  .decision-hero,
  .page-hero.dark,
  .compact-hero.dark,
  .home-v2-route-method,
  .home-v2-final-cta,
  .home-v2-dark-section,
  .section.dark,
  section.dark
) :where(p, li, dd, small, figcaption, .meta, .excerpt, .breadcrumbs, .editorial-byline) {
  color: var(--fix-dark-muted) !important;
}

:where(
  .ita-dark-surface,
  .rf-route-card,
  .rf-connection-strip,
  .rf-route-method,
  .rf-planning-section,
  .rf-final-cta,
  .rf-flight-dark-section,
  .rf-flight-hero,
  .rf-footer,
  .pm-mega-intro,
  .pm-destination-tools,
  .pm-footer,
  .ita-tool-hero,
  .ita-route-preview,
  .ita-dock-panel,
  .site-footer,
  .premium-footer,
  .r-footer,
  .atlas-footer,
  .coastal-footer,
  .cluster-hero,
  .greek-cluster-hero,
  .ocean-cluster-hero,
  .caribbean-hub-hero,
  .article-hero,
  .greek-article-hero,
  .ocean-article-hero,
  .caribbean-article-hero,
  .decision-hero,
  .page-hero.dark,
  .compact-hero.dark,
  .home-v2-route-method,
  .home-v2-final-cta,
  .home-v2-dark-section,
  .section.dark,
  section.dark
) a:not(.button):not(.rf-button):not(.pm-header-cta):not(.ita-provider-link) {
  color: var(--fix-dark-link) !important;
  text-decoration-color: rgba(198, 255, 247, .72) !important;
  text-underline-offset: .18em;
}

/* Runtime/light cards nested in dark areas must retain dark text. */
:where(
  .ita-light-surface,
  .ita-provider-card,
  .ita-tool-card,
  .ita-widget-panel,
  .ita-provider-widget-output,
  .pm-destination-card,
  .pm-tool-choice,
  .rf-library-item,
  .rf-library-group,
  .review-bar,
  .greek-review-bar,
  .ocean-review-bar,
  .caribbean-review-bar,
  .sidebar-widget,
  .toc,
  .greek-toc,
  .ocean-toc,
  .caribbean-toc,
  .source-panel,
  .caribbean-source-panel,
  .notice-panel,
  .compliance-card,
  .partner-card
) {
  color: var(--fix-ink) !important;
  background-color: var(--fix-paper);
}

:where(
  .ita-light-surface,
  .ita-provider-card,
  .ita-tool-card,
  .ita-widget-panel,
  .ita-provider-widget-output,
  .pm-destination-card,
  .pm-tool-choice,
  .rf-library-item,
  .rf-library-group,
  .review-bar,
  .greek-review-bar,
  .ocean-review-bar,
  .caribbean-review-bar,
  .sidebar-widget,
  .toc,
  .greek-toc,
  .ocean-toc,
  .caribbean-toc,
  .source-panel,
  .caribbean-source-panel,
  .notice-panel,
  .compliance-card,
  .partner-card
) :where(h1, h2, h3, h4, strong, b) {
  color: var(--fix-ink) !important;
}

:where(
  .ita-light-surface,
  .ita-provider-card,
  .ita-tool-card,
  .ita-widget-panel,
  .ita-provider-widget-output,
  .pm-destination-card,
  .pm-tool-choice,
  .rf-library-item,
  .rf-library-group,
  .review-bar,
  .greek-review-bar,
  .ocean-review-bar,
  .caribbean-review-bar,
  .sidebar-widget,
  .toc,
  .greek-toc,
  .ocean-toc,
  .caribbean-toc,
  .source-panel,
  .caribbean-source-panel,
  .notice-panel,
  .compliance-card,
  .partner-card
) :where(p, li, small, figcaption, .meta, .excerpt) {
  color: var(--fix-muted) !important;
}

:where(
  .ita-light-surface,
  .ita-provider-card,
  .ita-tool-card,
  .ita-widget-panel,
  .ita-provider-widget-output,
  .pm-destination-card,
  .pm-tool-choice,
  .rf-library-item,
  .rf-library-group,
  .review-bar,
  .greek-review-bar,
  .ocean-review-bar,
  .caribbean-review-bar,
  .sidebar-widget,
  .toc,
  .greek-toc,
  .ocean-toc,
  .caribbean-toc,
  .source-panel,
  .caribbean-source-panel,
  .notice-panel,
  .compliance-card,
  .partner-card
) a:not(.button):not(.rf-button):not(.ita-provider-link) {
  color: var(--fix-ocean-800) !important;
}

/* Provider cards and functional actions. */
.ita-provider-grid {
  align-items: stretch;
}

.ita-provider-card {
  display: flex !important;
  flex-direction: column;
  min-width: 0;
  min-height: 100%;
  overflow: hidden;
  border: 1px solid var(--fix-line) !important;
  border-radius: var(--fix-radius) !important;
  box-shadow: var(--fix-shadow) !important;
}

.ita-provider-card > p {
  flex: 1 1 auto;
}

.ita-provider-actions {
  display: flex !important;
  flex-wrap: wrap;
  align-items: center;
  gap: .65rem;
  margin-top: auto;
}

.ita-provider-link,
.ita-provider-widget-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  max-width: 100%;
  padding: .72rem 1rem;
  border-radius: 999px;
  font-size: .84rem !important;
  font-weight: 760;
  line-height: 1.2;
  text-align: center;
}

.ita-provider-link[data-provider-state="active"] {
  color: #fff !important;
  background: var(--fix-coral) !important;
  border-color: var(--fix-coral) !important;
}

.ita-provider-link[data-provider-state="active"]:hover {
  background: var(--fix-coral-hover) !important;
}

.ita-provider-link[data-provider-state="fallback"] {
  color: var(--fix-ocean-800) !important;
  background: #edf5f4 !important;
  border-color: rgba(12, 74, 93, .22) !important;
}

.ita-provider-widget-button {
  color: var(--fix-ocean-800) !important;
  background: #fff !important;
  border: 1px solid rgba(12, 74, 93, .28) !important;
}

.ita-provider-widget-output {
  width: 100%;
  max-width: 100%;
  margin-top: 1rem;
  overflow-x: auto;
}

/* Correct oversized headings inside constrained cards and footers. */
:where(
  .ita-provider-card,
  .ita-tool-card,
  .pm-destination-card,
  .pm-tool-choice,
  .rf-library-item,
  .rf-destination-card,
  .sidebar-widget,
  .partner-card,
  .compliance-card
) :where(h2, h3, strong) {
  max-width: 100%;
  font-size: clamp(1.02rem, 1.35vw, 1.36rem) !important;
  line-height: 1.28 !important;
  letter-spacing: -.015em !important;
  text-wrap: balance;
}

.pm-footer-heading,
.rf-footer-column h2,
.site-footer h2,
.premium-footer h2,
.r-footer h2,
.atlas-footer h2,
.coastal-footer h2 {
  max-width: none !important;
  margin: 0 0 .65rem !important;
  color: #fff !important;
  font-family: inherit !important;
  font-size: .72rem !important;
  font-weight: 820 !important;
  line-height: 1.25 !important;
  letter-spacing: .11em !important;
  text-transform: uppercase !important;
  text-wrap: nowrap;
}

:where(
  .pm-footer,
  .rf-footer,
  .site-footer,
  .premium-footer,
  .r-footer,
  .atlas-footer,
  .coastal-footer
) :where(a, p, li, button) {
  color: var(--fix-dark-muted) !important;
}

/* Real destination photography and missing-image behavior. */
img.ita-real-photo,
.pm-real-image,
.cluster-hero img,
.greek-cluster-hero img,
.ocean-cluster-hero img,
.caribbean-hub-hero img,
.article-hero img,
.greek-article-hero img,
.ocean-article-hero img,
.caribbean-article-hero img {
  width: 100%;
  max-width: 100%;
  object-fit: cover;
  border-radius: clamp(14px, 2vw, 24px);
}

.cluster-hero img,
.greek-cluster-hero img,
.ocean-cluster-hero img,
.caribbean-hub-hero img {
  min-height: clamp(300px, 44vw, 560px);
}

.article-hero img,
.greek-article-hero img,
.ocean-article-hero img,
.caribbean-article-hero img {
  min-height: clamp(260px, 38vw, 500px);
}

img[data-image-failed="true"] {
  opacity: 0;
}

/* General malformed-layout containment. */
.rf-shell,
.pm-shell,
.ita-tool-shell,
.container,
.site-container,
.content-narrow {
  width: min(var(--fix-shell), calc(100% - 40px));
  max-width: var(--fix-shell);
  margin-inline: auto;
}

[class*="grid"] > *,
[class*="layout"] > * {
  min-width: 0;
}

.table-wrap,
.ita-widget-stage,
.tpwl-widget-frame,
.ita-provider-widget-output {
  width: 100%;
  max-width: 100%;
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch;
}

main table {
  max-width: 100%;
}

input,
select,
textarea,
button {
  max-width: 100%;
}

.pm-mega {
  max-height: calc(100vh - 84px);
  overflow-y: auto;
}

@media (max-width: 960px) {
  .ita-provider-grid,
  .ita-tool-grid,
  .pm-destination-grid,
  .pm-tool-choice-grid,
  .rf-library-grid,
  .rf-destination-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 680px) {
  .rf-shell,
  .pm-shell,
  .ita-tool-shell,
  .container,
  .site-container,
  .content-narrow {
    width: min(var(--fix-shell), calc(100% - 28px));
  }

  .ita-provider-grid,
  .ita-tool-grid,
  .pm-destination-grid,
  .pm-tool-choice-grid,
  .rf-library-grid,
  .rf-destination-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .ita-provider-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .ita-provider-link,
  .ita-provider-widget-button {
    width: 100%;
  }

  .cluster-hero img,
  .greek-cluster-hero img,
  .ocean-cluster-hero img,
  .caribbean-hub-hero img,
  .article-hero img,
  .greek-article-hero img,
  .ocean-article-hero img,
  .caribbean-article-hero img {
    min-height: 220px;
  }
}
/* ===== END SOURCE: css/affiliate-contrast-images.css ===== */

/* ===== BEGIN SOURCE: css/card-typography.css ===== */
/* IslandTravelAtlas card and panel typography
 * Keeps page-level hierarchy strong while preventing long headings from
 * overwhelming constrained cards, split panels, and narrow mobile layouts.
 */

/* Reduce the global section-heading ceiling without shrinking the hero. */
body.rf-theme main h2 {
  font-size: clamp(2rem, 3.35vw, 3.25rem);
  line-height: 1.08;
  text-wrap: balance;
  overflow-wrap: break-word;
}

body.rf-theme main h3,
body.rf-theme main h4 {
  text-wrap: balance;
  overflow-wrap: break-word;
}

/* Grid children must be allowed to shrink instead of forcing overflow. */
.rf-route-method-grid > *,
.rf-feature-grid > *,
.rf-latest-grid > *,
.rf-planning-grid > *,
.rf-section-heading > *,
.rf-library-hero-grid > *,
.rf-destination-grid > * {
  min-width: 0;
}

/* Homepage route-method panel: this is the specific oversized example. */
body.rf-theme .rf-route-method h2 {
  max-width: 20ch;
  margin-bottom: .9rem;
  font-size: clamp(1.9rem, 2.65vw, 2.65rem);
  line-height: 1.12;
}

body.rf-theme .rf-route-method > .rf-shell > div:first-child > p:not(.rf-kicker) {
  max-width: 48ch;
  margin: 0;
  font-size: clamp(.96rem, 1vw, 1.04rem);
  line-height: 1.68;
  text-wrap: pretty;
}

/* Homepage cards and split panels. */
body.rf-theme .rf-feature-story h2 {
  max-width: 25ch;
  font-size: clamp(1.85rem, 2.7vw, 2.7rem);
  line-height: 1.1;
}

body.rf-theme .rf-tool-panel h2 {
  max-width: 22ch;
  font-size: clamp(1.65rem, 2.25vw, 2.25rem);
  line-height: 1.14;
}

body.rf-theme .rf-latest-grid h2,
body.rf-theme .rf-planning-section h2 {
  max-width: 22ch;
  font-size: clamp(1.8rem, 2.55vw, 2.55rem);
  line-height: 1.12;
}

body.rf-theme .rf-final-cta h2 {
  font-size: clamp(2rem, 3.1vw, 3rem);
}

/* Destination image cards. */
body.rf-theme .rf-destination-content strong {
  max-width: 20ch;
  font-size: clamp(1.75rem, 2.7vw, 2.7rem);
  line-height: 1.06;
  text-wrap: balance;
  overflow-wrap: break-word;
}

body.rf-theme .rf-destination-content p {
  max-width: 58ch;
  font-size: clamp(.89rem, .95vw, .96rem);
}

/* Searchable guide-library cards. */
body.rf-theme .rf-library-item strong {
  font-size: clamp(1.08rem, 1.35vw, 1.24rem);
  line-height: 1.3;
  text-wrap: balance;
  overflow-wrap: break-word;
}

body.rf-theme .rf-library-item p {
  font-size: .92rem;
  line-height: 1.58;
  text-wrap: pretty;
}

/* Existing destination, article-sidebar, and commercial cards. */
body.rf-theme :where(
  .rf-destination-hub [class*="hub-card"],
  .rf-destination-hub [class*="guide-card"],
  .rf-guide-article [class*="sidebar-widget"],
  .rf-commercial-page [class*="partner-card"],
  .rf-commercial-page [class*="decision-card"]
) :where(h2, h3) {
  margin-top: 0;
  font-size: clamp(1.18rem, 1.7vw, 1.55rem) !important;
  line-height: 1.24 !important;
  text-wrap: balance;
  overflow-wrap: break-word;
}

body.rf-theme :where(
  .rf-destination-hub [class*="hub-card"],
  .rf-destination-hub [class*="guide-card"],
  .rf-guide-article [class*="sidebar-widget"],
  .rf-commercial-page [class*="partner-card"],
  .rf-commercial-page [class*="decision-card"]
) p {
  font-size: .94rem;
  line-height: 1.62;
  text-wrap: pretty;
}

/* Prevent labels and action rows from enlarging card width. */
.rf-method-list span,
.rf-planning-link div,
.rf-library-item,
.rf-destination-content,
.rf-feature-story > div,
.rf-tool-panel {
  min-width: 0;
}

.rf-method-list small,
.rf-planning-link p,
.rf-library-item p,
.rf-destination-content p {
  overflow-wrap: break-word;
}

@media (max-width: 900px) {
  body.rf-theme main h2 {
    font-size: clamp(1.85rem, 6.2vw, 2.65rem);
  }

  body.rf-theme .rf-route-method h2,
  body.rf-theme .rf-planning-section h2,
  body.rf-theme .rf-latest-grid h2 {
    max-width: 26ch;
  }

  .rf-route-method-grid,
  .rf-feature-grid,
  .rf-latest-grid,
  .rf-planning-grid {
    gap: clamp(2rem, 5vw, 3rem);
  }
}

@media (max-width: 680px) {
  body.rf-theme main h2 {
    font-size: clamp(1.72rem, 8.2vw, 2.25rem);
    line-height: 1.12;
  }

  body.rf-theme .rf-route-method h2,
  body.rf-theme .rf-feature-story h2,
  body.rf-theme .rf-tool-panel h2,
  body.rf-theme .rf-latest-grid h2,
  body.rf-theme .rf-planning-section h2 {
    max-width: none;
    font-size: clamp(1.55rem, 7.2vw, 2rem);
    line-height: 1.16;
  }

  body.rf-theme .rf-route-method > .rf-shell > div:first-child > p:not(.rf-kicker) {
    font-size: .95rem;
    line-height: 1.65;
  }

  .rf-feature-story > div,
  .rf-tool-panel,
  .rf-destination-content {
    padding: 1.4rem;
  }

  body.rf-theme .rf-destination-content strong {
    font-size: clamp(1.55rem, 7vw, 2rem);
  }

  body.rf-theme .rf-library-item strong {
    font-size: 1.08rem;
  }
}
/* ===== END SOURCE: css/card-typography.css ===== */

/* ===== BEGIN SOURCE: css/footer-typography.css ===== */
/*
 * IslandTravelAtlas footer typography
 *
 * Footer headings use h2 for document structure. These component-specific
 * rules prevent the global page-heading scale from making those labels huge.
 */

body.rf-theme .rf-footer {
  font-size: 1rem;
}

body.rf-theme .rf-footer .rf-footer-main {
  align-items: start;
}

/* Footer wordmark */
body.rf-theme .rf-footer .rf-brand-copy strong {
  font-size: 1rem !important;
  line-height: 1.15 !important;
  letter-spacing: -0.015em;
}

body.rf-theme .rf-footer .rf-brand-copy small {
  font-size: 0.61rem !important;
  line-height: 1.35 !important;
  letter-spacing: 0.07em;
}

body.rf-theme .rf-footer .rf-footer-brand p {
  max-width: 40ch;
  margin-top: 1rem;
  font-size: 0.9rem !important;
  line-height: 1.65 !important;
  text-wrap: pretty;
}

/* Footer column labels: override body.rf-theme h2 at all breakpoints. */
body.rf-theme .rf-footer .rf-footer-column h2 {
  margin: 0 0 0.55rem !important;
  font-family: var(--rf-sans, sans-serif) !important;
  font-size: 0.72rem !important;
  font-weight: 750 !important;
  line-height: 1.25 !important;
  letter-spacing: 0.11em !important;
  text-transform: uppercase;
  text-wrap: nowrap;
}

body.rf-theme .rf-footer .rf-footer-column {
  min-width: 0;
  gap: 0.48rem;
}

body.rf-theme .rf-footer .rf-footer-column a {
  font-size: 0.87rem !important;
  line-height: 1.45 !important;
  overflow-wrap: anywhere;
}

/* Legal and verification row */
body.rf-theme .rf-footer .rf-footer-bottom p,
body.rf-theme .rf-footer .rf-footer-bottom a,
body.rf-theme .rf-footer .rf-footer-bottom button {
  font-size: 0.72rem !important;
  line-height: 1.5 !important;
}

body.rf-theme .rf-footer .rf-footer-bottom p {
  max-width: 66ch;
}

@media (max-width: 900px) {
  body.rf-theme .rf-footer .rf-footer-main {
    gap: 2rem 3rem;
    padding-top: 3.25rem;
  }

  body.rf-theme .rf-footer .rf-footer-brand p {
    max-width: 54ch;
  }
}

@media (max-width: 680px) {
  body.rf-theme .rf-footer .rf-footer-main {
    gap: 1.75rem;
    padding-top: 2.75rem;
    padding-bottom: 2.25rem;
  }

  body.rf-theme .rf-footer .rf-footer-column h2 {
    font-size: 0.69rem !important;
  }

  body.rf-theme .rf-footer .rf-footer-column a {
    font-size: 0.84rem !important;
  }

  body.rf-theme .rf-footer .rf-footer-brand p {
    font-size: 0.86rem !important;
  }

  body.rf-theme .rf-footer .rf-footer-bottom p,
  body.rf-theme .rf-footer .rf-footer-bottom a,
  body.rf-theme .rf-footer .rf-footer-bottom button {
    font-size: 0.69rem !important;
  }
}
/* ===== END SOURCE: css/footer-typography.css ===== */

/* ===== BEGIN SOURCE: css/contrast-and-missing-components-fix.css ===== */
/* ==========================================================================
   IslandTravelAtlas — Sitewide Contrast & Missing-Component Fix
   --------------------------------------------------------------------------
   Load this file LAST on every page.

   It does two things:

   1) Styles component classes that appear across dozens of live guide/hub
      pages (decision-cta, cluster-hero, numbered-decisions, sticky planners,
      commercial-page heroes, etc.) but currently have NO matching CSS rule
      anywhere in the active stylesheet stack, because the only file that
      defined them (css/cinematic-coastal.css) is linked solely from the
      internal /design-preview.html page and nowhere else.

   2) Forces readable, on-brand text color for every dark-surface container
      on the site (hero bands, footers, CTA/decision blocks, planning
      sections), using real class selectors + !important so it can't be
      silently defeated by load order or by :where()-based rules elsewhere
      (0 specificity) the way the previous attempt
      (assets/css/ita-global-contrast.css) was — that file is also scoped
      only to `body.ita-page-guides` and contains invalid selectors (stray
      parentheses) that make entire rule blocks void in a standards-compliant
      browser. This file replaces its job sitewide.

   Uses the site's existing design tokens from css/style.css:
   --ink (#0A1F44), --primary (#0077B6), --accent (#D4A762), --surface,
   --hairline, --radius-*, --shadow-*
   ========================================================================== */

:root {
  --ita-dark-bg: var(--ink, #0A1F44);
  --ita-dark-bg-2: #123162;
  --ita-on-dark-heading: #ffffff;
  --ita-on-dark-text: #e9eef7;
  --ita-on-dark-muted: #c3cde2;
  --ita-on-dark-link: #8fd6ff;
  --ita-on-dark-border: rgba(255, 255, 255, 0.18);
  --ita-tool-accent: #0f6e63;
  --ita-tool-accent-light: #e4f5f2;
}

/* --------------------------------------------------------------------
   1. MISSING COMPONENTS
   -------------------------------------------------------------------- */

/* Affiliate / next-step decision cards (used in nearly every guide) */
.decision-cta,
.r-decision-cta,
.greek-decision-cta,
.ocean-decision-cta,
.caribbean-cta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  margin: 2rem 0;
  padding: 1.5rem 1.75rem;
  border-radius: var(--radius-lg, 16px);
  background: linear-gradient(135deg, var(--ita-dark-bg), var(--ita-dark-bg-2));
  box-shadow: var(--shadow-md, 0 4px 20px rgba(10,31,68,0.12));
}
.decision-cta > div,
.r-decision-cta > div,
.greek-decision-cta > div,
.ocean-decision-cta > div,
.caribbean-cta > div {
  flex: 1 1 320px;
}
.decision-cta span,
.r-decision-cta span,
.greek-decision-cta span,
.ocean-decision-cta span,
.caribbean-cta span {
  display: inline-block;
  margin-bottom: 0.4rem;
  color: var(--accent, #D4A762) !important;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.decision-cta h3,
.r-decision-cta h3,
.greek-decision-cta h3,
.ocean-decision-cta h3,
.caribbean-cta h3 {
  margin: 0 0 0.35rem;
  color: var(--ita-on-dark-heading) !important;
  font-size:1.15rem !important;
  line-height:1.35 !important;
}
.decision-cta p,
.r-decision-cta p,
.greek-decision-cta p,
.ocean-decision-cta p,
.caribbean-cta p {
  margin: 0;
  color: var(--ita-on-dark-text) !important;
  font-size: 0.92rem;
  line-height: 1.55;
}
.decision-cta > a,
.r-decision-cta > a,
.greek-decision-cta > a,
.ocean-decision-cta > a,
.caribbean-cta > a {
  flex-shrink: 0;
}

/* Internal free-tool CTA: same layout family as decision-cta, but visually
   distinct (teal, not navy) so readers can tell "our tool" from "partner
   offer" at a glance -- important for trust and for affiliate-disclosure
   clarity. */
.calculator-cta {
  background: linear-gradient(135deg, var(--ita-tool-accent), #0a4a42);
}
.calculator-cta span { color: #bdeee6; }

/* Grid of small option cards inside guide bodies */
.decision-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1rem;
  margin: 1.5rem 0;
}
.decision-grid > article {
  padding: 1.1rem 1.25rem;
  border: 1px solid var(--hairline, #E5E8EC);
  border-radius: var(--radius-md, 12px);
  background: #fff;
  box-shadow: var(--shadow-sm, 0 2px 8px rgba(10,31,68,0.05));
}
.decision-grid > article span {
  display: inline-block;
  margin-bottom: 0.3rem;
  color: var(--primary, #0077B6);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}
.decision-grid > article h3 { margin: 0 0 0.3rem; font-size:1rem !important; color: var(--ink); }
.decision-grid > article p { margin: 0; font-size: 0.88rem; color: var(--ink-muted, #3A4A62); }

/* Numbered decision list (Caribbean / comparison guides) */
.numbered-decisions {
  counter-reset: ita-decision;
  margin: 1.5rem 0;
  padding: 0;
  list-style: none;
}
.numbered-decisions > li {
  counter-increment: ita-decision;
  position: relative;
  margin: 0 0 0.85rem;
  padding: 0.15rem 0 0.15rem 2.6rem;
  min-height: 1.9rem;
  color: var(--ink);
  line-height: 1.55;
}
.numbered-decisions > li::before {
  content: counter(ita-decision);
  position: absolute;
  left: 0;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.9rem;
  height: 1.9rem;
  border-radius: 50%;
  background: var(--ink);
  color: #fff;
  font-size: 0.82rem;
  font-weight: 700;
}

/* Day-by-day itinerary blocks */
.day-plan {
  margin: 1.25rem 0;
  padding: 1.1rem 1.35rem;
  border-left: 3px solid var(--accent, #D4A762);
  border-radius: 0 var(--radius-md, 12px) var(--radius-md, 12px) 0;
  background: var(--surface, #F7F8FA);
}

/* Destination cluster / hub hero (Bali, Greek Islands, Caribbean, Maldives & Seychelles index pages) */
.cluster-hero,
.greek-hub-hero,
.caribbean-hub-hero,
.ocean-hub-hero {
  padding: clamp(2.75rem, 6vw, 4.5rem) 0;
  background: linear-gradient(135deg, var(--ita-dark-bg), var(--ita-dark-bg-2));
}
.cluster-hero-grid,
.ocean-cluster-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.8fr);
  gap: 2rem;
  align-items: center;
}
@media (max-width: 900px) {
  .cluster-hero-grid, .ocean-cluster-hero-grid { grid-template-columns: 1fr; }
}
.cluster-hero .eyebrow,
.greek-hub-hero .eyebrow,
.caribbean-hub-hero .eyebrow,
.ocean-hub-hero .eyebrow {
  color: var(--accent, #D4A762);
}
.cluster-hero h1,
.greek-hub-hero h1,
.caribbean-hub-hero h1,
.ocean-hub-hero h1 { color: var(--ita-on-dark-heading); }
.cluster-hero p,
.greek-hub-hero p,
.caribbean-hub-hero p,
.ocean-hub-hero p { color: var(--ita-on-dark-text); }
.cluster-hero .breadcrumbs a,
.greek-hub-hero .breadcrumbs a,
.caribbean-hub-hero .breadcrumbs a,
.ocean-hub-hero .breadcrumbs a { color: var(--ita-on-dark-muted); }

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem;
  margin-top: 1.4rem;
}

/* Per-article hero bands (Greek Islands / Maldives & Seychelles guides) */
.greek-article-hero,
.ocean-article-hero {
  padding: clamp(2.25rem, 5vw, 3.5rem) 0;
  background: linear-gradient(135deg, var(--ita-dark-bg), var(--ita-dark-bg-2));
}
.greek-article-hero h1,
.ocean-article-hero h1 { color: var(--ita-on-dark-heading); }
.greek-article-hero p,
.ocean-article-hero p,
.greek-hero-intro,
.ocean-hero-intro { color: var(--ita-on-dark-text); }
.greek-article-hero .eyebrow,
.ocean-article-hero .eyebrow { color: var(--accent, #D4A762); }
.greek-article-hero .breadcrumbs a,
.ocean-article-hero .breadcrumbs a { color: var(--ita-on-dark-muted); }
.greek-article-hero-grid,
.ocean-article-hero-grid,
.caribbean-article-hero-grid,
.ita-tp-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.85fr);
  gap: 2rem;
  align-items: center;
}
@media (max-width: 900px) {
  .greek-article-hero-grid,
  .ocean-article-hero-grid,
  .caribbean-article-hero-grid,
  .ita-tp-hero-grid {
    grid-template-columns: 1fr;
  }
}
.greek-article-hero-grid > img,
.ocean-article-hero-grid > img,
.caribbean-article-hero-grid > img {
  width: 100%;
  height: 100%;
  max-height: 420px;
  object-fit: cover;
  border-radius: var(--radius-lg, 16px);
}

/* Sidebar sticky planner cards (light card, distinct from dark hero) */
.greek-sticky-planner,
.ocean-sticky-planner,
.planning-panel {
  padding: 1.4rem 1.5rem;
  border: 1px solid var(--hairline, #E5E8EC);
  border-radius: var(--radius-lg, 16px);
  background: #fff;
  box-shadow: var(--shadow-sm, 0 2px 8px rgba(10,31,68,0.05));
}
.greek-sticky-planner span,
.ocean-sticky-planner span,
.planning-panel span,
.planning-sequence span {
  display: inline-block;
  margin-bottom: 0.6rem;
  color: var(--primary, #0077B6);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}
.greek-sticky-planner ol,
.ocean-sticky-planner ol,
.planning-sequence ol {
  margin: 0 0 1rem;
  padding-left: 1.2rem;
  color: var(--ink);
}
.greek-sticky-planner li,
.ocean-sticky-planner li,
.planning-sequence li { margin-bottom: 0.4rem; }

/* Commercial pages: eSIMs, Rentals, Tours, Insurance
   (previously depended entirely on the orphaned cinematic-coastal.css)

   Also: esim.html, rentals.html, and insurance.html all carry the body
   class "ita-tool-page-contrast-fixed", which makes them targets of a
   blanket rule in css/tool-page-contrast-spacing-v3.css:
     body.ita-tool-page-contrast-fixed main > section {
       background-color: var(--ita-tp-surface) !important;  // #ffffff
       background-image: none !important;
       color: var(--ita-tp-text) !important;                // dark text
     }
   That rule resets EVERY top-level section -- including this hero, which
   is supposed to be a dark navy commercial hero matching its own design,
   not the plain white "tool workspace" look meant for search-form pages.
   Boosting specificity (body class + doubled class) plus !important so
   this wins regardless of source order. */
html body.ita-tool-page-contrast-fixed .r-commercial-hero.r-commercial-hero.r-commercial-hero {
  margin-left: auto !important;
  margin-right: auto !important;
}
body.ita-tool-page-contrast-fixed .r-commercial-hero.r-commercial-hero {
  background-color: var(--ita-dark-bg) !important;
  background-image: none !important;
  color: var(--ita-on-dark-text, #e9eef7) !important;
  margin-inline: auto !important;
  margin-block: 0 !important;
  padding-top: clamp(2.5rem, 6vw, 4rem) !important;
  padding-bottom: clamp(2.5rem, 6vw, 4rem) !important;
}
.r-commercial-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.85fr);
  gap: 2rem;
  align-items: center;
  width: min(calc(100% - 40px), 1260px);
  margin-inline: auto;
  padding: clamp(2.5rem, 6vw, 4rem) 0;
  text-align: left;
  background: var(--ita-dark-bg);
}
@media (max-width: 900px) {
  .r-commercial-hero { grid-template-columns: 1fr; }
}
body.ita-tool-page-contrast-fixed .r-commercial-hero.r-commercial-hero h1,
.r-commercial-hero h1 { color: var(--ita-on-dark-heading) !important; margin: 0.75rem 0 0.5rem; max-width: 20ch; }
.r-commercial-hero .r-section-label { color: var(--accent, #D4A762) !important; }
.r-commercial-hero .r-hero-lead,
.r-hero-lead { color: var(--ita-on-dark-text) !important; max-width: 480px; margin: 0 0 1.5rem; }
.r-commercial-hero .breadcrumbs { justify-content: flex-start; display: flex; }
.r-commercial-hero .breadcrumbs a { color: var(--ita-on-dark-muted) !important; }
.r-commercial-hero .r-hero-actions {
  display: flex;
  justify-content: flex-start;
  gap: 1rem;
  flex-wrap: wrap;
}
.r-hero-actions {
  display: flex;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
}

/* --------------------------------------------------------------------
   2. SITEWIDE DARK-SURFACE TEXT CONTRAST (the original request)
   Applies to every known dark container, regardless of page template.
   -------------------------------------------------------------------- */
.decision-cta, .r-decision-cta, .greek-decision-cta, .ocean-decision-cta,
.caribbean-cta, .calculator-cta,
.cluster-hero, .greek-hub-hero, .caribbean-hub-hero, .ocean-hub-hero,
.greek-article-hero, .ocean-article-hero, .caribbean-article-hero, .article-hero,
.r-commercial-hero,
.rf-planning-section, .rf-flight-dark-section, .rf-final-cta, .rf-route-card,
.rf-connection-strip, .rf-route-method, .rf-footer, .home-v2-dark-section,
.home-v2-final-cta, .home-v2-route-method, .dark-section, .ita-dark-surface,
.theme-dark, [data-theme="dark"] {
  color: var(--ita-on-dark-text) !important;
}
.decision-cta :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.r-decision-cta :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.greek-decision-cta :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.ocean-decision-cta :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.caribbean-cta :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.cluster-hero :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.greek-hub-hero :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.caribbean-hub-hero :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.ocean-hub-hero :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.greek-article-hero :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.ocean-article-hero :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.caribbean-article-hero :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.article-hero :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.r-commercial-hero :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.rf-planning-section :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.rf-flight-dark-section :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.dark-section :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading),
.ita-dark-surface :where(h1,h2,h3,h4,h5,h6,strong,b,.title,.heading) {
  color: var(--ita-on-dark-heading) !important;
}
.decision-cta a:not(.button):not([class*="button"]),
.r-decision-cta a:not(.button):not([class*="button"]),
.cluster-hero a:not(.button):not([class*="button"]),
.greek-hub-hero a:not(.button):not([class*="button"]),
.caribbean-hub-hero a:not(.button):not([class*="button"]),
.ocean-hub-hero a:not(.button):not([class*="button"]),
.greek-article-hero a:not(.button):not([class*="button"]),
.ocean-article-hero a:not(.button):not([class*="button"]),
.r-commercial-hero a:not(.button):not([class*="button"]),
.rf-planning-section a:not(.button):not([class*="button"]),
.dark-section a:not(.button):not([class*="button"]) {
  color: var(--ita-on-dark-link) !important;
}

/* ==========================================================================
   3. "r-" GUIDE-ARTICLE CONTENT SYSTEM (round 2 fix)
   --------------------------------------------------------------------------
   A second, larger component family used across ~74 live pages (guide
   articles, esim.html, the trip-cost calculator, 404, privacy pages) has
   ZERO matching CSS anywhere in the exported site -- not even in the
   orphaned cinematic-coastal.css. This is the actual article body layout:
   section wrappers, tables, FAQs, checklists, the "quick facts" strip, the
   editorial review bar, the day-by-day itinerary blocks, the trip-cost
   calculator form/results, and the destination cluster nav. Covering both
   the "r-" prefixed and unprefixed class variants, since both appear on
   live pages for the same components.
   ========================================================================== */

/* Article layout shell */
.r-layout, .site-container.r-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 320px);
  gap: 2.5rem;
  align-items: start;
}
@media (max-width: 960px) { .r-layout { grid-template-columns: 1fr; } }
.r-layout-content { min-width: 0; }
.r-container { max-width: 720px; margin: 0 auto; padding: clamp(2.5rem, 6vw, 4.5rem) 1.25rem; text-align: center; }
.r-section { margin: 1.75rem 0 !important; }
body.ita-tool-page-contrast-fixed main > section.r-section {
  padding-top: 1.75rem !important;
  padding-bottom: 1.75rem !important;
}

/* Photo-credit cluster headings (Caribbean, Theme sections on image-credits.html):
   the heading sits in a nested `.r-section` div that never had a width/centering
   constraint, so it rendered flush to the browser edge instead of aligned with
   the photo-credit-list grid below it. The outer <section> and inner <div> also
   both apply the plain .r-section margin, stacking to double the intended
   spacing between clusters. */
section[data-photo-credit-cluster] { margin: 0 !important; }
section[data-photo-credit-cluster] > .r-section {
  width: min(calc(100% - 40px), 1260px) !important;
  margin: 1.5rem auto !important;
}
section[data-photo-credit-cluster] .photo-credit-list {
  padding: 0.5rem 0 1rem !important;
}
.r-section-heading { margin-bottom: 1.1rem; }
.r-section-heading .r-section-label,
.r-section-label { display: block; margin-bottom: 0.3rem; color: var(--primary, #0077B6); font-size: 0.72rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.r-section-heading h2 { margin: 0; }

/* Info card grids (eSIM plan types, etc.) */
.r-guide-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem; margin: 1.25rem 0; }
.r-guide-card { padding: 1.1rem 1.25rem; border: 1px solid var(--hairline, #E5E8EC); border-radius: var(--radius-md, 12px); background: #fff; box-shadow: var(--shadow-sm, 0 2px 8px rgba(10,31,68,0.05)); }
.r-guide-card h3 { margin: 0 0 0.4rem; font-size:1rem !important; }
.r-guide-card p { margin: 0; font-size: 0.9rem; color: var(--ink-muted, #3A4A62); }
.r-related-guide-grid, .featured-guide-card { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1rem; margin: 1.5rem 0; }
.r-related-guide-grid a { display: block; padding: 1.1rem 1.25rem; border: 1px solid var(--hairline, #E5E8EC); border-radius: var(--radius-md, 12px); background: #fff; text-decoration: none; color: inherit; transition: box-shadow .15s ease; }
.r-related-guide-grid a:hover { box-shadow: var(--shadow-md, 0 4px 20px rgba(10,31,68,0.1)); }
.r-related-guide-grid a span { display: block; margin-bottom: 0.3rem; color: var(--primary, #0077B6); font-size: 0.68rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
.r-related-guide-grid a strong { display: block; margin-bottom: 0.3rem; color: var(--ink); }
.r-related-guide-grid a p { margin: 0; font-size: 0.85rem; color: var(--ink-muted, #3A4A62); }

/* Buttons */
.r-button, .rf-button-secondary, .r-featured-btn {
  display: inline-flex; align-items: center; gap: 0.5rem;
  padding: 0.75rem 1.5rem; border-radius: var(--radius-sm, 8px);
  font-weight: 700; font-size: 0.9rem; text-decoration: none;
  border: 1px solid transparent;
}
.r-button-primary { background: var(--primary, #0077B6); color: #fff !important; }
.r-button-primary:hover { background: var(--primary-dark, #005a8a); }
.r-button-secondary, .rf-button-secondary { background: #fff; color: var(--ink) !important; border-color: var(--hairline, #E5E8EC); }
.r-button-secondary:hover, .rf-button-secondary:hover { border-color: var(--primary, #0077B6); }
.r-text-link, .text-link { color: var(--primary, #0077B6); text-decoration: underline; }

/* Tables */
.r-table-wrap, .table-wrap { overflow-x: auto; margin: 1.25rem 0; border: 1px solid var(--hairline, #E5E8EC); border-radius: var(--radius-md, 12px); }
.r-table-wrap table, .table-wrap table { width: 100%; border-collapse: collapse; font-size: 0.9rem; }
.r-table-wrap th, .table-wrap th { background: var(--surface, #F7F8FA); color: var(--ink); text-align: left; padding: 0.75rem 1rem; font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.04em; }
.r-table-wrap td, .table-wrap td { padding: 0.75rem 1rem; border-top: 1px solid var(--hairline, #E5E8EC); color: var(--ink-muted, #3A4A62); vertical-align: top; }

/* Editorial status / review bar */
.r-review-bar, .review-bar {
  display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem;
  margin: 1rem 0 1.5rem; padding: 0.85rem 1.1rem;
  border-left: 3px solid var(--accent, #D4A762);
  background: var(--surface, #F7F8FA);
  border-radius: 0 var(--radius-sm, 8px) var(--radius-sm, 8px) 0;
  font-size: 0.84rem; color: var(--ink-muted, #3A4A62);
}
.review-bar span { display: block; }
.r-review-bar strong { color: var(--ink); }
.r-review-bar a { color: var(--primary, #0077B6); }

/* Quick facts strip */
.r-quick-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 0.75rem; margin: 1.25rem 0; }
.r-quick-facts > div { padding: 0.85rem 1rem; background: var(--surface, #F7F8FA); border-radius: var(--radius-md, 12px); }
.r-quick-facts span { display: block; margin-bottom: 0.25rem; font-size: 0.72rem; color: var(--ink-soft, #8B97A8); text-transform: uppercase; letter-spacing: 0.04em; }
.r-quick-facts strong { color: var(--ink); }

/* Notice / warning panel */
.r-notice-panel, .pro-tip {
  margin: 1.25rem 0; padding: 1rem 1.25rem;
  background: var(--accent-light, #FEF5E6);
  border: 1px solid var(--accent, #D4A762);
  border-radius: var(--radius-md, 12px);
}
.r-notice-panel strong, .pro-tip strong { display: block; margin-bottom: 0.35rem; color: var(--ink); }
.r-notice-panel p, .pro-tip p { margin: 0; font-size: 0.9rem; color: var(--ink-muted, #3A4A62); }

/* Route strip (day-range overview) */
.r-route-strip { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; margin: 1.25rem 0; padding: 1rem; background: var(--surface, #F7F8FA); border-radius: var(--radius-md, 12px); }
.r-route-strip > div { text-align: center; }
.r-route-strip span { display: block; font-size: 0.7rem; color: var(--ink-soft, #8B97A8); text-transform: uppercase; }
.r-route-strip strong { color: var(--ink); }
.r-route-strip i { color: var(--ink-soft, #8B97A8); font-style: normal; }

/* Day-by-day itinerary */
.r-day-plan, .day-grid, .r-day-grid { margin: 1.25rem 0; padding: 1.1rem 1.35rem; border-left: 3px solid var(--accent, #D4A762); border-radius: 0 var(--radius-md, 12px) var(--radius-md, 12px) 0; background: var(--surface, #F7F8FA); }
.r-day-plan article + article { margin-top: 1rem; padding-top: 1rem; border-top: 1px dashed var(--hairline, #E5E8EC); }
.r-day-plan span { display: inline-block; margin-bottom: 0.3rem; color: var(--primary, #0077B6); font-size: 0.72rem; font-weight: 700; text-transform: uppercase; }
.r-mini-actions { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: 0.75rem; }
.r-mini-actions a { font-size: 0.82rem; color: var(--primary, #0077B6); text-decoration: underline; }

/* Comparison / stat blocks */
.r-comparison-box, .comparison-box { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem; margin: 1.25rem 0; }
.r-comparison-col, .comparison-col { padding: 1.1rem 1.25rem; border: 1px solid var(--hairline, #E5E8EC); border-radius: var(--radius-md, 12px); background: #fff; }
.r-comparison-col.winner, .comparison-col.winner { border-color: var(--accent, #D4A762); box-shadow: 0 0 0 2px var(--accent-light, #FEF5E6) inset; }
.r-comparison-col h4, .comparison-col h4 { margin: 0 0 0.5rem; }
.r-stat, .stat { display: inline-block; padding: 0.3rem 0.7rem; border-radius: 999px; background: var(--primary-light, #E8F4FD); color: var(--primary-dark, #005a8a); font-weight: 700; font-size: 0.85rem; }
.r-data-box, .data-box { margin: 1rem 0; padding: 1rem 1.25rem; border-radius: var(--radius-md, 12px); background: var(--surface-warm, #FDF8F0); border: 1px solid var(--accent-light, #FEF5E6); }
.r-data-box h4, .data-box h4 { margin: 0 0 0.4rem; font-size:0.78rem !important; text-transform: uppercase; letter-spacing: 0.05em; color: var(--accent-dark, #c49650); }

/* Sources */
.r-source-panel, .source-list { margin: 1.5rem 0; }
.r-source-panel h2 { margin-bottom: 0.5rem; }
.r-source-panel ul, .source-list { padding-left: 1.1rem; }
.r-source-panel li, .source-list li { margin-bottom: 0.4rem; }

/* Hero intro paragraph (used with dark hero classes above -- inherits color there) */
.r-hero-intro, .greek-hero-intro, .ocean-hero-intro { font-size: 1.05rem; line-height: 1.6; margin: 0.5rem 0 1.25rem; }

/* FAQ accordion */
.r-faq details { margin-bottom: 0.75rem; padding: 0.9rem 1.1rem; border: 1px solid var(--hairline, #E5E8EC); border-radius: var(--radius-md, 12px); }
.r-faq summary { cursor: pointer; font-weight: 700; color: var(--ink); }
.r-faq details p { margin: 0.6rem 0 0; color: var(--ink-muted, #3A4A62); }

/* Checklists */
.r-checklist, .check-list, .checklist-panel {
  list-style: none; margin: 1.25rem 0; padding: 0;
}
.r-checklist li, .check-list li, .checklist-panel label {
  position: relative; margin-bottom: 0.6rem; padding-left: 1.6rem; color: var(--ink);
}
.r-checklist li::before, .check-list li::before {
  content: "✓"; position: absolute; left: 0; color: var(--primary, #0077B6); font-weight: 700;
}
.checklist-panel { display: flex; flex-direction: column; gap: 0.9rem; margin: 1.25rem 0; }
.checklist-panel label {
  display: flex; align-items: flex-start; gap: 0.75rem;
  font-size: 0.95rem; line-height: 1.5; color: var(--ink); cursor: pointer;
}
.checklist-panel input[type="checkbox"] {
  flex-shrink: 0; width: 1.15rem; height: 1.15rem; margin-top: 0.15rem;
  accent-color: var(--primary, #0077B6);
}

/* Guide-end CTA strip + table of contents + inline link rows */
.r-guide-end, .guide-end { margin: 2.5rem 0 1.5rem; padding-top: 1.5rem; border-top: 1px solid var(--hairline, #E5E8EC); }
.r-inline-links, .inline-links { display: flex; flex-wrap: wrap; gap: 0.6rem 1.25rem; margin-top: 0.75rem; }
.r-inline-links a, .inline-links a { color: var(--primary, #0077B6); text-decoration: underline; font-size: 0.9rem; }
.r-toc, .toc { margin: 1.25rem 0; padding: 1rem 1.25rem; background: var(--surface, #F7F8FA); border-radius: var(--radius-md, 12px); }
.r-toc h4, .toc h4 { margin: 0 0 0.5rem; font-size:0.78rem !important; text-transform: uppercase; letter-spacing: 0.05em; color: var(--ink-soft, #8B97A8); }
.r-toc ol, .toc ol { margin: 0; padding-left: 1.1rem; }
.r-toc li, .toc li { margin-bottom: 0.3rem; font-size: 0.9rem; }

/* Destination cluster sidebar nav */
.r-cluster-nav, .greek-cluster-nav, .ocean-cluster-nav, .phase2-nav {
  margin: 1.5rem 0; padding: 1.1rem 1.25rem;
  border: 1px solid var(--hairline, #E5E8EC); border-radius: var(--radius-md, 12px);
  background: #fff;
}
.r-cluster-nav strong, .greek-cluster-nav strong, .ocean-cluster-nav strong { display: block; margin-bottom: 0.6rem; color: var(--ink); }
.r-cluster-nav a, .greek-cluster-nav a, .ocean-cluster-nav a, .phase2-nav a { display: block; padding: 0.3rem 0; color: var(--primary, #0077B6); text-decoration: none; font-size: 0.9rem; }
.r-cluster-nav a:hover, .greek-cluster-nav a:hover, .ocean-cluster-nav a:hover { text-decoration: underline; }

/* Compliance / planning-notice card */
.r-compliance-section, .compliance-section { width: min(calc(100% - 40px), 1120px); margin-inline: auto !important; padding: 1.25rem 0 !important; }
section:has(+ .compliance-section), section:has(+ .r-compliance-section) {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}
.r-compliance-card, .r-compliance-notice, .compliance-card, .compliance-notice {
  padding: 1.25rem 1.5rem; border-radius: var(--radius-md, 12px);
  background: var(--surface, #F7F8FA); border: 1px solid var(--hairline, #E5E8EC);
}
.r-compliance-card h2, .compliance-card h2 { margin: 0 0 0.5rem; font-size:1rem !important; }
.r-compliance-card p, .compliance-card p { margin: 0 0 0.75rem; font-size: 0.88rem; color: var(--ink-muted, #3A4A62); }
.compliance-notice.affiliate-notice { margin: 1.25rem 0 2rem !important; }

/* ==========================================================================
   10. REMAINING UNSTYLED GRID COMPONENTS (found via the display:grid audit)
   --------------------------------------------------------------------------
   These only ever appeared in a mobile media-query override
   (grid-template-columns: minmax(0,1fr) !important) with no base rule
   anywhere -- meaning the override had nothing to override. Genuinely
   unstyled at the base/desktop level across several guide pages.
   ========================================================================== */

/* Day-by-day itinerary card grid */
.greek-day-grid, .ocean-day-grid, .caribbean-day-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1rem; margin: 1.5rem 0;
}
.greek-day-grid > article, .ocean-day-grid > article, .caribbean-day-grid > article {
  padding: 1.1rem 1.25rem; border-left: 3px solid var(--accent, #D4A762);
  border-radius: 0 var(--radius-md, 12px) var(--radius-md, 12px) 0;
  background: var(--surface, #F7F8FA);
}
.greek-day-grid span, .ocean-day-grid span, .caribbean-day-grid span {
  display: inline-block; margin-bottom: 0.3rem; color: var(--primary, #0077B6);
  font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em;
}
.greek-day-grid h3, .ocean-day-grid h3, .caribbean-day-grid h3 { margin: 0 0 0.4rem; font-size: 1rem; }
.greek-day-grid p, .ocean-day-grid p, .caribbean-day-grid p { margin: 0; font-size: 0.9rem; color: var(--ink-muted, #3A4A62); }

/* Affiliate provider comparison grid */
.greek-provider-grid, .ocean-provider-grid, .caribbean-provider-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1rem; margin: 1.5rem 0;
}
.greek-provider-grid > article, .ocean-provider-grid > article, .caribbean-provider-grid > article {
  padding: 1.1rem 1.25rem; border: 1px solid var(--hairline, #E5E8EC);
  border-radius: var(--radius-md, 12px); background: #fff;
}
.greek-provider-grid h3, .ocean-provider-grid h3, .caribbean-provider-grid h3 { margin: 0 0 0.4rem; font-size: 1rem; }
.greek-provider-grid p, .ocean-provider-grid p, .caribbean-provider-grid p { margin: 0 0 0.75rem; font-size: 0.88rem; color: var(--ink-muted, #3A4A62); }
.greek-provider-grid a, .ocean-provider-grid a, .caribbean-provider-grid a { color: var(--primary, #0077B6); font-weight: 700; font-size: 0.88rem; }

/* Numbered recommendation cards */
.recommendation-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1rem; margin: 1.5rem 0;
}
.recommendation-grid > article { padding: 1.1rem 1.25rem; border: 1px solid var(--hairline, #E5E8EC); border-radius: var(--radius-md, 12px); background: #fff; }
.recommendation-grid span {
  display: inline-block;
  padding: 0.25rem 0.65rem; margin-bottom: 0.6rem; border-radius: 999px;
  background: var(--primary-light, #E8F4FD); color: var(--primary-dark, #005a8a);
  font-size: 0.75rem; font-weight: 700;
}
.recommendation-grid h3 { margin: 0 0 0.4rem; font-size: 1rem; }
.recommendation-grid p { margin: 0; font-size: 0.9rem; color: var(--ink-muted, #3A4A62); }

/* Direct link partner-choice cards */
.partner-choice-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 0.85rem; margin: 1.5rem 0;
}
.partner-choice-grid a {
  display: block; padding: 0.9rem 1.1rem; border: 1px solid var(--hairline, #E5E8EC);
  border-radius: var(--radius-md, 12px); text-decoration: none; color: inherit;
}
.partner-choice-grid a span { display: block; font-size: 0.7rem; color: var(--ink-soft, #8B97A8); text-transform: uppercase; letter-spacing: 0.04em; margin-bottom: 0.3rem; }
.partner-choice-grid a strong { display: block; color: var(--primary, #0077B6); margin-bottom: 0.2rem; }
.partner-choice-grid a small { color: var(--ink-muted, #3A4A62); font-size: 0.82rem; }

/* Budget-scenario comparison cards */
.scenario-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1rem; margin: 1.5rem 0;
}
.scenario-grid > article { padding: 1.1rem 1.25rem; border: 1px solid var(--hairline, #E5E8EC); border-radius: var(--radius-md, 12px); background: #fff; }
.scenario-grid > article.featured { border-color: var(--accent, #D4A762); box-shadow: 0 0 0 2px var(--accent-light, #FEF5E6) inset; }
.scenario-grid span { display: inline-block; margin-bottom: 0.3rem; color: var(--primary, #0077B6); font-size: 0.72rem; font-weight: 700; text-transform: uppercase; }
.scenario-grid h3 { margin: 0 0 0.4rem; font-size: 1rem; }
.scenario-grid p { margin: 0 0 0.75rem; font-size: 0.9rem; color: var(--ink-muted, #3A4A62); }
.scenario-grid a { color: var(--primary, #0077B6); font-weight: 700; font-size: 0.85rem; }

/* Planning-horizon strip (months/weeks/days before travel) */
.season-strip {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 1rem; margin: 1.5rem 0;
}
.season-strip > div { padding: 1rem 1.1rem; background: var(--surface, #F7F8FA); border-radius: var(--radius-md, 12px); }
.season-strip span { display: block; margin-bottom: 0.3rem; font-size: 0.7rem; color: var(--ink-soft, #8B97A8); text-transform: uppercase; letter-spacing: 0.04em; }
.season-strip strong { display: block; margin-bottom: 0.3rem; color: var(--ink); font-size: 0.95rem; }
.season-strip small { color: var(--ink-muted, #3A4A62); font-size: 0.84rem; line-height: 1.45; }

/* Bali trip-cost calculator (and its duplicate-path copies) */
.calculator-layout, .r-calculator-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 340px); gap: 2rem; align-items: start; }
@media (max-width: 900px) { .calculator-layout, .r-calculator-layout { grid-template-columns: 1fr; } }
.calculator-form, .r-calculator-form { display: flex; flex-direction: column; gap: 1.25rem; }
.calculator-section, .r-calculator-section {
  padding: 1.1rem 1.25rem; border: 1px solid var(--hairline, #E5E8EC);
  border-radius: var(--radius-md, 12px); background: #fff;
}
.calculator-section > div:first-child, .r-calculator-section > div:first-child { display: flex; align-items: center; gap: 0.6rem; margin-bottom: 0.85rem; }
.calculator-section span:first-child, .r-calculator-section span:first-child {
  display: inline-flex; align-items: center; justify-content: center;
  width: 1.6rem; height: 1.6rem; border-radius: 50%;
  background: var(--primary-light, #E8F4FD); color: var(--primary-dark, #005a8a);
  font-size: 0.75rem; font-weight: 700;
}
.calculator-section h2, .r-calculator-section h2 { margin: 0; font-size:1rem !important; }
.field-grid, .r-field-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 0.85rem; }
.field-grid label, .r-field-grid label { display: flex; flex-direction: column; gap: 0.35rem; font-size: 0.82rem; color: var(--ink-muted, #3A4A62); }
.field-grid input, .field-grid select, .r-field-grid input, .r-field-grid select {
  padding: 0.6rem 0.75rem; border: 1px solid var(--hairline, #E5E8EC);
  border-radius: var(--radius-sm, 8px); font-size: 0.95rem; color: var(--ink);
}
.calculator-note { margin: 0; font-size: 0.78rem; color: var(--ink-soft, #8B97A8); }
.calculator-results, .r-calculator-results {
  position: sticky; top: 1.5rem; padding: 1.5rem;
  border-radius: var(--radius-lg, 16px); background: var(--ink); color: #fff !important;
}
.calculator-results *, .r-calculator-results * { color: inherit; }
.calculator-results .eyebrow, .r-calculator-results .eyebrow { color: var(--accent, #D4A762) !important; }
.result-total, .r-result-total { margin: 0.75rem 0 1.25rem; }
.result-total span, .r-result-total span { display: block; font-size: 0.75rem; color: rgba(255,255,255,0.65) !important; text-transform: uppercase; }
.result-total strong, .r-result-total strong { display: block; font-size: 1.9rem; margin: 0.15rem 0; color: #fff !important; }
.result-total small, .r-result-total small { color: rgba(255,255,255,0.7) !important; }
.result-breakdown, .r-result-breakdown { margin-bottom: 1rem; }
.result-breakdown > div, .r-result-breakdown > div {
  display: flex; justify-content: space-between; gap: 1rem;
  padding: 0.5rem 0; border-bottom: 1px solid rgba(255,255,255,0.12);
  font-size: 0.85rem;
}
.result-breakdown > div span, .r-result-breakdown > div span { color: rgba(255,255,255,0.75) !important; }
.result-breakdown > div strong, .r-result-breakdown > div strong { color: #fff !important; font-weight: 700; white-space: nowrap; }
.result-assumptions, .r-result-assumptions { margin-bottom: 1.25rem; padding-top: 1rem; border-top: 1px solid rgba(255,255,255,0.18); }
.result-assumptions h3, .r-result-assumptions h3 { margin: 0 0 0.5rem; font-size:0.85rem !important; color: #fff !important; }
.result-assumptions li, .r-result-assumptions li { font-size: 0.8rem; color: rgba(255,255,255,0.75) !important; margin-bottom: 0.3rem; }
.result-actions, .r-result-actions { display: flex; flex-direction: column; gap: 0.5rem; }
.result-actions a, .r-result-actions a { color: #fff !important; font-size: 0.85rem; text-decoration: underline; }
.calculator-partners, .r-calculator-partners, .compact-partners {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 0.75rem; margin: 1.25rem 0;
}
.calculator-partners a, .r-calculator-partners a, .compact-partners a {
  display: block; padding: 0.85rem 1rem; border: 1px solid var(--hairline, #E5E8EC);
  border-radius: var(--radius-md, 12px); text-decoration: none; color: inherit;
}
.calculator-partners a span, .r-calculator-partners a span { display: block; font-size: 0.72rem; color: var(--ink-soft, #8B97A8); text-transform: uppercase; }
.calculator-partners a strong, .r-calculator-partners a strong { color: var(--primary, #0077B6); }

/* Misc small elements */
.photo-credit-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.75rem;
  width: min(calc(100% - 40px), 1260px);
  margin-inline: auto;
  padding: 2rem 0 4rem;
  list-style: none;
}
.photo-credit-card {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: none;
  border: 1px solid var(--hairline, #E5E8EC);
  border-radius: var(--radius-md, 12px);
  overflow: hidden;
  background: #fff;
}
.photo-credit-card img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 0; display: block; }
.photo-credit-card > div { padding: 1.1rem 1.25rem 1.3rem; }
.photo-credit-card h2, .photo-credit-card h3 { font-size:1.05rem !important; line-height:1.3 !important; margin: 0 0 0.35rem; }
.photo-credit-card p { margin: 0 0 0.5rem; font-size: 0.88rem; color: var(--ink-muted, #3A4A62); }
.photo-credit-card a { color: var(--primary, #0077B6); font-size: 0.84rem; }

/* ==========================================================================
   6. OPAQUE STICKY HEADER (sitewide, by request)
   --------------------------------------------------------------------------
   .pm-header (css/premium-experience.css) was translucent + blurred
   (rgba(255,255,255,.94) + backdrop-filter: blur(18px)), so any heading or
   content scrolling underneath it showed through faded/blurred rather than
   being cleanly hidden -- most visible on pages with less scroll padding
   above a heading, e.g. tools/island-flight-search.html. Made fully opaque
   sitewide per request, rather than patching individual pages.
   ========================================================================== */
.pm-header {
  background: #ffffff !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* ==========================================================================
   7. #tpwl-tickets ON THE FLIGHT SEARCH PAGE
   --------------------------------------------------------------------------
   css/flight-white-label-v1.css only scopes #tpwl-tickets styling to
   body.ita-wl-results-page (the separate results page). The search page
   (tools/island-flight-search.html, body.ita-wl-flight-page) now also has
   a #tpwl-tickets mount point so search results can display inline on the
   same page the user searches from -- true meta-search, results shown on
   islandtravelatlas.com itself before any click-through to a partner.
   Extending the same styling/placeholder treatment to that page.
   ========================================================================== */
body.ita-wl-flight-page #tpwl-tickets {
  position: relative;
  min-height: 520px;
  margin-top: 22px;
  padding-top: 22px;
  border-top: 1px solid var(--wl-border, #d9e6e0);
}
body.ita-wl-flight-page #tpwl-tickets:empty::before {
  display: grid;
  place-items: center;
  min-height: 120px;
  padding: 22px;
  border: 1px dashed #bad1c8;
  border-radius: 14px;
  background: var(--wl-soft, #f4f8f6);
  color: var(--wl-muted, #5a7078);
  font-size: 0.9rem;
  text-align: center;
  content: "Searching live flight options. Results will appear here.";
}
@media (max-width: 760px) {
  body.ita-wl-flight-page #tpwl-tickets { min-height: 420px; }
}

/* ==========================================================================
   8. ACTIVITY-FINDER HERO (island-activities-search.html)
   --------------------------------------------------------------------------
   css/activity-discovery.css defines .ad-hero with a correct dark gradient
   background and correctly-paired light text (!important on the text,
   valid :root custom properties) -- on paper this should already render
   fine, and no other stylesheet in the linked chain overrides it. Since
   the previous round's caching issue showed the live server can drift from
   what's in a given export, forcing this here guarantees correct
   rendering regardless of which version of activity-discovery.css is
   actually being served.
   ========================================================================== */
.ad-hero {
  background-color: #062b3a !important;
  background-image: linear-gradient(135deg, #062b3a, #0d4a5e) !important;
  color: #f4f9fa !important;
}
.ad-hero h1 { color: #ffffff !important; }
.ad-hero .ad-eyebrow { color: #c5f6ef !important; }
.ad-hero .ad-hero-copy { color: #d0e1e4 !important; }
.ad-flow {
  background: rgba(255, 255, 255, 0.08) !important;
  border-color: rgba(255, 255, 255, 0.17) !important;
}
.ad-flow > strong { color: #ffffff !important; }
.ad-flow-step { color: #d0e1e4 !important; background: rgba(255, 255, 255, 0.06) !important; }
.ad-flow-step b { color: #062b3a !important; background: #c5f6ef !important; }
.ad-faq {
  background: #062b3a !important;
  color: #f4f9fa !important;
}
.ad-faq h2 { color: #ffffff !important; }
.ad-faq details { background: rgba(255, 255, 255, 0.06) !important; border-color: rgba(255, 255, 255, 0.16) !important; }
.ad-faq summary { color: #ffffff !important; }
.ad-faq details p { color: #d0e1e4 !important; }
.policy-table-wrap { overflow-x: auto; margin: 1.25rem 0; }
.policy-table { width: 100%; border-collapse: collapse; font-size: 0.88rem; }
.policy-table th { background: var(--surface, #F7F8FA); text-align: left; padding: 0.7rem 0.9rem; }
.policy-table td { padding: 0.7rem 0.9rem; border-top: 1px solid var(--hairline, #E5E8EC); }
.privacy-button { padding: 0.7rem 1.25rem; border: 1px solid var(--hairline, #E5E8EC); border-radius: var(--radius-sm, 8px); background: #fff; font-weight: 600; cursor: pointer; margin: 0.3rem 0.5rem 0.3rem 0; }
.privacy-button-primary { background: var(--primary, #0077B6); color: #fff; border-color: var(--primary, #0077B6); }
.privacy-choice-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 1rem 0; }
.privacy-choice-panel { padding: 1.25rem; border: 1px solid var(--hairline, #E5E8EC); border-radius: var(--radius-md, 12px); margin: 1rem 0; }

/* Small inline badges / lead text used across comparison cards and headers */
.price { display: inline-block; margin-top: 0.3rem; color: var(--primary-dark, #005a8a); font-weight: 700; font-size: 0.82rem; }
.sub, .r-sub { color: var(--ink-muted, #3A4A62); font-size: 1.02rem; line-height: 1.6; }
.caribbean-lead { font-size: 1.05rem; line-height: 1.6; color: var(--ink-muted, #3A4A62); margin: 0.5rem 0 1rem; }

/* Numbered strategy/step lists (distinct from checklists -- no checkbox, a step number) */
.numbered-steps, .r-numbered-steps {
  counter-reset: ita-step; margin: 1.5rem 0; padding: 0; list-style: none;
}
.numbered-steps > li, .r-numbered-steps > li {
  counter-increment: ita-step; position: relative;
  margin: 0 0 0.85rem; padding: 0.1rem 0 0.1rem 2.6rem; min-height: 1.9rem;
  color: var(--ink); line-height: 1.55;
}
.numbered-steps > li::before, .r-numbered-steps > li::before {
  content: counter(ita-step); position: absolute; left: 0; top: 0;
  display: flex; align-items: center; justify-content: center;
  width: 1.9rem; height: 1.9rem; border-radius: 50%;
  background: var(--primary, #0077B6); color: #fff; font-size: 0.82rem; font-weight: 700;
}

/* Aliases for variant naming of already-covered patterns */
.r-check-list { list-style: none; margin: 1.25rem 0; padding: 0; }
.r-check-list li { position: relative; margin-bottom: 0.6rem; padding-left: 1.6rem; color: var(--ink); }
.r-check-list li::before { content: "✓"; position: absolute; left: 0; color: var(--primary, #0077B6); font-weight: 700; }
.r-pro-tip {
  margin: 1.25rem 0; padding: 1rem 1.25rem;
  background: var(--accent-light, #FEF5E6); border: 1px solid var(--accent, #D4A762);
  border-radius: var(--radius-md, 12px);
}
.r-pro-tip strong { display: block; margin-bottom: 0.35rem; color: var(--ink); }
.r-source-list { margin: 1.5rem 0; padding-left: 1.1rem; }
.r-source-list li { margin-bottom: 0.4rem; }

/* go.html transition/redirect page */
.redirect-page { display: flex; align-items: center; justify-content: center; min-height: 70vh; background: var(--surface, #F7F8FA); }
.redirect-card {
  max-width: 420px; margin: 2rem; padding: 2.25rem 2rem; text-align: center;
  background: #fff; border-radius: var(--radius-lg, 16px); box-shadow: var(--shadow-lg, 0 8px 32px rgba(10,31,68,0.08));
}
.redirect-card h1 { font-size:1.3rem !important; margin: 1rem 0 0.5rem; }
.redirect-card p { color: var(--ink-muted, #3A4A62); }
.redirect-card a { color: var(--primary, #0077B6); }

/* Guide-library search widget (used on the guides_index.html duplicate path --
   see the audit notes on duplicate guide URLs for the long-term fix) */
.coastal-library-search {
  position: relative; display: flex; align-items: center; max-width: 480px;
  margin: 1.25rem auto 0; padding: 0.85rem 1.25rem;
  border: 1px solid var(--hairline, #E5E8EC); border-radius: 999px; background: #fff;
}
.coastal-library-search input { flex: 1; border: none; outline: none; font-size: 0.95rem; color: var(--ink); background: transparent; }
.coastal-library-search b { margin-left: 0.5rem; color: var(--ink-soft, #8B97A8); font-style: normal; }
.coastal-search-status { text-align: center; margin: 0.5rem 0 1.5rem; font-size: 0.82rem; color: var(--ink-soft, #8B97A8); }
.coastal-library-groups { margin: 1.5rem 0; }
.coastal-library-group { margin-bottom: 2rem; }
.coastal-library-group-heading { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 0.75rem; padding-bottom: 0.5rem; border-bottom: 1px solid var(--hairline, #E5E8EC); }
.coastal-library-group-heading span { color: var(--ink-soft, #8B97A8); font-size: 0.82rem; }
.coastal-library-row {
  display: block; padding: 0.85rem 1rem; margin-bottom: 0.5rem;
  border: 1px solid var(--hairline, #E5E8EC); border-radius: var(--radius-md, 12px);
  text-decoration: none; color: var(--ink); font-size: 0.92rem;
}
.coastal-library-row:hover { border-color: var(--primary, #0077B6); }

/* Caribbean cost-formula box (same visual family as .data-box) */
.caribbean-formula {
  margin: 1rem 0; padding: 1rem 1.25rem; border-radius: var(--radius-md, 12px);
  background: var(--surface-warm, #FDF8F0); border: 1px solid var(--accent-light, #FEF5E6);
}
.caribbean-formula strong { display: block; margin-bottom: 0.4rem; font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--accent-dark, #c49650); }
.caribbean-formula span { color: var(--ink-muted, #3A4A62); font-size: 0.92rem; }

/* ==========================================================================
   4. ARTICLE-HERO / LAYOUT / SIDEBAR SHELL (round 3 fix)
   --------------------------------------------------------------------------
   Found via a corrected audit: earlier checks treated a class as "covered"
   if it appeared ANYWHERE in the css folder, including files that are
   never linked from live pages (css/cinematic-coastal.css,
   css/editorial-atlas.css -- both linked only from the internal
   design-preview.html). Re-checking against only the stylesheets actually
   linked per page shows .r-article-hero, .r-article-layout,
   .r-article-body, .r-breadcrumbs, .r-sidebar/.r-sidebar-card are missing
   on ~90+ live pages -- nearly every guide article, plus about.html,
   contact.html, image-credits.html, affiliate-disclosure.html,
   editorial-policy.html, cookie-policy.html, disclaimer.html. This is the
   outer shell those pages are built on, so its absence affects far more of
   the page than any single component. Values below are taken from
   cinematic-coastal.css's own (correct, just never-shipped) definitions,
   translated onto this site's live design tokens.
   ========================================================================== */

.r-article-hero {
  position: relative; min-height: 320px; display: flex; align-items: flex-end;
  overflow: hidden; background: var(--ink);
  padding: 2.5rem 1.5rem 2.75rem;
}
.r-article-hero-bg { position: absolute; inset: 0; background-size: cover; background-position: center; }
.r-article-hero-bg::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(0deg, rgba(10,31,68,0.95) 0%, rgba(10,31,68,0.4) 100%);
}
.r-article-hero-content {
  position: relative; z-index: 1; padding: 0;
  width: min(calc(100% - 40px), 1100px); margin-inline: auto;
}
/* Variant used on ~42 duplicate-URL guide pages: r-article-hero-content
   wraps a text div AND a direct <img> sibling, but was only ever built as
   a single-column text wrapper (no grid), so the image rendered at full,
   unconstrained block width -- the oversized full-bleed hero image bug.
   The canonical nested versions of these same guides use the proper
   destination-specific hero grids (greek/ocean/caribbean-article-hero)
   and are unaffected; this only applies where an image is actually present. */
.r-article-hero-content:has(> img) {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.85fr);
  gap: 2rem;
  align-items: center;
}
.r-article-hero-content:has(> img) > img {
  width: 100%;
  max-height: 420px;
  object-fit: cover;
  border-radius: var(--radius-lg, 16px);
}
@media (max-width: 900px) {
  .r-article-hero-content:has(> img) { grid-template-columns: 1fr; }
}
.r-article-hero > h1, .r-article-hero > p, .r-article-hero > .r-section-label, .r-article-hero > .r-breadcrumbs {
  width: 100%; max-width: 1100px; margin-inline: auto;
}
.r-article-hero .r-section-label { color: #f5d999 !important; max-width: 700px; }
.r-article-hero h1 { color: #fff !important; max-width: 700px; margin: 0 0 0.5rem; }
.r-article-hero p { color: rgba(255,255,255,0.75) !important; max-width: 560px; margin-inline: 0; }
.r-breadcrumbs { font-size: 0.78rem; margin-bottom: 0.75rem; }
.r-breadcrumbs a { color: var(--primary, #0077B6); text-decoration: none; }
.r-breadcrumbs a:hover { text-decoration: underline; }
.r-breadcrumbs span, .r-breadcrumbs .sep { color: var(--ink-soft, #8B97A8); margin: 0 0.4rem; }
.r-article-hero .r-breadcrumbs { width: min(calc(100% - 40px), 1100px); margin-inline: auto; }
.r-article-hero .r-breadcrumbs a { color: rgba(255,255,255,0.6) !important; }
.r-article-hero .r-breadcrumbs a:hover { color: rgba(255,255,255,0.85) !important; }
.r-article-hero .r-breadcrumbs span, .r-article-hero .r-breadcrumbs .sep { color: rgba(255,255,255,0.35) !important; }

.r-article-layout {
  display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 2.5rem;
  width: min(calc(100% - 40px), 1100px); margin-inline: auto; padding: 2.5rem 0 4rem;
}
@media (max-width: 960px) { .r-article-layout { grid-template-columns: 1fr; } }
.r-article-body { font-size: 1.05rem; line-height: 1.78; }
.r-article-body section { margin-bottom: 2.25rem; }
.r-article-body h2 { font-size:1.5rem !important; margin-top: 2.25rem; margin-bottom: 0.6rem; }
.r-article-body h3 { font-size:1.15rem !important; margin-top: 1.75rem; margin-bottom: 0.5rem; }
.r-article-body p { margin-bottom: 1rem; }
.r-article-body ul, .r-article-body ol { padding-left: 1.5rem; margin-bottom: 1rem; }
.r-article-body li { margin-bottom: 0.4rem; color: var(--ink-muted, #3A4A62); }
.r-article-body blockquote {
  border-left: 3px solid var(--accent, #D4A762); border-radius: 0 var(--radius-sm, 8px) var(--radius-sm, 8px) 0;
  background: var(--surface-warm, #FDF8F0); padding: 1.1rem 1.4rem; margin: 1.5rem 0;
}
.r-article-body blockquote p { margin: 0; color: var(--ink); }

.r-sidebar { display: flex; flex-direction: column; gap: 1.5rem; }
.r-sidebar-card { padding: 1.4rem; border: 1px solid var(--hairline, #E5E8EC); border-radius: var(--radius-md, 12px); background: #fff; }
.r-sidebar-card h2, .r-sidebar-card h4 { font-size:0.9rem !important; font-weight: 700; margin-bottom: 0.6rem; color: var(--ink); }
.r-sidebar-card p { font-size: 0.85rem; line-height: 1.55; margin-bottom: 0.75rem; color: var(--ink-muted, #3A4A62); }
.r-sidebar-card a { display: block; padding: 0.25rem 0; color: var(--primary, #0077B6); text-decoration: none; font-size: 0.88rem; }
.r-sidebar-card a:hover { text-decoration: underline; }
.r-sidebar span { display: block; margin-bottom: 0.6rem; font-weight: 700; color: var(--ink); font-size: 0.88rem; }
.r-sidebar ol { padding-left: 1.2rem; color: var(--ink-muted, #3A4A62); font-size: 0.88rem; }
.r-sidebar ol li { margin-bottom: 0.4rem; }

/* Destination hub index pages (Bali/Caribbean/Greek/Maldives-Seychelles landing grids) */
.r-hub-grid, .caribbean-hub-grid, .greek-hub-grid, .ocean-hub-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1.5rem; margin: 1.5rem 0;
}
.r-hub-card, .caribbean-hub-card, .greek-hub-card, .ocean-hub-card {
  display: block; border-radius: var(--radius-md, 12px); overflow: hidden;
  border: 1px solid var(--hairline, #E5E8EC); background: #fff;
  text-decoration: none; color: inherit; transition: box-shadow .2s ease, transform .2s ease;
  padding: 1.25rem 1.5rem;
}
.r-hub-card:hover, .caribbean-hub-card:hover, .greek-hub-card:hover, .ocean-hub-card:hover {
  box-shadow: var(--shadow-md, 0 4px 20px rgba(10,31,68,0.1)); transform: translateY(-2px); color: inherit;
}
.r-hub-card-img { height: 180px; background-size: cover; background-position: center; margin: -1.25rem -1.5rem 1rem; }
.r-hub-card-body h3, .caribbean-hub-card h3, .greek-hub-card h3, .ocean-hub-card h3 { font-size:1.1rem !important; margin-bottom: 0.3rem; }
.r-hub-card-body p, .caribbean-hub-card p, .greek-hub-card p, .ocean-hub-card p { font-size: 0.88rem; line-height: 1.55; color: var(--ink-muted, #3A4A62); }
.caribbean-hub-card span, .greek-hub-card span, .ocean-hub-card span {
  display: inline-block; margin-bottom: 0.3rem; color: var(--primary, #0077B6);
  font-size: 0.68rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase;
}
.caribbean-hub-card strong, .greek-hub-card strong, .ocean-hub-card strong { display: block; margin-top: 0.5rem; color: var(--primary, #0077B6); font-size: 0.85rem; }
.caribbean-pattern-grid, .caribbean-photo-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1rem; margin: 1.25rem 0; }
.caribbean-hub-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.85fr);
  gap: 2rem;
  align-items: center;
}
@media (max-width: 900px) {
  .caribbean-hub-hero-grid { grid-template-columns: 1fr; }
}
.caribbean-hub-hero-grid img {
  width: 100%;
  max-height: 420px;
  object-fit: cover;
  border-radius: var(--radius-lg, 16px);
}

/* Section background helpers (both prefixed and unprefixed variants) */
.r-section-warm, .section-tint, .r-section-tint { background: var(--surface-warm, #FDF8F0); }
.r-section-alt { background: var(--surface, #F7F8FA); }
.section-heading { margin-bottom: 1.25rem; }

/* Tool-selection cards (esim.html step cards) */
.r-tools { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem; }
.r-tool-card {
  display: flex; align-items: flex-start; gap: 1rem; padding: 1.1rem 1.3rem;
  border: 1px solid var(--hairline, #E5E8EC); border-radius: var(--radius-sm, 8px);
  background: #fff; text-decoration: none; color: inherit;
}
.r-tool-card span { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 1.7rem; height: 1.7rem; border-radius: 50%; background: var(--primary-light, #E8F4FD); color: var(--primary-dark, #005a8a); font-size: 0.78rem; font-weight: 700; }
.r-tool-card h2 { font-size:0.98rem !important; margin: 0 0 0.3rem; }
.r-tool-card p { margin: 0; font-size: 0.85rem; color: var(--ink-muted, #3A4A62); }

/* Comparison-card variant of r-tool-card (insurance.html): these have 5
   direct children (span label, h3, p, dl, button) instead of the simple
   3-child numbered-step pattern (span, h2, p) used on esim/rentals/tours,
   which the base row-flex layout was built for. Targeting only cards that
   contain a button, so the numbered-step usage elsewhere is untouched. */
.r-tool-card:has(> a) {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
}
.r-tool-card:has(> a) > span {
  width: auto; height: auto; border-radius: 999px;
  padding: 0.3rem 0.75rem; margin-bottom: 0.75rem;
  font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.04em;
}
.r-tool-card:has(> a) > h3 { font-size: 1.15rem; margin: 0 0 0.5rem; }
.r-tool-card:has(> a) > p { margin: 0 0 1rem; font-size: 0.92rem; line-height: 1.5; }
.r-tool-card:has(> a) > dl { width: 100%; margin: 0 0 1.25rem; font-size: 0.85rem; }
.r-tool-card:has(> a) > dl > div { margin-bottom: 0.3rem; }
.r-tool-card:has(> a) > dl dt { display: inline; font-weight: 700; color: var(--ink); }
.r-tool-card:has(> a) > dl dd { display: inline; margin: 0 0 0 0.3rem; color: var(--ink-muted, #3A4A62); }
.r-hero-content { text-align: center; padding: 2.5rem 1.5rem; max-width: 700px; margin-inline: auto; }
.r-commercial-hero .r-hero-content { text-align: left; padding: 0; max-width: none; margin-inline: 0; }
.r-hero-media { border-radius: var(--radius-lg, 16px); overflow: hidden; margin: 0; }
.r-hero-media img { display: block; width: 100%; height: 100%; min-height: 260px; max-height: 380px; object-fit: cover; }
.r-section-related, .r-section-compliance {
  margin: 1.25rem 0 !important;
  width: min(calc(100% - 40px), 1260px) !important;
  margin-inline: auto !important;
}
body.ita-tool-page-contrast-fixed .r-section-compliance.r-section-compliance {
  padding-top: 1.25rem !important;
  padding-bottom: 1.25rem !important;
}

/* Small remaining aliases */
.r-price { display: inline-block; margin-top: 0.3rem; color: var(--primary-dark, #005a8a); font-weight: 700; font-size: 0.82rem; }
.r-article-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 0.8fr); gap: 2rem; align-items: center; }
@media (max-width: 900px) { .r-article-hero-grid { grid-template-columns: 1fr; } }
.r-calculator-note { margin: 0; font-size: 0.78rem; color: rgba(255,255,255,0.65); }

/* ==========================================================================
   5. "ita-tool-section" HEADING CONTRAST BUG (round 4 fix)
   --------------------------------------------------------------------------
   Root cause, found from an actual screenshot rather than static analysis:
   css/ita-readability-widgets-v1.css contains a rule that assumes
   .ita-tool-section > .ita-tool-shell > .ita-section-heading sits on a dark
   background and force-applies near-white text color to its heading,
   eyebrow, and description paragraph:

     html body.ita-site .ita-tool-section > .ita-tool-shell
       > .ita-section-heading :is(h1, h2, h3, p, .ita-tool-eyebrow) {
       color: var(--ita-rw-on-dark) !important;   // #edf7f3 -- near white
     }

   But .ita-tool-section actually has a pale mint background
   (var(--ita-tool-mist): #eef7f5, from css/planning-workspace.css), not a
   dark one. Near-white text (#edf7f3) on a near-white background (#eef7f5)
   is essentially invisible -- this is the giant pale "ghost text" visible
   on tools/island-flight-search.html, guides/index.html, and 6 other pages
   that use this shared component (affiliate-disclosure.html, privacy.html,
   tools/island-disruption-help.html, tools/island-ticket-search.html,
   tools/island-transfer-search.html, tools/island-transport-search.html).

   This selector has real classes at every level (specificity 0,5,2), so
   the override below matches it exactly and wins on source order since
   this file loads last.
   ========================================================================== */
html body.ita-site
.ita-tool-section
> .ita-tool-shell
> .ita-section-heading
:is(h1, h2, h3, .ita-tool-eyebrow) {
  color: var(--ita-tool-ink, #17313a) !important;
  opacity: 1 !important;
}
html body.ita-site
.ita-tool-section
> .ita-tool-shell
> .ita-section-heading
p {
  color: var(--ita-tool-muted, #5a7078) !important;
  opacity: 1 !important;
}

/* ==========================================================================
   9. PRIVACY CONSENT BANNER + MODAL
   --------------------------------------------------------------------------
   js/privacy-consent.js builds the cookie banner and the full "Choose
   optional technologies" settings modal entirely via JS-generated markup
   (.privacy-banner, .privacy-modal, .privacy-category, etc.) -- none of it
   has ever had a matching CSS rule anywhere in the site. It was rendering
   as unstyled, non-modal, in-page content (no overlay, no positioning, raw
   default checkboxes) on every single page, since this component is
   injected sitewide. This also matters beyond appearance: several widgets
   sitewide gate on privacyAllowed() requiring the "marketing"/"partner_tools"
   consent category, so a confusing consent UI can look like "the widget is
   broken" when it's actually just never being granted permission to load.
   ========================================================================== */

/* Bottom cookie banner */
.privacy-banner {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: 2000;
  background: #fff;
  border-top: 1px solid var(--hairline, #E5E8EC);
  box-shadow: 0 -8px 32px rgba(10,31,68,0.12);
  padding: 1.25rem clamp(1rem, 4vw, 2rem);
}
.privacy-banner-inner {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
  align-items: center;
  justify-content: space-between;
  width: min(1260px, 100%);
  margin-inline: auto;
}
.privacy-banner-inner > div:first-child { flex: 1 1 420px; }
.privacy-banner strong { display: block; margin-bottom: 0.35rem; color: var(--ink); }
.privacy-banner p { margin: 0 0 0.5rem; font-size: 0.88rem; color: var(--ink-muted, #3A4A62); line-height: 1.5; }
.privacy-banner-links a { color: var(--primary, #0077B6); }
.privacy-banner-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  flex-shrink: 0;
}
.privacy-gpc-note {
  padding: 0.5rem 0.75rem;
  background: var(--surface-warm, #FDF8F0);
  border-radius: var(--radius-sm, 8px);
  font-size: 0.82rem !important;
}

/* Settings modal */
.privacy-modal { position: fixed; inset: 0; z-index: 2100; display: flex; align-items: center; justify-content: center; padding: 1.5rem; }
.privacy-modal[hidden] { display: none; }
.privacy-modal-backdrop {
  position: absolute; inset: 0;
  background: rgba(10, 31, 68, 0.55);
}
.privacy-modal-panel {
  position: relative;
  width: min(640px, 100%);
  max-height: min(85vh, 720px);
  overflow-y: auto;
  background: #fff;
  border-radius: var(--radius-lg, 16px);
  box-shadow: var(--shadow-lg, 0 20px 60px rgba(10,31,68,0.25));
  padding: clamp(1.5rem, 4vw, 2.5rem);
}
.privacy-modal-panel .eyebrow.dark {
  display: block; margin-bottom: 0.4rem;
  color: var(--primary, #0077B6);
  font-size: 0.72rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;
}
.privacy-modal-panel h2 { margin: 0 0 0.75rem; font-size: 1.4rem; }
.privacy-modal-panel > p { color: var(--ink-muted, #3A4A62); font-size: 0.92rem; line-height: 1.55; margin-bottom: 1.25rem; }
.privacy-modal-close {
  position: absolute; top: 1.25rem; right: 1.25rem;
  width: 2rem; height: 2rem;
  display: flex; align-items: center; justify-content: center;
  border: none; border-radius: 50%;
  background: var(--surface, #F7F8FA);
  color: var(--ink); font-size: 1.1rem; line-height: 1; cursor: pointer;
}
.privacy-preference-form { display: flex; flex-direction: column; }
.privacy-category {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.25rem;
  padding: 1rem 0;
  border-top: 1px solid var(--hairline, #E5E8EC);
  cursor: pointer;
}
.privacy-category:first-of-type { border-top: none; }
.privacy-category span { flex: 1; }
.privacy-category strong { display: block; margin-bottom: 0.2rem; color: var(--ink); font-size: 0.95rem; }
.privacy-category small { color: var(--ink-muted, #3A4A62); font-size: 0.84rem; line-height: 1.45; }
.privacy-category input[type="checkbox"] {
  flex-shrink: 0;
  width: 1.15rem; height: 1.15rem;
  margin-top: 0.15rem;
  accent-color: var(--primary, #0077B6);
}
.privacy-modal-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin-top: 1.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--hairline, #E5E8EC);
}
.privacy-modal-links { margin-top: 1.25rem; font-size: 0.82rem; color: var(--ink-soft, #8B97A8); }
.privacy-modal-links a { color: var(--primary, #0077B6); }
.privacy-button-link { background: none; border: none; color: var(--primary, #0077B6); text-decoration: underline; padding: 0.7rem 0.5rem; }

/* tool-hero (Bali trip cost calculator): completely unstyled orphaned class,
   matching the established light editorial hero pattern used by
   .pm-tools-hero / .bbd-hero / .ita-tp-hero elsewhere on the site. */
.tool-hero {
  padding: clamp(2.5rem, 6vw, 4rem) 0;
  background: linear-gradient(180deg, #f9fcfb 0%, #e8f3ee 100%);
}
.tool-hero .site-container { width: min(calc(100% - 40px), 900px); margin-inline: auto; }
.tool-hero h1 { color: var(--ink); margin: 0.5rem 0 0.75rem; max-width: 20ch; }
.tool-hero p { color: var(--ink-muted, #3A4A62); max-width: 60ch; }
.tool-hero .eyebrow { color: var(--primary, #0077B6); font-size: 0.72rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.tool-hero .breadcrumbs a { color: var(--primary, #0077B6); }
.tool-hero .breadcrumbs span { color: var(--ink-soft, #8B97A8); }

/* ==========================================================================
   11. rf-flight-hero AND ita-dock-panel MIS-TARGETED BY THE BLANKET
   DARK-SURFACE RULE (css/affiliate-contrast-images.css)
   --------------------------------------------------------------------------
   That file has a ~30-class :where() list that force-applies near-white
   text (#f2f8f9 body, #ffffff headings, #c6fff7 links) to everything it
   assumes is a dark surface. Checked every class in that list against its
   actual background: all but two are genuinely dark and correct. The two
   wrong entries:
     - .rf-flight-hero (css/flight-planning.css) has a LIGHT gradient
       background (mint -> white -> cream), not dark.
     - .ita-dock-panel (the "Build this route" popup, JS-generated by
       planning-workspace.js) has a plain white background with its own
       correctly-designed dark ink / teal link colors -- which the blanket
       rule's `a:not(...)` selector still beats on specificity despite
       :where() itself contributing zero, because each :not() argument adds
       the specificity of a class selector.
   Overriding both back to their correct, already-designed colors here,
   with real class selectors (not :where()) so this can't lose the same way.
   ========================================================================== */
.rf-flight-hero.rf-flight-hero, .rf-flight-hero.rf-flight-hero p { color: var(--ink, #0A1F44) !important; }
.rf-flight-hero.rf-flight-hero h1 { color: var(--ink, #0A1F44) !important; }
.rf-flight-hero.rf-flight-hero .breadcrumbs a, .rf-flight-hero.rf-flight-hero a:not(.button):not([class*="button"]):not([hidden]) {
  color: var(--primary, #0077B6) !important;
  text-decoration-color: currentColor !important;
}
.rf-flight-hero.rf-flight-hero .breadcrumbs span { color: var(--ink-soft, #8B97A8) !important; }

.ita-dock-panel { color: var(--ita-tool-ink, #17313a) !important; }
.ita-dock-panel h2 { color: var(--ita-tool-ink, #17313a) !important; }
.ita-dock-panel > p { color: var(--ita-tool-muted, #5a7078) !important; }
.ita-dock-panel.ita-dock-panel a.ita-dock-link:not(.is-current):not([hidden]) { color: var(--ita-tool-ocean, #0f6e63) !important; text-decoration-color: currentColor !important; }
.ita-dock-panel.ita-dock-panel a.ita-dock-link.is-current:not([hidden]) { color: #ffffff !important; }
/* ===== END SOURCE: css/contrast-and-missing-components-fix.css ===== */
