/* One dark surface and readable text system across public theme templates. */
body,
body #page,
body .site-content,
body .home-main,
body .home-grid,
body .home-left,
body .location-main,
body .location-directory,
body .location-left,
body .city-main,
body .country-main,
body .blog-main,
body .wx-info-page,
body .entry-content,
body .page-content {
  background-color: var(--jb-night) !important;
  color: var(--jb-white) !important;
}

/* Homepage hero, directory cards and editorial content. */
body .fp-hero,
body .city-hero.location-hero,
body .country-hero.location-hero {
  background: linear-gradient(125deg, var(--jb-slate), var(--jb-carbon)) !important;
  border-color: var(--jb-line) !important;
  color: var(--jb-white) !important;
}
body .fp-hero h1,
body .fp-hero h2,
body .city-hero.location-hero h1,
body .country-hero.location-hero h1 {
  color: var(--jb-white) !important;
  text-shadow: none !important;
}
body .fp-hero p,
body .fp-hero-stat span,
body .city-hero.location-hero p,
body .country-hero.location-hero p {
  color: #d5e1e3 !important;
}
body .fp-hero .fp-kicker,
body .fp-hero .fp-hero-stat strong,
body .location-hero .location-kicker {
  color: var(--jb-mint) !important;
}
body .fp-hero .fp-hero-stat {
  background: var(--jb-carbon) !important;
  border-color: var(--jb-line) !important;
}
body .home-main .fp-hero.fp-hero-destination-layout {
  background: radial-gradient(circle at 8% 12%, rgba(114,205,187,.12), transparent 38%),
              linear-gradient(125deg, var(--jb-slate), var(--jb-carbon)) !important;
  border-color: var(--jb-line) !important;
  color: var(--jb-white) !important;
}
/* Match the specificity of the legacy destination hero's dark text rules. */
body .home-main .fp-hero.fp-hero-destination-layout .fp-hero-copy h1 {
  color: var(--jb-white) !important;
}
body .home-main .fp-hero.fp-hero-destination-layout .fp-hero-copy p {
  color: #d5e1e3 !important;
}
body .home-main .fp-hero.fp-hero-destination-layout .fp-hero-copy .fp-kicker {
  color: var(--jb-mint) !important;
}
body .home-main .fp-hero h1,
body .home-main .fp-hero h2,
body .home-main .fp-hero strong,
body .home-main .fp-hero-destinations-head span,
body .home-main .fp-register-cta h2,
body .home-main .fp-section-head-compact h2,
body .home-main .fp-section-head-mini h3,
body .home-main .fp-top-countries h2,
body .home-main .fp-section-head h2,
body .home-main .fp-country-name,
body .home-main .fp-country-card strong,
body .home-main .jb69-premium-guide h2,
body .home-main .jb69-premium-guide h3 {
  color: var(--jb-white) !important;
}
body .home-main .fp-hero p,
body .home-main .fp-register-cta p,
body .home-main .fp-section-head-mini p,
body .home-main .fp-section-head p,
body .home-main .fp-country-meta,
body .home-main .fp-country-browse,
body .home-main .fp-country-card span,
body .home-main .fp-country-card small,
body .home-main .jb69-premium-guide p,
body .home-main .jb69-premium-guide li,
body .home-main .fp-hero-destination-copy em {
  color: var(--jb-silver) !important;
}
body .home-main .fp-kicker,
body .home-main .fp-section-kicker,
body .home-main .jb69-card-label,
body .home-main .jb69-premium-guide strong {
  color: var(--jb-mint) !important;
}
body .home-main .fp-hero-destinations,
body .home-main .fp-top-countries,
body .home-main .fp-register-cta,
body .home-main .fp-trust-strip,
body .home-main .fp-seo-content,
body .home-main .fp-popular-locations,
body .home-main .jb69-content-hero,
body .home-main .jb69-content-card,
body .home-main .jb69-subcard {
  background: var(--jb-slate) !important;
  border-color: var(--jb-line) !important;
  color: var(--jb-white) !important;
}
body .home-main .jb69-content-summary {
  background: var(--jb-carbon) !important;
  border-color: var(--jb-line) !important;
}
body .home-main .jb69-content-summary strong { color: var(--jb-white) !important; }
body .home-main .jb69-content-summary p { color: var(--jb-silver) !important; }
body .home-main .fp-country-card,
body .home-main .fp-hero-destination-card,
body .home-main .fp-hero-proof span,
body .home-main .fp-content-toc a,
body .home-main .fp-location-link-grid a,
body .home-main .jb69-location-links a {
  background: var(--jb-carbon) !important;
  border-color: var(--jb-line) !important;
  color: var(--jb-white) !important;
}
body .home-main .cc-country-select,
body .home-main .cc-cities,
body .home-main .cc-city,
body .home-main .fp-search-box {
  background: var(--jb-carbon) !important;
  border-color: var(--jb-line) !important;
  color: var(--jb-white) !important;
}
body .home-main .cc-city:hover,
body .home-main .cc-city.active,
body .home-main .cc-city.is-active {
  background: #21343a !important;
  border-color: var(--jb-mint) !important;
  color: var(--jb-white) !important;
}
body .home-main .fp-hero-proof span,
body .home-main .fp-country-flag,
body .home-main .fp-location-link-grid a:after {
  color: var(--jb-mint) !important;
}
body .home-main .fp-country-card:hover,
body .home-main .fp-hero-destination-card:hover,
body .home-main .fp-location-link-grid a:hover {
  border-color: var(--jb-mint) !important;
  background: #21343a !important;
}
body .home-main .fp-premium-copy .fp-section-kicker,
body .location-content-kicker {
  background: rgba(114,205,187,.12) !important;
  border-color: var(--jb-line) !important;
  color: var(--jb-mint) !important;
}

/* City/country pages and ordinary posts use the same text contrast. */
body .location-hero,
body .location-head,
body .location-content,
body .location-keyword-intro,
body .location-prose,
body .listing-block,
body .content-card,
body .entry-content blockquote,
body .page-content blockquote {
  background: var(--jb-slate) !important;
  border-color: var(--jb-line) !important;
  color: var(--jb-white) !important;
}
body .location-hero h1,
body .location-head h1,
body .location-content h1,
body .location-content h2,
body .location-content h3,
body .location-prose h2,
body .location-prose h3,
body .entry-content h1,
body .entry-content h2,
body .entry-content h3,
body .page-content h1,
body .page-content h2,
body .page-content h3 {
  color: var(--jb-white) !important;
}
body .location-content p,
body .location-content li,
body .location-keyword-intro,
body .location-prose p,
body .location-prose li,
body .entry-content p,
body .entry-content li,
body .page-content p,
body .page-content li {
  color: var(--jb-silver) !important;
}
body .location-content strong,
body .location-prose strong,
body .location-keyword-intro strong {
  color: var(--jb-mint) !important;
}

/* Use the same sidebar on the homepage, location and profile templates. */
body .main-right,
body .home-right.main-right,
body .location-sidebar,
body .city-sidebar,
body .country-sidebar {
  background: var(--jb-night) !important;
  border-color: var(--jb-line) !important;
  color: var(--jb-white) !important;
}
body .main-right .side-panel.mini-section,
body .main-right .mini-section,
body .location-sidebar .side-panel,
body .city-sidebar .side-panel,
body .country-sidebar .side-panel {
  background: var(--jb-slate) !important;
  border-color: var(--jb-line) !important;
  color: var(--jb-white) !important;
}
body .main-right .panel-head {
  background: var(--jb-carbon) !important;
  border-radius: 8px !important;
  padding: 9px 6px !important;
}
body .main-right .panel-title,
body .main-right .mini-title,
body .location-sidebar h2,
body .location-sidebar h3 {
  color: var(--jb-white) !important;
}
body .main-right .panel-title::after,
body .main-right .mini-title::after {
  background: var(--jb-mint) !important;
}
body .main-right .mini-card-wrapper .mini-profile,
body .main-right .mini-two-grid .mini-profile,
body .main-right .recommended-links .rec-item {
  background: var(--jb-carbon) !important;
  border-color: var(--jb-line) !important;
}
body .main-right .mini-name { color: var(--jb-white) !important; }
body .main-right .mini-extra,
body .main-right .mini-location,
body .main-right .panel-subtitle { color: var(--jb-silver) !important; }
body .main-right .mini-price { color: var(--jb-mint) !important; }

/* Shared headings, metadata and interactive states. */
body .section-heading,
body .block-title,
body .widget-title,
body .entry-title,
body .page-title,
body .sd-name,
body .sp-section-title,
body .ds-card-title,
body .form-title {
  color: var(--jb-white) !important;
}
body .entry-meta,
body .posted-on,
body .description,
body .hint,
body .form-help { color: var(--jb-silver) !important; }
body .entry-content a,
body .page-content a,
body .location-content a { color: var(--jb-frost) !important; }
body .wx-info-page h1,
body .wx-info-page h2,
body .wx-info-page h3,
body .blog-main h1,
body .blog-main h2,
body .sx-packages h1,
body .sx-packages h2,
body .registration-page h1,
body .registration-page h2,
body .ds-root h1,
body .ds-root h2 { color: var(--jb-white) !important; }
body .wx-info-page p,
body .wx-info-page li,
body .blog-main p,
body .sx-packages p,
body .registration-page p,
body .ds-root p { color: var(--jb-silver) !important; }
body a:focus-visible,
body button:focus-visible,
body input:focus-visible {
  outline: 2px solid var(--jb-mint) !important;
  outline-offset: 2px;
}
