/* ============================================
   Pass B CSS Bundle (combinator fix May 19) — assembled from lajollamom mockup files
   Target: GP Customizer Additional CSS
   Date: 2026-05-18
   ============================================ */

/* ============================================
   PATTERN CSS INDEX  (maintained by the /pattern-audit skill)
   Maps each reusable wp_block pattern to the CSS section below that styles it.
   Convention: wrap new pattern CSS in START/END marker comments naming the pattern and its (#ID),
   then add a row here. Retiring a pattern removes its CSS block and its row.

   #180243  Deal CTA                    section: LJM DEAL CTA component        (.ljm-deal-cta)
   #180259  Deal CTA - Skinny           section: LJM DEAL CTA component        (.ljm-deal-cta--skinny)
   #179286  Situation Box               section: DISCOUNT-TICKETS COMPONENTS   (.ljm-kt)
   #180271  Ticket Card (photo)         section: DISCOUNT-TICKETS COMPONENTS   (.tk-card / .ljm-cards)
   #178874  LJM Slider - Photos         section: LJM SLIDER component          (.ljm-slide-card--photo)
   #178873  LJM Slider - Hotels         section: LJM SLIDER component          (.ljm-slide-card--hotel)
   #178872  LJM Slider - Neighborhoods  section: LJM SLIDER component          (.ljm-slide-card--neighborhood)
   #177942  Editorial Balance           section: hotel-review components       (.editorial-balance)
   Retired 2026-06-21: #179719 Hubbub Action Buttons (plugin-styled, no CSS here); #179285 legacy Ticket Cards (.tk-card shared with #180271, kept).
   ============================================ */

/* --- Self-hosted Google Fonts (latin + latin-ext, Phase 1 — inlined @font-face from CDN, removes render-blocking @import chain) --- */

/* Playfair Display — latin-ext */
/* Playfair Display — latin */
/* Playfair Display 500 — latin-ext */
/* Playfair Display 500 — latin */
/* Playfair Display 700 — latin-ext */
/* Playfair Display 700 — latin */
/* Montserrat 400 — latin-ext */
/* Montserrat 400 — latin */
/* Montserrat 500 — latin-ext */
/* Montserrat 500 — latin */
/* Montserrat 700 — latin-ext */
/* Montserrat 700 — latin */
/* Inter 400 — latin-ext */
/* Inter 400 — latin */
/* Inter 500 — latin-ext */
/* Inter 500 — latin */
/* --- CSS variable definitions (:root) --- */
:root {
  --near-black:     #1A1A1A;
  --charcoal:       #2C2C2C;
  --gold:           #C4A265;
  --gold-text:      #8B6914;  /* readable gold text — WCAG AA 5.2:1 on white */
  --deep-gold:      #B8983F;
  --antique-gold:   #826A2C;  /* verdict labels ONLY */
  --sand:           #736758;
  --dark-teal:      #265B5F;
  --teal:           #265B5F;  /* alias of --dark-teal */
  --warm-white:     #FAF8F5;
  --linen:          #F5F1EB;
  --border-light:   #e8e2d9;
  --border:         #e8e2d9;  /* alias of --border-light */
  --mint-bg:        #EEF6F5;  /* homepage announcement bar / promo callouts */

  --font-headline:  'Playfair Display', Georgia, serif;
  --font-head:      'Playfair Display', Georgia, serif;  /* alias */
  --font-ui:        'Montserrat', Arial, sans-serif;
  --font-body:      Georgia, 'Times New Roman', serif;

  --content-width:  740px;
  --sidebar-width:  300px;  /* Mediavine standard unit width — do not change */
  --page-max:       1160px;
}

/* Sitewide micro-resets used by all components (Pass A may already cover most of this) */
html { scroll-behavior: smooth; }

/* ============================================
   1. TOPBAR
   Sits above site nav. Scrolls away with page (NOT sticky).
   Hidden on mobile. Inter font, dark background, gold arrow.
   ============================================ */
.site-topbar {
  background: var(--near-black);
  color: rgba(255, 255, 255, 0.88);
  text-align: center;
  padding: 7px 16px;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 10.5px;
  letter-spacing: 1px;
  text-transform: uppercase;
  font-weight: 400;
  line-height: 1;
}
.site-topbar a {
  color: #fff;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: opacity 0.15s ease;
}
.site-topbar a:hover { opacity: 0.85; }
.site-topbar a:hover .topbar-arrow { transform: translateX(3px); }
.site-topbar .topbar-arrow {
  color: var(--gold);
  font-size: 14px;
  line-height: 1;
  transition: transform 0.15s ease;
  display: inline-block;
}
@media (max-width: 820px) {
  .site-topbar { display: none; }
}

/* Announcement bar variant (homepage) — mint background, teal links */
.announce-bar {
  background: var(--mint-bg);
  text-align: center;
  padding: 9px 20px;
  font-family: var(--font-ui);
  font-size: 12px;
  font-weight: 400;
  color: var(--near-black);
  letter-spacing: 0.3px;
}
.announce-bar a {
  color: var(--teal);
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: var(--teal);
  text-underline-offset: 2px;
}

/* ============================================
   2. SITE NAV EXTRAS
   Sticky behavior, backdrop blur, mega menus, mobile drawer,
   tickets CTA. Pass A native typography handles base sizing.
   ============================================ */
.site-nav {
  position: sticky;
  top: 0;
  z-index: 900;
  background: rgba(255,255,255,0.97);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--linen);
}
.site-nav-inner {
  max-width: var(--page-max);
  margin: 0 auto;
  padding: 0 32px;
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.nav-logo {
  font-family: var(--font-headline);
  font-size: 20px;
  font-weight: 500;
  color: var(--near-black);
  text-decoration: none;
  letter-spacing: 0.3px;
  flex-shrink: 0;
}
.nav-logo span { display: none; }
.nav-links {
  display: flex;
  align-items: center;
  gap: 28px;
  list-style: none;
}
.nav-links > li { position: relative; }
.nav-links a {
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 1.8px;
  text-transform: uppercase;
  color: var(--near-black);
  text-decoration: none;
  transition: color 0.2s;
}
.nav-links a:hover,
.nav-links a.is-active,
.has-mega:hover > a,
.has-mega.open > a { color: var(--dark-teal); }

/* Mega menu caret */
.has-mega > a::after {
  content: '';
  display: inline-block;
  width: 5px;
  height: 5px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg) translateY(-2px);
  margin-left: 6px;
  vertical-align: middle;
  opacity: 0.45;
}

.nav-links .nav-tickets-btn {
  background: var(--dark-teal);
  color: white;
  padding: 8px 18px;
  border-radius: 2px;
  transition: background 0.2s;
}
.nav-tickets-btn:hover {
  background: var(--charcoal) !important;
  color: white !important;
}

.nav-search-btn {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--sand);
  padding: 4px 6px;
  line-height: 1;
  transition: color 0.2s;
  display: flex;
  align-items: center;
}
.nav-search-btn:hover { color: var(--dark-teal); }

/* Mega menus — fixed, full viewport width */
.mega-menu {
  position: fixed;
  left: 0;
  right: 0;
  top: 60px;
  z-index: 800;
  background: white;
  border-top: 2px solid var(--gold);
  box-shadow: 0 16px 48px rgba(0,0,0,0.12);
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.18s ease, visibility 0.18s ease;
}
.has-mega:hover .mega-menu,
.has-mega.open .mega-menu {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
}
.mega-inner {
  max-width: var(--page-max);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 280px 1fr;
}
.mega-photo-col {
  position: relative;
  height: 300px;
  overflow: hidden;
  background: var(--linen);
}
.mega-photo-col img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.mega-photo-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.65) 0%, transparent 55%);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 24px;
}

.nav-hamburger.open span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.nav-hamburger.open span:nth-child(2) { opacity: 0; }
.nav-hamburger.open span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

.nav-drawer {
  display: none;
  position: fixed;
  top: 60px;
  left: 0; right: 0;
  background: white;
  border-top: 1px solid var(--linen);
  border-bottom: 2px solid var(--gold);
  padding: 0 24px 24px;
  z-index: 890;
  box-shadow: 0 8px 24px rgba(0,0,0,0.06);
  max-height: calc(100vh - 60px);
  overflow-y: auto;
}
.nav-drawer.open { display: block; }
.nav-drawer > ul { list-style: none; }
.drawer-item { border-bottom: 1px solid var(--linen); }
.drawer-item:last-of-type { border-bottom: none; }
.drawer-parent {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  background: none;
  border: none;
  cursor: pointer;
  font-family: var(--font-ui);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 1.8px;
  text-transform: uppercase;
  color: var(--near-black);
  padding: 14px 0;
  text-align: left;
}
.drawer-chevron {
  font-size: 16px;
  color: var(--sand);
  transition: transform 0.2s;
  line-height: 1;
}
.drawer-item.open .drawer-chevron { transform: rotate(90deg); }
.drawer-sub {
  list-style: none;
  display: none;
  padding: 0 0 16px 8px;
}
.drawer-item.open .drawer-sub { display: block; }
.drawer-sub li a {
  display: block;
  font-family: var(--font-body);
  font-size: 15px;
  color: var(--near-black);
  text-decoration: none;
  padding: 8px 0;
  border-bottom: 1px solid var(--linen);
}
.drawer-sub li:last-child a { border-bottom: none; }
.drawer-sub li a:hover { color: var(--dark-teal); }
.nav-drawer .drawer-tickets-btn {
  display: block;
  margin-top: 20px;
  font-family: var(--font-ui);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 2px;
  text-transform: uppercase;
  text-align: center;
  color: white;
  background: var(--dark-teal);
  text-decoration: none;
  padding: 14px;
  border-radius: 2px;
}

/* Progress bar — reading progress at very top of viewport */
#progress-bar {
  position: fixed;
  top: 0;
  left: 0;
  width: 0%;
  height: 3px;
  background: var(--gold);
  z-index: 1000;
  transition: width 0.1s linear;
}

/* ============================================
   3. HERO PATTERNS
   Generic split hero (text + image), category hero, hub hero,
   and the homepage overlay hero variant.
   ============================================ */

/* -- Blog post split hero (default for posts) -- */
.hero-split-wrapper {
  max-width: var(--page-max);
  margin: 0 auto;
  padding: 40px 24px 0;
}
.hero-split {
  display: grid;
  grid-template-columns: 1fr 460px;
  gap: 56px;
  align-items: center;
  padding-bottom: 40px;
  border-bottom: 1px solid var(--linen);
}
/* === HERO IMAGE WIDER ON DESKTOP (2026-05-30): 600px image ≥1200px; tablet keeps 460 so headline stays ~3 lines; mobile already full-width === */
@media (min-width: 1200px) {
  .hero-split { grid-template-columns: 1fr 640px; }
}
/* === HERO STACK ON NARROW TABLET (2026-05-30): 861-999px keep the hero stacked so long headlines don't jam (2-col there left only ~336px for text → 5-line headline). Image contained + aligned with title. === */
@media (min-width: 861px) and (max-width: 999px) {
  .hero-split { grid-template-columns: 1fr; gap: 0; padding-bottom: 28px; }
  .hero-split-image { margin: 24px 0 0; width: 100%; border-radius: 2px; }
}
.hero-split-text { min-width: 0; }
.hero-split-image {
  height: 480px;
  overflow: hidden;
  border-radius: 2px;
  flex-shrink: 0;
}
.hero-split-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

/* Post header (lives inside .hero-split-text) */
.post-header { padding: 0; }

.breadcrumbs {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 24px;
  font-family: var(--font-ui);
  font-size: 10px;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  line-height: 1.4;
}
.breadcrumbs a,
.breadcrumbs .current {
  padding: 7px 2px;
  display: inline-block;
}
.breadcrumbs a {
  color: var(--sand);
  text-decoration: none;
}
.breadcrumbs a:hover { color: var(--dark-teal); }
.breadcrumbs .sep {
  color: var(--sand);
  opacity: 0.5;
  font-size: 11px;
}
.breadcrumbs .current {
  color: var(--near-black);
  font-weight: 500;
}

.post-eyebrow {
  font-family: var(--font-ui);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 10px;
  display: block;
}
.post-title {
  font-family: var(--font-headline);
  font-size: 40px;
  font-weight: 500;
  line-height: 1.2;
  color: var(--near-black);
  margin-bottom: 20px;
}
.post-deck {
  font-family: var(--font-body);
  font-size: 19px;
  font-style: italic;
  line-height: 1.6;
  color: var(--sand);
  margin-bottom: 28px;
  border-left: 2px solid var(--gold);
  padding-left: 16px;
}

/* Meta + author single row */
.post-meta-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  padding: 14px 0;
  border-top: 1px solid var(--linen);
  border-bottom: 1px solid var(--linen);
  position: relative;
}
.meta-item {
  font-family: var(--font-ui);
  font-size: 11px;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--sand);
}
.meta-item a { color: var(--dark-teal); text-decoration: none; }
.meta-item a:hover { text-decoration: underline; }
.meta-dot {
  width: 3px;
  height: 3px;
  background: var(--sand);
  opacity: 0.5;
  border-radius: 50%;
  flex-shrink: 0;
}

/* -- Category hero (lightweight categories) -- */
.category-hero-wrapper {
  max-width: var(--page-max);
  margin: 0 auto;
  padding: 40px 24px 24px;
}
.category-hero {
  display: grid;
  grid-template-columns: 1fr 460px;
  gap: 56px;
  align-items: center;
}
.category-hero-text { min-width: 0; }
.category-hero h1 {
  font-family: var(--font-headline);
  font-size: 56px;
  font-weight: 500;
  line-height: 1.05;
  color: var(--near-black);
  margin-bottom: 18px;
  letter-spacing: -0.5px;
}
.category-hero-deck p {
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.65;
  color: var(--charcoal);
  margin-bottom: 14px;
}
.category-hero-deck p:last-child { margin-bottom: 0; }
.category-hero-deck a {
  color: var(--dark-teal);
  text-decoration: underline;
  text-underline-offset: 2px;
  font-weight: 500;
}
.category-hero-image {
  height: 380px;
  overflow: hidden;
  border-radius: 3px;
  background: var(--linen);
}
.category-hero-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* -- Hub hero (hotels hub) — same pattern, larger H1, eyebrow -- */
.hub-hero-wrapper {
  max-width: var(--page-max);
  margin: 0 auto;
  padding: 48px 24px 40px;
}
.hub-hero {
  display: grid;
  grid-template-columns: 1fr 480px;
  gap: 56px;
  align-items: center;
}
.hub-hero-eyebrow {
  display: block;
  font-family: var(--font-ui);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 16px;
}
.hub-hero h1 {
  font-family: var(--font-headline);
  font-size: 56px;
  font-weight: 500;
  line-height: 1.05;
  color: var(--near-black);
  margin-bottom: 22px;
  letter-spacing: -0.5px;
}
.hub-hero h1 em { font-style: italic; font-weight: 400; color: var(--dark-teal); }
.hub-hero-deck p {
  font-family: var(--font-body);
  font-size: 18px;
  line-height: 1.6;
  color: var(--charcoal);
  margin-bottom: 14px;
}
.hub-hero-deck p:last-child { margin-bottom: 0; }
.hub-hero-deck strong { color: var(--near-black); font-weight: 600; }
.hub-hero-image {
  height: 460px;
  overflow: hidden;
  border-radius: 3px;
  background: var(--linen);
}
.hub-hero-image img { width: 100%; height: 100%; object-fit: cover; }

/* -- Homepage overlay hero — full-bleed photo, dark card anchored left -- */
.hero {
  position: relative;
  background: var(--near-black);
  overflow: hidden;
  min-height: 460px;
}
.hero-photo {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: 63% 47%;
}
.hero-photo-note {
  position: absolute;
  top: 16px;
  right: 16px;
  background: rgba(0,0,0,0.55);
  color: #fff;
  padding: 6px 14px;
  font-family: var(--font-ui);
  font-size: 10px;
  letter-spacing: 1px;
  text-transform: uppercase;
  border-radius: 3px;
  z-index: 5;
  white-space: nowrap;
}
.hero-container {
  position: relative;
  min-height: 460px;
  z-index: 2;
}
.hero-card {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 54%;
  max-width: 720px;
  background: var(--warm-white);
  padding: 64px 60px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
@media (min-width: 1200px) {
  .hero-card {
    padding-left: calc((100vw - 1200px) / 2 + 60px);
    width: calc(54% + (100vw - 1200px) / 2);
  }
}
.hero-text {
  color: var(--near-black);
  margin-bottom: 28px;
  max-width: 540px;
}
.hero-eyebrow {
  font-family: var(--font-ui);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: var(--teal);
  margin-bottom: 18px;
  display: block;
}
.hero-h1 {
  font-family: var(--font-head);
  font-size: clamp(30px, 3.6vw, 44px);
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: -0.4px;
  color: var(--near-black);
  margin-bottom: 20px;
}
.hero-h1 em {
  font-style: italic;
  font-weight: 400;
  color: var(--sand);
}
.hero-deck {
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.65;
  color: var(--charcoal);
  margin-bottom: 16px;
}
.hero-byline {
  font-family: var(--font-body);
  font-size: 13px;
  font-style: italic;
  color: var(--sand);
  margin-bottom: 0;
}
.hero-pillars {
  display: flex;
  flex-direction: column;
  gap: 0;
  max-width: 560px;
}
.pillar-card {
  background: transparent;
  border-top: 1px solid var(--border);
  padding: 18px 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  transition: padding-left 0.2s, border-color 0.2s;
}
.pillar-card:hover {
  padding-left: 4px;
  border-top-color: var(--gold);
}
.pillar-card:last-child {
  border-bottom: 1px solid var(--border);
}
.pillar-card-label {
  font-family: var(--font-head);
  font-size: 19px;
  font-weight: 500;
  line-height: 1.3;
  color: var(--near-black);
}
.pillar-card-label strong {
  font-weight: 500;
  color: var(--teal);
}
.pillar-card-arrow {
  font-family: var(--font-ui);
  font-size: 18px;
  color: var(--teal);
  flex-shrink: 0;
}

/* ============================================
   4. STICKY TOC BAR (in 177621, also kept here as safety)
   ============================================ */

/* ============================================
   5. ARTICLE BODY COMPONENTS — restored May 20 (partial duplicate of 177621)
   ============================================ */
.post-body p { margin-bottom: 22px; }
.post-body h2 {
  font-family: var(--font-headline);
  font-size: 28px;
  font-weight: 500;
  line-height: 1.3;
  color: var(--near-black);
  margin-top: 56px;
  margin-bottom: 20px;
}
.post-body h2.has-eyebrow { margin-top: 4px; }
.h2-eyebrow {
  display: block;
  font-family: var(--font-ui);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: var(--gold);
  margin-top: 60px;
  margin-bottom: 4px;
}
.post-body h3 {
  font-family: var(--font-headline);
  font-size: 22px;
  font-weight: 500;
  line-height: 1.3;
  color: var(--near-black);
  margin-top: 36px;
  margin-bottom: 14px;
}
.post-body h4 {
  font-family: var(--font-ui);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--sand);
  margin-top: 28px;
  margin-bottom: 10px;
}
.post-body a {
  color: var(--near-black);
  text-decoration: underline;
  text-decoration-color: var(--gold);
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
  transition: color 0.2s;
}
.post-body a:hover { color: var(--dark-teal); }
.post-body ul,
.post-body ol { margin: 0 0 22px 22px; }
.post-body li { margin-bottom: 8px; }
.post-body blockquote {
  margin: 36px 0;
  padding: 24px 28px;
  border-left: 3px solid var(--gold);
  background: var(--warm-white);
  font-style: italic;
  font-size: 18px;
  line-height: 1.65;
  color: var(--charcoal);
}
.post-body blockquote cite {
  display: block;
  margin-top: 12px;
  font-family: var(--font-ui);
  font-size: 10px;
  font-style: normal;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--sand);
}
.post-body figure { margin: 36px 0; }
.post-body figure img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 2px;
}
.post-body figcaption {
  font-family: var(--font-ui);
  font-size: 11px;
  color: var(--sand);
  font-style: italic;
  margin-top: 8px;
  text-align: right;
}
.info-box {
  margin: 32px 0;
  padding: 20px 24px;
  background: white;
  border-left: 2px solid var(--gold);
}
.info-box.caution { border-left-color: var(--near-black); }
.info-box-label {
  font-family: var(--font-ui);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 8px;
  display: block;
}
.info-box.caution .info-box-label { color: var(--near-black); }
.info-box p {
  font-size: 15px;
  line-height: 1.6;
  color: var(--charcoal);
  margin: 0;
}
.highlight-box {
  background: var(--warm-white);
  border: 1px solid var(--linen);
  padding: 28px 32px;
  margin: 36px 0;
  border-radius: 2px;
}
.highlight-box-label {
  font-family: var(--font-ui);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--sand);
  margin-bottom: 14px;
  display: block;
}
.highlight-box ul { margin: 0 0 0 18px; }
.highlight-box li {
  font-size: 15px;
  line-height: 1.6;
  color: var(--charcoal);
  margin-bottom: 6px;
}
.quick-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  margin: 32px 0;
  background: var(--warm-white);
  border-radius: 3px;
  overflow: hidden;
  border: 1px solid var(--linen);
}
.quick-fact {
  flex: 1;
  min-width: 120px;
  padding: 14px 18px;
  border-right: 1px solid var(--border-light);
}
.quick-fact:last-child { border-right: none; }
.quick-fact-label {
  font-family: var(--font-ui);
  font-size: 10px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  color: var(--sand);
  margin-bottom: 4px;
  display: block;
}
.quick-fact-value {
  font-family: var(--font-body);
  font-size: 15px;
  color: var(--near-black);
}
.cta-block {
  margin: 48px 0;
  padding: 32px 36px;
  border-radius: 2px;
}
.cta-block.cta-teal { background: var(--dark-teal); color: white; }
.cta-block.cta-warm { background: var(--warm-white); border: 1px solid var(--linen); }
.cta-eyebrow {
  font-family: var(--font-ui);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  margin-bottom: 10px;
  display: block;
}
.cta-teal .cta-eyebrow { color: rgba(255,255,255,0.55); }
.cta-warm .cta-eyebrow { color: var(--gold); }
.cta-heading {
  font-family: var(--font-headline);
  font-size: 22px;
  font-weight: 500;
  line-height: 1.3;
  margin-bottom: 10px;
}
.cta-teal .cta-heading { color: white; }
.cta-warm .cta-heading { color: var(--near-black); }
.cta-body {
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.65;
  margin-bottom: 20px;
}
.cta-teal .cta-body { color: rgba(255,255,255,0.8); }
.cta-warm .cta-body { color: var(--charcoal); }
.verdict-card {
  margin: 48px 0;
  padding: 32px 36px;
  background: var(--warm-white);
  border: 1px solid var(--linen);
  border-radius: 2px;
}
.verdict-label {
  font-family: var(--font-ui);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--antique-gold);
  margin-bottom: 16px;
  display: block;
}
.verdict-score { display: flex; align-items: baseline; gap: 6px; margin-bottom: 14px; }
.verdict-number {
  font-family: var(--font-headline);
  font-size: 52px;
  font-weight: 500;
  line-height: 1;
  color: var(--near-black);
}
.verdict-denom {
  font-family: var(--font-ui);
  font-size: 14px;
  color: var(--sand);
}
.verdict-summary {
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.65;
  color: var(--charcoal);
  margin-bottom: 20px;
}
.verdict-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 32px; }
.verdict-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--border-light);
  font-family: var(--font-body);
  font-size: 14px;
  color: var(--charcoal);
}
.verdict-row-score {
  font-family: var(--font-ui);
  font-size: 12px;
  font-weight: 600;
  color: var(--near-black);
}

/* ============================================
   6. SIDEBAR COMPONENTS — restored May 20
   ============================================ */
.post-layout {
  max-width: var(--page-max);
  margin: 40px auto 0;
  padding: 0 24px;
  display: grid;
  grid-template-columns: var(--content-width) var(--sidebar-width);
  gap: 40px;
  align-items: stretch;
}
.toc-sidebar { width: var(--sidebar-width); height: 100%; }
.toc-sticky-block { position: sticky; top: 76px; padding-top: 4px; }
.sidebar-about {
  margin: 0 0 20px;
  padding: 16px;
  background: #fff;
  border: 1px solid var(--border-light);
  border-top: 3px solid var(--gold);
  border-radius: 6px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
  gap: 8px;
}
.sidebar-about-photo {
  width: 100%;
  aspect-ratio: 16 / 9;
  max-height: 160px;
  border-radius: 4px;
  background-size: cover;
  background-position: center 20%;
  background-color: var(--linen);
  margin-bottom: 14px;
}
.sidebar-cta {
  margin: 20px 0 4px;
  border: 1px solid var(--border-light);
  border-top: 3px solid var(--gold);
  border-radius: 6px;
  padding: 16px;
  background: #fff;
}
.sidebar-cta-label {
  font-family: var(--font-ui);
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: var(--dark-teal);
  display: block;
  margin-bottom: 6px;
}
.sidebar-cta-title {
  font-family: var(--font-head);
  font-size: 16px;
  font-weight: 500;
  color: var(--near-black);
  line-height: 1.3;
  margin-bottom: 6px;
}
.sidebar-cta-body { font-size: 13px; line-height: 1.55; color: var(--charcoal); margin-bottom: 14px; }
.sidebar-cta-btn {
  display: block;
  text-align: center;
  background: var(--dark-teal);
  color: #fff;
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  padding: 10px 16px;
  border-radius: 4px;
  text-decoration: none;
  transition: background 0.2s;
}
.sidebar-cta-photo {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  max-height: 150px;
  object-fit: cover;
  border-radius: 4px;
  background: var(--linen);
  margin-bottom: 14px;
}
.sidebar-cta-coupon {
  margin: 0 0 14px;
  text-align: center;
}
.sidebar-cta-btn + .sidebar-cta-btn {
  margin-top: 8px;
}
.sidebar-cta-btn::before{content:"";display:inline-block;width:12px;height:12px;background-color:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zM1 2v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.58-6.49c.08-.14.12-.31.12-.48 0-.55-.45-1-1-1H5.21l-.94-2H1zm16 16c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zM1 2v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.58-6.49c.08-.14.12-.31.12-.48 0-.55-.45-1-1-1H5.21l-.94-2H1zm16 16c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2z'/%3E%3C/svg%3E") center/contain no-repeat;}.sidebar-cta-btn{display:flex;align-items:center;justify-content:center;gap:7px;}.sidebar-cta-btn:hover{background:#1f4a4d;}
.sidebar-cta-btn--alt {
  background: transparent;
  color: var(--dark-teal);
  border: 1px solid var(--dark-teal);
}
.sidebar-cta-btn--alt:hover {
  background: var(--dark-teal);
  color: #fff;
}
.sidebar-cta-seeall {
  display: block;
  text-align: center;
  margin-top: 12px;
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--dark-teal);
  text-decoration: none;
}
.sidebar-cta-seeall:hover {
  color: var(--gold-text);
}
/* Hotel roundup buttons (.hotel__btn, per-post Kadence component) must keep
   white text on their dark fill — beat the single-post Element 177621 teal
   link rule, which the button's own color:#fff can't outrank on specificity. */
.entry-content a.hotel__btn,
.post-body a.hotel__btn,
.inside-article a.hotel__btn {
  color: #fff !important;
}
/* Hide the single-post sidebar on phones — it stacks above the footer and its
   booking-tool CTA is already covered by the sitewide footer CTA. (Katie 2026-06-15) */
@media (max-width: 768px) {
  .single .sidebar.widget-area { display: none !important; }
}
.share-sidebar { margin-top: 36px; }
.share-buttons { display: flex; flex-direction: column; gap: 8px; }
.share-btn {
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--near-black);
  text-decoration: none;
  padding: 9px 14px;
  border: 1px solid var(--border-light);
  border-radius: 2px;
  display: flex;
  align-items: center;
  gap: 8px;
  transition: border-color 0.2s, color 0.2s;
  cursor: pointer;
  background: none;
  width: 100%;
  text-align: left;
}
.share-btn:hover { border-color: var(--dark-teal); color: var(--dark-teal); }

/* ============================================
   7. TRIP PLANNING TOOLKIT — restored May 20
   ============================================ */
.trip-toolkit {
  margin: 48px 0 40px;
  padding: 28px 28px 24px;
  background: #eef3f1;
  border-radius: 4px;
  border: 1px solid #dde7e3;
}
.toolkit-title {
  display: block;
  font-family: var(--font-headline);
  font-size: 22px;
  font-weight: 500;
  color: var(--near-black);
  line-height: 1.3;
  margin-bottom: 8px;
}
.toolkit-title em { font-style: italic; color: var(--dark-teal); }
.toolkit-deck {
  font-family: var(--font-body);
  font-size: 15px;
  color: var(--charcoal);
  line-height: 1.55;
  margin-bottom: 20px;
}
.toolkit-grid { display: grid; grid-template-columns: 1fr; gap: 16px; }
@media (min-width: 600px) {
  .toolkit-grid { grid-template-columns: 1fr 1fr; }
  .toolkit-card.toolkit-card-wide { grid-column: 1 / -1; }
}
.toolkit-card {
  background: #fff;
  border-radius: 3px;
  padding: 16px 18px 14px;
  border: 1px solid #e6ede9;
}

/* ============================================
   8. AUTHOR BIO + PER-POST HOVER TOOLTIP — full restore May 20
   ============================================ */
.author-strip-dropdown-wrap { position: relative; }
.author-trigger {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  width: fit-content;
  background: none;
  border: none;
  padding: 0;
  text-align: left;
  font: inherit;
  min-height: 28px;
}
.author-avatar,
.author-avatar-placeholder {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  flex-shrink: 0;
}
.author-avatar {
  object-fit: cover;
  border: 1px solid var(--linen);
}
.author-avatar-placeholder {
  background: var(--dark-teal);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-headline);
  font-size: 13px;
  color: white;
  font-weight: 500;
}
@media (min-width: 820px) {
  .author-trigger { gap: 12px; min-height: 40px; }
  .author-avatar,
  .author-avatar-placeholder {
    width: 40px;
    height: 40px;
  }
  .author-avatar-placeholder { font-size: 17px; }
}
.author-name {
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--near-black);
}
.author-role {
  font-family: var(--font-ui);
  font-size: 10px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--sand);
  display: block;
  margin-top: 1px;
}
.author-chevron {
  font-size: 10px;
  color: var(--sand);
  transition: transform 0.25s ease;
  margin-left: 6px;
  user-select: none;
}
.author-trigger.open .author-chevron { transform: rotate(180deg); }
.author-post-note {
  background: white;
  border-left: 2px solid var(--gold);
  padding: 12px 16px;
  margin-bottom: 16px;
  border-radius: 0 2px 2px 0;
}
.author-post-note-label {
  font-family: var(--font-ui);
  font-size: 9px;
  font-weight: 500;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--gold);
  display: block;
  margin-bottom: 5px;
}
.author-post-note p {
  font-family: var(--font-body);
  font-size: 14px;
  font-style: italic;
  line-height: 1.6;
  color: var(--charcoal);
  margin: 0;
}
.author-dropdown {
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  position: absolute;
  left: 0;
  top: calc(100% + 8px);
  width: 380px;
  max-width: calc(100vw - 48px);
  background: white;
  border: 1px solid var(--linen);
  border-radius: 3px;
  box-shadow: 0 8px 32px rgba(0,0,0,0.10);
  padding: 24px 28px;
  z-index: 900;
  transition: opacity 0.2s ease, visibility 0.2s ease;
}
@media (hover: hover) {
  .author-strip-dropdown-wrap:hover .author-dropdown {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
  }
}
.author-dropdown.open {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
}
.author-dropdown-inner { display: block; }
.author-dropdown-avatar {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  object-fit: cover;
  border: 1.5px solid var(--linen);
  flex-shrink: 0;
}
.author-dropdown-avatar-placeholder {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: var(--dark-teal);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-family: var(--font-headline);
  font-size: 26px;
  color: white;
  font-weight: 500;
}
.author-dropdown-name {
  font-family: var(--font-headline);
  font-size: 18px;
  font-weight: 500;
  color: var(--near-black);
  margin-bottom: 6px;
}
.author-dropdown-bio {
  font-family: var(--font-body);
  font-size: 14px;
  line-height: 1.65;
  color: var(--charcoal);
  margin-bottom: 12px;
}
.author-dropdown-links { display: flex; gap: 14px; }
.author-dropdown-links a {
  font-family: var(--font-ui);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--dark-teal);
  text-decoration: none;
  border-bottom: 1px solid var(--gold);
  padding-bottom: 1px;
}
.author-dropdown-links a:hover { color: var(--near-black); }
.author-bio-full {
  max-width: var(--content-width);
  margin: 0 auto;
  padding: 40px 32px;
  display: flex;
  gap: 28px;
  align-items: flex-start;
  background: var(--warm-white);
  border-radius: 3px;
}
.author-bio-avatar {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid var(--linen);
  flex-shrink: 0;
}
.author-bio-avatar-placeholder {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: var(--dark-teal);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-family: var(--font-headline);
  font-size: 30px;
  color: white;
  font-weight: 500;
}
.author-bio-eyebrow {
  font-family: var(--font-ui);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--sand);
  margin-bottom: 6px;
  display: block;
}
.author-bio-name {
  font-family: var(--font-headline);
  font-size: 22px;
  font-weight: 500;
  color: var(--near-black);
  margin-bottom: 12px;
}
.author-bio-text {
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.65;
  color: var(--charcoal);
  margin-bottom: 16px;
}
.author-bio-links { display: flex; gap: 16px; flex-wrap: wrap; }
.author-bio-links a {
  font-family: var(--font-ui);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--dark-teal);
  text-decoration: none;
  border-bottom: 1px solid var(--gold);
  padding-bottom: 1px;
}
.author-bio-links a:hover { color: var(--near-black); }

/* ============================================
   9. RELATED POSTS GRID — restored May 20
   ============================================ */
.related-card { text-decoration: none; display: block; }
.related-card-img {
  width: 100%;
  height: 200px;
  object-fit: cover;
  border-radius: 2px;
  display: block;
  margin-bottom: 14px;
  background: var(--linen);
  transition: opacity 0.2s;
}
.related-card-category {
  font-family: var(--font-ui);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--gold-text);
  margin-bottom: 6px;
  display: block;
}
/* ADA contrast: related-strip eyebrows were var(--gold) #C4A265 (2.4:1 on white). The source copies live in the ljm-single-post-css element; this overrides them (177447 loads later). Update the source to var(--gold-text) at CSS consolidation. */
.related-eyebrow { color: var(--gold-text); }
.related-card-title {
  font-family: var(--font-headline);
  font-size: 18px;
  font-weight: 500;
  line-height: 1.3;
  color: var(--near-black);
  margin-bottom: 8px;
  transition: color 0.2s;
}
.related-card-date { display: none !important; } /* date removed — declutter, 2026-06-22 */

/* === RELATED POSTS header — mobile stack so title + view-all don't collide; link drops to the right (2026-06-22) === */
@media (max-width: 768px) {
  .related-posts .related-header { flex-direction: column !important; align-items: flex-start !important; gap: 6px; }
  .related-posts .related-view-all { align-self: flex-end !important; margin-top: 2px; }
}

/* === TRIP TOOLKIT — full-bleed shaded box on mobile (2026-06-22) === */
@media (max-width: 768px) {
  .trip-toolkit {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    border-radius: 0 !important;
    border-left: 0 !important;
    border-right: 0 !important;
    padding-left: 30px !important;
    padding-right: 30px !important;
  }
}

/* ============================================
   10. LOCKED FOOTER STACK
   newsletter → cred-strip → footer-cta-strip → site-footer
   Canonical source: blog-post-template (most current).
   ============================================ */

/* Newsletter — warm-white background, gold rule, teal CTA button */
.newsletter-section {
  background: var(--warm-white);
  padding: 64px 32px;
  text-align: center;
}
.newsletter-eyebrow {
  font-family: var(--font-ui);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 16px;
  display: block;
}
.newsletter-heading {
  font-family: var(--font-head);
  font-size: 32px;
  font-weight: 500;
  color: var(--near-black);
  margin-bottom: 12px;
  line-height: 1.25;
}
.newsletter-rule {
  width: 40px;
  height: 1px;
  background: var(--gold);
  margin: 16px auto;
}
.newsletter-body {
  font-family: var(--font-body);
  font-size: 16px;
  color: var(--charcoal);
  line-height: 1.65;
  max-width: 480px;
  margin: 0 auto 28px;
}
.newsletter-form {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  max-width: 480px;
  margin: 0 auto;
}
.newsletter-form .newsletter-consent { flex: 0 0 100%; width: 100%; margin-top: 14px; justify-content: center; }
.newsletter-form .newsletter-input { flex: 1 1 auto; min-width: 0; }
.newsletter-form .newsletter-btn { flex: 0 0 auto; }
.newsletter-input {
  flex: 1;
  padding: 13px 18px;
  font-family: var(--font-body);
  font-size: 15px;
  border: 1px solid var(--border);
  border-right: none;
  background: #fff;
  color: var(--near-black);
  outline: none;
  border-radius: 2px 0 0 2px;
}
.newsletter-input::placeholder { color: rgba(0,0,0,0.35); }
.newsletter-btn {
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 2px;
  text-transform: uppercase;
  background: var(--teal);
  color: #fff;
  border: none;
  padding: 13px 22px;
  cursor: pointer;
  border-radius: 0 2px 2px 0;
  transition: background 0.2s;
  white-space: nowrap;
}
.newsletter-btn:hover { background: #1e4a4e; }

/* Credential strip */
.cred-strip {
  background: #fff;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  padding: 20px 32px;
}

/* === Cred-strip logo sizing override (supersedes footer Element 177445 meta sizing; unify at 177447 reconciliation) === */
body .cred-strip-inner { padding-top: 15px !important; padding-bottom: 15px !important; column-gap: 28px !important; }
body .cred-strip-inner .cred-logo img { max-height: 80px !important; max-width: 158px !important; }
body .cred-strip-inner .cred-logo:nth-child(4) img { max-height: 92px !important; }
@media (min-width: 600px) and (max-width: 1023px) {
  body .cred-strip-inner .cred-logo img { max-height: 66px !important; max-width: 125px !important; }
  body .cred-strip-inner .cred-logo:nth-child(4) img { max-height: 76px !important; }
}
@media (max-width: 599px) {
  body .cred-strip-inner { grid-template-columns: 1fr 1fr 1fr !important; column-gap: 16px !important; row-gap: 14px !important; padding-top: 8px !important; padding-bottom: 8px !important; padding-left: 0 !important; padding-right: 0 !important; justify-content: center !important; }
  body .cred-strip-inner .cred-logo img { max-height: 58px !important; max-width: 102px !important; }
  body .cred-strip-inner .cred-logo:nth-child(4) img { max-height: 66px !important; }
  .cred-strip { padding-left: 16px !important; padding-right: 16px !important; }
}
/* === end cred-strip override === */

/* De-dupe author archives: hide the native .author-info box above the post grid (the ljm-author-archive snippet's hero+bio is canonical). Scoped to author pages only so single-post author boxes are unaffected. */
body.author .author-info { display: none !important; }

/* Hotel booking CTA strip (teal band) */
.footer-cta-strip {
  background: var(--teal);
  padding: 40px 32px;
  text-align: center;
}
.footer-cta-strip-inner {
  max-width: var(--page-max);
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
}
.footer-cta-eyebrow {
  font-family: var(--font-ui);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: rgba(255,255,255,0.8);
  display: block;
  margin-bottom: 6px;
}
.footer-cta-heading {
  font-family: var(--font-head);
  font-size: 22px;
  font-weight: 500;
  color: white;
  margin-bottom: 4px;
}
.footer-cta-sub {
  font-family: var(--font-body);
  font-size: 14px;
  color: rgba(255,255,255,0.85);
}
.footer-cta-btn {
  display: inline-block;
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 2px;
  text-transform: uppercase;
  text-decoration: none;
  padding: 13px 28px;
  background: white;
  color: var(--teal);
  border-radius: 2px;
  white-space: nowrap;
  transition: background 0.2s;
  flex-shrink: 0;
}
.footer-cta-btn:hover { background: var(--linen); }

/* Dark site footer */
.site-footer {
  background: var(--near-black);
  color: #d8d4cf;
  font-family: var(--font-ui);
  padding: 72px 32px 32px;
}
.site-footer a { color: inherit; text-decoration: none; transition: color 0.15s; }
.site-footer a:hover { color: var(--gold); }
.footer-top {
  max-width: var(--page-max);
  margin: 0 auto;
  padding-bottom: 48px;
  border-bottom: 1px solid rgba(255,255,255,0.10);
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  text-align: center;
}
.footer-brand {
  font-family: var(--font-head);
  font-size: 28px;
  font-weight: 500;
  color: #fff;
  letter-spacing: 0.3px;
}
.footer-brand-tagline {
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: var(--gold);
  margin-top: 8px;
}
.footer-social {
  display: flex;
  gap: 14px;
  justify-content: center;
  flex-wrap: wrap;
}
.footer-social a {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255,255,255,0.08);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #e0dcd6;
  transition: background 0.15s, color 0.15s;
}
.footer-social a:hover { background: var(--gold); color: var(--near-black); }
.footer-social svg { width: 16px; height: 16px; fill: currentColor; }
.footer-nav {
  max-width: var(--page-max);
  margin: 0 auto;
  padding: 48px 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 36px;
}
.footer-col-heading {
  font-family: var(--font-head);
  font-size: 18px;
  font-weight: 500;
  color: #fff;
  margin-bottom: 16px;
  display: block;
  letter-spacing: 0.3px;
}
.footer-col-heading::after {
  content: '';
  display: block;
  width: 32px;
  height: 2px;
  background: var(--gold);
  margin-top: 10px;
}
.footer-col-heading a { color: #fff; }
.footer-col-heading a:hover { color: var(--gold); }
.footer-col-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 9px;
}
.footer-col-list a {
  font-family: var(--font-ui);
  font-size: 15px;
  font-weight: 400;
  color: #e8e4df;
  line-height: 1.5;
}
.footer-trust {
  max-width: var(--page-max);
  margin: 0 auto;
  padding: 32px 0 24px;
  border-top: 1px solid rgba(255,255,255,0.10);
  text-align: center;
}
.footer-trust-line {
  font-family: var(--font-ui);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: #f0ece7;
  margin-bottom: 12px;
}
.footer-trust-line .sep { color: #6f6b66; margin: 0 8px; }
.footer-trust-line .reg { font-size: 9px; vertical-align: super; }
.footer-trust-address {
  font-family: var(--font-ui);
  font-size: 13px;
  color: #b0aca7;
  line-height: 1.6;
  margin-bottom: 10px;
}
.footer-trust-editor {
  font-family: var(--font-ui);
  font-size: 12px;
  color: #b0aca7;
  letter-spacing: 0.5px;
}
.footer-trust-editor strong { color: #f0ece7; font-weight: 600; }
.footer-bottom {
  background: transparent;
  color: #a09b95;
  padding: 20px 0 0;
  margin-top: 24px;
  border-top: 1px solid #3a3633;
  font-size: 12px;
}
.footer-bottom-inner {
  max-width: var(--page-max);
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  font-family: var(--font-ui);
  font-size: 11px;
}
.footer-bottom-links {
  display: flex;
  gap: 0;
  flex-wrap: wrap;
  justify-content: center;
}
.footer-bottom-links a {
  color: #b8b3ad;
  padding: 0 12px;
  border-left: 1px solid #3a3633;
}
.footer-bottom-links a:first-child { border-left: none; }
.footer-bottom-links a:hover { color: var(--gold); }
.footer-copyright { letter-spacing: 0.3px; }

/* Section 11 (Category Page Components) MOVED to GP Element 177748 "LJM: Archive CSS" — fires on general:archive */

/* ============================================
   Section 12 (Hub Page Components) MOVED to GP Element 177679
   "LJM: Hub Pages CSS" on May 20, 2026.
   Display rule: taxonomy:category (all category archives).
   ============================================ */

/* ============================================
   13. MOBILE MEDIA QUERIES (consolidated)
   Breakpoints ordered: 1200 → 1100 → 900 → 860 → 820 → 768 → 720 → 700 → 600 → 540 → 480
   ============================================ */

@media (max-width: 1100px) {
  .post-layout {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .toc-sidebar { display: none; }
  .related-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 1024px) {
  .toc-inline { display: block; }
}

@media (max-width: 900px) {
  .related-grid { grid-template-columns: repeat(2, 1fr); }
  .cat-grid { grid-template-columns: repeat(2, 1fr); }
  .route-grid { grid-template-columns: 1fr 1fr; }
  .destinations-grid { grid-template-columns: repeat(2, 1fr); }
  .recent-grid { grid-template-columns: repeat(2, 1fr); }
  .hub-hero { grid-template-columns: 1fr; gap: 0; }
  .hub-hero h1 { font-size: 40px; }
  .hub-hero-image { height: 280px; border-radius: 0; margin: 28px -24px 0; width: calc(100% + 48px); }
  .hero-card { width: 65%; padding: 48px 36px; }
}

@media (max-width: 860px) {
  .hero-split {
    grid-template-columns: 1fr;
    gap: 0;
    padding-bottom: 28px;
  }
  .hero-split-image {
    height: 260px;
    border-radius: 0;
    margin: 24px -12px 0;
    width: calc(100% + 24px);
  }
  .category-hero { grid-template-columns: 1fr; gap: 0; }
  .category-hero h1 { font-size: 38px; }
  .category-hero-image {
    height: 240px;
    border-radius: 0;
    margin: 24px -24px 0;
    width: calc(100% + 48px);
  }
  .footer-cta-strip-inner { flex-direction: column; align-items: flex-start; }
  .footer-cta-btn { width: 100%; text-align: center; }
  .footer-nav-grid { grid-template-columns: 1fr 1fr; gap: 28px; }
  .footer-top { flex-direction: column; }
  .nav-links { display: none; }
}

@media (max-width: 820px) {
  .site-topbar { display: none; }
  .nav-links > li:not(:has(.nav-tickets-btn)) { display: none; }
  .nav-hamburger { display: flex; padding-left: 14px; margin-left: 4px; }
  .site-nav-inner { padding: 0 16px; gap: 14px; }
  .nav-links { gap: 0; margin: 0; }
  .nav-links .nav-tickets-btn {
    font-size: 10px;
    letter-spacing: 1.4px;
    padding: 7px 14px;
  }
}

@media (max-width: 800px) {
  .cred-brand-list { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 768px) {
  .post-title { font-size: 30px; }
  .post-layout { padding: 0 20px; }
  .hero-split-wrapper { padding: 0; }
  .author-dropdown-inner { flex-direction: column; }
  .related-grid { grid-template-columns: 1fr; }
  .newsletter-form { flex-direction: column; }
  .newsletter-input { border-right: 1px solid var(--border); border-radius: 2px; }
  .newsletter-btn { border-radius: 2px; }
  .verdict-grid { grid-template-columns: 1fr; }
  .quick-facts { flex-direction: column; }
  .quick-fact { border-right: none; border-bottom: 1px solid var(--border-light); }
}

@media (max-width: 740px) {
  .mv-ad-placeholder.content-ad {
    max-width: 300px;
    height: 250px;
  }
}

@media (max-width: 720px) {
  .cred-tier-3-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 700px) {
  .toc-bar-share { display: none; }
  .footer-cta-strip-inner { flex-direction: column; align-items: flex-start; }
  .footer-cta-btn { width: 100%; text-align: center; }
  .booking-paths { grid-template-columns: 1fr; gap: 14px; }
  .about-inner { grid-template-columns: 1fr; gap: 28px; text-align: center; }
  .hero-card {
    position: relative;
    width: 100%;
    max-width: none;
    padding: 40px 24px;
  }
  .hero-container { min-height: auto; }
  .hero { min-height: auto; }
  .hero-photo { position: relative; height: 320px; }
}

@media (max-width: 600px) {
  .toc-bar-dropdown-inner { columns: auto; }
  .toc-bar-inner { padding: 0 20px; }
  .breadcrumbs { font-size: 9.5px; letter-spacing: 0.6px; gap: 4px; }
  .trip-toolkit { padding: 22px 18px 18px; margin: 36px 16px; }
  .toolkit-title { font-size: 19px; }
  .category-ticket-banner-inner { flex-direction: column; align-items: flex-start; }
  .category-banner-btn { width: 100%; text-align: center; }
}

@media (max-width: 560px) {
  .cat-grid { grid-template-columns: 1fr; gap: 28px; }
}

@media (max-width: 540px) {
  .related-grid { grid-template-columns: 1fr; }
  .route-grid { grid-template-columns: 1fr; }
  .destinations-grid { grid-template-columns: 1fr; }
  .recent-grid { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
  .cred-brand-list { grid-template-columns: 1fr; }
  .cred-tier-3-grid { grid-template-columns: 1fr; }
  .footer-nav-grid { grid-template-columns: 1fr; }
  .footer-bottom { flex-direction: column; align-items: flex-start; }
}

/* TOC dropdown — tighter cap on mobile to leave room for Mediavine adhesion */
@media (max-width: 700px) {
  .toc-bar-dropdown-inner {
    max-height: calc(100vh - 260px);
  }
}

/* Footer nav grid + responsive footer-top columns */
@media (min-width: 600px) {
  .footer-nav { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 700px) {
  .footer-top {
    grid-template-columns: 1fr auto;
    text-align: left;
    align-items: center;
  }
  .footer-social { justify-content: flex-end; }
  .footer-bottom-inner { flex-direction: row; justify-content: space-between; }
  .about-strip-inner {
    grid-template-columns: 160px 1fr;
    gap: 48px;
    text-align: left;
  }
}
@media (min-width: 800px) {
  .reading-list { grid-template-columns: 1fr 1fr; gap: 36px 48px; }
}
@media (min-width: 900px) {
  .footer-nav { grid-template-columns: repeat(5, 1fr); gap: 40px; }
  .feature-story-inner {
    grid-template-columns: 1.2fr 1fr;
    gap: 64px;
  }
}

/* ============================================
   14. WCAG / ACCESSIBILITY
   Skip link, focus indicators, screen-reader-only utility,
   reduced-motion preference.
   ============================================ */

/* Skip link — first focusable element on every page */
.skip-link {
  position: absolute;
  top: -120px;
  left: 16px;
  background: var(--dark-teal);
  color: white;
  font-family: var(--font-ui);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 1px;
  padding: 12px 20px;
  border-radius: 0 0 4px 4px;
  text-decoration: none;
  z-index: 9999;
  transition: top 0.15s ease;
}
.skip-link:focus { top: 0; }

/* Focus visible — keyboard-only outline (WCAG 2.4.7) */
:focus-visible {
  outline: 2px solid var(--dark-teal);
  outline-offset: 3px;
  border-radius: 2px;
}
:focus:not(:focus-visible) { outline: none; }

/* High-contrast focus for dark backgrounds */
.site-nav :focus-visible,
.site-footer :focus-visible,
.footer-cta-strip :focus-visible,
.site-topbar a:focus-visible {
  outline-color: var(--gold);
  outline: 2px solid var(--gold);
  outline-offset: 3px;
  border-radius: 2px;
}

/* Screen reader only */
.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;
}

/* Respect reduced-motion preference (WCAG 2.3.3) */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  .site-topbar a,
  .site-topbar .topbar-arrow { transition: none; }
  .site-topbar a:hover .topbar-arrow { transform: none; }
}

/* ============================================
   END — Pass B CSS Bundle (combinator fix May 19)
   ============================================ */

/* ============================================
   TOC BAR aggressive overrides MOVED to GP Element 177621
   "Single Post Template" on May 20, 2026.
   ============================================ */

/* Category Archive Post Grid + Archive Thumbnail Spec Lock MOVED to GP Element 177748 "LJM: Archive CSS" — fires on general:archive */


/* ============================================================
   DESTINATION HUB PATTERNS (May 20, 2026)
   Reusable patterns for high-value destination hub pages
   (Hawaii first, then NYC, Hong Kong, Mexico, etc.)
   Classes: .cat-hero, .pill, .pill-alt, .booking-card
   Mockup source: ~/Desktop/GP-Migration/mockups/ljm-hawaii-category-mockup.html
   ============================================================ */

/* Category hero — text-left, photo-right, 1fr+460px grid */
.cat-hero {
  background: #fff;
  padding: 56px 0 48px;
  border-bottom: 1px solid var(--border);
}
.cat-hero-grid {
  display: grid;
  grid-template-columns: 1fr 460px;
  gap: 56px;
  align-items: start;
  max-width: var(--page-max);
  margin: 0 auto;
  padding: 0 24px;
}
.cat-hero h1 {
  font-family: var(--font-head);
  font-size: clamp(40px, 5.5vw, 56px);
  font-weight: 500;
  line-height: 1.05;
  color: var(--near-black);
  margin-bottom: 18px;
  letter-spacing: -0.5px;
}
.cat-hero p {
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.65;
  color: var(--charcoal);
  margin-bottom: 14px;
}
.cat-hero-image {
  height: 360px;
  overflow: hidden;
  border-radius: 3px;
  background: var(--linen);
}
.cat-hero-image img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 860px) {
  .cat-hero-grid { grid-template-columns: 1fr; gap: 28px; }
  .cat-hero h1 { font-size: 38px; }
  .cat-hero-image { height: 240px; }
}



.curated-section { background: #fff; }

/* PILLS — rounded outlined hotel-name links */
.pills-block { padding: 40px 0 12px; }
.pills-inner {
  max-width: var(--page-max);
  margin: 0 auto;
  padding: 0 24px;
}
.pills-header {
  display: flex;
  align-items: baseline;
  gap: 14px;
  margin-bottom: 18px;
  flex-wrap: wrap;
}
.pills-header h2 {
  font-family: var(--font-head);
  font-size: 22px;
  font-weight: 500;
  color: var(--near-black);
  margin: 0;
}
.pills-header .sub {
  font-family: var(--font-body);
  font-style: italic;
  font-size: 15px;
  color: var(--sand);
}
.pills-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 8px;
}
.pill {
  display: inline-block;
  font-family: var(--font-ui);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.8px;
  color: var(--dark-teal);
  background: #fff;
  border: 1px solid var(--dark-teal);
  padding: 8px 16px;
  border-radius: 999px;
  text-decoration: none;
  white-space: nowrap;
  transition: background 0.15s, color 0.15s;
}
.pill:hover { background: var(--dark-teal); color: #fff; }
.pill.pill-alt {
  border-color: var(--border);
  color: var(--charcoal);
}
.pill.pill-alt:hover {
  background: var(--dark-teal);
  border-color: var(--dark-teal);
  color: #fff;
}
@media (max-width: 700px) {
  .pills-row { overflow-x: auto; flex-wrap: nowrap; padding-bottom: 8px; }
  .pill { flex-shrink: 0; }
}

/* BOOKING TOOL BLOCK — cards with gold top accent, hover lifts */
.booking-tool { padding: 32px 0 48px; }
.booking-tool-inner {
  max-width: var(--page-max);
  margin: 0 auto;
  padding: 0 24px;
}
.booking-tool h2 {
  font-family: var(--font-head);
  font-size: 22px;
  font-weight: 500;
  color: var(--near-black);
  margin: 0 0 18px;
}
.booking-tool-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
.booking-tool-grid--two {
  grid-template-columns: repeat(2, 1fr);
  max-width: 880px;
}
.booking-card {
  background: #fff;
  border: 1px solid var(--border);
  border-top: 2px solid var(--gold);
  padding: 22px 24px;
  text-decoration: none;
  color: inherit;
  display: flex;
  flex-direction: column;
  transition: border-color 0.15s, transform 0.15s;
}
.booking-card:hover {
  border-color: var(--dark-teal);
  transform: translateY(-1px);
}
.booking-card .label {
  font-family: var(--font-ui);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--gold-text);
  margin-bottom: 6px;
}
.booking-card h3 {
  font-family: var(--font-head);
  font-size: 20px;
  font-weight: 500;
  margin: 0 0 6px;
  color: var(--near-black);
  line-height: 1.25;
}
.booking-card p {
  font-family: var(--font-body);
  font-size: 14.5px;
  line-height: 1.5;
  color: var(--charcoal);
  margin: 0 0 12px;
  flex: 1;
}
.booking-card .go {
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--dark-teal);
}
@media (max-width: 820px) {
  .booking-tool-grid { grid-template-columns: 1fr; }
}


/* ============================================================
   KADENCE THEME GLOBAL PALETTE MIRROR
   Live runs Kadence Theme which provides --global-palette1..15 CSS
   custom properties. The ported Kadence block markup references these
   via classes like .has-theme-palette8-background-color and CSS like
   color: var(--global-palette3). Staging runs GP theme so these vars
   are undefined — palette references resolve to nothing.
   Mirror live's active "third-palette" values here so all ported
   content gets the right brand colors automatically. */
:root {
  --global-palette1: #387d94;   /* teal */
  --global-palette2: #19586d;   /* dark teal */
  --global-palette3: #000000;   /* black */
  --global-palette4: #222525;   /* near-black */
  --global-palette5: #717878;   /* gray */
  --global-palette6: #d7e6e0;   /* light seafoam */
  --global-palette7: #edf4f2;   /* paler seafoam */
  --global-palette8: #f8f7f6;   /* off-white */
  --global-palette9: #ffffff;   /* white */
  --global-palette10: #ffffff;  /* complement */
  --global-palette11: #13612e;  /* success */
  --global-palette12: #1159af;  /* info */
  --global-palette13: #b82105;  /* alert */
  --global-palette14: #f7630c;  /* warning */
  --global-palette15: #f5a524;  /* rating */
}
/* Kadence theme-palette utility classes (theme provides these; we add) */
.has-theme-palette1-background-color { background-color: var(--global-palette1) !important; }
.has-theme-palette2-background-color { background-color: var(--global-palette2) !important; }
.has-theme-palette3-background-color { background-color: var(--global-palette3) !important; }
.has-theme-palette4-background-color { background-color: var(--global-palette4) !important; }
.has-theme-palette5-background-color { background-color: var(--global-palette5) !important; }
.has-theme-palette6-background-color { background-color: var(--global-palette6) !important; }
.has-theme-palette7-background-color { background-color: var(--global-palette7) !important; }
.has-theme-palette8-background-color { background-color: var(--global-palette8) !important; }
.has-theme-palette9-background-color { background-color: var(--global-palette9) !important; }
.has-theme-palette1-color { color: var(--global-palette1) !important; }
.has-theme-palette2-color { color: var(--global-palette2) !important; }
.has-theme-palette3-color { color: var(--global-palette3) !important; }
.has-theme-palette4-color { color: var(--global-palette4) !important; }
.has-theme-palette5-color { color: var(--global-palette5) !important; }
.has-theme-palette6-color { color: var(--global-palette6) !important; }
.has-theme-palette7-color { color: var(--global-palette7) !important; }
.has-theme-palette8-color { color: var(--global-palette8) !important; }
.has-theme-palette9-color { color: var(--global-palette9) !important; }
/* Also handle the bare `.theme-paletteN-background-color` variants seen in Kadence Pro markup */
.theme-palette1-background-color { background-color: var(--global-palette1) !important; }
.theme-palette2-background-color { background-color: var(--global-palette2) !important; }
.theme-palette3-background-color { background-color: var(--global-palette3) !important; }
.theme-palette4-background-color { background-color: var(--global-palette4) !important; }
.theme-palette5-background-color { background-color: var(--global-palette5) !important; }
.theme-palette6-background-color { background-color: var(--global-palette6) !important; }
.theme-palette7-background-color { background-color: var(--global-palette7) !important; }
.theme-palette8-background-color { background-color: var(--global-palette8) !important; }
.theme-palette9-background-color { background-color: var(--global-palette9) !important; }
/* END kadence palette mirror */

/* H1 dedup on category archives — now handled by Code Snippet `ljm_normalize_h1_on_category_archives` (2026-05-30). */

/* Paged category archives (/page/2/+): keep GP's <h1 class="page-title"> visible
   (it's the readable H1 on paged), but suppress GP's category description block —
   per category-archive-chrome-spec.md the intro is shown on page 1 only. */
body.paged .page-header .taxonomy-description {
  display: none !important;
}

/* Sitewide breadcrumb on PAGE 1 for category types with no before-<main> hero
   (default archives + .cat-hero cats like Hawaii/Mexico). The .ljm-cat-intro Page
   Hero family (theme parks, Hong Kong, Singapore) renders its hero before <main>
   and carries its own top-of-hero breadcrumb, so the sitewide one stays hidden
   there to avoid a misplaced double. Page 2+ is handled by the body.paged.archive
   rule in element 178214 (hero hidden when paged → sitewide shows once). 2026-05-31 */
body.archive:not(.paged):not(:has(.ljm-cat-intro)) .ljm-sitewide-paged-bc {
  display: block !important;
  width: 100% !important;
  flex-basis: 100% !important;
  /* 24px left/right inset aligns the breadcrumb with the content column
     (the generic hero wrapper + .cat-hero-grid both inset content 24px). 2026-05-31 */
  padding: 28px 24px 0 !important;
  margin: 0 !important;
  max-width: none !important;
  box-sizing: border-box !important;
}

/* Category hero eyebrow: gold uppercase, matches post eyebrow style.
   Was missing — added so Tier 3 cats with our template look right. */
.category-hero-eyebrow {
  font-family: var(--font-ui, 'Inter', sans-serif) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 2.5px !important;
  text-transform: uppercase !important;
  color: var(--gold, #C4A265) !important;
  margin-bottom: 12px !important;
  display: block;
}

/* Subcategory pill nav: active pill is a span tag (not anchor) so it doesn't
   inherit the .subcat-pills a box styling. Mirror all those box rules
   (padding, border, display) here so the active pill is identical in
   size/shape — just gold fill + white text to indicate current. */
.subcat-pills span.is-active,
.subcat-pills .is-active {
  display: inline-block !important;
  padding: 8px 16px !important;
  border: 1px solid var(--dark-teal, #265B5F) !important;
  border-radius: 2px !important;
  background: var(--dark-teal, #265B5F) !important;
  color: var(--white, #fff) !important;
  font-family: var(--font-ui) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  line-height: 1 !important;
  cursor: default;
}

/* ============================================================
   KADENCE SLIDER LOADING STATE STRIP
   When Splide initializes a Kadence slider, it adds `is-initialized`
   to the slider but doesn't always remove `kb-slider-loading`. On
   archive pages with our element override, the loading class lingers
   even though the slider IS initialized (data shows is-active, 9
   slide items). The loading class hides content. Force show it. */
.kb-slider-loading.is-initialized,
.kb-slider-loading.splide.is-initialized {
  opacity: 1 !important;
  visibility: visible !important;
  height: auto !important;
  min-height: 0 !important;
}
/* If still not visible, force-strip the loading class effects entirely
   on archive pages where we know the slider is otherwise OK */
body.category-element-override .kb-slider-loading {
  opacity: 1 !important;
  visibility: visible !important;
}
body.category-element-override .kb-slider-loading::before,
body.category-element-override .kb-slider-loading::after {
  display: none !important;
}

/* ============================================================
   WIDEN CONTAINER ON CATEGORY ARCHIVES WITH ELEMENT OVERRIDE
   The ported Kadence rowlayouts contain 5-6 column hotel/destination
   card layouts that need room. At 1200 container they're cramped.
   Widen ONLY category-archive pages with our element override.
   Single posts + WP Pages + Tier 3 cats untouched. */
body.category-element-override .grid-container.container,
body.category-element-override.archive .site-content,
body.category-element-override.archive #content {
  max-width: 1500px !important;
}
body.category-element-override.archive .inside-content {
  max-width: 1500px;
  padding-left: 20px;
  padding-right: 20px;
  box-sizing: border-box;
}

/* ============================================================
   KADENCE POSTGRID FALLBACK for category archives.
   Force grid layout and horizontal card structure. Use very high
   specificity (html body.category-element-override) so we beat any
   per-block dynamic CSS that Kadence might still emit later. */
html body.category-element-override .wp-block-kadence-postgrid {
  display: block !important;  /* let inner wrap do the gridding */
  width: 100% !important;
  max-width: 100% !important;
}
html body.category-element-override .kt-post-grid-layout-grid-wrap,
html body.category-element-override .kt-post-grid-wrap {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 20px !important;
  width: 100% !important;
}
@media (max-width: 900px) {
  html body.category-element-override .kt-post-grid-layout-grid-wrap,
  html body.category-element-override .kt-post-grid-wrap {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 600px) {
  html body.category-element-override .kt-post-grid-layout-grid-wrap,
  html body.category-element-override .kt-post-grid-wrap {
    grid-template-columns: 1fr !important;
  }
}
/* FIX (2026-06-02, REMOVABLE): the GP archive-column rule
   `body.archive.category-element-override article.post {flex/max-width:33%}`
   leaks onto Kadence post-grid cards (also article.post), collapsing them to
   ~107px inside their grid cell. Out-specify it so Kadence grid items fill the cell.
   Remove when category grids are rebuilt native (Kadence post-grid gone). */
html body.category-element-override .wp-block-kadence-postgrid article.post {
  flex: 1 1 100% !important;
  max-width: 100% !important;
  width: 100% !important;
}
html body.category-element-override .wp-block-kadence-postgrid article {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  display: block !important;
  float: none !important;
  background: #fff;
  border: 1px solid #e9e7e2;
  border-radius: 4px;
  overflow: hidden;
}
html body.category-element-override .wp-block-kadence-postgrid article .kt-blocks-post-grid-item-inner-wrap {
  display: flex !important;
  flex-direction: row !important;
  align-items: stretch !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 130px;
}
html body.category-element-override .wp-block-kadence-postgrid article .kadence-post-image {
  flex: 0 0 130px !important;
  width: 130px !important;
  max-width: 130px !important;
  height: 130px !important;
  margin: 0 !important;
  overflow: hidden !important;
}
html body.category-element-override .wp-block-kadence-postgrid article .kadence-post-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
  max-width: none !important;
  margin: 0 !important;
}
html body.category-element-override .wp-block-kadence-postgrid article .kt-blocks-post-grid-item-inner {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  padding: 14px 16px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
}
html body.category-element-override .wp-block-kadence-postgrid article .entry-title {
  font-family: var(--font-headline, 'Playfair Display', Georgia, serif) !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  line-height: 1.3 !important;
  color: var(--near-black) !important;
  margin: 0 !important;
}
html body.category-element-override .wp-block-kadence-postgrid article .entry-title a {
  color: var(--near-black) !important;
  text-decoration: none !important;
  border: none !important;
}
html body.category-element-override .wp-block-kadence-postgrid article .entry-meta,
html body.category-element-override .wp-block-kadence-postgrid article .entry-summary,
html body.category-element-override .wp-block-kadence-postgrid article .read-more-container {
  display: none !important;
}
@media (max-width: 900px) {
  html body.category-element-override .wp-block-kadence-postgrid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 600px) {
  html body.category-element-override .wp-block-kadence-postgrid {
    grid-template-columns: 1fr !important;
  }
}

/* Author name in post header byline: kill default browser underline + any
   inherited border-bottom. Clean editorial look. Subtle hover underline
   indicates it's a link to the author archive. */
.post-header .author-name,
.hero-split-text .author-name {
  text-decoration: none !important;
  border-bottom: none !important;
}
.post-header .author-name:hover,
.hero-split-text .author-name:hover {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  color: var(--dark-teal);
}
/* END hide default post header */

/* ============================================================
   POST HEADER POSITIONING (v4 hero-split — mockup faithful)
   Snippet outputs:
     div.hero-split-wrapper
       div.hero-split       (grid: 1fr | 460px text/image)
         div.hero-split-text wraps header.post-header
         div.hero-split-image wraps img — end div blocks — to encoded gt
   so all selectors below use descendant combinators instead. */
body.archive.category-element-override .site-main {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 36px 28px !important;
  align-items: flex-start !important;
}

/* Hide empty children inside the flex container (Cat: Element output
   often emits empty p tags from wpautop + an empty .page-header).
   Each empty child still claims a flex slot + 24px gap, which pushed
   the first row of archive cards from 3-per-row to 2-per-row.
   Fix discovered on /san-diego/coronado/ May 20. */
body.archive.category-element-override .site-main > p:empty,
body.archive.category-element-override .site-main > header.page-header:empty,
body.archive.category-element-override .site-main > .page-header:empty,
body.archive.category-element-override .site-main > br {
  display: none !important;
}
body.archive.category-element-override article.post {
  flex: 0 0 calc(33.333% - 19px) !important;
  max-width: calc(33.333% - 19px) !important;
}
/* Full-width elements (heros, color bands, scrollers) inside the
   flex container — explicitly break out of the 33.333% card width. */
body.archive.category-element-override .alignfull,
body.archive.category-element-override .kt-row-has-bg,
body.archive.category-element-override section.kb-row-layout-wrap[class*="alignfull"] {
  flex-basis: 100% !important;
  width: 100% !important;
  max-width: 100% !important;
}
@media (max-width: 900px) {
  body.archive.category-element-override article.post {
    flex: 0 0 calc(50% - 12px) !important;
    max-width: calc(50% - 12px) !important;
  }
}
@media (max-width: 600px) {
  body.archive.category-element-override article.post {
    flex: 0 0 100% !important;
    max-width: 100% !important;
  }
}
/* Keep Kadence hub content, hero, pills, and pagination full-width inside the flex container */
body.archive.category-element-override .kb-row-layout-wrap,
body.archive.category-element-override .category-hero-wrapper,
body.archive.category-element-override .subcat-nav,
body.archive.category-element-override nav.navigation,
body.archive.category-element-override header.page-header {
  flex-basis: 100% !important;
  width: 100% !important;
}


/* ============================================================
   SD RESOURCES PAGE CSS — EXTRACTED to GP Element 177745 (May 20 night)
   "SD Resources Page — CSS (page 128469)" — fires on wp_head, post:page 128469 only.
   All .ljr-* rules now load only on /san-diego-resources/ for better caching.
   ============================================================ */
/* === LJM COPY-CODE component (global) START === */ .ljm-copy-code{display:inline-flex;align-items:center;min-height:24px;padding:0 2px;vertical-align:middle;border:0;background:none;font:inherit;color:inherit;cursor:pointer;white-space:nowrap;position:relative;} .ljm-copy-code__code{font-family:'Montserrat',system-ui,sans-serif;font-size:0.9em;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:#265B5F;} .ljm-copy-code__ico{display:inline-block;width:12px;height:12px;margin-left:4px;background:#265B5F;-webkit-mask:url('data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%279%27%20y%3D%279%27%20width%3D%2713%27%20height%3D%2713%27%20rx%3D%272%27%2F%3E%3Cpath%20d%3D%27M5%2015H4a2%202%200%200%201-2-2V4a2%202%200%200%201%202-2h9a2%202%200%200%201%202%202v1%27%2F%3E%3C%2Fsvg%3E') no-repeat center/contain;mask:url('data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%279%27%20y%3D%279%27%20width%3D%2713%27%20height%3D%2713%27%20rx%3D%272%27%2F%3E%3Cpath%20d%3D%27M5%2015H4a2%202%200%200%201-2-2V4a2%202%200%200%201%202-2h9a2%202%200%200%201%202%202v1%27%2F%3E%3C%2Fsvg%3E') no-repeat center/contain;} .ljm-copy-code:hover .ljm-copy-code__code{color:#1F4847;} .ljm-copy-code:hover .ljm-copy-code__ico{background:#1F4847;} .ljm-copy-code.is-copied .ljm-copy-code__code{color:#265B5F;} .ljm-copy-code.is-copied .ljm-copy-code__ico{background:#265B5F;-webkit-mask-image:url('data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%273%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpolyline%20points%3D%2720%206%209%2017%204%2012%27%2F%3E%3C%2Fsvg%3E');mask-image:url('data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%273%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpolyline%20points%3D%2720%206%209%2017%204%2012%27%2F%3E%3C%2Fsvg%3E');} .ljm-copy-code.is-copied::after{content:'Copied';position:absolute;bottom:calc(100% + 5px);left:50%;transform:translateX(-50%);background:#1A1A1A;color:#fff;font-family:'Montserrat',system-ui,sans-serif;font-size:10px;font-weight:600;letter-spacing:.5px;padding:2px 6px;border-radius:3px;white-space:nowrap;pointer-events:none;z-index:2;} .ljm-copy-code--coupon{padding:7px 12px;border:1px dashed #C4A265;border-radius:3px;background:#fff;} .ljm-copy-code--coupon .ljm-copy-code__code{color:#8B6914;} .ljm-copy-code--coupon .ljm-copy-code__offer{margin-left:5px;font-family:'Montserrat',system-ui,sans-serif;font-size:0.82em;font-weight:600;letter-spacing:.3px;color:#8B6914;} .ljm-copy-code--coupon .ljm-copy-code__ico{background:#8B6914;} .ljm-copy-code--coupon.is-copied{border-color:#265B5F;} .ljm-copy-code--coupon.is-copied .ljm-copy-code__code,.ljm-copy-code--coupon.is-copied .ljm-copy-code__offer{color:#265B5F;} .ljm-copy-code--coupon.is-copied .ljm-copy-code__ico{background:#265B5F;} .ljm-copy-code--coupon:hover{background:#FAF8F5;border-color:#8B6914;} .ljm-copy-code--coupon:hover .ljm-copy-code__code,.ljm-copy-code--coupon:hover .ljm-copy-code__offer{color:#8B6914;} .ljm-copy-code--coupon:hover .ljm-copy-code__ico{background:#8B6914;} .ljm-copy-code:hover,.ljm-copy-code:focus,.ljm-copy-code:active{background:none;} .ljm-copy-code--coupon:hover,.ljm-copy-code--coupon:focus,.ljm-copy-code--coupon:active{background:#FAF8F5;border-color:#8B6914;} .ljm-copy-code:focus-visible{outline:2px solid #265B5F;outline-offset:2px;border-radius:2px;} /* === LJM COPY-CODE component (global) END === */ /* SD Resources page CSS moved to post-local <style> on page 128469 (2026-06-27); legacy duplicate may remain in GP Element 177745 — disable in GP UI */

/* SD Resources CSS rules now live in GP Element 177745 — fires only on /san-diego-resources/ */

/* ============================================
   SEARCH (modal overlay + results page)
   Spec: ~/Desktop/GP-Migration/search-results-spec.md
   Added: May 20, 2026 — Phase 1 (independent of SearchWP)
   ============================================ */

/* --- Modal overlay backdrop --- */
.ljm-search-overlay { position: fixed; inset: 0; background: rgba(26, 26, 26, 0.85); z-index: 9999; display: none; align-items: flex-start; justify-content: center; padding-top: 12vh; }
.ljm-search-overlay.is-open { display: flex; opacity: 1; }
body.search-open { overflow: hidden; }

/* --- Modal container --- */
.ljm-search-modal { width: 100%; max-width: 640px; background: #fff; border: 1px solid #ddd; border-radius: 4px; padding: 40px 36px 32px; position: relative; font-family: var(--font-body); opacity: 1 !important; filter: none !important; backdrop-filter: none !important; isolation: isolate; }
@media (max-width: 720px) { .ljm-search-modal { max-width: calc(100vw - 32px); padding: 32px 24px 24px; } }

/* --- Close button --- */
.ljm-search-close { position: absolute; top: 12px; right: 12px; width: 36px; height: 36px; border: none; background: transparent; cursor: pointer; color: var(--charcoal); font-size: 22px; line-height: 1; border-radius: 4px; transition: background 0.15s; }
/* ADA: enlarge the search close button to a 44x44 target (WCAG 2.5.5 AAA) with a clearly visible 28px X. Doubled-class selector + !important beats the generic button font-size/padding override. */
.ljm-search-close.ljm-search-close { width: 44px !important; height: 44px !important; min-width: 44px !important; min-height: 44px !important; padding: 0 !important; font-size: 28px !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; }
/* ADA: failing gold eyebrows (#C4A265 ~2.3:1 on light backgrounds) -> accessible --gold-text #8B6914. Light-background eyebrows only; dark/teal-background eyebrows (footer CTA, .cta-teal) are unchanged. */
.post-eyebrow, .hub-hero-eyebrow, .h2-eyebrow, .newsletter-eyebrow, .ljm-mega-cta-eyebrow, .cta-warm .cta-eyebrow, .entry-content .lj-note__eyebrow, .entry-content .lj-eyebrow, .ljm-perks__eyebrow { color: var(--gold-text) !important; }
.ljm-search-close:hover, .ljm-search-close:focus-visible { background: var(--linen); outline: 2px solid var(--gold); outline-offset: -2px; }

/* --- Eyebrow above input --- */
.ljm-search-eyebrow { font-family: var(--font-ui); font-size: 11px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; color: var(--gold-text); text-align: center; margin: 0 0 18px; }

/* --- Input field --- */
.ljm-search-input-wrap { position: relative; }
.ljm-search-input { width: 100% !important; box-sizing: border-box !important; -webkit-appearance: none !important; appearance: none !important; font-family: var(--font-body) !important; font-size: 18px !important; line-height: 1.4 !important; padding: 14px 18px 14px 60px !important; border: 2px solid var(--linen); border-radius: 4px; background: #fff; color: var(--near-black); transition: border-color 0.15s, box-shadow 0.15s; text-indent: 0 !important; }
.ljm-search-input::placeholder { color: #999; font-style: italic; }
.ljm-search-input:focus { outline: none; border-color: var(--gold); box-shadow: 0 0 0 3px rgba(196, 162, 101, 0.2); }
.ljm-search-icon { position: absolute; left: 16px; top: 50%; transform: translateY(-50%); width: 20px; height: 20px; color: var(--gold-text); pointer-events: none; }

/* --- Hint text (Phase 1) --- */
.ljm-search-hint { font-family: var(--font-body); font-size: 13px; color: #6b6b6b; margin: 14px 0 0; text-align: center; }

/* --- Live results dropdown (Phase 2 — wires up to SearchWP AJAX) --- */
.ljm-search-live { margin-top: 16px; border-top: 1px solid var(--linen); padding-top: 16px; }
.ljm-search-live-item { display: flex; align-items: flex-start; gap: 12px; padding: 10px 8px; text-decoration: none; color: var(--near-black); border-radius: 3px; transition: background 0.12s; }
.ljm-search-live-item:hover, .ljm-search-live-item:focus-visible { background: var(--linen); outline: none; }
.ljm-search-live-thumb { width: 48px; height: 36px; object-fit: cover; border-radius: 2px; flex-shrink: 0; }
.ljm-search-live-meta { flex: 1; min-width: 0; }
.ljm-search-live-title { font-family: var(--font-head); font-size: 15px; font-weight: 500; line-height: 1.3; margin: 0 0 2px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ljm-search-live-cat { font-family: var(--font-ui); font-size: 10px; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; color: var(--gold-text); }
.ljm-search-live-seeall { display: block; padding: 12px 8px 4px; font-family: var(--font-ui); font-size: 13px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; color: var(--dark-teal); text-decoration: none; border-top: 1px solid var(--linen); margin-top: 8px; transition: color 0.15s; }
.ljm-search-live-seeall:hover { color: var(--gold-text); }

/* --- Popular searches chips (always visible) --- */
.ljm-search-popular { margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--linen); text-align: center; }
.ljm-search-popular-label { font-family: var(--font-ui); font-size: 11px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; color: #6b6b6b; margin: 0 0 10px; }
.ljm-search-popular-list { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; list-style: none; margin: 0; padding: 0; }
.ljm-search-popular-list a { display: inline-block; padding: 6px 14px; font-family: var(--font-ui); font-size: 12px; font-weight: 500; color: var(--charcoal); background: var(--linen); border-radius: 999px; text-decoration: none; transition: background 0.15s, color 0.15s; }
.ljm-search-popular-list a:hover { background: var(--dark-teal); color: #fff; }

/* --- Search results page header --- */
.ljm-search-results-header { max-width: 1100px; margin: 48px auto 36px; padding: 0 24px 28px; border-bottom: 1px solid var(--linen); }
.ljm-search-results-eyebrow { font-family: var(--font-ui); font-size: 12px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; color: var(--gold-text); margin: 0 0 10px; }
.ljm-search-results-h1 { font-family: var(--font-head); font-size: 36px; font-weight: 500; line-height: 1.2; color: var(--near-black); margin: 0 0 12px; }
.ljm-search-results-h1 .query { font-style: italic; color: var(--dark-teal); }
.ljm-search-results-count { font-family: var(--font-body); font-size: 15px; color: #777; margin: 0; }
@media (max-width: 720px) { .ljm-search-results-h1 { font-size: 28px; } }

/* --- Lost-user recovery component (search-empty AND 404) --- */
.ljm-recovery { max-width: 1100px; margin: 48px auto; padding: 0 24px; }
.ljm-recovery-headline { font-family: var(--font-head); font-size: 32px; font-weight: 500; line-height: 1.2; color: var(--near-black); margin: 0 0 12px; }
.ljm-recovery-headline .query { font-style: italic; color: var(--dark-teal); }
.ljm-recovery-subline { font-family: var(--font-body); font-size: 17px; color: var(--charcoal); margin: 0 0 40px; }
.ljm-recovery-section { margin-bottom: 48px; padding-top: 32px; border-top: 1px solid var(--linen); }
.ljm-recovery-section:first-of-type { padding-top: 0; border-top: none; }
.ljm-recovery-section h2 { font-family: var(--font-ui); font-size: 12px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; color: var(--gold-text); margin: 0 0 24px; }

/* Tier 1: Tool tiles */
.ljm-recovery-tools { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; margin: 0; padding: 0; list-style: none; }
@media (min-width: 720px) { .ljm-recovery-tools { grid-template-columns: repeat(4, 1fr); } }
.ljm-recovery-tools li { list-style: none; }
.ljm-recovery-tools a { display: block; padding: 28px 20px; background: var(--linen); border: 1px solid var(--linen); border-radius: 4px; text-decoration: none; text-align: center; transition: background 0.15s, border-color 0.15s, transform 0.15s; height: 100%; color: var(--near-black); }
.ljm-recovery-tools a:hover, .ljm-recovery-tools a:focus-visible { background: #fff; border-color: var(--gold); transform: translateY(-2px); outline: none; }
.ljm-recovery-tools .tool-icon { display: block; font-size: 28px; line-height: 1; margin-bottom: 12px; }
.ljm-recovery-tools .tool-name { display: block; font-family: var(--font-head); font-size: 17px; font-weight: 500; line-height: 1.3; color: var(--near-black); margin-bottom: 4px; }
.ljm-recovery-tools .tool-desc { display: block; font-family: var(--font-body); font-size: 13px; color: var(--charcoal); line-height: 1.4; }

/* Tier 2: Destination content tiles */
.ljm-recovery-topics { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; margin: 0; padding: 0; list-style: none; }
@media (min-width: 720px) { .ljm-recovery-topics { grid-template-columns: repeat(4, 1fr); } }
.ljm-recovery-topics li { list-style: none; }
.ljm-recovery-topics a { display: block; text-decoration: none; color: inherit; transition: opacity 0.15s; }
.ljm-recovery-topics a:hover { opacity: 0.9; }
.ljm-recovery-topics img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 3px; margin-bottom: 8px; background: var(--linen); }
.ljm-recovery-topics .topic-name { font-family: var(--font-head); font-size: 17px; font-weight: 500; color: var(--near-black); line-height: 1.3; }

/* Tier 3: Retry search */
.ljm-recovery-retry-form { max-width: 520px; margin: 0; display: flex; }
.ljm-recovery-retry-form input[type="search"] { flex: 1 1 auto; min-width: 0; font-family: var(--font-body); font-size: 16px; padding: 12px 16px; border: 2px solid var(--border); border-right: none; border-radius: 4px 0 0 4px; background: #fff; color: var(--near-black); transition: border-color 0.15s, box-shadow 0.15s; }
.ljm-recovery-search-btn { flex: 0 0 auto; font-family: var(--font-ui); font-size: 11px; font-weight: 500; letter-spacing: 2px; text-transform: uppercase; background: var(--teal); color: #fff; border: none; padding: 0 26px; cursor: pointer; border-radius: 0 4px 4px 0; transition: background 0.2s; white-space: nowrap; }
.ljm-recovery-search-btn:hover { background: #1e4a4e; }
.ljm-recovery-retry-form input[type="search"]:focus { outline: none; border-color: var(--gold); box-shadow: 0 0 0 3px rgba(196, 162, 101, 0.2); }

/* --- Suppress GP default search markup (replaced by LJM elements) --- */
body.search .page-header,
body.search-results .page-header,
body.search-no-results .page-header { display: none; }
body.search-no-results .no-results.not-found,
body.search-no-results .page-content > .search-form { display: none; }

/* Suppress GP default 404 markup (replaced by LJM 404 Element). Also hides the empty .inside-article wrapper so no blank gap remains. */
body.error404 .inside-article { display: none; }
body.error404 .page-header,
body.error404 .inside-article > .entry-content,
body.error404 .inside-article > header.entry-header { display: none; }

/* Post disclaimer (FTC affiliate disclosure) — Element 177762, fires on all single posts via ACF field 'disclaimer_text' */
.ljm-disclaimer-wrap { margin: 0 0 24px; }
.ljm-disclaimer { font-family: var(--font-body); font-size: 12px; font-style: italic; line-height: 1.5; color: var(--charcoal); margin: 0 0 8px; }
.ljm-disclaimer:last-child { margin-bottom: 0; }
.ljm-disclaimer a { color: var(--dark-teal); text-decoration: underline; text-decoration-color: var(--gold); text-underline-offset: 2px; }
.ljm-disclaimer a:hover { color: var(--near-black); }

/* Reviewed By badge — Element 177764, fires when ACF post_reviewed=Yes */
.ljm-reviewed-badge { display: inline-flex; align-items: center; gap: 8px; margin: 4px 0 16px; font-family: var(--font-ui); font-size: 13px; color: var(--charcoal); }
.ljm-reviewed-icon { width: 20px; height: 20px; border-radius: 50%; display: block; }
.ljm-reviewed-text { font-style: italic; }

/* END SEARCH SECTION */

/* ============================================
   16. ABOUT PAGE (post 128778) - full-width sections + remove newsletter gap
   Added 2026-05-22
   Mirrors body.page-id-33 (homepage) breakout pattern so .lja-page
   section wrappers can span 100vw despite GP's container constraint.
   ============================================ */

/* Compact team grid overrides — small circular avatars, more members per row.
   Team members come and go, so this should be quick to edit and low-effort visually. */



/* END section 16 */

/* ============================================
   15. SEARCH RESULTS PAGE - archive grid parity
   Added 2026-05-22
   Aliases archive card rules to body.search so search results inherit
   the same 4:3 thumbnails, 2-line title clamp, and full-width header
   layout as category archives. GP Customizer does not treat search as
   an archive, so .archive selectors never match body.search without
   this aliasing layer.
   ============================================ */

.ljm-search-results-header {
  width: 100% !important;
  display: block !important;
  margin-bottom: 32px !important;
  clear: both !important;
}
body.search article {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  margin-bottom: 48px !important;
  padding: 0 !important;
}
body.search article .inside-article {
  background: transparent !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
}
/* Visual order: image first, then eyebrow below, then title, then excerpt */
body.search article .post-image,
body.search article .featured-image { order: 1 !important; }
body.search article .cat-card-eyebrow,
body.search article .entry-meta .cat-links,
body.search article .post-eyebrow { order: 2 !important; margin-top: 16px !important; }
body.search article .entry-header { order: 3 !important; }
body.search article .entry-title { order: 3 !important; }
body.search article .entry-summary { order: 4 !important; }
/* Force search results into a clean 3-column CSS grid with explicit gap */
body.search main.site-main,
body.search .site-main {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 36px 28px !important;
  max-width: 1200px !important;
  margin: 0 auto !important;
  padding: 0 24px !important;
}
body.search article {
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  float: none !important;
}
body.search .ljm-search-results-header,
body.search .generate-columns-container,
body.search .paging-navigation,
body.search nav.navigation {
  grid-column: 1 / -1 !important;
}
/* If GP wraps articles in .generate-columns, ensure they don't add extra width constraints */
body.search .generate-columns-container {
  display: contents !important;
}
@media (max-width: 900px) {
  body.search main.site-main,
  body.search .site-main {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}
@media (max-width: 600px) {
  body.search main.site-main,
  body.search .site-main {
    grid-template-columns: 1fr !important;
  }
}
body.search article .featured-image,
body.search article .post-image {
  height: auto !important;
  aspect-ratio: 4 / 3 !important;
  background: var(--linen);
  border-radius: 3px !important;
  margin-bottom: 18px !important;
  overflow: hidden !important;
}
body.search article .featured-image img,
body.search article .post-image img,
body.search article img.wp-post-image {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
  margin: 0 !important;
}
body.search article .entry-title {
  font-family: var(--font-headline, 'Playfair Display', Georgia, serif) !important;
  font-size: 19px !important;
  font-weight: 500 !important;
  line-height: 1.3 !important;
  margin: 0 0 8px !important;
}
body.search article .entry-title,
body.search article .entry-title a {
  color: var(--near-black, #1A1A1A) !important;
  text-decoration: none !important;
}
body.search article:hover .entry-title a {
  color: var(--dark-teal) !important;
}
body.search article .entry-summary {
  font-family: var(--font-body, Georgia, serif) !important;
  font-size: 14px !important;
  line-height: 1.55 !important;
  color: var(--charcoal) !important;
  margin: 0 !important;
}
body.search article .read-more-container,
body.search article .read-more,
body.search article a.read-more,
body.search article .comments-link,
body.search article .entry-meta {
  display: none !important;
}

/* Search results: gold uppercase eyebrow + more breathing room between cards */
body.search article {
  margin-bottom: 64px !important;
  padding: 0 !important;
}
body.search .generate-columns,
body.search .generate-columns-container > * {
  padding-left: 16px !important;
  padding-right: 16px !important;
  box-sizing: border-box !important;
}
body.search article .cat-card-eyebrow,
body.search article .post-eyebrow,
body.search article .entry-meta .cat-links,
body.search article .entry-meta .cat-links a {
  font-family: var(--font-ui, 'Montserrat', Arial, sans-serif) !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  color: var(--gold-text, #8B6914) !important;
  margin: 0 0 8px !important;
  padding: 0 !important;
  line-height: 1.2 !important;
  display: block !important;
}
body.search article .entry-meta {
  display: block !important;
  background: none !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 0 8px !important;
}
body.search article .entry-meta .posted-on,
body.search article .entry-meta .byline,
body.search article .entry-meta .comments-link,
body.search article .entry-meta .tags-links {
  display: none !important;
}

/* HIDE GeneratePress native search modal so our LJM modal is the only one rendering */
.gp-modal.gp-search-modal,
#gp-search,
.gp-modal.gp-search-modal.gp-modal--open {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* Defensive: kill ALL animations and transitions on the search modal opening (ADA) */
.ljm-search-overlay,
.ljm-search-overlay *,
.ljm-search-overlay.is-open,
.ljm-search-overlay.is-open * {
  animation: none !important;
  animation-duration: 0s !important;
  transition: none !important;
  transition-duration: 0s !important;
}

/* END section 15 */

/* ======================================================================
   SECTION 17 — Newsletter bullets + consent checkbox (May 23, 2026)
   Sister rules in Footer Stack inline  (Element 177445).
   ====================================================================== */

.newsletter-bullets {
  list-style: none;
  margin: 0 auto 22px;
  padding: 0;
  text-align: left;
  max-width: 480px;
}

.newsletter-bullets li {
  position: relative;
  padding: 4px 0 4px 26px;
  font-family: var(--font-body, Georgia, serif);
  font-size: 16px;
  line-height: 1.55;
  color: #2b2b2b;
}

.newsletter-bullets li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 11px;
  width: 14px;
  height: 14px;
  background: var(--gold, #C4A265);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M13.5 4.5L6 12L2.5 8.5' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E") no-repeat center / contain;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M13.5 4.5L6 12L2.5 8.5' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E") no-repeat center / contain;
}

.newsletter-consent {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  max-width: 480px;
  margin: 14px auto 0;
  font-family: var(--font-ui, Montserrat, Arial, sans-serif);
  font-size: 12px;
  line-height: 1.5;
  color: #6b6b6b;
  text-align: left;
}

.newsletter-consent input[type="checkbox"] {
  flex: 0 0 16px;
  width: 16px;
  height: 16px;
  margin-top: 2px;
  accent-color: var(--teal, #2A6F77);
  cursor: pointer;
}

.newsletter-consent a {
  color: #6b6b6b;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.newsletter-consent a:hover {
  color: var(--teal, #2A6F77);
}

.newsletter-consent .req {
  color: #b04848;
  font-weight: 600;
}

@media (max-width: 600px) {
  .newsletter-bullets li {
    font-size: 15px;
  }
  .newsletter-consent {
    font-size: 11px;
  }
}

/* END section 17 */

/* ======================================================================
   SECTION 18 — Close the gap between TOC bar and first paragraph
   (May 23, 2026)

   Multiple culprits can leave dead vertical space above the first <p>:
   1) Default <p> margin-top with no compensation
   2) Empty .ljm-disclaimer-wrap placeholder on posts w/o disclaimer
   3) Empty .ljm-reviewed placeholder on posts where post_reviewed != Yes
   4) Hubbub .dpsp-post-pinterest-image-hidden divs (display:none but they
      still sit as first children of .entry-content, which breaks the
      :first-of-type cascade reset)
   ====================================================================== */

/* Force-collapse Hubbub hidden Pinterest images so they don't interfere */
.entry-content > .dpsp-post-pinterest-image-hidden {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
  height: 0 !important;
}

/* Force-collapse empty disclaimer + reviewed-by wrappers
   (only kills the wrapper when it has no rendered content) */
.ljm-disclaimer-wrap:empty,
.ljm-reviewed:empty,
.ljm-reviewed-by:empty {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}

/* First visible paragraph in entry-content sits tight against TOC bar */
.single .entry-content > p:first-of-type,
.single .entry-content > .dpsp-post-pinterest-image-hidden ~ p:first-of-type {
  margin-top: 0 !important;
}

/* Trim top space on .entry-content itself (was inheriting padding from
   some layout container we no longer use) */
.single .entry-content {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

/* END section 18 */

/* ======================================================================
   SECTION 19 — Align disclaimer top with sidebar gold border (May 23, 2026)
   The disclaimer wrapper is inside .entry-content but visually should
   line up with the first sidebar widget's gold border-top edge.
   ====================================================================== */

.ljm-disclaimer-wrap {
  margin-top: -34px !important; /* pull the disclaimer up under the sticky TOC bar — was -6px, left ~46px of dead space above the fine print (2026-06-23) */
  padding-top: 0 !important;
}

/* When the disclaimer is the first visible thing in the article,
   make sure its <p> sits flush at the top of its wrapper. */
.ljm-disclaimer-wrap > .ljm-disclaimer:first-child {
  margin-top: 0 !important;
}

/* END section 19 */

/* ======================================================================
   SECTION 20 — Author tooltip link styling (May 23, 2026)
   Per Katie's exact spec. Targets both possible class names so it works
   regardless of which version of the snippet is live.
   ====================================================================== */

.author-tooltip-links,
.ljm-author-tooltip-actions {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 16px !important;
}

.author-tooltip-links a,
.author-tooltip-links a:link,
.author-tooltip-links a:visited,
.ljm-author-tooltip-actions a,
.ljm-author-tooltip-actions a:link,
.ljm-author-tooltip-actions a:visited {
  font-family: 'Montserrat', Arial, sans-serif !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
  color: #265B5F !important;
  text-decoration: none !important;
  border-bottom: 1px solid #C4A265 !important;
  padding-bottom: 1px !important;
  white-space: nowrap !important;
  transition: color 0.15s ease;
}

.author-tooltip-links a:hover,
.author-tooltip-links a:focus,
.ljm-author-tooltip-actions a:hover,
.ljm-author-tooltip-actions a:focus {
  color: #1a1a1a !important;
  border-bottom-color: #C4A265 !important;
}

/* Force tooltip wide enough for all 3 links on one line (May 23, 2026) */
.author-tooltip,
.ljm-author-tooltip {
  max-width: 440px !important;
  min-width: 380px !important;
}

/* Tighter gap between links so all 3 fit comfortably */
.author-tooltip-links,
.ljm-author-tooltip-actions {
  gap: 14px !important;
  flex-wrap: nowrap !important;
}

@media (max-width: 600px) {
  .author-tooltip,
  .ljm-author-tooltip {
    max-width: calc(100vw - 24px) !important;
    min-width: 0 !important;
  }
  /* On narrow mobile, allow wrap if needed */
  .author-tooltip-links,
  .ljm-author-tooltip-actions {
    flex-wrap: wrap !important;
    gap: 10px 14px !important;
  }
}

/* END section 20 */

/* ======================================================================
   SECTION 21 — Archive thumbnails: consistent 4:3 + no sand stripe
   (May 23, 2026)

   The existing 4:3 cover rule (section 7) was scoped only to body.search.
   Extending it to author, category, tag, and date archives so every
   archive renders thumbnails at the same horizontal aspect ratio.

   Also swapping the container background from var(--linen) to white so
   if an image doesn't fully fill (edge case), no warm sand stripe shows.
   ====================================================================== */

body.blog article.post .featured-image,
body.blog article.post .post-image,
body.archive article.post .featured-image,
body.archive article.post .post-image,
body.author article.post .featured-image,
body.author article.post .post-image,
body.category article.post .featured-image,
body.category article.post .post-image,
body.tag article.post .featured-image,
body.tag article.post .post-image,
body.date article.post .featured-image,
body.date article.post .post-image {
  height: auto !important;
  aspect-ratio: 4 / 3 !important;
  background: #fff !important;
  border-radius: 3px !important;
  margin-bottom: 18px !important;
  overflow: hidden !important;
  display: block !important;
  padding: 0 !important;
  line-height: 0 !important;
}

body.blog article.post .featured-image a,
body.blog article.post .post-image a,
body.archive article.post .featured-image a,
body.archive article.post .post-image a,
body.author article.post .featured-image a,
body.author article.post .post-image a,
body.category article.post .featured-image a,
body.category article.post .post-image a,
body.tag article.post .featured-image a,
body.tag article.post .post-image a,
body.date article.post .featured-image a,
body.date article.post .post-image a {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  line-height: 0 !important;
  text-decoration: none !important;
}

body.blog article.post .featured-image img,
body.blog article.post .post-image img,
body.blog article.post img.wp-post-image,
body.archive article.post .featured-image img,
body.archive article.post .post-image img,
body.archive article.post img.wp-post-image,
body.author article.post .featured-image img,
body.author article.post .post-image img,
body.author article.post img.wp-post-image,
body.category article.post .featured-image img,
body.category article.post .post-image img,
body.category article.post img.wp-post-image,
body.tag article.post .featured-image img,
body.tag article.post .post-image img,
body.tag article.post img.wp-post-image,
body.date article.post .featured-image img,
body.date article.post .post-image img,
body.date article.post img.wp-post-image {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  vertical-align: top !important;
}

/* END section 21 */

/* ======================================================================
   SECTION 22 — Sitewide post body: default links + UL/OL lists
   (May 23, 2026, per post-content-styling-spec.md)

   Implementation order:
     1. Default link rule (charcoal + 2px gold underline)
     2. UL gold chevron + .plain-list opt-out gold dot
     3. OL italic gold Playfair leading-zero
   Exception namespaces (.quick-ref, .guide-cta, .author-tooltip-links)
   come in later sections so cascade order works.
   ====================================================================== */

/* DEFAULT LINK RULE — !important to win against 177621's :not() chain.
   Excludes buttons (white-text-on-fill-color) and the guide-CTA pattern. */
.entry-content a:not(.wp-block-button__link):not(.button):not(.btn-primary):not(.btn-secondary):not(.btn-primary-teal):not(.btn-outline-teal):not(.pillar-card):not(.neighborhood-tile):not(.final-cta__button):not(.final-cta__button--outline):not(.cat-card-eyebrow):not(:where(.pillar__routes a, .perks__row a, .ljm-related-posts a, .related-posts a, [class*="related-post"] a, .ljm-kt a, .ljm-cards a, .kt-inside-inner-col a, .archive #main > article a, .kb-section-link-overlay, .lja-contact a, .hotel__btn, .sidebar-cta a, .ljm-sdfv-pass-btn)):not(.guide-cta a):not(.editorial-cta a):not(.booking-hub__cta a):not(.booking-card a):not(.booking-hub-cta-dark a):not(.also-featured a),
.post-body a:not(.wp-block-button__link):not(.button):not(.btn-primary):not(.btn-secondary):not(.btn-primary-teal):not(.btn-outline-teal):not(.pillar-card):not(.neighborhood-tile):not(.final-cta__button):not(.final-cta__button--outline):not(.cat-card-eyebrow):not(:where(.pillar__routes a, .perks__row a, .ljm-related-posts a, .related-posts a, [class*="related-post"] a, .ljm-kt a, .ljm-cards a, .kt-inside-inner-col a, .archive #main > article a, .kb-section-link-overlay, .lja-contact a, .hotel__btn, .sidebar-cta a, .ljm-sdfv-pass-btn)):not(.guide-cta a):not(.editorial-cta a),
.bio-content a:not(.wp-block-button__link):not(.button):not(.btn-primary):not(.btn-secondary):not(.btn-primary-teal):not(.btn-outline-teal):not(.pillar-card):not(.neighborhood-tile):not(.final-cta__button):not(.final-cta__button--outline):not(.cat-card-eyebrow):not(:where(.pillar__routes a, .perks__row a, .ljm-related-posts a, .related-posts a, [class*="related-post"] a, .ljm-kt a, .ljm-cards a, .kt-inside-inner-col a, .archive #main > article a, .kb-section-link-overlay, .lja-contact a, .hotel__btn, .sidebar-cta a, .ljm-sdfv-pass-btn)),
.post-content a:not(.wp-block-button__link):not(.button):not(.btn-primary):not(.btn-secondary):not(.btn-primary-teal):not(.btn-outline-teal):not(.pillar-card):not(.neighborhood-tile):not(.final-cta__button):not(.final-cta__button--outline):not(.cat-card-eyebrow):not(:where(.pillar__routes a, .perks__row a, .ljm-related-posts a, .related-posts a, [class*="related-post"] a, .ljm-kt a, .ljm-cards a, .kt-inside-inner-col a, .archive #main > article a, .kb-section-link-overlay, .lja-contact a, .hotel__btn, .sidebar-cta a, .ljm-sdfv-pass-btn)) {
  color: #1A1A1A !important;
  text-decoration: underline !important;
  text-decoration-color: #C4A265 !important;
  text-decoration-thickness: 2px !important;
  text-underline-offset: 3px;
  transition: color 0.15s ease;
}

/* Defensive: kill gold underline on any button-styled link */
.entry-content .wp-block-button__link,
.entry-content .wp-element-button,
.entry-content .button,
.entry-content .btn-primary,
.entry-content .btn-secondary,
.entry-content .editorial-cta a,
.entry-content .booking-hub__cta a,
.entry-content .booking-card a,
.entry-content .booking-hub-cta-dark a,
.entry-content .also-featured a {
  text-decoration: none !important;
  border-bottom: none !important;
}

/* FORCE button text color/bg — overrides WP core .wp-element-button defaults.
   WordPress core ships .wp-element-button with blue link colors that win
   against component CSS without !important. */
.entry-content .booking-hub__cta .wp-block-button__link,
.entry-content .booking-hub__cta .wp-element-button,
.entry-content .booking-card__recommended .wp-block-button__link,
.entry-content .booking-card__recommended .wp-element-button,
.entry-content .booking-card__details .wp-block-button__link:not(.is-style-outline .wp-block-button__link),
.entry-content .booking-card__details .wp-element-button:not(.is-style-outline .wp-element-button) {
  background: #1A1A1A !important;
  color: #fff !important;
  border-color: #1A1A1A !important;
}

.entry-content .booking-hub__cta .wp-block-button__link:hover,
.entry-content .booking-hub__cta .wp-element-button:hover,
.entry-content .booking-card__recommended .wp-block-button__link:hover,
.entry-content .booking-card__recommended .wp-element-button:hover,
.entry-content .booking-card__details .wp-block-button__link:hover,
.entry-content .booking-card__details .wp-element-button:hover {
  background: #8B6914 !important;
  color: #fff !important;
  border-color: #8B6914 !important;
}

.entry-content .booking-card__alternative .wp-block-button__link,
.entry-content .booking-card__alternative .wp-element-button {
  background: transparent !important;
  color: #265B5F !important;
  border: 1px solid #265B5F !important;
}

.entry-content .booking-card__alternative .wp-block-button__link:hover,
.entry-content .booking-card__alternative .wp-element-button:hover {
  background: #265B5F !important;
  color: #fff !important;
}

.entry-content .booking-hub-cta-dark .wp-block-button__link,
.entry-content .booking-hub-cta-dark .wp-element-button {
  background: #C4A265 !important;
  color: #1A1A1A !important;
  border: 0 !important;
}

.entry-content .booking-hub-cta-dark .wp-block-button__link:hover,
.entry-content .booking-hub-cta-dark .wp-element-button:hover {
  background: #fff !important;
  color: #1A1A1A !important;
}

.entry-content .editorial-cta a {
  background: #265B5F !important;
  color: #fff !important;
}

.entry-content .editorial-cta a:hover {
  background: #2C2C2C !important;
  color: #fff !important;
}

/* Sitewide button fallback — any .wp-element-button NOT in a known
   component gets teal-bg-white-text (matches sitewide spec) */
.entry-content .wp-block-button:not(.is-style-outline) .wp-element-button,
.entry-content .wp-block-button:not(.is-style-outline) .wp-block-button__link {
  background: #265B5F !important;
  color: #fff !important;
  border-color: #265B5F !important;
}

.entry-content .wp-block-button.is-style-outline .wp-element-button,
.entry-content .wp-block-button.is-style-outline .wp-block-button__link {
  background: transparent !important;
  color: #265B5F !important;
  border: 1px solid #265B5F !important;
}

.entry-content a:hover,
.entry-content a:focus,
.post-body a:hover,
.post-body a:focus,
.bio-content a:hover,
.bio-content a:focus,
.post-content a:hover,
.post-content a:focus {
  color: #265B5F !important;
  text-decoration-color: #C4A265 !important;
}

/* Dark-bg link variant */
.dark-bg a {
  color: #FAF8F5;
  text-decoration: underline;
  text-decoration-color: #C4A265;
  text-decoration-thickness: 2px;
}
.dark-bg a:hover { color: #C4A265; }

/* UNORDERED LISTS — gold chevron (default editorial)
   EXCLUDES only Kadence's OWN icon list (.kt-svg-icon-list) + Hubbub/toolkit.
   Standard <ul> inside Kadence containers still gets the chevron. */
.entry-content ul:not(.kt-svg-icon-list):not(.dpsp-networks-btns-wrapper):not(.toolkit-list):not(.lja-social):not(.footer-col-list):not(.splide__list):not(.kb-blocks-slider):not(.kt-blocks-carousel-init):not([class*="splide"]):not(.kt-tabs-title-list),
.post-body ul:not(.kt-svg-icon-list):not(.dpsp-networks-btns-wrapper):not(.toolkit-list):not(.lja-social):not(.footer-col-list):not(.splide__list):not(.kb-blocks-slider):not(.kt-blocks-carousel-init):not([class*="splide"]):not(.kt-tabs-title-list) {
  list-style: none;
  padding: 0;
  margin: 0 0 24px;
}

.entry-content ul:not(.kt-svg-icon-list):not(.dpsp-networks-btns-wrapper):not(.toolkit-list):not(.lja-social):not(.footer-col-list):not(.splide__list):not(.kb-blocks-slider):not(.kt-blocks-carousel-init):not([class*="splide"]):not(.kt-tabs-title-list) li,
.post-body ul:not(.kt-svg-icon-list):not(.dpsp-networks-btns-wrapper):not(.toolkit-list):not(.lja-social):not(.footer-col-list):not(.splide__list):not(.kb-blocks-slider):not(.kt-blocks-carousel-init):not([class*="splide"]):not(.kt-tabs-title-list) li {
  position: relative;
  padding-left: 24px;
  margin: 0 0 10px;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 19px;
  line-height: 1.7;
  color: #1A1A1A;
}

.entry-content ul:not(.kt-svg-icon-list):not(.dpsp-networks-btns-wrapper):not(.toolkit-list):not(.lja-social):not(.footer-col-list):not(.splide__list):not(.kb-blocks-slider):not(.kt-blocks-carousel-init):not([class*="splide"]):not(.kt-tabs-title-list) li::before,
.post-body ul:not(.kt-svg-icon-list):not(.dpsp-networks-btns-wrapper):not(.toolkit-list):not(.lja-social):not(.footer-col-list):not(.splide__list):not(.kb-blocks-slider):not(.kt-blocks-carousel-init):not([class*="splide"]):not(.kt-tabs-title-list) li::before {
  content: "›";
  position: absolute;
  left: 0;
  top: 0;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 24px;
  font-weight: 500;
  line-height: 1.1;
  color: #C4A265; /* line-height was 1.4 — co-centers chevron box with the text line so the glyph sits ON the first line, not ~4px below (2026-06-23) */
}

/* Defensive: never add chevron to ANY Kadence slider/carousel/gallery item */
.entry-content .splide__list li::before,
.entry-content .kb-blocks-slider li::before,
.entry-content .wp-block-kadence-advancedgallery li::before,
.entry-content [class*="splide"] li::before {
  content: none !important;
  display: none !important;
}
.entry-content .splide__list li,
.entry-content .kb-blocks-slider li,
.entry-content [class*="splide"] li {
  padding-left: 0 !important;
}

/* Nested UL: smaller sand-colored chevron */
.entry-content ul ul,
.post-body ul ul {
  margin: 10px 0 10px 12px;
}
.entry-content ul ul li::before,
.post-body ul ul li::before {
  font-size: 20px;
  color: #736758;
}

/* Opt-out: .plain-list — small gold dot for long/dense lists.
   !important to win against the chevron rule's :not() specificity stack. */
/* LEGOLAND California page CSS (post 30688) moved to post-local <style> on the post, 2026-06-27 */

.entry-content ul.plain-list li::before,
.post-body ul.plain-list li::before {
  content: "" !important;
  position: absolute !important;
  left: 6px !important;
  top: 10px !important;
  width: 5px !important;
  height: 5px !important;
  border-radius: 50%;
  background: #C4A265 !important;
  font-size: 0 !important;
  line-height: 0 !important;
  color: transparent !important;
  font-family: inherit !important;
}

/* ORDERED LISTS — italic gold Playfair leading-zero
   EXCLUDES Kadence blocks */
.entry-content ol:not([class*="kt-"]):not([class*="kadence"]),
.post-body ol:not([class*="kt-"]):not([class*="kadence"]) {
  list-style: none;
  padding: 0;
  margin: 0 0 24px;
  counter-reset: ljm-ol;
}

.entry-content ol:not([class*="kt-"]):not([class*="kadence"]) > li,
.post-body ol:not([class*="kt-"]):not([class*="kadence"]) > li {
  counter-increment: ljm-ol;
  position: relative;
  padding-left: 56px;
  margin: 0 0 14px;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 18px;
  line-height: 1.65;
  color: #1A1A1A;
}

.entry-content ol:not([class*="kt-"]):not([class*="kadence"]) > li::before,
.post-body ol:not([class*="kt-"]):not([class*="kadence"]) > li::before {
  content: counter(ljm-ol, decimal-leading-zero);
  position: absolute;
  left: 0;
  top: 2px;
  font-family: 'Playfair Display', Georgia, serif;
  font-style: italic;
  font-weight: 500;
  font-size: 20px;
  line-height: 1;
  color: #C4A265;
  min-width: 32px;
}

/* Nested OL: lower-roman in sand */
.entry-content ol ol,
.post-body ol ol {
  margin: 10px 0 10px 12px;
  counter-reset: ljm-ol-nested;
}
.entry-content ol ol li,
.post-body ol ol li {
  counter-increment: ljm-ol-nested;
  padding-left: 36px;
}
.entry-content ol ol li::before,
.post-body ol ol li::before {
  content: counter(ljm-ol-nested, lower-roman) ".";
  color: #736758;
  font-style: italic;
}

/* Paragraph spacing inside list items */
.entry-content li p,
.post-body li p {
  margin: 0 0 8px;
}
.entry-content li p:last-child,
.post-body li p:last-child {
  margin-bottom: 0;
}
.entry-content li > p:first-child,
.post-body li > p:first-child {
  margin-top: 0;
}

/* END section 22 */

/* ======================================================================
   SECTION 23 — Blockquotes + pull quotes + tips-from-katie callout
   (May 23, 2026, per post-content-styling-spec.md)
   ====================================================================== */

/* STANDARD BLOCKQUOTE — quiet, warm-gray rule */
.entry-content blockquote,
.post-body blockquote {
  margin: 32px 0;
  padding: 4px 0 4px 28px;
  border-left: 2px solid #E8E2D9;
  font-family: Georgia, 'Times New Roman', serif;
  font-style: italic;
  font-size: 19px;
  line-height: 1.6;
  color: #736758;
  background: transparent;
}

.entry-content blockquote p,
.post-body blockquote p {
  margin: 0 0 8px;
}
.entry-content blockquote p:last-child,
.post-body blockquote p:last-child {
  margin-bottom: 0;
}

.entry-content blockquote cite,
.post-body blockquote cite {
  display: block;
  margin-top: 12px;
  font-family: 'Montserrat', Arial, sans-serif;
  font-style: normal;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #1A1A1A;
}

/* Defensive: if <cite> is the only/first text element in a blockquote
   (bad markup pattern where quote text was wrapped in <cite> instead of <p>),
   treat it as quote body so it doesn't render as uppercase Montserrat */
.entry-content blockquote > cite:only-child,
.entry-content blockquote > cite:first-child:last-child,
.post-body blockquote > cite:only-child,
.post-body blockquote > cite:first-child:last-child {
  text-transform: none !important;
  font-family: Georgia, 'Times New Roman', serif !important;
  font-style: italic !important;
  font-size: 19px !important;
  font-weight: 400 !important;
  letter-spacing: normal !important;
  color: #736758 !important;
  display: block;
  margin: 0;
}

/* PULL QUOTE — gold rule, louder */
.entry-content .pullquote,
.post-body .pullquote {
  margin: 40px 0;
  padding: 8px 0 8px 28px;
  border-left: 3px solid #C4A265;
  max-width: 620px;
  background: transparent;
  font-style: normal;
}

.entry-content .pullquote-eyebrow,
.post-body .pullquote-eyebrow {
  display: block;
  font-family: 'Montserrat', Arial, sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 2.4px;
  text-transform: uppercase;
  color: #8B6914;
  margin: 0 0 10px;
}

.entry-content .pullquote p,
.post-body .pullquote p {
  font-family: 'Playfair Display', Georgia, serif;
  font-style: italic;
  font-size: 26px;
  line-height: 1.35;
  color: #2A2A2A;
  margin: 0;
}

.entry-content .pullquote cite,
.post-body .pullquote cite {
  display: block;
  margin-top: 14px;
  font-family: 'Montserrat', Arial, sans-serif;
  font-style: normal;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #C4A265;
}

/* TIPS FROM KATIE — advisor advice callout (teal default, gold variant) */
.entry-content .tips-from-katie > .wp-block-group__inner-container,
.post-body .tips-from-katie > .wp-block-group__inner-container {
  padding: 0;
}
.entry-content .tips-from-katie,
.post-body .tips-from-katie {
  margin: 32px 0;
  padding: 4px 0 4px 20px;
  background: #fff;
  border-left: 3px solid #265B5F;
  max-width: 720px;
}

.entry-content .tips-from-katie .tips-eyebrow,
.post-body .tips-from-katie .tips-eyebrow {
  display: block;
  font-family: 'Montserrat', Arial, sans-serif;
  font-size: 13px !important;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 2.4px;
  text-transform: uppercase;
  color: #265B5F;
  margin: 0 0 12px;
}

.entry-content .tips-from-katie p,
.post-body .tips-from-katie p {
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 19px;
  line-height: 1.7;
  color: #1A1A1A;
  margin: 0 0 14px;
}

.entry-content .tips-from-katie p:last-child,
.post-body .tips-from-katie p:last-child {
  margin-bottom: 0;
}

.entry-content .tips-from-katie p strong:first-child,
.post-body .tips-from-katie p strong:first-child {
  font-weight: 700;
  color: #1A1A1A;
}

/* Gold modifier — add `gold` class to switch accent to gold */
.entry-content .tips-from-katie.gold,
.post-body .tips-from-katie.gold {
  border-left-color: #C4A265;
}
.entry-content .tips-from-katie.gold .tips-eyebrow,
.post-body .tips-from-katie.gold .tips-eyebrow {
  color: #8B6914;
}

/* END section 23 */

/* ======================================================================
   SECTION 24 — Generic tables (WP table block, .wp-block-table)
   (May 23, 2026, per post-content-styling-spec.md)
   Quick-ref comparison table is a SEPARATE component (Section 25).
   ====================================================================== */

.entry-content table:not(.quick-ref table),
.entry-content .wp-block-table:not(.quick-ref) table,
.post-body table:not(.quick-ref table) {
  width: 100%;
  border-collapse: collapse;
  margin: 32px 0;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 17px;
  line-height: 1.5;
}

/* CRITICAL: null the default thead border that themes/Gutenberg add,
   so it doesn't overlap our gold cell-level rule (the "giant black line" fix) */
.entry-content thead,
.entry-content tfoot,
.post-body thead,
.post-body tfoot {
  border: none !important;
  background: transparent;
}

/* Match BOTH wrapped (thead th) AND unwrapped (first-row th) tables */
.entry-content thead th,
.entry-content tbody tr:first-child th,
.entry-content table > tr:first-child th,
.post-body thead th,
.post-body tbody tr:first-child th,
.post-body table > tr:first-child th {
  text-align: left;
  padding: 12px 16px;
  font-family: 'Montserrat', Arial, sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: #1A1A1A;
  border-bottom: 2px solid #C4A265;
  background: transparent;
}

.entry-content tbody td,
.post-body tbody td {
  padding: 14px 16px;
  color: #1A1A1A;
  border-bottom: 1px solid #E8E2D9;
  vertical-align: top;
}

/* Closing line on the last row — table felt visually open without it.
   Match the internal hairline weight so the bottom feels uniform with
   the rest of the table rather than competing with the gold header rule.
   (May 24, 2026 — Katie feedback on SD Zoo/Safari post.) */
.entry-content tbody tr:last-child td,
.post-body tbody tr:last-child td {
  border-bottom: 1px solid #E8E2D9;
}

.entry-content tbody tr:hover,
.post-body tbody tr:hover {
  background: #FAF8F5;
}

.entry-content .wp-block-table:not(.quick-ref),
.post-body .wp-block-table:not(.quick-ref) {
  overflow-x: auto;
  margin: 32px 0;
}

.entry-content .wp-block-table:not(.quick-ref) table,
.post-body .wp-block-table:not(.quick-ref) table {
  margin: 0;
}

@media (max-width: 600px) {
  .entry-content table:not(.quick-ref table),
  .post-body table:not(.quick-ref table) { font-size: 15px; }
  .entry-content thead th,
  .entry-content tbody td,
  .post-body thead th,
  .post-body tbody td { padding: 10px 12px; }
}

/* END section 24 */

/* ======================================================================
   SECTION 25 — Quick-ref comparison table OVERRIDE
   (May 23, 2026, per quick-ref-table-spec.md)
   MUST come after Section 22 default link rule so cascade order works.
   ====================================================================== */

.quick-ref {
  margin: 0 0 40px;
}

.quick-ref-label {
  font-family: 'Montserrat', Arial, sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #1A1A1A;
  margin-bottom: 10px;
  opacity: 0.7;
}

.quick-ref table {
  width: 100%;
  border-collapse: collapse;
  table-layout: auto;
  margin: 0;
}

.quick-ref th {
  font-family: 'Montserrat', Arial, sans-serif;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: #736758;
  padding: 0 0 8px;
  text-align: left;
  border-bottom: 1px solid #d9d2c4;
  background: transparent;
}

.quick-ref td {
  padding: 10px 12px 10px 0;
  vertical-align: top;
  border-bottom: 1px solid #ece6dc;
}

.quick-ref td:last-child { padding-right: 0; }

.quick-ref td.qn {
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 18px;
  font-weight: 400;
  color: #736758;
  width: 32px;
  padding-right: 8px;
}

.quick-ref td.qt {
  font-family: Inter, system-ui, -apple-system, sans-serif;
  font-size: 14px;
}

/* Link override — teal bold, lighter underline */
.entry-content .quick-ref a,
.post-body .quick-ref a,
.quick-ref a {
  color: #265B5F !important;
  font-weight: 700;
  font-family: Inter, system-ui, -apple-system, sans-serif;
  font-size: 14px;
  line-height: 1.4;
  text-decoration: underline !important;
  text-decoration-color: #C4A265 !important;
  text-decoration-thickness: 1px !important;
  text-underline-offset: 3px;
}

.entry-content .quick-ref a:hover,
.entry-content .quick-ref a:focus,
.post-body .quick-ref a:hover,
.post-body .quick-ref a:focus,
.quick-ref a:hover,
.quick-ref a:focus {
  color: #1A1A1A !important;
  text-decoration-color: #C4A265 !important;
}

.quick-ref .qs {
  display: block;
  margin-top: 4px;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 13px;
  font-style: italic;
  color: #736758;
  font-weight: 400;
  line-height: 1.4;
}

.quick-ref td.qv {
  font-family: 'Montserrat', Arial, sans-serif;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: #826A2C;
  white-space: nowrap;
  text-align: right;
}

.quick-ref td.qv.best { color: #2C6E49; }
.quick-ref td.qv.good { color: #826A2C; }

@media (max-width: 600px) {
  .quick-ref td.qv {
    text-align: left;
    padding-top: 0;
  }
  .quick-ref td.qn { width: 24px; }
}

/* END section 25 */

/* ======================================================================
   SECTION 26 — Guide-CTA cross-link pattern OVERRIDE
   (May 23, 2026, per guide-cta-link-spec.md)
   "Read our full X guide →" — teal bold, NO underline, trailing arrow.
   MUST come after Section 22 default link rule.
   ====================================================================== */

.guide-cta {
  margin: 8px 0 24px;
}

.entry-content .guide-cta a,
.entry-content .guide-cta a:link,
.entry-content .guide-cta a:visited,
.post-body .guide-cta a,
.post-body .guide-cta a:link,
.post-body .guide-cta a:visited,
.guide-cta a,
.guide-cta a:link,
.guide-cta a:visited {
  color: #265B5F !important;
  font-family: 'Montserrat', Arial, sans-serif !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  border-bottom: none !important;
  padding: 0 0 2px 0;
  transition: color 0.15s ease;
}

.entry-content .guide-cta a:hover,
.entry-content .guide-cta a:focus,
.post-body .guide-cta a:hover,
.post-body .guide-cta a:focus,
.guide-cta a:hover,
.guide-cta a:focus {
  color: #1A1A1A !important;
}

/* END section 26 */

/* ======================================================================
   SECTION 27 — Kadence Blocks compatibility shim (May 23, 2026)

   Many existing posts (oceanside-with-kids, etc.) use Kadence Blocks
   with their own list/icon/layout markup. Two jobs here:
     1. Exclude Kadence/Hubbub/toolkit lists from Section 22's default
        UL styling (which was adding double chevrons + wrong padding)
     2. Provide foundational layout for Kadence icon lists that the
        Kadence Blocks plugin no longer fully styles without theme
   ====================================================================== */

/* Reset Section 22 styling on Kadence icon lists, Hubbub share buttons,
   and Trip Planning Toolkit lists — they have their own markers */
.entry-content .kt-svg-icon-list,
.entry-content .kt-svg-icon-list li,
.entry-content .dpsp-networks-btns-wrapper,
.entry-content .dpsp-networks-btns-wrapper li,
.entry-content .toolkit-list,
.entry-content .toolkit-list li,
.post-body .kt-svg-icon-list,
.post-body .kt-svg-icon-list li,
.post-body .dpsp-networks-btns-wrapper,
.post-body .dpsp-networks-btns-wrapper li,
.post-body .toolkit-list,
.post-body .toolkit-list li {
  padding-left: 0 !important;
  list-style: none !important;
}

.entry-content .kt-svg-icon-list li::before,
.entry-content .dpsp-networks-btns-wrapper li::before,
.entry-content .toolkit-list li::before,
.post-body .kt-svg-icon-list li::before,
.post-body .dpsp-networks-btns-wrapper li::before,
.post-body .toolkit-list li::before {
  content: none !important;
  display: none !important;
}

/* Kadence blocks — FONTS ONLY (per spec, leave layout/decoration alone).
   Brand cohesion via typography; let Kadence Blocks plugin handle layout. */
.entry-content .kt-svg-icon-list .kt-svg-icon-list-text,
.entry-content .wp-block-kadence-advancedheading,
.entry-content [class*="kt-adv-heading"] {
  font-family: Georgia, 'Times New Roman', serif;
  color: #1A1A1A;
}

/* Make Kadence list icons invisible (white, on white/light backgrounds) —
   launch-window band-aid; post-launch rebuild these posts in native blocks */
.entry-content .kt-svg-icon-list .kb-svg-icon-wrap,
.entry-content .kt-svg-icon-list .kb-svg-icon-wrap *,
.post-body .kt-svg-icon-list .kb-svg-icon-wrap,
.post-body .kt-svg-icon-list .kb-svg-icon-wrap * {
  color: #fff !important;
  stroke: #fff !important;
  fill: #fff !important;
  background: transparent !important;
  border-color: transparent !important;
}

/* Kadence headings inherit Playfair like other headings (fonts only) */
.entry-content [class*="kt-adv-heading"] h1,
.entry-content [class*="kt-adv-heading"] h2,
.entry-content [class*="kt-adv-heading"] h3,
.entry-content [class*="kt-adv-heading"] h4 {
  font-family: 'Playfair Display', Georgia, serif;
}

/* END section 27 */

/* ======================================================================
   SECTION 28 — Headings (H1-H4) + figures + captions
   (May 23, 2026 v2, per post-content-styling-spec.md updated)

   H3 gets a small gold rule accent above. H2 64px top margin for section
   breaks. OL/figure rules also tuned to spec.
   ====================================================================== */

/* HEADING FONTS — apply universally (incl. Kadence) for brand cohesion */
.entry-content h1,
.entry-content h2,
.entry-content h3,
.entry-content h4 {
  font-family: 'Playfair Display', Georgia, serif !important;
  color: #1A1A1A !important;
}

/* HEADING SIZING + MARGINS — only on standard WP heading block, NOT Kadence
   (Kadence headings keep their own sizing/spacing per spec) */
.entry-content h1.wp-block-heading,
.entry-content > h1 {
  font-weight: 500 !important;
  font-size: clamp(36px, 4vw, 48px) !important;
  line-height: 1.1 !important;
  letter-spacing: -0.4px !important;
  margin: 0 0 24px !important;
}

.entry-content h2.wp-block-heading,
.entry-content > h2 {
  font-weight: 500 !important;
  font-size: clamp(28px, 3vw, 36px) !important;
  line-height: 1.15 !important;
  margin: 64px 0 18px !important;
}

.entry-content h3.wp-block-heading,
.entry-content > h3 {
  font-weight: 500 !important;
  font-size: clamp(24px, 2.4vw, 28px) !important;
  line-height: 1.25 !important;
  margin: 48px 0 14px !important;
  padding-top: 0 !important;
}

.entry-content h3.wp-block-heading::before,
.entry-content > h3::before {
  display: none !important;
  content: none !important;
}

.entry-content h4.wp-block-heading,
.entry-content > h4 {
  font-weight: 600 !important;
  font-size: 20px !important;
  line-height: 1.3 !important;
  margin: 32px 0 10px !important;
}

/* Tighten gaps when headings stack directly (no body between) */
.entry-content h2 + h3 { margin-top: 24px !important; }
.entry-content h3 + h4 { margin-top: 16px !important; }

/* Tighten gap when H3 follows a list — major-section break feels too big after a bullet list */
.entry-content > ul + h3,
.entry-content > ol + h3,
.entry-content > .wp-block-list + h3 {
  margin-top: 32px !important;
}

/* Same for H2 after list */
.entry-content > ul + h2,
.entry-content > ol + h2,
.entry-content > .wp-block-list + h2 {
  margin-top: 48px !important;
}

/* First heading after intro — less margin-top */
.entry-content > h2:first-of-type,
.entry-content > p:first-of-type + h2 {
  margin-top: 32px !important;
}

/* Headings inside callout components — no top margin or gold accent */
.entry-content .tips-from-katie h3,
.entry-content .tips-from-katie h4,
.entry-content .see-also h3,
.entry-content .see-also h4,
.entry-content .pullquote h3,
.entry-content .pullquote h4,
.entry-content .quick-ref h3,
.entry-content .quick-ref h4 {
  margin-top: 0 !important;
  padding-top: 0 !important;
}
.entry-content .tips-from-katie h3::before,
.entry-content .see-also h3::before,
.entry-content .pullquote h3::before,
.entry-content .quick-ref h3::before {
  display: none !important;
}

/* Images + figures — consistent margin top + bottom */
.entry-content figure,
.entry-content .wp-block-image,
.entry-content figure.wp-block-image {
  margin: 32px 0 !important;
}

.entry-content .wp-block-image img,
.entry-content figure.wp-block-image img {
  display: block;
  height: auto;
  max-width: 100%;
}

/* Figure captions — italic Georgia, sand color, centered */
.entry-content .wp-block-image figcaption,
.entry-content figure figcaption,
.entry-content .wp-element-caption {
  font-family: Georgia, 'Times New Roman', serif !important;
  font-size: 14px !important;
  font-style: italic !important;
  line-height: 1.5 !important;
  color: #736758 !important;
  text-align: center !important;
  margin: 10px 0 0 !important;
}

/* Single posts have a sidebar — constrain alignfull/alignwide to text column */
.entry-content .alignfull,
.entry-content figure.alignfull,
.entry-content .wp-block-image.alignfull,
.entry-content .alignwide,
.entry-content figure.alignwide,
.entry-content .wp-block-image.alignwide {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  margin-top: 36px !important;
  margin-bottom: 36px !important;
  position: static;
  left: auto;
  transform: none;
}

/* === FULL-BLEED CONTENT IMAGES ON MOBILE (added 2026-05-30) START === */
/* Desktop keeps the sidebar constraint above. On mobile the sidebar stacks
   below the content, so standard content images break out edge-to-edge for a
   more immersive, editorial feel. Kadence and HTML-block images are left as authored. */
@media (max-width: 768px) {
  .entry-content figure.wp-block-image,
  .entry-content figure.wp-block-image.alignfull,
  .entry-content figure.wp-block-image.alignwide,
  .entry-content .wp-block-image.alignfull,
  .entry-content .wp-block-image.alignwide {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
  }
  .entry-content figure.wp-block-image img {
    width: 100% !important;
    height: auto !important;
  }
  .entry-content figure.wp-block-image figcaption {
    padding-left: 20px;
    padding-right: 20px;
  }
  .entry-content [class*="kt-"] figure.wp-block-image,
  .entry-content [class*="kadence"] figure.wp-block-image,
  .entry-content [class*="kb-"] figure.wp-block-image {
    width: auto !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
}
/* === FULL-BLEED CONTENT IMAGES ON MOBILE (added 2026-05-30) END === */

/* === TEAM GRID native-group bridge (added 2026-05-30) START === */
/* About team grid is built with native wp:group blocks; WordPress wraps the
   member cards in a .wp-block-group__inner-container, so route the grid layout
   onto that inner container (the .lja-member cards are its direct children). */


/* === TEAM GRID native-group bridge (added 2026-05-30) END === */

/* === KADENCE DIVIDER left-gutter overflow fix (added 2026-05-30, REMOVABLE — see REMOVABLE-PATCHES.md) START === */
/* Kadence hr.kt-divider centers via left:50% + translateX(-50%), which needs
   position:relative; the GP theme reset it to static, so left:50% stops working
   but the transform still yanks the divider ~half its width into the left gutter
   (visible in hotel-review "What I Love"/"Good to Know" boxes). The parent
   .kt-block-spacer-halign-center already centers it, so the transform is just
   broken leftover. Neutralize it. REMOVE when Kadence is stripped from reviews. */
.entry-content hr.kt-divider { transform: none !important; margin-left: auto !important; margin-right: auto !important; }
/* Kadence thumbslider — remove dead space between the main photo and the thumbnail strip (photo fills its slide) */
.entry-content [class*="kb-gallery-wrap"]:has(.splide--nav) .splide:not(.splide--nav) .splide__slide{height:100%!important}
.entry-content [class*="kb-gallery-wrap"]:has(.splide--nav) .splide:not(.splide--nav) .splide__slide figure{height:100%!important;margin:0!important}
.entry-content [class*="kb-gallery-wrap"]:has(.splide--nav) .splide:not(.splide--nav) .splide__slide img{height:100%!important;width:100%!important;object-fit:cover!important}
/* === GALLERY SLIDER STYLES — native core Gallery; block styles "LJM Slider"/"LJM Swipe Row" (snippet) => is-style-ljm-slider / is-style-ljm-swipe === */
/* B) Swipe row (CSS only): bulk-upload friendly, mixed aspects = uniform height, variable width */
.entry-content .wp-block-gallery.is-style-ljm-swipe,.entry-content .wp-block-gallery.ljm-gallery-swipe{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto;scroll-snap-type:x mandatory;gap:10px;-webkit-overflow-scrolling:touch;max-width:none}
.entry-content .wp-block-gallery.is-style-ljm-swipe .wp-block-image,.entry-content .wp-block-gallery.ljm-gallery-swipe .wp-block-image{flex:0 0 auto!important;margin:0!important;width:auto!important;scroll-snap-align:center;text-align:center}
.entry-content .wp-block-gallery.is-style-ljm-swipe .wp-block-image img,.entry-content .wp-block-gallery.ljm-gallery-swipe .wp-block-image img{height:60vh!important;max-height:520px;width:auto!important;max-width:none!important;object-fit:cover;border-radius:3px;display:block}
.entry-content .wp-block-gallery.is-style-ljm-swipe::-webkit-scrollbar,.entry-content .wp-block-gallery.ljm-gallery-swipe::-webkit-scrollbar{height:6px}
.entry-content .wp-block-gallery.is-style-ljm-swipe::-webkit-scrollbar-thumb,.entry-content .wp-block-gallery.ljm-gallery-swipe::-webkit-scrollbar-thumb{background:#c8ad79;border-radius:3px}
@media(max-width:781px){.entry-content .wp-block-gallery.is-style-ljm-swipe .wp-block-image img,.entry-content .wp-block-gallery.ljm-gallery-swipe .wp-block-image img{height:44vh!important}}
/* A) Arrow/dot slider: snippet JS converts the gallery into .ljm-gallery-splide (Splide engine + Splide stylesheet loaded by the snippet) */
.entry-content .ljm-gallery-splide{margin:24px 0;max-width:none}
.entry-content .ljm-gallery-splide .splide__slide img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block;border-radius:3px}
.entry-content .ljm-gallery-splide .splide__arrow{background:#235154;opacity:.95;width:2.4em;height:2.4em;border-radius:50%}
.entry-content .ljm-gallery-splide .splide__arrow svg{fill:#fff;width:1.1em;height:1.1em}
.entry-content .ljm-gallery-splide .splide__pagination__page{background:#c8ad79;opacity:.5}
.entry-content .ljm-gallery-splide .splide__pagination__page.is-active{background:#9c7c46;opacity:1;transform:scale(1.2)}
/* Captions (both gallery styles) — native gallery caption, styled like the site default (small italic sand, centered) */
.entry-content .wp-block-gallery.is-style-ljm-swipe figcaption,.entry-content .wp-block-gallery.ljm-gallery-swipe figcaption,.entry-content .ljm-gallery-splide .splide__slide figcaption{font-family:var(--font-ui,Montserrat,Arial,sans-serif)!important;font-size:12px!important;font-style:italic;color:var(--sand,#8a857d)!important;text-align:center!important;margin:8px auto 0!important;padding:0 10px;line-height:1.4;max-width:100%;background:none!important}
/* === KADENCE DIVIDER left-gutter overflow fix (added 2026-05-30) END === */

/* === KADENCE ICON LISTS -> standard brand bullets (Katie 2026-05-31, REMOVABLE — see REMOVABLE-PATCHES.md) START === */
/* The .kt-svg-icon-list class is excluded from the sitewide gold-chevron rule, so
   replicate the standard chevron here, hide the SVG icon, and drop the grid layout.
   Makes every Kadence icon list render identical to the site's normal bullet lists.
   REMOVE when Kadence icon-list blocks are gone. */
.entry-content ul.kt-svg-icon-list,
.post-body ul.kt-svg-icon-list { display:block !important; list-style:none !important; margin:0 0 22px !important; padding:0 !important; }
.entry-content ul.kt-svg-icon-list > li,
.post-body ul.kt-svg-icon-list > li { display:list-item !important; position:relative !important; padding-left:22px !important; margin:0 0 8px !important; }
.entry-content ul.kt-svg-icon-list .kb-svg-icon-wrap,
.entry-content ul.kt-svg-icon-list svg,
.post-body ul.kt-svg-icon-list .kb-svg-icon-wrap,
.post-body ul.kt-svg-icon-list svg { display:none !important; }
.entry-content ul.kt-svg-icon-list > li::before,
.post-body ul.kt-svg-icon-list > li::before { content:"›" !important; display:block !important; position:absolute !important; left:0 !important; top:0 !important; font-family:'Playfair Display', Georgia, serif !important; font-size:20px !important; font-weight:500 !important; line-height:1.3 !important; color:#C4A265 !important; }
/* === KADENCE ICON LISTS -> standard brand bullets END === */

/* === READING PROGRESS BAR — mobile: fill-only, no track line (Katie 2026-05-30) === */
/* Show the bar on mobile but make the TRACK transparent so there's no faint stray
   line under the header. Only the teal FILL shows — empty at the top, grows as you
   read. That fill IS the progress indicator. */
@media (max-width: 768px) {
  /* sit at the TOC bar's bottom edge (TOC spans 64–110px stuck) so it's not hidden
     behind it; transparent track so nothing shows at the page top, only the teal fill */
  .ljm-reading-progress { display: block !important; background: transparent !important; top: 110px !important; }
  .ljm-reading-progress-fill { background: #265B5F !important; }
}
/* === END === */

/* ======================================================================
   SECTION 29 — Horizontal separators — RETIRED (May 24, 2026)
   Original gold-diamond-default rules removed. The HR system was
   inverted (hairline default + .is-style-diamond opt-in) and now lives
   in the "HR / SEPARATOR" block at the bottom of this bundle.
   See: post-content-styling-spec.md §6b and STAGING-CHANGES-LOG.md.
   ====================================================================== */

/* (rules deleted May 24, 2026 — see header comment above) */

/* END section 29 */

/* ======================================================================
   SECTION 30 — See Also inline pointer (May 23, 2026)
   Per post-content-styling-spec.md §5c. Short cross-reference with icon.
   ====================================================================== */

.entry-content .see-also {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 14px 22px;
  margin: 24px 0;
  background: #FAF8F5;
  max-width: 720px;
  border: none;
}

.entry-content .see-also-icon {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  color: #1A1A1A;
  display: flex;
  align-items: center;
  justify-content: center;
}

.entry-content .see-also-icon svg {
  width: 100%;
  height: 100%;
  display: block;
  fill: currentColor;
}

.entry-content .see-also-text {
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 17px;
  line-height: 1.5;
  color: #1A1A1A;
  margin: 0;
}

/* END section 30 */

/* ======================================================================
   SECTION 31 — Buttons (May 23, 2026)
   Per post-content-styling-spec.md §8. Primary (filled teal) + secondary
   (outline). Primary goes full-width on mobile by default.
   ====================================================================== */

.entry-content .button,
.entry-content .wp-block-button__link,
.entry-content .btn-primary,
.entry-content .btn-secondary {
  display: inline-block;
  font-family: 'Montserrat', Arial, sans-serif !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  border: 2px solid transparent !important;
  padding: 16px 32px !important;
  border-radius: 2px;
  cursor: pointer;
  transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
  line-height: 1.2;
  text-align: center;
}

/* Primary — filled teal */
.entry-content .button,
.entry-content .wp-block-button__link:not(.is-style-outline),
.entry-content .btn-primary {
  background: #265B5F !important;
  color: #fff !important;
  border-color: #265B5F !important;
}
.entry-content .button:hover,
.entry-content .wp-block-button__link:not(.is-style-outline):hover,
.entry-content .btn-primary:hover {
  background: #1A4448 !important;
  border-color: #1A4448 !important;
  color: #fff !important;
}

/* Secondary — outline */
.entry-content .btn-secondary,
.entry-content .is-style-outline .wp-block-button__link {
  background: transparent !important;
  color: #265B5F !important;
  border-color: #265B5F !important;
}
.entry-content .btn-secondary:hover,
.entry-content .is-style-outline .wp-block-button__link:hover {
  background: #265B5F !important;
  color: #fff !important;
}

/* Mobile — primary buttons go full-width by default */
@media (max-width: 640px) {
  .entry-content .button,
  .entry-content .wp-block-button__link:not(.is-style-outline),
  .entry-content .btn-primary {
    width: 100%;
    display: block;
  }
  .entry-content .auto-width-mobile {
    width: auto !important;
    display: inline-block !important;
  }
  .entry-content .full-width-mobile {
    width: 100% !important;
    display: block !important;
  }
}

/* END section 31 */

/* ======================================================================
   SECTION 32 — Legacy .lj-note + .lj-eyebrow components (May 23, 2026)

   Migrated from per-post CSS so .lj-note "Advisor Intel" / "Good to Know"
   callouts and .lj-eyebrow labels work sitewide. After this lands, posts
   that previously declared this CSS inline can strip it from their
   _kad_blocks_custom_css meta or wherever it lived.
   ====================================================================== */

/* .lj-note — gold-bordered advisor intel callout (tightened margins May 23) */
.entry-content .lj-note,
.post-body .lj-note,
.entry-content .wp-block-group.lj-note,
.post-body .wp-block-group.lj-note {
  border-left: 3px solid #C4A265;
  padding: 4px 0 4px 24px;
  margin: 18px 0;
  background: transparent;
}

.entry-content .lj-note .wp-block-group__inner-container,
.post-body .lj-note .wp-block-group__inner-container {
  padding: 0;
}

.entry-content .lj-note__eyebrow,
.post-body .lj-note__eyebrow {
  font-family: 'Montserrat', Arial, sans-serif !important;
  font-weight: 300 !important;
  font-size: 11px !important;
  letter-spacing: 2.5px !important;
  text-transform: uppercase !important;
  color: #C4A265 !important;
  margin: 0 0 12px !important;
}

.entry-content .lj-note p,
.post-body .lj-note p {
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 18px;
  line-height: 1.6;
  color: #1A1A1A;
  margin: 0 0 14px;
}

.entry-content .lj-note p:last-child,
.post-body .lj-note p:last-child {
  margin-bottom: 0;
}

/* Bold lead-in pattern */
.entry-content .lj-note p strong:first-child,
.post-body .lj-note p strong:first-child {
  font-weight: 600;
  color: #1A1A1A;
}

/* .lj-eyebrow — small gold uppercase label above a list or H2 */
.entry-content .lj-eyebrow,
.post-body .lj-eyebrow {
  font-family: 'Montserrat', Arial, sans-serif !important;
  font-weight: 300 !important;
  font-size: 11px !important;
  letter-spacing: 2.5px !important;
  text-transform: uppercase !important;
  color: #C4A265 !important;
  margin: 2.5em 0 0.25em !important;
}

/* When .lj-eyebrow is immediately followed by H2 or list, tighten the gap */
.entry-content .lj-eyebrow + h2,
.post-body .lj-eyebrow + h2 {
  margin-top: 0.25em !important;
}

.entry-content .lj-eyebrow + ul,
.entry-content .lj-eyebrow + ol,
.entry-content .lj-eyebrow + .wp-block-list,
.post-body .lj-eyebrow + ul,
.post-body .lj-eyebrow + ol,
.post-body .lj-eyebrow + .wp-block-list {
  margin-top: 8px !important;
}

/* END section 32 */

/* ======================================================================
   SECTION 34 — Author end-of-post bio box (.ljm-post-author-box)
   (May 23, 2026)

   Renders below post content, above related posts. Photo left + name +
   bio + social icons right. Stacked on mobile.
   ====================================================================== */

.ljm-post-author-box {
  display: flex;
  align-items: flex-start;
  gap: 28px;
  max-width: 720px;
  margin: 56px auto 40px;
  padding: 28px 0 0;
  border-top: 1px solid #E8E2D9;
}

.ljm-post-author-box .ljm-author-photo-link {
  flex-shrink: 0;
  display: block;
  border: none !important;
  text-decoration: none !important;
}

.ljm-post-author-box .ljm-author-photo {
  width: 120px !important;
  height: 120px !important;
  border-radius: 50%;
  object-fit: cover;
  display: block;
  margin: 0 !important;
  background: #F5F1EB;
}

.ljm-post-author-box .ljm-author-text {
  flex: 1;
  min-width: 0;
}

.ljm-post-author-box .ljm-author-name {
  display: block;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 22px;
  font-weight: 500;
  color: #1A1A1A !important;
  text-decoration: none !important;
  border-bottom: none !important;
  margin: 0 0 10px;
  line-height: 1.2;
  transition: color 0.15s ease;
}

.ljm-post-author-box .ljm-author-name:hover {
  color: #265B5F !important;
}

.ljm-post-author-box .ljm-author-bio {
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 16px;
  line-height: 1.6;
  color: #2C2C2C;
  margin: 0 0 14px;
}

.ljm-post-author-box .ljm-author-bio p {
  margin: 0 0 10px;
}

.ljm-post-author-box .ljm-author-bio p:last-child {
  margin-bottom: 0;
}

/* Social row */
.ljm-post-author-box .ljm-author-social {
  display: flex;
  gap: 14px;
  align-items: center;
  margin-top: 6px;
}

.ljm-post-author-box .ljm-author-social a {
  display: inline-flex;
  color: #1A1A1A !important;
  text-decoration: none !important;
  background: none !important;
  border: none !important;
  padding: 0 !important;
  transition: color 0.15s ease;
}

.ljm-post-author-box .ljm-author-social a:hover {
  color: #265B5F !important;
}

.ljm-post-author-box .ljm-author-social a svg {
  display: block;
}

/* Mobile — stack photo above text */
@media (max-width: 600px) {
  .ljm-post-author-box {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 16px;
  }
  .ljm-post-author-box .ljm-author-photo {
    width: 100px !important;
    height: 100px !important;
  }
  .ljm-post-author-box .ljm-author-social {
    justify-content: center;
  }
}

/* END section 34 */

/* ======================================================================
   SECTION 35 — Global Post Components (Hotel Review Design System)
   (May 23, 2026, migrated from global-post-components.css)

   Reusable component classes for hotel reviews + any post pattern:
     .editorial-summary   — hotel review hero (At a Glance + lead + CTA)
     .editorial-balance   — What I Love / Good to Know two-column
     .booking-hub         — VIP booking section (with --cards variant)
     .booking-card        — multi-path booking cards (HDC, Hualalai, etc.)
     .booking-hub-cta-dark— dark CTA inside cards variant
     .badge               — inline tag/label (most-booked, book-quickly, etc.)
     .room-list           — room/restaurant/attraction entry pattern
     .stats               — author archive + hotel review stats cards
     .pros-list / .cons-list — small +/− bullet lists for sub-section blocks
     .also-featured       — outline-button round-up row

   No !important. Color tokens locked. WCAG AA on all readable text.
   ====================================================================== */

/* 1. BOOKING HUB */


/* 3. BADGE */
.entry-content .badge { display: inline-block; vertical-align: 1px; font-family: 'Montserrat', sans-serif; font-size: 9px; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; padding: 2px 8px; line-height: 1.4; background: #fff; border-radius: 0; }
.entry-content .badge--most-booked { border: 1px solid #C4A265; color: #8B6914; }
.entry-content .badge--book-quickly { border: 1px solid #265B5F; color: #265B5F; }
.entry-content .badge--new { border: 1px solid #2C6E49; color: #2C6E49; }
.entry-content .badge--limited { border: 1px solid #C75A3A; color: #C75A3A; }
.entry-content .badge--sale { border: 1px solid #8B6914; color: #8B6914; }
.entry-content .badge--vip-only { border: 1px solid #1A1A1A; color: #1A1A1A; }
.entry-content .badge--editors-pick { border: 1px solid #C4A265; color: #8B6914; background: #FBFAF7; }
.entry-content p .badge { background: #FBFAF7; }

/* 4. ROOM LIST */
.entry-content .room-list { margin: 24px 0 32px; }
.entry-content .room-list__entry { border-top: 1px solid #E6E0D6; padding: 14px 0; }
/* Hardening: if a room-list entry is copied in as a FLOW group (not flex), WP wraps its contents in .wp-block-group__inner-container, whose box/padding blows the entry height out (seen on FS Lanai: 264px vs HDC 183px). display:contents drops that wrapper so title-row + desc lay out as direct children again. No-op where the wrapper is absent (HDC/store). 2026-06-24. */
.entry-content .room-list__entry > .wp-block-group__inner-container { display: contents; }
.entry-content .room-list__entry:last-child { border-bottom: 1px solid #E6E0D6; }
.entry-content .room-list__entry--highlighted { background: transparent; padding-left: 16px; padding-right: 16px; border-left: 3px solid #C4A265; }
.entry-content .room-list__entry--book-quickly { background: transparent; padding-left: 16px; padding-right: 16px; border-left: 3px solid #265B5F; }
.entry-content .room-list__title-row { display: flex; align-items: center; gap: 10px; margin-bottom: 4px; flex-wrap: wrap; }
.entry-content .room-list__title { font-family: 'Playfair Display', Georgia, serif; font-weight: 500; font-size: 17px; color: #1A1A1A; line-height: 1.3; }
/* Room name can be ANY element: plain span/p (default) OR a real heading (h2-h6) when you want it to count for SEO/outline. This neutralizes the sitewide heading sizing/margins/uppercase so an h-tag .room-list__title looks identical to the span. Specificity (0,3,0)+!important beats the .entry-content h3.wp-block-heading (0,2,1) rules. TOC note: the auto-TOC picks up H2s ONLY, so any heading h3-h6 is safe for room names (won't appear in the TOC) — only avoid h2. 2026-06-24. */
.entry-content .room-list__entry .room-list__title {
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: 17px !important;
  font-weight: 500 !important;
  line-height: 1.3 !important;
  color: #1A1A1A !important;
  margin: 0 !important;
  padding: 0 !important;
  text-transform: none !important;
  letter-spacing: normal !important;
}
.entry-content .room-list__entry .room-list__title::before { content: none !important; display: none !important; }
.entry-content .room-list__desc { font-family: Georgia, serif; font-size: 16px; line-height: 1.6; color: #1A1A1A; margin: 0; }
.entry-content .room-list__desc em { color: #8B6914; font-style: italic; }

/* 5. STATS */
.entry-content .stats { background: #fff; border-top: 1px solid #C4A265; border-bottom: 1px solid #C4A265; padding: 28px 24px; margin: 28px 0; }
.entry-content .stats__intro { text-align: center; margin: 0 0 22px; font-family: 'Playfair Display', Georgia, serif; font-size: 22px; line-height: 1.35; color: #1A1A1A; font-weight: 400; }
.entry-content .stats__intro em { color: #8B6914; font-style: italic; }
.entry-content .stats__cards { display: flex; flex-wrap: wrap; gap: 18px; justify-content: center; }
.entry-content .stats__card { flex: 1 1 200px; max-width: 280px; background: #fff; border: 1px solid #ECE6DA; padding: 24px 18px; text-align: center; }
.entry-content .stats__number { display: block; font-family: 'Playfair Display', Georgia, serif; font-size: 32px; font-weight: 300; color: #8B6914; line-height: 1; margin: 0; }
.entry-content .stats__label { display: block; margin-top: 10px; font-family: 'Montserrat', sans-serif; font-size: 11px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; color: #1A1A1A; line-height: 1.4; }

/* 6. PROS-LIST / CONS-LIST */
.entry-content ul.pros-list, .entry-content ul.cons-list { list-style: none; padding: 0; margin: 0 0 24px; font-family: Georgia, serif; font-size: 16px; line-height: 1.55; }
.entry-content ul.pros-list li, .entry-content ul.cons-list li { position: relative; padding: 5px 0 5px 22px; margin: 0; color: #1A1A1A; }
.entry-content ul.pros-list li::before { content: "+"; position: absolute; left: 2px; top: 4px; color: #C4A265; font-weight: 700; font-size: 18px; line-height: 1; font-family: 'Playfair Display', Georgia, serif; }
.entry-content ul.cons-list li::before { content: "−"; position: absolute; left: 2px; top: 5px; color: #736758; font-weight: 700; font-size: 16px; line-height: 1; font-family: 'Playfair Display', Georgia, serif; }

/* 7a. EDITORIAL SUMMARY */
.entry-content .editorial-summary { background: #FAF8F5; border: 1px solid #F5F1EB; padding: 40px 44px 32px; margin: 32px 0 40px; font-family: Georgia, 'Times New Roman', serif; }
.entry-content .editorial-summary-eyebrow { font-family: 'Montserrat', Arial, sans-serif; font-weight: 500; font-size: 11px; letter-spacing: 2.5px; text-transform: uppercase; color: #736758; text-align: center; margin: 0 0 24px; }
.entry-content .editorial-summary-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; border-top: 1px solid #F5F1EB; border-bottom: 1px solid #F5F1EB; padding: 22px 0; margin-bottom: 30px; }
.entry-content .editorial-summary-fact { text-align: center; }
.entry-content .editorial-summary-fact-label { font-family: 'Montserrat', Arial, sans-serif; font-weight: 500; font-size: 10px; letter-spacing: 2px; text-transform: uppercase; color: #736758; margin: 0 0 8px; }
.entry-content .editorial-summary-fact-value { font-family: 'Playfair Display', Georgia, serif; font-weight: 500; font-size: 19px; color: #1A1A1A; line-height: 1.3; margin: 0; }
.entry-content .editorial-summary-lead { font-family: 'Playfair Display', Georgia, serif; font-style: italic; font-weight: 400; font-size: 21px; line-height: 1.5; color: #1A1A1A; text-align: center; margin: 0 auto 30px; max-width: 580px; }
.entry-content .editorial-inclusion { background: #fff; border-left: 3px solid #C4A265; padding: 24px 30px; margin: 0 0 30px; }
.entry-content .editorial-inclusion-label { font-family: 'Montserrat', Arial, sans-serif; font-weight: 500; font-size: 10px; letter-spacing: 2px; text-transform: uppercase; color: #8B6914; margin: 0 0 12px; }
.entry-content .editorial-inclusion-list { list-style: none; padding: 0; margin: 0; font-family: Georgia, serif; font-size: 15.5px; line-height: 1.7; color: #1A1A1A; }
.entry-content .editorial-inclusion-list li { position: relative; padding-left: 18px; margin-bottom: 4px; }
.entry-content .editorial-inclusion-list li::before { content: "·"; position: absolute; left: 4px; top: -2px; color: #C4A265; font-weight: 700; font-size: 22px; line-height: 1; }
.entry-content .editorial-cta { text-align: center; margin-top: 4px; }
.entry-content .editorial-cta a { display: inline-block; background: #265B5F; color: #fff; font-family: 'Montserrat', Arial, sans-serif; font-weight: 500; font-size: 12px; letter-spacing: 2px; text-transform: uppercase; padding: 14px 36px; text-decoration: none; border-bottom: none; transition: background 0.2s ease; }
.entry-content .editorial-cta a:hover { background: #2C2C2C; color: #fff; }
.entry-content .editorial-contact { display: flex; flex-wrap: wrap; justify-content: center; gap: 32px; margin-top: 30px; padding-top: 24px; border-top: 1px solid #F5F1EB; }
.entry-content .editorial-contact-item { font-family: 'Montserrat', Arial, sans-serif; font-size: 12px; color: #1A1A1A; line-height: 1.5; text-align: center; }
.entry-content .editorial-contact-label { display: block; font-size: 10px; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; color: #8B6914; margin-bottom: 4px; }
.entry-content .editorial-contact-item a { color: #265B5F; text-decoration: none; border-bottom: 1px solid #C4A265; }
.entry-content .editorial-contact-item a:hover { color: #1A1A1A; }

/* 7b. EDITORIAL BALANCE */
.entry-content .editorial-balance { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; margin: 48px 0 56px; }
.entry-content .editorial-balance-col { font-family: Georgia, serif; }
.entry-content .editorial-balance-eyebrow { font-family: 'Montserrat', Arial, sans-serif; font-weight: 600; font-size: 12px; letter-spacing: 2.5px; text-transform: uppercase; margin: 0 0 10px; }
.entry-content .editorial-balance-col.love .editorial-balance-eyebrow { color: #265B5F; }
.entry-content .editorial-balance-col.know .editorial-balance-eyebrow { color: #8B6914; }
.entry-content .editorial-balance-rule { border: 0; border-top: 1px solid #C4A265; margin: 0 0 24px; width: 40px; }
.entry-content .editorial-balance-col.know .editorial-balance-rule { border-top-color: #8B6914; }
.entry-content .editorial-balance-item { margin-bottom: 22px; padding-bottom: 22px; border-bottom: 1px solid #F5F1EB; }
.entry-content .editorial-balance-item:last-child { border-bottom: 0; margin-bottom: 0; padding-bottom: 0; }
.entry-content .editorial-balance-lead { font-family: 'Playfair Display', Georgia, serif; font-style: italic; font-weight: 500; font-size: 17px; line-height: 1.4; color: #1A1A1A; margin: 0 0 6px; }
.entry-content .editorial-balance-body { font-family: Georgia, serif; font-size: 15.5px; line-height: 1.65; color: #2C2C2C; margin: 0; }

/* 8. ALSO FEATURED */
.entry-content .also-featured { margin: 32px 0; padding: 22px 24px; background: #FAF8F5; border: 1px solid #E8E2D9; }
.entry-content .also-featured .also-featured-eyebrow { display: block; font-family: 'Montserrat', sans-serif; font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: #8B6914; margin-bottom: 12px; line-height: 1.4; }
.entry-content .also-featured .wp-block-buttons { gap: 8px; flex-wrap: wrap; margin: 0; }
.entry-content .also-featured .wp-block-button { margin: 0; }
.entry-content .also-featured .wp-block-button:not(.is-style-outline) .wp-block-button__link, .entry-content .also-featured .wp-block-button.is-style-outline .wp-block-button__link { display: inline-block !important; padding: 8px 14px !important; background: transparent !important; color: #265B5F !important; border: 1px solid #265B5F !important; border-radius: 2px !important; font-family: 'Montserrat', sans-serif !important; font-size: 12px !important; font-weight: 600 !important; letter-spacing: 0.05em !important; text-transform: none !important; text-decoration: none !important; line-height: 1.4 !important; transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease; }
.entry-content .also-featured .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover, .entry-content .also-featured .wp-block-button:not(.is-style-outline) .wp-block-button__link:focus, .entry-content .also-featured .wp-block-button.is-style-outline .wp-block-button__link:hover, .entry-content .also-featured .wp-block-button.is-style-outline .wp-block-button__link:focus { background: #265B5F !important; color: #fff !important; border-color: #265B5F !important; }

/* MOBILE */
@media (max-width: 700px) {
  .entry-content .editorial-summary { padding: 28px 22px 22px; }
  .entry-content .editorial-summary-grid { grid-template-columns: 1fr; gap: 18px; padding: 18px 0; }
  .entry-content .editorial-summary-lead { font-size: 19px; }
  .entry-content .editorial-inclusion { padding: 18px 22px; }
  .entry-content .editorial-cta a { display: block; padding: 14px; }
  .entry-content .editorial-contact { gap: 20px; }
  .entry-content .editorial-balance { grid-template-columns: 1fr; gap: 36px; }
}
@media (max-width: 600px) {
  .entry-content .booking-hub { padding: 24px 18px; }
  .entry-content .booking-hub h2 { font-size: 24px; }
  .entry-content .booking-hub__cols { grid-template-columns: 1fr; gap: 16px; }
  .entry-content .booking-hub__cta .wp-block-button { width: 100%; }
  .entry-content .booking-hub__cta .wp-block-button__link { width: 100%; box-sizing: border-box; text-align: center; display: block; }
  .entry-content .booking-hub-cta-dark { padding: 20px 18px; }
  .entry-content .booking-hub-cta-dark .wp-block-button { width: 100%; }
  .entry-content .booking-hub-cta-dark .wp-block-button__link { width: 100%; box-sizing: border-box; text-align: center; display: block; }
  .entry-content .booking-card { padding: 18px 16px; }
  .entry-content .booking-card__breakfast { grid-template-columns: 1fr; }
  .entry-content .booking-card__recommended .wp-block-button, .entry-content .booking-card__alternative .wp-block-button, .entry-content .booking-card__details .wp-block-button { width: 100%; }
  .entry-content .booking-card__recommended .wp-block-button__link, .entry-content .booking-card__alternative .wp-block-button__link, .entry-content .booking-card__details .wp-block-button__link { width: 100%; box-sizing: border-box; text-align: center; display: block; }
  .entry-content .stats { padding: 22px 18px; }
  .entry-content .stats__intro { font-size: 18px; margin-bottom: 16px; }
  .entry-content .stats__cards { flex-direction: column; gap: 14px; }
  .entry-content .stats__card { max-width: none; padding: 18px 14px; }
  .entry-content .stats__number { font-size: 28px; }
}

/* END section 35 */

/* ======================================================================
   SECTION 36 — Mega menu (desktop + mobile drawer)
   (May 24, 2026, per mega-menu-ia-handoff.md)
   Wrapper: .ljm-mega-nav-wrap (containing .ljm-mega-nav top bar + .ljm-mega-panels)
   Behavior:
     - Top bar always visible
     - Mega panels hidden by default, shown on :hover / :focus-within of trigger
     - Mobile drawer (.ljm-drawer) replaces top bar below 900px
   Source CSS: ~/ljm-sd-mega-test.html, namespaced + adapted for production.
   ====================================================================== */

/* Hide GP native header + nav — we render our own mega nav via wp_body_open */
#masthead,
.site-header,
#site-navigation,
.main-navigation.mobile-menu-control-wrapper,
.inside-navigation { display: none !important; }

/* Since #masthead is hidden, kill any padding-top on the page wrapper that
   GP/Kadence added to compensate for the header height. Otherwise leaves a
   visible white gap below the mega nav and above the first content block. */
body #page,
body .site-content,
body .site-content > .inside-content {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

/* Use overflow-x: clip (NOT hidden) — clip doesn't break sticky positioning
   on descendants. hidden breaks position:sticky on mega nav AND TOC bar.
   Clip is supported in all modern browsers (iOS 16+, all evergreens).
   Fallback to hidden only if clip not supported (rare in 2026). */
html, body { overflow-x: clip; max-width: 100vw; }
@supports not (overflow-x: clip) {
  html, body { overflow-x: hidden; }
}
img, video, iframe, table { max-width: 100% !important; }

/* Wrapper — sticky at viewport top. Topbar above scrolls away naturally
   (position: static), mega nav locks once it hits 0. */
.ljm-mega-nav-wrap {
  position: sticky;
  top: 0;
  background: #fff;
  z-index: 900;
  max-width: 100vw;
  overflow-x: clip;
}

/* === MOBILE FOOTER FIXES === */
@media (max-width: 899px) {
  
  /* Mobile: social icons all on ONE row */
  body .site-footer .footer-social {
    flex-wrap: nowrap !important;
    max-width: 100% !important;
    gap: 14px !important;
    justify-content: center !important;
  }
  body .site-footer .footer-social a {
    flex: 0 0 auto !important;
  }
  body .site-footer .footer-social svg {
    width: 22px !important;
    height: 22px !important;
  }
  
  /* Mobile: bottom links on ONE row, less padding */
  body .site-footer .footer-bottom-links {
    flex-wrap: nowrap !important;
    gap: 0 !important;
    justify-content: center !important;
  }
  body .site-footer .footer-bottom-links a {
    padding: 8px 10px !important;
    min-height: auto !important;
    line-height: 1.3 !important;
    font-size: 12px !important;
    white-space: nowrap !important;
  }

/* Unbold "Katie Dillon" in footer trust editor (bold implies clickable) */
.site-footer .footer-trust-editor strong {
  font-weight: normal !important;
}

/* Mobile drawer: Resources &amp; Discounts <a> should match the button siblings */
.ljm-drawer-list > li > a.ljm-drawer-toggle-btn {
  font-family: 'Montserrat', Arial, sans-serif !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
  color: #1A1A1A !important;
  text-decoration: none !important;
  line-height: 1.4 !important;
}

/* Mobile drawer search — remove the double border (was input border + wrap border) */
.ljm-drawer-search-wrap {
  border: none !important;
  outline: none !important;
  background: transparent !important;
  padding: 0 !important;
}
  body .site-footer .footer-nav > div {
    min-width: 0 !important;
    overflow: visible !important;
  }
  body .site-footer .footer-col-heading {
    font-size: 16px !important;
    margin-bottom: 12px !important;
  }
  body .site-footer .footer-col-list a {
    font-size: 13px !important;
    padding: 4px 0 !important;
    display: block !important;
    white-space: normal !important;
  }
  /* Footer brand row */
  .site-footer .footer-top {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 20px !important;
    padding: 0 20px !important;
  }
  .site-footer .footer-trust,
  .site-footer .footer-bottom-inner {
    padding: 0 20px !important;
    text-align: left !important;
  }
  .site-footer .footer-bottom-inner {
    flex-direction: column !important;
    gap: 12px !important;
    align-items: flex-start !important;
  }
  .site-footer .footer-bottom-links a {
    margin-left: 0 !important;
    margin-right: 16px !important;
  }
}
/* WP admin bar adds 32px to top when logged in; sticky still aligns because
   GP adjusts html { margin-top } automatically. No tweak needed. */

/* Sticky TOC bar — docks directly below the 64px mega nav. Covers common
   TOC bar class names so the rule works whichever component your site uses. */
/* Existing TOC component (.toc-bar) was sticky at top:90px from the old
   Kadence theme era when the header was 90px tall. Mega nav is now 64px,
   so override to dock directly under it (no 26px gap where content peeks).
   IMPORTANT: explicitly target .toc-bar only (no wildcard) — the wildcard
   was catching .toc-bar-dropdown and breaking its top:100% positioning. */
.toc-sticky-block,
.lja-toc-bar,
.ljm-toc-bar,
.kb-table-of-content-wrap,

.toc-bar {
  top: 64px !important;
}

/* Author tooltip (2026-06-30): keep the 3 action links on ONE line + a tap affordance on the name. Base CSS lives in the post-header snippet; these are overrides. */
@media (max-width: 600px) {
  .ljm-author-tooltip .ljm-author-tooltip-actions { white-space: nowrap; flex-wrap: nowrap !important; font-size: 9px; letter-spacing: 0; }
  .ljm-author-tooltip .ljm-author-tooltip-actions .sep { margin: 0 4px; }
  .ljm-author-tooltip { padding-left: 14px !important; padding-right: 14px !important; }
}
.post-meta-row .author-trigger a.author-name { border-bottom: 1px dotted #8B6914 !important; padding-bottom: 1px; }

/* Anchor-jump offset: clear the sticky mega-nav (64px) + sticky TOC bar (~46px) so a jumped-to heading lands BELOW them, not tucked underneath. Added 2026-06-23. */
.entry-content :is(h2,h3,h4,h5,h6)[id] { scroll-margin-top: 120px; }
/* Dropdown must stay at top:100% of parent bar (right below it, no gap). */
.toc-bar-dropdown {
  top: 100% !important;
}
/* Left chevron on each TOC item — bulleted-list feel, tap affordance */
.toc-bar-dropdown ul a {
  display: block !important;
  padding: 9px 0 !important;
  color: #1A1A1A !important;
  text-decoration: none !important;
  transition: color 0.15s;
}
.toc-bar-dropdown ul a:hover,
.toc-bar-dropdown ul a:focus {
  color: #265B5F !important;
  text-decoration: underline !important;
  text-decoration-color: #C4A265 !important;
  text-underline-offset: 4px !important;
}
.toc-bar-dropdown ul a::before-OFF {
  content: "203A"; /* › single right angle quote */
  flex-shrink: 0;
  color: #C4A265;
  font-family: Georgia, serif;
  font-size: 18px;
  font-weight: 400;
  line-height: 1;
  transition: transform 0.15s, color 0.15s;
}
.toc-bar-dropdown ul a::after { content: none !important; }
.toc-bar-dropdown ul { margin-left: 0 !important; padding-left: 0 !important; }
.toc-bar-dropdown-inner { padding-left: 20px !important; } /* TOC dropdown items were indented ~89px (32px inner + a stray 57px ul margin); align them under the "IN THIS ARTICLE" label (2026-06-23) */
.toc-bar-dropdown ul a:hover::before-OFF,
.toc-bar-dropdown ul a:focus::before-OFF {
  color: #265B5F;
  transform: translateX(2px);
}

/* Scroll-fade at bottom of dropdown — signals "more content below" */
.toc-bar-dropdown {
  position: absolute;
}
.toc-bar-dropdown-inner {
  position: relative;
  -webkit-mask-image: linear-gradient(to bottom, black 0, black calc(100% - 32px), transparent 100%);
  mask-image: linear-gradient(to bottom, black 0, black calc(100% - 32px), transparent 100%);
}
.toc-bar-dropdown:not(.toc-more) .toc-bar-dropdown-inner { -webkit-mask-image: none !important; mask-image: none !important; }
.toc-bar-dropdown.toc-more::after { content: "▾"; position: absolute; left: 0; right: 0; bottom: 0; height: 36px; line-height: 50px; text-align: center; color: #8B6914; font-size: 15px; background: linear-gradient(to top, #ffffff 45%, rgba(255,255,255,0)); pointer-events: none; z-index: 3; }

/* === Reading progress bar — pinned to bottom edge of sticky TOC bar === */
/* JS in Locked Footer Stack injects <div class="ljm-reading-progress"><div class="ljm-reading-progress-fill"></div></div> */
/* Visible only on pages where .toc-bar exists (post detail). */
.ljm-reading-progress {
  position: fixed;
  top: 110px; /* 64px mega nav + 46px TOC bar */
  left: 0;
  right: 0;
  height: 3px;
  background: rgba(232, 226, 217, 0.35);
  z-index: 90;
  pointer-events: none;
  display: none; /* shown by JS only when .toc-bar exists */
}
.ljm-reading-progress.is-active {
  display: block;
}
.ljm-reading-progress-fill {
  height: 100%;
  width: 0%;
  background: #265B5F;
  transition: width 0.08s linear;
}
@media (max-width: 860px) {
  .ljm-reading-progress {
    top: 100px; /* slightly less on mobile if mega nav shrinks */
  }
}

/* === Paged archive chrome: keep eyebrow + H1 + image + pills, hide only the deck === */
/* An older inline-style rule hid the entire .category-hero-wrapper on body.paged. */
/* Per category-archive-chrome-spec we keep the hero shell visible on /page/N/.    */
/* Higher specificity (html body) wins over the old rule.                          */
html body.paged .category-hero-wrapper,
html body.paged .cat-hero,
html body.paged .cat-hero-image,
html body.paged .curated-section,
html body.paged .subcat-nav {
  display: block !important;
}
html body.paged .cat-hero-grid {
  display: grid !important;
}
/* Per Katie clarification 2026-05-24: on paged archive pages keep ONLY      */
/* breadcrumbs + H1 visible. Hide description, hero image, pills, booking.    */
html body.paged .cat-hero .cat-hero-grid > div > p,
html body.paged .category-hero-deck,
html body.paged .category-hero-description,
html body.paged .cat-hero-image,
html body.paged .category-hero-image,
html body.paged .pills-block,
html body.paged .booking-tool,
html body.paged .curated-section,
html body.paged .subcat-nav {
  display: none !important;
}
/* Stack the H1 area to full width on paged (no image column) */
html body.paged .cat-hero-grid {
  grid-template-columns: 1fr !important;
}

/* Hide hero image on mobile (category/archive pages, page 1 + paged) */
@media (max-width: 860px) {
  .cat-hero-image,
  .category-hero-image {
    display: none !important;
  }
  .cat-hero-grid {
    grid-template-columns: 1fr !important;
  }
  .category-hero-wrapper .category-hero.has-image {
    grid-template-columns: 1fr !important;
  }
}

/* H1 dedup on category archives — now handled by Code Snippet `ljm_normalize_h1_on_category_archives` (2026-05-30). */

/* On archive pages, the breadcrumbs replace the "DESTINATION GUIDE" eyebrow visually. */
body.archive .cat-hero .lja-eyebrow,
body.archive .category-hero .lja-eyebrow,
body.archive .category-hero-eyebrow {
  display: none !important;
}
/* Breadcrumbs via [ljm_breadcrumbs] shortcode — placed inline in Cat: Element     */
/* content where the eyebrow used to be. Styled to match eyebrow's visual slot.    */
.ljm-breadcrumbs-hero {
  margin: 0 0 24px !important;
  padding: 0 !important;
  font-family: 'Montserrat', system-ui, sans-serif !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  line-height: 1.4 !important;
  max-width: none !important;
}
.cat-hero .ljm-breadcrumbs-hero { margin: 0 0 24px !important; padding: 0 !important; }

/* "All  Articles" header — sits between Cat: Element content and the post grid */
.cat-articles-section {
  flex-basis: 100% !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 32px 0 0 !important;
  padding: 24px 32px 8px !important;
  border-top: 1px solid #E8E2D9;
  text-align: center;
}
.cat-articles-heading {
  font-family: 'Playfair Display', Georgia, serif;
  font-weight: 500;
  font-size: 28px;
  color: #1A1A1A;
  margin: 0;
  line-height: 1.2;
}
@media (max-width: 860px) {
  .cat-articles-section {
    padding: 20px 20px 4px;
    margin-top: 24px;
  }
  .cat-articles-heading { font-size: 22px; }
}

/* === Breadcrumb styling (Rank Math .rank-math-breadcrumb OR custom .ljm-breadcrumbs) === */
.ljm-breadcrumbs,
.rank-math-breadcrumb {
  padding: 16px 0 8px;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #B8AFA3;
  max-width: 1160px;
  margin: 0 auto;
  padding-left: 24px;
  padding-right: 24px;
}
.ljm-breadcrumbs a,
.rank-math-breadcrumb a {
  color: #8B6914 !important;
  text-decoration: none !important;
  transition: color 0.18s ease;
  border-bottom: none !important;
}
.ljm-breadcrumbs a:hover,
.rank-math-breadcrumb a:hover {
  color: #8B6914 !important;
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
}
/* ADA 1.4.1: hero breadcrumb links need a non-color cue (gold link vs surrounding text < 3:1). Persistent underline; archive hero only, post rank-math breadcrumbs unchanged. */
.ljm-breadcrumbs a {
  text-decoration: underline !important;
  text-decoration-color: #C4A265 !important;
  text-underline-offset: 3px !important;
}
.ljm-breadcrumbs .separator,
.ljm-breadcrumbs .sep,
.rank-math-breadcrumb .separator {
  color: #B8AFA3;
  margin: 0 6px;
}
.ljm-breadcrumbs .last,
.ljm-breadcrumbs > span > span:last-child,
.rank-math-breadcrumb .last {
  color: #1A1A1A !important;
  font-weight: 600;
}
@media (max-width: 600px) {
  .ljm-breadcrumbs,
  .rank-math-breadcrumb {
    padding: 12px 16px 6px;
    font-size: 11px;
  }
}

/* === Paginated archive subtitle "Page N of M" === */
.archive-page-indicator {
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 13px;
  color: #6B6258;
  font-style: italic;
  margin: 8px 0 24px;
  text-align: center;
}

/* === Kadence palette-9 (white) text class — let it win on dark hero sections === */
/* Kadence assigns has-theme-palette-9-color when author picks the white palette swatch */
/* Universal .entry-content h1 !important rule was overriding it on /contact/ hero etc. */
.entry-content .has-theme-palette-9-color,
.entry-content h1.has-theme-palette-9-color,
.entry-content h2.has-theme-palette-9-color,
.entry-content h3.has-theme-palette-9-color,
.entry-content h4.has-theme-palette-9-color,
.entry-content p.has-theme-palette-9-color {
  color: #ffffff !important;
}

/* === About page: .lja-contact dark section — force light text + button styling === */
/* Section bg is #1A1A1A (near-black). Without these overrides email/phone/buttons go invisible. */


/* === Card / tile title links: clean at rest, gold + underline on card OR title hover === */
/* Rule: card surfaces (whole tile clickable) get no persistent underline.        */
/* Hover state: title goes gold + underlined, card gets subtle bg tint.           */
/* Keep persistent underline on in-prose links, eyebrows, and FAQ "more" links.   */

/* /our-services/ pillar route cards (DIY &amp; Book, Request SD, etc.) */
.pillar__routes a,
.pillar__routes a:link,
.pillar__routes a:visited {
  text-decoration: none !important;
  color: #1A1A1A !important;
  transition: color 0.15s, background-color 0.15s !important;
}
.pillar__routes a:hover,
.pillar__routes a:focus {
  color: #C4A265 !important;
  text-decoration: underline !important;
  text-decoration-color: #C4A265 !important;
  text-underline-offset: 4px !important;
  background-color: #FAF8F5 !important;
}

/* /our-services/ perks rows */
.perks__row a,
.perks__row a:link,
.perks__row a:visited {
  text-decoration: none !important;
  color: #1A1A1A !important;
  transition: color 0.15s, text-decoration-color 0.15s !important;
}
.perks__row a:hover,
.perks__row a:focus {
  color: #C4A265 !important;
  text-decoration: underline !important;
  text-decoration-color: #C4A265 !important;
  text-underline-offset: 4px !important;
}

/* Post grid article cards — clean title at rest, gold underline on card OR title hover */
#main > article .entry-title a {
  color: #1A1A1A !important;
  text-decoration: none !important;
  transition: color 0.15s, text-decoration-color 0.15s !important;
}
#main > article:hover .entry-title a,
#main > article .entry-title a:hover,
#main > article .entry-title a:focus {
  color: #C4A265 !important;
  text-decoration: underline !important;
  text-decoration-color: #C4A265 !important;
  text-underline-offset: 4px !important;
}

/* Kadence-card title links inside Cat: Element rows (SD Essentials etc.) */
.kt-inside-inner-col h2 a,
.kt-inside-inner-col h3 a,
.kt-inside-inner-col h4 a,
.kt-inside-inner-col .kt-adv-heading a {
  text-decoration: none !important;
  color: #1A1A1A !important;
  transition: color 0.15s, text-decoration-color 0.15s !important;
}
.kt-inside-inner-col h2 a:hover,
.kt-inside-inner-col h3 a:hover,
.kt-inside-inner-col h4 a:hover,
.kt-inside-inner-col .kt-adv-heading a:hover,
.wp-block-kadence-column:hover .kt-adv-heading a,
.wp-block-kadence-column:hover h2 a,
.wp-block-kadence-column:hover h3 a,
.wp-block-kadence-column:hover h4 a {
  color: #C4A265 !important;
  text-decoration: underline !important;
  text-decoration-color: #C4A265 !important;
  text-underline-offset: 4px !important;
}

/* Related posts strip */
.ljm-related-posts a,
.related-posts a,
[class*="related-post"] a {
  text-decoration: none !important;
  color: #1A1A1A !important;
}
.ljm-related-posts a:hover,
.related-posts a:hover,
[class*="related-post"] a:hover {
  color: #C4A265 !important;
  text-decoration: underline !important;
  text-decoration-color: #C4A265 !important;
  text-underline-offset: 4px !important;
}

/* Kadence section-link-overlay (invisible click target) — no underline ever */
.kb-section-link-overlay {
  text-decoration: none !important;
}

/* === Kill GP default .entry-content margin-top (we suppress entry-header sitewide) === */
.entry-content {
  margin-top: 0 !important;
}

/* === Cat: Element Kadence rows go FULL-BLEED on category archives === */
/* When Cat: Element overrides archive, #main is display:flex — child rows inherit flex-basis:100% */
/* Override flex-basis to 100vw so Kadence rows escape #primary.content-area constraint */
.category-element-override #main.site-main > .kb-row-layout-wrap,
.category-element-override #main.site-main > .wp-block-kadence-rowlayout,
.archive #main.site-main > .kb-row-layout-wrap,
.archive #main.site-main > .wp-block-kadence-rowlayout {
  flex: 0 0 100vw !important;
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
}
/* Inner content of full-bleed rows stays constrained at 1200px (text/columns don't go edge-to-edge) */
.category-element-override #main.site-main > .kb-row-layout-wrap .kt-row-column-wrap,
.category-element-override #main.site-main > .wp-block-kadence-rowlayout .kt-row-column-wrap,
.archive #main.site-main > .kb-row-layout-wrap .kt-row-column-wrap,
.archive #main.site-main > .wp-block-kadence-rowlayout .kt-row-column-wrap {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
}

/* === TOC bar legibility — typography only, no icon (would clash with hamburger) === */
.toc-bar-label::before {
  content: none !important;
}
.toc-bar-label {
  font-size: 11px !important;
  letter-spacing: 1.5px !important;
  color: #1A1A1A !important;
}
.toc-bar-chevron {
  color: #1A1A1A !important;
  width: 14px !important;
  height: 9px !important;
}

/* Top bar */
.ljm-mega-nav {
  background: #fff;
  border-bottom: 1px solid #E8E2D9;
}
.ljm-mega-nav-inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 32px;
  height: 64px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
/* === SITE WIDTH 1280 — START (2026-05-30) === */
:root { --page-max: 1280px; }
body.archive .site-content .content-area,
body.category .site-content .content-area { max-width: 1280px !important; }
.single-post .entry-content { max-width: 740px; }
/* === SITE WIDTH 1280 — END === */
.ljm-mega-nav-logo {
  display: inline-flex;
  align-items: center;
  text-decoration: none !important;
  border-bottom: none !important;
}
.ljm-mega-nav-logo img {
  display: block;
  height: 40px;
  width: auto;
  max-width: 220px;
}
@media (max-width: 899px) {
  .ljm-mega-nav-logo img { height: 32px; }
}
.ljm-mega-nav-links {
  display: flex;
  align-items: center;
  gap: 28px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.ljm-mega-nav-links > li {
  position: static; /* mega panel uses .ljm-mega-nav-wrap as ancestor for absolute pos */
  margin: 0;
}
.ljm-mega-nav-links > li > a,
.ljm-mega-nav-links > li > button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: 'Montserrat', Arial, sans-serif;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: #2C2C2C;
  text-decoration: none;
  background: none;
  border: none;
  padding: 24px 0;  /* fills 64px nav height — no hover gap between trigger and panel */
  height: 64px;
  cursor: pointer;
}
.ljm-mega-nav-links > li > a:hover,
.ljm-mega-nav-links > li > button:hover,
.ljm-mega-nav-links > li.is-open > a,
.ljm-mega-nav-links > li.is-open > button { color: #265B5F; }
.ljm-mega-nav-cta {
  background: #265B5F !important;
  color: #fff !important;
  font-family: 'Montserrat', Arial, sans-serif !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 1px !important;
  text-transform: uppercase !important;
  padding: 11px 22px !important;  /* override the wrapper's 24px 0 */
  height: auto !important;        /* override the wrapper's 64px */
  border-radius: 3px !important;
  text-decoration: none !important;
  border-bottom: none !important;
}
.ljm-mega-nav-cta:hover { background: #1A1A1A; color: #fff !important; }

/* Search trigger in mega nav — opens existing search modal via aria-label match */
.ljm-mega-nav-search {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  padding: 8px;
  cursor: pointer;
  color: #2C2C2C;
  transition: color 0.15s;
}
.ljm-mega-nav-search:hover { color: #265B5F; }
.ljm-mega-nav-search svg { display: block; }
/* SEARCH ICON RESTORE — inline nav SVG got stripped on an element save; render the magnifying glass via CSS mask so it survives future element re-saves */
.ljm-mega-nav-search::before{content:"";display:inline-block;width:20px;height:20px;background-color:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z'/%3E%3C/svg%3E") center/contain no-repeat;}

/* Mega panels — hidden by default, positioned absolute below top bar */
.ljm-mega-panel {
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  background: #fff;
  border-top: 3px solid #C4A265;
  border-bottom: 1px solid #E8E2D9;
  box-shadow: 0 12px 24px rgba(0,0,0,0.06);
  display: none;
  z-index: 201;
}
.ljm-mega-nav-links > li.is-open .ljm-mega-panel,
.ljm-mega-nav-links > li:hover .ljm-mega-panel,
.ljm-mega-nav-links > li:focus-within .ljm-mega-panel { display: block; }

/* Mega panel inner — default is 2 text columns (no photo).
   Use .is-3col-text for Hotels, .is-mini-mega for About. */
.ljm-mega-panel-inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 40px 32px 36px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 64px;
  row-gap: 28px;
  min-height: 240px;
}
.ljm-mega-panel-inner.is-2col { grid-template-columns: 1fr 1fr; }
.ljm-mega-panel-inner.is-3col-text { grid-template-columns: 1fr 1fr 1fr; }
.ljm-mega-panel-inner.is-mini-mega {
  grid-template-columns: 1fr 240px;
  max-width: 600px;
  padding: 28px 32px;
  column-gap: 32px;
  min-height: 0;
}

/* Mini-mega CTA card (right column of About panel) */
.ljm-mega-cta-card {
  background: #FAF8F5;
  border: 1px solid #E8E2D9;
  padding: 22px 20px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  text-decoration: none !important;
  border-bottom: 1px solid #E8E2D9 !important;
  transition: border-color 0.2s, background 0.2s;
}
.ljm-mega-cta-card:hover {
  border-color: #C4A265;
  background: #fff;
}
.ljm-mega-cta-eyebrow {
  font-family: 'Montserrat', Arial, sans-serif;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: #C4A265;
}
.ljm-mega-cta-title {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.25;
  color: #1A1A1A;
}
.ljm-mega-cta-body {
  font-family: 'Montserrat', Arial, sans-serif;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.5;
  color: #2C2C2C;
}
.ljm-mega-cta-arrow {
  font-family: 'Montserrat', Arial, sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: #265B5F;
  margin-top: 4px;
}
/* FREE TOOLS CARD — visual restore: the a.ljm-mega-cta-card link wrapper was stripped when the nav element was saved, leaving the 4 pieces loose. Re-group them into the card via direct-child selectors (auto-disables if the wrapper is ever restored). */
.ljm-mega-panel-inner.is-mini-mega { row-gap: 0; grid-template-rows: auto auto auto auto 1fr; }
.ljm-mega-panel-inner.is-mini-mega > .ljm-mega-col { grid-row: 1 / -1; }
.ljm-mega-panel-inner.is-mini-mega > .ljm-mega-cta-eyebrow,
.ljm-mega-panel-inner.is-mini-mega > .ljm-mega-cta-title,
.ljm-mega-panel-inner.is-mini-mega > .ljm-mega-cta-body,
.ljm-mega-panel-inner.is-mini-mega > .ljm-mega-cta-arrow {
  grid-column: 2;
  background: #FAF8F5;
  border-left: 1px solid #E8E2D9;
  border-right: 1px solid #E8E2D9;
  padding-left: 20px;
  padding-right: 20px;
  margin: 0;
}
.ljm-mega-panel-inner.is-mini-mega > .ljm-mega-cta-eyebrow { border-top: 1px solid #E8E2D9; padding-top: 22px; }
.ljm-mega-panel-inner.is-mini-mega > .ljm-mega-cta-title { padding-top: 8px; }
.ljm-mega-panel-inner.is-mini-mega > .ljm-mega-cta-body { padding-top: 8px; }
.ljm-mega-panel-inner.is-mini-mega > .ljm-mega-cta-arrow { padding-top: 10px; padding-bottom: 22px; border-bottom: 1px solid #E8E2D9; }
.ljm-mega-panel-inner.is-simple {
  grid-template-columns: 1fr;
  max-width: 280px;
  padding: 24px 28px;
  min-height: 0;
}

/* Photo column */
.ljm-mega-photo {
  position: relative;
  border-radius: 2px;
  overflow: hidden;
  min-height: 280px;
  background-size: cover;
  background-position: 50% 50%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  border: 1px solid #E8E2D9;
  transition: border-color 0.2s;
  text-decoration: none !important;
}
.ljm-mega-photo:hover { border-color: #C4A265; }
.ljm-mega-photo-overlay {
  background: #FAF8F5;
  padding: 14px 18px;
  border-top: 1px solid #E8E2D9;
}
.ljm-mega-photo-title {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 22px;
  font-weight: 400;
  color: #1A1A1A;
  line-height: 1.2;
}

/* Text columns */
.ljm-mega-col {
  display: flex;
  flex-direction: column;
}
.ljm-mega-col-label {
  font-family: 'Montserrat', Arial, sans-serif;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: #736758;
  padding-bottom: 10px;
  margin-bottom: 12px;
  border-bottom: 1px solid #E8E2D9;
}
.ljm-mega-col ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.ljm-mega-col li { margin: 0; padding: 0; }
.ljm-mega-col li::before { content: none !important; } /* kill sitewide chevron */
.ljm-mega-col li a {
  display: block;
  padding: 8px 0;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 16px;
  font-weight: 400;
  color: #1A1A1A;
  text-decoration: none !important;
  border-bottom: none !important;
  transition: color 0.15s;
}
.ljm-mega-col li a:hover { color: #265B5F; }

/* Multi-column variant for long lists (e.g. SD neighborhoods, 10 items) */
.ljm-mega-col.is-2up ul {
  column-count: 2;
  column-gap: 32px;
}
.ljm-mega-col.is-2up li {
  break-inside: avoid;
  -webkit-column-break-inside: avoid;
}

/* See-all footer link */
.ljm-mega-see-all {
  grid-column: 1 / -1;
  padding-top: 20px;
  margin-top: 8px;
  border-top: 1px solid #E8E2D9;
  text-align: right;
  font-family: 'Montserrat', Arial, sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #265B5F;
  text-decoration: none !important;
  border-bottom: none !important;
}

/* Simple dropdown (About) */
.ljm-mega-panel-inner.is-simple ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.ljm-mega-panel-inner.is-simple li { margin: 0; }
.ljm-mega-panel-inner.is-simple li::before { content: none !important; }
.ljm-mega-panel-inner.is-simple li a {
  display: block;
  padding: 10px 12px;
  font-family: 'Montserrat', Arial, sans-serif;
  font-size: 13px;
  font-weight: 500;
  color: #1A1A1A;
  text-decoration: none !important;
  border-bottom: none !important;
}
.ljm-mega-panel-inner.is-simple li a:hover {
  color: #265B5F;
  background: #FAF8F5;
}

/* Focus indicators — WCAG-compliant dark teal */
.ljm-mega-nav-links a:focus-visible,
.ljm-mega-nav-links button:focus-visible,
.ljm-mega-col a:focus-visible,
.ljm-mega-photo:focus-visible,
.ljm-mega-see-all:focus-visible,
.ljm-mega-nav-cta:focus-visible {
  outline: 2px solid #265B5F;
  outline-offset: 3px;
}

/* ====================================================
   Mobile drawer
   ==================================================== */
.ljm-drawer-toggle {
  display: none;
  background: none;
  border: none;
  padding: 8px;
  cursor: pointer;
}
.ljm-drawer-toggle svg { width: 24px; height: 24px; }
.ljm-drawer {
  display: none;
  position: fixed;
  top: 0;
  right: 0;
  width: min(360px, 100vw);
  height: 100vh;
  background: #fff;
  z-index: 99999;
  overflow-y: auto;
  transform: translateX(100%);
  transition: transform 0.25s ease;
}
.ljm-drawer.is-open { transform: translateX(0); }
.ljm-drawer-backdrop {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.4);
  z-index: 99998;
}
.ljm-drawer-backdrop.is-open { display: block; }

@media (max-width: 899px) {
  .ljm-mega-nav-links,
  .ljm-mega-nav-search-li,
  .ljm-mega-nav-search { display: none !important; visibility: hidden !important; pointer-events: none !important; }
  /* Save on Tickets STAYS visible per GSC requirement.
     SUPER compact on mobile to fit alongside logo + hamburger. */
  body .ljm-mega-nav-cta,
  body a.ljm-mega-nav-cta {
    display: inline-flex !important;
    font-size: 9px !important;
    line-height: 1.1 !important;
    letter-spacing: 0.3px !important;
    padding: 7px 10px !important;
    height: auto !important;
    margin-left: auto !important;
    margin-right: 8px !important;
    white-space: nowrap !important;
  }
  .ljm-drawer-toggle {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 44px !important;
    height: 44px !important;
    color: #1A1A1A !important;
  }
  .ljm-drawer-toggle svg {
    width: 24px !important;
    height: 24px !important;
    display: block !important;
  }
  .ljm-drawer { display: block; }
  /* Make sure the mobile top bar is visible at all */
  .ljm-mega-nav-wrap { display: block !important; }
  .ljm-mega-nav { display: block !important; }
  .ljm-mega-nav-inner {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    height: 64px !important;
    padding: 0 16px !important;
  }
}

.ljm-drawer-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
  border-bottom: 1px solid #E8E2D9;
}
.ljm-drawer-logo {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 22px;
  font-weight: 500;
}
.ljm-drawer-close {
  width: 32px;
  height: 32px;
  font-size: 24px;
  background: none;
  border: none;
  cursor: pointer;
  color: #1A1A1A;
}
.ljm-drawer-list { list-style: none; margin: 0; padding: 0; }
.ljm-drawer-list > li { border-bottom: 1px solid #E8E2D9; }
.ljm-drawer-list > li::before { content: none !important; }
.ljm-drawer-toggle-btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 18px 24px;
  background: none;
  border: none;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 20px;
  font-weight: 500;
  color: #1A1A1A;
  text-align: left;
  cursor: pointer;
  text-decoration: none !important;
}
.ljm-drawer-list > li.is-open > .ljm-drawer-toggle-btn {
  color: #265B5F;
  background: transparent !important;
}
/* Mobile drawer scrollability cue: visible scrollbar so users know it scrolls */
.ljm-drawer {
  scrollbar-width: thin;
  scrollbar-color: #C4A265 transparent;
}
.ljm-drawer::-webkit-scrollbar { width: 6px; }
.ljm-drawer::-webkit-scrollbar-thumb { background: #C4A265; border-radius: 3px; }
.ljm-drawer::-webkit-scrollbar-track { background: transparent; }
.ljm-drawer-chevron {
  font-size: 14px;
  color: #736758;
  transition: transform 0.2s;
}
.ljm-drawer-list > li.is-open .ljm-drawer-chevron {
  transform: rotate(180deg);
  color: #C4A265;
}
.ljm-drawer-panel {
  display: none;
  padding: 4px 24px 24px;
  background: #FAF8F5;
}
.ljm-drawer-list > li.is-open > .ljm-drawer-panel { display: block; }
.ljm-drawer-group { margin-top: 20px; }
.ljm-drawer-group:first-child { margin-top: 8px; }
.ljm-drawer-group-label {
  font-family: 'Montserrat', Arial, sans-serif;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: #736758;
  margin-bottom: 10px;
  padding-bottom: 6px;
  border-bottom: 1px solid #E8E2D9;
}
.ljm-drawer-group ul { list-style: none; margin: 0; padding: 0; }
.ljm-drawer-group li { margin: 0; }
.ljm-drawer-group li::before { content: none !important; }
.ljm-drawer-group li a {
  display: block;
  padding: 12px 0;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 17px;
  color: #1A1A1A;
  border-bottom: 1px solid rgba(0,0,0,0.04);
  text-decoration: none !important;
}
.ljm-drawer-group li:last-child a { border-bottom: none; }
.ljm-drawer-cta {
  display: block;
  margin: 16px 24px 32px;
  padding: 14px 20px;
  background: #265B5F;
  color: #fff !important;
  text-align: center;
  font-family: 'Montserrat', Arial, sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  border-radius: 2px;
  text-decoration: none !important;
  border-bottom: none !important;
}

/* Promo bar (above mega nav, page-scoped via GP Element display rules)
   Black bar matches current live-site SD Zoo / theme-park discount strip. */
.ljm-promo-bar {
  background: #1A1A1A;
  text-align: center;
  padding: 10px 16px;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.ljm-promo-bar a,
.ljm-promo-bar a:link,
.ljm-promo-bar a:visited {
  font-family: 'Montserrat', Arial, sans-serif !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
  color: #fff !important;
  text-decoration: none !important;
  border-bottom: none !important;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.ljm-promo-bar a:hover { color: #C4A265 !important; }
.ljm-promo-bar .ljm-promo-arrow {
  transition: transform 0.2s;
  display: inline-block;
}
.ljm-promo-bar a:hover .ljm-promo-arrow {
  transform: translateX(4px);
}

/* H1 dedup on category archives — now handled by Code Snippet `ljm_normalize_h1_on_category_archives` (2026-05-30). */
/* H1 dedup on category archives — now handled by Code Snippet `ljm_normalize_h1_on_category_archives` (2026-05-30). */
/* On paginated pages (/page/2/, /page/3/...), restore GP's default page-header
   so users still see the category title (Cat: Element hero is hidden there). */

/* Category archives layout: force FULL-WIDTH, no sidebar, centered container.
   GP defaults to sidebar layout which pushes Cat: Element content into a narrow
   left column while the article grid bursts full width. This unifies both sections
   into a single centered 1200px container. (May 24, 2026, per Hawaii layout fix.) */
body.archive #primary,
body.category #primary {
  width: 100% !important;
  max-width: 1200px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  float: none !important;
}
body.archive #secondary,
body.category #secondary {
  display: none !important;
}
body.archive .site-content .content-area,
body.category .site-content .content-area {
  width: 100% !important;
  max-width: 1200px !important;
  margin: 0 auto !important;
  padding: 0 24px !important;
}
/* Ensure inner Cat: Element sections + the article grid share the same max-width */
body.archive .cat-hero,
body.archive .curated-section,
body.archive .generate-columns-container,
body.category .cat-hero,
body.category .curated-section,
body.category .generate-columns-container {
  max-width: 1200px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Hero / curated content shows on PAGE 1 of category archives only.
   On paginated pages (/page/2/, /page/3/...), WordPress adds body.paged.
   Hide the hero + pills + booking tool there so users scroll straight to
   articles. Pagination + subcat-nav still show. (May 24, 2026) */
/* On paged archive pages (/page/2/+): keep eyebrow + H1 visible, but
   hide intro paragraphs, image, pills, booking tool. Users scroll straight
   to articles, while still knowing what category they're on. */
body.paged .cat-hero .cat-hero-grid > div > p,
body.paged .cat-hero-image,
body.paged .curated-section,
body.paged .category-hero-deck {
  display: none !important;
}
/* MOBILE: hide cat-hero-image sitewide on category pages — too cramped */
@media (max-width: 899px) {
  .cat-hero-image,
  .category-hero-image {
    display: none !important;
  }
  .cat-hero-grid {
    grid-template-columns: 1fr !important;
  }
}
/* Cat: Elements built with raw Kadence blocks: only hide the LATER row layouts
   (pills, booking tool, "more articles" sections) — keep the FIRST row layout
   (hero with eyebrow + H1) visible on paged pages so users know where they are. */
body.paged.archive .site-content .wp-block-kadence-rowlayout ~ .wp-block-kadence-rowlayout,
body.paged.archive .site-content .kb-row-layout-wrap ~ .kb-row-layout-wrap,
body.paged.archive .site-content .kt-row-layout-wrap ~ .kt-row-layout-wrap {
  display: none !important;
}
/* Also hide intro paragraphs in the first hero row, keep the heading only */
body.paged.archive .site-content .wp-block-kadence-rowlayout:first-of-type p:not(:has(.kt-adv-heading)) {
  display: none !important;
}

/* Stacked subcat-nav rows (SD splits into Neighborhood + Topic) —
   drop the divider on the 2nd group, use spacing instead so it reads
   as two groups not two separate sections. (May 24, 2026) */
.subcat-nav + .subcat-nav {
  border-top: none !important;
  padding-top: 0 !important;
  margin-top: 20px !important;
}

/* ======================================================================
   SECTION 38 — Newsletter inline success state (May 24, 2026)
   Replaces Kit's default redirect-to-success-page. JS lives inside the
   Footer Stack Element so it's tied to the form's lifecycle.
   ====================================================================== */
.newsletter-success {
  padding: 32px 0;
}
.newsletter-success-headline {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 32px;
  font-weight: 500;
  color: #1A1A1A;
  margin: 0 0 16px;
}
.newsletter-success-body {
  font-family: Georgia, serif;
  font-size: 19px;
  line-height: 1.6;
  color: #1A1A1A;
  margin: 0;
  max-width: 560px;
}
/* END section 38 */

/* ======================================================================
   SECTION 39 — Real semantic TOC (<nav> with <ol><li><a>) (May 24, 2026)
   Replaces the old "sticky bar with chevron" pattern that wasn't a real
   table of contents. Now Google + screen readers recognize it.
   ====================================================================== */
.ljm-toc {
  position: sticky;
  top: 64px; /* dock below sticky mega nav */
  z-index: 100;
  background: #fff !important;
  border-top: 1px solid #E8E2D9;
  border-bottom: 1px solid #E8E2D9;
  margin: 0 0 32px;
  /* Prevent any gap between toggle and list when open */
  display: block;
  width: 100%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.04);
}
.ljm-toc[data-open="true"] {
  background: #FAF8F5 !important;
}
.ljm-toc-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  max-width: 1160px;
  margin: 0 auto;
  padding: 14px 24px;
  background: none;
  border: none;
  cursor: pointer;
  font-family: 'Montserrat', Arial, sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #1A1A1A;
}
.ljm-toc-chevron {
  font-size: 12px;
  color: #736758;
  transition: transform 0.2s, color 0.2s;
}
.ljm-toc[data-open="true"] .ljm-toc-chevron {
  transform: rotate(180deg);
  color: #C4A265;
}
.ljm-toc-list {
  display: none;
  list-style: none;
  margin: 0 !important;
  padding: 8px 0 16px;
  background: #FAF8F5;
  border-top: 1px solid #E8E2D9;
  max-height: 60vh;
  overflow-y: auto;
}
/* Open state: list expands INSIDE the sticky nav — both stick together as one unit.
   No absolute/fixed positioning = no gap possible. */
.ljm-toc[data-open="true"] .ljm-toc-list {
  display: block;
}
.ljm-toc[data-open="true"] .ljm-toc-list { display: block; }
.ljm-toc-list li {
  margin: 0;
  padding: 0;
  border-bottom: 1px solid rgba(0,0,0,0.04);
}
.ljm-toc-list li::before { content: none !important; }
.ljm-toc-list a {
  display: block;
  padding: 12px 28px;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 16px;
  line-height: 1.4;
  color: #265B5F;
  text-decoration: none !important;
  border-bottom: none !important;
}
.ljm-toc-list a:hover,
.ljm-toc-list a:focus {
  background: #fff;
  color: #1A1A1A;
}
@media (max-width: 899px) {
  .ljm-toc-toggle { padding: 12px 16px; }
  .ljm-toc-list { max-height: calc(100vh - 260px); }
  .ljm-toc-list a { padding: 12px 16px; font-size: 15px; }
}
/* END section 39 */

/* ======================================================================
   SECTION 40 — Mobile drawer INLINE search input at top (May 24, 2026)
   User types directly into the input — submits to /?s=query (WP native search).
   No modal trigger; faster + clearer UX.
   ====================================================================== */
.ljm-drawer-search {
  padding: 16px 20px;
  border-bottom: 1px solid #E8E2D9;
  background: #FAF8F5;
  margin: 0;
}
.ljm-drawer-search-wrap {
  position: relative;
  display: flex;
  align-items: center;
  background: #fff;
  border: 1px solid #E8E2D9;
  border-radius: 4px;
  transition: border-color 0.15s;
}
.ljm-drawer-search-wrap:focus-within { border-color: #C4A265; }
.ljm-drawer-search-icon {
  flex-shrink: 0;
  margin-left: 14px;
  color: #736758;
}
.ljm-drawer-search-input {
  flex: 1;
  padding: 12px 14px 12px 12px;
  background: transparent;
  border: none;
  outline: none;
  font-family: 'Montserrat', Arial, sans-serif;
  font-size: 14px;
  color: #1A1A1A;
  width: 100%;
}
.ljm-drawer-search-input::placeholder { color: #736758; }
.screen-reader-text {
  position: absolute !important;
  width: 1px; height: 1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
}
/* END section 40 */

/* ======================================================================
   SECTION 41 — Breadcrumbs styling (May 24, 2026)
   Output via Rank Math (rank_math_the_breadcrumbs) hooked at
   generate_before_content. Style: small uppercase Montserrat, gold links,
   warm-gray separator, dark current page.
   ====================================================================== */
.rank-math-breadcrumb {
  max-width: 1160px;
  margin: 24px auto 0;
  padding: 0 32px;
  font-family: 'Montserrat', Arial, sans-serif;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #2C2C2C;
  line-height: 1.5;
}
.rank-math-breadcrumb p { margin: 0; }
.rank-math-breadcrumb a,
.rank-math-breadcrumb a:link,
.rank-math-breadcrumb a:visited {
  color: #C4A265 !important;
  text-decoration: none !important;
  border-bottom: none !important;
  padding: 2px 0;
}
.rank-math-breadcrumb a:hover {
  color: #1A1A1A !important;
}
.rank-math-breadcrumb .separator,
.rank-math-breadcrumb-list .separator {
  color: #B8AFA3;
  margin: 0 8px;
}
.rank-math-breadcrumb .last,
.rank-math-breadcrumb-list .last {
  color: #265B5F;
}
@media (max-width: 899px) {
  .rank-math-breadcrumb {
    padding: 0 12px;
    font-size: 11px;
    letter-spacing: 0.03em;
  }
  .rank-math-breadcrumb .separator,
  .rank-math-breadcrumb-list .separator {
    margin: 0 5px;
  }
}
@media (max-width: 480px) {
  .rank-math-breadcrumb {
    font-size: 10px;
    letter-spacing: 0.02em;
  }
  .rank-math-breadcrumb .separator {
    margin: 0 4px;
  }
}
/* END section 41 */

/* ======================================================================
   SECTION 42 — Post card "cat-card-eyebrow" should be clickable + show
   real category name (May 24, 2026)
   Companion PHP filter in ljm-cat-card-eyebrow.php replaces the
   placeholder span with an <a> to the post's primary category.
   ====================================================================== */
.cat-card-eyebrow,
a.cat-card-eyebrow {
  display: inline-block;
  font-family: 'Montserrat', Arial, sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: #8B6914;
  text-decoration: none !important;
  border-bottom: none !important;
  margin: 0 0 6px;
  transition: color 0.15s;
}
a.cat-card-eyebrow:hover,
a.cat-card-eyebrow:focus {
  color: #265B5F;
}
/* END section 42 */

/* ======================================================================
   SECTION 43 — Mobile post header cleanup (May 24, 2026)
   Per Katie's feedback: header too smashed on mobile, the divider lines
   between deck/meta/photo feel like noise. Remove dividers, tighten
   spacing, increase H1 line-height for readability at small sizes.
   ====================================================================== */
@media (max-width: 899px) {
  .post-header {
    padding: 12px 0 8px !important;
  }
  .post-title {
    line-height: 1.15 !important;
    font-size: clamp(28px, 7vw, 36px) !important;
    margin: 0 0 14px !important;
    letter-spacing: -0.3px !important;
  }
  .post-deck {
    border-bottom: none !important;
    border-top: none !important;
    padding: 0 0 0 14px !important;
    margin: 0 0 18px !important;
    font-size: 17px !important;
    line-height: 1.5 !important;
  }
  .post-meta-row {
    border-bottom: none !important;
    border-top: none !important;
    padding: 0 !important;
    margin: 0 0 18px !important;
    gap: 8px !important;
  }
  .hero-split-image {
    margin-top: 0 !important;
  }
  .breadcrumbs {
    margin-bottom: 12px !important;
  }
}
/* END section 43 */

/* SAN DIEGO HUB article loop — image-TOP cards (added 2026-06-02, REMOVABLE).
   The Kadence postgrid (kt-post-loop129653_a689c6-f5) on /san-diego/ rendered as
   cramped horizontal cards (kt-feat-image-align-left = grid 25%/auto, ~118px stamp image).
   Override to stacked image-top cards to match the native-archive look Katie likes.
   Remove when this loop is rebuilt native (GB query loop). */
html body.category-element-override .wp-block-kadence-postgrid.kt-post-loop129653_a689c6-f5 article .kt-blocks-post-grid-item-inner-wrap {
  display: flex !important;
  flex-direction: column !important;
  grid-template-columns: none !important;
  min-height: 0 !important;
}
html body.category-element-override .kt-post-loop129653_a689c6-f5 .kt-blocks-post-grid-item-inner-wrap .kadence-post-image,
html body.category-element-override .kt-post-loop129653_a689c6-f5 .kt-blocks-post-grid-item-inner-wrap .kt-blocks-post-grid-item-feature {
  width: 100% !important;
  max-width: 100% !important;
  flex: 0 0 auto !important;
  margin: 0 0 14px 0 !important;
}
html body.category-element-override .kt-post-loop129653_a689c6-f5 .kt-blocks-post-grid-item-inner-wrap .kadence-post-image img {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 4 / 3 !important;
  object-fit: cover !important;
  display: block !important;
}
html body.category-element-override .kt-post-loop129653_a689c6-f5 .kt-blocks-post-grid-item-inner {
  width: 100% !important;
  flex: 1 1 auto !important;
}

/* THEME-PARK CATEGORY TICKET CARD mobile overlap fix (added 2026-06-01). The .ljm-cat-intro .ticket uses negative margin-top to tuck into the hero beside the H1 on desktop (element 178613). At max-width 1000px the .header-grid collapses to one column, so the ticket drops below the intro and the negative margin yanks it up over the intro text (Katie: SD Zoo "mushed up"). Reset to a positive gap once single-column. Affects all 6 theme-park category heroes. */
@media (max-width: 1000px) {
  .ljm-cat-intro .ticket { margin-top: 24px !important; box-shadow: 0 4px 16px rgba(26,26,26,0.10) !important; }
}
@media (max-width: 600px) {
  .ljm-cat-intro .ticket { margin-top: 16px !important; }
}

/* ======================================================================
   SECTION 44 — Mobile post header fine-tuning (May 24, 2026)
   Fix: orphan meta-dot wrapping to own line, tooltip 3-line wrap,
   content shifted hard against left edge.
   ====================================================================== */
@media (max-width: 480px) {
  /* Compact meta row matching live site: larger avatar + tight 2-line layout */
  .post-meta-row {
    flex-direction: column-reverse !important;
    align-items: flex-start !important;
    gap: 6px !important;
    flex-wrap: nowrap !important;
  }
  .post-meta-row .author-trigger {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    min-width: 0 !important;
    flex: 0 0 auto !important;
  }
  .post-meta-row .author-avatar {
    width: 48px !important;
    height: 48px !important;
    flex-shrink: 0 !important;
  }
  .post-meta-row .author-name {
    font-size: 13px !important;
    line-height: 1.3 !important;
  }
  .post-meta-row .meta-item {
    font-size: 12px !important;
    color: #736758 !important;
    line-height: 1.3 !important;
  }
  .post-meta-row .meta-dot,
  .meta-dot {
    display: none !important;
  }
  /* Tooltip links: tighter gap + smaller font so 3 links fit on one line */
  .author-tooltip-links {
    gap: 10px !important;
    flex-wrap: nowrap !important;
  }
  .author-tooltip-links a {
    font-size: 9px !important;
    letter-spacing: 1px !important;
    white-space: nowrap !important;
  }
  .author-tooltip {
    min-width: 0 !important;
    max-width: calc(100vw - 16px) !important;
    padding: 16px 18px !important;
  }
}

/* Mobile post header padding — tight (12px) to maximize content width
   while keeping breathing room from screen edge. Was 20px which was eating
   too much space. */
@media (max-width: 899px) {
  .post-header,
  .hero-split-text,
  .hero-split-wrapper {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }
  body.single-post .site-content > .content-area {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}
/* END section 44 */

/* END section 37 */

/* END section 36 */

/* END section 28 */

/* ════════════════════════════════════════════════════════
   SUMMARY CALLOUT — reusable component (added 2026-05-24)
   Used via reusable block "Summary Callout" (post 177957)
   Default fill: warm-white #FAF8F5
   Modifier classes: .summary-callout--boxed | .summary-callout--bare
   ════════════════════════════════════════════════════════ */

.entry-content .summary-callout {
  padding: 28px 32px;
  margin: 32px 0;
  background: #FAF8F5;
}

.entry-content .summary-callout--boxed {
  background: #fff;
  border: 1px solid #ECE6DA;
}

.entry-content .summary-callout--bare {
  background: #fff;
  padding: 24px 0;
}

.entry-content .summary-callout__header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 14px;
}

.entry-content .summary-callout__icon {
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  color: #1A1A1A;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.entry-content .summary-callout__icon svg {
  width: 100%;
  height: 100%;
  display: block;
}

.entry-content .summary-callout__title {
  font-family: 'Playfair Display', Georgia, serif;
  font-weight: 500;
  font-size: 22px;
  line-height: 1.25;
  color: #1A1A1A;
  margin: 0;
}

.entry-content .summary-callout__title em {
  font-family: 'Playfair Display', Georgia, serif;
  font-weight: 400;
  font-style: italic;
}

.entry-content .summary-callout__divider {
  position: relative;
  height: 1px;
  background: #C4A265;
  border: none;
  margin: 0 0 18px;
  overflow: visible;
}

.entry-content .summary-callout__divider::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 7px;
  height: 7px;
  background: #265B5F;
  border-radius: 50%;
  transform: translate(-50%, -50%);
}

.entry-content .summary-callout__body {
  font-family: Georgia, serif;
  font-size: 16px;
  line-height: 1.65;
  color: #1A1A1A;
  list-style: none;
  padding: 0;
  margin: 0;
}

.entry-content .summary-callout__body li {
  position: relative;
  padding-left: 22px;
  margin: 0 0 10px;
  font-family: Georgia, serif;
  font-size: 16px;
  line-height: 1.55;
  color: #1A1A1A;
}

.entry-content .summary-callout__body li:last-child {
  margin-bottom: 0;
}

.entry-content .summary-callout__body li::before {
  content: "›";
  position: absolute;
  left: 0;
  top: 0;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 20px;
  font-weight: 500;
  line-height: 1.3;
  color: #C4A265;
}

.entry-content .summary-callout__body p {
  margin: 0 0 12px;
}

.entry-content .summary-callout__body p:last-child {
  margin-bottom: 0;
}

@media (max-width: 600px) {
  .entry-content .summary-callout {
    padding: 22px 18px;
  }
  .entry-content .summary-callout__title {
    font-size: 19px;
  }
}

/* ════════════════════════════════════════════════════════
   HR / SEPARATOR — quieter default + opt-in variants
   (added 2026-05-24)
   Default = warm-gray hairline. Gold + diamond is opt-in via .is-style-diamond.
   ════════════════════════════════════════════════════════ */

.entry-content hr,
.entry-content hr.wp-block-separator {
  background: #E8E2D9 !important;
  border: none !important;
  height: 1px !important;
  margin: 32px 0 !important;
  position: static !important;
  overflow: hidden !important;
}
.entry-content hr::before,
.entry-content hr::after,
.entry-content hr.wp-block-separator::before,
.entry-content hr.wp-block-separator::after {
  display: none !important;
  content: none !important;
}

.entry-content hr.is-style-diamond,
.entry-content hr.wp-block-separator.is-style-diamond {
  background: #C4A265 !important;
  height: 1px !important;
  position: relative !important;
  overflow: visible !important;
  margin: 48px 0 !important;
}
.entry-content hr.is-style-diamond::before,
.entry-content hr.wp-block-separator.is-style-diamond::before {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  width: 28px !important;
  height: 8px !important;
  background: #fff !important;
  transform: translate(-50%, -50%) !important;
}
.entry-content hr.is-style-diamond::after,
.entry-content hr.wp-block-separator.is-style-diamond::after {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  width: 8px !important;
  height: 8px !important;
  background: #C4A265 !important;
  transform: translate(-50%, -50%) rotate(45deg) !important;
}

.entry-content hr.is-style-short,
.entry-content hr.wp-block-separator.is-style-short {
  background: #C4A265 !important;
  width: 60px !important;
  height: 2px !important;
  margin: 32px auto !important;
  border: none !important;
}

.entry-content hr.is-style-asterisks,
.entry-content hr.wp-block-separator.is-style-asterisks {
  background: transparent !important;
  height: 1.5em !important;
  margin: 40px 0 !important;
  position: relative !important;
  overflow: visible !important;
}
.entry-content hr.is-style-asterisks::before,
.entry-content hr.wp-block-separator.is-style-asterisks::before {
  content: "✦ ✦ ✦" !important;
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  transform: translate(-50%, -50%) !important;
  letter-spacing: 0.8em !important;
  color: #C4A265 !important;
  font-size: 14px !important;
  background: transparent !important;
  width: auto !important;
  height: auto !important;
  display: block !important;
}

/* === Eyebrow — sitewide canonical hook =============================
   Per BLOCKS-AND-PATTERNS-INVENTORY.md + design-system.md.
   Use: <p class="eyebrow eyebrow--gold">SECTION LABEL</p>
   Added 2026-05-30 to unblock the Coronado hotel listicle rebuild
   (sandbox post 178557). First sitewide deployment of the canonical
   .eyebrow hook (replaces the deprecated .ljm-lj-eyebrow pattern).
   ==================================================================*/
.entry-content .eyebrow {
  display: block !important;
  font-family: 'Montserrat', Arial, sans-serif !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  margin: 0 0 8px !important;
  line-height: 1.4 !important;
}
.entry-content .eyebrow--gold { color: #8B6914 !important; }
.entry-content .eyebrow--teal { color: #265B5F !important; }
.entry-content .eyebrow--sand { color: #736758 !important; }

/* === Hotel Meta Row — quick-facts panel for hotel listicles =======
   Per Katie 2026-05-30. Tight 2-col grid containing 4 short
   bold-labeled facts (Address / Beach / Hotel Class / Top Pick for or
   equivalents). Stacks to single column on mobile. Used at top of
   every hotel section in listicle posts (best-coronado-island-hotels
   is the first deployment).
   ================================================================ */
.entry-content .hotel-meta {
  background: transparent !important;
  border: 0 !important;
  border-top: 1px solid #E8E2D9 !important;
  border-bottom: 1px solid #E8E2D9 !important;
  padding: 16px 0 !important;
  margin: 16px 0 28px !important;
}
.entry-content .hotel-meta p {
  margin: 0 0 8px !important;
  font-family: Georgia, 'Times New Roman', serif !important;
  font-size: 16px !important;
  line-height: 1.5 !important;
  color: #2C2C2C !important;
}
.entry-content .hotel-meta p:last-child {
  margin-bottom: 0 !important;
}
.entry-content .hotel-meta p strong {
  color: #1A1A1A !important;
  font-weight: 600 !important;
  margin-right: 6px !important;
}
/* === LJM Ticket Components (2026-05-30) === */
.ljm-promo{font-family:Montserrat,Arial,sans-serif;font-size:14px;color:#5f5c55;margin:4px 0 14px;} .ljm-promo b{font-weight:700;letter-spacing:.06em;color:#8B6914;} .ljm-btn .wp-block-button__link{ background:#265B5F;color:#fff;border-radius:3px; font-family:Montserrat,Arial,sans-serif;font-size:12.5px;font-weight:600; letter-spacing:.07em;text-transform:uppercase;padding:14px 26px; } .ljm-btn .wp-block-button__link:hover{background:#1c4649;} @media(max-width:680px){ .ljm-btn .wp-block-button__link{display:block;text-align:center;} } .ljm-cta-box{border:1px solid #e4e0d8;border-left:3px solid #8B6914;border-radius:8px;padding:18px;margin:26px 0;} .ljm-cta-box .ljm-cta-img{margin:0 0 14px;} .ljm-cta-box .ljm-cta-img img{width:100%;height:200px;object-fit:cover;border-radius:6px;display:block;} .ljm-cta-box .ljm-cta-kicker{font-family:Montserrat,Arial,sans-serif;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:#8B6914;margin:0 0 6px;} .ljm-cta-box .ljm-cta-headline{font-family:'Playfair Display',Georgia,serif;font-size:22px;font-weight:600;line-height:1.25;margin:0 0 8px;} @media(max-width:680px){ .ljm-cta-box{padding:13px;} .ljm-cta-box .ljm-cta-img img{height:104px;} .ljm-cta-box .ljm-cta-headline{font-size:18px;} } .ljm-toc{background:#fff;border:1px solid #e4e0d8;border-radius:8px;padding:20px 24px;margin:24px 0;} .ljm-toc-label{font-family:Montserrat,Arial,sans-serif;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:#8B6914;margin:0 0 12px;} .ljm-toc ol{columns:2;column-gap:28px;font-family:Montserrat,Arial,sans-serif;font-size:13.5px;} @media(max-width:680px){ .ljm-toc ol{columns:1;} } .ljm-price-table table,.ljm-wide-table table{font-family:Montserrat,Arial,sans-serif;font-size:14.5px;} .ljm-price-table th,.ljm-wide-table th{ background:#fff;color:#1A1A1A;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase; font-weight:700;border-bottom:2px solid #1A1A1A;text-align:left; } .ljm-price-table td:first-child{font-weight:600;white-space:nowrap;} .ljm-wide-table{overflow-x:auto;} .ljm-wide-table table{min-width:560px;} .ljm-table-caption{font-family:Montserrat,Arial,sans-serif;font-size:12px;color:#8a857d;} .scroll-hint{font-family:Montserrat,Arial,sans-serif;font-size:11px;color:#8a857d;display:none;} @media(max-width:680px){ .scroll-hint{display:block;} } .ljm-dropdown{border:1px solid #e4e0d8;border-radius:7px;margin:10px 0;} .ljm-dropdown>summary{list-style:none;cursor:pointer;padding:13px 16px;display:flex;justify-content:space-between;align-items:center;gap:12px;} .ljm-dropdown>summary::-webkit-details-marker{display:none;} .ljm-dropdown>summary h3{font-family:'Playfair Display',Georgia,serif;font-size:18px;font-weight:600;margin:0;} .ljm-dropdown>summary::after{content:'+';color:#8B6914;font-size:20px;line-height:1;flex-shrink:0;} .ljm-dropdown[open]>summary::after{content:'−';} .ljm-dropdown>summary:hover{background:#faf9f6;border-radius:7px;} .ljm-dropdown table{margin:0 16px 14px;width:calc(100% - 32px);font-family:Montserrat,Arial,sans-serif;font-size:14px;} .ljm-closing{border-top:2px solid #8B6914;padding-top:26px;margin-top:48px;} .ljm-closing-line{font-family:'Playfair Display',Georgia,serif;font-size:21px;font-weight:500;line-height:1.3;margin:0 0 18px;}

/* LJM CTA grid override 2026-05-30 */
.ljm-cta-box{display:grid;grid-template-columns:210px 1fr;column-gap:22px;align-items:start;} .ljm-cta-box>*{grid-column:2;} .ljm-cta-box>.ljm-cta-img{grid-column:1;grid-row:1/99;margin:0;align-self:stretch;} .ljm-cta-box>.ljm-cta-img img{height:100%;min-height:150px;} @media(max-width:680px){ .ljm-cta-box{grid-template-columns:1fr;column-gap:0;} .ljm-cta-box>*{grid-column:1;} .ljm-cta-box>.ljm-cta-img{grid-row:auto;margin:0 0 12px;} .ljm-cta-box>.ljm-cta-img img{height:104px;min-height:0;} }

/* LJM buttons full-width on mobile 2026-05-30 */
@media(max-width:680px){ .ljm-btn{flex:1 1 100%;width:100%;} .ljm-btn .wp-block-button__link{display:block;width:100%;box-sizing:border-box;text-align:center;} }
/* === BRAND COLOR SWAP: retire old-theme grey + seafoam (added 2026-05-31, REMOVABLE, see REMOVABLE-PATCHES.md) START === */
/* Carried-over Kadence palette used cool tones for section backgrounds, highlight marks, and light
   borders. Override the three light palette vars to brand warm neutrals sitewide. !important beats
   Kadence's own inline :root copy regardless of load order. Text vars (1 to 5: teal/black/grey) are
   intentionally untouched, so links, buttons, and body copy are unaffected. */
:root{
  --global-palette6:#E8E2D9!important; /* light seafoam to border-light */
  --global-palette7:#F5F1EB!important; /* paler seafoam to linen */
  --global-palette8:#FAF8F5!important; /* off-white grey to warm-white */
}
/* Hand-coded literals (not palette-driven): Trip Planning Toolkit + cards */
.trip-toolkit{background:#FAF8F5!important;border-color:#EFEAE2!important;}
.toolkit-card{border-color:#E8E2D9!important;}
/* === BRAND COLOR SWAP END === */
/* === ROTATE UTILITY CLASSES (added 2026-05-31) — ported verbatim from live child theme (la-jolla-mom-by-diy-dream-site/style.css); restores the polaroid photo tilt on /resources/ and anywhere else these classes are used. PERMANENT (migrated content CSS, not a Kadence patch). === */
.rotate-left{transform:rotate(-8deg);}
.rotate-right{transform:rotate(8deg);}
.rotate-left-sm{transform:rotate(-2deg);}
.rotate-right-sm{transform:rotate(2deg);}
/* === ROTATE UTILITY CLASSES END === */
/* === KADENCE ICON-LIST COLUMNS restore (added 2026-05-31, REMOVABLE, part of the icon-list bullet conversion patch #6) START === */
/* Our bullet conversion forces display:block on ul.kt-svg-icon-list, which collapsed Kadence's
   2/3/4-column icon lists into one long single column (e.g. the brand list on /hotel-booking-tool/).
   Kadence marks the column count on the WRAPPER (.kt-svg-icon-list-columns-N). Re-flow the bullet
   list into that many CSS multicolumns at tablet and up; stay single-column on mobile. */
@media (min-width:768px){
  .entry-content .kt-svg-icon-list-columns-2 ul.kt-svg-icon-list,
  .post-body .kt-svg-icon-list-columns-2 ul.kt-svg-icon-list { column-count:2; column-gap:40px; }
  .entry-content .kt-svg-icon-list-columns-3 ul.kt-svg-icon-list,
  .post-body .kt-svg-icon-list-columns-3 ul.kt-svg-icon-list { column-count:3; column-gap:32px; }
  .entry-content .kt-svg-icon-list-columns-4 ul.kt-svg-icon-list,
  .post-body .kt-svg-icon-list-columns-4 ul.kt-svg-icon-list { column-count:4; column-gap:24px; }
}
.entry-content ul.kt-svg-icon-list > li,
.post-body ul.kt-svg-icon-list > li { -webkit-column-break-inside:avoid; break-inside:avoid; }
/* === KADENCE ICON-LIST COLUMNS restore END === */
/* === BOOK VIP NOW button full-width (added 2026-05-31, REMOVABLE; one-off Kadence CTA on /hotel-reservation-review-service/, page slated for rebuild) START === */
.kadence-column151049_3f7530-ae{ width:100%!important; max-width:100%!important; flex:1 1 100%!important; }
.kadence-column151049_3f7530-ae > .kt-inside-inner-col{ width:100%!important; }
/* === BOOK VIP NOW button full-width END === */
/* === FS BOOKING FORM card (added 2026-05-31, REMOVABLE; one-off on /four-seasons-hotels-and-resorts-booking-page/, page slated for Kadence rebuild) START === */
/* Give the emailmeform embed a faint warm panel + border + soft shadow so the form reads as a contained card on the white page (Katie: "very light background so people can see the back of the form"). */
.kadence-column45124_947a19-fd > .kt-inside-inner-col {
  background:#F7F7F7 !important;
  border:1px solid #E2E2E2 !important;
  border-radius:6px !important;
  padding:24px 20px !important;
  box-shadow:0 2px 16px rgba(26,26,26,0.06) !important;
}
.kadence-column45124_947a19-fd > .kt-inside-inner-col iframe { width:100% !important; max-width:100% !important; display:block !important; }
/* === FS BOOKING FORM card END === */
/* === ABOUT team member photos (added 2026-05-31, REMOVABLE; part of the static team-grid stopgap, dies when the dynamic ljm_team_grid / About rebuild lands) START === */
body.page-id-128778 .lja-member-photo { margin:0 auto 14px !important; width:104px !important; max-width:104px !important; }

/* === ABOUT team member photos END === */
/* === EXCLUSIVE LUXURY HOTEL AMENITIES — divider under header (added 2026-05-31, REMOVABLE; one-off page tweak, /exclusive-luxury-hotel-amenities/) START === */
.kb-row-layout-id29600_ba5115-09 { border-bottom:1px solid #E8E2D9 !important; padding-bottom:36px !important; margin-bottom:36px !important; }
/* === EXCLUSIVE LUXURY HOTEL AMENITIES divider END === */
/* === ABOUT page list sizing (added 2026-05-31, REMOVABLE; About is a wp:html stopgap, drop at rebuild) START === */
/* The sitewide chevron-bullet rule was rendering the About coverage + access lists at 19px with a
   bright-gold chevron, much larger than the 14.5px body and making the non-link access bullets look
   clickable. Match them to body size + a quiet sand marker. */
body.page-id-128778 .lja-coverage-col ul li,
body.page-id-128778 .lja-access ul li {
  font-size:15px !important; line-height:1.55 !important;
  margin-bottom:7px !important; padding-left:18px !important;
}

/* === ABOUT page list sizing END === */
/* === ABOUT "hotels we cover personally" tap targets, mobile (added 2026-05-31, REMOVABLE) START === */
/* The dense middot-separated hotel link run renders ~19px-tall inline tap targets — technically
   exempt from WCAG 2.5.8 (inline) but hard to tap. On mobile, grow the hit area + separate the lines. */
@media (max-width:768px){
  
}
/* === ABOUT hotels tap targets END === */
/* === ABOUT section vertical rhythm on mobile (added 2026-05-31, REMOVABLE) START === */
/* Sections carry 80px top/bottom padding (good editorial whitespace on desktop) but that stacks to
   ~160px gaps on mobile (Katie: "an inch and a half"). Halve it on mobile for a tighter rhythm. */
@media (max-width:768px){
  
}
/* === ABOUT section rhythm mobile END === */

/* ============================================================
   LJM SLIDER component (added 2026-06-01, REMOVABLE block) START
   ------------------------------------------------------------
   Canonical site-wide slider primitive.
   Engine: Splide.js 4.1.4 (loaded by Code Snippet, conditional on .ljm-slider).
   Editor shell: GenerateBlocks Pro Element nested tree.
   Variants by modifier class on the slide:
     .ljm-slide-card--neighborhood  (default 3/4 portrait, gold italic number + Playfair title + Georgia body)
     .ljm-slide-card--hotel         (optional VIP pill + Playfair name + Montserrat eyebrow + Georgia note)
     .ljm-slide-card--photo         (no card chrome, 3/2 default, used for room photo galleries)
     .ljm-slide-card--cards         (generic title + caption, sandbox prototype carry-over)
   Per-instance config via data-* attributes on .ljm-slider wrapper:
     data-perpage / data-perpage-tablet / data-perpage-mobile
     data-gap / data-gap-tablet / data-gap-mobile
     data-aspect (4/3 default, 3/4, 2/3, 1/1, 3/2, 16/9)
     data-arrows, data-pagination, data-autoplay, data-loop, data-padding
   See: ~/Desktop/GP-Migration/specs/ljm-slider-spec.md (canonical)
   ============================================================ */

/* engine wrapper */
.ljm-slider { position: relative; }
.ljm-slider:has(.ljm-slide-card--photo) { margin-bottom: 1.75rem; }
.ljm-slider .splide__list { display: flex; margin: 0; padding: 0; list-style: none; align-items: stretch; }
.ljm-slider .splide__slide { height: auto; }

/* arrows */
.ljm-slider .splide__arrow { background: #1A1A1A; opacity: 0.92; width: 38px; height: 38px; border-radius: 50%; box-shadow: 0 2px 8px rgba(0,0,0,0.18); }
.ljm-slider .splide__arrow:hover { background: #8B6914; opacity: 1; }
.ljm-slider .splide__arrow:disabled { opacity: 0.35; }
.ljm-slider .splide__arrow svg { fill: #fff; width: 15px; height: 15px; }

/* pagination dots */
.ljm-slider .splide__pagination { margin-top: 18px; position: static; padding: 0; }
.ljm-slider .splide__pagination__page { background: #E8E2D9; margin: 0 4px; width: 8px; height: 8px; opacity: 1; }
.ljm-slider .splide__pagination__page.is-active { background: #8B6914; transform: scale(1.25); }

/* opt-out modifier on the wrapper */
.ljm-slider--no-dots .splide__pagination { display: none; }

/* slide-card BASE (all variants inherit) */
.ljm-slide-card { display: flex; flex-direction: column; background: #fff; border: 1px solid #E8E2D9; border-radius: 3px; overflow: hidden; height: 100%; text-decoration: none; color: inherit; transition: transform 0.18s ease, border-color 0.18s ease; }
.ljm-slide-card:hover { transform: translateY(-2px); border-color: #C4A265; }
.entry-content .ljm-slide-card .wp-block-image { margin: 0 !important; }
.ljm-slide-card figure { margin: 0; }
.ljm-slide-card img { display: block; width: 100%; aspect-ratio: 4/3; object-fit: cover; background: #E8E2D9; }

/* --neighborhood modifier (default 3/4 portrait per locked decision) */
.ljm-slide-card--neighborhood img { aspect-ratio: 3/4; }
.ljm-slide-card--neighborhood .ljm-slide-card__body { padding: 18px 20px 22px; }
.ljm-slide-card--neighborhood .ljm-slide-card__num { display: block; font-family: 'Playfair Display', Georgia, serif; font-style: italic; font-weight: 400; font-size: 20px; color: #8B6914; line-height: 1; margin-bottom: 6px; }
.entry-content .ljm-slide-card--neighborhood .ljm-slide-card__title { font-family: 'Playfair Display', Georgia, serif; font-weight: 500; font-size: 19px; line-height: 1.2; color: #1A1A1A; margin: 0 0 8px !important; }
.entry-content .ljm-slide-card--neighborhood .ljm-slide-card__text { font-family: Georgia, 'Times New Roman', serif; font-size: 14.5px; line-height: 1.5; color: #4A4A4A; margin: 0 !important; }

/* --hotel modifier (optional VIP pill, eyebrow for location) */
.ljm-slide-card--hotel .ljm-slide-card__body { padding: 14px 16px 18px; display: flex; flex-direction: column; }
.ljm-slide-card--hotel .ljm-slide-card__pill { align-self: flex-start; font-family: 'Montserrat', system-ui, sans-serif; font-size: 9px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: #8B6914; border: 1px solid #C4A265; border-radius: 999px; padding: 3px 9px; margin-bottom: 8px; }
.entry-content .ljm-slide-card--hotel .ljm-slide-card__title { font-family: 'Playfair Display', Georgia, serif; font-weight: 500; font-size: 18px; line-height: 1.25; color: #1A1A1A; margin: 0 0 3px !important; }
.ljm-slide-card--hotel .ljm-slide-card__eyebrow { font-family: 'Montserrat', system-ui, sans-serif; font-size: 10px; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase; color: #B8AFA3; margin-bottom: 8px; }
.entry-content .ljm-slide-card--hotel .ljm-slide-card__text { font-family: Georgia, 'Times New Roman', serif; font-size: 13.5px; line-height: 1.5; color: #4A4A4A; margin: 0 !important; }

/* --photo modifier (no card chrome, 3/2 default) */
.ljm-slide-card--photo { border: none; border-radius: 3px; background: transparent; }
.ljm-slide-card--photo:hover { transform: translateY(-2px); border: none; }
.ljm-slide-card--photo img { aspect-ratio: 3/2; border-radius: 3px; }

/* --cards modifier (generic title + caption, carry-over from sandbox 178237) */
.ljm-slide-card--cards .ljm-slide-card__body { padding: 14px 16px 18px; }
.entry-content .ljm-slide-card--cards .ljm-slide-card__title { font-family: 'Playfair Display', Georgia, serif; font-weight: 500; font-size: 18px; line-height: 1.25; color: #1A1A1A; margin: 0 0 6px !important; }
.entry-content .ljm-slide-card--cards .ljm-slide-card__caption { font-family: Georgia, 'Times New Roman', serif; font-size: 14px; line-height: 1.5; color: #736758; margin: 0 !important; }

/* data-aspect wrapper overrides (win over modifier defaults via specificity 0,3,1 > 0,2,1) */
.ljm-slider[data-aspect="3/4"] .ljm-slide-card img { aspect-ratio: 3/4; }
.ljm-slider[data-aspect="2/3"] .ljm-slide-card img { aspect-ratio: 2/3; }
.ljm-slider[data-aspect="1/1"] .ljm-slide-card img { aspect-ratio: 1/1; }
.ljm-slider[data-aspect="4/3"] .ljm-slide-card img { aspect-ratio: 4/3; }
.ljm-slider[data-aspect="3/2"] .ljm-slide-card img { aspect-ratio: 3/2; }
.ljm-slider[data-aspect="16/9"] .ljm-slide-card img { aspect-ratio: 16/9; }

/* mobile: hide arrows on touch (Splide also drops them via breakpoint, this is the visual safety net) */
@media (max-width: 540px) {
  .ljm-slider .splide__arrow { display: none; }
}

/* hero photo gallery (data-perpage="1"): arrows always visible, positioned inside the photo */
/* Force position context — some templates wipe Splide's own .splide{position:relative} */
.entry-content .ljm-slider,
.entry-content .ljm-slider .splide__track { position: relative !important; }
.entry-content .ljm-slider .splide__arrows { position: static; }
.ljm-slider[data-perpage="1"] .splide__arrow {
  z-index: 2;
  top: 50%;
  transform: translateY(-50%);
  opacity: 0;
  transition: opacity 0.2s ease;
}
.ljm-slider[data-perpage="1"]:hover .splide__arrow,
.ljm-slider[data-perpage="1"]:focus-within .splide__arrow,
.ljm-slider[data-perpage="1"] .splide__arrow:focus-visible {
  opacity: 0.9;
}
.ljm-slider[data-perpage="1"] .splide__arrow:focus-visible {
  outline: 2px solid #C4A265;
  outline-offset: 2px;
}
.ljm-slider[data-perpage="1"] .splide__arrow--prev { left: 16px; }
.ljm-slider[data-perpage="1"] .splide__arrow--next { right: 16px; }
@media (max-width: 540px) {
  .ljm-slider[data-perpage="1"] .splide__arrow { display: flex; width: 32px; height: 32px; }
  .ljm-slider[data-perpage="1"] .splide__arrow--prev { left: 10px; }
  .ljm-slider[data-perpage="1"] .splide__arrow--next { right: 10px; }
}

/* figcaption support for --photo variant (caption-below pattern) */
.entry-content .ljm-slide-card--photo figcaption,
.ljm-slide-card--photo figcaption {
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 13px;
  font-style: italic;
  line-height: 1.5;
  color: #736758;
  margin: 8px 0 0 !important;
  text-align: center;
  padding: 0 16px;
}

/* === LJM SLIDER component END === */

/* === RHYTHM PASS — tighter listicle density START === */

/* Numbered hotel H2s in listicles — tighter than feature-article H2s but
   still breathes enough to register as a section break. */
/* H2 margin override REVERTED 2026-06-13 — theme default 64/18 restored sitewide */

/* H3 sub-section eyebrow margins — keep H3 from hugging its bullet list below.
   The down-gap (margin-bottom) needs to breathe more than I initially set. */
/* H3 eyebrow margin override REVERTED 2026-06-13 — theme default restored sitewide */

/* H4 section-label — magazine pattern: short gold rule above + Playfair bold heading.
   Use as `<h4 class="section-label">` to break up walls of paragraphs into scannable chunks. */
.entry-content h4.section-label {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 22px;
  font-weight: 700;
  color: #1A1A1A;
  margin: 36px 0 14px !important;
  position: relative;
}
.entry-content h4.section-label::before {
  content: "";
  display: block;
  width: 32px;
  height: 3px;
  background: #C4A265;
  margin-bottom: 14px;
}

/* Tips callout — extend teal rule past text via internal padding, plus 
   slightly more outer margin so the card breathes from adjacent sections. */
/* Tips margin override REVERTED 2026-06-13 — original 32px/4px restored */

/* Hotel meta-zone wrapper — tighten inter-paragraph margins on meta lines
   (italic deck, Beach:, Best For, VIP eyebrow) so they read as ONE coherent
   strip rather than 4 stacked paragraphs. Wrap HDC's meta paragraphs in a
   wp:group with className="hotel-meta". */
.entry-content .hotel-meta p {
  margin: 0 0 6px !important;
}
.entry-content .hotel-meta > .wp-block-group__inner-container {
  padding: 0;
}

/* === RHYTHM PASS — tighter listicle density END === */

/* === BOOKING CALLOUT — compact variant START === */
/* Listicle / round-up sibling of .booking-callout. Faint gold outline, no big title override, no centered layout, no 3-col strip. Reuses sitewide H3/list/button styling. */
.entry-content .booking-callout--compact {
  border: 1px solid #C4A265;
  background: transparent;
  padding: 24px 28px;
  margin: 8px 0 32px;
  text-align: left;
}
/* Override WP/GP wp-block-group default inner-container padding (30px) so children
   take the booking-callout's own padding, not double-pad. Critical for mobile full-bleed. */
.entry-content .booking-callout--compact > .wp-block-group__inner-container {
  padding: 0;
}
/* Mobile: collapse 4-sided frame to gold left rule only — mirrors the tips-from-katie blockquote accent pattern. Saves ~40px of horizontal content width and ~34px of vertical padding per box. Critical when the page has 15 of these. */
@media (max-width: 640px) {
  .entry-content .booking-callout--compact {
    border: 1px solid #C4A265;
    background: transparent;
    /* Full-bleed gold outline trick: negative margin pulls element edges to viewport,
       matching padding pulls content back so text stays at body width. Border traces 
       the viewport edges, content stays at body width — gold frame translated from desktop. */
    margin: 4px calc(-1 * (100vw - 100%) / 2) 24px;
    padding: 16px calc((100vw - 100%) / 2);
  }
}
/* Full-width button inside the booking-callout (mobile + desktop). Makes the
   BOOK button the visual peak of the conversion zone — paired with the top-of-section
   ✦ VIP BENEFITS AVAILABLE affordance, this is the "promise → delivery" pattern. */
.entry-content .booking-callout--compact .wp-block-buttons {
  margin: 16px 0 20px;
}
.entry-content .booking-callout--compact .wp-block-button {
  width: 100%;
}
.entry-content .booking-callout--compact .wp-block-button__link {
  display: block;
  width: 100%;
  text-align: center;
  padding: 16px 24px;
  font-size: 14px;
  letter-spacing: 0.12em;
}
/* === BOOKING CALLOUT — compact variant END === */

/* === BEST FOR meta line (listicle entries) START === */
/* Small uppercase gold label + italic values, inline on one line. 
   Pattern borrowed from Encinitas hotel listicle reference. */
.entry-content .best-for {
  margin: 14px 0 16px;
  font-size: 17px;
  line-height: 1.5;
}
.entry-content .best-for strong {
  font-family: 'Montserrat', Arial, sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #8B6914;
  margin-right: 10px;
  white-space: nowrap;
  vertical-align: 1px;
}
.entry-content .best-for em {
  font-family: Georgia, 'Times New Roman', serif;
  font-style: italic;
  color: #1A1A1A;
}
/* === BEST FOR meta line END === */

/* Constrain summary-callout heading visual size — semantically H2 (for heading
   hierarchy), but renders smaller than a default H2 so the callout doesn't 
   compete visually with the real section H2s below it. Higher specificity to
   beat the theme's .entry-content h2 default size. */
.entry-content .summary-callout h2.summary-callout__title,
.entry-content .summary-callout .summary-callout__title {
  font-size: 28px !important;
  line-height: 1.25 !important;
  margin: 0 0 18px !important;
}
@media (max-width: 640px) {
  .entry-content .summary-callout h2.summary-callout__title,
  .entry-content .summary-callout .summary-callout__title { font-size: 24px !important; }
}

/* === FAQ accordions START === */
.entry-content details.faq-item {
  border-bottom: 1px solid #E8E2D9;
  padding: 16px 0;
}
.entry-content details.faq-item summary {
  cursor: pointer;
  list-style: none;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 19px;
  padding-right: 32px;
  position: relative;
  color: #1A1A1A;
}
.entry-content details.faq-item summary::-webkit-details-marker { display: none; }
.entry-content details.faq-item summary::after {
  content: "+";
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  font-family: 'Montserrat', Arial, sans-serif;
  font-size: 22px;
  color: #C4A265;
  transition: transform 0.2s ease;
}
.entry-content details.faq-item[open] summary::after {
  content: "−";
}
.entry-content details.faq-item .faq-answer {
  padding-top: 12px;
  color: #2C2C2C;
}
.entry-content details.faq-item .faq-answer p {
  margin: 0;
}
/* === FAQ accordions END === */

/* Decorative ✦ sparkle for VIP affordance eyebrows — applied via CSS so screen
   readers don't announce "black four-pointed star" before the label. Scoped
   to paragraph-form eyebrow--gold (the listicle VIP eyebrows), not H3 form. */
.entry-content p.eyebrow--gold::before {
  content: "✦ ";
}

/* Tighten an eyebrow paragraph that sits immediately before an H2 — makes 
   the eyebrow read as attached to the headline (pre-headline tag pattern),
   not floating above it. Tightens BOTH the gap below the eyebrow (its
   own margin-bottom) and the gap above the H2 (margin-top). */
.entry-content p.eyebrow--gold:has(+ h2) {
  margin-bottom: 0 !important;
}
.entry-content .eyebrow + h2,
.entry-content p.eyebrow + h2 {
  margin-top: 2px !important;
}

/* ljm-snh widget card titles: gold underline on hover/focus only, not at rest. Fixes the SD hotels widget (#browse-by-neighborhood, /san-diego/san-diego-hotels/). The SD-hub widget that also used this was removed 2026-06-03; rule kept because the hotels widget's bundled CSS still has the underline bug */
.ljm-snh-title{text-decoration-color:transparent !important;}
.ljm-snh-card:hover .ljm-snh-title,
.ljm-snh-card:focus-visible .ljm-snh-title{text-decoration-color:#C4A265 !important;}

/* Hide the San Diego category page-hero element (177519: hero + guide + hotel grid) on paginated archive pages (page 2+) only; the real post list remains. Stopgap pending the San Diego category redo. 2026-06-03 */
body.category-12.paged main#main section[class*="kb-row-layout-id129653"]{display:none !important;}

/* Mobile: align the hero breadcrumb to the content/photo left edge (it's double-gutter'd on mobile, landing ~32px in) and tighten the gap below it. 2026-06-03 */
@media (max-width: 600px) {
  .ljm-sitewide-paged-bc:has(+ .kb-row-layout-wrap) .ljm-breadcrumbs.ljm-breadcrumbs-hero { margin-left: -32px !important; margin-bottom: 6px !important; }
  /* trim the deliberate 28px top padding on the breadcrumb wrapper down for mobile (matches the existing archive-no-cat-intro selector so the tuned desktop value is untouched) */
  /* mobile, ELEMENT-POWERED category pages only — gated by :has(+ .kb-row-layout-wrap) so it applies only when the breadcrumb wrapper is directly followed by a Kadence hero section. EXCLUDES default GP archives (wrap followed by .generate-columns-container), where these negative margins would overlap the post grid. */
  body.archive:not(.paged):not(:has(.ljm-cat-intro)) .ljm-sitewide-paged-bc:has(+ .kb-row-layout-wrap) { padding-top: 4px !important; margin-top: -14px !important; margin-bottom: -30px !important; }
}

/* ═══════════════════════════════════════════════════════
   DISCOUNT-TICKETS COMPONENTS
   See specs/discount-tickets-components-spec.md. Added 2026-05-31.
   Tokens from design-system.md. No !important. No > combinators.
   (1) Situation Box  = .summary-callout + priced rows
   (2) Ticket Cards   = .ticket-card / .ticket-card--feat
   ═══════════════════════════════════════════════════════ */

/* ---- (1) Situation Box: priced rows on .summary-callout ---- */
.summary-callout__eyebrow {
  font-family: 'Montserrat', Arial, sans-serif; font-size: 11px; font-weight: 600;
  letter-spacing: .16em; text-transform: uppercase; color: #8B6914; margin: 0 0 8px;
}
.summary-callout__rows { margin: 6px 0 0; }
.summary-callout__row {
  display: flex; align-items: center; gap: 14px; text-decoration: none;
  color: inherit; padding: 14px 2px; border-top: 1px solid #E8E2D9;
}
.summary-callout__row-body { flex: 1; min-width: 0; }
.summary-callout__row-name {
  display: block; font-family: 'Playfair Display', Georgia, serif;
  font-size: 18px; font-weight: 500; color: #1A1A1A; line-height: 1.25;
}
.summary-callout__row-name em { font-style: italic; }
.summary-callout__row-desc {
  display: block; font-family: 'Montserrat', Arial, sans-serif; font-size: 13.5px;
  color: #736758; margin-top: 3px; line-height: 1.45;
}
.summary-callout__row-val { font-family: 'Montserrat', Arial, sans-serif; text-align: right; flex-shrink: 0; }
.summary-callout__row-val .from { display: block; font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: #736758; font-weight: 600; }
.summary-callout__row-val .amt { font-size: 18px; font-weight: 600; color: #265B5F; }
.summary-callout__row-val .pern { display: block; font-size: 9px; color: #736758; font-weight: 500; margin-top: 1px; }
.summary-callout__row-val .tag { display: inline-block; max-width: 72px; text-align: right; font-size: 11px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: #8B6914; line-height: 1.2; }
.summary-callout__row-chev { flex-shrink: 0; color: #736758; font-size: 17px; font-family: 'Montserrat', Arial, sans-serif; }
.summary-callout__row:focus-visible { outline: 2px solid #8B6914; outline-offset: 2px; border-radius: 2px; }
.summary-callout__row:hover .summary-callout__row-name { text-decoration: underline; text-decoration-color: #C4A265; text-underline-offset: 3px; }
.summary-callout__row--feat { border-left: 3px solid #C4A265; padding-left: 14px; margin-left: -2px; }
.summary-callout__row-badge { display: block; font-family: 'Montserrat', Arial, sans-serif; font-size: 9.5px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: #8B6914; margin-bottom: 3px; }
.summary-callout__row-badge::before { content: "\★ "; color: #C4A265; }

/* ---- (2) Ticket Cards ---- */
.ticket-cards { margin: 24px auto; max-width: 640px; }
.ticket-card {
  display: flex; align-items: stretch; gap: 14px; background: #fff;
  border: 1px solid #E8E2D9; border-radius: 5px; padding: 14px; margin: 0 0 14px;
}
.ticket-card--feat { border-left: 3px solid #C4A265; }
.ticket-card__img { width: 140px; aspect-ratio: 4 / 3; align-self: flex-start; border-radius: 3px; flex-shrink: 0; overflow: hidden; margin: 0; background: #F5F1EB; position: relative; }
.ticket-card__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.ticket-card__body { flex: 1; min-width: 0; }
.ticket-card__badge { display: inline-block; font-family: 'Montserrat', Arial, sans-serif; font-size: 9.5px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: #8B6914; margin: 0 0 5px; }
.ticket-card__badge::before { content: "\★ "; color: #C4A265; }
.ticket-card__title { font-family: 'Playfair Display', Georgia, serif; font-weight: 500; font-size: 18px; line-height: 1.25; margin: 0 0 5px; color: #1A1A1A; }
.ticket-card__title em { font-style: italic; }
.ticket-card__incl { font-family: 'Montserrat', Arial, sans-serif; font-size: 13px; color: #736758; line-height: 1.45; margin: 0 0 12px; }
.ticket-card__foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.ticket-card__price { font-family: 'Montserrat', Arial, sans-serif; line-height: 1.2; }
.ticket-card__price .strike { font-size: 13px; color: #736758; text-decoration: line-through; margin-right: 6px; }
.ticket-card__price .amt { font-size: 20px; font-weight: 600; color: #265B5F; }
.ticket-card__price .save { display: block; font-size: 10px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: #8B6914; margin-top: 2px; }
.ticket-card .btn-primary-teal.is-outline { background: transparent; color: #265B5F; }
.ticket-card .btn-primary-teal.is-outline:hover { background: #265B5F; color: #fff; }
@media (max-width: 560px) {
  .ticket-card { display: block; padding: 12px; }
  .ticket-card::after { content: ""; display: table; clear: both; }
  .ticket-card__img { float: left; width: 96px; height: 96px; min-height: 0; margin: 0 13px 7px 0; }
  .ticket-card__body { display: block; }
  .ticket-card__title { font-size: 16px; }
  .ticket-card__foot { display: block; clear: both; }
  .ticket-card__price { display: block; margin-bottom: 9px; }
}
/* WP wraps group children in .wp-block-group__inner-container — flex that */
.ticket-card > .wp-block-group__inner-container { display: flex; align-items: flex-start; gap: 14px; }
.ticket-card__foot > .wp-block-group__inner-container { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.summary-callout__row > .wp-block-group__inner-container { display: flex; align-items: center; gap: 14px; }
/* title size: out-specificity the theme's .entry-content h3.wp-block-heading (0,2,1) */
.entry-content .ticket-card .ticket-card__title { font-size: 18px !important; line-height: 1.25; margin: 0 0 5px; }
@media (max-width: 560px) { .entry-content .ticket-card .ticket-card__title { font-size: 16px !important; } }
/* kill theme block-gap (is-layout-flow margin-top) inside card + box rows; my element margins control spacing */
/* Kill theme heading/paragraph margins inside components; control spacing via flex gap */
.entry-content .ticket-card .wp-block-group__inner-container > * { margin: 0 !important; }
.entry-content .ticket-card .ticket-card__body > .wp-block-group__inner-container { display: flex; flex-direction: column; gap: 7px; }
.entry-content .summary-callout__rows .wp-block-group__inner-container > * { margin: 0 !important; }
.entry-content .summary-callout__row-body > .wp-block-group__inner-container { display: flex; flex-direction: column; gap: 3px; }
/* === GP theme-override guards for discount-tickets HTML-block components (.ljm-kt / .ljm-cards) === */
.entry-content .ljm-cards .tk-card { display: flex !important; align-items: stretch !important; }
.entry-content .ljm-cards .tk-img { width: 140px !important; max-width: 140px !important; margin: 0 !important; align-self: stretch !important; overflow: hidden; }
.entry-content .ljm-cards .tk-img img { width: 100% !important; height: 100% !important; object-fit: cover !important; display: block; }
.entry-content .ljm-cards > .wp-block-group__inner-container { padding: 0 !important; }
.entry-content .ljm-cards .tk-content > .wp-block-group__inner-container { padding: 0 !important; }
.entry-content .ljm-cards .tk-card { gap: 14px !important; position: relative; }
.entry-content .ljm-cards .tk-card .tk-btn .wp-block-button__link { transition: background .15s ease; }
.entry-content .ljm-cards .tk-card .tk-btn .wp-block-button__link::after { content: ""; position: absolute; top: 0; left: 0; right: 0; bottom: 0; z-index: 1; }
.entry-content .ljm-cards .tk-card:hover .tk-btn .wp-block-button__link, .entry-content .ljm-cards .tk-card .tk-btn .wp-block-button__link:hover { background: #1A4448 !important; }
.entry-content .ljm-cards .tk-card:hover { box-shadow: 0 2px 14px rgba(38,91,95,0.10); }
/* Restrained button options (comparison) */
.entry-content .ljm-cards .tk-btn--slim .wp-block-button__link { width: auto !important; padding: 12px 28px !important; font-size: 12px !important; letter-spacing: 0.12em !important; }
.entry-content .ljm-cards .tk-btn.is-style-outline .wp-block-button__link { background: transparent !important; color: #265B5F !important; border: 1px solid #265B5F !important; width: auto !important; padding: 12px 28px !important; font-size: 12px !important; letter-spacing: 0.12em !important; }
.entry-content .ljm-cards .tk-card:hover .tk-btn.is-style-outline .wp-block-button__link { background: #265B5F !important; color: #fff !important; }
.entry-content .ljm-cards h3.tk-name { font-size: 18px !important; margin: 0 0 5px !important; }
.entry-content .ljm-cards .tk-incl { margin: 0 0 12px !important; }
.entry-content .ljm-kt .kt-row { display: flex !important; }
.entry-content .ljm-kt > .wp-block-group__inner-container{padding-left:0 !important;padding-right:0 !important;}
.entry-content .ljm-kt .kt-rows > .wp-block-group__inner-container{padding-left:0 !important;padding-right:0 !important;}
.entry-content .ljm-kt p.kt-head { font-size: 25px !important; margin: 0 0 6px !important; }
.entry-content .ljm-kt p.kt-eyebrow, .entry-content .ljm-kt p.kt-sub, .entry-content .ljm-kt p.kt-foot { margin-top: 0 !important; }
@media (max-width: 560px) {
  .entry-content .ljm-cards .tk-card { flex-direction: column !important; align-items: flex-start !important; }
  .entry-content .ljm-cards .tk-img { flex: 0 0 auto !important; width: 124px !important; max-width: 124px !important; height: 88px !important; align-self: flex-start !important; border-radius: 3px; }
  .entry-content .ljm-cards .tk-content { width: 100% !important; }
  .entry-content .ljm-cards .tk-foot-row .tk-btns, .entry-content .ljm-cards .tk-foot-row .tk-btn, .entry-content .ljm-cards .tk-foot-row .tk-btn .wp-block-button__link { width: 100% !important; }
}
/* === FULL component CSS (moved from inline block <style> — MCP escapes <style>) === */

.ljm-kt{--sand:#736758;--gold:#C4A265;--gold-text:#8B6914;--teal:#265B5F;--border:#E8E2D9;max-width:600px;margin:28px auto;background:#fff;border:1px solid var(--border);border-top:3px solid var(--gold);border-radius:4px;padding:26px 24px 22px;font-family:Georgia,'Times New Roman',serif;}
.ljm-kt .kt-eyebrow{font-family:'Montserrat',Arial,sans-serif;font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-text);margin:0 0 10px;}
.ljm-kt .kt-head{font-family:'Playfair Display',Georgia,serif;font-weight:500;font-size:25px;line-height:1.22;margin:0 0 6px;color:var(--ink);}
.ljm-kt .kt-head em{font-style:italic;}
.ljm-kt .kt-sub{font-family:'Montserrat',Arial,sans-serif;font-size:13px;color:var(--sand);margin:0 0 6px;line-height:1.5;}
.ljm-kt .kt-rows{margin:14px 0 0;}
.ljm-kt .kt-row{align-items:center;gap:14px;text-decoration:none;color:inherit;padding:15px 2px;border-top:1px solid var(--border);}
.ljm-kt .kt-row .kt-body{flex:1;min-width:0;}
.ljm-kt .kt-row .kt-name{display:block;font-family:'Playfair Display',Georgia,serif;font-size:19px;font-weight:500;color:var(--ink);line-height:1.25;}
.ljm-kt .kt-row .kt-desc{display:block;font-family:'Montserrat',Arial,sans-serif;font-size:14px;color:var(--sand);margin-top:4px;line-height:1.5;}
.ljm-kt .kt-row .kt-val{font-family:'Montserrat',Arial,sans-serif;text-align:right;flex-shrink:0;}
.ljm-kt .kt-row .kt-from{display:block;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--sand);font-weight:600;}
.ljm-kt .kt-row .kt-amt{font-size:18px;font-weight:600;color:var(--teal);}
.ljm-kt .kt-row .kt-pern{display:block;font-size:9px;color:var(--sand);font-weight:500;margin-top:1px;}
.ljm-kt .kt-row .kt-tag{display:inline-block;max-width:64px;text-align:right;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--gold-text);line-height:1.2;}
.ljm-kt .kt-row .kt-chev{flex-shrink:0;color:var(--sand);font-size:17px;font-family:'Montserrat',Arial,sans-serif;}
.ljm-kt .kt-row:hover .kt-name{text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px;}
.ljm-kt .kt-row.kt-feat{position:relative;}.ljm-kt .kt-row.kt-feat::before{content:"";position:absolute;left:-12px;top:2px;bottom:2px;width:3px;background:var(--gold);border-radius:2px;}
.ljm-kt .kt-row.kt-feat .kt-badge{display:block;font-family:'Montserrat',Arial,sans-serif;font-size:9.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-text);margin-bottom:3px;}
.ljm-kt .kt-foot{font-family:'Montserrat',Arial,sans-serif;font-size:11.5px;color:var(--sand);margin:16px 0 0;line-height:1.5;border-top:1px solid var(--border);padding-top:14px;}
.ljm-cards{--ink:#1A1A1A;--sand:#736758;--gold:#C4A265;--gold-text:#8B6914;--teal:#265B5F;--teal-hover:#1A4448;--border:#E8E2D9;max-width:none;margin:24px 0;font-family:Georgia,'Times New Roman',serif;}
.ljm-cards .tk-card{align-items:stretch;gap:14px;border:1px solid var(--border);border-radius:5px;padding:14px;margin:0 0 14px;background:#fff;}
.ljm-cards .tk-card.feat{border-left:3px solid var(--gold);}
.ljm-cards .tk-img{align-self:stretch;min-height:130px;object-fit:cover;border-radius:3px;flex-shrink:0;background:#eee;}
.ljm-cards .tk-content{flex:1;min-width:0;}
.ljm-cards .tk-badge{font-family:'Montserrat',Arial,sans-serif;font-size:9.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-text);display:block;margin:0 0 5px;}
.ljm-cards .tk-name{font-family:'Playfair Display',Georgia,serif;font-weight:500;line-height:1.25;color:var(--ink);}
.ljm-cards .tk-name em{font-style:italic;}
.ljm-cards .tk-incl{font-family:'Montserrat',Arial,sans-serif;font-size:13px;color:var(--sand);line-height:1.45;}
.ljm-cards .tk-foot-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;}
.ljm-cards .tk-price{font-family:'Montserrat',Arial,sans-serif;line-height:1.2;}
.ljm-cards .tk-price .strike{font-size:13px;color:var(--sand);text-decoration:line-through;margin-right:6px;}
.ljm-cards .tk-price .amt{font-size:20px;font-weight:600;color:var(--teal);}
.ljm-cards .tk-price .save{display:block;font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--gold-text);margin-top:2px;}
.ljm-cards .btn{font-family:'Montserrat',Arial,sans-serif;font-size:12px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;text-decoration:none;padding:11px 22px;min-height:44px;box-sizing:border-box;border-radius:2px;border:1px solid var(--teal);display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;transition:.15s;}
.ljm-cards .btn.fill{background:var(--teal);color:#fff;}
.ljm-cards .btn.fill:hover{background:var(--teal-hover);}
.ljm-cards .btn.out{background:transparent;color:var(--teal);}
.ljm-cards .btn.out:hover{background:var(--teal);color:#fff;}
.ljm-cards .note{font-family:'Montserrat',Arial,sans-serif;font-size:12px;color:var(--sand);margin:6px 0 0;line-height:1.5;}
@media(max-width:560px){
.ljm-cards .tk-img{float:left;height:96px;min-height:0;margin:0 13px 7px 0;}
.ljm-cards .tk-content{display:block;}
.ljm-cards .tk-name{font-size:16px !important;}
.ljm-cards .tk-incl{font-size:12.5px;}
.ljm-cards .tk-foot-row{display:block;clear:both;}
.ljm-cards .tk-price{display:block;margin-bottom:9px;}
.ljm-cards .btn{display:flex;width:100%;}
}
/* match live: kill GP sitewide gold link-underline on component links + restore button colors */
.entry-content .ljm-kt .kt-row { text-decoration: none !important; color: inherit !important; }
.entry-content .ljm-cards .btn { text-decoration: none !important; }
.entry-content .ljm-cards .btn.fill { color: #fff !important; }
.entry-content .ljm-cards .btn.out { color: #265B5F !important; }
.entry-content .ljm-cards .btn.out:hover { color: #fff !important; }
@media (max-width: 560px) {
  .ticket-card > .wp-block-group__inner-container { display: block; }
}
/* ═══════════ END DISCOUNT-TICKETS COMPONENTS ═══════════ */

/* LJM savings callout 2026-05-30 */
.ljm-savings{font-family:Montserrat,Arial,sans-serif;font-size:13px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#8B6914;margin:0 0 8px;}

/* LJM CTA grid fix — GP wraps group children in .wp-block-group__inner-container 2026-06-13 */
.ljm-cta-box{display:block;}
.ljm-cta-box>.wp-block-group__inner-container{display:grid;grid-template-columns:210px 1fr;column-gap:22px;align-items:start;}
.ljm-cta-box>.wp-block-group__inner-container>*{grid-column:2;}
.ljm-cta-box>.wp-block-group__inner-container>.ljm-cta-img{grid-column:1;grid-row:1/99;margin:0;align-self:stretch;}
.ljm-cta-box>.wp-block-group__inner-container>.ljm-cta-img img{width:100%;height:100%;min-height:150px;object-fit:cover;border-radius:6px;}
@media(max-width:680px){ .ljm-cta-box>.wp-block-group__inner-container{grid-template-columns:1fr;column-gap:0;} .ljm-cta-box>.wp-block-group__inner-container>*{grid-column:1;} .ljm-cta-box>.wp-block-group__inner-container>.ljm-cta-img{grid-row:auto;margin:0 0 12px;} .ljm-cta-box>.wp-block-group__inner-container>.ljm-cta-img img{height:104px;min-height:0;} }

/* LJM CTA box + closing as plain html-block divs (no group, direct children) 2026-06-13 */
.ljm-cta-box{display:grid;grid-template-columns:210px 1fr;column-gap:22px;align-items:start;border:1px solid #e4e0d8;border-left:3px solid #8B6914;border-radius:8px;padding:18px;margin:26px 0;}
.ljm-cta-box>*{grid-column:2;}
.ljm-cta-box>.ljm-cta-img{grid-column:1;grid-row:1/99;margin:0;align-self:stretch;}
.ljm-cta-box>.ljm-cta-img img{width:100%;height:100%;min-height:150px;object-fit:cover;border-radius:6px;display:block;}
.ljm-cta-box .ljm-savings{margin:0 0 8px;}
.ljm-cta-box .ljm-cta-headline{font-family:'Playfair Display',Georgia,serif;font-size:22px;font-weight:600;line-height:1.25;margin:0 0 8px;}
.ljm-cta-btn{display:inline-block;background:#265B5F;color:#fff;border-radius:3px;font-family:Montserrat,Arial,sans-serif;font-size:12.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;padding:14px 26px;text-decoration:none;}
.ljm-cta-btn:hover{background:#1c4649;}
@media(max-width:680px){ .ljm-cta-box{grid-template-columns:1fr;column-gap:0;padding:13px;} .ljm-cta-box>*{grid-column:1;} .ljm-cta-box>.ljm-cta-img{grid-row:auto;margin:0 0 12px;} .ljm-cta-box>.ljm-cta-img img{height:104px;min-height:0;} .ljm-cta-box .ljm-cta-headline{font-size:18px;} .ljm-cta-btn{display:block;text-align:center;} }

/* button-punch: savings pop + trust line 2026-06-13 */
.ljm-price-table td.save{color:#8B6914;font-weight:700;}
.ljm-trust{font-family:Montserrat,Arial,sans-serif;font-size:13.5px;line-height:1.5;color:#5f5c55;border-left:3px solid #8B6914;padding-left:14px;margin:6px 0 24px;}
.ljm-trust b{color:#1A1A1A;font-weight:700;}

/* === LJM QUICK PICKS — pillar "where to start" routing table — 2026-06-13 === */
.entry-content figure.quick-picks{margin:32px 0;}
.entry-content .quick-picks table{width:100%;border-collapse:collapse;border-top:2px solid #1A1A1A;}
.entry-content .quick-picks th,.entry-content .quick-picks td{border-left:0;border-right:0;text-align:left;vertical-align:top;}
.entry-content .quick-picks thead th{padding:14px 16px 12px 0;font-family:Montserrat,Arial,sans-serif;font-size:11px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:#736758;border-bottom:1px solid #E8E2D9;background:transparent;}
.entry-content .quick-picks tbody td{padding:14px 16px 14px 0;font-family:Georgia,serif;font-size:17px;line-height:1.5;color:#1A1A1A;border-bottom:1px solid #E8E2D9;}
.entry-content .quick-picks tbody td:first-child{font-weight:700;width:40%;padding-right:24px;}
.entry-content .quick-picks tbody tr:last-child td{border-bottom:none;}
.entry-content .quick-picks tbody tr:hover{background:#FAF8F5;}

/* === Summary Callout — tighten on mobile (less margin/padding, wider text column) 2026-06-14 === */
@media (max-width:600px){
.entry-content .summary-callout{padding:16px 16px 18px;margin:20px 0;}
.entry-content .summary-callout__title{font-size:21px;}
.entry-content .summary-callout__body li{font-size:16px!important;line-height:1.5!important;padding-left:16px!important;margin-bottom:7px!important;}
}

/* === SD Kids pillar: ADA + mobile polish 2026-06-14 === */
/* Empty Summary Callout icon slot must not reserve horizontal space (title looked centered next to left-aligned H2s) */
.summary-callout__header .summary-callout__icon:empty{display:none!important;}
/* Eyebrows: readable gold #8B6914 (was #C4A265 decoration gold — fails WCAG AA at 10-11px) + design-system weight */
.entry-content .lj-eyebrow,.post-body .lj-eyebrow{color:#8B6914!important;font-weight:600!important;}
.entry-content .cta-warm .cta-eyebrow{color:#8B6914!important;}
/* CTA warm block: tighten padding on mobile (was 36px each side, squeezing content) */
@media (max-width:600px){
.entry-content .cta-block{padding:20px 18px!important;}
}

/* === ljm-location meta lines — compact (Location / Best for / Time / Tickets) 2026-06-14 === */
.entry-content .ljm-location{font-size:16px!important;line-height:1.55!important;color:#736758!important;margin:2px 0 14px!important;}
.entry-content li{font-size:17px!important;line-height:1.55!important;}
/* .ljm-tip = legacy 'see also' note migrated globally (was unstyled on GP). Quiet italic sand note. */
.entry-content .ljm-tip{margin:18px 0;}
.entry-content .ljm-tip p{font-size:16px!important;line-height:1.6!important;font-style:italic!important;color:#736758!important;margin:0!important;}
.entry-content .ljm-location strong{color:#1A1A1A;font-weight:600;}

/* === SD Kids headliner Tier-1 components 2026-06-14 === */
.entry-content .activity-eyebrow{font-family:Montserrat,Arial,sans-serif;font-size:11px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:#736758;margin:0 0 6px;}
.entry-content h3 .activity-num{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-weight:400;color:#1A1A1A;margin-right:8px;}
.entry-content .qf-strip{border-top:1px solid #E8E2D9;margin:0 0 16px;padding:16px 0;}
.entry-content .qf-strip .wp-block-group__inner-container{display:grid;grid-template-columns:repeat(4,1fr);padding:0!important;}
.entry-content .qf-cell .wp-block-group__inner-container{display:block;padding:0!important;}
.entry-content .qf-strip .qf-label,.entry-content .qf-strip .qf-value{margin:0!important;}
.entry-content .qf-strip .qf-label{margin-bottom:3px!important;}
.entry-content .qf-strip .qf-cell{padding:0 18px;border-right:1px solid #E8E2D9;}
.entry-content .qf-strip .qf-cell:first-child{padding-left:0;}
.entry-content .qf-strip .qf-cell:last-child{border-right:none;}
.entry-content .qf-label{font-family:Montserrat,Arial,sans-serif;font-size:10px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:#8B6914;margin:0 0 4px;display:block;}
.entry-content .qf-value{font-family:Georgia,serif;font-size:16px;line-height:1.4;color:#736758;margin:0;}
.entry-content .nearby-line{background:#FBFAF8;border-left:2px solid #C4A265;padding:14px 18px;margin:0 0 28px;font-family:Georgia,serif;font-size:15px;line-height:1.55;color:#2C2C2C;}
.entry-content .nearby-line .nearby-label{display:block;font-family:Montserrat,Arial,sans-serif;font-size:10px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:#8B6914;margin-bottom:4px;}
.entry-content .headliner-hero img{width:100%;height:320px;object-fit:cover;border-radius:2px;}
@media(max-width:600px){.entry-content .qf-strip .wp-block-group__inner-container{grid-template-columns:1fr 1fr;row-gap:16px;column-gap:18px;}.entry-content .qf-strip .qf-cell{border-right:none!important;padding:0!important;}.entry-content .headliner-hero img{height:220px;}}

/* === SITEWIDE BODY TYPE - body paragraph size; 18/1.6/20 chosen for general readability (promoted 2026-06-27 from the SD Kids body-tighten pilot; carry into child-theme typography) === */
.entry-content p:not([class]){font-size:18px!important;line-height:1.6!important;margin-bottom:20px!important;}

/* === LJM DEAL CTA component START === */
.ljm-deal-cta{background:#fff;border:1px solid #E8E2D9;border-top:3px solid #C4A265;padding:24px 28px 26px;margin:28px auto;max-width:540px;}
.ljm-deal-cta .wp-block-group__inner-container{padding:0;}
.ljm-deal-cta .ljm-deal-cta__eyebrow{font-family:'Montserrat',sans-serif;font-size:10px;font-weight:600;letter-spacing:2.4px;text-transform:uppercase;color:#8B6914;text-align:center;margin:0 0 12px;}
.ljm-deal-cta .ljm-deal-cta__heading{font-family:'Playfair Display',Georgia,serif;font-weight:500;font-size:22px;line-height:1.2;color:#1A1A1A;text-align:center;margin:0 0 18px;}
.ljm-deal-cta .ljm-deal-cta__prices{padding:18px 0;margin:0 0 18px;border-top:1px solid #E8E2D9;border-bottom:1px solid #E8E2D9;gap:0;}
.ljm-deal-cta .ljm-deal-cta__price-col{text-align:center;}
.ljm-deal-cta .ljm-deal-cta__price-col+.ljm-deal-cta__price-col{border-left:1px solid #E8E2D9;}
.ljm-deal-cta .ljm-deal-cta__price-label{font-family:'Montserrat',sans-serif;font-size:10px;font-weight:600;letter-spacing:1.8px;text-transform:uppercase;color:#736758;margin:0 0 10px;}
.ljm-deal-cta .ljm-deal-cta__price-row{margin:0 0 4px;line-height:1;}
.ljm-deal-cta .ljm-deal-cta__gate{font-family:Georgia,serif;font-size:17px;color:#736758;text-decoration:line-through;}
.ljm-deal-cta .ljm-deal-cta__arrow{font-family:'Playfair Display',serif;font-size:16px;color:#C4A265;margin:0 6px;}
.ljm-deal-cta .ljm-deal-cta__now{font-family:'Playfair Display',Georgia,serif;font-size:30px;font-weight:500;color:#1A1A1A;}
.ljm-deal-cta .ljm-deal-cta__save{font-family:'Montserrat',sans-serif;font-size:10px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:#8B6914;margin:0;}
.ljm-deal-cta .ljm-deal-cta__coupon-label{font-family:'Montserrat',sans-serif;font-size:10px;font-weight:600;letter-spacing:1.8px;text-transform:uppercase;color:#736758;text-align:center;margin:0 0 8px;}
.ljm-deal-cta .ljm-copy-code{display:flex;width:fit-content;margin:0 auto 18px;}
.ljm-deal-cta .ljm-deal-cta__trust{margin:0 0 20px;}
.ljm-deal-cta .ljm-deal-cta__trust-item{padding:4px 0 4px 18px;margin:0;position:relative;font-family:Georgia,serif;font-size:13.5px;line-height:1.4;color:#1A1A1A;}
.ljm-deal-cta .ljm-deal-cta__trust-item::before{content:"›";position:absolute;left:0;top:2px;color:#C4A265;font-family:'Playfair Display',Georgia,serif;font-size:15px;font-weight:500;line-height:1.4;}
.ljm-deal-cta .ljm-deal-cta__buttons{width:100%;}
.ljm-deal-cta .ljm-deal-cta__buy{width:100%;max-width:100%;}
.ljm-deal-cta .ljm-deal-cta__buy .wp-block-button__link{display:block;width:100%;background:#265B5F;color:#fff;font-family:'Montserrat',sans-serif;font-size:14px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;padding:18px 24px;text-align:center;border:none;border-radius:2px;}
.ljm-deal-cta .ljm-deal-cta__buy .wp-block-button__link:hover{background:#1A4448;color:#fff;}
.ljm-deal-cta .ljm-deal-cta__email{text-align:center;margin:14px 0 0;}
.ljm-deal-cta .ljm-deal-cta__email a{font-family:'Montserrat',sans-serif;font-size:11px;font-weight:500;letter-spacing:1.2px;text-transform:uppercase;}
@media (max-width:540px){.ljm-deal-cta{padding:22px 18px 24px;}.ljm-deal-cta .ljm-deal-cta__heading{font-size:20px;}.ljm-deal-cta .ljm-deal-cta__prices{padding:14px 0;}.ljm-deal-cta .ljm-deal-cta__now{font-size:26px;}.ljm-deal-cta .ljm-deal-cta__gate{font-size:15px;}}
/* skinny inline variant for long-form posts */
.ljm-deal-cta.ljm-deal-cta--skinny{max-width:100%;margin:24px 0;padding:14px 20px;border-top:1px solid #E8E2D9;border-left:3px solid #C4A265;}
.ljm-deal-cta--skinny .wp-block-group__inner-container{gap:10px 18px;}
.ljm-deal-cta--skinny .ljm-deal-cta__skinny-text{flex:1 1 300px;margin:0;font-family:Georgia,serif;font-size:14px;line-height:1.4;color:#1A1A1A;}
.ljm-deal-cta--skinny .ljm-deal-cta__skinny-text strong{display:block;font-family:'Playfair Display',Georgia,serif;font-weight:500;font-size:18px;line-height:1.25;color:#1A1A1A;margin:0 0 3px;}
.ljm-deal-cta--skinny .ljm-deal-cta__skinny-sub{font-family:'Montserrat',sans-serif;font-size:11px;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;color:#736758;}
.ljm-deal-cta--skinny .ljm-copy-code{margin:0;}
.ljm-deal-cta--skinny .ljm-deal-cta__buttons{width:auto;}
.ljm-deal-cta--skinny .ljm-deal-cta__buy{width:auto;max-width:none;}
.ljm-deal-cta--skinny .ljm-deal-cta__buy .wp-block-button__link{display:inline-block;width:auto;padding:13px 22px;white-space:nowrap;}
@media (max-width:540px){.ljm-deal-cta--skinny .ljm-deal-cta__buttons,.ljm-deal-cta--skinny .ljm-deal-cta__buy,.ljm-deal-cta--skinny .ljm-deal-cta__buy .wp-block-button__link{width:100%;}}
/* === LJM DEAL CTA component END === */

/* === LJM CTA2 dual-path buy box (Go City / CityPASS) — promoted sitewide from sandbox 180300, 2026-06-21 === */
.entry-content .ljm-cta2{display:flex;flex-wrap:nowrap;gap:24px;align-items:flex-start;background:#fff;border:1px solid #E8E2D9;border-top:3px solid #C4A265;padding:22px 26px;margin:26px 0;}
.entry-content .ljm-cta2 .ljm-cta2__img{flex:0 0 210px;margin:0;}
.entry-content .ljm-cta2 .ljm-cta2__img img{width:210px;height:200px;object-fit:cover;display:block;}
.entry-content .ljm-cta2 .ljm-cta2__body{flex:1 1 auto;min-width:0;}
.entry-content .ljm-cta2 .ljm-cta2__body>.wp-block-group__inner-container{padding:0;}
.entry-content .ljm-cta2__name{font-family:'Playfair Display',Georgia,serif;font-size:23px;line-height:1.2;color:#1A1A1A;margin:0 0 8px;}
.entry-content .ljm-cta2 .ljm-cta2__name{margin-top:0 !important;}
.entry-content .ljm-cta2__sub{font-family:Georgia,serif;font-size:16px;line-height:1.5;color:#3A3A3A;margin:0 0 16px;}
.entry-content .ljm-cta2__save{font-family:'Montserrat',Arial,sans-serif;font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:#8B6914;margin:0 0 10px;}
@media(max-width:600px){.entry-content .ljm-cta2__save{text-align:center;}}
.entry-content .ljm-cta2__twoways{font-family:'Montserrat',Arial,sans-serif;font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:1.5px;color:#8B6914;margin:0 0 12px;}
.entry-content .ljm-cta2 .ljm-cta2__twoways{margin-top:0 !important;}
.entry-content .ljm-path__label{font-family:'Montserrat',Arial,sans-serif;font-size:15px;font-weight:700;color:#1A1A1A;margin:0 0 1px;}
.entry-content .ljm-path__desc{font-family:'Montserrat',Arial,sans-serif;font-size:13px;color:#736758;margin:0 0 9px;}
.entry-content .ljm-path__code{font-family:'Montserrat',Arial,sans-serif;font-size:14px;line-height:1.5;color:#736758;margin:9px 0 0;display:flex;align-items:center;gap:7px;flex-wrap:wrap;}
.entry-content .ljm-or{display:flex;align-items:center;gap:12px;font-family:'Montserrat',Arial,sans-serif;font-size:11.5px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:#736758;margin:16px 0;}
.entry-content .ljm-or::before,.entry-content .ljm-or::after{content:'';flex:1;height:1px;background:#E8E2D9;}
.entry-content .ljm-paths{display:flex;gap:18px;align-items:stretch;}
.entry-content .ljm-paths .ljm-path{flex:1;min-width:0;}
.entry-content .ljm-paths .ljm-path>.wp-block-group__inner-container{padding:0;}
.entry-content .ljm-paths .wp-block-buttons{width:100%;}
.entry-content .ljm-paths .wp-block-button{width:100%;}
.entry-content .ljm-paths .wp-block-button>.wp-block-button__link{width:100%;}
.entry-content .ljm-cta2 .ljm-paths .wp-block-button__link{padding-left:12px !important;padding-right:12px !important;white-space:nowrap;border:1.5px solid #265B5F !important;}
.entry-content .ljm-paths .ljm-or{flex-direction:column;align-self:stretch;margin:0;}
.entry-content .ljm-paths .ljm-or::before,.entry-content .ljm-paths .ljm-or::after{width:1px;height:auto;}
.entry-content .ljm-cta2 .wp-block-buttons{gap:10px;flex-wrap:wrap;align-items:stretch;margin:0;}
.entry-content .ljm-cta2 .is-style-outline>.wp-block-button__link{background:transparent !important;color:#265B5F !important;border:1.5px solid #265B5F !important;}
.entry-content .ljm-cta2 .is-style-outline>.wp-block-button__link:hover{background:#265B5F !important;color:#fff !important;}
@media(max-width:600px){
.entry-content .ljm-cta2{display:block;padding:18px 20px;}
.entry-content .ljm-cta2 .ljm-cta2__img{display:block !important;width:100% !important;max-width:100% !important;height:130px !important;flex:none;margin:0 0 14px !important;overflow:hidden;border-radius:2px;box-sizing:border-box;}
.entry-content .ljm-cta2 .ljm-cta2__img img{width:100% !important;height:100% !important;max-width:100% !important;object-fit:cover !important;}
.entry-content .ljm-cta2__name{font-size:21px;text-align:center;}
.entry-content .ljm-cta2__sub{text-align:center;}
.entry-content .ljm-cta2__twoways{text-align:center;}
.entry-content .ljm-path__label,.entry-content .ljm-path__desc{text-align:center;}
.entry-content .ljm-path__code{justify-content:center;text-align:center;}
.entry-content .ljm-paths{flex-direction:column;gap:0;}
.entry-content .ljm-paths .ljm-or{flex-direction:row;align-self:auto;margin:16px 0;}
.entry-content .ljm-paths .ljm-or::before,.entry-content .ljm-paths .ljm-or::after{width:auto;height:1px;}
.entry-content .ljm-cta2 .wp-block-buttons{justify-content:center;flex-direction:column;}
.entry-content .ljm-cta2 .wp-block-button{width:100%;}
.entry-content .ljm-cta2 .wp-block-button>.wp-block-button__link{width:100%;}
}
.entry-content .ljm-cta2 .wp-block-buttons.ljm-cta2__btnrow{display:flex;flex-wrap:nowrap;gap:10px;align-items:stretch;}
.entry-content .ljm-cta2 .wp-block-buttons.ljm-cta2__btnrow .wp-block-button{flex:1 1 0;margin:0;min-width:0;}
.entry-content .ljm-cta2 .wp-block-buttons.ljm-cta2__btnrow .wp-block-button>.wp-block-button__link{display:flex;align-items:center;justify-content:center;width:100%;height:100%;text-align:center;white-space:nowrap;padding:13px 10px !important;line-height:1.25;}
@media(max-width:600px){.entry-content .ljm-cta2 .wp-block-buttons.ljm-cta2__btnrow{flex-direction:column;}.entry-content .ljm-cta2 .wp-block-buttons.ljm-cta2__btnrow .wp-block-button{flex:0 0 auto;}}
.entry-content .ljm-cta2.ljm-cta2--btnfooter{flex-wrap:wrap;}
.entry-content .ljm-cta2.ljm-cta2--btnfooter .ljm-cta2__body{flex:1 1 0;min-width:0;}
@media(min-width:601px){.entry-content .ljm-cta2 figure.wp-block-image.ljm-cta2__img{margin-top:0 !important;margin-bottom:0 !important;}}
.entry-content .ljm-cta2.ljm-cta2--btnfooter .ljm-cta2__btnrow{flex:0 0 100%;width:100%;margin-top:18px;}
@media(max-width:600px){
.entry-content .ljm-cta2 .ljm-cta2__img{height:90px !important;margin-bottom:12px !important;}
.entry-content .ljm-cta2{padding:16px 18px;}
.entry-content .ljm-cta2__save{margin:0 0 6px;}
.entry-content .ljm-cta2__name{margin:0 0 6px;}
.entry-content .ljm-cta2__sub{font-size:15px;margin:0 0 12px;}
.entry-content .ljm-cta2.ljm-cta2--btnfooter .ljm-cta2__btnrow{margin-top:12px;gap:8px;}
}
/* === LJM CTA2 compact + promo/email centering (2026-07-01, Katie: too big on mobile, coupon off-center) === */
.entry-content h3.wp-block-heading.ljm-cta2__name{font-size:23px !important;}
.entry-content .ljm-cta2__promo{font-family:Georgia,serif;font-size:15px;line-height:1.5;color:#3A3A3A;text-align:center;margin:0 0 14px;}
.entry-content .ljm-cta2__email{text-align:center;font-size:14px;line-height:1.5;margin:6px 0 0;}
@media(max-width:600px){
.entry-content h3.wp-block-heading.ljm-cta2__name{font-size:19px !important;line-height:1.25 !important;margin:0 0 6px !important;}
.entry-content .ljm-cta2__sub{font-size:14px;line-height:1.45;margin:0 0 10px;}
.entry-content .ljm-cta2__save{margin:0 0 4px;}
.entry-content .ljm-cta2__promo{font-size:13.5px;line-height:1.45;margin:0 0 10px;}
.entry-content .ljm-cta2__email{font-size:13px;margin:8px 0 0;}
.entry-content .ljm-cta2 .ljm-cta2__img{height:78px !important;margin-bottom:10px !important;}
.entry-content .ljm-cta2{padding:14px 16px;}
.entry-content .ljm-cta2 .ljm-cta2__btn .wp-block-button__link{padding-top:11px !important;padding-bottom:11px !important;}
}
/* === LJM CTA2 component END === */

/* === PATTERN: VIP Perks component (#ljm-perks) START === */
.entry-content .ljm-perks{background:#fff;border:1px solid #ece8e0;padding:28px 32px 24px;margin:28px 0}
.entry-content .ljm-perks>.wp-block-group__inner-container{padding:0!important;max-width:none!important}
.ljm-perks__eyebrow{font-family:'Montserrat',sans-serif;text-transform:uppercase;letter-spacing:.24em;font-size:10px;font-weight:700;color:#9c7c46;margin:0 0 10px}
.ljm-perks__title{font-family:'Playfair Display',Georgia,serif;font-weight:400;font-size:24px;line-height:1.15;margin:0 0 5px;color:#23211d}
.ljm-perks__program{font-size:12.5px;color:#514b42;font-style:italic;margin:0}
.ljm-perks__rule{width:34px;height:1px;background:#c8ad79;border:0;margin:16px 0}
.ljm-perks__standfirst{font-size:14px;line-height:1.65;color:#514b42;margin:0 0 14px}
.ljm-perks__intro{font-size:14px;line-height:1.65;color:#514b42;font-style:italic;margin:0 0 14px}
.entry-content ul.ljm-perks__list{list-style:none!important;margin:0!important;padding:0!important;max-width:none!important}
.entry-content ul.ljm-perks__list li{position:relative;margin:0!important;padding:5px 0 5px 18px!important;font-size:14.5px;line-height:1.5;color:#2c2823;border:0}
.entry-content ul.ljm-perks__list li::before{content:""!important;position:absolute!important;left:2px!important;top:12px!important;width:6px!important;height:6px!important;background:#9c7c46!important;border-radius:0!important;transform:rotate(45deg)!important;font-size:0!important}
.entry-content ul.ljm-perks__list--dot li::before{width:5px!important;height:5px!important;top:10px!important;border-radius:50%!important;transform:none!important}
.ljm-perks__offer{margin:18px 0 0;padding:2px 0 2px 16px;border-left:2px solid #c8ad79}
.ljm-perks__offer-label{font-family:'Montserrat',sans-serif;text-transform:uppercase;letter-spacing:.18em;font-size:10px;font-weight:700;color:#9c7c46;margin:0 0 4px}
.ljm-perks__offer-text{font-size:13.5px;line-height:1.6;color:#2c2823;margin:0}
.ljm-perks__cta{margin-top:22px}
.entry-content .ljm-perks__cta .wp-block-button.is-style-outline .wp-block-button__link{background:transparent !important;border:1px solid #235154 !important;color:#235154 !important;font-family:'Montserrat',sans-serif;font-weight:600;font-size:11px;letter-spacing:.16em;text-transform:uppercase;padding:12px 26px;border-radius:0}
.ljm-perks__more{border-top:1px solid #ece8e0;margin-top:22px}
.ljm-perks__more summary{cursor:pointer;list-style:none;padding:14px 0 2px;font-family:'Montserrat',sans-serif;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:#514b42;display:flex;align-items:center;justify-content:space-between}
.ljm-perks__more summary::-webkit-details-marker{display:none}
.ljm-perks__more summary::marker{content:""}
.ljm-perks__more summary::after{content:"+";font-family:Georgia,serif;font-size:16px;color:#9c7c46;line-height:1}
.ljm-perks__more[open] summary::after{content:"–"}
.ljm-perks__more-body{font-size:13px;line-height:1.7;color:#5f594e;padding:8px 0 6px;font-family:Arial,sans-serif}
@media(max-width:781px){.entry-content .ljm-perks{padding:18px 13px 16px}.entry-content ul.ljm-perks__list li{padding-left:15px!important}}
.entry-content .ljm-perks__cta.wp-block-buttons{gap:12px}
.entry-content .ljm-perks__logo{margin:0 0 8px}
.entry-content .ljm-perks__logo img{max-width:160px!important;height:auto}
.entry-content .ljm-perks__note{font-size:12.5px;line-height:1.6;color:#5f594e;font-style:italic;margin:14px 0 2px;font-family:Arial,Helvetica,sans-serif}
@media(max-width:781px){.entry-content .ljm-perks__cta .wp-block-button{width:100%}.entry-content .ljm-perks__cta .wp-block-button .wp-block-button__link{display:block;text-align:center}}
/* === PATTERN: VIP Perks component (#ljm-perks) END === */

/* === PATTERN: LJM Divider (faded hairline + center diamond; replaces Kadence kt-divider) START === */
.entry-content hr.ljm-divider{border:0!important;height:1px!important;max-width:200px!important;margin:28px auto!important;background:linear-gradient(90deg,rgba(176,145,90,0),#b0915a 50%,rgba(176,145,90,0))!important;position:relative!important;overflow:visible!important}
.entry-content hr.ljm-divider::before{content:""!important;display:block!important;position:absolute!important;left:50%!important;top:50%!important;width:20px!important;height:10px!important;background:#fff!important;transform:translate(-50%,-50%)!important}
.entry-content hr.ljm-divider::after{content:""!important;display:block!important;position:absolute!important;left:50%!important;top:50%!important;width:7px!important;height:7px!important;background:#b0915a!important;transform:translate(-50%,-50%) rotate(45deg)!important}
@media(max-width:781px){.entry-content hr.ljm-divider{margin:22px auto!important}}
/* === PATTERN: LJM Divider END === */

/* === PATTERN: TICKET COMPONENT KIT -> GLOBAL (migrated from library page 180237, 2026-06-23). Canonical source for the theme-park ticket posts; library + posts inherit. Excludes .ljm-cta2 (already global above) + the hotel booking-callout/pros-cons set. START === */
/* Priced List (.ljm-priced + .ljm-pkg) */
.entry-content .ljm-priced{border-top:1px solid #E8E2D9;margin:18px 0 22px;gap:0;}
.entry-content .ljm-priced__head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin:13px 0 1px;}
.entry-content .ljm-priced__head .nm{font-family:'Playfair Display',Georgia,serif;font-size:18px;font-weight:500;color:#1A1A1A;line-height:1.25;}
.entry-content .ljm-priced__head .pr{flex:0 0 auto;white-space:nowrap;text-align:right;}
.entry-content .ljm-priced__head .pr .amt{font-family:'Playfair Display',Georgia,serif;font-weight:700;font-size:18px;color:#265B5F;}
.entry-content .ljm-priced__head .pr .ages{font-family:'Montserrat',Arial,sans-serif;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:#736758;margin-left:6px;}
.entry-content .ljm-priced__head .ljm-priced__book{flex:0 0 auto;white-space:nowrap;font-family:'Montserrat',Arial,sans-serif;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#265B5F;}
.entry-content .ljm-priced__desc{font-family:Georgia,serif;font-size:14px;line-height:1.5;color:#736758;margin:0 0 13px;padding-bottom:13px;border-bottom:1px solid #E8E2D9;}
.entry-content .ljm-pkg__name{font-family:'Playfair Display',Georgia,serif;font-size:18px;font-weight:500;color:#1A1A1A;line-height:1.3;margin:16px 0 5px;}
.entry-content .ljm-pkg__desc{font-family:Georgia,serif;font-size:15px;line-height:1.55;color:#3A3A3A;margin:0 0 9px;}
.entry-content .ljm-pkg__cta{margin:0 0 16px;padding-bottom:16px;border-bottom:1px solid #E8E2D9;}
.entry-content .ljm-pkg__cta a{font-family:'Montserrat',Arial,sans-serif;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#265B5F;}
.entry-content .ljm-priced .ljm-pkg__cta:last-child{border-bottom:none;}
/* Gate-Price Table (.lj-ticket-table) */
.entry-content .wp-block-table.lj-ticket-table{margin:24px 0;border:1px solid #e0e0e0}
.entry-content .lj-ticket-table table{width:100%;border-collapse:collapse;font-size:16px}
.entry-content .lj-ticket-table thead th{background:#1A1A1A;color:#fff;font-family:'Montserrat',Arial,sans-serif;font-weight:600;font-size:12px;letter-spacing:1.5px;text-transform:uppercase;padding:14px;text-align:left}
.entry-content .lj-ticket-table tbody tr{border-bottom:1px solid #e8e2d9}
.entry-content .lj-ticket-table tbody tr:nth-child(even){background:#FAF8F5}
.entry-content .lj-ticket-table tbody td{padding:14px;line-height:1.5;font-size:16px}
.entry-content .lj-ticket-table .price{font-weight:600;color:#265B5F}
.entry-content .lj-ticket-table .gate{color:#5A4F3F;font-size:15px}
.entry-content .lj-ticket-table caption{caption-side:bottom;text-align:left;padding:10px 0 0;font-size:14px;color:#5A4F3F;font-style:italic;line-height:1.5}
/* Quick-Ref Table (.lj-quick-ref) */
.entry-content .lj-quick-ref{margin:32px 0 40px;background:transparent;padding:0}
.entry-content .lj-quick-ref-label{font-family:'Montserrat',Arial,sans-serif;font-weight:600;font-size:12px;letter-spacing:2px;text-transform:uppercase;color:#7A621F;margin:0 0 14px;display:block}
.entry-content .wp-block-table.lj-quick-ref-table,.entry-content .lj-quick-ref-table table,.entry-content .lj-quick-ref-table thead,.entry-content .lj-quick-ref-table tbody,.entry-content .lj-quick-ref-table tr,.entry-content .lj-quick-ref-table th,.entry-content .lj-quick-ref-table td{border:0!important;background:transparent!important;box-shadow:none!important}
.entry-content .wp-block-table.lj-quick-ref-table{margin:0!important;padding:0!important}
.entry-content .lj-quick-ref-table table{width:100%!important;border-collapse:collapse;font-size:15px}
.entry-content .lj-quick-ref-table thead th{font-family:'Montserrat',Arial,sans-serif!important;font-weight:500;font-size:11px;text-transform:uppercase;letter-spacing:1.5px;color:#5A4F3F!important;text-align:left;padding:0 0 10px!important;border-bottom:1px solid #1A1A1A!important;background:transparent!important}
.entry-content .lj-quick-ref-table tbody tr{border-bottom:1px solid #F5F1EB!important}
.entry-content .lj-quick-ref-table tbody td{padding:12px 12px 12px 0!important;vertical-align:baseline;font-size:14px;border:0!important}
.entry-content .lj-quick-ref-table tbody td:first-child{font-family:'Montserrat',Arial,sans-serif!important;font-size:12px;text-transform:uppercase;letter-spacing:1px;color:#7A621F!important;width:36px;font-weight:600}
.entry-content .lj-quick-ref-table tbody td a{color:#265B5F!important;font-weight:600;text-decoration:underline;text-decoration-color:#C4A265!important;text-decoration-thickness:2px;text-underline-offset:3px}
.entry-content .lj-quick-ref-table tbody td em{font-style:italic;color:#5A4F3F!important;font-size:13px;display:block;margin-top:3px;line-height:1.5;font-weight:400}
.entry-content .lj-quick-ref-table tbody td:last-child{font-family:'Montserrat',Arial,sans-serif!important;font-size:12px;font-weight:600;letter-spacing:.5px;white-space:nowrap;text-align:right;color:#265B5F!important}
.entry-content .lj-quick-ref-table tbody td:last-child.lj-qv-good{color:#7A621F!important}
.entry-content .lj-quick-ref-table tbody td:last-child.lj-qv-limited{color:#5A4F3F!important}
.entry-content .lj-quick-ref-table thead th:last-child{text-align:right!important}
.entry-content .lj-quick-ref>.wp-block-group__inner-container{padding-left:0 !important;padding-right:0 !important;}
/* Trust Stat Band (.ljm-statband) */
.entry-content .ljm-statband{display:flex;flex-wrap:nowrap;align-items:center;border-top:1px solid #C4A265;border-bottom:1px solid #C4A265;padding:22px 0;margin:18px 0;gap:0;}
.entry-content .ljm-statband__cell{flex:1;min-width:0;text-align:center;position:relative;padding:0 14px;line-height:1.2;}
.entry-content .ljm-statband__cell>.wp-block-group__inner-container{line-height:1.2;}
.entry-content .ljm-statband__cell>.wp-block-group__inner-container{padding:0;}
.entry-content .ljm-statband>.wp-block-group__inner-container{flex:1;display:flex;flex-wrap:nowrap;align-items:flex-start;gap:0;padding:0;}
.entry-content .ljm-statband__cell + .ljm-statband__cell::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:1px;height:58px;background:#E2D6BC;}
.entry-content .ljm-statband__num{font-family:'Playfair Display',Georgia,serif;font-weight:400 !important;font-size:40px;line-height:1.1;color:#1A1A1A;margin:0;}
.entry-content .ljm-statband__lbl{font-family:'Montserrat',Arial,sans-serif;font-size:11px !important;font-weight:500;letter-spacing:1.5px;text-transform:uppercase;color:#736758;margin:0 0 7px;line-height:1.45;}
/* Four-Question Chooser (.decide) */
.entry-content .decide{margin:10px 0 0;}
.entry-content .decide .q{padding:22px 0;border-bottom:1px solid #e6e2da;}
.entry-content .decide .q:first-child{border-top:1px solid #e6e2da;}
.entry-content .decide .q .qn{font-family:'Montserrat',Arial,sans-serif;font-size:10.5px !important;letter-spacing:.1em;text-transform:uppercase;color:#8a857d;font-weight:600;margin:0 0 4px;}
.entry-content .decide .q h3{font-family:'Playfair Display',Georgia,serif;font-size:21px;font-weight:500;margin:0 0 8px;line-height:1.25;color:#1A1A1A;}
.entry-content .decide .q p{font-size:16.5px !important;color:#3a382f;margin:0 0 10px;font-family:Georgia,'Times New Roman',serif;}
.entry-content .decide .q .steer{font-family:'Montserrat',Arial,sans-serif;font-size:13px !important;color:#6b6862;}
.entry-content .decide .q .steer b{color:#1A1A1A;font-weight:600;}
/* Ticket Types Overview (.types) */
.entry-content .types{margin:14px 0 6px;}
.entry-content .types .type{display:flex;align-items:center;gap:14px;text-decoration:none;color:inherit;padding:16px 4px;border-bottom:1px solid #e6e2da;}
.entry-content .types .type:first-child{border-top:1px solid #e6e2da;}
.entry-content .types .type .body{flex:1;min-width:0;}
.entry-content .types .type .name{display:block;font-family:'Playfair Display',Georgia,serif;font-size:18px;font-weight:500;color:#1A1A1A;line-height:1.25;}
.entry-content .types .type .desc{display:block;font-family:'Montserrat',Arial,sans-serif;font-size:12.5px;color:#6b6862;margin-top:4px;line-height:1.4;}
.entry-content .types .type .price{font-family:'Montserrat',Arial,sans-serif;text-align:right;flex-shrink:0;}
.entry-content .types .type .price .from{display:block;font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:#8a857d;font-weight:600;}
.entry-content .types .type .price .amt{font-size:19px;font-weight:600;color:#265B5F;}
.entry-content .types .type .chev{flex-shrink:0;color:#8a857d;font-size:18px;font-family:'Montserrat',Arial,sans-serif;}
.entry-content .types-note{font-family:'Montserrat',Arial,sans-serif;font-size:12px !important;color:#8a857d;margin:10px 0 0;}
.entry-content .types .type>.wp-block-group__inner-container,.entry-content .types .type .body>.wp-block-group__inner-container,.entry-content .types .type .price>.wp-block-group__inner-container{padding:0;display:contents;}
.entry-content .types .type p{margin:0;}
.entry-content .types .type .name{margin:0;}
.entry-content .types .type .desc{margin-top:4px;}
.entry-content .types .type .price{display:block;}
.entry-content .types .type .price .from{margin:0;}
.entry-content .types .type .price .amt{margin:0;}
.entry-content .types .type .chev{margin:0;line-height:1;}
.entry-content .types .type .chev a{color:#8a857d;text-decoration:none;}
/* Ticket-kit responsive */
@media(min-width:681px){.entry-content .types .type .name{font-size:19px;}}
@media(max-width:600px){.entry-content .lj-ticket-table{overflow-x:visible}.entry-content .lj-ticket-table table{min-width:0;font-size:14px}.entry-content .lj-ticket-table thead th{padding:10px 8px;font-size:10px;letter-spacing:.4px}.entry-content .lj-ticket-table tbody td{padding:11px 8px;font-size:13.5px}.entry-content .lj-ticket-table .gate{font-size:13px}.entry-content .ljm-statband{padding:10px 0;}.entry-content .ljm-statband__num{font-size:30px;}.entry-content .ljm-statband__cell{padding:0 6px;}.entry-content .ljm-statband__cell + .ljm-statband__cell::before{height:46px;}.entry-content .ljm-statband>.wp-block-group__inner-container{flex-direction:column;align-items:stretch;}.entry-content .ljm-statband__cell{padding:7px 0;text-align:left;flex:none;}.entry-content .ljm-statband__cell>.wp-block-group__inner-container{display:flex;flex-direction:row;justify-content:space-between;align-items:baseline;gap:16px;}.entry-content .ljm-statband__lbl{margin:0;}.entry-content .ljm-statband__num{text-align:right;}.entry-content .ljm-statband__cell + .ljm-statband__cell::before{display:none;}.entry-content .ljm-statband__cell + .ljm-statband__cell{border-top:1px solid #E2D6BC;}}
/* === PATTERN: TICKET COMPONENT KIT END === */

/* === PATTERN: HOTEL REVIEW SET -> GLOBAL (booking-callout + pros-cons-col + ljm-compare) — migrated from HdC review 36351 source-of-truth, 2026-06-23. Container .booking-callout rules scoped :not(--compact) so the existing compact variant is untouched. Excludes pros-list/cons-list, eyebrow--*, also-featured, faq-item (already global). START === */
.entry-content .booking-callout:not(.booking-callout--compact) { border: 1px solid #C4A265; padding: 40px 44px; margin: 36px 0; text-align: center; background: #fff; }
.entry-content .booking-callout__eyebrow { font-family: 'Montserrat', sans-serif; font-size: 11px; font-weight: 600; letter-spacing: 3px; text-transform: uppercase; color: #8B6914; margin: 0 0 16px; }
.entry-content .booking-callout__title { font-family: 'Playfair Display', Georgia, serif; font-weight: 500; font-size: 31px; line-height: 1.18; color: #1A1A1A; margin: 0 0 16px; padding-top: 0; }
.entry-content .booking-callout__title::before { display: none; }
.entry-content h2.wp-block-heading.booking-callout__title { margin-top: 0 !important; }
.entry-content .booking-callout__lead { font-family: Georgia, serif; font-size: 17px; line-height: 1.7; color: #1A1A1A; max-width: 580px; margin: 0 auto 26px; }
.entry-content .booking-callout__strip { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid #E8E0D2; border-bottom: 1px solid #E8E0D2; margin: 0 0 26px; }
.entry-content .booking-callout__item { padding: 20px 18px; }
.entry-content .booking-callout__item + .booking-callout__item { border-left: 1px solid #E8E0D2; }
.entry-content .booking-callout__mark { display: block; font-family: 'Playfair Display', Georgia, serif; font-style: italic; font-size: 20px; color: #8B6914; margin-bottom: 10px; }
.entry-content .booking-callout__item p { font-family: Georgia, serif; font-size: 15px; line-height: 1.5; color: #1A1A1A; margin: 0; }
.entry-content .booking-callout:not(.booking-callout--compact) .wp-block-buttons { justify-content: center; margin: 0 0 18px; display: flex; }
.entry-content .booking-callout__how { font-family: Georgia, serif; font-style: italic; font-size: 14px; line-height: 1.6; color: #736758; margin: 0 auto 18px; max-width: 540px; }
.entry-content .booking-callout__step { font-family: Georgia, serif; font-size: 15px; line-height: 1.55; color: #1A1A1A; text-align: left; max-width: 524px; margin: 0 auto 9px; padding-left: 30px; position: relative; }
.entry-content .booking-callout__step strong { color: #1A1A1A; font-weight: 700; }
.entry-content .booking-callout__step-num { position: absolute; left: 0; top: -1px; font-family: 'Playfair Display', Georgia, serif; font-weight: 700; font-size: 18px; line-height: 1.35; color: #8B6914; }
.entry-content .booking-callout__details { border-top: 1px solid #E8E0D2; margin: 0 auto; padding: 16px 0 0; max-width: 600px; text-align: left; }
.entry-content .booking-callout__details summary { cursor: pointer; list-style: none; font-family: Georgia, serif; font-size: 15px; line-height: 1.5; color: #8B6914; font-style: italic; }
.entry-content .booking-callout__details summary::-webkit-details-marker { display: none; }
.entry-content .booking-callout__details summary::before { content: "+"; font-family: 'Montserrat', sans-serif; font-style: normal; font-weight: 600; margin-right: 7px; }
.entry-content .booking-callout__details[open] summary::before { content: "−"; font-family: 'Montserrat', sans-serif; font-style: normal; font-weight: 600; margin-right: 7px; }
.entry-content .booking-callout__footnote { font-family: Georgia, serif; font-size: 13px; line-height: 1.6; color: #4A4A4A; margin: 14px 0 0; text-align: left; }
.entry-content .booking-callout__contact { display: grid; grid-template-columns: repeat(3, 1fr); text-align: center; gap: 30px; padding-top: 20px; margin-top: 20px; border-top: 1px solid #E8E0D2; }
.entry-content .booking-callout__contact-item { font-family: 'Montserrat', sans-serif; font-size: 12px; color: #1A1A1A; line-height: 1.5; }
.entry-content .booking-callout__contact-label { display: block; font-size: 10px; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; color: #8B6914; margin-bottom: 3px; }
.entry-content .booking-callout__path { background: #FBFAF7; border: 1px solid #ECE6DA; padding: 30px 30px; margin: 24px 0 0; text-align: center; }
.entry-content .booking-callout__path-label { font-family: 'Montserrat', sans-serif; font-size: 11px; font-weight: 600; letter-spacing: 2.5px; text-transform: uppercase; color: #8B6914; margin: 0 0 8px; }
.entry-content .booking-callout__path-title { font-family: 'Playfair Display', Georgia, serif; font-weight: 500; font-size: 21px; line-height: 1.3; color: #1A1A1A; margin: 0 0 14px; }
.entry-content .booking-callout__path-title::before { display: none; }
.entry-content .booking-callout__path-recommended-label, .entry-content .booking-callout__path-alternative-label { display: inline-block; font-family: 'Montserrat', sans-serif; font-size: 10px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; padding: 5px 13px; margin: 0 0 14px; }
.entry-content .booking-callout__path-recommended-label { background: #265B5F; color: #fff; }
.entry-content .booking-callout__path-alternative-label { background: #F0EBE0; color: #736758; }
.entry-content .booking-callout__path p { font-family: Georgia, serif; font-size: 15px; line-height: 1.65; color: #1A1A1A; max-width: 600px; margin-left: auto; margin-right: auto; }
.entry-content .booking-callout__path-note { font-style: italic; color: #736758; font-size: 13px; }
.entry-content .booking-callout__closing { font-family: Georgia, serif; font-style: italic; font-size: 14px; line-height: 1.6; color: #736758; margin: 26px auto 0; max-width: 560px; text-align: center; }
.entry-content .booking-callout__details ul.wp-block-list { margin: 8px 0 14px; }
.entry-content .booking-callout__details ul.wp-block-list ul.wp-block-list { margin-top: 4px; margin-bottom: 10px !important; }
.entry-content .booking-callout__details li { font-family: Georgia, serif; line-height: 1.42 !important; color: #1A1A1A; margin-bottom: 6px !important; }
.entry-content .booking-callout__details li::before { content: "•" !important; color: #C4A265 !important; font-family: Georgia, serif !important; font-weight: 400 !important; font-size: 16px !important; }
.entry-content .booking-callout__details .booking-callout__how { font-size: 14px; line-height: 1.55; }
.entry-content .booking-callout__property { margin: 14px 0; }
.entry-content .booking-callout__property summary { font-family: 'Playfair Display', Georgia, serif; font-size: 18px; font-weight: 600; font-style: normal; color: #1A1A1A; }
.entry-content .booking-callout__property[open] > summary { margin-bottom: 14px !important; }
.entry-content .booking-callout__property .booking-callout__how { font-size: 15px; }
.entry-content .pros-cons-col { background: #fff; border: 1px solid #ECE6DA; padding: 18px 22px; }
.entry-content .pros-cons-col--pros { border-top: 2px solid #265B5F; }
.entry-content .pros-cons-col--cons { border-top: 2px solid #C4B7A4; }
.entry-content .ljm-compare { display: block; margin: 26px 0; }
.entry-content .ljm-compare table { border-collapse: collapse; width: 100%; font-family: Georgia, serif; }
.entry-content .ljm-compare thead th { font-family: 'Montserrat', sans-serif; font-size: 11px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: #8B6914; text-align: left; padding: 0 16px 10px; border-bottom: 2px solid #C4A265; background: transparent; }
.entry-content .ljm-compare tbody td { font-size: 15px; line-height: 1.5; color: #1A1A1A; vertical-align: top; padding: 14px 16px; border-bottom: 1px solid #E8E0D2; background: transparent; }
.entry-content .ljm-compare tbody tr:last-child td { border-bottom: none; }
.entry-content .ljm-compare tbody td:first-child { font-family: 'Playfair Display', Georgia, serif; font-weight: 600; font-size: 17px; color: #1A1A1A; }
.entry-content .ljm-compare tbody td:nth-child(2) { color: #4A4A4A; }
.entry-content .ljm-compare tbody td:last-child { font-family: 'Montserrat', sans-serif; font-size: 11px; letter-spacing: 0.5px; text-transform: uppercase; color: #8B6914; line-height: 1.45; }
@media (max-width: 640px) {
  .entry-content .booking-callout:not(.booking-callout--compact) { padding: 24px 20px; }
  .entry-content .booking-callout:not(.booking-callout--compact) > .wp-block-group__inner-container { padding-left: 0; padding-right: 0; }
  .entry-content .booking-callout__eyebrow { margin-bottom: 10px; letter-spacing: 2px; }
  .entry-content .booking-callout__title { font-size: 25px; line-height: 1.12; margin-bottom: 12px; }
  .entry-content .booking-callout__lead { font-size: 15.5px; line-height: 1.5; margin-bottom: 18px; }
  .entry-content .booking-callout__strip { grid-template-columns: 1fr; margin-bottom: 18px; }
  .entry-content .booking-callout__item { padding: 14px 16px; }
  .entry-content .booking-callout__item + .booking-callout__item { border-left: 0; border-top: 1px solid #E8E0D2; }
  .entry-content .booking-callout__mark { font-size: 18px; margin-bottom: 5px; }
  .entry-content .booking-callout__how { margin-bottom: 14px; }
  .entry-content .booking-callout__step { padding-left: 28px; }
  .entry-content .booking-callout__details { padding-top: 14px; }
  .entry-content .booking-callout__property summary { font-size: 17px; }
  .entry-content .booking-callout__contact { grid-template-columns: 1fr 1fr; gap: 16px; padding-top: 16px; margin-top: 16px; }
  .entry-content .booking-callout__contact-item:first-child { grid-column: 1 / -1; }
  .entry-content .booking-callout__path { padding: 24px 16px; }
  .entry-content .ljm-compare thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .entry-content .ljm-compare table, .entry-content .ljm-compare tbody, .entry-content .ljm-compare tr, .entry-content .ljm-compare td { display: block; width: 100%; }
  .entry-content .ljm-compare tr { border: 1px solid #E8E0D2; padding: 16px 18px; margin: 0 0 12px; }
  .entry-content .ljm-compare tbody td { border: none !important; padding: 0; }
  .entry-content .ljm-compare tbody td:first-child { font-size: 19px; margin-bottom: 5px; }
  .entry-content .ljm-compare tbody td:nth-child(2) { font-style: italic; color: #736758; font-size: 14.5px; margin-bottom: 10px; }
  .entry-content .ljm-compare tbody td:nth-child(3)::before { content: "Best for"; display: block; font-family: 'Montserrat', sans-serif; font-size: 10px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: #8B6914; margin-bottom: 2px; }
  .entry-content .ljm-compare tbody td:last-child { margin-top: 10px; font-size: 11px; }
}
/* === PATTERN: HOTEL REVIEW SET END === */

/* === PATTERN: LJM SLIDER mobile full-bleed parity — photo-gallery + alignfull sliders go edge-to-edge at 768px and under to match the site's full-bleed mobile photos. Migrated from HdC 36351 per-post + generalized to :has(--photo) so photo sliders missing the alignfull class (e.g. Fairmont) are caught too; scoped to --photo so text-card sliders stay padded. 2026-06-23. START === */
@media (max-width: 768px) {
  .entry-content .ljm-slider.alignfull,
  .entry-content .ljm-slider[data-perpage="1"] {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
  }
}
/* === PATTERN: LJM SLIDER mobile full-bleed parity END === */

/* === PATTERN: SD-KIDS COMPONENTS PROMOTED TO GLOBAL (stat-line meta + tips-from-katie--boxed gold outline) — reusable on any listicle, lifted from the SD-with-Kids pillar 2026-06-23. START === */
.entry-content .stat-line,.post-body .stat-line{font-family:Georgia,serif;font-size:16px;line-height:1.6;color:#736758;margin:18px 0 0;}
.entry-content .stat-line strong,.post-body .stat-line strong{color:#1A1A1A;font-weight:600;}
.entry-content .stat-line .sep,.post-body .stat-line .sep{display:block;width:100%;height:0;font-size:0;line-height:0;margin:11px 0 0;}
.entry-content .tips-from-katie--boxed,.post-body .tips-from-katie--boxed{background:#fff;border:1px solid rgba(196,162,101,0.45);border-radius:3px;padding:16px 18px;}
.entry-content .tips-from-katie--boxed .tips-eyebrow,.post-body .tips-from-katie--boxed .tips-eyebrow{color:#8B6914;}
/* === PATTERN: SD-KIDS COMPONENTS PROMOTED TO GLOBAL END === */

/* === SANDBOX CANDIDATES — page-scoped to /sandbox-deal-cta/ (180237) ONLY, NOT global components. Staged for review; promote to global by removing this page-scope. 2026-06-23. START === */
body.page-id-180237 .entry-content .lj-final-cta,
body.postid-180237 .entry-content .lj-final-cta{background:#1A1A1A;color:#fff;padding:40px 32px;margin:40px 0;text-align:center}
body.page-id-180237 .entry-content .lj-final-cta h2,
body.postid-180237 .entry-content .lj-final-cta h2{color:#fff!important;font-size:30px;margin:0 0 16px;font-family:'Playfair Display',Georgia,serif;font-weight:500;text-align:center}
body.page-id-180237 .entry-content .lj-final-cta p,
body.postid-180237 .entry-content .lj-final-cta p{color:#fff!important;opacity:.85;font-size:16px;line-height:1.6;margin-bottom:24px;text-align:center}
body.page-id-180237 .entry-content .lj-final-cta .wp-block-button.lj-cta-btn .wp-block-button__link,
body.postid-180237 .entry-content .lj-final-cta .wp-block-button.lj-cta-btn .wp-block-button__link{font-family:'Montserrat',Arial,sans-serif!important;font-weight:600!important;font-size:13px!important;letter-spacing:2px!important;text-transform:uppercase!important;background-color:#C4A265!important;color:#1A1A1A!important;padding:16px 32px!important;text-decoration:none!important;border-radius:0!important;line-height:1.2;display:inline-block}
body.page-id-180237 .entry-content .lj-final-cta .wp-block-button.lj-cta-btn .wp-block-button__link:hover,
body.postid-180237 .entry-content .lj-final-cta .wp-block-button.lj-cta-btn .wp-block-button__link:hover{background-color:#fff!important;color:#1A1A1A!important}
/* === SANDBOX CANDIDATES END === */

/* === Hotel Package Cards START === */
.ljm-pkg-card{border:1px solid #E8E2D9;border-radius:2px;overflow:hidden;}
.ljm-pkg-card--featured{border-top:3px solid #C4A265;}
.ljm-pkg-card figure.wp-block-image{margin:0;aspect-ratio:16/9;overflow:hidden;}
.ljm-pkg-card figure.wp-block-image img{width:100%;height:100%;object-fit:cover;display:block;}
.ljm-pkg-card .wp-block-heading{padding:16px 20px 4px;font-size:18px!important;line-height:1.3;}
.ljm-pkg-card p{padding:4px 20px 0;}
.ljm-pkg-card .wp-block-buttons{padding:12px 20px 20px;}
.ljm-pkg-card .wp-block-group__inner-container{padding:0;}
/* === Hotel Package Cards END === */

/* Generic theme-park sidebar CTA button: filled like the zoo CTA, no cart, arrow only (2026-06-25) */
.sidebar-cta-btn--arrow::before { -webkit-mask: none !important; mask: none !important; background: none !important; content: none !important; width: 0 !important; height: 0 !important; margin: 0 !important; }
.sidebar-cta-btn--arrow::after { content: " →"; margin-left: 6px; font-weight: 400; }

/* Hotel booking-tool sidebar CTA links to an info page, not checkout — no cart icon, arrow is in the text (2026-06-25) */
.sidebar-cta-btn[href="/hotel-booking-tool/"]::before { -webkit-mask: none !important; mask: none !important; background: none !important; content: none !important; width: 0 !important; height: 0 !important; margin: 0 !important; }

/* also-featured__list chips (promoted from post 36351 Kadence field, 2026-06-26) */
.entry-content .also-featured{text-align:center}
.entry-content .also-featured__list{font-size:0;text-align:center;margin-top:10px}
.entry-content .also-featured__list a{text-decoration:none!important;display:inline-block;font-family:'Montserrat',sans-serif;font-size:11px;font-weight:600;letter-spacing:0.3px;border:1px solid #E8E0D2;border-radius:2px;padding:5px 11px;margin:4px;background:#fff;line-height:1.35}
.entry-content .also-featured__list a:hover{border-color:#C4A265}
/* Fairmont tail promoted from Kadence field 2026-06-26: section-eyebrow + lj-also-featured + rank-math FAQ */
.entry-content .section-eyebrow{display:block;position:relative;font-family:Montserrat,'Helvetica Neue',Arial,sans-serif;font-size:11px;font-weight:600;letter-spacing:2.5px;text-transform:uppercase;color:#C4A265;margin-top:72px;padding-top:56px;margin-bottom:0;line-height:1}
.entry-content .section-eyebrow::before{content:'';position:absolute;top:20px;left:0;right:0;height:1px;background:#E8E2D9}
.entry-content .section-eyebrow::after{content:'';position:absolute;top:17px;left:50%;width:7px;height:7px;background:#C4A265;transform:translateX(-50%) rotate(45deg);box-shadow:0 0 0 10px #fff}
.entry-content p.section-eyebrow + h2,.entry-content p.section-eyebrow + h2.wp-block-heading{margin-top:8px !important;padding-top:0 !important}
.entry-content .lj-also-featured{margin:32px 0;padding:22px 24px;background:#FFFFFF;border:1px solid #ECE6DA}
.entry-content .lj-also-featured__label{display:block;font-size:11px !important;font-weight:600 !important;letter-spacing:2.5px !important;text-transform:uppercase !important;color:#736758 !important;margin-bottom:12px !important;line-height:1.4 !important;font-family:'Montserrat',-apple-system,sans-serif !important}
.entry-content .lj-also-featured .wp-block-buttons{gap:8px;flex-wrap:wrap;margin:0}
.entry-content .lj-also-featured .wp-block-button{margin:0}
.entry-content .lj-also-featured .wp-block-button__link{display:inline-block;padding:6px 12px !important;border:1px solid #E8E0D2 !important;background:#FFFFFF !important;font-size:12px !important;font-weight:400 !important;color:#1A1A1A !important;text-decoration:none !important;border-radius:0 !important;letter-spacing:0 !important;text-transform:none !important;line-height:1.5 !important;font-family:'Montserrat',-apple-system,sans-serif !important}
.entry-content .lj-also-featured .wp-block-button__link:hover{background:#FBFAF7 !important;color:#826A2C !important;border-color:#C4A265 !important}
.entry-content .wp-block-rank-math-faq-block .rank-math-list-item{border-bottom:1px solid #ECE6DA;padding:24px 0;margin:0}
.entry-content .wp-block-rank-math-faq-block .rank-math-list-item:last-child{border-bottom:0}
.entry-content .wp-block-rank-math-faq-block h2,.entry-content .wp-block-rank-math-faq-block h3,.entry-content .wp-block-rank-math-faq-block .rank-math-question,.entry-content .wp-block-rank-math-faq-block .rank-math-list-item__title{font-family:'Playfair Display',Georgia,serif !important;font-weight:500 !important;font-size:22px !important;line-height:1.3 !important;color:#1A1A1A !important;margin:0 0 12px !important}
.entry-content .wp-block-rank-math-faq-block p,.entry-content .wp-block-rank-math-faq-block .rank-math-answer,.entry-content .wp-block-rank-math-faq-block .rank-math-list-item__content{font-family:Georgia,serif;font-size:16px;line-height:1.7;color:#1A1A1A;margin:0 0 12px}
@media (max-width:640px){.entry-content .section-eyebrow{margin-top:56px;padding-top:44px}}
/* ljm-event-table — clean 3-col data table (event/dates/cost). Promoted from Holiday Events 2026-06-26 */
.entry-content .ljm-event-table{width:100%;margin:28px 0;border:0}
.entry-content .ljm-event-table table{width:100%;border-collapse:collapse;border:0}
.entry-content .ljm-event-table thead th{background:#FAF8F5;border-bottom:2px solid #C4A265;font-family:'Montserrat',Helvetica,Arial,sans-serif;font-size:11px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:#736758;text-align:left;padding:12px 14px}
.entry-content .ljm-event-table tbody td{border-bottom:1px solid #E4DDD0;padding:13px 14px;line-height:1.5;font-size:15px;color:#1A1A1A;vertical-align:top}
.entry-content .ljm-event-table tbody td:first-child{font-family:'Playfair Display',Georgia,serif;font-weight:600;color:#1A1A1A}
.entry-content .ljm-event-table tbody tr:last-child td{border-bottom:2px solid #C4A265}
@media (max-width:640px){.entry-content .ljm-event-table thead th,.entry-content .ljm-event-table tbody td{padding:10px 8px;font-size:13.5px}.entry-content .ljm-event-table tbody td:first-child{font-size:14.5px}}
/* ADA: .lj-note__eyebrow gold was #C4A265 (~2.3:1, fails AA) -> accessible gold-text #8B6914 + weight. 2026-06-26 */
.entry-content .lj-note__eyebrow,.post-body .lj-note__eyebrow{color:#8B6914 !important;font-weight:600 !important}
.entry-content .lj-note__eyebrow,.post-body .lj-note__eyebrow{font-size:13px !important;letter-spacing:2.4px !important}
/* lj-also-featured chips must beat the sitewide teal button rule (0,4,0) — 2026-06-26 */
.entry-content .lj-also-featured .wp-block-button:not(.is-style-outline) .wp-block-button__link{background:#FFFFFF !important;color:#1A1A1A !important;border:1px solid #E8E0D2 !important}
.entry-content .lj-also-featured .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover{background:#FBFAF7 !important;color:#826A2C !important;border-color:#C4A265 !important}
/* ticket-post verdict subtitle + section label (promoted from KSC field 2026-06-26; shared ticket-review components) */
.entry-content .lj-verdict-sub{font-family:'Montserrat',Arial,sans-serif;font-weight:500;font-size:13px;letter-spacing:2px;text-transform:uppercase;color:#265B5F;margin:0 0 22px}
.entry-content .lj-verdict-sub.good{color:#7A621F}
.entry-content .lj-verdict-sub.limited{color:#5A4F3F}
.entry-content .lj-section-label{font-family:'Montserrat',Arial,sans-serif;font-weight:600;font-size:13px;letter-spacing:2.5px;text-transform:uppercase;color:#7A621F;margin:56px 0 14px}
.entry-content .lj-section-label-lead{font-style:italic;color:#5A4F3F;font-size:16px;line-height:1.6;max-width:560px;margin:0 auto 32px}
/* booking-hub__contact row (promoted from Fairmont field 2026-06-26; contact row inside booking-callout; > rewritten as descendant) */
.entry-content .booking-callout .booking-hub__contact{display:grid;grid-template-columns:repeat(3,1fr);gap:10px 20px;justify-items:center;text-align:center;margin:24px 0 0}
.entry-content .booking-callout .booking-hub__contact .wp-block-group__inner-container{display:contents}
.entry-content .booking-callout .booking-hub__contact-item{text-align:center}.entry-content .booking-hub__contact-item{font-family:'Montserrat',sans-serif !important;font-size:12px !important;line-height:1.5 !important;font-weight:400 !important;color:#1A1A1A !important}.entry-content .booking-hub__contact-item a{font-size:12px !important;display:inline-block !important;padding:3px 0 !important}.entry-content .booking-hub__contact-label{display:block !important;font-family:'Montserrat',sans-serif !important;font-size:10px !important;font-weight:600 !important;letter-spacing:1.5px !important;text-transform:uppercase !important;color:#8B6914 !important;margin-bottom:3px !important;line-height:1.4 !important}
.entry-content .booking-callout .booking-hub__contact-item a{display:inline-block;padding:5px 8px}
@media (max-width:640px){.entry-content .booking-callout .booking-hub__contact{grid-template-columns:1fr 1fr;gap:10px 16px;margin-top:16px}.entry-content .booking-callout .booking-hub__contact-item:first-child{grid-column:1 / -1}.entry-content .booking-callout .booking-hub__contact-item a{padding:9px 14px}}

/* ===== Mobile hamburger icon — drawn in CSS (mega-nav 177970 strips its inline SVG on save) 2026-06-26 ===== */
.ljm-drawer-toggle { align-items: center; justify-content: center; }
.ljm-drawer-toggle::before {
  content: "";
  width: 24px;
  height: 2px;
  background: currentColor;
  box-shadow: 0 -7px 0 0 currentColor, 0 7px 0 0 currentColor;
}
/* booking-callout mark: cover <p> mark markup too (Fairmont uses p; FS Lanai/HDC use span). 0,3,0 beats .booking-callout__item p; same canonical gold/size so span marks don't move. 2026-06-27 */
.entry-content .booking-callout__item .booking-callout__mark{font-family:'Playfair Display',Georgia,serif !important;font-style:italic;font-size:20px !important;color:#8B6914 !important;display:block;margin:0 0 8px;line-height:1.2}
/* booking-callout sub-label: central had no rule, so the classless sub-label <p> fell to the sitewide p:not([class]) 18px base. !important + 0,4,1 specificity restores the intended 15px. Shared component fix; applies to every review on field-empty. 2026-06-27 */
.entry-content .booking-callout .booking-callout__item p:not(.booking-callout__mark){font-family:Georgia,serif !important;font-size:15px !important;line-height:1.5 !important;color:#3A3A3A !important;margin:0 !important}
/* === .lj-balance (What I Love / Good to Know): bronze Good-to-Know + slightly larger label, scoped 2026-06-27 === */
.entry-content .lj-balance .eyebrow{font-size:13px !important}
.entry-content .lj-balance .eyebrow--sand{color:#8B6914 !important}

/* .lj-balance layout: 2-col with faint divider on desktop, stacks with a top-rule on mobile (2026-06-27) */
.entry-content .lj-balance.wp-block-columns{display:grid;grid-template-columns:1fr 1fr;gap:0;align-items:start}
.entry-content .lj-balance .wp-block-column{margin:0}
.entry-content .lj-balance .wp-block-column:first-child{padding-right:48px}
.entry-content .lj-balance .wp-block-column:last-child{padding-left:48px;border-left:1px solid #ECE6DA}
@media(max-width:781px){
.entry-content .lj-balance.wp-block-columns{grid-template-columns:1fr}
.entry-content .lj-balance .wp-block-column:first-child{padding-right:0;margin-bottom:26px}
.entry-content .lj-balance .wp-block-column:last-child{padding-left:0;border-left:0;border-top:1px solid #ECE6DA;padding-top:26px}
}

/* === DRAWER SEARCH ICON RESTORE (2026-06-27) — hamburger drawer search inline SVG got stripped on a mega-nav element save (same recurring issue as desktop .ljm-mega-nav-search). Render the magnifying glass via CSS mask so it survives future nav re-saves. Becomes first flex child of the wrap, mirrors the old .ljm-drawer-search-icon (margin-left:14px, #736758). === */
.ljm-drawer-search-wrap::before{content:"";flex-shrink:0;margin-left:14px;margin-right:12px;width:22px;height:22px;background-color:#1A1A1A;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z'/%3E%3C/svg%3E") center/contain no-repeat;}