/* =============================================================================
   Neuschwanstein Journey — Modern UI layer (v2 — light theme)
   Light fairy-tale aesthetic: warm ivory, royal Bavarian blue, gold.
   ============================================================================= */

/* -----------------------------------------------------------------------------
   0. DESIGN TOKENS — LIGHT THEME
   ----------------------------------------------------------------------------- */
:root {
  /* Background layers — warm ivory/cream */
  --nj-bg:             #FAF7F2;
  --nj-bg-raised:      #FFFFFF;
  --nj-bg-card:        #FFFFFF;
  --nj-bg-card-hover:  #FFFFFF;
  --nj-bg-elev:        #FFFFFF;
  --nj-bg-soft:        #F2EDE4;
  --nj-bg-dark:        #1A2332;

  /* Borders */
  --nj-border:         rgba(26,35,50,0.10);
  --nj-border-strong:  rgba(26,35,50,0.18);
  --nj-border-soft:    rgba(26,35,50,0.06);
  --nj-border-gold:    rgba(200,168,75,0.45);

  /* Text tiers — dark on light */
  --nj-text:           #1A2332;
  --nj-text-soft:      #2D3748;
  --nj-text-muted:     #4A5568;
  --nj-text-dim:       #718096;
  --nj-text-inv:       #FFFFFF;
  --nj-muted:          #718096;

  /* Brand — Bavarian Royal Blue + Gold */
  --nj-blue:           #1F4E8C;
  --nj-blue-hover:     #163C70;
  --nj-blue-soft:      rgba(31,78,140,.10);
  --nj-blue-deep:      #102A52;
  --nj-blue-light:     #2B6CB0;
  --nj-gold:           #B8923B;
  --nj-gold-soft:      rgba(184,146,59,.14);
  --nj-gold-strong:    #C8A84B;

  /* Gradients */
  --nj-grad-blue:      linear-gradient(135deg, #1F4E8C 0%, #102A52 100%);
  --nj-grad-gold:      linear-gradient(135deg, #C8A84B 0%, #B8923B 100%);
  --nj-grad-hero:      linear-gradient(180deg, rgba(26,35,50,0) 0%, rgba(26,35,50,.30) 60%, rgba(26,35,50,.75) 100%);
  --nj-grad-card:      linear-gradient(180deg, rgba(255,255,255,1) 0%, rgba(255,255,255,1) 100%);

  /* Radii */
  --nj-r-sm:  6px;
  --nj-r:     10px;
  --nj-r-md:  14px;
  --nj-r-lg:  20px;
  --nj-r-xl:  28px;

  /* Shadows — soft for light theme */
  --nj-sh-sm:  0 1px 2px rgba(26,35,50,.06);
  --nj-sh:     0 2px 8px rgba(26,35,50,.08);
  --nj-sh-md:  0 8px 24px rgba(26,35,50,.10);
  --nj-sh-lg:  0 18px 48px rgba(26,35,50,.14);
  --nj-sh-blue: 0 6px 16px rgba(31,78,140,.30);
  --nj-sh-gold: 0 6px 16px rgba(184,146,59,.30);
  --nj-sh-glow: 0 12px 36px rgba(31,78,140,.16);

  /* Motion */
  --nj-t-fast: 150ms cubic-bezier(.4,0,.2,1);
  --nj-t:      250ms cubic-bezier(.4,0,.2,1);
  --nj-t-slow: 450ms cubic-bezier(.4,0,.2,1);

  /* Typography */
  --nj-ff-body:    'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --nj-ff-display: 'Cormorant Garamond', 'Cinzel', Georgia, serif;
  --nj-ff-heading: 'Cinzel', 'Cormorant Garamond', Georgia, serif;
  --nj-ff-serif:   'Cormorant Garamond', 'Playfair Display', Georgia, serif;
  --nj-ff-accent:  'Bebas Neue', 'Inter', sans-serif;

  /* Surfaces */
  --nj-surface:  #FFFFFF;

  /* Layout */
  --nj-container: 1240px;
  --nj-gutter: clamp(16px, 3vw, 32px);
}

/* -----------------------------------------------------------------------------
   1. GLOBAL BASE
   ----------------------------------------------------------------------------- */
html { scroll-behavior: smooth; }

body.scheme_dark,
body.scheme_default,
body,
.body_wrap,
.page_wrap,
.page_content_wrap {
  background-color: var(--nj-bg) !important;
  color: var(--nj-text-soft) !important;
  font-family: var(--nj-ff-body) !important;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Prevent horizontal overflow on mobile */
html, body, .page_wrap, .body_wrap { max-width: 100%; overflow-x: hidden; }
.elementor-section, .e-con, .e-con-inner,
.elementor-container, .elementor-widget-container,
.content_wrap, .page_content_wrap { max-width: 100%; box-sizing: border-box; }

.content_wrap > .content,
.sidebar_inner,
.elementor-section:not(.elementor-section-stretched) { background: transparent !important; }

/* --- Typography hierarchy --- */
body, p, li, span, div { font-family: var(--nj-ff-body) !important; }

h1, h1 .elementor-heading-title,
h2, h2 .elementor-heading-title {
  font-family: var(--nj-ff-display) !important;
  color: var(--nj-text) !important;
  font-weight: 500 !important;
  letter-spacing: -0.005em !important;
  line-height: 1.15 !important;
}
h1, h1 .elementor-heading-title { font-size: clamp(2.6rem, 5vw, 4.4rem) !important; }
h2, h2 .elementor-heading-title { font-size: clamp(2rem, 3.4vw, 2.8rem) !important; }

h3, h3 .elementor-heading-title,
h4, h4 .elementor-heading-title,
.post_title, .entry-title,
.sc_item_title_text {
  font-family: var(--nj-ff-heading) !important;
  color: var(--nj-text) !important;
  font-weight: 600 !important;
  letter-spacing: 0.04em !important;
  line-height: 1.3 !important;
  text-transform: uppercase;
}
h3, h3 .elementor-heading-title { font-size: clamp(1.25rem, 1.8vw, 1.5rem) !important; }
h4, h4 .elementor-heading-title, .post_title { font-size: clamp(1rem, 1.4vw, 1.2rem) !important; }

.sc_title_extra .sc_item_title_text {
  font-family: var(--nj-ff-heading) !important;
  font-weight: 600 !important;
  font-size: clamp(0.7rem, 1vw, 0.78rem) !important;
  color: var(--nj-gold) !important;
  letter-spacing: 0.30em !important;
  text-transform: uppercase !important;
  line-height: 1.4 !important;
}

p, .elementor-widget-text-editor p { color: var(--nj-text-soft) !important; }
a { color: var(--nj-gold); transition: color var(--nj-t-fast); }
a:hover { color: var(--nj-blue); }

/* --- Container / Layout --- */
.elementor-section.elementor-section-boxed > .elementor-container {
  max-width: var(--nj-container) !important;
  padding-left: var(--nj-gutter) !important;
  padding-right: var(--nj-gutter) !important;
}

/* Cap spacer widgets */
.elementor-widget-spacer .elementor-spacer-inner { max-height: 24px !important; min-height: 0 !important; }

/* Tight section gaps */
.page_content_wrap .elementor-top-section { margin-bottom: 0 !important; }
.page_content_wrap .elementor-top-section > .elementor-container {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* Uniform vertical rhythm — moderate padding for ALL section types (top sections + e-cons) */
.page_content_wrap .elementor-section.elementor-top-section:not(.elementor-section-stretched),
.page_content_wrap > .elementor > .e-con.e-parent,
.page_content_wrap .e-con.e-parent {
  padding-top: clamp(28px, 3.2vw, 56px) !important;
  padding-bottom: clamp(28px, 3.2vw, 56px) !important;
}
/* Hero section — no padding (RevSlider container should be edge-to-edge) */
.page_content_wrap .e-con.e-parent:has(.rev_slider_wrapper),
.page_content_wrap .e-con.e-parent:has([id^="rev_slider_"]),
.page_content_wrap .elementor-section:has(.rev_slider_wrapper),
.page_content_wrap .elementor-section:has([id^="rev_slider_"]),
/* Specific hero element on home page (class e0f87e3) — fallback for browsers without :has() */
body .page_content_wrap .elementor-element.elementor-element-e0f87e3,
body .page_content_wrap .e-con.e-parent.elementor-element-e0f87e3 {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
/* Welcome section keeps its larger hero padding */
.page_content_wrap .welcome-section {
  padding-top: clamp(72px, 9vw, 140px) !important;
  padding-bottom: clamp(72px, 9vw, 140px) !important;
}

/* Hide truly empty sections */
.page_content_wrap .elementor-top-section:empty,
.page_content_wrap .elementor-section:has(> .elementor-container:empty) { display: none !important; }

/* Cap heights of e-flex containers that have no content */
.e-con.e-con-boxed:not(:has(> *)) { display: none !important; }

/* Reduce excessive padding on hero/RevSlider */
.rev_slider_wrapper, .revslider-initialised { margin-bottom: 0 !important; }

/* -----------------------------------------------------------------------------
   2. HEADER — sticky glassmorphism
   ----------------------------------------------------------------------------- */
.top_panel,
.top_panel_custom,
.top_panel_custom_header-custom {
  position: sticky !important;
  top: 0 !important;
  z-index: 8000 !important;
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  left: 0 !important;
  right: auto !important;
  background: rgba(255, 255, 255, 0.92) !important;
  backdrop-filter: saturate(180%) blur(18px);
  -webkit-backdrop-filter: saturate(180%) blur(18px);
  border-bottom: 1px solid var(--nj-border);
  box-shadow: 0 1px 6px rgba(26,35,50,0.04);
  transition: background var(--nj-t), border-color var(--nj-t);
}

/* Strip any bg images from header variants */
.top_panel.top_panel_custom.with_bg_image {
  background-image: none !important;
}
.top_panel.top_panel_custom.with_bg_image:before,
.top_panel.top_panel_custom.with_featured_image::before,
.top_panel.top_panel_custom.with_featured_image::after {
  display: none !important;
  content: none !important;
  background: none !important;
}
.top_panel.top_panel_custom.with_featured_image {
  background-image: none !important;
}

/* Unified glass background for all header positions — high specificity to beat Ozeum's rules */
body.header_position_default .top_panel,
body.header_position_default .top_panel_custom,
body.header_position_over .top_panel,
body.header_position_over .top_panel_custom,
body.header_position_under .top_panel,
body.header_position_under .top_panel_custom {
  background: rgba(255, 255, 255, 0.92) !important;
  background-color: rgba(255, 255, 255, 0.92) !important;
}

/* Kill row separators inside header */
.top_panel .sc_layouts_row_delimiter,
.top_panel .elementor-top-section.sc_layouts_row_delimiter {
  border: none !important;
  box-shadow: none !important;
}

/* Make all sections inside header transparent */
.top_panel .sc_layouts_row:not(.sc_layouts_row_fixed_on),
.top_panel .elementor-top-section,
.top_panel .elementor-inner-section {
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
}
.top_panel .elementor-column,
.top_panel .elementor-widget-wrap {
  background-color: transparent !important;
  background-image: none !important;
}
.top_panel .elementor-background-overlay,
.top_panel .elementor-background-slideshow,
.top_panel .elementor-background-video-container {
  display: none !important;
}

/* Header layout IDs — strip borders on inner rows */
.elementor.elementor-2747 .elementor-element.elementor-element-37815e5,
.elementor.elementor-2747 .elementor-element.elementor-element-f73d558,
.elementor.elementor-2747 .elementor-element.elementor-element-fa3d0bc {
  border: none !important;
  border-style: none !important;
  border-width: 0 !important;
}
.elementor.elementor-2747 .elementor-background-overlay {
  display: none !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* Neutralize Elementor padding inside header */
.top_panel .elementor-section,
.top_panel .elementor-inner-section,
.top_panel .elementor-column,
.top_panel .elementor-widget-wrap,
.top_panel .elementor-element-populated {
  padding: 0 !important;
  margin: 0 !important;
  min-height: 0 !important;
}
.top_panel .elementor-container {
  padding-left: var(--nj-gutter) !important;
  padding-right: var(--nj-gutter) !important;
  max-width: var(--nj-container);
  margin: 0 auto;
}
.top_panel .elementor-widget,
.top_panel .sc_layouts_item {
  margin: 0 !important;
}

/* --- Top utility row — kept dark for contrast against light header --- */
.top_panel .elementor-top-section.sc_layouts_row_type_narrow {
  background: var(--nj-bg-dark) !important;
  border-bottom: none;
  font-size: 12.5px;
  letter-spacing: 0.02em;
}
.top_panel .elementor-top-section.sc_layouts_row_type_narrow .sc_layouts_iconed_text_line1 {
  color: rgba(255,255,255,0.85) !important;
}
.top_panel .elementor-top-section.sc_layouts_row_type_narrow .elementor-container {
  padding-top: 6px !important;
  padding-bottom: 6px !important;
  min-height: 34px;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  column-gap: 10px;
}
.top_panel .elementor-top-section.sc_layouts_row_type_narrow .elementor-row,
.top_panel .sc_layouts_row_type_narrow .elementor-row {
  flex-wrap: nowrap !important;
  width: 100% !important;
}
.top_panel .sc_layouts_iconed_text { display: flex; align-items: center; gap: 8px; }
.top_panel .sc_layouts_iconed_text_line1 {
  color: rgba(255,255,255,0.85) !important;
  font-weight: 500;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  font-size: 12.5px !important;
  line-height: 1.4 !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase;
  min-width: 0;
}
.top_panel .sc_layouts_iconed_text_icon { color: var(--nj-gold-strong) !important; flex-shrink: 0; }
.top_panel .sc_layouts_iconed_text_icon [class^="icon-"],
.top_panel .sc_layouts_iconed_text_icon [class*=" icon-"] {
  font-size: 14px !important;
  color: var(--nj-gold-strong) !important;
}

/* --- Main header row --- */
.top_panel .elementor-top-section:not(.sc_layouts_row_type_narrow) .elementor-container {
  padding-top: 8px !important;
  padding-bottom: 8px !important;
  min-height: 64px;
  align-items: center;
}

/* Logo */
.top_panel .sc_layouts_logo .logo_image,
.top_panel .sc_layouts_logo img,
.elementor .top_panel .sc_layouts_logo .logo_image {
  max-height: 60px !important;
  width: 270px !important;
  transition: transform var(--nj-t);
}
.top_panel .sc_layouts_logo:hover img { transform: scale(1.03); }
.top_panel .elementor-column:has(.sc_layouts_logo) {
  flex: 0 0 auto !important;
  min-width: 200px !important;
}

/* Navigation menu */
.top_panel .sc_layouts_menu_nav {
  display: flex !important;
  align-items: center;
  gap: 2px;
  background: transparent !important;
}
.top_panel .sc_layouts_menu_nav > li.menu-item-more,
.top_panel .sc_layouts_menu_nav > li.menu-collapse { display: none !important; }
.top_panel .sc_layouts_menu_nav > li {
  display: list-item !important;
  float: none !important;
  margin: 0;
}
.top_panel .sc_layouts_menu_nav > li > a,
.top_panel .sc_layouts_menu_nav > li > a:link,
.top_panel .sc_layouts_menu_nav > li > a:visited,
body .top_panel .sc_layouts_menu_nav > li > a,
body.scheme_dark .top_panel .sc_layouts_menu_nav > li > a {
  padding: 10px 14px !important;
  border-radius: var(--nj-r) !important;
  font-family: var(--nj-ff-body) !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  letter-spacing: 0.04em !important;
  color: #1A2332 !important;
  text-transform: uppercase !important;
  transition: all var(--nj-t-fast) !important;
  position: relative;
  white-space: nowrap;
  background: transparent !important;
}
.top_panel .sc_layouts_menu_nav > li > a > span,
.top_panel .sc_layouts_menu_nav > li > a > span.menu-item-title,
body .top_panel .sc_layouts_menu_nav > li > a > span { color: #1A2332 !important; }
.top_panel .sc_layouts_menu_nav > li > a > span { color: inherit !important; }
.top_panel .sc_layouts_menu_nav > li > a:hover,
.top_panel .sc_layouts_menu_nav > li.current-menu-item > a,
.top_panel .sc_layouts_menu_nav > li.current-menu-ancestor > a {
  color: var(--nj-text) !important;
  background: rgba(26,35,50,0.05) !important;
}
.top_panel .sc_layouts_menu_nav > li.current-menu-item > a::after,
.top_panel .sc_layouts_menu_nav > li.current-menu-ancestor > a::after {
  content: "";
  position: absolute;
  left: 14px; right: 14px;
  bottom: 4px; height: 2px;
  background: var(--nj-gold);
  border-radius: 2px;
}

/* Hash-active nav items on front page */
.top_panel .sc_layouts_menu_nav > li.nj-nav-hash-active:not(.menu-item-cta):not(.nj-cta) > a {
  color: var(--nj-text) !important;
  background: rgba(26,35,50,0.05) !important;
}
.top_panel .sc_layouts_menu_nav > li.nj-nav-hash-active:not(.menu-item-cta):not(.nj-cta) > a::after {
  content: "";
  position: absolute;
  left: 14px; right: 14px;
  bottom: 4px; height: 2px;
  background: var(--nj-gold);
  border-radius: 2px;
}

/* Dropdown */
.top_panel .sc_layouts_menu_nav > li > ul,
.top_panel .sc_layouts_menu_nav > li ul ul {
  background: var(--nj-bg-card) !important;
  border: 1px solid var(--nj-border) !important;
  border-radius: var(--nj-r-md) !important;
  box-shadow: var(--nj-sh-md) !important;
  padding: 8px !important;
  min-width: 220px !important;
}
.top_panel .sc_layouts_menu_nav > li > ul > li > a,
.top_panel .sc_layouts_menu_nav ul li a {
  color: var(--nj-text-soft) !important;
  border-radius: var(--nj-r) !important;
  padding: 8px 12px !important;
  font-size: 13.5px !important;
  background: transparent !important;
}
.top_panel .sc_layouts_menu_nav ul li a:hover,
.top_panel .sc_layouts_menu_nav ul li.current-menu-item > a {
  color: var(--nj-text) !important;
  background: rgba(26,35,50,0.05) !important;
}

/* CTA "Book Tickets" button in nav */
.top_panel .sc_layouts_menu_nav > li.menu-item-cta,
.top_panel .sc_layouts_menu_nav > li.nj-cta { margin-left: 10px; }
.top_panel .sc_layouts_menu_nav > li.menu-item-cta > a,
.top_panel .sc_layouts_menu_nav > li.nj-cta > a {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  position: relative !important;
  background: var(--nj-grad-blue) !important;
  color: #fff !important;
  padding: 9px 18px !important;
  font-weight: 700 !important;
  font-size: 12.5px !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  border-radius: var(--nj-r) !important;
  box-shadow: var(--nj-sh-blue);
  transition: all var(--nj-t-fast) !important;
}
.top_panel .sc_layouts_menu_nav > li.menu-item-cta > a > span,
.top_panel .sc_layouts_menu_nav > li.nj-cta > a > span { color: #fff !important; }
.top_panel .sc_layouts_menu_nav > li.menu-item-cta > a:hover,
.top_panel .sc_layouts_menu_nav > li.nj-cta > a:hover {
  background: var(--nj-blue-hover) !important;
  transform: translateY(-1px);
  box-shadow: 0 10px 24px rgba(43,108,176,.45);
}
.top_panel .sc_layouts_menu_nav > li.menu-item-cta > a::after,
.top_panel .sc_layouts_menu_nav > li.nj-cta > a::after { display: none !important; }

/* --- Search in header --- */
.top_panel .sc_layouts_search,
.top_panel .search_wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
}
.top_panel .search_wrap .search_form_wrap {
  position: absolute !important;
  top: 100% !important;
  right: 0 !important;
  left: auto !important;
  margin-top: 10px !important;
  width: 320px !important;
  max-width: calc(100vw - 32px) !important;
  padding: 10px !important;
  background: #FFFFFF !important;
  border: 1px solid rgba(26,35,50,0.12) !important;
  border-radius: var(--nj-r-md) !important;
  box-shadow: 0 8px 24px rgba(26,35,50,0.10) !important;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: opacity var(--nj-t-fast), visibility var(--nj-t-fast), transform var(--nj-t-fast);
  z-index: 10000 !important;
}
.top_panel .sc_layouts_search.nj-search-open .search_form_wrap,
.top_panel .search_wrap.nj-search-open .search_form_wrap,
.top_panel .search_wrap.opened .search_form_wrap,
.top_panel .search_wrap:focus-within .search_form_wrap {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.top_panel .search_wrap .search_form {
  display: flex;
  gap: 6px;
  align-items: center;
  margin: 0;
}
.top_panel .search_wrap .search_field {
  flex: 1;
  min-width: 0;
  background: rgba(26,35,50,0.06) !important;
  border: 1px solid var(--nj-border) !important;
  border-radius: var(--nj-r) !important;
  color: var(--nj-text) !important;
  padding: 8px 12px !important;
  font-size: 13.5px !important;
  width: 100% !important;
  height: 36px !important;
  visibility: visible !important;
  opacity: 1 !important;
  transition: border-color var(--nj-t-fast), background var(--nj-t-fast) !important;
}
.top_panel .search_wrap.search_style_fullscreen .search_field,
.top_panel .search_wrap.search_style_expand .search_field {
  width: 100% !important;
  visibility: visible !important;
}
.top_panel .search_wrap .search_field:focus {
  outline: none;
  border-color: var(--nj-gold) !important;
  background: rgba(26,35,50,0.09) !important;
  box-shadow: 0 0 0 3px var(--nj-gold-soft);
}
.top_panel .search_wrap .search_form_wrap .search_field {
  padding: 8px 12px !important;
  flex: 1 1 auto !important;
  order: 1;
}
.top_panel .search_wrap .search_form_wrap .search_submit {
  position: static !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 36px !important;
  height: 36px !important;
  flex: 0 0 36px !important;
  order: 2;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: var(--nj-r) !important;
  background: var(--nj-grad-blue) !important;
  color: #fff !important;
  cursor: pointer !important;
  font-size: 0 !important;
  transition: filter var(--nj-t-fast) !important;
}
.top_panel .search_wrap .search_form_wrap .search_submit::before {
  content: "" !important;
  display: inline-block !important;
  width: 16px !important;
  height: 16px !important;
  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><line x1='5' y1='12' x2='19' y2='12'/><polyline points='13 6 19 12 13 18'/></svg>") no-repeat center/contain !important;
}
.top_panel .search_wrap .search_form_wrap .search_submit:hover {
  filter: brightness(1.1);
}

/* --- GTranslate --- */
.top_panel .gtranslate_wrapper,
.top_panel .elementor-widget-gtranslate,
.top_panel .gtranslate_wrapper > div {
  display: inline-flex;
  align-items: center;
  position: relative;
}
/* Lang selector in DARK top bar — light text on transparent bg */
.top_panel .sc_layouts_row_type_narrow .gt_switcher-popup,
.top_panel .sc_layouts_row_type_narrow .gt_switcher {
  padding: 5px 12px !important;
  border-radius: var(--nj-r) !important;
  background: rgba(255,255,255,0.08) !important;
  border: 1px solid rgba(255,255,255,0.15) !important;
  font-size: 12.5px !important;
  color: rgba(255,255,255,0.92) !important;
  cursor: pointer;
  height: 28px;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: all var(--nj-t-fast) !important;
}
.top_panel .sc_layouts_row_type_narrow .gt_switcher-popup:hover,
.top_panel .sc_layouts_row_type_narrow .gt_switcher:hover {
  background: rgba(255,255,255,0.16) !important;
  border-color: rgba(255,255,255,0.25) !important;
}

/* GTranslate dropdown */
.top_panel .gtranslate_wrapper { position: relative; }
.top_panel .gt_white_content,
.top_panel .gtranslate_wrapper .gt_white_content {
  display: none !important;
  position: absolute !important;
  top: 100% !important;
  right: 0 !important;
  left: auto !important;
  margin-top: 6px !important;
  width: 180px !important;
  max-height: 360px !important;
  overflow-y: auto !important;
  padding: 4px !important;
  background: #FFFFFF !important;
  border: 1px solid rgba(26,35,50,0.12) !important;
  border-radius: var(--nj-r-md) !important;
  box-shadow: 0 8px 24px rgba(26,35,50,0.10) !important;
  z-index: 10000 !important;
}
.top_panel .gtranslate_wrapper.nj-lang-open .gt_white_content {
  display: flex !important;
  flex-flow: column nowrap !important;
}
.top_panel .gt_black_overlay { display: none !important; }
.top_panel .gt_languages {
  display: flex !important;
  flex-flow: column nowrap !important;
  gap: 2px;
}
.top_panel .gt_languages .glink {
  display: flex !important;
  align-items: center;
  gap: 8px;
  padding: 7px 10px !important;
  border-radius: var(--nj-r) !important;
  color: var(--nj-text-soft) !important;
  font-size: 13px !important;
  text-decoration: none !important;
  transition: all var(--nj-t-fast);
}
.top_panel .gt_languages .glink:hover {
  background: rgba(26,35,50,0.06) !important;
  color: var(--nj-text) !important;
}
.top_panel .gt_languages .glink.gt-current-lang {
  background: var(--nj-gold-soft) !important;
  color: var(--nj-gold) !important;
}

/* Global GTranslate dark theme override */
.gt_white_content,
.gtranslate_wrapper .gt_white_content,
div.gt_white_content {
  background: #FFFFFF !important;
  border: 1px solid rgba(26,35,50,0.12) !important;
  border-radius: var(--nj-r-md) !important;
  box-shadow: 0 8px 24px rgba(26,35,50,0.10) !important;
  z-index: 10000 !important;
  padding: 4px !important;
  width: 180px !important;
  max-width: 180px !important;
  position: absolute !important;
}
.gt_white_content .glink,
.gt_white_content a.glink {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 6px 10px !important;
  border: none !important;
  border-radius: var(--nj-r) !important;
  color: var(--nj-text-soft) !important;
  font-size: 13px !important;
  text-decoration: none !important;
  transition: all var(--nj-t-fast) !important;
}
.gt_white_content .glink:hover { background: rgba(26,35,50,0.08) !important; color: var(--nj-text) !important; }
.gt_white_content .glink.gt-current-lang { background: var(--nj-gold-soft) !important; color: var(--nj-gold) !important; }
.gt_white_content .glink img { width: 16px !important; height: 16px !important; border-radius: 2px !important; flex-shrink: 0; }
.gt_white_content .glink span,
.gt_white_content .gt_languages .glink span {
  font-size: 12px !important;
  line-height: 1.3 !important;
  white-space: nowrap;
  display: inline !important;
}
.gt_white_content .gt_languages {
  display: flex !important;
  flex-direction: column !important;
  gap: 2px !important;
}

/* Cart in header — solid visible icon */
.top_panel .sc_layouts_cart,
.top_panel .sc_layouts_cart a,
.top_panel .sc_layouts_cart_icon,
.top_panel .sc_layouts_cart .cart-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 10px;
  border-radius: var(--nj-r);
  color: var(--nj-text) !important;
  background: rgba(31,78,140,0.08) !important;
  border: 1px solid rgba(31,78,140,0.20) !important;
  width: 40px; height: 40px;
  position: relative;
}
.top_panel .sc_layouts_cart [class^="icon-"],
.top_panel .sc_layouts_cart [class*=" icon-"],
.top_panel .sc_layouts_cart::before {
  color: var(--nj-blue) !important;
  font-size: 18px !important;
}
.top_panel .sc_layouts_cart:hover {
  background: var(--nj-blue) !important;
  border-color: var(--nj-blue) !important;
  color: #fff !important;
}
.top_panel .sc_layouts_cart:hover [class^="icon-"],
.top_panel .sc_layouts_cart:hover [class*=" icon-"] { color: #fff !important; }
.top_panel .sc_layouts_cart_items_count {
  background: var(--nj-gold) !important;
  color: #fff !important;
  font-size: 10px !important;
  position: absolute;
  top: -4px; right: -4px;
  min-width: 16px; height: 16px;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 4px;
  font-weight: 700;
  border: 2px solid #fff;
}

/* -----------------------------------------------------------------------------
   3. MOBILE HAMBURGER + PANEL
   ----------------------------------------------------------------------------- */
.nj-hamburger {
  display: none;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 4px;
  width: 40px;
  height: 40px;
  padding: 0;
  margin: 0 0 0 8px;
  background: rgba(26,35,50,0.06);
  border: 1px solid var(--nj-border);
  border-radius: var(--nj-r);
  cursor: pointer;
  transition: all var(--nj-t-fast);
  flex-shrink: 0;
}
.nj-hamburger:hover { background: rgba(26,35,50,0.10); border-color: var(--nj-border-strong); }
.nj-hamburger span {
  display: block;
  width: 18px;
  height: 2px;
  background: var(--nj-text);
  border-radius: 2px;
  transition: transform var(--nj-t-fast), opacity var(--nj-t-fast);
}
.nj-hamburger[aria-expanded="true"] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.nj-hamburger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.nj-hamburger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

@media (max-width: 1023px) {
  .nj-hamburger {
    display: inline-flex !important;
    z-index: 100;
    /* Pin hamburger to the right of the header on mobile */
    position: absolute !important;
    top: 50% !important;
    right: 16px !important;
    transform: translateY(-50%) !important;
    margin: 0 !important;
  }
  .top_panel .sc_layouts_menu,
  .top_panel .elementor-widget-trx_sc_layouts_menu { display: none !important; }
}

@media (max-width: 767px) {
  .top_panel .elementor-top-section.sc_layouts_row_type_narrow { display: none !important; }
  /* Make sure the main header row is positioning context for absolute hamburger */
  .top_panel .elementor-top-section:not(.sc_layouts_row_type_narrow) {
    position: relative !important;
  }
  .top_panel .elementor-top-section:not(.sc_layouts_row_type_narrow) .elementor-container {
    min-height: 64px;
    padding-left: 16px !important;
    padding-right: 72px !important; /* leave room for hamburger */
    position: relative !important;
  }
  .top_panel .sc_layouts_logo img { max-height: 38px !important; }
  .top_panel .elementor-column:has(.sc_layouts_logo) { min-width: 60% !important; flex: 1 1 auto !important; }
  .top_panel .elementor-top-section:not(.sc_layouts_row_type_narrow) .sc_layouts_search,
  .top_panel .elementor-top-section:not(.sc_layouts_row_type_narrow) .gtranslate_wrapper,
  .top_panel .elementor-top-section:not(.sc_layouts_row_type_narrow) .elementor-widget-gtranslate,
  .top_panel .elementor-top-section:not(.sc_layouts_row_type_narrow) .sc_layouts_cart { display: none !important; }
}

/* Mobile menu panel — keep dark for elegance */
.menu_mobile, .menu_mobile_fullscreen {
  background: rgba(26, 35, 50, 0.98) !important;
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}
.menu_mobile .menu_mobile_inner { color: #fff !important; }
.menu_mobile.opened { height: 100% !important; }
.menu_mobile_overlay.opened { display: block !important; opacity: 1; }

.menu_mobile .menu_mobile_nav { list-style: none; padding: 0; margin: 0; text-align: center; }
.menu_mobile .menu_mobile_nav > li { margin: 0; padding: 0; }
.menu_mobile .menu_mobile_nav > li > a {
  font-family: var(--nj-ff-display) !important;
  font-size: 26px !important;
  color: #fff !important;
  padding: 14px 0 !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  letter-spacing: 0.01em;
  display: inline-block;
}
.menu_mobile .menu_mobile_nav > li > a:hover { color: var(--nj-gold-strong) !important; }
.menu_mobile .menu_mobile_nav > li.menu-item-cta,
.menu_mobile .menu_mobile_nav > li.nj-cta { margin-top: 22px; }
.menu_mobile .menu_mobile_nav > li.menu-item-cta > a,
.menu_mobile .menu_mobile_nav > li.nj-cta > a {
  display: inline-block;
  padding: 14px 28px !important;
  background: var(--nj-grad-blue) !important;
  color: #fff !important;
  border-radius: 999px !important;
  font-family: var(--nj-ff-body) !important;
  font-size: 14px !important;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  box-shadow: var(--nj-sh-blue);
}
.menu_mobile .menu_mobile_close {
  background: rgba(255,255,255,0.10) !important;
  border: 1px solid rgba(255,255,255,0.15) !important;
  border-radius: 50% !important;
  width: 44px; height: 44px;
  top: 16px !important; right: 16px !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff !important;
}
.menu_mobile .menu_mobile_close:before { color: #fff !important; }
.menu_mobile .search_field { background: rgba(255,255,255,0.08) !important; color: #fff !important; border: 1px solid rgba(255,255,255,0.15) !important; }
.menu_mobile .search_field::placeholder { color: rgba(255,255,255,0.5) !important; }
.menu_mobile .sc_layouts_logo img { max-height: 60px !important; }
body.nj-menu-open { overflow: hidden; }

/* Language selector inside mobile menu */
.menu_mobile .nj-mobile-lang {
  display: flex !important;
  justify-content: center !important;
  margin: 24px auto !important;
  width: auto !important;
  text-align: center;
}
.menu_mobile .nj-mobile-lang .gt_switcher-popup,
.menu_mobile .nj-mobile-lang .gt_switcher {
  background: rgba(255,255,255,0.10) !important;
  border: 1px solid rgba(255,255,255,0.18) !important;
  color: #fff !important;
  border-radius: var(--nj-r) !important;
  padding: 10px 18px !important;
  height: auto !important;
  min-width: 140px;
  font-size: 13.5px !important;
  letter-spacing: 0.04em;
}
.menu_mobile .nj-mobile-lang .gt_switcher-popup:hover,
.menu_mobile .nj-mobile-lang .gt_switcher:hover {
  background: rgba(255,255,255,0.18) !important;
}
.menu_mobile .nj-mobile-lang .gt_white_content {
  display: none !important;
  position: absolute !important;
  top: 100% !important;
  left: 50% !important;
  transform: translateX(-50%);
  margin-top: 6px;
  width: 200px;
  max-height: 300px;
  overflow-y: auto;
  background: #1A2332 !important;
  border: 1px solid rgba(255,255,255,0.18) !important;
  border-radius: var(--nj-r) !important;
  color: #fff !important;
  z-index: 9999;
  padding: 6px;
}
.menu_mobile .nj-mobile-lang.nj-lang-open .gt_white_content {
  display: flex !important;
  flex-direction: column !important;
  gap: 2px;
}
.menu_mobile .nj-mobile-lang { position: relative; }
.menu_mobile .nj-mobile-lang .gt_white_content .glink {
  color: rgba(255,255,255,0.85) !important;
}
.menu_mobile .nj-mobile-lang .gt_white_content .glink:hover {
  background: rgba(255,255,255,0.10) !important;
  color: #fff !important;
}

/* -----------------------------------------------------------------------------
   4. FOOTER — 4-column layout (kept dark for visual hierarchy)
   ----------------------------------------------------------------------------- */
.footer_wrap,
.footer_wrap.scheme_dark {
  background-color: #1A2332 !important;
  color: #B8C4D4 !important;
  border-top: 1px solid var(--nj-border);
  padding: 0 !important;
}
/* Footer text colors override (footer is dark) */
.footer_wrap .nj-footer-col h4,
.footer_wrap .nj-footer-brand .nj-footer-logo-text,
.footer_wrap .nj-footer-col p strong,
.footer_wrap .nj-footer-col p b,
.footer_wrap .nj-program-section p strong,
.footer_wrap .nj-program-section p b { color: #FFFFFF !important; }
.footer_wrap .nj-footer-col p,
.footer_wrap .nj-program-section p,
.footer_wrap .nj-footer-copyright,
.footer_wrap .nj-footer-disclaimer p,
.footer_wrap .nj-contact-body,
.footer_wrap .nj-contact-body a,
.footer_wrap .nj-footer-bottom { color: #B8C4D4 !important; }
.footer_wrap .nj-footer-brand .nj-footer-logo-text small { color: #8A97AC !important; }
.footer_wrap .nj-footer-brand-desc {
  color: #C8D2E0 !important;
  font-size: 14px !important;
  line-height: 1.7 !important;
  margin: 0 0 18px !important;
  font-weight: 400 !important;
}
.footer_wrap .nj-footer-disclaimer { color: #8A97AC !important; }
.footer_wrap .nj-footer-disclaimer { border-top-color: rgba(255,255,255,0.10) !important; }
.footer_wrap .nj-footer-bottom { border-top-color: rgba(255,255,255,0.10) !important; }
.footer_wrap .nj-footer-social a { background: rgba(200,168,75,0.18) !important; }
.footer_wrap .nj-footer-social a:hover { background: var(--nj-gold-strong) !important; color: #1A2332 !important; }
.footer_wrap .nj-contact-icon { background: rgba(200,168,75,0.18) !important; }
.nj-footer {
  max-width: var(--nj-container);
  margin: 0 auto;
  padding: 72px var(--nj-gutter) 24px;
}
.nj-footer-grid {
  display: grid;
  grid-template-columns: 1.2fr 1.5fr 1.1fr 1.3fr;
  gap: 40px;
  align-items: start;
}
.nj-footer-col h4 {
  font-family: var(--nj-ff-heading) !important;
  font-size: 20px !important;
  font-weight: 600 !important;
  letter-spacing: 0.06em !important;
  text-transform: none !important;
  color: var(--nj-text) !important;
  margin: 0 0 20px !important;
  line-height: 1.2 !important;
}
.nj-footer-col p {
  color: var(--nj-text-muted) !important;
  font-size: 14px !important;
  line-height: 1.75 !important;
  margin: 0 0 12px !important;
}

/* Col 1 — brand */
.nj-footer-brand .nj-footer-logo {
  display: flex; flex-direction: column; align-items: flex-start; gap: 10px;
  margin-bottom: 20px; text-decoration: none !important;
}
.nj-footer-brand .nj-footer-logo img { max-height: 52px; width: auto; }
.nj-footer-brand .nj-footer-logo-text {
  font-family: var(--nj-ff-display);
  font-size: 18px; line-height: 1.2;
  color: var(--nj-text) !important;
}
.nj-footer-brand .nj-footer-logo-text small {
  display: block;
  font-family: var(--nj-ff-heading);
  font-size: 9.5px; letter-spacing: 0.3em;
  color: var(--nj-text-muted) !important;
  margin-top: 4px; text-transform: uppercase;
}
.nj-footer-social { display: flex; gap: 10px; margin-bottom: 20px; }
.nj-footer-social a {
  display: inline-flex; align-items: center; justify-content: center;
  width: 38px; height: 38px; border-radius: 50%;
  background: rgba(200,168,75,0.1);
  color: var(--nj-gold) !important;
  transition: all var(--nj-t-fast);
}
.nj-footer-social a:hover {
  background: var(--nj-gold); color: var(--nj-bg) !important;
  transform: translateY(-2px);
}
.nj-footer-social svg { width: 18px; height: 18px; fill: currentColor; }
.nj-footer-copyright { font-size: 13px !important; color: var(--nj-text-muted) !important; margin: 0 0 14px !important; }
.nj-footer-legal { list-style: none; padding: 0; margin: 0; }
.nj-footer-legal li { margin-bottom: 6px; }
.nj-footer-legal a {
  font-size: 13px !important; color: var(--nj-gold) !important;
  text-decoration: none !important; transition: color var(--nj-t-fast);
}
.nj-footer-legal a:hover { color: var(--nj-gold-strong) !important; text-decoration: underline; }

/* Contact items */
.nj-contact-item {
  display: flex; gap: 14px; align-items: flex-start; margin-bottom: 18px;
}
.nj-contact-item:last-child { margin-bottom: 0; }
.nj-contact-icon {
  flex-shrink: 0; width: 32px; height: 32px; border-radius: 50%;
  background: rgba(200,168,75,0.1); color: var(--nj-gold);
  display: inline-flex; align-items: center; justify-content: center;
}
.nj-contact-icon svg { width: 15px; height: 15px; fill: currentColor; }
.nj-contact-body { font-size: 14px !important; line-height: 1.6; color: var(--nj-text-soft) !important; }
.nj-contact-body a { color: var(--nj-text-soft) !important; text-decoration: none !important; transition: color var(--nj-t-fast); }
.nj-contact-body a:hover { color: var(--nj-gold) !important; }

/* Program */
.nj-program-section { margin-bottom: 18px; }
.nj-program-title {
  font-family: var(--nj-ff-heading) !important;
  font-size: 14px !important; font-weight: 700 !important;
  letter-spacing: 0.08em; color: var(--nj-gold) !important;
  margin: 0 0 10px !important; text-transform: uppercase;
}
.nj-program-section p { font-size: 13.5px !important; line-height: 1.6 !important; margin: 0 0 8px !important; color: var(--nj-text-muted) !important; }
.nj-program-section p strong, .nj-program-section p b { color: var(--nj-text) !important; font-weight: 600 !important; }

/* Footer disclaimer */
.nj-footer-disclaimer {
  max-width: var(--nj-container);
  margin: 0 auto;
  padding: 24px var(--nj-gutter);
  border-top: 1px solid var(--nj-border);
  font-size: 11.5px; line-height: 1.7;
  color: var(--nj-text-muted); opacity: 0.85;
}
.nj-footer-disclaimer details { cursor: pointer; }
.nj-footer-disclaimer summary {
  font-family: var(--nj-ff-heading);
  font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--nj-gold); margin-bottom: 8px;
  list-style: none; user-select: none;
  display: inline-flex; align-items: center; gap: 8px;
}
.nj-footer-disclaimer summary::after { content: "\25BE"; transition: transform var(--nj-t-fast); display: inline-block; }
.nj-footer-disclaimer details[open] summary::after { transform: rotate(180deg); }
.nj-footer-disclaimer summary::-webkit-details-marker { display: none; }
.nj-footer-disclaimer p { color: var(--nj-text-muted) !important; font-size: 12px !important; line-height: 1.75 !important; margin: 0 0 10px !important; }
.nj-footer-disclaimer a { color: var(--nj-gold) !important; text-decoration: underline !important; }

/* Footer bottom bar */
.nj-footer-bottom {
  max-width: var(--nj-container);
  margin: 0 auto;
  padding: 16px var(--nj-gutter) 28px;
  border-top: 1px solid var(--nj-border);
  display: flex; justify-content: space-between; align-items: center;
  font-size: 12px; color: var(--nj-text-muted); gap: 20px;
}
.nj-footer-bottom .nj-footer-muted { opacity: 0.7; }

/* Footer responsive */
@media (max-width: 1024px) { .nj-footer-grid { grid-template-columns: 1fr 1fr; gap: 40px; } }
@media (max-width: 600px) {
  .nj-footer { padding-top: 48px; }
  .nj-footer-grid { grid-template-columns: 1fr; gap: 32px; }
  .nj-footer-bottom { flex-direction: column; align-items: flex-start; gap: 8px; }
}

/* Hide original Elementor footer content since we inject our own */
.footer_custom .elementor { display: none !important; }

/* -----------------------------------------------------------------------------
   5. HERO SECTION — RevSlider container + overlay
   ----------------------------------------------------------------------------- */
.revslider-initialised,
.rev_slider_wrapper,
#rev_slider_7_1_wrapper,
.rev_slider_7_1_wrapper {
  position: relative !important;
}
/* Overlay on RevSlider to darken and add brand gradient */
.revslider-initialised::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(26,35,50,0.2) 0%, rgba(26,35,50,0.5) 60%, rgba(26,35,50,0.85) 100%);
  pointer-events: none;
  z-index: 2;
}

/* Hero booking section below slider */
.elementor-element-28fd796f,
.elementor-element-c7e20c4 {
  background: linear-gradient(180deg, var(--nj-bg) 0%, var(--nj-bg-raised) 100%) !important;
}

/* -----------------------------------------------------------------------------
   6. WooCommerce PRODUCT GRID + BOOKING SECTION
   ----------------------------------------------------------------------------- */
.woocommerce ul.products,
.woocommerce-page ul.products {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)) !important;
  gap: 20px !important;
}
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
  background: var(--nj-bg-card) !important;
  border: 1px solid var(--nj-border) !important;
  border-radius: var(--nj-r-lg) !important;
  overflow: hidden !important;
  padding: 20px !important;
  transition: transform var(--nj-t), border-color var(--nj-t), box-shadow var(--nj-t) !important;
  margin: 0 !important;
  width: auto !important;
  float: none !important;
}
.woocommerce ul.products li.product:hover,
.woocommerce-page ul.products li.product:hover {
  transform: translateY(-4px);
  border-color: var(--nj-gold) !important;
  box-shadow: var(--nj-sh-md);
}
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce-page ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--nj-ff-heading) !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  color: var(--nj-text) !important;
}
.woocommerce ul.products li.product .price,
.woocommerce-page ul.products li.product .price {
  color: var(--nj-gold-strong) !important;
  font-family: var(--nj-ff-heading) !important;
  font-size: 18px !important;
  font-weight: 700 !important;
}

/* WooCommerce Add to Cart button */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce #content input.button,
.woocommerce-page a.button,
.woocommerce-page button.button,
.woocommerce-page input.button,
.woocommerce-page #respond input#submit {
  background: var(--nj-grad-blue) !important;
  color: #fff !important;
  border: none !important;
  border-radius: var(--nj-r) !important;
  font-family: var(--nj-ff-body) !important;
  font-weight: 600 !important;
  font-size: 13px !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  padding: 12px 20px !important;
  transition: all var(--nj-t-fast) !important;
  box-shadow: var(--nj-sh-blue);
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce a.button.alt,
.woocommerce button.button.alt {
  background: linear-gradient(135deg, #245A96 0%, #163D70 100%) !important;
  transform: translateY(-1px);
  box-shadow: 0 8px 20px rgba(43,108,176,.45) !important;
}

/* WooCommerce cart & checkout */
.woocommerce,
.woocommerce-page,
.woocommerce table.shop_table {
  color: var(--nj-text-soft) !important;
}
.woocommerce table.shop_table {
  background: var(--nj-bg-card) !important;
  border: 1px solid var(--nj-border) !important;
  border-radius: var(--nj-r-lg) !important;
  overflow: hidden;
}
.woocommerce table.shop_table th {
  background: var(--nj-bg-raised) !important;
  color: var(--nj-text) !important;
  font-family: var(--nj-ff-heading) !important;
  font-size: 12px !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  border-color: var(--nj-border) !important;
}
.woocommerce table.shop_table td {
  border-color: var(--nj-border) !important;
  color: var(--nj-text-soft) !important;
}
.woocommerce table.shop_table .product-name a {
  color: var(--nj-text) !important;
  font-family: var(--nj-ff-body) !important;
  font-weight: 600 !important;
}
.woocommerce table.shop_table .amount { color: var(--nj-gold-strong) !important; font-weight: 700 !important; }

/* Checkout form */
.woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout .woocommerce-shipping-fields h3,
.woocommerce-checkout #order_review_heading {
  font-family: var(--nj-ff-heading) !important;
  font-size: 18px !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--nj-text) !important;
  margin-bottom: 20px !important;
}
.woocommerce-checkout .input-text,
.woocommerce-checkout select,
.woocommerce-checkout textarea {
  background: var(--nj-bg-card) !important;
  border: 1px solid var(--nj-border) !important;
  border-radius: var(--nj-r) !important;
  color: var(--nj-text) !important;
  font-family: var(--nj-ff-body) !important;
  font-size: 15px !important;
  padding: 12px 14px !important;
  transition: border-color var(--nj-t-fast), box-shadow var(--nj-t-fast) !important;
}
.woocommerce-checkout .input-text:focus,
.woocommerce-checkout select:focus,
.woocommerce-checkout textarea:focus {
  border-color: var(--nj-gold) !important;
  box-shadow: 0 0 0 3px var(--nj-gold-soft) !important;
  outline: none !important;
}
.woocommerce-checkout label { color: var(--nj-text-muted) !important; font-family: var(--nj-ff-body) !important; }

/* Order review */
.woocommerce #order_review { background: var(--nj-bg-card) !important; border: 1px solid var(--nj-border) !important; border-radius: var(--nj-r-lg) !important; padding: 24px !important; }

/* WooCommerce notices */
.woocommerce-message,
.woocommerce-error,
.woocommerce-info {
  background: var(--nj-bg-card) !important;
  border-color: var(--nj-gold) !important;
  color: var(--nj-text-soft) !important;
  border-radius: var(--nj-r) !important;
}
.woocommerce-error { border-color: #E11D2E !important; }
.woocommerce-info { border-color: var(--nj-blue) !important; }

/* -----------------------------------------------------------------------------
   7. BLOG / POST CARDS
   ----------------------------------------------------------------------------- */
.trx_sc_blogger .post_item,
.elementor-widget-trx_sc_blogger .post_item {
  background: var(--nj-bg-card) !important;
  border: 1px solid var(--nj-border) !important;
  border-radius: var(--nj-r-lg) !important;
  overflow: hidden !important;
  transition: transform var(--nj-t), border-color var(--nj-t), box-shadow var(--nj-t) !important;
  display: flex !important;
  flex-direction: column !important;
  height: 100%;
}
.trx_sc_blogger .post_item:hover,
.elementor-widget-trx_sc_blogger .post_item:hover {
  transform: translateY(-4px);
  border-color: var(--nj-gold);
  box-shadow: var(--nj-sh-lg);
}
.trx_sc_blogger .post_featured,
.elementor-widget-trx_sc_blogger .post_featured {
  overflow: hidden !important; margin: 0 !important; aspect-ratio: 16/9;
}
.trx_sc_blogger .post_featured img,
.elementor-widget-trx_sc_blogger .post_featured img {
  width: 100% !important; height: 100% !important; object-fit: cover !important;
  transition: transform var(--nj-t-slow);
}
.trx_sc_blogger .post_item:hover .post_featured img,
.elementor-widget-trx_sc_blogger .post_item:hover .post_featured img { transform: scale(1.07); }
.trx_sc_blogger .post_featured .view,
.elementor-widget-trx_sc_blogger .post_featured .view { display: none !important; }
.trx_sc_blogger .post_header,
.elementor-widget-trx_sc_blogger .post_header { padding: 20px 24px 10px !important; }

/* Archive/category cards — apply padding to post_header so meta and title don't hug the edge */
body.archive .posts_container .post_item .post_header,
body.nj-listing-page .posts_container .post_item .post_header,
body.category .posts_container .post_item .post_header,
body.tag .posts_container .post_item .post_header {
  padding: 22px 22px 4px !important;
}
body.archive .posts_container .post_item .post_title,
body.nj-listing-page .posts_container .post_item .post_title,
body.category .posts_container .post_item .post_title,
body.tag .posts_container .post_item .post_title {
  padding: 0 !important;
  margin: 8px 0 0 !important;
}
.trx_sc_blogger .post_title,
.elementor-widget-trx_sc_blogger .post_title {
  font-size: 17px !important; font-weight: 600 !important;
  line-height: 1.32 !important; margin: 0 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
}
.trx_sc_blogger .post_title a,
.elementor-widget-trx_sc_blogger .post_title a {
  color: var(--nj-text) !important;
  font-family: var(--nj-ff-heading) !important;
  text-decoration: none !important;
  transition: color var(--nj-t-fast) !important;
}
.trx_sc_blogger .post_item:hover .post_title a,
.elementor-widget-trx_sc_blogger .post_item:hover .post_title a { color: var(--nj-gold-strong) !important; }
.trx_sc_blogger .post_content,
.elementor-widget-trx_sc_blogger .post_content {
  padding: 0 24px 22px !important;
  color: var(--nj-text-soft) !important;
  font-size: 14px !important; line-height: 1.65 !important;
  flex: 1; display: flex; flex-direction: column;
}
.trx_sc_blogger .post_content a.more-link,
.elementor-widget-trx_sc_blogger .post_content a.more-link {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  color: var(--nj-blue) !important;
  background: var(--nj-blue-soft) !important;
  border: 1px solid rgba(31,78,140,0.20) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  padding: 10px 18px !important;
  border-radius: 999px !important;
  margin-top: 14px !important;
  text-decoration: none !important;
  align-self: flex-start !important;
  line-height: 1.2 !important;
  height: auto !important;
  transition: gap var(--nj-t-fast), color var(--nj-t-fast), background var(--nj-t-fast), border-color var(--nj-t-fast) !important;
}
.trx_sc_blogger .post_content a.more-link::before,
.elementor-widget-trx_sc_blogger .post_content a.more-link::before {
  content: none !important; display: none !important;
}
.trx_sc_blogger .post_content a.more-link::after,
.elementor-widget-trx_sc_blogger .post_content a.more-link::after {
  content: none !important;
  display: none !important;
}
.trx_sc_blogger .post_content a.more-link:hover,
.elementor-widget-trx_sc_blogger .post_content a.more-link:hover {
  background: var(--nj-blue) !important;
  color: #fff !important;
  border-color: var(--nj-blue) !important; gap: 14px !important;
}
.trx_sc_blogger .post_content a.more-link:hover::after,
.elementor-widget-trx_sc_blogger .post_content a.more-link:hover::after {
  color: #fff !important;
}
.trx_sc_blogger .post_content a.more-link:hover::after,
.elementor-widget-trx_sc_blogger .post_content a.more-link:hover::after { transform: translateX(2px) !important; }

/* Post grid — adapts to column-1_2 (2col) or column-1_3 (3col) */
.trx_sc_blogger .posts_container,
.elementor-widget-trx_sc_blogger .posts_container {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 24px !important; margin-right: 0 !important;
}
.trx_sc_blogger .posts_container:has(> .column-1_3),
.elementor-widget-trx_sc_blogger .posts_container:has(> .column-1_3) {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}
.trx_sc_blogger .posts_container:has(> .column-1_4),
.elementor-widget-trx_sc_blogger .posts_container:has(> .column-1_4) {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}
.trx_sc_blogger .posts_container > [class*="column-"],
.elementor-widget-trx_sc_blogger .posts_container > [class*="column-"] {
  width: 100% !important; max-width: 100% !important;
  flex: 1 1 auto !important; float: none !important;
  padding: 0 !important; margin: 0 !important;
}
@media (max-width: 1023px) {
  .trx_sc_blogger .posts_container,
  .elementor-widget-trx_sc_blogger .posts_container,
  .trx_sc_blogger .posts_container:has(> .column-1_3),
  .elementor-widget-trx_sc_blogger .posts_container:has(> .column-1_3),
  .trx_sc_blogger .posts_container:has(> .column-1_4),
  .elementor-widget-trx_sc_blogger .posts_container:has(> .column-1_4) {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 640px) {
  .trx_sc_blogger .posts_container,
  .elementor-widget-trx_sc_blogger .posts_container,
  .trx_sc_blogger .posts_container:has(> .column-1_3),
  .elementor-widget-trx_sc_blogger .posts_container:has(> .column-1_3),
  .trx_sc_blogger .posts_container:has(> .column-1_4),
  .elementor-widget-trx_sc_blogger .posts_container:has(> .column-1_4) {
    grid-template-columns: 1fr !important; gap: 20px !important;
  }
}

/* -----------------------------------------------------------------------------
   8. FAQ ACCORDION
   ----------------------------------------------------------------------------- */
.elementor-widget-accordion .elementor-accordion-item {
  background: var(--nj-bg-card) !important;
  border: 1px solid var(--nj-border) !important;
  border-radius: var(--nj-r-md) !important;
  margin-bottom: 12px !important;
  overflow: hidden;
  transition: border-color var(--nj-t-fast);
}
.elementor-widget-accordion .elementor-accordion-item:hover { border-color: var(--nj-border-strong) !important; }
.elementor-widget-accordion .elementor-tab-title {
  padding: 20px 24px !important;
  background: transparent !important;
  border: none !important;
  color: var(--nj-text) !important;
  font-family: var(--nj-ff-body) !important;
  font-weight: 600 !important; font-size: 16px !important;
  cursor: pointer;
  transition: background var(--nj-t-fast) !important;
}
.elementor-widget-accordion .elementor-tab-title a { color: inherit !important; text-decoration: none !important; }
.elementor-widget-accordion .elementor-tab-title:hover { background: rgba(26,35,50,0.03) !important; }
.elementor-widget-accordion .elementor-tab-title.elementor-active {
  color: var(--nj-gold) !important;
  border-bottom: 1px solid var(--nj-border) !important;
}
.elementor-widget-accordion .elementor-accordion-icon { color: var(--nj-text-muted) !important; }
.elementor-widget-accordion .elementor-tab-title.elementor-active .elementor-accordion-icon { color: var(--nj-gold) !important; }
.elementor-widget-accordion .elementor-tab-content {
  padding: 18px 24px 22px !important;
  color: var(--nj-text-soft) !important;
  font-size: 15px !important; line-height: 1.7 !important;
  background: rgba(0,0,0,0.15) !important;
}

/* -----------------------------------------------------------------------------
   9. TABS
   ----------------------------------------------------------------------------- */
.elementor-widget-tabs .elementor-tabs-wrapper { border-bottom: 1px solid var(--nj-border) !important; gap: 4px; }
.elementor-widget-tabs .elementor-tab-title {
  padding: 14px 24px !important; background: transparent !important;
  border: none !important; color: var(--nj-text-muted) !important;
  font-weight: 600 !important; font-size: 14px !important;
  letter-spacing: 0.04em !important; text-transform: uppercase !important;
  position: relative; transition: color var(--nj-t-fast); cursor: pointer;
}
.elementor-widget-tabs .elementor-tab-title:hover { color: var(--nj-text) !important; }
.elementor-widget-tabs .elementor-tab-title.elementor-active { color: var(--nj-gold) !important; }
.elementor-widget-tabs .elementor-tab-title.elementor-active::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -1px;
  height: 2px; background: var(--nj-gold);
}
.elementor-widget-tabs .elementor-tab-content {
  padding: 28px 24px !important;
  background: var(--nj-bg-card);
  border: 1px solid var(--nj-border) !important;
  border-top: none !important;
  border-radius: 0 0 var(--nj-r-md) var(--nj-r-md);
  color: var(--nj-text-soft) !important;
  font-size: 15px !important; line-height: 1.75 !important;
}

/* -----------------------------------------------------------------------------
   10. CONTACT FORMS
   ----------------------------------------------------------------------------- */
.wpcf7 form input,
.wpcf7 form textarea,
.wpcf7 form select {
  background: var(--nj-bg-card) !important;
  border: 1px solid var(--nj-border) !important;
  color: var(--nj-text) !important;
  padding: 12px 14px !important;
  border-radius: var(--nj-r) !important;
  font-family: var(--nj-ff-body) !important;
  font-size: 15px !important;
  transition: all var(--nj-t-fast) !important;
  width: 100% !important;
}
.wpcf7 form input:focus,
.wpcf7 form textarea:focus {
  border-color: var(--nj-gold) !important;
  background: var(--nj-bg-raised) !important;
  box-shadow: 0 0 0 3px var(--nj-gold-soft) !important;
  outline: none;
}
.wpcf7 form input[type=submit] {
  background: var(--nj-grad-blue) !important;
  color: #fff !important;
  border: none !important;
  padding: 14px 28px !important;
  font-weight: 700 !important; letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
  box-shadow: var(--nj-sh-blue) !important;
  width: auto !important;
}
.wpcf7 form input[type=submit]:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 24px rgba(43,108,176,.45) !important;
}

/* -----------------------------------------------------------------------------
   11. ARCHIVE / CATEGORY PAGES
   ----------------------------------------------------------------------------- */
body.blog_mode_blog .page_content_wrap,
body.blog_mode_home .page_content_wrap,
body.nj-listing-page .page_content_wrap,
.archive .page_content_wrap {
  background: var(--nj-bg) !important;
}
body.archive .sidebar, body.nj-listing-page .sidebar,
body.blog_mode_blog .sidebar, body.blog_mode_home .sidebar,
body.category .sidebar, body.tag .sidebar { display: none !important; }
body.archive .content, body.nj-listing-page .content,
body.blog_mode_blog .content, body.blog_mode_home .content,
body.category .content, body.tag .content {
  width: 100% !important; max-width: 100% !important; float: none !important;
}
body.archive .content_wrap, body.nj-listing-page .content_wrap,
body.blog_mode_blog .content_wrap, body.blog_mode_home .content_wrap,
body.category .content_wrap, body.tag .content_wrap {
  max-width: var(--nj-container) !important;
  padding-left: var(--nj-gutter) !important;
  padding-right: var(--nj-gutter) !important;
}

/* 3-up grid for archives */
body.archive .posts_container,
body.nj-listing-page .posts_container,
body.category .posts_container,
body.tag .posts_container {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 28px !important;
}
body.archive .posts_container > [class*="column-"],
body.nj-listing-page .posts_container > [class*="column-"],
body.category .posts_container > [class*="column-"],
body.tag .posts_container > [class*="column-"] {
  width: 100% !important; max-width: 100% !important;
  flex: 0 0 100% !important; float: none !important;
  padding: 0 !important; margin: 0 !important;
}
body.archive .posts_container .post_item,
body.nj-listing-page .posts_container .post_item,
body.category .posts_container .post_item,
body.tag .posts_container .post_item {
  margin: 0 !important; width: 100% !important; float: none !important; clear: none !important;
  background: var(--nj-surface) !important;
  border: 1px solid var(--nj-border-strong) !important;
  border-radius: var(--nj-r-lg) !important; overflow: hidden !important;
  display: flex !important; flex-direction: column !important; height: 100% !important;
  transition: transform var(--nj-t-fast), border-color var(--nj-t-fast), box-shadow var(--nj-t-fast);
}
body.archive .posts_container .post_item:hover,
body.nj-listing-page .posts_container .post_item:hover,
body.category .posts_container .post_item:hover,
body.tag .posts_container .post_item:hover {
  transform: translateY(-3px); border-color: var(--nj-gold);
  box-shadow: 0 12px 28px rgba(26,35,50,0.12);
}

/* Hide Ozeum's empty sticky label that creates a 34px gap above sticky cards */
body .post_item.sticky .post_label.label_sticky,
body .post_label.label_sticky { display: none !important; }
/* Sticky wrapper: zero out only top padding (was creating gap), keep sides/bottom for content padding parity */
.post_layout_classic.sticky .post_wrapper,
.post_layout_classic_2.sticky .post_wrapper,
body .post_item.sticky .post_wrapper { padding: 0 !important; }
/* Restore inner content padding for sticky cards so text doesn't hug card edges */
body .post_item.sticky .post_header,
body .post_item.sticky .post_content {
  padding-left: 22px !important;
  padding-right: 22px !important;
}
body .post_item.sticky .post_header { padding-top: 22px !important; padding-bottom: 4px !important; }
body .post_item.sticky .post_content { padding-top: 12px !important; padding-bottom: 22px !important; }

/* Override Ozeum's dark sticky post background — light theme keeps white card */
.scheme_default .post_layout_chess.sticky,
.scheme_default .post_layout_classic.sticky .post_wrapper,
.scheme_default .post_layout_excerpt.sticky .post_wrapper,
body .post_item.sticky,
body .post_item.sticky .post_wrapper,
body .post_item.sticky .post_content,
body .post_item.sticky .post_header {
  background: var(--nj-surface) !important;
  color: var(--nj-text) !important;
}
body .post_item.sticky .post_title,
body .post_item.sticky .post_title a,
body .post_item.sticky h2,
body .post_item.sticky h3 {
  color: var(--nj-text) !important;
}
body .post_item.sticky .post_content,
body .post_item.sticky .post_content_inner,
body .post_item.sticky p {
  color: var(--nj-muted) !important;
}
body .post_item.sticky .post_meta,
body .post_item.sticky .post_meta a,
body .post_item.sticky .nj-card-meta {
  color: var(--nj-gold) !important;
}
body.archive .posts_container .post_item .post_featured,
body.nj-listing-page .posts_container .post_item .post_featured,
body.category .posts_container .post_item .post_featured,
body.tag .posts_container .post_item .post_featured {
  width: 100% !important; aspect-ratio: 16/10 !important;
  margin: 0 !important; overflow: hidden !important;
}
body.archive .posts_container .post_item .post_featured img,
body.nj-listing-page .posts_container .post_item .post_featured img,
body.category .posts_container .post_item .post_featured img,
body.tag .posts_container .post_item .post_featured img {
  width: 100% !important; height: 100% !important;
  object-fit: cover !important; transition: transform var(--nj-t-slow);
}
body.archive .posts_container .post_item:hover .post_featured img,
body.nj-listing-page .posts_container .post_item:hover .post_featured img,
body.category .posts_container .post_item:hover .post_featured img,
body.tag .posts_container .post_item:hover .post_featured img { transform: scale(1.05); }
body.archive .posts_container .post_item .post_content,
body.nj-listing-page .posts_container .post_item .post_content,
body.category .posts_container .post_item .post_content,
body.tag .posts_container .post_item .post_content {
  padding: 12px 22px 22px !important;
  display: flex !important; flex-direction: column !important; flex: 1 1 auto !important;
  gap: 12px !important;
}
body.archive .posts_container .post_item .post_content_inner,
body.nj-listing-page .posts_container .post_item .post_content_inner,
body.category .posts_container .post_item .post_content_inner,
body.tag .posts_container .post_item .post_content_inner {
  flex: 0 1 auto !important;
  margin: 0 !important;
}
/* Push read-more to bottom only when content is short */
body.archive .posts_container .post_item .more-link,
body.nj-listing-page .posts_container .post_item .more-link,
body.category .posts_container .post_item .more-link,
body.tag .posts_container .post_item .more-link {
  margin-top: auto !important;
}
body.archive .posts_container .post_item .post_title,
body.nj-listing-page .posts_container .post_item .post_title,
body.category .posts_container .post_item .post_title,
body.tag .posts_container .post_item .post_title {
  font-family: var(--nj-ff-heading) !important;
  font-size: 18px !important; line-height: 1.28 !important;
  margin: 8px 0 0 0 !important; color: var(--nj-text) !important;
}
body.archive .posts_container .post_item .post_title a,
body.nj-listing-page .posts_container .post_item .post_title a,
body.category .posts_container .post_item .post_title a,
body.tag .posts_container .post_item .post_title a {
  color: var(--nj-text) !important; text-decoration: none !important;
}
body.archive .posts_container .post_item .post_title a:hover,
body.nj-listing-page .posts_container .post_item .post_title a:hover,
body.category .posts_container .post_item .post_title a:hover,
body.tag .posts_container .post_item .post_title a:hover { color: var(--nj-gold) !important; }
body.archive .posts_container .post_item .post_meta,
body.nj-listing-page .posts_container .post_item .post_meta,
body.category .posts_container .post_item .post_meta,
body.tag .posts_container .post_item .post_meta {
  font-family: var(--nj-ff-body) !important; font-size: 11px !important;
  letter-spacing: 0.22em !important; text-transform: uppercase !important;
  color: var(--nj-gold-strong) !important; margin: 0 0 12px 0 !important;
}
body.archive .posts_container .post_item .post_meta a,
body.nj-listing-page .posts_container .post_item .post_meta a,
body.category .posts_container .post_item .post_meta a,
body.tag .posts_container .post_item .post_meta a { color: var(--nj-gold-strong) !important; }
body.archive .posts_container .post_item .post_content_inner,
body.nj-listing-page .posts_container .post_item .post_content_inner,
body.category .posts_container .post_item .post_content_inner,
body.tag .posts_container .post_item .post_content_inner {
  font-size: 14.5px !important; line-height: 1.6 !important;
  color: var(--nj-muted) !important; flex: 1 1 auto !important;
}
body.archive .posts_container .post_item .more-link,
body.nj-listing-page .posts_container .post_item .more-link,
body.category .posts_container .post_item .more-link,
body.tag .posts_container .post_item .more-link {
  margin-top: 14px !important; align-self: flex-start !important;
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
  gap: 10px !important;
  color: var(--nj-blue) !important;
  background: var(--nj-blue-soft) !important;
  border: 1px solid rgba(31,78,140,0.20) !important;
  font-size: 12px !important; font-weight: 700 !important;
  letter-spacing: 0.18em !important; text-transform: uppercase !important;
  text-decoration: none !important; padding: 10px 18px !important;
  border-radius: 999px !important;
  line-height: 1.2 !important;
  height: auto !important;
  transition: gap var(--nj-t-fast), color var(--nj-t-fast), background var(--nj-t-fast), border-color var(--nj-t-fast) !important;
}
/* Kill any ::before pseudo on the more-link (Ozeum default underline) */
body.archive .posts_container .post_item .more-link::before,
body.nj-listing-page .posts_container .post_item .more-link::before,
body.category .posts_container .post_item .more-link::before,
body.tag .posts_container .post_item .more-link::before,
.trx_sc_blogger .post_content a.more-link::before,
.elementor-widget-trx_sc_blogger .post_content a.more-link::before {
  content: none !important;
  display: none !important;
  background: none !important;
  width: 0 !important;
  height: 0 !important;
}
body.archive .posts_container .post_item .more-link:hover,
body.nj-listing-page .posts_container .post_item .more-link:hover,
body.category .posts_container .post_item .more-link:hover,
body.tag .posts_container .post_item .more-link:hover {
  background: var(--nj-blue) !important;
  color: #fff !important;
  border-color: var(--nj-blue) !important; gap: 14px !important;
}
body.archive .posts_container .post_item .more-link:hover::after,
body.nj-listing-page .posts_container .post_item .more-link:hover::after,
body.category .posts_container .post_item .more-link:hover::after,
body.tag .posts_container .post_item .more-link:hover::after {
  color: #fff !important;
}
/* Hide ::after pseudo when SVG arrow is present (injected by JS) */
body.archive .posts_container .post_item .more-link::after,
body.nj-listing-page .posts_container .post_item .more-link::after,
body.category .posts_container .post_item .more-link::after,
body.tag .posts_container .post_item .more-link::after {
  content: none !important;
  display: none !important;
}
.nj-card-readmore-arrow,
.more-link .nj-card-readmore-arrow {
  display: inline-block !important;
  flex: 0 0 14px !important;
  width: 14px !important;
  height: 14px !important;
  align-self: center !important;
  vertical-align: middle !important;
  margin: 0 !important;
  color: inherit !important;
  stroke: currentColor !important;
  transition: transform var(--nj-t-fast) !important;
}
.more-link:hover .nj-card-readmore-arrow { transform: translateX(2px); }
body.archive .posts_container .post_item .more-link:hover::after,
body.nj-listing-page .posts_container .post_item .more-link:hover::after,
body.category .posts_container .post_item .more-link:hover::after,
body.tag .posts_container .post_item .more-link:hover::after { transform: translateX(2px) !important; }

@media (max-width: 1024px) {
  body.archive .posts_container, body.nj-listing-page .posts_container,
  body.category .posts_container, body.tag .posts_container {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 22px !important;
  }
}
@media (max-width: 640px) {
  body.archive .posts_container, body.nj-listing-page .posts_container,
  body.category .posts_container, body.tag .posts_container {
    grid-template-columns: 1fr !important;
  }
}

/* DC-card-meta & readmore pill (injected by JS/PHP) */
.nj-card-meta {
  display: inline-flex; align-items: center; gap: 10px;
  font-size: 11px !important; letter-spacing: 0.22em !important;
  text-transform: uppercase !important; color: var(--nj-gold-strong) !important;
  margin: 0 0 10px 0 !important; line-height: 1;
}
.nj-card-meta .nj-card-meta-sep { width: 3px; height: 3px; border-radius: 50%; background: var(--nj-border); flex: none; }
.nj-card-readmore {
  display: inline-flex !important; align-items: center !important; gap: 10px !important;
  color: var(--nj-text) !important;
  background: rgba(26,35,50,0.04) !important;
  border: 1px solid var(--nj-border) !important;
  font-size: 12px !important; font-weight: 600 !important;
  letter-spacing: 0.18em !important; text-transform: uppercase !important;
  text-decoration: none !important; padding: 10px 18px !important;
  border-radius: 999px !important; margin-top: 14px !important;
  transition: gap var(--nj-t-fast), color var(--nj-t-fast), background var(--nj-t-fast), border-color var(--nj-t-fast) !important;
  width: auto !important; align-self: flex-start !important;
}
.nj-card-readmore::after {
  content: "" !important; display: inline-block !important;
  width: 14px !important; height: 14px !important;
  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231F4E8C' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><line x1='5' y1='12' x2='19' y2='12'/><polyline points='13 6 19 12 13 18'/></svg>") no-repeat center/contain !important;
  transition: transform var(--nj-t-fast) !important;
}
.nj-card-readmore:hover { background: rgba(200,168,75,0.12) !important; border-color: var(--nj-gold) !important; gap: 14px !important; }
.nj-card-readmore:hover::after { transform: translateX(2px) !important; }

/* -----------------------------------------------------------------------------
   12. SINGLE POST PAGE
   ----------------------------------------------------------------------------- */
body.single .sidebar { display: none !important; }
body.single .content { width: 100% !important; max-width: 100% !important; float: none !important; }
body.single .content_wrap { max-width: 960px; margin: 0 auto; }

/* Hide original Ozeum featured image when our hero is injected */
body.single-post:has(.nj-single-hero) .post_item_single > .post_featured,
body.single-post:has(.nj-single-hero) .post_item_single > .post_header,
body.single-post:has(.nj-single-hero) .post_item > .post_featured.post_featured_default,
body.single-post:has(.nj-single-hero) article > .post_featured { display: none !important; }

/* Single post hero */
body.single-post .nj-single-hero {
  position: relative; width: 100%;
  min-height: clamp(280px, 44vw, 520px);
  margin: 0 0 32px; overflow: hidden;
  border-radius: var(--nj-r-lg); background: #FFFFFF;
  display: flex; align-items: flex-end;
}
body.single-post .nj-single-hero-media {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  transform: scale(1.02); transition: transform 0.8s ease;
}
body.single-post .nj-single-hero:hover .nj-single-hero-media { transform: scale(1.06); }
body.single-post .nj-single-hero-scrim {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(10,15,25,0) 0%, rgba(10,15,25,.45) 55%, rgba(10,15,25,.92) 100%);
  pointer-events: none;
}
body.single-post .nj-single-hero-content {
  position: relative; z-index: 2;
  padding: 36px clamp(20px, 5vw, 56px); width: 100%;
}
body.single-post .nj-single-hero-title {
  font-family: var(--nj-ff-display) !important;
  font-size: clamp(2rem, 4vw, 3.4rem) !important;
  line-height: 1.15 !important; color: #fff !important;
  margin: 8px 0 0 !important; letter-spacing: 0.01em !important;
  max-width: 1000px;
}
body.single-post .nj-single-hero-meta {
  display: inline-flex; align-items: center; gap: 10px;
  font-size: 11.5px; letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--nj-gold-strong);
}
body.single-post .nj-single-cat {
  color: #fff !important; background: rgba(43,108,176,0.88);
  padding: 5px 12px; border-radius: 999px;
  text-decoration: none !important; font-weight: 600;
}
body.single-post .nj-single-cat:hover { filter: brightness(1.1); }
body.single-post .nj-single-meta-sep { width: 3px; height: 3px; border-radius: 50%; background: rgba(26,35,50,0.4); flex: none; }

body.single-post .page_content_wrap .content,
body.single-post .content_wrap .content {
  max-width: 1080px !important; width: 100% !important;
  margin: 0 auto !important; padding: 12px clamp(20px, 5vw, 48px) 56px !important;
}
body.single-post .post_content_single,
body.single-post .page_content_wrap .content > p {
  font-size: 16.5px !important; line-height: 1.85 !important;
  color: var(--nj-text-soft) !important;
}
body.single-post .page_content_wrap h1, body.single-post .page_content_wrap h2,
body.single-post .page_content_wrap h3, body.single-post .page_content_wrap h4 {
  font-family: var(--nj-ff-heading) !important;
  color: var(--nj-text) !important; letter-spacing: 0.01em !important;
  margin-top: 40px !important; margin-bottom: 16px !important;
}
body.single-post .page_content_wrap blockquote {
  border-left: 3px solid var(--nj-gold) !important;
  padding: 14px 22px !important; margin: 28px 0 !important;
  background: rgba(200,168,75,0.05) !important;
  border-radius: 0 var(--nj-r) var(--nj-r) 0 !important;
  color: var(--nj-text) !important; font-style: italic !important;
}

/* Sidebar */
.sidebar_inner { background: transparent !important; border: none !important; padding: 0 !important; }
.sidebar_inner .widget {
  background: var(--nj-bg-card) !important;
  border: 1px solid var(--nj-border) !important;
  border-radius: var(--nj-r-lg) !important;
  padding: 24px !important; margin-bottom: 24px !important;
}
.sidebar_inner .widget_title, .sidebar_inner h5 {
  font-family: var(--nj-ff-heading) !important;
  font-size: 13px !important; font-weight: 700 !important;
  letter-spacing: 0.14em !important; text-transform: uppercase !important;
  color: var(--nj-gold) !important; margin-bottom: 16px !important;
  padding-bottom: 12px !important; border-bottom: 1px solid var(--nj-border) !important;
}
.sidebar_inner .widget a { color: var(--nj-text-soft) !important; text-decoration: none !important; }
.sidebar_inner .widget a:hover { color: var(--nj-gold) !important; }

/* Pagination */
.nav-links, .page_links {
  display: flex; gap: 8px; justify-content: center; margin-top: 40px !important;
}
.nav-links .page-numbers, .page_links a, .page_links span {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 40px; height: 40px; padding: 0 12px;
  border-radius: var(--nj-r) !important;
  background: var(--nj-bg-card) !important;
  border: 1px solid var(--nj-border) !important;
  color: var(--nj-text-soft) !important;
  font-size: 14px !important; font-weight: 600 !important;
  text-decoration: none !important; transition: all var(--nj-t-fast);
}
.nav-links .page-numbers:hover, .page_links a:hover {
  background: var(--nj-bg-card-hover) !important;
  border-color: var(--nj-gold) !important; color: var(--nj-text) !important;
}
.nav-links .page-numbers.current, .page_links > span:not(.page-links-title) {
  background: var(--nj-grad-blue) !important;
  border-color: transparent !important; color: #fff !important;
}

/* -----------------------------------------------------------------------------
   13. UTILITIES
   ----------------------------------------------------------------------------- */
.elementor-widget-divider { opacity: 0.5; text-align: center !important; }
.elementor-widget-divider .elementor-widget-container {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  width: 100% !important;
}
.elementor-widget-divider .elementor-divider {
  width: 100% !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
}
.elementor-divider-separator {
  background-color: var(--nj-gold) !important;
  max-width: 60px; height: 2px !important;
  margin: 0 auto !important;
}
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--nj-bg); }
::-webkit-scrollbar-thumb { background: var(--nj-bg-card-hover); border-radius: 10px; }
::-webkit-scrollbar-thumb:hover { background: var(--nj-border-strong); }
::selection { background: var(--nj-blue); color: #fff; }

/* Cookie notice */
#cookie-notice, .cookie-notice-banner, .cli-bar-container {
  background: rgba(10, 16, 26, 0.96) !important;
  border-top: 1px solid var(--nj-border) !important;
  backdrop-filter: blur(18px); color: var(--nj-text-soft) !important;
  font-size: 13px !important;
}

/* RevSlider - ensure text is visible */
.tp-caption, .tp-caption * {
  font-family: var(--nj-ff-display) !important;
}

/* RevSlider — kill the rs-fw-forcer ghost gap (it adds 600-900px of empty space) */
rs-fw-forcer { display: none !important; height: 0 !important; }
.rs-fullwidth-wrap { min-height: 0 !important; }
.rs-module-wrap { position: relative !important; top: 0 !important; left: 0 !important; transform: none !important; }
rs-fullwidth-wrap rs-module-wrap { margin-top: 0 !important; }

/* Disable RevSlider parallax/motion effects on hero (CTA was moving on scroll) */
rs-layer.rs-pxl-1, rs-layer.rs-pxl-2, rs-layer.rs-pxl-3, rs-layer.rs-pxl-4, rs-layer.rs-pxl-5,
rs-layer.rs-pxl-6, rs-layer.rs-pxl-7, rs-layer.rs-pxl-8, rs-layer.rs-pxl-9, rs-layer.rs-pxl-10,
.rs-layer.rs-pxl-1, .rs-layer.rs-pxl-2, .rs-layer.rs-pxl-3, .rs-layer.rs-pxl-4, .rs-layer.rs-pxl-5,
[class*="rs-pxl-"] {
  transform: none !important;
  --rs-pxl-x: 0 !important;
  --rs-pxl-y: 0 !important;
}
.rev_slider_wrapper [data-parallax],
.rev_slider_wrapper [data-startxoffset],
.rev_slider_wrapper [data-startyoffset] {
  transform: none !important;
}
/* Disable any sticky/fixed motion effects on hero */
.elementor-element.elementor-motion-effects-element-type-background,
.elementor-element.elementor-motion-effects-element {
  transform: none !important;
}

/* Style the BOOK YOUR TICKETS hero CTA button */
rs-layer.rs_main_button,
.rs_main_button {
  background: #FFA500 !important;
  background-color: #FFA500 !important;
  color: #1A2332 !important;
  border-radius: 999px !important;
  font-family: var(--nj-ff-body) !important;
  font-weight: 700 !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  padding: 16px 36px !important;
  box-shadow: 0 8px 24px rgba(184,146,59,0.40) !important;
  transition: filter 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease !important;
  border: 0 !important;
  text-decoration: none !important;
}
rs-layer.rs_main_button:hover,
.rs_main_button:hover {
  background: #FFA500 !important;
  background-color: #FFA500 !important;
  filter: brightness(1.10) !important;
  color: #0d1521 !important;
  box-shadow: 0 14px 32px rgba(184,146,59,0.55) !important;
  transform: translateY(-2px) !important;
}
/* -----------------------------------------------------------------------------
   14. RESPONSIVE
   ----------------------------------------------------------------------------- */
@media (max-width: 767px) {
  .page_content_wrap .elementor-section.elementor-top-section:not(.elementor-section-stretched) {
    padding-top: 16px !important; padding-bottom: 16px !important;
  }
  h1, h1 .elementor-heading-title { font-size: 2.2rem !important; }
  h2, h2 .elementor-heading-title { font-size: 1.7rem !important; }
}
@media (max-width: 480px) {
  .woocommerce ul.products { grid-template-columns: 1fr !important; }
}

/* Booked calendar — center it on all viewports */
.booked-calendar-shortcode-wrap,
.booked-calendar-wrap,
.booked-calendar {
  margin-left: auto !important;
  margin-right: auto !important;
  max-width: 600px !important;
}
.elementor-widget-shortcode:has(.booked-calendar) .elementor-widget-container,
.elementor-shortcode:has(.booked-calendar) {
  text-align: center;
}

/* Booked calendar — make compact on mobile */
@media (max-width: 767px) {
  .booked-calendar-wrap.large { font-size: 12px !important; }
  .booked-calendar table { table-layout: fixed; width: 100% !important; }
  .booked-calendar td,
  .booked-calendar th {
    padding: 0 !important;
    height: auto !important;
    min-height: 38px !important;
    line-height: 1.2 !important;
    font-size: 12px !important;
  }
  .booked-calendar td .date,
  .booked-calendar td a {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 38px !important;
    min-height: 38px !important;
    padding: 0 !important;
    font-size: 13px !important;
  }
  .booked-calendar .bc-head h2 { font-size: 14px !important; padding: 8px !important; }
  .booked-calendar thead th { padding: 4px 0 !important; font-size: 10px !important; }
  .booked-calendar-wrap .bc-head { padding: 6px 10px !important; }
}

/* Elementor section specific improvements — light theme variations */
.elementor-element-156045d7,
.elementor-element-62a17418 {
  background: linear-gradient(180deg, var(--nj-bg) 0%, var(--nj-bg-soft) 100%) !important;
}
.elementor-element-b0bfcf0 {
  background: var(--nj-bg-soft) !important;
}
/* Override "scheme_dark" sections from Elementor — keep neutral on light theme */
.elementor-section.scheme_dark {
  background: var(--nj-bg-soft) !important;
}
.scheme_dark h2, .scheme_dark h3, .scheme_dark p {
  color: var(--nj-text-soft) !important;
}
.scheme_dark h2 .elementor-heading-title,
.scheme_dark h3 .elementor-heading-title {
  color: var(--nj-text) !important;
}

/* Custom highlight box (tour info, booking info boxes) */
.elementor-widget-text-editor .booking-info-box,
.elementor-widget-html .booking-info-box {
  background: rgba(31,78,140,0.06) !important;
  border: 1px solid rgba(31,78,140,0.20) !important;
  border-left: 3px solid var(--nj-blue) !important;
  border-radius: var(--nj-r) !important;
  padding: 14px 18px !important;
  color: var(--nj-text) !important;
}

/* Hide the duplicate Ozeum search widget — we replace with our nj-header-search */
.top_panel .elementor-widget-trx_sc_layouts_search,
.top_panel .sc_layouts_search.sc_layouts_search_default {
  display: none !important;
}

/* =============================================================================
   HEADER SEARCH BUTTON — wrapped between two | separators in dark top bar
   ============================================================================= */
.nj-header-search--top {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 32px;
  margin: 0;
  background: transparent;
  border: 0;
  border-left: 1px solid rgba(235,233,207,0.20);
  border-right: 1px solid rgba(235,233,207,0.20);
  border-radius: 0;
  color: rgba(255,255,255,0.85);
  cursor: pointer;
  transition: color var(--nj-t-fast), background var(--nj-t-fast);
  padding: 0 18px;
  vertical-align: middle;
  position: relative;
}
.nj-header-search--top:hover {
  background: rgba(255,255,255,0.05);
  color: #fff;
}
.nj-header-search--top svg { width: 16px; height: 16px; display: block; }
@media (max-width: 767px) {
  .nj-header-search--top { display: none !important; }
}

/* Search popover — compact light theme */
.nj-search-popover {
  position: absolute;
  top: 100%;
  right: 0;
  margin-top: 6px;
  width: 280px;
  max-width: calc(100vw - 32px);
  background: #fff;
  border: 1px solid var(--nj-border);
  border-radius: var(--nj-r-md);
  box-shadow: 0 12px 32px rgba(26,35,50,0.18);
  padding: 8px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: opacity var(--nj-t-fast), visibility var(--nj-t-fast), transform var(--nj-t-fast);
  z-index: 10000;
}
.nj-search-popover.open { opacity: 1; visibility: visible; transform: translateY(0); }
.nj-search-popover form { display: flex; gap: 6px; align-items: stretch; margin: 0; padding: 0; }
.nj-search-input {
  flex: 1; min-width: 0;
  height: 34px;
  padding: 0 12px;
  background: var(--nj-bg-soft) !important;
  border: 1px solid var(--nj-border) !important;
  border-radius: var(--nj-r-sm) !important;
  color: var(--nj-text) !important;
  font-size: 13px;
  font-family: var(--nj-ff-body);
  outline: none;
  -webkit-appearance: none;
  appearance: none;
}
.nj-search-input::placeholder { color: var(--nj-text-muted); }
.nj-search-input:focus {
  border-color: var(--nj-blue) !important;
  background: #fff !important;
  box-shadow: 0 0 0 2px var(--nj-blue-soft);
}
.nj-search-submit {
  width: 34px; height: 34px;
  flex: 0 0 34px;
  background: var(--nj-grad-blue);
  border: 0;
  border-radius: var(--nj-r-sm);
  color: #fff;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  transition: filter var(--nj-t-fast);
}
.nj-search-submit:hover { filter: brightness(1.1); }
.nj-search-submit svg { width: 14px; height: 14px; }
.nj-search-popover {
  position: absolute;
  top: 100%;
  right: 16px;
  margin-top: 8px;
  width: 320px;
  max-width: calc(100vw - 32px);
  background: #fff;
  border: 1px solid var(--nj-border);
  border-radius: var(--nj-r-md);
  box-shadow: 0 12px 36px rgba(26,35,50,0.18);
  padding: 10px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: opacity var(--nj-t-fast), visibility var(--nj-t-fast), transform var(--nj-t-fast);
  z-index: 10000;
}
.nj-search-popover.open {
  opacity: 1; visibility: visible; transform: translateY(0);
}
.nj-search-popover form { display: flex; gap: 6px; align-items: center; margin: 0; }
.nj-search-input {
  flex: 1; min-width: 0;
  height: 38px;
  padding: 0 12px;
  background: rgba(26,35,50,0.05);
  border: 1px solid var(--nj-border);
  border-radius: var(--nj-r);
  color: var(--nj-text);
  font-size: 14px;
}
.nj-search-input:focus {
  outline: none;
  border-color: var(--nj-blue);
  background: #fff;
  box-shadow: 0 0 0 3px var(--nj-blue-soft);
}
.nj-search-submit {
  width: 38px; height: 38px;
  flex: 0 0 38px;
  background: var(--nj-grad-blue);
  border: 0;
  border-radius: var(--nj-r);
  color: #fff;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.nj-search-submit:hover { filter: brightness(1.08); }
@media (max-width: 767px) {
  .nj-header-search { display: none !important; }
}

/* =============================================================================
   FAQ SECTION — proper section spacing
   ============================================================================= */
/* The FAQ accordion section preceding heading needs more breathing room */
.elementor-widget-accordion {
  margin-top: 20px !important;
}
/* If accordion is the first child of its column, give it some space from the heading above */
.elementor-widget-heading + .elementor-widget-accordion,
.elementor-element + .elementor-widget-accordion {
  margin-top: 32px !important;
}

/* =============================================================================
   ELEMENTOR ANIMATION FIX — force visibility (animations don't trigger reliably)
   ============================================================================= */
.elementor-invisible { visibility: visible !important; opacity: 1 !important; }
.elementor-element.elementor-invisible { visibility: visible !important; opacity: 1 !important; }
.post_item.elementor-invisible,
article.elementor-invisible { visibility: visible !important; opacity: 1 !important; }

/* =============================================================================
   15. VISIT THE CASTLE — gallery section modern UI
   Force the gallery to span the full width of its parent column for proper sizing
   ============================================================================= */
.elementor-widget-image-gallery {
  margin: 0 !important;
  width: 100% !important;
}
.elementor-widget-image-gallery .elementor-image-gallery {
  width: 100% !important;
  margin: 0 !important;
}
.elementor-widget-image-gallery .gallery {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 16px !important;
  margin: 0 !important;
  width: 100% !important;
}
.elementor-widget-image-gallery .gallery .gallery-item,
.elementor-widget-image-gallery .gallery.gallery-columns-2 .gallery-item,
.elementor-widget-image-gallery .gallery.gallery-columns-3 .gallery-item,
.elementor-widget-image-gallery .gallery.gallery-columns-4 .gallery-item,
.elementor-widget-image-gallery .gallery.gallery-columns-5 .gallery-item,
.elementor-widget-image-gallery .gallery.gallery-columns-6 .gallery-item,
.elementor-widget-image-gallery .gallery.gallery-columns-7 .gallery-item,
.elementor-widget-image-gallery .gallery.gallery-columns-8 .gallery-item,
.elementor-widget-image-gallery .gallery.gallery-columns-9 .gallery-item {
  width: 100% !important;
  max-width: 100% !important;
  flex: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden;
  border-radius: var(--nj-r-md);
  aspect-ratio: 1/1;
  position: relative;
  box-shadow: 0 6px 18px rgba(26,35,50,0.10);
  transition: transform var(--nj-t), box-shadow var(--nj-t);
  background: var(--nj-bg-raised);
}
.elementor-widget-image-gallery .gallery-item:hover {
  transform: translateY(-6px);
  box-shadow: 0 16px 36px rgba(26,35,50,0.20);
}
.elementor-widget-image-gallery .gallery-item img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  border-radius: var(--nj-r-md) !important;
  border: 0 !important;
  display: block !important;
  transition: transform var(--nj-t-slow);
}
.elementor-widget-image-gallery .gallery-item:hover img {
  transform: scale(1.08);
}
.elementor-widget-image-gallery .gallery-icon {
  display: block;
  height: 100%;
  width: 100%;
}
.elementor-widget-image-gallery .gallery-caption { display: none !important; }

/* Force the gallery's parent column to be full-width when it's the only sibling */
.elementor-widget-image-gallery {
  flex: 1 1 100% !important;
  min-width: 0 !important;
}

/* When gallery is in a narrow elementor column, expand it */
.elementor-column:has(> .elementor-widget-wrap > .elementor-widget-image-gallery),
.elementor-column:has(> .elementor-widget-image-gallery),
.e-con:has(> .elementor-widget-image-gallery),
.e-con:has(.elementor-widget-image-gallery) {
  width: 100% !important;
  flex-basis: auto !important;
}

/* The "Visit Neuschwanstein" section: stack list above, gallery full-width below */
.elementor-element-1ee19c4 > .e-con-inner {
  display: flex !important;
  flex-direction: column !important;
  gap: 40px !important;
  align-items: stretch !important;
  width: 100% !important;
}
.elementor-element-1ee19c4 > .e-con-inner > .e-con {
  width: 100% !important;
  max-width: 100% !important;
  flex: 0 0 auto !important;
}
@media (max-width: 1024px) {
  .elementor-widget-image-gallery .gallery {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 640px) {
  .elementor-widget-image-gallery .gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
  }
}

/* Style the "What you will experience" list */
.elementor-widget-text-editor ol > li,
.elementor-widget-text-editor ul > li {
  margin-bottom: 12px !important;
  line-height: 1.7 !important;
}
.elementor-widget-text-editor ol > li strong,
.elementor-widget-text-editor ul > li strong {
  color: var(--nj-blue) !important;
  font-weight: 700 !important;
}
.elementor-widget-text-editor ol {
  padding-left: 24px !important;
  counter-reset: list-counter;
}
.elementor-widget-text-editor ol > li {
  list-style: none;
  counter-increment: list-counter;
  position: relative;
  padding-left: 6px;
}
.elementor-widget-text-editor ol > li::before {
  content: counter(list-counter);
  position: absolute;
  left: -24px; top: 2px;
  width: 22px; height: 22px;
  border-radius: 50%;
  background: var(--nj-grad-blue);
  color: #fff;
  font-size: 11px; font-weight: 700;
  display: inline-flex; align-items: center; justify-content: center;
  font-family: var(--nj-ff-body);
  box-shadow: 0 2px 6px rgba(31,78,140,0.30);
}

/* =============================================================================
   16. NEWS + BRIDGE TWO-COLUMN — modern card UI
   The 5e18d19 wraps a .e-con-inner which contains 2 child .e-con cards.
   Apply grid to the INNER container only (avoid double grid).
   ============================================================================= */
.elementor-element-5e18d19 {
  background: transparent !important;
  width: 100% !important;
}
.elementor-element-5e18d19 > .e-con-inner {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 32px !important;
  max-width: var(--nj-container) !important;
  margin: 0 auto !important;
  padding: 0 var(--nj-gutter) !important;
  width: 100% !important;
}
@media (max-width: 900px) {
  .elementor-element-5e18d19 > .e-con-inner {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }
}
/* Each card */
.elementor-element-5e18d19 > .e-con-inner > .e-con {
  background: var(--nj-bg-raised) !important;
  border: 1px solid var(--nj-border) !important;
  border-radius: var(--nj-r-lg) !important;
  overflow: hidden !important;
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  box-shadow: var(--nj-sh);
  transition: transform var(--nj-t), box-shadow var(--nj-t), border-color var(--nj-t);
  display: flex !important;
  flex-direction: column !important;
}
.elementor-element-5e18d19 > .e-con-inner > .e-con:hover {
  transform: translateY(-4px);
  box-shadow: var(--nj-sh-lg);
  border-color: var(--nj-border-strong);
}
/* Card heading */
.elementor-element-5e18d19 > .e-con-inner > .e-con .elementor-widget-heading {
  order: 1;
  padding: 24px 28px 12px !important;
  margin: 0 !important;
  width: 100% !important;
}
.elementor-element-5e18d19 > .e-con-inner > .e-con .elementor-widget-heading .elementor-widget-container {
  width: 100% !important;
}
.elementor-element-5e18d19 > .e-con-inner > .e-con .elementor-widget-heading h2,
.elementor-element-5e18d19 > .e-con-inner > .e-con .elementor-widget-heading h3,
.elementor-element-5e18d19 > .e-con-inner > .e-con .elementor-widget-heading .elementor-heading-title {
  font-family: var(--nj-ff-display) !important;
  font-size: clamp(1.4rem, 1.8vw, 1.7rem) !important;
  text-transform: none !important;
  letter-spacing: 0.005em !important;
  margin: 0 !important;
  color: var(--nj-text) !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
  white-space: normal !important;
  width: 100% !important;
  display: block !important;
}
/* Card image */
.elementor-element-5e18d19 > .e-con-inner > .e-con .elementor-widget-image {
  order: 2;
  margin: 0 !important;
  width: 100% !important;
}
.elementor-element-5e18d19 > .e-con-inner > .e-con .elementor-widget-image .elementor-widget-container {
  width: 100% !important;
}
.elementor-element-5e18d19 > .e-con-inner > .e-con .elementor-widget-image img {
  width: 100% !important;
  aspect-ratio: 16/10;
  object-fit: cover !important;
  display: block;
  border-radius: 0 !important;
}
/* Card text */
.elementor-element-5e18d19 > .e-con-inner > .e-con .elementor-widget-text-editor {
  order: 3;
  padding: 20px 28px 28px !important;
  width: 100% !important;
}
.elementor-element-5e18d19 > .e-con-inner > .e-con .elementor-widget-text-editor .elementor-widget-container {
  width: 100% !important;
}
.elementor-element-5e18d19 > .e-con-inner > .e-con .elementor-widget-text-editor p {
  font-size: 14.5px !important;
  line-height: 1.75 !important;
  color: var(--nj-text-muted) !important;
  margin: 0 !important;
}

/* =============================================================================
   17. WELCOME TO NEUSCHWANSTEIN — full-width with castle sunset background
   ============================================================================= */
.welcome-section,
.welcome-section.scheme_dark,
section.welcome-section,
.elementor-section.welcome-section,
.elementor-section.welcome-section.scheme_dark {
  text-align: center !important;
  padding: clamp(96px, 11vw, 180px) var(--nj-gutter) !important;
  background-image:
    linear-gradient(180deg, rgba(16,42,82,0.68) 0%, rgba(16,42,82,0.85) 100%),
    url('../images/castle-sunset.jpg') !important;
  background-size: cover, cover !important;
  background-position: center, center !important;
  background-repeat: no-repeat, no-repeat !important;
  background-attachment: scroll, scroll !important;
  background-color: var(--nj-blue-deep) !important;
  position: relative;
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  left: auto !important;
  right: auto !important;
  overflow: hidden;
}
.welcome-section::before,
.welcome-section::after {
  content: "";
  position: absolute;
  top: 50%; transform: translate(-50%, -50%);
  width: 80%; max-width: 600px; height: 1px;
  background: linear-gradient(90deg, transparent, var(--nj-gold-strong) 50%, transparent);
  pointer-events: none;
  display: none;
}
.welcome-section > .elementor-container,
.welcome-section > .e-con-inner {
  max-width: 760px !important;
  margin: 0 auto !important;
  padding: 0 !important;
  width: 100% !important;
  position: relative;
  z-index: 2;
}
.welcome-section .elementor-heading-title,
.welcome-section h1,
.welcome-section h2,
.welcome-section h3,
.welcome-section .sc_item_title {
  color: #fff !important;
}
/* Welcome title — large, white, display font */
.welcome-section .sc_item_title,
.welcome-section h1.sc_item_title,
.welcome-section .sc_title_extra .sc_item_title_text,
.welcome-section .sc_item_title_text {
  font-family: var(--nj-ff-display) !important;
  font-size: clamp(2.4rem, 4.4vw, 3.6rem) !important;
  font-weight: 500 !important;
  line-height: 1.1 !important;
  color: #fff !important;
  letter-spacing: -0.005em !important;
  text-transform: none !important;
  margin: 0 0 24px !important;
  text-shadow: 0 2px 24px rgba(0,0,0,0.4);
}
/* Welcome subtitle (eyebrow) — gold, small caps if present */
.welcome-section .sc_item_subtitle {
  color: var(--nj-gold-strong) !important;
  font-family: var(--nj-ff-heading) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.30em !important;
  text-transform: uppercase !important;
  margin-bottom: 14px !important;
  display: block;
}
.welcome-section .elementor-widget-text-editor p,
section.welcome-section .elementor-widget-text-editor p,
.welcome-section.scheme_dark .elementor-widget-text-editor p,
.welcome-section .elementor-widget-text-editor,
.welcome-section .elementor-widget-text-editor *,
.welcome-section p {
  max-width: 720px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  font-size: 18px !important;
  line-height: 1.85 !important;
  text-align: center !important;
  color: rgba(255,255,255,0.92) !important;
}
.welcome-section .elementor-widget-button .elementor-button,
.welcome-section a.elementor-button,
.welcome-section .elementor-widget-button a,
.welcome-section .sc_button {
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 14px 32px !important;
  background: var(--nj-grad-gold) !important;
  color: #1A2332 !important;
  border: 0 !important;
  border-radius: 999px !important;
  font-family: var(--nj-ff-body) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  box-shadow: var(--nj-sh-gold);
  transition: all var(--nj-t-fast) !important;
  margin-top: 24px !important;
}
.welcome-section .elementor-widget-button .elementor-button:hover,
.welcome-section a.elementor-button:hover,
.welcome-section .elementor-widget-button a:hover,
.welcome-section .sc_button:hover {
  filter: brightness(1.08);
  transform: translateY(-2px);
  box-shadow: 0 14px 32px rgba(200,168,75,0.40);
}
.welcome-section::before {
  content: "";
  position: absolute;
  top: 50%; left: 50%;
  width: clamp(280px, 60%, 800px); height: 1px;
  background: linear-gradient(90deg, transparent, var(--nj-gold), transparent);
  transform: translate(-50%, -50%);
  opacity: 0.30;
  pointer-events: none;
}
.welcome-section > .e-con-inner,
.welcome-section .elementor-container {
  max-width: 900px !important;
  margin: 0 auto !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 22px !important;
}
.welcome-section .elementor-widget,
.welcome-section .elementor-element {
  width: 100% !important;
  text-align: center !important;
}
.welcome-section .elementor-widget-heading,
.welcome-section .elementor-widget-text-editor,
.welcome-section .elementor-widget-button {
  text-align: center !important;
}
/* Strip the small empty circle decoration around "MORE ABOUT" link */
.welcome-section .sc_button::before,
.welcome-section .sc_button::after { display: none !important; }

/* =============================================================================
   18. FORM CONTACT US — light theme
   ============================================================================= */
.wpcf7 form,
.elementor-widget-form .elementor-form,
.elementor-widget-shortcode form,
.sc_form_form,
form.sc_form_form {
  background: var(--nj-bg-raised) !important;
  border: 1px solid var(--nj-border) !important;
  border-radius: var(--nj-r-lg) !important;
  padding: clamp(24px, 3vw, 40px) !important;
  box-shadow: var(--nj-sh-sm);
}
.sc_form_form input[type=text],
.sc_form_form input[type=email],
.sc_form_form textarea {
  background: var(--nj-bg) !important;
  border: 1px solid var(--nj-border) !important;
  color: var(--nj-text) !important;
  border-radius: var(--nj-r) !important;
}
.sc_form_form input[type=submit],
.sc_form_form button[type=submit] {
  background: var(--nj-grad-blue) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 999px !important;
  padding: 12px 28px !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  cursor: pointer;
}

/* Mobile: ensure all sections have horizontal padding */
@media (max-width: 767px) {
  /* Fix the .content_wrap / .content overflow on mobile (380px in 375px viewport) */
  body .page_content_wrap .content_wrap,
  body .page_content_wrap .content,
  body .page_content_wrap .post_item_single,
  body .page_content_wrap .post_content.entry-content {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box !important;
  }
  /* Constrain elementor wrapper that uses negative margins on mobile */
  body .page_content_wrap .elementor,
  body .page_content_wrap [data-elementor-type] {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    overflow-x: hidden !important;
  }
  /* GLOBAL — every Elementor TOP section gets 16px edge padding + section vertical spacing on mobile */
  body .page_content_wrap .elementor-section.elementor-top-section,
  body .page_content_wrap > section,
  body .page_content_wrap > div.elementor-element,
  body .page_content_wrap .elementor-section.elementor-section-stretched,
  body .page_content_wrap .e-con.e-parent {
    padding-left: 16px !important;
    padding-right: 16px !important;
    padding-top: 32px !important;
    padding-bottom: 32px !important;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  /* Hero on mobile — no padding (RevSlider must be edge-to-edge) */
  body .page_content_wrap .e-con.e-parent:has(.rev_slider_wrapper),
  body .page_content_wrap .e-con.e-parent:has([id^="rev_slider_"]),
  body .page_content_wrap .elementor-element.elementor-element-e0f87e3 {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  /* Archive/category pages — tighter card grid spacing on mobile */
  body.archive .posts_container,
  body.nj-listing-page .posts_container,
  body.category .posts_container,
  body.tag .posts_container {
    gap: 18px !important;
    padding: 0 !important;
  }
  /* Cards on archive pages */
  body.archive .content_wrap, body.nj-listing-page .content_wrap,
  body.category .content_wrap, body.tag .content_wrap {
    padding: 24px 16px !important;
  }
  /* Don't double-pad the archive content area */
  body.archive .page_content_wrap, body.nj-listing-page .page_content_wrap,
  body.category .page_content_wrap, body.tag .page_content_wrap { padding: 0 !important; }
  /* Inner Elementor container — no additional padding, constrain to parent width */
  body .page_content_wrap .elementor-top-section > .elementor-container,
  body .page_content_wrap .elementor-section > .elementor-container {
    padding-left: 0 !important;
    padding-right: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
  }
  /* Inner column wraps — no additional padding (the 10px default that creates 26px total) */
  body .page_content_wrap .elementor-widget-wrap.elementor-element-populated,
  body .page_content_wrap .elementor-column-wrap.elementor-element-populated {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  /* Force inner Elementor columns to not exceed parent */
  body .page_content_wrap .elementor-column,
  body .page_content_wrap .elementor-row {
    max-width: 100% !important;
    width: 100% !important;
  }
  /* Remove default 10px padding from child e-con (Elementor v3 containers) */
  body .page_content_wrap .e-con.e-child {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  /* The 2-col news+bridge inner — single column on mobile */
  .elementor-element-5e18d19 > .e-con-inner {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
    padding: 0 !important;
  }
  /* Cards inside 2-col stay full width minus parent padding */
  .elementor-element-5e18d19 > .e-con-inner > .e-con {
    width: 100% !important;
    max-width: 100% !important;
  }
  /* 2-col card content */
  .elementor-element-5e18d19 > .e-con-inner > .e-con .elementor-widget-heading {
    padding: 18px 20px 8px !important;
  }
  .elementor-element-5e18d19 > .e-con-inner > .e-con .elementor-widget-text-editor {
    padding: 16px 20px 22px !important;
  }
  .elementor-element-5e18d19 > .e-con-inner > .e-con .elementor-widget-heading h3,
  .elementor-element-5e18d19 > .e-con-inner > .e-con .elementor-heading-title {
    font-size: 1.25rem !important;
    line-height: 1.25 !important;
  }
  /* Contact form — keep its own padding inside, parent has 16px from above */
  .elementor-widget-shortcode,
  .elementor-widget-form,
  .elementor-widget-html { padding: 0 !important; }
  .wpcf7 form,
  .elementor-widget-form .elementor-form,
  .elementor-widget-shortcode form,
  .sc_form_form,
  form.sc_form_form {
    padding: 20px !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  /* Welcome section — keep full-width background but content has padding */
  .welcome-section {
    padding: 64px 16px !important;
  }
  .welcome-section > .e-con-inner,
  .welcome-section .elementor-container { padding: 0 !important; }
  /* Hero CTA spacing */
  .rev_slider_wrapper, .revslider-initialised { margin-bottom: 12px !important; }
  .rev_slider_wrapper .tp-button,
  .rev_slider_wrapper .button {
    margin-top: 24px !important;
  }
  .elementor-widget-image-gallery .gallery { padding: 0 !important; }
}
