/* ============================================================
   KAYLUX v4, "VOYAGE DUO": one page, two themes
   light = warm ivory editorial · dark = immersive dark cinematic
   Clash Display + Satoshi + Fraunces · maroon / gold
   Structure = native Elementor widgets · skin = this file.
   CASCADE LAW: base rules at body.klx-duo scope = plain
   (never !important); component rules (.klx-*) = !important.
   ============================================================ */

@font-face { font-family:'Clash Display'; src:url('../fonts/clash-display-400.woff2') format('woff2'); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:'Clash Display'; src:url('../fonts/clash-display-500.woff2') format('woff2'); font-weight:500; font-style:normal; font-display:swap; }
@font-face { font-family:'Clash Display'; src:url('../fonts/clash-display-600.woff2') format('woff2'); font-weight:600; font-style:normal; font-display:swap; }
@font-face { font-family:'Satoshi'; src:url('../fonts/satoshi-400.woff2') format('woff2'); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:'Satoshi'; src:url('../fonts/satoshi-500.woff2') format('woff2'); font-weight:500; font-style:normal; font-display:swap; }
@font-face { font-family:'Satoshi'; src:url('../fonts/satoshi-700.woff2') format('woff2'); font-weight:700; font-style:normal; font-display:swap; }
@font-face { font-family:'Fraunces'; src:url('../fonts/fraunces-var-italic.woff2') format('woff2-variations'); font-weight:100 900; font-style:italic; font-display:swap; }
@font-face { font-family:'Clash-fb'; src: local('Arial'); size-adjust:96%; ascent-override:96%; descent-override:24%; }
@font-face { font-family:'Satoshi-fb'; src: local('Arial'); size-adjust:98%; ascent-override:100%; descent-override:25%; }

/* ============================================================
   THEME TOKENS, light (default, also no-JS) + dark
   ============================================================ */
body {
  --klx-display:'Clash Display','Clash-fb',system-ui,sans-serif;
  --klx-text:'Satoshi','Satoshi-fb',system-ui,-apple-system,sans-serif;
  --klx-serif:'Fraunces',Georgia,serif;
  --klx-ease:cubic-bezier(.22,1,.36,1);
  --klx-wrap:1320px;

  --klx-bg:#FAF7F1;
  --klx-bg-2:#F1EAE0;
  --klx-txt:#201714;
  --klx-txt-dim:#6E625B;
  --klx-txt-faint:rgba(32,23,20,.62);
  --klx-maroon:#80011F;
  --klx-maroon-deep:#5C0117;
  --klx-gold:#C99A6B;
  --klx-accent:#8A5A2B;
  --klx-link:#80011F;
  --klx-gold-soft:rgba(201,154,107,.4);
  --klx-hair:rgba(32,23,20,.14);
  --klx-hair-soft:rgba(32,23,20,.08);
  --klx-card-border:rgba(32,23,20,.10);
  --klx-panel-border:rgba(32,23,20,.10);
  --klx-shadow-card:0 18px 50px rgba(74,42,18,.10);
  --klx-shadow-soft:0 8px 26px rgba(74,42,18,.06);
  --klx-grain-o:.035;
  --klx-on-gold:#201714;
  --klx-cta-fill:#80011F;
  --klx-cta-fill-h:#5C0117;
  --klx-cta-ink:#fff;
  --klx-cta-shadow:0 10px 30px rgba(128,1,31,.22);
  --klx-cta-shadow-h:0 14px 40px rgba(128,1,31,.30);
  --klx-btnline-border:rgba(32,23,20,.28);
  --klx-btnline-border-h:#80011F;
  --klx-btnline-color-h:#80011F;
  --klx-hdr-bg:rgba(250,247,241,.78);
  --klx-hdr-border:rgba(32,23,20,.08);
  --klx-hdr-bg-sc:rgba(250,247,241,.92);
  --klx-hdr-border-sc:rgba(32,23,20,.14);
  --klx-mnav-bg:rgba(250,247,241,.98);
  --klx-mnav-hair:rgba(32,23,20,.14);
  --klx-hero-bg:#1A100C;
  --klx-hero-scrim:linear-gradient(0deg,rgba(20,11,8,.38),rgba(20,11,8,.38)),linear-gradient(180deg,rgba(20,11,8,0) 0%,rgba(20,11,8,0) 36%,rgba(20,11,8,.5) 72%,rgba(20,11,8,.88) 100%);
  --klx-hero-gold:#E4BE8F;
  --klx-hero-hairline:rgba(255,255,255,.28);
  --klx-sw-c:rgba(255,255,255,.55);
  --klx-sw-c-h:rgba(255,255,255,.8);
  --klx-sw-num-bg:rgba(24,14,10,.5);
  --klx-sw-num-border:rgba(255,255,255,.3);
  --klx-thumb-border:rgba(255,255,255,.35);
  --klx-hero-dim:rgba(255,255,255,.78);
  --klx-ring-bg:rgba(255,255,255,.25);
  --klx-panel-bg:#FFFFFF;
  --klx-panel-shadow:0 30px 80px rgba(74,42,18,.12);
  --klx-opt-bg:#fff;
  --klx-dcard-shadow-h:0 24px 60px rgba(74,42,18,.22),0 0 40px rgba(201,154,107,.14);
  --klx-surface:#FFFFFF;
  --klx-mod-on-bg:#FFFDF8;
  --klx-mod-on-shadow:0 0 0 1px #C99A6B,0 16px 40px rgba(74,42,18,.12);
  --klx-ico-bg:rgba(201,154,107,.14);
  --klx-bar-bg:#FFFFFF;
  --klx-bar-border:rgba(32,23,20,.10);
  --klx-bcard-shadow-h:0 20px 50px rgba(74,42,18,.20),0 0 36px rgba(201,154,107,.12);
  --klx-kadie-glow:rgba(128,1,31,.12);
  --klx-badge-bg:#FFFFFF;
  --klx-badge-shadow:0 16px 40px rgba(74,42,18,.16);
  --klx-chip-bg:rgba(250,247,241,.9);
  --klx-chip-border:rgba(32,23,20,.10);
  --klx-quote-c:rgba(201,154,107,.18);
  --klx-av-ink:#F0D3AC;
  --klx-stats-border:rgba(32,23,20,.12);
  --klx-stats-bg:radial-gradient(ellipse 900px 460px at 50% 130%,rgba(201,154,107,.20),transparent 70%),radial-gradient(ellipse 640px 320px at 12% -30%,rgba(0,0,0,.28),transparent 70%),linear-gradient(180deg,#6B0119,#5C0117);
  --klx-stats-divider:rgba(255,255,255,.16);
  --klx-stats-num:#fff;
  --klx-stats-lab:rgba(255,255,255,.78);
  --klx-row-hover:rgba(32,23,20,.04);
  --klx-ctaband-bg:#F1EAE0;
  --klx-ctaband-border:rgba(32,23,20,.08);
  --klx-cta-scrim:linear-gradient(90deg,rgba(250,247,241,.97) 0%,rgba(250,247,241,.92) 46%,rgba(250,247,241,.42) 100%);
  --klx-foot-border:rgba(32,23,20,.14);
  --klx-tsw-bg:rgba(32,23,20,.04);
}
html[data-theme="dark"] body {
  --klx-bg:#12090C;
  --klx-bg-2:#180D10;
  --klx-txt:rgba(255,255,255,.92);
  --klx-txt-dim:rgba(255,255,255,.64);
  --klx-txt-faint:rgba(255,255,255,.5);
  --klx-accent:#C99A6B;
  --klx-link:#C99A6B;
  --klx-gold-soft:rgba(201,154,107,.32);
  --klx-hair:rgba(255,255,255,.14);
  --klx-hair-soft:rgba(255,255,255,.08);
  --klx-card-border:rgba(255,255,255,.08);
  --klx-panel-border:rgba(255,255,255,.14);
  --klx-shadow-card:none;
  --klx-shadow-soft:none;
  --klx-grain-o:.05;
  --klx-on-gold:#1A0E12;
  --klx-cta-fill:#C99A6B;
  --klx-cta-fill-h:#C99A6B;
  --klx-cta-ink:#1A0E12;
  --klx-cta-shadow:0 8px 30px rgba(201,154,107,.22);
  --klx-cta-shadow-h:0 14px 40px rgba(201,154,107,.32);
  --klx-btnline-border:rgba(201,154,107,.32);
  --klx-btnline-border-h:#C99A6B;
  --klx-btnline-color-h:rgba(255,255,255,.92);
  --klx-hdr-bg:linear-gradient(180deg,rgba(18,9,12,.55),rgba(18,9,12,0));
  --klx-hdr-border:transparent;
  --klx-hdr-bg-sc:rgba(18,9,12,.82);
  --klx-hdr-border-sc:rgba(255,255,255,.08);
  --klx-mnav-bg:rgba(18,9,12,.97);
  --klx-mnav-hair:rgba(255,255,255,.08);
  --klx-hero-bg:#12090C;
  --klx-hero-scrim:linear-gradient(90deg,rgba(18,9,12,.82) 0%,rgba(18,9,12,.42) 46%,rgba(18,9,12,.18) 100%),linear-gradient(180deg,rgba(18,9,12,.42) 0%,rgba(18,9,12,0) 30%,rgba(18,9,12,.24) 72%,#12090C 100%);
  --klx-hero-gold:#C99A6B;
  --klx-hero-hairline:rgba(255,255,255,.14);
  --klx-sw-c:rgba(255,255,255,.5);
  --klx-sw-c-h:rgba(255,255,255,.64);
  --klx-sw-num-bg:#12090C;
  --klx-sw-num-border:rgba(255,255,255,.14);
  --klx-thumb-border:rgba(255,255,255,.14);
  --klx-hero-dim:rgba(255,255,255,.64);
  --klx-ring-bg:rgba(255,255,255,.14);
  --klx-panel-bg:rgba(255,255,255,.045);
  --klx-panel-shadow:0 30px 80px rgba(0,0,0,.45);
  --klx-opt-bg:#180D10;
  --klx-dcard-shadow-h:0 24px 60px rgba(0,0,0,.55),0 0 40px rgba(201,154,107,.12);
  --klx-surface:#180D10;
  --klx-mod-on-bg:#1D1013;
  --klx-mod-on-shadow:0 0 0 1px #C99A6B,0 16px 40px rgba(0,0,0,.4);
  --klx-ico-bg:rgba(201,154,107,.1);
  --klx-bar-bg:rgba(255,255,255,.04);
  --klx-bar-border:rgba(255,255,255,.14);
  --klx-bcard-shadow-h:0 20px 50px rgba(0,0,0,.5),0 0 36px rgba(201,154,107,.1);
  --klx-kadie-glow:rgba(128,1,31,.35);
  --klx-badge-bg:#12090C;
  --klx-badge-shadow:0 16px 40px rgba(0,0,0,.5);
  --klx-chip-bg:rgba(18,9,12,.6);
  --klx-chip-border:rgba(255,255,255,.14);
  --klx-quote-c:rgba(201,154,107,.1);
  --klx-av-ink:#C99A6B;
  --klx-stats-border:rgba(255,255,255,.08);
  --klx-stats-bg:radial-gradient(ellipse 900px 460px at 50% 120%,rgba(128,1,31,.5),transparent 70%),radial-gradient(ellipse 640px 320px at 12% -30%,rgba(201,154,107,.1),transparent 70%),#180D10;
  --klx-stats-divider:rgba(255,255,255,.08);
  --klx-stats-num:rgba(255,255,255,.92);
  --klx-stats-lab:rgba(255,255,255,.64);
  --klx-row-hover:rgba(255,255,255,.03);
  --klx-ctaband-bg:radial-gradient(ellipse 900px 500px at 70% 50%,rgba(128,1,31,.4),transparent 70%),#180D10;
  --klx-ctaband-border:transparent;
  --klx-cta-scrim:linear-gradient(90deg,rgba(18,9,12,.88) 0%,rgba(18,9,12,.55) 55%,rgba(18,9,12,.3) 100%);
  --klx-foot-border:rgba(255,255,255,.08);
  --klx-tsw-bg:rgba(255,255,255,.05);
}

/* ============================================================
   BASE (page scope, plain, never !important on color)
   ============================================================ */
body.klx-duo {
  background: var(--klx-bg);
  color: var(--klx-txt);
  font-family: var(--klx-text);
  font-size: 17px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}
body.klx-duo ::selection { background: var(--klx-maroon); color:#fff; }
body.klx-duo img { height:auto; }
body.klx-duo p { font-family: var(--klx-text); }
body.klx-duo .elementor-widget-text-editor { color: var(--klx-txt); font-family: var(--klx-text); }
body.klx-duo .elementor-widget-heading .elementor-heading-title,
.klx-hdr .elementor-widget-heading .elementor-heading-title,
.klx-foot .elementor-widget-heading .elementor-heading-title { font-family: var(--klx-text); color: var(--klx-txt); }
#destinations, #packages, #collections, #kadie, #journal, #events, #cta { scroll-margin-top: 96px; }

/* full-bleed: free the page from theme containers (structural, !important ok) */
body.klx-duo .ast-container, body.klx-duo .site-content .ast-container,
body.klx-duo #primary, body.klx-duo .site-main, body.klx-duo .entry-content {
  max-width:100% !important; width:100% !important; padding-left:0 !important; padding-right:0 !important;
  margin-left:0 !important; margin-right:0 !important; }
/* only the top-level section containers go full-bleed, this Elementor version
   stamps .e-parent on EVERY container, so scope to direct children of the doc root */
body.klx-duo .elementor > .e-parent { max-width:none !important; }
body.klx-duo { padding-top: 0 !important; }
body.klx-duo .site-content, body.klx-duo main { padding-top:0 !important; }
/* Astra scroll-top pill clashes with the design language, hide on this page only */
body.klx-duo #ast-scroll-top { display:none !important; }

/* theme-switch animation window, added by JS only while toggling */
html.klx-anim body.klx-duo,
html.klx-anim body.klx-duo *,
html.klx-anim body.klx-duo *::before,
html.klx-anim body.klx-duo *::after {
  transition: background .35s var(--klx-ease), background-color .35s var(--klx-ease),
    border-color .35s var(--klx-ease), color .35s var(--klx-ease),
    box-shadow .35s var(--klx-ease), fill .35s var(--klx-ease), stroke .35s var(--klx-ease) !important;
}
@media (prefers-reduced-motion:reduce){
  html.klx-anim body.klx-duo, html.klx-anim body.klx-duo *,
  html.klx-anim body.klx-duo *::before, html.klx-anim body.klx-duo *::after { transition:none !important; }
}

/* logo swap, colored mark on ivory, white mark on ink */
.klx-logo-w { display:none !important; }
html[data-theme="dark"] .klx-logo-w { display:block !important; }
html[data-theme="dark"] .klx-logo-c { display:none !important; }

/* grain overlay (JS-injected) */
.klx-grain {
  position:fixed; inset:0; z-index:120; pointer-events:none; opacity:var(--klx-grain-o,.035);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='280' height='280'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:280px 280px;
}

/* ============================================================
   SHARED LAYOUT + TYPE
   ============================================================ */
.klx-wrap { max-width:var(--klx-wrap,1320px) !important; width:100%; margin:0 auto !important;
  padding-left:48px !important; padding-right:48px !important; }
.klx-eyebrow .elementor-heading-title {
  font-family:var(--klx-text) !important; font-weight:700 !important; font-size:12px !important;
  letter-spacing:.32em !important; text-transform:uppercase !important; color:var(--klx-accent) !important;
  display:flex !important; align-items:center; gap:14px; line-height:1.4 !important; }
.klx-eyebrow .elementor-heading-title::before { content:""; width:36px; height:1px; background:var(--klx-gold); opacity:.7; flex:none; }
.klx-eyebrow-c .elementor-heading-title { justify-content:center; }
.klx-eyebrow-c .elementor-heading-title::after { content:""; width:36px; height:1px; background:var(--klx-gold); opacity:.7; flex:none; }
.klx-display .elementor-heading-title {
  font-family:var(--klx-display) !important; font-weight:500 !important;
  font-size:clamp(34px,3.4vw,52px) !important; line-height:1.08 !important; letter-spacing:-.015em !important;
  color:var(--klx-txt) !important; }
.klx-display .elementor-heading-title em, .klx-acc {
  font-family:var(--klx-serif) !important; font-style:italic !important; font-weight:450 !important;
  color:var(--klx-accent) !important; letter-spacing:0 !important; }
.klx-display-c .elementor-heading-title { text-align:center !important; }
.klx-lead { color:var(--klx-txt-dim) !important; }
.klx-lead p { font-size:18px !important; max-width:560px; line-height:1.65 !important; margin:0; }

/* ---- buttons (Elementor button widget) ---- */
.klx-btn-gold .elementor-button, .klx-btn-line .elementor-button {
  font-family:var(--klx-text) !important; font-weight:700 !important; font-size:14px !important;
  letter-spacing:.08em !important; text-transform:uppercase !important; line-height:1 !important;
  padding:17px 32px !important; border-radius:100px !important; white-space:nowrap !important;
  transition:transform .35s var(--klx-ease), box-shadow .35s var(--klx-ease), background .35s, color .35s, border-color .35s !important; }
.klx-btn-gold .elementor-button { background:var(--klx-cta-fill) !important; color:var(--klx-cta-ink) !important;
  border:none !important; box-shadow:var(--klx-cta-shadow) !important; }
.klx-btn-gold .elementor-button:hover { transform:translateY(-2px); background:var(--klx-cta-fill-h) !important;
  box-shadow:var(--klx-cta-shadow-h) !important; }
.klx-btn-line .elementor-button { background:transparent !important; border:1px solid var(--klx-btnline-border) !important;
  color:var(--klx-txt) !important; box-shadow:none !important; }
.klx-btn-line .elementor-button:hover { border-color:var(--klx-btnline-border-h) !important;
  color:var(--klx-btnline-color-h) !important; transform:translateY(-2px); }
.klx-arrow .elementor-button-text::after {
  content:''; display:inline-block; width:15px; height:11px; margin-left:10px; vertical-align:-1px;
  background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 16' fill='none'%3E%3Cpath d='M1 8h20M15 2l7 6-7 6' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 16' fill='none'%3E%3Cpath d='M1 8h20M15 2l7 6-7 6' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
  transition:transform .35s var(--klx-ease); }
.klx-arrow .elementor-button:hover .elementor-button-text::after { transform:translateX(4px); }
.klx-btn-ghost .elementor-button {
  font-family:var(--klx-text) !important; background:transparent !important; border:none !important;
  color:var(--klx-link) !important; font-weight:700 !important; font-size:13px !important;
  letter-spacing:.14em !important; text-transform:uppercase !important; padding:14px 0 8px 0 !important;
  border-bottom:1px solid var(--klx-gold-soft) !important; border-radius:0 !important; box-shadow:none !important;
  min-height:44px; box-sizing:border-box; }
.klx-btn-ghost .elementor-button:hover { border-bottom-color:var(--klx-link) !important; }

/* ---- section head split ---- */
.klx-sechead { margin-bottom:40px; }
.klx-sechead-split { display:flex !important; flex-direction:row !important; justify-content:space-between !important;
  align-items:flex-end !important; gap:40px; flex-wrap:wrap; }
.klx-sechead-split .elementor-widget-button { width:auto !important; }
.klx-sechead-split > .e-con { width:auto !important; max-width:100%; flex:0 1 auto !important; }
.klx-hero-ctas .elementor-widget, .klx-who > .e-con { width:auto !important; }

/* ---- reveal on scroll (JS-gated, content never hides without JS) ---- */
@media (prefers-reduced-motion: no-preference) {
  html.klx-js .klx-reveal { opacity:0; transform:translateY(14px);
    transition:opacity .55s var(--klx-ease), transform .55s var(--klx-ease); }
  html.klx-js .klx-reveal.klx-in { opacity:1; transform:none; }
}

/* ============================================================
   HEADER
   ============================================================ */
.klx-hdr { position:fixed !important; top:0 !important; left:0 !important; right:0 !important;
  z-index:100 !important; width:100% !important; max-width:none !important;
  transition:background .4s, border-color .4s;
  border-bottom:1px solid var(--klx-hdr-border) !important;
  background:var(--klx-hdr-bg) !important; }
html:not([data-theme="dark"]) .klx-hdr { -webkit-backdrop-filter:blur(18px); backdrop-filter:blur(18px); }
html[data-theme="dark"] .klx-hdr.klx-scrolled { -webkit-backdrop-filter:blur(18px); backdrop-filter:blur(18px); }
.klx-hdr.klx-scrolled { background:var(--klx-hdr-bg-sc) !important; border-bottom-color:var(--klx-hdr-border-sc) !important; }
.klx-hdr-in { max-width:var(--klx-wrap,1320px) !important; margin:0 auto !important;
  padding:0 48px !important; height:84px; display:flex !important; flex-direction:row !important;
  align-items:center !important; justify-content:space-between !important; gap:32px; width:100%; }
.klx-hdr-logo { width:auto !important; flex:none !important; }
.klx-hdr-logo img { height:44px !important; width:auto !important; }
.klx-hdr-nav { display:flex !important; flex-direction:row !important; align-items:center !important;
  gap:38px !important; width:auto !important; flex:none !important; }
.klx-hdr-nav .elementor-widget-heading { width:auto !important; }
.klx-hdr-link .elementor-heading-title, .klx-hdr-link .elementor-heading-title a {
  font-family:var(--klx-text) !important; font-size:14px !important; font-weight:500 !important;
  letter-spacing:.06em !important; color:var(--klx-txt-dim) !important; }
.klx-hdr-link .elementor-heading-title a { position:relative; padding:6px 0; transition:color .3s; display:inline-block; }
.klx-hdr-link .elementor-heading-title a::after { content:""; position:absolute; left:0; bottom:0; width:0; height:1px;
  background:var(--klx-accent); transition:width .35s var(--klx-ease); }
.klx-hdr-link .elementor-heading-title a:hover { color:var(--klx-txt) !important; }
.klx-hdr-link .elementor-heading-title a:hover::after { width:100%; }
.klx-hdr-right { display:flex !important; flex-direction:row !important; align-items:center !important;
  gap:16px !important; width:auto !important; flex:none !important; }
.klx-hdr-right .elementor-widget { width:auto !important; }
.klx-hdr-cta .elementor-button { background:transparent !important; border:1px solid var(--klx-cta-fill) !important;
  color:var(--klx-cta-fill) !important; padding:12px 26px !important; border-radius:100px !important;
  font-family:var(--klx-text) !important; font-size:13px !important; font-weight:700 !important;
  letter-spacing:.1em !important; text-transform:uppercase !important; line-height:1 !important;
  box-shadow:none !important; transition:background .3s, color .3s !important; }
.klx-hdr-cta .elementor-button:hover { background:var(--klx-cta-fill) !important; color:var(--klx-cta-ink) !important; transform:none; }

/* ---- header mega panels (v4.7.0, JS builds them into the nav items) ----
   Positioning trick: nav chain is forced static so the panel's absolute
   containing block is .klx-hdr itself (position:fixed) → full-width sheet
   that rides the fixed header. DOM order = trigger, then its panel → natural
   tab order (trigger → panel links → next trigger). */
.klx-hdr-in, .klx-hdr-nav { position:static !important; }
.klx-hdr-nav .elementor-widget-heading { position:static !important; }
.klx-navitem > .klx-mega { position:absolute; left:0; right:0; top:100%; z-index:60;
  background:var(--klx-bg);
  border-bottom:1px solid var(--klx-hdr-border-sc); box-shadow:var(--klx-panel-shadow);
  max-height:calc(100vh - 120px); overflow:auto; overscroll-behavior:contain;
  opacity:0; visibility:hidden; transform:translateY(-8px); pointer-events:none;
  transition:opacity .26s var(--klx-ease), transform .26s var(--klx-ease), visibility 0s linear .26s; }
.klx-navitem.klx-mega-open > .klx-mega { opacity:1; visibility:visible; transform:none;
  pointer-events:auto; transition-delay:0s; }
@media (prefers-reduced-motion:reduce){ .klx-navitem > .klx-mega { transition:none; } }
.klx-mega-in { max-width:var(--klx-wrap,1320px); margin:0 auto; padding:34px 48px 40px;
  display:flex; gap:56px; align-items:stretch; }
.klx-mega-eyebrow { font-family:var(--klx-text); font-size:11px; font-weight:700;
  letter-spacing:.22em; text-transform:uppercase; color:var(--klx-accent); margin:2px 0 14px; }
.klx-mega-cols { flex:1 1 auto; min-width:0; }
.klx-mega-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2px 26px; align-content:start; }
a.klx-mega-link { font-family:var(--klx-text); font-size:15px; font-weight:500; color:var(--klx-txt);
  text-decoration:none; padding:9px 12px; margin:0 -12px; border-radius:10px;
  display:flex; align-items:center; gap:9px; transition:background .2s, color .2s; }
a.klx-mega-link .klx-mega-arr { opacity:0; transform:translateX(-4px); transition:opacity .2s, transform .2s;
  color:var(--klx-accent); flex:none; display:inline-flex; }
a.klx-mega-link .klx-mega-arr svg { width:13px; height:13px; display:block; }
a.klx-mega-link:hover, a.klx-mega-link:focus-visible { background:var(--klx-row-hover); color:var(--klx-link); }
a.klx-mega-link:hover .klx-mega-arr, a.klx-mega-link:focus-visible .klx-mega-arr { opacity:1; transform:none; }
a.klx-mega-link:focus-visible { outline:2px solid var(--klx-accent); outline-offset:-2px; }
.klx-mega-feat { flex:0 0 300px; display:flex; flex-direction:column; gap:16px; }
a.klx-mega-card { display:block; position:relative; border-radius:16px; overflow:hidden;
  border:1px solid var(--klx-card-border); isolation:isolate; transform:translateZ(0);
  -webkit-mask-image:-webkit-radial-gradient(white,black); text-decoration:none; }
.klx-mega-card img { width:100%; aspect-ratio:16/10; object-fit:cover; display:block;
  transition:transform .9s var(--klx-ease); }
a.klx-mega-card:hover img, a.klx-mega-card:focus-visible img { transform:scale(1.05); }
a.klx-mega-card::after { content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg,rgba(20,11,8,0) 40%,rgba(20,11,8,.72) 100%); }
.klx-mega-card-tag { position:absolute; z-index:2; top:12px; left:12px; font-family:var(--klx-text);
  font-size:10px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:#fff;
  background:rgba(20,11,8,.45); border:1px solid rgba(255,255,255,.3); border-radius:100px;
  padding:5px 11px; -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); }
.klx-mega-card-t { position:absolute; z-index:2; left:16px; right:16px; bottom:13px; color:#fff;
  font-family:var(--klx-display); font-weight:500; font-size:19px; line-height:1.2; letter-spacing:-.01em; }
a.klx-mega-all { align-self:flex-start; font-family:var(--klx-text); font-size:13px; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase; color:var(--klx-link); text-decoration:none;
  border-bottom:1px solid var(--klx-gold-soft); padding:2px 1px 4px; transition:border-color .2s; }
a.klx-mega-all:hover, a.klx-mega-all:focus-visible { border-bottom-color:var(--klx-link); }
/* small anchored panel (About) */
.klx-hdr-nav .elementor-widget-heading.klx-navitem-small { position:relative !important; }
.klx-navitem-small > .klx-mega { left:50%; right:auto; top:calc(100% + 16px); min-width:225px;
  transform:translate(-50%,-8px); border-radius:16px; border:1px solid var(--klx-panel-border);
  border-bottom:1px solid var(--klx-panel-border); overflow:hidden; }
.klx-navitem-small.klx-mega-open > .klx-mega { transform:translate(-50%,0); }
.klx-navitem-small .klx-mega-in { flex-direction:column; gap:2px; padding:12px; }
@media (max-width:1023px){ .klx-navitem > .klx-mega { display:none !important; } }

/* ---- theme switch pill (JS injects the button into .klx-tsw-mount) ---- */
.klx-tsw-mount { display:none; }
html.klx-js .klx-tsw-mount { display:block; }
.klx-tsw-mount .elementor-heading-title { display:flex !important; align-items:center; }
.klx-tswitch {
  display:inline-flex; align-items:center; gap:5px; padding:5px;
  border:1px solid var(--klx-hair); border-radius:100px; background:var(--klx-tsw-bg);
  transition:border-color .3s; flex:none; cursor:pointer; font:inherit;
  min-height:44px; box-sizing:border-box; }
.klx-tswitch:hover { border-color:var(--klx-gold-soft); }
.klx-tswitch:focus-visible { outline:2px solid var(--klx-gold); outline-offset:3px; }
.klx-tsw-ico { width:32px; height:32px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  color:var(--klx-txt-faint); border:1px solid transparent;
  transition:color .3s, border-color .3s, box-shadow .3s, background .3s; }
.klx-tsw-ico svg { width:15px; height:15px; display:block; }
html:not([data-theme="dark"]) .klx-tsw-sun,
html[data-theme="dark"] .klx-tsw-moon {
  color:var(--klx-accent); border-color:var(--klx-gold); background:var(--klx-ico-bg);
  box-shadow:0 0 0 3px rgba(201,154,107,.18); }

/* ---- burger + mobile nav (JS-injected) ---- */
.klx-burger, .klx-burger:hover, .klx-burger:focus, .klx-burger:active {
  background:transparent !important; border:none !important; box-shadow:none !important; }
.klx-burger { display:none; flex-direction:column; gap:6px; padding:10px;
  cursor:pointer; min-width:44px; min-height:44px; align-items:center; justify-content:center; box-sizing:border-box; }
.klx-burger:focus-visible { outline:2px solid var(--klx-gold); outline-offset:3px; }
.klx-burger span { display:block; width:26px; height:1.6px; background:var(--klx-txt);
  transition:transform .35s var(--klx-ease), opacity .3s; }
.klx-mnav { position:fixed; inset:0; z-index:99; background:var(--klx-bg);
  display:flex; flex-direction:column; justify-content:center; padding:0 40px; gap:8px;
  opacity:0; visibility:hidden; transition:opacity .4s, visibility .4s; }
.klx-mnav.klx-open { opacity:1; visibility:visible; }
.klx-mnav a { font-family:var(--klx-display); font-size:34px; font-weight:500; padding:12px 0;
  border-bottom:1px solid var(--klx-mnav-hair); color:var(--klx-txt); text-decoration:none; }
.klx-mnav a em { font-family:var(--klx-serif); font-style:italic; color:var(--klx-accent); }
.klx-mnav-theme { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:26px; }
.klx-mnav-theme span { font-family:var(--klx-text); font-size:11px; font-weight:700; letter-spacing:.28em;
  text-transform:uppercase; color:var(--klx-txt-dim); }
body.klx-mnav-lock { overflow:hidden; }
body.klx-mnav-lock .klx-burger span:nth-child(1) { transform:translateY(7.6px) rotate(45deg); }
body.klx-mnav-lock .klx-burger span:nth-child(2) { opacity:0; }
body.klx-mnav-lock .klx-burger span:nth-child(3) { transform:translateY(-7.6px) rotate(-45deg); }

/* ============================================================
   HERO, cinematic switcher (photography + white copy in BOTH themes)
   ============================================================ */
.klx-hero { position:relative !important; height:100vh !important; min-height:680px !important;
  overflow:clip !important; background:var(--klx-hero-bg) !important; width:100% !important; max-width:none !important; }
.klx-slide { position:absolute !important; inset:0 !important; width:100% !important; max-width:none !important;
  opacity:0; transition:opacity 1.2s ease; pointer-events:none; z-index:1; }
.klx-slide.is-active { opacity:1; pointer-events:auto; z-index:2; }
.klx-slide-bg { position:absolute !important; inset:0 !important; width:100% !important; height:100% !important;
  max-width:none !important; background-size:cover !important; background-position:center !important; }
html.klx-js .klx-slide.is-active .klx-slide-bg { animation:klxDrift 14s var(--klx-ease) both; }
@keyframes klxDrift { from { transform:scale(1.12) translateX(1.5%); } to { transform:scale(1.02) translateX(0); } }
@media (prefers-reduced-motion:reduce){
  html.klx-js .klx-slide.is-active .klx-slide-bg { animation:none; }
  .klx-slide { transition:none; }
}
.klx-slide-bg::after { content:""; position:absolute; inset:0; background:var(--klx-hero-scrim); }
.klx-slide-cap { position:absolute !important; inset:0 !important; z-index:5 !important;
  display:flex !important; flex-direction:column !important; justify-content:center !important;
  align-items:flex-start !important;
  max-width:var(--klx-wrap,1320px) !important; margin:0 auto !important; padding:84px 48px 150px !important; }
.klx-slide-cap > .elementor-widget, .klx-slide-cap > .e-con { width:auto !important; max-width:100%; }
.klx-kicker .elementor-heading-title { font-family:var(--klx-text) !important; font-size:12px !important;
  font-weight:700 !important; letter-spacing:.34em !important; text-transform:uppercase !important;
  color:var(--klx-hero-gold) !important; display:flex !important; align-items:center; gap:16px; }
.klx-kicker .elementor-heading-title::before { content:""; width:44px; height:1px; background:var(--klx-gold); flex:none; }
.klx-hero-title .elementor-heading-title {
  font-family:var(--klx-display) !important; font-weight:500 !important;
  font-size:clamp(46px,6.6vw,96px) !important; line-height:1.02 !important; letter-spacing:-.02em !important;
  max-width:12ch; color:#fff !important; }
.klx-hero-title .elementor-heading-title em {
  font-family:var(--klx-serif) !important; font-style:italic !important; font-weight:450 !important;
  color:var(--klx-hero-gold) !important; letter-spacing:0 !important; }
.klx-hero-title .klx-wline { display:inline-block; overflow:hidden; vertical-align:bottom; padding-bottom:.1em; margin-bottom:-.1em; }
.klx-hero-title .klx-word { display:inline-block; }
html.klx-js .klx-hero-title .klx-word { transition:transform .8s var(--klx-ease); transition-delay:var(--wd,0ms); }
html.klx-js .klx-hero-title:not(.klx-in) .klx-word { transform:translateY(115%); }
@media (prefers-reduced-motion:reduce){
  html.klx-js .klx-hero-title .klx-word { transition:none; }
  html.klx-js .klx-hero-title:not(.klx-in) .klx-word { transform:none; }
}
.klx-hero-sub { max-width:480px; }
.klx-hero-sub, .klx-hero-sub p { color:rgba(255,255,255,.78) !important; font-size:19px !important; line-height:1.6 !important; }
.klx-hero-ctas { display:flex !important; flex-direction:row !important; gap:18px !important; flex-wrap:wrap; width:auto !important; }
html:not([data-theme="dark"]) .klx-slide .klx-btn-line .elementor-button { border-color:rgba(255,255,255,.55) !important; color:#fff !important; }
html:not([data-theme="dark"]) .klx-slide .klx-btn-line .elementor-button:hover { border-color:#fff !important; color:#fff !important; }
html[data-theme="dark"] .klx-slide .klx-btn-line .elementor-button { color:#fff !important; }
/* caption stagger on slide switch */
html.klx-js .klx-slide .klx-slide-cap > * { opacity:0; transform:translateY(14px);
  transition:opacity .5s ease, transform .5s var(--klx-ease); }
html.klx-js .klx-slide.is-active .klx-slide-cap > * { opacity:1; transform:none; }
html.klx-js .klx-slide.is-active .klx-slide-cap > *:nth-child(1) { transition-delay:.15s; }
html.klx-js .klx-slide.is-active .klx-slide-cap > *:nth-child(2) { transition-delay:.2s; }
html.klx-js .klx-slide.is-active .klx-slide-cap > *:nth-child(3) { transition-delay:.35s; }
html.klx-js .klx-slide.is-active .klx-slide-cap > *:nth-child(4) { transition-delay:.45s; }
html.klx-js .klx-slide:not(.is-active) .klx-slide-cap > * { transition-delay:0s !important; transition-duration:.25s; }
@media (prefers-reduced-motion:reduce){
  html.klx-js .klx-slide .klx-slide-cap > * { opacity:1; transform:none; transition:none; }
}

/* -- vertical destination switcher (JS-built) -- */
.klx-hero-switch { position:absolute; right:52px; top:50%; transform:translateY(-50%); z-index:6;
  display:flex; flex-direction:column; align-items:flex-end; gap:0; }
.klx-hero-switch::before { content:""; position:absolute; top:22px; bottom:22px; right:21px; width:1px;
  background:linear-gradient(180deg,transparent,var(--klx-hero-hairline) 15%,var(--klx-hero-hairline) 85%,transparent); }
.klx-sw-item { display:flex; align-items:center; gap:16px; padding:16px 0; position:relative;
  color:var(--klx-sw-c); transition:color .35s; background:none; border:none; cursor:pointer; font:inherit; }
.klx-sw-item:hover { color:var(--klx-sw-c-h); }
.klx-sw-name { font-family:var(--klx-text); font-size:12px; font-weight:700; letter-spacing:.24em; text-transform:uppercase;
  opacity:0; transform:translateX(8px); transition:opacity .4s, transform .4s var(--klx-ease); }
.klx-sw-item:hover .klx-sw-name { opacity:.75; transform:none; }
.klx-sw-item.on .klx-sw-name { opacity:1; transform:none; color:var(--klx-hero-gold); }
.klx-sw-num { width:44px; height:44px; border-radius:50%; flex:none; position:relative; z-index:1;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--klx-display); font-size:13px; font-weight:600; letter-spacing:.08em;
  background:var(--klx-sw-num-bg); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
  border:1px solid var(--klx-sw-num-border); transition:border-color .4s, color .4s, box-shadow .4s; }
.klx-sw-item.on .klx-sw-num { border-color:var(--klx-gold); color:var(--klx-hero-gold);
  box-shadow:0 0 0 4px rgba(201,154,107,.14), 0 0 24px rgba(201,154,107,.25); }

/* -- film strip + progress ring (JS-built) -- */
.klx-hero-strip { position:absolute; left:0; right:0; bottom:0; z-index:6;
  max-width:var(--klx-wrap,1320px); margin:0 auto; padding:0 48px 42px;
  display:flex; align-items:flex-end; justify-content:space-between; gap:28px; }
.klx-strip-thumbs { display:flex; gap:14px; }
.klx-strip-thumb { position:relative; width:104px; height:66px; border-radius:10px; overflow:hidden; flex:none;
  border:1px solid var(--klx-thumb-border); opacity:.55; padding:0; background:none; cursor:pointer;
  transition:opacity .4s, border-color .4s, transform .4s var(--klx-ease); }
.klx-strip-thumb img { width:100%; height:100%; object-fit:cover; display:block; }
.klx-strip-thumb::after { content:""; position:absolute; inset:0; background:rgba(18,9,12,.35); transition:background .4s; }
.klx-strip-thumb:hover { opacity:.85; transform:translateY(-3px); }
.klx-strip-thumb.on { opacity:1; border-color:var(--klx-gold); box-shadow:0 6px 24px rgba(0,0,0,.5); }
.klx-strip-thumb.on::after { background:transparent; }
.klx-strip-thumb .klx-tlabel { position:absolute; left:8px; bottom:5px; z-index:2; font-family:var(--klx-text);
  font-size:9px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:#fff;
  text-shadow:0 1px 6px rgba(0,0,0,.8); }
.klx-strip-meta { display:flex; align-items:center; gap:20px; }
.klx-strip-count { font-family:var(--klx-display); font-size:15px; letter-spacing:.14em; color:var(--klx-hero-dim); }
.klx-strip-count b { color:var(--klx-hero-gold); font-weight:600; }
.klx-ring { width:52px; height:52px; flex:none; transform:rotate(-90deg); }
.klx-ring .bg { fill:none; stroke:var(--klx-ring-bg); stroke-width:2; }
.klx-ring .fg { fill:none; stroke:var(--klx-gold); stroke-width:2; stroke-linecap:round;
  stroke-dasharray:138.2; stroke-dashoffset:138.2; }

/* ============================================================
   BOOKING BAR, their real [kaylux_booking_form], duo skin
   ============================================================ */
.klx-book-panel { position:relative; overflow:visible !important;
  background:var(--klx-panel-bg) !important;
  -webkit-backdrop-filter:blur(20px); backdrop-filter:blur(20px);
  border:1px solid var(--klx-panel-border) !important; border-radius:20px !important;
  padding:14px !important; box-shadow:var(--klx-panel-shadow) !important; }
.klx-book-panel::before { content:""; position:absolute; top:0; left:10%; right:10%; height:1px;
  background:linear-gradient(90deg,transparent,var(--klx-gold-soft),transparent); }
.klx-book-panel .kaylux-form-container { background:transparent !important; padding:0 !important; border-radius:0 !important; }
.klx-book-panel #kaylux-form { display:grid !important; grid-template-columns:repeat(4,1fr); gap:0 !important; }
.klx-book-panel .kaylux-form { display:contents !important; }
.klx-book-panel .field-group { min-width:0 !important; flex:none !important; margin:0 !important;
  padding:12px 24px !important; border-right:1px solid var(--klx-hair-soft);
  display:flex !important; flex-direction:column !important; gap:5px; justify-content:center; }
.klx-book-panel .field-group:nth-child(4), .klx-book-panel .field-group:last-of-type { border-right:none; }
.klx-book-panel .field-group:nth-child(n+5) { border-top:1px solid var(--klx-hair-soft); }
.klx-book-panel label { font-family:var(--klx-text) !important; font-size:10px !important; font-weight:700 !important;
  letter-spacing:.26em !important; text-transform:uppercase !important; color:var(--klx-accent) !important;
  margin:0 !important; }
.klx-book-panel .kaylux-form input,
.klx-book-panel .guest-trigger, .klx-book-panel .custom-select-trigger {
  background:transparent !important; border:none !important; border-radius:0 !important;
  height:auto !important; padding:2px 22px 2px 0 !important;
  font-family:var(--klx-text) !important; font-size:16px !important; font-weight:500 !important;
  color:var(--klx-txt) !important; box-shadow:none !important; }
.klx-book-panel .kaylux-form input::placeholder { color:var(--klx-txt-faint) !important; opacity:1; }
.klx-book-panel .kaylux-form input:focus,
.klx-book-panel .guest-trigger:focus, .klx-book-panel .custom-select-trigger:focus {
  outline:1px solid var(--klx-gold-soft) !important; outline-offset:4px; border-radius:2px !important; }
.klx-book-panel .input-icon { display:none !important; }
.klx-book-panel .input-wrapper { width:100%; }
.klx-book-panel .clear-icon { right:0 !important; color:var(--klx-accent) !important; }
.klx-book-panel .error { border-bottom:1px solid #E0455A !important; }
.klx-book-panel .dest-dropdown, .klx-book-panel .package-dropdown, .klx-book-panel .guest-dropdown {
  background:var(--klx-opt-bg) !important; border:1px solid var(--klx-hair) !important;
  border-radius:12px !important; box-shadow:var(--klx-panel-shadow) !important; color:var(--klx-txt) !important; }
.klx-book-panel .dest-option, .klx-book-panel .package-option { color:var(--klx-txt) !important; }
.klx-book-panel .dest-option:hover, .klx-book-panel .package-option:hover { background:var(--klx-maroon) !important; color:#fff !important; }
.klx-book-panel .guest-dropdown, .klx-book-panel .guest-dropdown * { color:var(--klx-txt); font-family:var(--klx-text); }
.klx-book-panel .guest-room label { letter-spacing:.04em !important; text-transform:none !important;
  font-size:13px !important; color:var(--klx-txt) !important; }
.klx-book-panel #get-prices-btn { grid-column:4; align-self:center; justify-self:stretch;
  margin:12px 6px 6px !important; padding:16px 24px !important; width:auto !important;
  font-family:var(--klx-text) !important; font-weight:700 !important; font-size:13px !important;
  letter-spacing:.08em !important; text-transform:uppercase !important; line-height:1 !important;
  background:var(--klx-cta-fill) !important; color:var(--klx-cta-ink) !important;
  border:none !important; border-radius:100px !important; box-shadow:var(--klx-cta-shadow) !important;
  transition:transform .35s var(--klx-ease), box-shadow .35s var(--klx-ease), background .35s !important; }
.klx-book-panel #get-prices-btn:hover { transform:translateY(-2px); background:var(--klx-cta-fill-h) !important;
  box-shadow:var(--klx-cta-shadow-h) !important; }
.klx-book-note, .klx-book-note p { text-align:center !important; font-size:13px !important;
  color:var(--klx-txt-faint) !important; letter-spacing:.04em !important; }
.klx-book-note b { color:var(--klx-accent); font-weight:700; }
@media (max-width:1180px) {
  .klx-book-panel #kaylux-form { grid-template-columns:1fr 1fr; }
  .klx-book-panel .field-group { border-right:none !important; border-top:none !important;
    border-bottom:1px solid var(--klx-hair-soft); }
  .klx-book-panel #get-prices-btn { grid-column:1 / -1; justify-self:stretch; }
}
@media (max-width:640px) {
  .klx-book-panel #kaylux-form { grid-template-columns:1fr; }
}

/* ============================================================
   DESTINATIONS RAIL
   ============================================================ */
.klx-rail { display:flex !important; flex-direction:row !important; flex-wrap:nowrap !important;
  overflow-x:auto !important; overflow-y:hidden !important; scroll-snap-type:x mandatory;
  scroll-padding-left:48px;
  gap:24px !important; max-width:var(--klx-wrap,1320px) !important; margin:0 auto !important; width:100%;
  padding:8px 48px 28px !important;
  scrollbar-width:thin; scrollbar-color:var(--klx-gold-soft) transparent; }
.klx-rail::-webkit-scrollbar { height:4px; }
.klx-rail::-webkit-scrollbar-thumb { background:var(--klx-gold-soft); border-radius:4px; }
.klx-rail > .e-con { flex:0 0 308px !important; width:308px !important; min-width:308px; scroll-snap-align:start; }
.klx-dcard { position:relative !important; height:440px !important; border-radius:18px !important;
  overflow:clip !important; border:1px solid var(--klx-hair-soft) !important; cursor:pointer;
  transition:transform .5s var(--klx-ease), box-shadow .5s var(--klx-ease), border-color .5s !important; }
.klx-dcard:hover { transform:translateY(-10px); border-color:var(--klx-gold-soft) !important;
  box-shadow:var(--klx-dcard-shadow-h) !important; }
.klx-dcard-img { position:absolute !important; inset:0 !important; width:100% !important; height:100% !important; }
.klx-dcard-img img { width:100% !important; height:440px !important; object-fit:cover;
  transition:transform 1.1s var(--klx-ease); display:block; }
.klx-dcard:hover .klx-dcard-img img { transform:scale(1.07); }
.klx-dcard-img::after { content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg,rgba(18,9,12,.05) 40%,rgba(18,9,12,.86) 100%); }
.klx-dcard-txt { position:absolute !important; left:26px !important; right:26px !important; bottom:24px !important;
  top:auto !important; width:auto !important; z-index:2 !important; }
.klx-dcard-days .elementor-heading-title { font-family:var(--klx-text) !important; font-size:11px !important;
  font-weight:700 !important; letter-spacing:.24em !important; text-transform:uppercase !important;
  color:var(--klx-gold) !important; }
.klx-dcard-name .elementor-heading-title { font-family:var(--klx-display) !important; font-weight:500 !important;
  font-size:27px !important; letter-spacing:-.01em !important; margin-top:6px; color:#fff !important; }
.klx-dcard-from .elementor-heading-title { font-family:var(--klx-text) !important; font-size:13px !important;
  font-weight:400 !important; color:rgba(255,255,255,.64) !important; margin-top:4px; }
.klx-dcard::before { content:""; position:absolute; top:20px; right:20px; z-index:2; width:42px; height:42px;
  border-radius:50%; border:1px solid rgba(255,255,255,.35); background:rgba(18,9,12,.3);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17L17 7M9 7h8v8'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:center; background-size:15px 15px;
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
  opacity:0; transform:translateY(-6px); transition:opacity .4s, transform .4s var(--klx-ease); }
.klx-dcard:hover::before { opacity:1; transform:none; }

/* ============================================================
   BUILD YOUR PACKAGE, matrix
   ============================================================ */
.klx-mgrid { display:grid !important; grid-template-columns:repeat(3,1fr); gap:20px !important; }
.klx-mod { position:relative !important; background:var(--klx-surface) !important;
  border:1px solid var(--klx-card-border) !important; border-radius:16px !important;
  padding:34px 30px 30px !important; text-align:left; cursor:pointer;
  transition:border-color .4s, transform .4s var(--klx-ease), background .4s, box-shadow .4s !important;
  box-shadow:var(--klx-shadow-soft) !important;
  display:flex !important; flex-direction:column !important; gap:12px !important; width:100% !important; }
.klx-mod:hover { transform:translateY(-5px); border-color:var(--klx-gold-soft) !important;
  box-shadow:var(--klx-shadow-card) !important; }
.klx-mod.on { border-color:var(--klx-gold) !important; background:var(--klx-mod-on-bg) !important;
  box-shadow:var(--klx-mod-on-shadow) !important; }
.klx-mod-title .elementor-heading-title { font-family:var(--klx-display) !important; font-weight:500 !important;
  font-size:21px !important; color:var(--klx-txt) !important; position:relative; padding-top:60px; }
.klx-mod-title .elementor-heading-title::before { content:""; position:absolute; top:0; left:0;
  width:48px; height:48px; border-radius:12px; background:var(--klx-ico-bg);
  border:1px solid var(--klx-gold-soft); box-sizing:border-box; }
.klx-mod-title .elementor-heading-title::after { content:""; position:absolute; top:13px; left:13px;
  width:22px; height:22px; background:var(--klx-accent);
  -webkit-mask:var(--klx-i) center/contain no-repeat; mask:var(--klx-i) center/contain no-repeat; }
.klx-ico-flight .klx-mod-title .elementor-heading-title::after { --klx-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17.8 19.2L16 11l3.5-3.5C21 6 21.5 4 21 3c-1-.5-3 0-4.5 1.5L13 8 4.8 6.2c-.5-.1-.9.1-1.1.5l-.3.5c-.2.5-.1 1 .3 1.3L9 12l-2 3H4l-1 1 3 2 2 3 1-1v-3l3-2 3.5 5.3c.3.4.8.5 1.3.3l.5-.2c.4-.3.6-.7.5-1.2z'/%3E%3C/svg%3E"); }
.klx-ico-stay .klx-mod-title .elementor-heading-title::after { --klx-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21V8l9-5 9 5v13M9 21v-6h6v6M3 21h18'/%3E%3C/svg%3E"); }
.klx-ico-exp .klx-mod-title .elementor-heading-title::after { --klx-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 3c2.5 2.6 4 5.6 4 9s-1.5 6.4-4 9c-2.5-2.6-4-5.6-4-9s1.5-6.4 4-9zM3.5 9h17M3.5 15h17'/%3E%3C/svg%3E"); }
.klx-ico-car .klx-mod-title .elementor-heading-title::after { --klx-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 17h14l2-6H3l2 6zM5 17l-1 3h16l-1-3M7 11V7a2 2 0 012-2h6a2 2 0 012 2v4'/%3E%3C/svg%3E"); }
.klx-ico-dine .klx-mod-title .elementor-heading-title::after { --klx-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 3v7a4 4 0 008 0V3M12 14v7M8 21h8'/%3E%3C/svg%3E"); }
.klx-ico-con .klx-mod-title .elementor-heading-title::after { --klx-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2a7 7 0 017 7c0 5-7 13-7 13S5 14 5 9a7 7 0 017-7z'/%3E%3Ccircle cx='12' cy='9' r='2.5'/%3E%3C/svg%3E"); }
.klx-mod-text, .klx-mod-text p { font-size:14.5px !important; color:var(--klx-txt-dim) !important; line-height:1.6 !important; }
.klx-mod::after { content:"✓"; position:absolute; top:22px; right:22px; width:28px; height:28px; border-radius:50%;
  border:1px solid var(--klx-hair); display:flex; align-items:center; justify-content:center;
  color:transparent; transition:all .35s var(--klx-ease); font-size:14px; }
.klx-mod.on::after { background:var(--klx-gold); border-color:var(--klx-gold); color:var(--klx-on-gold); }
.klx-mxbar { margin-top:16px; background:var(--klx-bar-bg) !important; border:1px solid var(--klx-bar-border) !important;
  border-radius:100px !important; box-shadow:var(--klx-shadow-soft) !important;
  padding:16px 18px 16px 34px !important; display:flex !important; flex-direction:row !important;
  align-items:center !important; justify-content:space-between !important; gap:24px !important; flex-wrap:wrap; }
.klx-mxbar .klx-mxsum, .klx-mxbar .klx-mxsum p { font-size:15px !important; color:var(--klx-txt-dim) !important; margin:0; }
.klx-mxbar .klx-mxsum b { color:var(--klx-accent); font-weight:700; }
.klx-mxbar .elementor-widget { width:auto !important; }

/* ============================================================
   COLLECTIONS, bento
   ============================================================ */
.klx-bento { display:grid !important; grid-template-columns:1.05fr 1fr 1fr; grid-template-rows:280px 280px;
  gap:20px !important; }
.klx-bcard { position:relative !important; border-radius:18px !important; overflow:clip !important;
  border:1px solid var(--klx-hair-soft) !important; cursor:pointer; width:100% !important;
  transition:transform .5s var(--klx-ease), border-color .5s, box-shadow .5s !important; }
.klx-bcard.klx-tall { grid-row:span 2; }
.klx-bcard:hover { transform:translateY(-6px); border-color:var(--klx-gold-soft) !important;
  box-shadow:var(--klx-bcard-shadow-h) !important; }
.klx-bcard-img { position:absolute !important; inset:0 !important; width:100% !important; height:100% !important; }
.klx-bcard-img img { width:100% !important; height:100% !important; object-fit:cover;
  transition:transform 1.1s var(--klx-ease); display:block; }
.klx-bcard:hover .klx-bcard-img img { transform:scale(1.06); }
.klx-bcard-img::after { content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg,rgba(18,9,12,.08) 40%,rgba(18,9,12,.85) 100%); }
.klx-bcard-txt { position:absolute !important; left:26px !important; right:26px !important; bottom:22px !important;
  top:auto !important; width:auto !important; z-index:2 !important; }
.klx-bcard-tag .elementor-heading-title { font-family:var(--klx-text) !important; font-size:10.5px !important;
  font-weight:700 !important; letter-spacing:.26em !important; text-transform:uppercase !important;
  color:var(--klx-gold) !important; }
.klx-bcard-name .elementor-heading-title { font-family:var(--klx-display) !important; font-weight:500 !important;
  font-size:24px !important; color:#fff !important; margin-top:5px; }
.klx-bcard.klx-tall .klx-bcard-name .elementor-heading-title { font-size:32px !important; }
.klx-bcard-sub, .klx-bcard-sub p { font-size:14px !important; color:rgba(255,255,255,.72) !important;
  margin-top:6px; max-width:36ch; line-height:1.5 !important; }

/* ============================================================
   MEET KADIE
   ============================================================ */
.klx-kadie { background:var(--klx-bg-2) !important; border-top:1px solid var(--klx-hair-soft) !important;
  border-bottom:1px solid var(--klx-hair-soft) !important; overflow:clip !important; }
.klx-kadie-grid { display:flex !important; align-items:center !important; gap:96px !important; }
.klx-kadie-photo { position:relative !important; width:min(400px,100%) !important; flex:none !important; align-self:center; }
.klx-arch { width:100%; aspect-ratio:4/5.1; border-radius:220px 220px 18px 18px !important;
  overflow:clip !important; border:1px solid var(--klx-gold-soft) !important; position:relative !important; z-index:1; }
.klx-arch .elementor-widget-image, .klx-arch .elementor-widget-image .elementor-widget-container {
  position:absolute !important; inset:0 !important; height:100% !important; width:100% !important; }
.klx-arch img { width:100% !important; height:100% !important; object-fit:cover; object-position:center top; display:block; }
.klx-kadie-photo::before { content:""; position:absolute; inset:-18px; border:1px solid var(--klx-gold-soft);
  border-radius:238px 238px 30px 30px; pointer-events:none; }
.klx-kadie-photo::after { content:""; position:absolute; inset:-60px -80px; z-index:0;
  background:radial-gradient(closest-side,var(--klx-kadie-glow),transparent 70%); filter:blur(8px); pointer-events:none; }
.klx-kbadge { position:absolute !important; right:-26px !important; bottom:34px !important; left:auto !important;
  top:auto !important; width:auto !important; z-index:2 !important; text-align:left; white-space:nowrap;
  background:var(--klx-badge-bg) !important; border:1px solid var(--klx-gold) !important; border-radius:14px !important;
  padding:14px 20px !important; box-shadow:var(--klx-badge-shadow) !important; }
.klx-kbadge-num .elementor-heading-title { font-family:var(--klx-display) !important; font-size:22px !important;
  color:var(--klx-accent) !important; font-weight:600 !important; }
.klx-kbadge-lab .elementor-heading-title { font-family:var(--klx-text) !important; font-size:11px !important;
  letter-spacing:.18em !important; text-transform:uppercase !important; color:var(--klx-txt-dim) !important;
  font-weight:500 !important; }
.klx-kadie-copy { flex:1 1 auto !important; min-width:0; }
.klx-kadie-copy .klx-body-p, .klx-kadie-copy .klx-body-p p { color:var(--klx-txt-dim) !important;
  max-width:56ch; font-size:17px !important; line-height:1.65 !important; }
.klx-pull, .klx-pull p { font-family:var(--klx-serif) !important; font-style:italic !important; font-weight:450 !important;
  font-size:clamp(21px,1.9vw,26px) !important; line-height:1.45 !important; color:var(--klx-txt) !important; }
.klx-pull { border-left:2px solid var(--klx-gold) !important; padding:0 0 0 28px !important;
  margin:14px 0 !important; max-width:48ch; }
.klx-pull .klx-by { display:block; font-family:var(--klx-text); font-style:normal; font-size:12px; font-weight:700;
  letter-spacing:.24em; text-transform:uppercase; color:var(--klx-accent); margin-top:14px; }

/* ============================================================
   TRAVELLER MOMENTS
   ============================================================ */
.klx-moments-grid { display:grid !important; grid-template-columns:1.35fr 1fr; gap:24px !important; align-items:stretch; }
.klx-poster { position:relative !important; border-radius:20px !important; overflow:clip !important;
  border:1px solid var(--klx-hair-soft) !important; min-height:480px; width:100% !important; }
.klx-poster-img { position:absolute !important; inset:0 !important; width:100% !important; height:100% !important; }
.klx-poster-img img { width:100% !important; height:100% !important; object-fit:cover; display:block; }
.klx-poster-img::after { content:""; position:absolute; inset:0; z-index:1;
  background:radial-gradient(ellipse at center,rgba(18,9,12,.1),rgba(18,9,12,.55) 100%); }
.klx-poster video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:4; background:#000; }
.klx-play { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); z-index:3;
  width:92px; height:92px; border-radius:50%;
  background:rgba(18,9,12,.45); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  border:1px solid var(--klx-gold); display:flex; align-items:center; justify-content:center; color:var(--klx-gold);
  cursor:pointer; transition:transform .4s var(--klx-ease), background .3s, color .3s; }
.klx-play:hover { transform:translate(-50%,-50%) scale(1.08); background:var(--klx-gold); color:#1A0E12; }
.klx-play svg { width:26px; height:26px; margin-left:4px; display:block; }
html.klx-js .klx-play::before { content:""; position:absolute; inset:-1px; border-radius:50%;
  border:1px solid var(--klx-gold-soft); animation:klxPulse 2.6s ease-out infinite; }
@keyframes klxPulse { 0% { transform:scale(1); opacity:1; } 100% { transform:scale(1.55); opacity:0; } }
@media (prefers-reduced-motion:reduce){ html.klx-js .klx-play::before { animation:none; } }
.klx-chip { position:absolute !important; z-index:3 !important; width:auto !important; }
.klx-chip .elementor-heading-title { display:inline-flex !important; align-items:center; gap:8px;
  background:var(--klx-chip-bg); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  border:1px solid var(--klx-chip-border); border-radius:100px; padding:9px 18px;
  font-family:var(--klx-text) !important; font-size:13px !important; font-weight:700 !important;
  letter-spacing:.04em !important; color:var(--klx-txt) !important; }
.klx-chip .elementor-heading-title .klx-st { color:var(--klx-accent); }
.klx-chip-1 { top:26px !important; left:26px !important; right:auto !important; bottom:auto !important; }
.klx-chip-2 { top:26px !important; right:26px !important; left:auto !important; bottom:auto !important; }
.klx-chip-3 { bottom:26px !important; left:26px !important; right:auto !important; top:auto !important; }
.klx-poster-cap { position:absolute !important; bottom:24px !important; right:26px !important; left:auto !important;
  top:auto !important; width:auto !important; z-index:3 !important; }
.klx-poster-cap .elementor-heading-title { font-family:var(--klx-text) !important; font-size:11px !important;
  letter-spacing:.26em !important; text-transform:uppercase !important; color:rgba(255,255,255,.75) !important;
  font-weight:500 !important; }
.klx-irema { position:relative !important; background:var(--klx-surface) !important;
  border:1px solid var(--klx-card-border) !important; border-radius:20px !important;
  box-shadow:var(--klx-shadow-card) !important; padding:44px 40px !important;
  display:flex !important; flex-direction:column !important; justify-content:space-between !important;
  gap:28px !important; overflow:clip !important; }
.klx-irema::before { content:"\201C"; position:absolute; top:-30px; right:14px; font-family:var(--klx-serif);
  font-style:italic; font-size:220px; line-height:1; color:var(--klx-quote-c); pointer-events:none; }
.klx-stars .elementor-heading-title { color:var(--klx-accent) !important; letter-spacing:5px !important;
  font-size:16px !important; font-family:var(--klx-text) !important; }
.klx-irema-quote, .klx-irema-quote p { font-family:var(--klx-serif) !important; font-style:italic !important;
  font-weight:450 !important; font-size:clamp(20px,1.7vw,24px) !important; line-height:1.5 !important;
  color:var(--klx-txt) !important; }
.klx-who { display:flex !important; flex-direction:row !important; align-items:center !important; gap:16px !important; }
.klx-who .elementor-widget { width:auto !important; }
.klx-av .elementor-heading-title { width:52px; height:52px; border-radius:50%;
  background:linear-gradient(135deg,var(--klx-maroon),#3D0210); border:1px solid var(--klx-gold-soft);
  display:flex !important; align-items:center; justify-content:center;
  font-family:var(--klx-display) !important; font-weight:600 !important; font-size:18px !important;
  color:var(--klx-av-ink) !important; }
.klx-who-name .elementor-heading-title { font-family:var(--klx-text) !important; font-size:16px !important;
  font-weight:700 !important; color:var(--klx-txt) !important; }
.klx-who-meta .elementor-heading-title { font-family:var(--klx-text) !important; font-size:13px !important;
  color:var(--klx-txt-dim) !important; font-weight:400 !important; }

/* ============================================================
   STATS BAND
   ============================================================ */
.klx-stats { border-top:1px solid var(--klx-stats-border) !important;
  border-bottom:1px solid var(--klx-stats-border) !important; background:var(--klx-stats-bg) !important; }
.klx-stats-grid { display:grid !important; grid-template-columns:repeat(4,1fr); gap:20px !important; text-align:center; }
.klx-stat { padding:10px 20px !important; position:relative !important; width:100% !important; }
.klx-stat + .klx-stat::before { content:""; position:absolute; left:0; top:15%; bottom:15%; width:1px;
  background:var(--klx-stats-divider); }
.klx-stat-num .elementor-heading-title { font-family:var(--klx-display) !important; font-weight:500 !important;
  font-size:clamp(48px,4.6vw,68px) !important; letter-spacing:-.02em !important; color:var(--klx-stats-num) !important;
  line-height:1 !important; text-align:center !important; }
.klx-stat-num .elementor-heading-title .u { color:var(--klx-gold); font-size:.62em; vertical-align:.22em; margin-left:2px; }
.klx-stat-lab .elementor-heading-title { margin-top:12px; font-family:var(--klx-text) !important; font-size:12px !important;
  font-weight:700 !important; letter-spacing:.26em !important; text-transform:uppercase !important;
  color:var(--klx-stats-lab) !important; text-align:center !important; }

/* ============================================================
   TESTIMONIALS
   ============================================================ */
.klx-tests { display:grid !important; grid-template-columns:repeat(3,1fr); gap:20px !important; }
.klx-tcard { background:var(--klx-surface) !important; border:1px solid var(--klx-card-border) !important;
  border-radius:18px !important; padding:38px 34px !important; box-shadow:var(--klx-shadow-soft) !important;
  display:flex !important; flex-direction:column !important; gap:20px !important; width:100% !important;
  transition:transform .45s var(--klx-ease), border-color .45s, box-shadow .45s !important; }
.klx-tcard:hover { transform:translateY(-6px); border-color:var(--klx-gold-soft) !important;
  box-shadow:var(--klx-shadow-card) !important; }
.klx-tcard .klx-tquote, .klx-tcard .klx-tquote p { color:var(--klx-txt) !important; font-size:16.5px !important;
  line-height:1.7 !important; }
.klx-tcard .klx-tquote { flex:1; }
.klx-tcard .klx-tquote em { font-family:var(--klx-serif) !important; color:var(--klx-accent) !important; }
.klx-tcard .klx-who { border-top:1px solid var(--klx-hair-soft); padding-top:20px !important; }
.klx-tcard .klx-av .elementor-heading-title { width:46px; height:46px; font-size:15px !important;
  background:linear-gradient(135deg,#2A151A,var(--klx-maroon)); }
.klx-tcard .klx-who-name .elementor-heading-title { font-size:15px !important; }
.klx-tcard .klx-who-meta .elementor-heading-title { font-size:12.5px !important; }

/* ============================================================
   EVENTS
   ============================================================ */
.klx-events-list { border-top:1px solid var(--klx-hair); }
.klx-evt { display:grid !important; grid-template-columns:190px 1fr auto; gap:32px !important;
  align-items:center !important; padding:34px 8px !important; border-bottom:1px solid var(--klx-hair) !important;
  transition:background .35s, padding .35s var(--klx-ease) !important; border-radius:0 !important; }
.klx-evt:hover { background:var(--klx-row-hover) !important; padding-left:20px !important; padding-right:20px !important; }
.klx-evt-date .elementor-heading-title { font-family:var(--klx-display) !important; font-weight:500 !important;
  font-size:19px !important; color:var(--klx-accent) !important; line-height:1.3 !important; }
.klx-evt-date .elementor-heading-title span { display:block; font-family:var(--klx-text); font-size:11px;
  font-weight:700; letter-spacing:.24em; text-transform:uppercase; color:var(--klx-txt-faint); margin-top:4px; }
.klx-evt-name .elementor-heading-title { font-family:var(--klx-display) !important; font-weight:500 !important;
  font-size:clamp(21px,2vw,27px) !important; color:var(--klx-txt) !important; }
.klx-evt-name .elementor-heading-title span { display:block; font-family:var(--klx-text); font-size:14px;
  font-weight:400; color:var(--klx-txt-dim); margin-top:5px; letter-spacing:0; text-transform:none; }
.klx-evt-link .elementor-heading-title, .klx-evt-link .elementor-heading-title a {
  font-family:var(--klx-text) !important; font-size:12.5px !important; font-weight:700 !important;
  letter-spacing:.16em !important; text-transform:uppercase !important; color:var(--klx-link) !important;
  white-space:nowrap !important; }
.klx-evt-link .elementor-heading-title a { display:inline-flex; align-items:center; gap:10px; padding:14px 0;
  min-height:44px; box-sizing:border-box; }
.klx-evt-link .elementor-heading-title a::after { content:""; display:inline-block; width:14px; height:11px;
  background:currentColor; transition:transform .35s var(--klx-ease);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 16' fill='none'%3E%3Cpath d='M1 8h20M15 2l7 6-7 6' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 16' fill='none'%3E%3Cpath d='M1 8h20M15 2l7 6-7 6' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat; }
.klx-evt:hover .klx-evt-link .elementor-heading-title a::after { transform:translateX(4px); }

/* ============================================================
   JOURNAL
   ============================================================ */
.klx-journal { display:grid !important; grid-template-columns:repeat(3,1fr); gap:24px !important; }
.klx-jcard { cursor:pointer; transition:transform .45s var(--klx-ease) !important; width:100% !important; }
.klx-jcard:hover { transform:translateY(-6px); }
.klx-jimg { border-radius:16px !important; overflow:clip !important; border:1px solid var(--klx-hair-soft) !important;
  position:relative !important; }
.klx-jimg img { width:100% !important; aspect-ratio:16/11; object-fit:cover; display:block;
  transition:transform 1s var(--klx-ease); }
.klx-jcard:hover .klx-jimg img { transform:scale(1.06); }
.klx-jimg::after { content:""; position:absolute; inset:0;
  background:linear-gradient(180deg,transparent 60%,rgba(18,9,12,.4)); }
.klx-jmeta .elementor-heading-title { display:flex !important; gap:14px; align-items:center; margin-top:20px;
  font-family:var(--klx-text) !important; font-size:11px !important; font-weight:700 !important;
  letter-spacing:.22em !important; text-transform:uppercase !important; color:var(--klx-accent) !important; }
.klx-jmeta .elementor-heading-title .klx-dot { width:3px; height:3px; border-radius:50%;
  background:var(--klx-txt-faint); display:inline-block; flex:none; }
.klx-jmeta .elementor-heading-title .klx-jdate { color:var(--klx-txt-faint); }
.klx-jtitle .elementor-heading-title, .klx-jtitle .elementor-heading-title a {
  font-family:var(--klx-display) !important; font-weight:500 !important; font-size:23px !important;
  line-height:1.25 !important; color:var(--klx-txt) !important; transition:color .3s; }
.klx-jtitle { margin-top:10px; }
.klx-jcard:hover .klx-jtitle .elementor-heading-title a { color:var(--klx-link) !important; }
.klx-jex, .klx-jex p { font-size:15px !important; color:var(--klx-txt-dim) !important; margin-top:8px; line-height:1.6 !important; }

/* ============================================================
   CTA BAND
   ============================================================ */
.klx-cta { position:relative !important; overflow:clip !important; min-height:540px !important;
  display:flex !important; align-items:center !important; width:100% !important; max-width:none !important;
  background:var(--klx-ctaband-bg) !important;
  border-top:1px solid var(--klx-ctaband-border) !important; border-bottom:1px solid var(--klx-ctaband-border) !important; }
.klx-cta-bg { position:absolute !important; inset:0 !important; width:100% !important; height:100% !important;
  max-width:none !important; background-size:cover !important; background-position:center !important; }
.klx-cta-bg::after { content:""; position:absolute; inset:0; background:var(--klx-cta-scrim); }
.klx-cta-in { position:relative !important; z-index:2 !important; }
.klx-cta-in .klx-display .elementor-heading-title { font-size:clamp(38px,4.4vw,62px) !important; max-width:15ch; }
.klx-cta-in .klx-lead p { max-width:46ch; }
.klx-btn-row { display:flex !important; flex-direction:row !important; gap:18px !important; flex-wrap:wrap; margin-top:18px; }
.klx-btn-row .elementor-widget { width:auto !important; }

/* ============================================================
   FOOTER
   ============================================================ */
.klx-foot { background:var(--klx-bg-2) !important; border-top:1px solid var(--klx-foot-border) !important;
  overflow:clip !important; }
.klx-foot-giant .elementor-heading-title { font-family:var(--klx-display) !important; font-weight:500 !important;
  letter-spacing:-.025em !important; font-size:clamp(2.4rem,5.6vw,5.2rem) !important; line-height:1.02 !important;
  color:var(--klx-txt) !important; }
.klx-foot-giant .elementor-heading-title em { font-family:var(--klx-serif) !important; font-style:italic !important;
  font-weight:450 !important; color:var(--klx-accent) !important; letter-spacing:0 !important; }
.klx-foot-top { display:flex !important; flex-direction:row !important; justify-content:space-between !important;
  align-items:flex-end !important; gap:48px !important; flex-wrap:wrap; }
.klx-foot-top .elementor-widget { width:auto !important; }
.klx-foot-cols { display:grid !important; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:48px !important;
  border-top:1px solid var(--klx-hair-soft) !important; }
.klx-foot-brand img { height:52px !important; width:auto !important; }
.klx-foot-blurb, .klx-foot-blurb p { font-size:14.5px !important; color:var(--klx-txt-dim) !important;
  max-width:34ch; line-height:1.6 !important; }
.klx-foot-h .elementor-heading-title { font-family:var(--klx-text) !important; font-size:11px !important;
  font-weight:700 !important; letter-spacing:.28em !important; text-transform:uppercase !important;
  color:var(--klx-accent) !important; margin-bottom:8px; }
.klx-foot-link .elementor-heading-title, .klx-foot-link .elementor-heading-title a {
  font-family:var(--klx-text) !important; font-size:15px !important; font-weight:400 !important;
  color:var(--klx-txt-dim) !important; letter-spacing:0 !important; text-transform:none !important;
  transition:color .3s; }
.klx-foot-link .elementor-heading-title a:hover { color:var(--klx-link) !important; }
.klx-foot-legal { border-top:1px solid var(--klx-hair-soft) !important; display:flex !important;
  flex-direction:row !important; justify-content:space-between !important; align-items:center !important;
  gap:24px !important; flex-wrap:wrap; }
.klx-foot-legal .elementor-widget { width:auto !important; }
.klx-foot-copy .elementor-heading-title, .klx-legal-link .elementor-heading-title,
.klx-legal-link .elementor-heading-title a { font-family:var(--klx-text) !important; font-size:13px !important;
  font-weight:400 !important; color:var(--klx-txt-faint) !important; letter-spacing:0 !important;
  text-transform:none !important; }
.klx-legal-link .elementor-heading-title a:hover { color:var(--klx-link) !important; }
.klx-legal-links { display:flex !important; flex-direction:row !important; gap:26px !important; width:auto !important; }
.klx-legal-links .elementor-widget { width:auto !important; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1180px){
  .klx-kadie-grid { flex-direction:column !important; gap:70px !important; align-items:flex-start !important; }
  .klx-kadie-photo { max-width:420px; align-self:center; }
}
@media (max-width:1023px){
  .klx-hdr-nav { display:none !important; }
  .klx-hdr-cta { display:none !important; }
  .klx-burger { display:flex; }
  .klx-mgrid { grid-template-columns:1fr 1fr; }
  .klx-tests { grid-template-columns:1fr; max-width:640px; margin:0 auto !important; }
  .klx-journal { grid-template-columns:1fr; max-width:560px; margin:0 auto !important; }
  .klx-moments-grid { grid-template-columns:1fr; }
  .klx-bento { grid-template-columns:1fr 1fr; grid-template-rows:auto; }
  .klx-bcard { min-height:260px; }
  .klx-bcard.klx-tall { grid-column:1 / -1; grid-row:auto; min-height:380px; }
  .klx-stats-grid { grid-template-columns:1fr 1fr; gap:44px 20px !important; }
  .klx-stat:nth-child(3)::before { display:none; }
  .klx-foot-cols { grid-template-columns:1fr 1fr; gap:44px !important; }
}
@media (max-width:860px){
  .klx-hero-switch { display:none; }
  .klx-slide-cap { padding:84px 28px 210px !important; }
  .klx-hero-strip { padding:0 28px 26px; flex-direction:column; align-items:flex-start; gap:14px; }
  .klx-strip-meta { align-self:flex-end; }
  .klx-wrap { padding-left:24px !important; padding-right:24px !important; }
  .klx-hdr-in { padding:0 24px !important; height:72px; gap:16px; }
  .klx-hdr-logo img { height:36px !important; }
  .klx-rail { padding:8px 24px 24px !important; scroll-padding-left:24px; }
  .klx-rail > .e-con { flex:0 0 264px !important; width:264px !important; min-width:264px; }
  .klx-evt { grid-template-columns:1fr; gap:12px !important; padding:28px 4px !important; }
  .klx-evt:hover { padding-left:4px !important; padding-right:4px !important; }
}
@media (max-width:560px){
  body.klx-duo { font-size:16px; }
  .klx-hero { min-height:620px !important; }
  .klx-hero-sub, .klx-hero-sub p { font-size:16.5px !important; }
  .klx-strip-thumbs { gap:10px; }
  .klx-strip-thumb { width:72px; height:48px; }
  .klx-strip-thumb .klx-tlabel { display:none; }
  .klx-ring { width:44px; height:44px; }
  .klx-mgrid { grid-template-columns:1fr; }
  .klx-bento { grid-template-columns:1fr; }
  .klx-bcard.klx-tall { grid-column:auto; }
  .klx-stats-grid { grid-template-columns:1fr 1fr; gap:36px 12px !important; }
  .klx-stat-num .elementor-heading-title { font-size:42px !important; }
  .klx-stat + .klx-stat::before { display:none; }
  .klx-foot-cols { grid-template-columns:1fr; gap:40px !important; }
  .klx-kbadge { right:0 !important; bottom:24px !important; padding:11px 16px !important; }
  .klx-chip-2 { display:none !important; }
  .klx-play { width:74px; height:74px; }
  .klx-sechead { margin-bottom:32px; }
}
@media (max-width:1023px){
  .klx-foot-link .elementor-heading-title a, .klx-legal-link .elementor-heading-title a,
  .klx-hdr-link .elementor-heading-title a { display:inline-flex !important; align-items:center;
    min-height:44px; padding:0 4px; box-sizing:border-box; }
  .klx-jtitle .elementor-heading-title a { display:inline-block; padding:8px 0; }
  .klx-mnav a { padding:14px 0; }
  body.klx-duo .flexible-cookies-button { min-height:44px !important; min-width:44px !important; }
}

/* ============================================================
   v4.1.0, BOOKING DROPDOWN PANELS + THEME TOGGLE HOVER FIX
   (styled against the real shortcode DOM: #kaylux-form,
   .guest-dropdown / .package-dropdown / .dest-dropdown,
   .dest-option / .package-option / .add-room-btn / .guest-apply-btn)
   ============================================================ */

/* ---- 1. theme toggle pill: kill Astra's blue button hover ---- */
.klx-tswitch { background:var(--klx-tsw-bg) !important; color:var(--klx-txt) !important; }
.klx-tswitch:hover, .klx-tswitch:focus, .klx-tswitch:active {
  background:rgba(32,23,20,.06) !important;
  border-color:#C99A6B !important;
  box-shadow:0 0 0 1px rgba(201,154,107,.45) !important;
  color:var(--klx-txt) !important; }
.klx-tswitch:focus-visible {
  outline:2px solid #C99A6B !important; outline-offset:3px !important;
  background:rgba(32,23,20,.06) !important; border-color:#C99A6B !important; }
html[data-theme="dark"] .klx-tswitch:hover,
html[data-theme="dark"] .klx-tswitch:focus,
html[data-theme="dark"] .klx-tswitch:active,
html[data-theme="dark"] .klx-tswitch:focus-visible {
  background:rgba(201,154,107,.14) !important;
  border-color:#C99A6B !important;
  box-shadow:0 0 0 1px rgba(201,154,107,.4) !important; }

/* ---- stacking: booking section paints above the caption/sections below ---- */
.klx-book-panel { z-index:60 !important; }
.klx-book-panel .field-group { position:relative !important; }

/* ---- 2/3/4. shared solid panel treatment, both themes ---- */
.klx-book-panel .dest-dropdown,
.klx-book-panel .package-dropdown,
.klx-book-panel .guest-dropdown {
  background:#FFFFFF !important;
  border:1px solid rgba(32,23,20,.13) !important;
  border-radius:14px !important;
  box-shadow:0 24px 60px rgba(32,23,20,.16), 0 6px 18px rgba(32,23,20,.10) !important;
  padding:8px !important;
  margin-top:8px !important;
  z-index:1500 !important;
  color:var(--klx-txt) !important; }
html[data-theme="dark"] .klx-book-panel .dest-dropdown,
html[data-theme="dark"] .klx-book-panel .package-dropdown,
html[data-theme="dark"] .klx-book-panel .guest-dropdown {
  background:#1D1114 !important;
  border:1px solid rgba(255,255,255,.14) !important;
  box-shadow:0 24px 60px rgba(0,0,0,.6), 0 6px 18px rgba(0,0,0,.4) !important; }

/* option rows: >=44px tap targets, quiet hovers (no maroon flash) */
.klx-book-panel .dest-option,
.klx-book-panel .package-option {
  display:flex !important; align-items:center !important;
  min-height:44px !important; padding:10px 14px !important;
  border-radius:9px !important; font-family:var(--klx-text) !important;
  font-size:15px !important; background:transparent !important;
  color:var(--klx-txt) !important; transition:background .15s !important; }
.klx-book-panel .dest-option:hover, .klx-book-panel .dest-option:focus,
.klx-book-panel .package-option:hover, .klx-book-panel .package-option:focus {
  background:#F1EAE0 !important; color:#201714 !important; }
html[data-theme="dark"] .klx-book-panel .dest-option:hover,
html[data-theme="dark"] .klx-book-panel .dest-option:focus,
html[data-theme="dark"] .klx-book-panel .package-option:hover,
html[data-theme="dark"] .klx-book-panel .package-option:focus {
  background:rgba(255,255,255,.06) !important; color:rgba(255,255,255,.92) !important; }

/* ---- 4. destination list: contained + scrollable, thin scrollbar ---- */
.klx-book-panel .dest-dropdown {
  max-height:360px !important; overflow-y:auto !important;
  overscroll-behavior:contain;
  scrollbar-width:thin; scrollbar-color:rgba(32,23,20,.28) transparent; }
.klx-book-panel .dest-dropdown::-webkit-scrollbar { width:6px; }
.klx-book-panel .dest-dropdown::-webkit-scrollbar-track { background:transparent; }
.klx-book-panel .dest-dropdown::-webkit-scrollbar-thumb {
  background:rgba(32,23,20,.28); border-radius:99px; }
html[data-theme="dark"] .klx-book-panel .dest-dropdown {
  scrollbar-color:rgba(255,255,255,.24) transparent; }
html[data-theme="dark"] .klx-book-panel .dest-dropdown::-webkit-scrollbar-thumb {
  background:rgba(255,255,255,.24); }

/* ---- 2. guest panel: roomier padding, tidy rows, pill buttons ---- */
.klx-book-panel .guest-dropdown { padding:16px !important; min-width:280px !important; }
.klx-book-panel .guest-room {
  margin:0 0 12px !important; padding:0 0 12px !important;
  border-bottom:1px solid rgba(32,23,20,.10);
  font-size:14px !important; line-height:2 !important; }
html[data-theme="dark"] .klx-book-panel .guest-room { border-bottom-color:rgba(255,255,255,.10); }
.klx-book-panel .guest-room strong { font-family:var(--klx-text); font-weight:700; }
.klx-book-panel .guest-dropdown select {
  -webkit-appearance:auto; appearance:auto;
  background:#FFFFFF !important; color:#201714 !important;
  border:1px solid rgba(32,23,20,.20) !important; border-radius:8px !important;
  padding:4px 8px !important; margin:2px 0 2px 6px !important;
  font-family:var(--klx-text) !important; font-size:14px !important; cursor:pointer; }
html[data-theme="dark"] .klx-book-panel .guest-dropdown select {
  background:#241518 !important; color:rgba(255,255,255,.92) !important;
  border-color:rgba(255,255,255,.20) !important; }
.klx-book-panel .remove-room-btn {
  color:#E0455A !important; font-size:12px !important; font-weight:700;
  letter-spacing:.04em; text-transform:uppercase; }
.klx-book-panel .add-room-btn,
.klx-book-panel .guest-apply-btn {
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  min-height:40px !important; padding:9px 20px !important; margin:6px 8px 0 0 !important;
  background:#80011F !important; color:#FFFFFF !important;
  border:none !important; border-radius:100px !important;
  font-family:var(--klx-text) !important; font-size:13px !important; font-weight:700 !important;
  letter-spacing:.05em !important; cursor:pointer !important;
  transition:background .2s, transform .2s !important; }
.klx-book-panel .add-room-btn:hover, .klx-book-panel .guest-apply-btn:hover {
  background:#5C0117 !important; color:#FFFFFF !important; transform:translateY(-1px); }
html[data-theme="dark"] .klx-book-panel .add-room-btn,
html[data-theme="dark"] .klx-book-panel .guest-apply-btn {
  background:#E4C593 !important; color:#1A0E12 !important; }
html[data-theme="dark"] .klx-book-panel .add-room-btn:hover,
html[data-theme="dark"] .klx-book-panel .guest-apply-btn:hover {
  background:#EFD6AB !important; color:#1A0E12 !important; }

/* ============================================================
   v4.2.0, SITEWIDE DUO CHROME + DESTINATION PAGE SECTIONS
   Tokens now live on body (global); full-skin base rules are
   scoped to body.klx-duo (server-side class via _klx_duo meta).
   ============================================================ */

/* ---- non-duo pages: duo header is fixed, push content below it.
   (2051 keeps its own landing header; editor canvas untouched) ---- */
body:not(.klx-duo):not(.page-id-2051):not(.elementor-editor-active) { padding-top:84px; }
@media (max-width:860px){
  body:not(.klx-duo):not(.page-id-2051):not(.elementor-editor-active) { padding-top:72px; }
}
/* dark theme on non-duo (light-content) pages: header goes solid, never translucent */
html[data-theme="dark"] body:not(.klx-duo) .klx-hdr {
  background:var(--klx-hdr-bg-sc) !important;
  border-bottom-color:var(--klx-hdr-border-sc) !important;
  -webkit-backdrop-filter:blur(18px); backdrop-filter:blur(18px); }

/* ============================================================
   DESTINATION HERO, photography + white copy in BOTH themes
   ============================================================ */
.klx-dhero { position:relative !important; min-height:86vh !important; overflow:clip !important;
  display:flex !important; align-items:flex-end !important;
  background:var(--klx-hero-bg) !important; width:100% !important; max-width:none !important; }
.klx-dhero-bg { position:absolute !important; inset:0 !important; width:100% !important; height:100% !important;
  max-width:none !important; background-size:cover !important; background-position:center !important; }
.klx-dhero-bg::after { content:""; position:absolute; inset:0; background:var(--klx-hero-scrim); }
.klx-dhero-in { position:relative !important; z-index:3 !important; padding-top:170px !important;
  padding-bottom:76px !important; }
.klx-dhero-title .elementor-heading-title {
  font-family:var(--klx-display) !important; font-weight:500 !important;
  font-size:clamp(40px,5.4vw,78px) !important; line-height:1.04 !important; letter-spacing:-.02em !important;
  max-width:17ch; color:#fff !important; }
.klx-dhero-title .elementor-heading-title em {
  font-family:var(--klx-serif) !important; font-style:italic !important; font-weight:450 !important;
  color:var(--klx-hero-gold) !important; letter-spacing:0 !important; }
.klx-dhero-rating .elementor-heading-title { font-family:var(--klx-text) !important; font-size:15px !important;
  font-weight:700 !important; color:#fff !important; letter-spacing:.02em !important;
  display:flex !important; align-items:center; gap:10px; }
.klx-dhero-rating .elementor-heading-title .klx-st { color:var(--klx-hero-gold); letter-spacing:3px; }
.klx-dhero-rating .elementor-heading-title .klx-rmeta { color:rgba(255,255,255,.72); font-weight:500; }
.klx-dhero-meta { display:flex !important; flex-direction:row !important; flex-wrap:wrap;
  gap:12px !important; width:auto !important; }
.klx-dhero-meta .elementor-widget { width:auto !important; }
.klx-dmchip .elementor-heading-title { display:inline-flex !important; align-items:center; gap:8px;
  border:1px solid rgba(255,255,255,.32); border-radius:100px; padding:9px 18px;
  background:rgba(18,9,12,.32); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  font-family:var(--klx-text) !important; font-size:12.5px !important; font-weight:700 !important;
  letter-spacing:.14em !important; text-transform:uppercase !important; color:#fff !important; }
.klx-dhero .klx-hero-ctas { margin-top:10px; }
html:not([data-theme="dark"]) .klx-dhero .klx-btn-line .elementor-button { border-color:rgba(255,255,255,.55) !important; color:#fff !important; }
html:not([data-theme="dark"]) .klx-dhero .klx-btn-line .elementor-button:hover { border-color:#fff !important; color:#fff !important; }
html[data-theme="dark"] .klx-dhero .klx-btn-line .elementor-button { color:#fff !important; }

/* ============================================================
   DESTINATION INTRO, split head / copy
   ============================================================ */
.klx-dintro-grid { display:flex !important; flex-direction:row !important; gap:72px !important;
  align-items:flex-start !important; }
.klx-dintro-grid > .e-con { min-width:0; }
.klx-dintro-left { flex:0 0 44% !important; width:44% !important; }
.klx-dintro-right { flex:1 1 auto !important; }
.klx-dintro-right .klx-body-p, .klx-dintro-right .klx-body-p p { color:var(--klx-txt-dim) !important;
  font-size:17.5px !important; line-height:1.7 !important; max-width:62ch; }

/* ============================================================
   ITINERARY, sticky day markers, editorial rows
   ============================================================ */
.klx-itin-list { border-top:1px solid var(--klx-hair) !important; }
.klx-itin-row { display:grid !important; grid-template-columns:170px 1fr; gap:44px !important;
  padding:38px 0 !important; border-bottom:1px solid var(--klx-hair) !important;
  align-items:start !important; width:100% !important; }
.klx-itin-day { position:sticky !important; top:116px !important; }
.klx-itin-day .elementor-heading-title { font-family:var(--klx-display) !important; font-weight:500 !important;
  font-size:19px !important; color:var(--klx-accent) !important; line-height:1.3 !important; }
.klx-itin-day .elementor-heading-title span { display:block; font-family:var(--klx-text); font-size:11px;
  font-weight:700; letter-spacing:.24em; text-transform:uppercase; color:var(--klx-txt-faint); margin-top:5px; }
.klx-itin-place .elementor-heading-title { font-family:var(--klx-display) !important; font-weight:500 !important;
  font-size:clamp(22px,2.1vw,28px) !important; color:var(--klx-txt) !important; letter-spacing:-.01em !important; }
.klx-itin-place .elementor-heading-title em { font-family:var(--klx-serif) !important; font-style:italic !important;
  font-weight:450 !important; color:var(--klx-accent) !important; }
.klx-itin-body, .klx-itin-body p { color:var(--klx-txt-dim) !important; font-size:16px !important;
  line-height:1.7 !important; max-width:64ch; margin-top:8px; }

/* ============================================================
   GALLERY BAND
   ============================================================ */
.klx-gal-grid { display:grid !important; grid-template-columns:repeat(3,1fr); grid-auto-rows:250px;
  gap:16px !important; }
.klx-gimg { border-radius:16px !important; overflow:clip !important; position:relative !important;
  border:1px solid var(--klx-hair-soft) !important; width:100% !important; height:100% !important; }
.klx-gimg .elementor-widget-container, .klx-gimg img { width:100% !important; height:100% !important; }
.klx-gimg img { object-fit:cover; display:block; transition:transform 1s var(--klx-ease); }
.klx-gimg:hover img { transform:scale(1.05); }
.klx-gwide { grid-column:span 2; }

/* ============================================================
   WHAT'S INCLUDED, icon cards
   ============================================================ */
.klx-inc-grid { display:grid !important; grid-template-columns:repeat(4,1fr); gap:20px !important; }
.klx-inc-item { background:var(--klx-surface) !important; border:1px solid var(--klx-card-border) !important;
  border-radius:16px !important; padding:32px 28px !important; box-shadow:var(--klx-shadow-soft) !important;
  display:flex !important; flex-direction:column !important; gap:10px !important; width:100% !important;
  transition:transform .4s var(--klx-ease), border-color .4s, box-shadow .4s !important; }
.klx-inc-item:hover { transform:translateY(-5px); border-color:var(--klx-gold-soft) !important;
  box-shadow:var(--klx-shadow-card) !important; }
.klx-inc-title .elementor-heading-title { font-family:var(--klx-display) !important; font-weight:500 !important;
  font-size:20px !important; color:var(--klx-txt) !important; position:relative; padding-top:58px; }
.klx-inc-title .elementor-heading-title::before { content:""; position:absolute; top:0; left:0;
  width:46px; height:46px; border-radius:12px; background:var(--klx-ico-bg);
  border:1px solid var(--klx-gold-soft); box-sizing:border-box; }
.klx-inc-title .elementor-heading-title::after { content:""; position:absolute; top:12px; left:12px;
  width:22px; height:22px; background:var(--klx-accent);
  -webkit-mask:var(--klx-i) center/contain no-repeat; mask:var(--klx-i) center/contain no-repeat; }
.klx-inci-flight .klx-inc-title .elementor-heading-title::after { --klx-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17.8 19.2L16 11l3.5-3.5C21 6 21.5 4 21 3c-1-.5-3 0-4.5 1.5L13 8 4.8 6.2c-.5-.1-.9.1-1.1.5l-.3.5c-.2.5-.1 1 .3 1.3L9 12l-2 3H4l-1 1 3 2 2 3 1-1v-3l3-2 3.5 5.3c.3.4.8.5 1.3.3l.5-.2c.4-.3.6-.7.5-1.2z'/%3E%3C/svg%3E"); }
.klx-inci-hotel .klx-inc-title .elementor-heading-title::after { --klx-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21V8l9-5 9 5v13M9 21v-6h6v6M3 21h18'/%3E%3C/svg%3E"); }
.klx-inci-guide .klx-inc-title .elementor-heading-title::after { --klx-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 3c2.5 2.6 4 5.6 4 9s-1.5 6.4-4 9c-2.5-2.6-4-5.6-4-9s1.5-6.4 4-9zM3.5 9h17M3.5 15h17'/%3E%3C/svg%3E"); }
.klx-inci-transfer .klx-inc-title .elementor-heading-title::after { --klx-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 17h14l2-6H3l2 6zM5 17l-1 3h16l-1-3M7 11V7a2 2 0 012-2h6a2 2 0 012 2v4'/%3E%3C/svg%3E"); }
.klx-inc-text, .klx-inc-text p { font-size:14.5px !important; color:var(--klx-txt-dim) !important; line-height:1.6 !important; }

/* ============================================================
   DESTINATION RESPONSIVE
   ============================================================ */
@media (max-width:1023px){
  .klx-dintro-grid { flex-direction:column !important; gap:28px !important; }
  .klx-dintro-left { flex:0 0 auto !important; width:100% !important; }
  .klx-inc-grid { grid-template-columns:1fr 1fr; }
  .klx-gal-grid { grid-template-columns:1fr 1fr; grid-auto-rows:220px; }
  .klx-gwide { grid-column:span 2; }
}
@media (max-width:860px){
  .klx-itin-row { grid-template-columns:1fr; gap:10px !important; padding:30px 0 !important; }
  .klx-itin-day { position:static !important; }
  .klx-dhero-in { padding-top:140px !important; padding-bottom:56px !important; }
}
@media (max-width:560px){
  .klx-inc-grid { grid-template-columns:1fr; }
  .klx-gal-grid { grid-template-columns:1fr; grid-auto-rows:230px; }
  .klx-gwide { grid-column:auto; }
  .klx-dhero { min-height:640px !important; }
}

/* ============================================================
   v4.3.0, DESTINATION COMPLETENESS: price bar, package tabs,
   day accordions, inclusions/exclusions, why-choose, others-info
   ============================================================ */

/* ---- price bar ("$1,250 per person", their published price) ---- */
.klx-price { background:var(--klx-bar-bg) !important; border:1px solid var(--klx-bar-border) !important;
  border-radius:18px !important; box-shadow:var(--klx-shadow-soft) !important;
  padding:22px 22px 22px 32px !important; display:flex !important; flex-direction:row !important;
  align-items:center !important; justify-content:space-between !important; gap:24px !important;
  flex-wrap:wrap; margin-bottom:34px; }
.klx-price-num .elementor-heading-title { font-family:var(--klx-display) !important; font-weight:500 !important;
  font-size:clamp(30px,2.6vw,40px) !important; color:var(--klx-txt) !important; letter-spacing:-.01em !important;
  display:flex !important; align-items:baseline; gap:12px; }
.klx-price-num .elementor-heading-title .klx-pp { font-family:var(--klx-text); font-size:13px; font-weight:700;
  letter-spacing:.22em; text-transform:uppercase; color:var(--klx-txt-dim); }
.klx-price-note, .klx-price-note p { font-size:14px !important; color:var(--klx-txt-dim) !important; margin:0; max-width:44ch; }
.klx-price .elementor-widget { width:auto !important; }
.klx-price-left { width:auto !important; flex:1 1 auto !important; }

/* ---- tabs ---- */
.klx-tab-bar { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:26px; }
.klx-tab-btn { font-family:var(--klx-text); font-size:13px; font-weight:700; letter-spacing:.14em;
  text-transform:uppercase; padding:14px 26px; min-height:44px; border-radius:100px; cursor:pointer;
  background:transparent; border:1px solid var(--klx-hair); color:var(--klx-txt-dim);
  transition:color .3s, border-color .3s, background .3s, box-shadow .3s; box-sizing:border-box; }
.klx-tab-btn:hover { border-color:var(--klx-gold-soft); color:var(--klx-txt); background:var(--klx-tsw-bg); }
.klx-tab-btn.on { background:var(--klx-cta-fill); border-color:var(--klx-cta-fill); color:var(--klx-cta-ink);
  box-shadow:var(--klx-cta-shadow); }
.klx-tab-btn:focus-visible { outline:2px solid var(--klx-gold); outline-offset:3px; }
.klx-tab-bar-sub { margin-top:2px; margin-bottom:22px; }
.klx-tab-bar-sub .klx-tab-btn { font-size:12px; padding:11px 20px; letter-spacing:.1em; border-radius:10px; }
.klx-tab-bar-sub .klx-tab-btn.on { background:transparent; border-color:var(--klx-gold); color:var(--klx-accent);
  box-shadow:0 0 0 1px var(--klx-gold-soft); }
html.klx-js .klx-tabs > .klx-tab-panel:not(.on) { display:none !important; }
html:not(.klx-js) .klx-tab-panel { margin-bottom:34px; }
html:not(.klx-js) .klx-tab-panel::before { content:attr(data-klx-tab); display:block;
  font-family:var(--klx-display); font-size:22px; color:var(--klx-accent); margin-bottom:14px; }

/* ---- day accordions ---- */
.klx-acc { border-top:1px solid var(--klx-hair) !important; }
.klx-acc-item { border-bottom:1px solid var(--klx-hair) !important; width:100% !important; }
.klx-acc-head { cursor:pointer; position:relative !important; padding:20px 54px 20px 0 !important;
  transition:color .3s; }
.klx-acc-head .elementor-heading-title { font-family:var(--klx-display) !important; font-weight:500 !important;
  font-size:clamp(17px,1.5vw,20px) !important; color:var(--klx-txt) !important; line-height:1.35 !important;
  transition:color .3s; }
.klx-acc-head:hover .elementor-heading-title { color:var(--klx-link) !important; }
.klx-acc-head:focus-visible { outline:2px solid var(--klx-gold); outline-offset:3px; }
.klx-acc-head::after { content:""; position:absolute; right:6px; top:50%; width:34px; height:34px;
  transform:translateY(-50%); border-radius:50%; border:1px solid var(--klx-hair);
  background:var(--klx-accent);
  -webkit-mask:none; mask:none; background:transparent;
  transition:transform .35s var(--klx-ease), border-color .3s; }
.klx-acc-head::before { content:""; position:absolute; right:16px; top:50%; width:14px; height:14px;
  transform:translateY(-50%); background:var(--klx-accent);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") center/contain no-repeat;
  transition:transform .35s var(--klx-ease); z-index:1; }
.klx-acc-item.open > .klx-acc-head::before { transform:translateY(-50%) rotate(45deg); }
.klx-acc-item.open > .klx-acc-head::after { border-color:var(--klx-gold); }
html.klx-js .klx-acc-item:not(.open) > .klx-acc-body { display:none !important; }
.klx-acc-body { padding:0 0 26px !important; }

/* ---- bullet lists (day details) + inclusions/exclusions ---- */
.klx-ul ul, .klx-ie-ul ul { list-style:none; margin:0; padding:0; }
.klx-ul li, .klx-ie-ul li { position:relative; padding:5px 0 5px 26px; font-size:15.5px;
  line-height:1.6; color:var(--klx-txt-dim); }
.klx-ul li::before { content:""; position:absolute; left:2px; top:14px; width:7px; height:7px;
  border-radius:50%; background:var(--klx-gold); opacity:.85; }
.klx-ie-ul li::before { content:""; position:absolute; left:0; top:9px; width:16px; height:16px;
  background:var(--klx-accent);
  -webkit-mask:var(--klx-ie-i) center/contain no-repeat; mask:var(--klx-ie-i) center/contain no-repeat; }
.klx-ie-inc li::before { --klx-ie-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12.5l5 5L20 6.5'/%3E%3C/svg%3E"); }
.klx-ie-exc li::before { --klx-ie-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E"); opacity:.55; }
.klx-ie-exc li { color:var(--klx-txt-faint); }
.klx-incexc { display:grid !important; grid-template-columns:1fr 1fr; gap:28px !important; margin-top:30px;
  background:var(--klx-surface) !important; border:1px solid var(--klx-card-border) !important;
  border-radius:16px !important; padding:30px 32px !important; box-shadow:var(--klx-shadow-soft) !important; }
.klx-ie-h .elementor-heading-title { font-family:var(--klx-text) !important; font-size:12px !important;
  font-weight:700 !important; letter-spacing:.26em !important; text-transform:uppercase !important;
  color:var(--klx-accent) !important; margin-bottom:10px; }

/* ---- why choose us ---- */
.klx-why { background:var(--klx-bg-2) !important; border-top:1px solid var(--klx-hair-soft) !important;
  border-bottom:1px solid var(--klx-hair-soft) !important; overflow:clip !important; }
.klx-why-grid { display:flex !important; align-items:center !important; gap:72px !important; }
.klx-why-copy { flex:1 1 auto !important; min-width:0; }
.klx-why-photo { width:min(430px,100%) !important; flex:none !important; position:relative !important; }
.klx-why-photo .elementor-widget-image { border-radius:20px; overflow:clip; border:1px solid var(--klx-gold-soft); }
.klx-why-photo img { width:100% !important; aspect-ratio:4/4.6; object-fit:cover; display:block; }
.klx-why-cards { display:grid !important; grid-template-columns:1fr 1fr; gap:18px !important; margin-top:30px; }
.klx-why-card { background:var(--klx-surface) !important; border:1px solid var(--klx-card-border) !important;
  border-radius:14px !important; padding:24px 24px 22px !important; box-shadow:var(--klx-shadow-soft) !important;
  display:flex !important; flex-direction:column !important; gap:8px !important; width:100% !important;
  transition:transform .4s var(--klx-ease), border-color .4s !important; }
.klx-why-card:hover { transform:translateY(-4px); border-color:var(--klx-gold-soft) !important; }
.klx-why-card-t .elementor-heading-title { font-family:var(--klx-display) !important; font-weight:500 !important;
  font-size:18.5px !important; color:var(--klx-txt) !important; position:relative; padding-left:26px; }
.klx-why-card-t .elementor-heading-title::before { content:"✦"; position:absolute; left:0; top:0;
  color:var(--klx-gold); font-size:15px; }
.klx-why-card-b, .klx-why-card-b p { font-size:14px !important; color:var(--klx-txt-dim) !important;
  line-height:1.6 !important; }

/* ---- others info (must carry / travel essentials) ---- */
.klx-oinfo-grid { display:grid !important; grid-template-columns:1fr 1fr; gap:48px !important;
  align-items:start !important; }
.klx-oi-h .elementor-heading-title { font-family:var(--klx-display) !important; font-weight:500 !important;
  font-size:24px !important; color:var(--klx-txt) !important; margin-bottom:8px; }
.klx-oi-h .elementor-heading-title em { font-family:var(--klx-serif) !important; font-style:italic !important;
  color:var(--klx-accent) !important; }
.klx-oinfo-grid .klx-acc-head { padding:16px 54px 16px 0 !important; }
.klx-oinfo-grid .klx-acc-head .elementor-heading-title { font-size:17px !important; }
.klx-oinfo-grid .klx-acc-body { padding:0 0 20px !important; }
.klx-oi-body, .klx-oi-body p { font-size:15px !important; color:var(--klx-txt-dim) !important; line-height:1.65 !important; }

/* ---- explore-more cards: longer editorial text on image ---- */
.klx-xcard .klx-dcard-name .elementor-heading-title { font-size:23px !important; line-height:1.2 !important; }
.klx-xcard .klx-dcard-from .elementor-heading-title { display:-webkit-box; -webkit-line-clamp:3;
  -webkit-box-orient:vertical; overflow:hidden; line-height:1.5 !important; }

/* ---- responsive ---- */
@media (max-width:1023px){
  .klx-why-grid { flex-direction:column !important; gap:44px !important; align-items:stretch !important; }
  .klx-why-photo { width:100% !important; max-width:520px; margin:0 auto; }
  .klx-oinfo-grid { grid-template-columns:1fr; gap:40px !important; }
}
@media (max-width:860px){
  .klx-incexc { grid-template-columns:1fr; gap:22px !important; padding:24px 22px !important; }
  .klx-why-cards { grid-template-columns:1fr; }
  .klx-tab-btn { padding:12px 18px; font-size:12px; }
  .klx-price { padding:18px 18px 18px 22px !important; }
}

/* ============================================================
   v4.4.0, DESTINATIONS ARCHIVE (/destination/, Pro archive
   template, condition include/archive/destination_archive)
   ============================================================ */

/* ---- compact editorial hero band ---- */
.klx-ahero { position:relative !important; overflow:clip !important; width:100% !important;
  max-width:none !important; background:var(--klx-bg-2) !important;
  border-bottom:1px solid var(--klx-hair-soft) !important; }
.klx-ahero::before { content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(ellipse 760px 380px at 88% -20%,rgba(201,154,107,.18),transparent 70%),
             radial-gradient(ellipse 560px 300px at -10% 120%,rgba(128,1,31,.08),transparent 70%); }
.klx-ahero-in { position:relative !important; z-index:2 !important; }
.klx-ahero .klx-display .elementor-heading-title {
  font-size:clamp(42px,5vw,72px) !important; max-width:16ch; }
.klx-arating .elementor-heading-title { font-family:var(--klx-text) !important; font-size:15px !important;
  font-weight:700 !important; color:var(--klx-txt) !important; letter-spacing:.02em !important;
  display:flex !important; align-items:center; gap:10px; margin-top:6px; }
.klx-arating .elementor-heading-title .klx-st { color:var(--klx-accent); letter-spacing:3px; }
.klx-arating .elementor-heading-title .klx-rmeta { color:var(--klx-txt-dim); font-weight:500; }

/* ---- destinations grid (reuses .klx-dcard card language, grid not rail) ---- */
.klx-agrid { display:grid !important; grid-template-columns:repeat(3,1fr); gap:24px !important; }
.klx-agrid > .e-con { width:100% !important; min-width:0; }
.klx-agrid .klx-dcard { height:400px !important; }
.klx-agrid .klx-dcard-img img { height:100% !important; }
.klx-dcard-name .elementor-heading-title a { color:inherit !important; }
.klx-bcard-name .elementor-heading-title a { color:inherit !important; }

/* ---- curated collections band (5 packages, wider cards) ---- */
.klx-collband { background:var(--klx-bg-2) !important; border-top:1px solid var(--klx-hair-soft) !important;
  border-bottom:1px solid var(--klx-hair-soft) !important; overflow:clip !important; }
.klx-cgrid { display:grid !important; grid-template-columns:1fr 1fr; gap:20px !important; }
.klx-cgrid > .e-con { width:100% !important; min-width:0; min-height:300px; }
.klx-cgrid > .klx-cwide { grid-column:1 / -1; min-height:360px; }
.klx-cgrid .klx-bcard-name .elementor-heading-title { font-size:27px !important; }
.klx-cgrid .klx-cwide .klx-bcard-name .elementor-heading-title { font-size:32px !important; }

/* ---- responsive ---- */
@media (max-width:1023px){
  .klx-agrid { grid-template-columns:1fr 1fr; }
  .klx-agrid .klx-dcard { height:360px !important; }
  .klx-cgrid > .e-con { min-height:260px; }
}
@media (max-width:560px){
  .klx-agrid { grid-template-columns:1fr; gap:18px !important; }
  .klx-agrid .klx-dcard { height:340px !important; }
  .klx-cgrid { grid-template-columns:1fr; gap:16px !important; }
  .klx-cgrid > .klx-cwide { grid-column:auto; min-height:300px; }
  .klx-cgrid > .e-con { min-height:240px; }
}

/* ---- a11y: >=44px tap targets for card-name anchors + skip link (touch) ---- */
@media (max-width:1023px){
  .klx-dcard-name .elementor-heading-title a,
  .klx-bcard-name .elementor-heading-title a {
    display:inline-flex !important; align-items:flex-end; min-height:44px; min-width:44px;
    box-sizing:border-box; }
  body.klx-duo .skip-link { min-height:44px !important; min-width:44px !important; }
}

/* ============================================================
   v4.5.0, JOURNAL LISTING (/journal/) + SINGLE POST TEMPLATE
   + CONTACT PAGE DUO REBUILD
   ============================================================ */

/* ---- journal featured card (wide editorial split) ---- */
.klx-jfeat { display:flex !important; flex-direction:row !important; width:100% !important;
  border-radius:18px !important; overflow:clip !important; cursor:pointer;
  background:var(--klx-surface) !important; border:1px solid var(--klx-card-border) !important;
  box-shadow:var(--klx-shadow-soft) !important;
  transition:transform .5s var(--klx-ease), border-color .5s, box-shadow .5s !important; }
.klx-jfeat:hover { transform:translateY(-6px); border-color:var(--klx-gold-soft) !important;
  box-shadow:var(--klx-shadow-card) !important; }
.klx-jfeat-img { flex:0 0 54% !important; width:54% !important; min-height:400px; position:relative !important; }
.klx-jfeat-img .elementor-widget-image, .klx-jfeat-img .elementor-widget-container { position:absolute !important;
  inset:0 !important; width:100% !important; height:100% !important; }
.klx-jfeat-img img { width:100% !important; height:100% !important; object-fit:cover; display:block;
  transition:transform 1.1s var(--klx-ease); }
.klx-jfeat:hover .klx-jfeat-img img { transform:scale(1.05); }
.klx-jfeat-txt { flex:1 1 auto !important; min-width:0; padding:44px 48px !important; }
.klx-jfeat-tag .elementor-heading-title { display:inline-flex !important; align-items:center;
  font-family:var(--klx-text) !important; font-size:10.5px !important; font-weight:700 !important;
  letter-spacing:.26em !important; text-transform:uppercase !important; color:var(--klx-on-gold) !important;
  background:var(--klx-gold); border-radius:100px; padding:7px 14px; width:auto; align-self:flex-start; }
.klx-jfeat .klx-jfeat-tag { width:auto !important; align-self:flex-start; }
.klx-jfeat .klx-jmeta .elementor-heading-title { margin-top:6px; }
.klx-jfeat-title .elementor-heading-title, .klx-jfeat-title .elementor-heading-title a {
  font-family:var(--klx-display) !important; font-weight:500 !important;
  font-size:clamp(26px,2.4vw,34px) !important; line-height:1.16 !important; letter-spacing:-.015em !important;
  color:var(--klx-txt) !important; transition:color .3s; }
.klx-jfeat:hover .klx-jfeat-title .elementor-heading-title a { color:var(--klx-link) !important; }
.klx-jfeat-ex, .klx-jfeat-ex p { font-size:15.5px !important; color:var(--klx-txt-dim) !important;
  line-height:1.65 !important; max-width:52ch; }
.klx-jfeat-link .elementor-heading-title a { display:inline-flex; align-items:center; gap:10px;
  font-family:var(--klx-text) !important; font-size:12.5px !important; font-weight:700 !important;
  letter-spacing:.16em !important; text-transform:uppercase !important; color:var(--klx-link) !important;
  padding:12px 0; min-height:44px; box-sizing:border-box; }
.klx-jfeat-link .elementor-heading-title a::after { content:""; display:inline-block; width:14px; height:11px;
  background:currentColor; transition:transform .35s var(--klx-ease);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 16' fill='none'%3E%3Cpath d='M1 8h20M15 2l7 6-7 6' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 16' fill='none'%3E%3Cpath d='M1 8h20M15 2l7 6-7 6' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat; }
.klx-jfeat:hover .klx-jfeat-link .elementor-heading-title a::after { transform:translateX(4px); }
.klx-jtitle .elementor-heading-title a { color:inherit !important; }

/* ---- single post hero ---- */
.klx-ptitle .elementor-heading-title { font-family:var(--klx-display) !important; font-weight:500 !important;
  font-size:clamp(34px,4.2vw,58px) !important; line-height:1.1 !important; letter-spacing:-.015em !important;
  color:var(--klx-txt) !important; max-width:22ch; }
.klx-pmeta { display:flex !important; flex-direction:row !important; align-items:center !important;
  gap:10px !important; width:auto !important; flex-wrap:wrap; }
.klx-pmeta .elementor-widget { width:auto !important; }
.klx-pby .elementor-heading-title { font-family:var(--klx-text) !important; font-size:13px !important;
  font-weight:700 !important; letter-spacing:.1em !important; text-transform:uppercase !important;
  color:var(--klx-accent) !important; }
.klx-pmeta-dot .elementor-heading-title .klx-dot { width:3px; height:3px; border-radius:50%;
  background:var(--klx-txt-faint); display:block; }
.klx-pdate .elementor-heading-title { font-family:var(--klx-text) !important; font-size:13.5px !important;
  font-weight:500 !important; color:var(--klx-txt-dim) !important; letter-spacing:.02em !important; }

/* ---- featured image full-bleed band ---- */
.klx-pfimg { width:100% !important; max-width:none !important; overflow:clip !important;
  background:var(--klx-bg-2) !important; }
.klx-pfimg-wrap { max-width:none !important; padding-left:0 !important; padding-right:0 !important; }
.klx-pfimg-w, .klx-pfimg-w .elementor-widget-container { width:100% !important; }
.klx-pfimg-w img { width:100% !important; height:clamp(320px,56vh,620px) !important;
  object-fit:cover; display:block; }

/* ---- reading column (<=72ch), overrides the posts' own widget fonts ---- */
.klx-prose { max-width:700px !important; margin:0 auto !important; width:100%; } /* ~72ch Satoshi 17.5px */
.klx-prose .elementor-widget-text-editor, .klx-prose p, .klx-prose li {
  font-family:var(--klx-text) !important; font-size:17.5px !important; line-height:1.75 !important;
  color:var(--klx-txt) !important; }
.klx-prose p { margin:0 0 1.2em; }
.klx-prose h1, .klx-prose h2, .klx-prose h3, .klx-prose h4,
.klx-prose .elementor-heading-title { font-family:var(--klx-display) !important; font-weight:500 !important;
  color:var(--klx-txt) !important; line-height:1.2 !important; letter-spacing:-.01em !important; }
.klx-prose h2, .klx-prose h2.elementor-heading-title { font-size:clamp(24px,2.4vw,31px) !important; }
.klx-prose h3, .klx-prose h3.elementor-heading-title { font-size:clamp(20px,2vw,25px) !important; }
.klx-prose .elementor-widget-heading { margin-top:14px; }
.klx-prose a { color:var(--klx-link) !important; text-decoration:underline;
  text-decoration-color:var(--klx-gold-soft); text-underline-offset:3px; }
.klx-prose a:hover { text-decoration-color:var(--klx-link); }
.klx-prose ul, .klx-prose ol { padding-left:1.3em; margin:0 0 1.2em; }
.klx-prose li { margin:.35em 0; }
.klx-prose blockquote { font-family:var(--klx-serif) !important; font-style:italic !important;
  font-size:21px !important; color:var(--klx-txt) !important; border-left:2px solid var(--klx-gold) !important;
  margin:1.4em 0 !important; padding:.2em 0 .2em 1.2em !important; }
.klx-prose img { max-width:100% !important; height:auto !important; border-radius:14px !important;
  display:block; }
.klx-prose .elementor-widget-image { margin:10px 0 14px; }
.klx-prose strong, .klx-prose b { font-weight:700 !important; color:var(--klx-txt) !important; }
/* neutralize the content's own boxed section paddings inside the column */
.klx-prose > .elementor-widget-theme-post-content .e-con,
.klx-prose > .elementor-widget-theme-post-content .e-con-inner {
  max-width:100% !important; padding-left:0 !important; padding-right:0 !important; }

/* ---- related posts (Pro posts widget, classic skin) ---- */
.klx-related .elementor-posts-container { display:grid !important; grid-template-columns:repeat(3,1fr);
  gap:24px !important; }
.klx-related article.elementor-post { width:100% !important; margin:0 !important;
  transition:transform .45s var(--klx-ease) !important; }
.klx-related article.elementor-post:hover { transform:translateY(-6px); }
.klx-related .elementor-post__thumbnail__link { display:block; border-radius:16px !important;
  overflow:hidden !important; border:1px solid var(--klx-hair-soft) !important; position:relative;
  isolation:isolate; transform:translateZ(0); -webkit-mask-image:-webkit-radial-gradient(white,black);
  width:100% !important; margin-bottom:18px !important; }
.klx-related .elementor-post__thumbnail { position:relative !important; padding-bottom:64% !important;
  overflow:hidden !important; border-radius:16px !important; }
.klx-related .elementor-post__thumbnail img { position:absolute !important; inset:0 !important;
  width:100% !important; height:100% !important; object-fit:cover !important;
  transition:transform 1s var(--klx-ease); }
.klx-related article.elementor-post:hover .elementor-post__thumbnail img { transform:scale(1.06); }
.klx-related .elementor-post__meta-data { font-family:var(--klx-text) !important; font-size:11px !important;
  font-weight:700 !important; letter-spacing:.22em !important; text-transform:uppercase !important;
  color:var(--klx-accent) !important; margin-bottom:8px !important; }
.klx-related .elementor-post__title, .klx-related .elementor-post__title a {
  font-family:var(--klx-display) !important; font-weight:500 !important; font-size:21px !important;
  line-height:1.25 !important; color:var(--klx-txt) !important; transition:color .3s; margin:0 !important; }
.klx-related article.elementor-post:hover .elementor-post__title a { color:var(--klx-link) !important; }
.klx-related .elementor-post__title a { display:inline-block; padding:4px 0; }
.klx-prel-all { margin-top:28px; }
.klx-prel-all .elementor-widget-button { width:auto !important; }

/* ---- contact split ---- */
.klx-cgrid { display:flex !important; flex-direction:row !important; gap:56px !important;
  align-items:flex-start !important; }
.klx-cgrid > .e-con { min-width:0; }
.klx-cform-col { flex:1.35 1 0 !important; }
.klx-cinfo { flex:1 1 0 !important; }
.klx-cform-h .elementor-heading-title { font-family:var(--klx-display) !important; font-weight:500 !important;
  font-size:clamp(24px,2.2vw,30px) !important; color:var(--klx-txt) !important; letter-spacing:-.01em !important; }
.klx-cform-sub, .klx-cform-sub p { font-size:15px !important; color:var(--klx-txt-dim) !important;
  line-height:1.6 !important; }

/* their real Pro form, duo skin (both themes) */
.klx-cform input:not([type="submit"]), .klx-cform textarea, .klx-cform select {
  background:var(--klx-surface) !important; border:1px solid var(--klx-hair) !important;
  border-radius:12px !important; padding:15px 18px !important; box-shadow:none !important;
  font-family:var(--klx-text) !important; font-size:16px !important; font-weight:500 !important;
  color:var(--klx-txt) !important; transition:border-color .3s, box-shadow .3s !important; }
.klx-cform input::placeholder, .klx-cform textarea::placeholder { color:var(--klx-txt-faint) !important; opacity:1; }
.klx-cform input:not([type="submit"]):focus, .klx-cform textarea:focus {
  border-color:var(--klx-gold) !important; outline:none !important;
  box-shadow:0 0 0 3px var(--klx-gold-soft) !important; }
.klx-cform textarea { min-height:52px; resize:vertical; }
.klx-cform .elementor-field-group { margin-bottom:16px !important; }
.klx-cform .elementor-field-group.elementor-field-type-submit { margin-bottom:0 !important; margin-top:6px !important; }
.klx-cform .elementor-button[type="submit"] {
  font-family:var(--klx-text) !important; font-weight:700 !important; font-size:14px !important;
  letter-spacing:.08em !important; text-transform:uppercase !important; line-height:1 !important;
  padding:17px 34px !important; border-radius:100px !important; border:none !important;
  background:var(--klx-cta-fill) !important; color:var(--klx-cta-ink) !important;
  box-shadow:var(--klx-cta-shadow) !important; width:auto !important;
  transition:transform .35s var(--klx-ease), box-shadow .35s var(--klx-ease), background .35s !important; }
.klx-cform .elementor-button[type="submit"]:hover { transform:translateY(-2px);
  background:var(--klx-cta-fill-h) !important; box-shadow:var(--klx-cta-shadow-h) !important; }
.klx-cform .elementor-message { font-family:var(--klx-text) !important; font-size:14.5px !important; }
.klx-cform .elementor-message.elementor-message-danger,
.klx-cform .elementor-error, .klx-cform .elementor-help-inline { color:#C43D50 !important; }
html[data-theme="dark"] .klx-cform .elementor-message.elementor-message-danger,
html[data-theme="dark"] .klx-cform .elementor-error,
html[data-theme="dark"] .klx-cform .elementor-help-inline { color:#F08A9B !important; }
.klx-cform .elementor-field-group.elementor-error input,
.klx-cform .elementor-field-group.elementor-error textarea { border-color:#C43D50 !important; }

/* info column */
.klx-cinfo-card { background:var(--klx-surface) !important; border:1px solid var(--klx-card-border) !important;
  border-radius:16px !important; padding:26px 28px !important; box-shadow:var(--klx-shadow-soft) !important;
  width:100% !important; }
.klx-cinfo-card .klx-arating .elementor-heading-title { margin-top:0; }
.klx-cinfo-h .elementor-heading-title { font-family:var(--klx-display) !important; font-weight:500 !important;
  font-size:19px !important; color:var(--klx-txt) !important; letter-spacing:-.01em !important; }
.klx-cinfo-p, .klx-cinfo-p p { font-size:14.5px !important; color:var(--klx-txt-dim) !important;
  line-height:1.6 !important; }
.klx-cinfo-link .elementor-heading-title a { display:inline-flex; align-items:center; gap:10px;
  font-family:var(--klx-text) !important; font-size:13px !important; font-weight:700 !important;
  letter-spacing:.14em !important; text-transform:uppercase !important; color:var(--klx-link) !important;
  padding:11px 0; min-height:44px; box-sizing:border-box; transition:color .3s; }
.klx-cinfo-link .elementor-heading-title a::after { content:""; display:inline-block; width:14px; height:11px;
  background:currentColor; transition:transform .35s var(--klx-ease);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 16' fill='none'%3E%3Cpath d='M1 8h20M15 2l7 6-7 6' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 16' fill='none'%3E%3Cpath d='M1 8h20M15 2l7 6-7 6' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat; }
.klx-cinfo-link .elementor-heading-title a:hover::after { transform:translateX(4px); }

/* map band */
.klx-cmap-band { background:var(--klx-bg-2) !important; border-top:1px solid var(--klx-hair-soft) !important;
  border-bottom:1px solid var(--klx-hair-soft) !important; overflow:clip !important; }
.klx-cmap-frame { border-radius:18px !important; overflow:clip !important;
  border:1px solid var(--klx-card-border) !important; box-shadow:var(--klx-shadow-soft) !important;
  width:100% !important; line-height:0; }
.klx-cmap iframe { width:100% !important; display:block !important; border:0 !important; }
html[data-theme="dark"] .klx-cmap iframe { filter:invert(.9) hue-rotate(180deg) saturate(.7) brightness(.9); }

/* ---- responsive ---- */
@media (max-width:1023px){
  .klx-jfeat { flex-direction:column !important; }
  .klx-jfeat-img { flex:0 0 auto !important; width:100% !important; min-height:0; height:300px; }
  .klx-jfeat-txt { padding:30px 26px 34px !important; }
  .klx-related .elementor-posts-container { grid-template-columns:1fr; max-width:560px;
    margin:0 auto !important; }
  .klx-cgrid { flex-direction:column !important; gap:40px !important; }
  .klx-cform-col, .klx-cinfo { flex:0 0 auto !important; width:100% !important; }
}
@media (max-width:560px){
  .klx-jfeat-img { height:230px; }
  .klx-pfimg-w img { height:280px !important; }
  .klx-cform input:not([type="submit"]), .klx-cform textarea { font-size:16px !important; }
}

/* ============================================================
   v4.8.0, PACKAGES CATALOGUE + BOOK-THIS-TRIP + WOO DUO SKIN
   ============================================================ */

/* ---- /packages/ card grid ---- */
body.klx-duo .klx-pkgcards { display:grid !important; grid-template-columns:repeat(3,1fr); gap:24px; width:100%; }
body.klx-duo .klx-pkgcard { border:1px solid var(--klx-card-border) !important; border-radius:18px !important;
  overflow:hidden !important; background:var(--klx-bg) !important; box-shadow:var(--klx-shadow-soft);
  display:flex !important; flex-direction:column !important; transition:transform .5s var(--klx-ease), box-shadow .5s var(--klx-ease); }
body.klx-duo .klx-pkgcard:hover { transform:translateY(-4px); box-shadow:var(--klx-shadow-card); }
body.klx-duo .klx-pkgcard-img, body.klx-duo .klx-pkgcard-img img { width:100% !important; }
body.klx-duo .klx-pkgcard-img img { height:230px !important; object-fit:cover !important; display:block !important; }
body.klx-duo .klx-pkgcard-txt { padding:22px 22px 24px !important; display:flex !important; flex-direction:column !important; gap:10px !important; flex:1; }
body.klx-duo .klx-pkgcard-meta .elementor-heading-title { font-family:var(--klx-text) !important; font-size:11px !important;
  font-weight:700 !important; letter-spacing:.14em !important; text-transform:uppercase !important; color:var(--klx-accent) !important; }
body.klx-duo .klx-pkgcard-name .elementor-heading-title { font-family:var(--klx-display) !important; font-weight:500 !important;
  font-size:clamp(20px,1.6vw,24px) !important; line-height:1.15 !important; color:var(--klx-txt) !important; }
body.klx-duo .klx-pkgcard-hotel .elementor-heading-title { font-family:var(--klx-text) !important; font-size:13.5px !important;
  font-weight:500 !important; color:var(--klx-txt-dim) !important; }
body.klx-duo .klx-pkgcard-price .elementor-heading-title { font-family:var(--klx-display) !important; font-weight:600 !important;
  font-size:22px !important; color:var(--klx-txt) !important; }
body.klx-duo .klx-pkgcard-price .elementor-heading-title .klx-pp { font-family:var(--klx-text) !important; font-size:12.5px !important;
  font-weight:500 !important; color:var(--klx-txt-faint) !important; margin-left:6px; }
body.klx-duo .klx-pkgcard-ctas { display:flex !important; flex-direction:row !important; gap:10px !important; margin-top:auto !important; padding-top:6px; flex-wrap:wrap; }
body.klx-duo .klx-pkgcard .klx-btn-gold .elementor-button, body.klx-duo .klx-pkgcard .klx-btn-line .elementor-button { padding:12px 20px !important; font-size:12px !important; }
@media (max-width:1024px){ body.klx-duo .klx-pkgcards { grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ body.klx-duo .klx-pkgcards { grid-template-columns:1fr; } }

/* ---- Book This Trip section ---- */
body.klx-duo .klx-book-grid { display:grid !important; grid-template-columns:1.5fr 1fr; gap:44px; align-items:start; width:100%; }
@media (max-width:1024px){ body.klx-duo .klx-book-grid { grid-template-columns:1fr; gap:32px; } }
body.klx-duo .klx-book-h .elementor-heading-title { font-family:var(--klx-display) !important; font-weight:500 !important;
  font-size:clamp(19px,1.5vw,23px) !important; color:var(--klx-txt) !important; }
body.klx-duo .klx-stay { border:1px solid var(--klx-card-border) !important; border-radius:16px !important;
  padding:20px 22px !important; background:var(--klx-bg) !important; box-shadow:var(--klx-shadow-soft); }
body.klx-duo .klx-stay-city .elementor-heading-title { font-family:var(--klx-text) !important; font-size:11px !important; font-weight:700 !important;
  letter-spacing:.14em !important; text-transform:uppercase !important; color:var(--klx-accent) !important; }
body.klx-duo .klx-stay-name .elementor-heading-title { font-family:var(--klx-display) !important; font-weight:500 !important;
  font-size:19px !important; color:var(--klx-txt) !important; }
body.klx-duo .klx-stay-name .elementor-heading-title .klx-st { color:var(--klx-gold) !important; font-size:15px; letter-spacing:.12em; margin-left:8px; }
body.klx-duo .klx-stay-loc .elementor-heading-title { font-family:var(--klx-text) !important; font-size:13px !important;
  font-weight:500 !important; color:var(--klx-txt-dim) !important; }
body.klx-duo .klx-stay-body p { font-size:14.5px !important; line-height:1.7 !important; color:var(--klx-txt-dim) !important; }
body.klx-duo .klx-book-note p { font-size:13.5px !important; font-style:italic; color:var(--klx-txt-faint) !important; }
body.klx-duo .klx-book-aside { border:1px solid var(--klx-panel-border) !important; border-radius:18px !important;
  padding:26px 26px 28px !important; background:var(--klx-bg-2) !important; position:sticky; top:96px; }
body.klx-duo .klx-aside-h .elementor-heading-title { font-family:var(--klx-text) !important; font-size:11px !important; font-weight:700 !important;
  letter-spacing:.16em !important; text-transform:uppercase !important; color:var(--klx-accent) !important; }
body.klx-duo .klx-upg ul { list-style:none !important; margin:0 !important; padding:0 !important; }
body.klx-duo .klx-upg li { font-family:var(--klx-text) !important; font-size:13.5px !important; line-height:1.55 !important;
  color:var(--klx-txt-dim) !important; padding:9px 0 9px 22px !important; position:relative;
  border-bottom:1px solid var(--klx-hair-soft); }
body.klx-duo .klx-upg li:last-child { border-bottom:none; }
body.klx-duo .klx-upg li::before { content:"+"; position:absolute; left:2px; top:8px; color:var(--klx-gold); font-weight:700; }
body.klx-duo .klx-bt p { font-size:13.5px !important; line-height:1.65 !important; color:var(--klx-txt-dim) !important; }
body.klx-duo .klx-bt p b, body.klx-duo .klx-bt p strong { color:var(--klx-txt) !important; }
body.klx-duo .klx-fineprint p { font-size:12.5px !important; color:var(--klx-txt-faint) !important; font-style:italic; }

/* ---- Woo utility pages (cart / checkout / account) ---- */
body.klx-woo { background:var(--klx-bg); }
body.klx-woo .klx-wc-head { max-width:var(--klx-wrap); margin:0 auto; padding:140px 24px 8px; }
body.klx-woo .klx-wc-head .klx-eyebrow { font-family:var(--klx-text); font-size:11px; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase; color:var(--klx-accent); margin-bottom:10px; }
body.klx-woo .klx-wc-head h1 { font-family:var(--klx-display); font-weight:500; font-size:clamp(34px,4vw,52px);
  line-height:1.05; color:var(--klx-txt); margin:0; }
body.klx-woo .klx-wc-head h1 em { font-family:var(--klx-serif); font-style:italic; font-weight:400; color:var(--klx-maroon); }
body.klx-woo .woocommerce { max-width:var(--klx-wrap); margin:0 auto; padding:28px 24px 110px;
  font-family:var(--klx-text); color:var(--klx-txt); }
body.klx-woo .site-content, body.klx-woo #content { background:var(--klx-bg); }

/* base type + links */
body.klx-woo .woocommerce a { color:var(--klx-link); }
body.klx-woo .woocommerce h2, body.klx-woo .woocommerce h3 { font-family:var(--klx-display); font-weight:500; color:var(--klx-txt); }

/* buttons */
body.klx-woo .woocommerce .button, body.klx-woo .woocommerce button.button,
body.klx-woo .woocommerce a.button, body.klx-woo .woocommerce input.button,
body.klx-woo .woocommerce #place_order {
  font-family:var(--klx-text) !important; font-weight:700 !important; font-size:12.5px !important;
  letter-spacing:.12em !important; text-transform:uppercase !important;
  background:var(--klx-cta-fill) !important; color:var(--klx-cta-ink) !important;
  border:none !important; border-radius:999px !important; padding:15px 28px !important;
  box-shadow:var(--klx-cta-shadow); transition:all .35s var(--klx-ease) !important; line-height:1 !important; }
body.klx-woo .woocommerce .button:hover, body.klx-woo .woocommerce #place_order:hover {
  background:var(--klx-cta-fill-h) !important; box-shadow:var(--klx-cta-shadow-h); transform:translateY(-1px); }
body.klx-woo .woocommerce .button:disabled, body.klx-woo .woocommerce .button.disabled { opacity:.55 !important; color:var(--klx-cta-ink) !important; }

/* tables (cart + order review) */
body.klx-woo .woocommerce table.shop_table { border:1px solid var(--klx-card-border) !important; border-radius:16px !important;
  border-collapse:separate !important; border-spacing:0; background:var(--klx-bg); overflow:hidden; }
body.klx-woo .woocommerce table.shop_table th { font-family:var(--klx-text); font-size:11px; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase; color:var(--klx-accent); background:var(--klx-bg-2);
  border-bottom:1px solid var(--klx-hair) !important; padding:14px 16px; }
body.klx-woo .woocommerce table.shop_table td { border-top:1px solid var(--klx-hair-soft) !important;
  padding:16px !important; color:var(--klx-txt-dim); background:transparent; }
body.klx-woo .woocommerce table.shop_table td a { color:var(--klx-txt); font-weight:700; text-decoration:none; }
body.klx-woo .woocommerce table.shop_table .amount { color:var(--klx-txt); font-weight:700; }
body.klx-woo .klx-wc-perpax { display:block; font-size:12px; font-weight:500; color:var(--klx-txt-faint); margin-top:4px; }
body.klx-woo .woocommerce td.product-remove a.remove { color:var(--klx-maroon) !important; }
body.klx-woo .woocommerce td.product-remove a.remove:hover { background:var(--klx-maroon) !important; color:#fff !important; }

/* quantity */
body.klx-woo .woocommerce .quantity .qty { border:1px solid var(--klx-hair) !important; border-radius:10px !important;
  background:var(--klx-bg) !important; color:var(--klx-txt) !important; padding:9px 6px !important; font-weight:700; }

/* coupon + inline forms */
body.klx-woo .woocommerce input.input-text, body.klx-woo .woocommerce select,
body.klx-woo .woocommerce textarea {
  font-family:var(--klx-text) !important; font-size:14.5px !important;
  background:var(--klx-bg) !important; color:var(--klx-txt) !important;
  border:1px solid var(--klx-hair) !important; border-radius:12px !important;
  padding:13px 15px !important; box-shadow:none !important; }
body.klx-woo .woocommerce input.input-text:focus, body.klx-woo .woocommerce select:focus,
body.klx-woo .woocommerce textarea:focus { outline:none !important; border-color:var(--klx-gold) !important;
  box-shadow:0 0 0 3px var(--klx-gold-soft) !important; }
body.klx-woo .woocommerce form .form-row label { font-family:var(--klx-text); font-size:12px; font-weight:700;
  letter-spacing:.06em; color:var(--klx-txt-dim); margin-bottom:4px; }
body.klx-woo .woocommerce form .form-row .required { color:var(--klx-maroon); }

/* cart totals + checkout review panels */
body.klx-woo .woocommerce .cart_totals, body.klx-woo .woocommerce #order_review {
  border:1px solid var(--klx-panel-border); border-radius:18px; background:var(--klx-bg-2); padding:24px; }
body.klx-woo .woocommerce .cart_totals table.shop_table, body.klx-woo .woocommerce #order_review table.shop_table { border:none !important; background:transparent; }
body.klx-woo .woocommerce .cart_totals h2 { font-size:22px; }
body.klx-woo .woocommerce-checkout #payment { background:transparent !important; border-radius:14px; }
body.klx-woo .woocommerce-checkout #payment div.payment_box { background:var(--klx-bg) !important; color:var(--klx-txt-dim) !important; border-radius:12px; }
body.klx-woo .woocommerce-checkout #payment div.payment_box::before { border-bottom-color:var(--klx-bg) !important; }
body.klx-woo .woocommerce-checkout #payment ul.payment_methods { border-bottom:1px solid var(--klx-hair-soft) !important; }
body.klx-woo #add_payment_method #payment, body.klx-woo .woocommerce-cart #payment { background:transparent !important; }

/* notices */
body.klx-woo .woocommerce-message, body.klx-woo .woocommerce-info, body.klx-woo .woocommerce-error {
  font-family:var(--klx-text) !important; border-radius:14px !important; background:var(--klx-bg-2) !important;
  color:var(--klx-txt) !important; border:1px solid var(--klx-card-border) !important; border-top:none !important; }
body.klx-woo .woocommerce-message { border-left:4px solid var(--klx-gold) !important; }
body.klx-woo .woocommerce-info { border-left:4px solid var(--klx-accent) !important; }
body.klx-woo .woocommerce-error { border-left:4px solid var(--klx-maroon) !important; }
body.klx-woo .woocommerce-message::before { color:var(--klx-gold) !important; }
body.klx-woo .woocommerce-info::before { color:var(--klx-accent) !important; }
body.klx-woo .woocommerce-error::before { color:var(--klx-maroon) !important; }
body.klx-woo .woocommerce-message .button, body.klx-woo .woocommerce-info .button, body.klx-woo .woocommerce-error .button { padding:10px 18px !important; }

/* my account */
body.klx-woo .woocommerce-MyAccount-navigation ul { list-style:none; margin:0; padding:0;
  border:1px solid var(--klx-card-border); border-radius:16px; overflow:hidden; background:var(--klx-bg); }
body.klx-woo .woocommerce-MyAccount-navigation li { border-bottom:1px solid var(--klx-hair-soft); }
body.klx-woo .woocommerce-MyAccount-navigation li:last-child { border-bottom:none; }
body.klx-woo .woocommerce-MyAccount-navigation li a { display:block; padding:13px 18px; font-weight:700;
  font-size:13px; color:var(--klx-txt-dim); text-decoration:none; }
body.klx-woo .woocommerce-MyAccount-navigation li.is-active a,
body.klx-woo .woocommerce-MyAccount-navigation li a:hover { color:var(--klx-maroon); background:var(--klx-bg-2); }

/* select2 / selectWoo (country + month dropdowns) */
body.klx-woo .select2-container--default .select2-selection--single {
  background:var(--klx-bg) !important; border:1px solid var(--klx-hair) !important;
  border-radius:12px !important; height:auto !important; padding:10px 12px !important; }
body.klx-woo .select2-container--default .select2-selection--single .select2-selection__rendered { color:var(--klx-txt) !important; line-height:1.4 !important; }
body.klx-woo .select2-container--default .select2-selection--single .select2-selection__arrow { top:50% !important; transform:translateY(-50%); }
body.klx-woo .select2-dropdown { background:var(--klx-bg) !important; border:1px solid var(--klx-hair) !important; color:var(--klx-txt) !important; }
body.klx-woo .select2-container--default .select2-results__option--highlighted[aria-selected] { background:var(--klx-maroon) !important; }
body.klx-woo .select2-search--dropdown .select2-search__field { background:var(--klx-bg) !important; color:var(--klx-txt) !important; border:1px solid var(--klx-hair) !important; }

/* dark theme inherits everything through tokens; small extras */
html[data-theme="dark"] body.klx-woo .woocommerce table.shop_table th { background:var(--klx-bg-2); }
html[data-theme="dark"] body.klx-woo .klx-pkgcard { background:var(--klx-bg-2) !important; }
html[data-theme="dark"] body.klx-duo .klx-stay { background:var(--klx-bg-2) !important; }

@media (max-width:768px){
  body.klx-woo .klx-wc-head { padding-top:120px; }
  body.klx-woo .woocommerce table.shop_table td { padding:12px !important; }
  body.klx-duo .klx-book-aside { position:static; }
}

/* ============================================================
   v4.9.0, CHROME COMPLETENESS (header/footer tpl 2693/2694)
   Logo links home, footer socials (CSS-mask thin-line icons on
   native heading links), real contact rows, payment chips,
   company registration. Both themes via tokens.
   ============================================================ */
.klx-hdr-logo .elementor-widget-image a, .klx-foot-brand .elementor-widget-image a {
  display:inline-flex !important; align-items:center; min-height:44px; border-radius:8px; }
.klx-hdr-logo .elementor-widget-image a:focus-visible, .klx-foot-brand .elementor-widget-image a:focus-visible {
  outline:2px solid var(--klx-gold); outline-offset:4px; }

/* icon library (alpha masks: any stroke colour works, currentColor paints it) */
.klx-soc-fb .elementor-heading-title a { --klx-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15.5 4.5h-2.3a3.2 3.2 0 0 0-3.2 3.2V11H7.5v3.2H10v6.3h3.3v-6.3h2.6l.5-3.2h-3.1V8.2c0-.5.4-.9.9-.9h2.3z'/%3E%3C/svg%3E"); }
.klx-soc-li .elementor-heading-title a { --klx-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='3'/%3E%3Cpath d='M7.5 10.5v6.5M7.5 7.3v.1M11.5 17v-6.5M11.5 13.2a2.7 2.7 0 0 1 5.4 0V17'/%3E%3C/svg%3E"); }
.klx-soc-yt .elementor-heading-title a { --klx-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.8 12c0-2.2.2-3.8.5-4.8a2.6 2.6 0 0 1 1.8-1.8C6.5 5.1 9 5 12 5s5.5.1 6.9.4a2.6 2.6 0 0 1 1.8 1.8c.3 1 .5 2.6.5 4.8s-.2 3.8-.5 4.8a2.6 2.6 0 0 1-1.8 1.8c-1.4.3-3.9.4-6.9.4s-5.5-.1-6.9-.4a2.6 2.6 0 0 1-1.8-1.8c-.3-1-.5-2.6-.5-4.8z'/%3E%3Cpath d='M10 9.3v5.4l4.6-2.7z'/%3E%3C/svg%3E"); }
.klx-soc-ig .elementor-heading-title a { --klx-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='5'/%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Ccircle cx='17.4' cy='6.6' r='.6' fill='%23000'/%3E%3C/svg%3E"); }
.klx-ct-phone .elementor-heading-title a { --klx-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.1 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.4 1.8.7 2.8a2 2 0 0 1-.5 2.1L8.1 9.9a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.8.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E"); }
.klx-ct-wa .elementor-heading-title a { --klx-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3.5a8.5 8.5 0 0 0-7.3 12.9L3.5 20.5l4.2-1.1A8.5 8.5 0 1 0 12 3.5z'/%3E%3Cpath d='M9.1 8.3c.3-.3.7-.3.9 0l.9 1.7c.1.3 0 .6-.3.9l-.5.5c.6 1.2 1.5 2.1 2.7 2.7l.5-.5c.3-.3.6-.4.9-.3l1.7.9c.3.2.3.6 0 .9l-.6.7c-.6.6-1.5.8-2.3.5a9.4 9.4 0 0 1-4.9-4.9c-.3-.8-.1-1.7.5-2.3z'/%3E%3C/svg%3E"); }
.klx-ct-mail .elementor-heading-title a { --klx-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.5' y='5' width='19' height='14' rx='2.5'/%3E%3Cpath d='M3 6.5l9 6.5 9-6.5'/%3E%3C/svg%3E"); }
.klx-pay-h .elementor-heading-title { --klx-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.5' y='5.5' width='19' height='13' rx='2.5'/%3E%3Cpath d='M2.5 10h19M6.5 14.5h4'/%3E%3C/svg%3E"); }

/* socials: 44px round targets, thin-line glyph, hover maroon (light) / gold (dark) via --klx-link */
.klx-soc-row { display:flex !important; flex-direction:row !important; flex-wrap:wrap; gap:8px !important;
  width:auto !important; margin-top:4px; }
.klx-soc-row .elementor-widget { width:auto !important; }
.klx-soc .elementor-heading-title { line-height:0 !important; margin:0 !important; }
.klx-soc .elementor-heading-title a { display:inline-flex !important; align-items:center; justify-content:center;
  width:44px; height:44px; box-sizing:border-box; border-radius:50%; border:1px solid var(--klx-hair);
  color:var(--klx-txt-dim) !important; font-size:0 !important; line-height:0 !important; text-decoration:none;
  transition:color .3s, border-color .3s, background .3s; }
.klx-soc .elementor-heading-title a::before { content:""; display:block; width:18px; height:18px;
  background:currentColor; -webkit-mask:var(--klx-ico) center / contain no-repeat; mask:var(--klx-ico) center / contain no-repeat; }
.klx-soc .elementor-heading-title a:hover, .klx-soc .elementor-heading-title a:focus-visible {
  color:var(--klx-link) !important; border-color:var(--klx-gold); background:var(--klx-tsw-bg); }
.klx-soc .elementor-heading-title a:focus-visible { outline:2px solid var(--klx-gold); outline-offset:3px; }
html[data-theme="dark"] .klx-soc .elementor-heading-title a:hover,
html[data-theme="dark"] .klx-soc .elementor-heading-title a:focus-visible { color:var(--klx-gold) !important; }

/* contact rows: glyph + real number/address, tabular digits */
.klx-ct .elementor-heading-title a { display:inline-flex !important; align-items:center; gap:10px;
  font-variant-numeric:tabular-nums; }
.klx-ct .elementor-heading-title a::before { content:""; flex:none; width:15px; height:15px; opacity:.75;
  background:currentColor; -webkit-mask:var(--klx-ico) center / contain no-repeat; mask:var(--klx-ico) center / contain no-repeat;
  transition:opacity .3s; }
.klx-ct .elementor-heading-title a:hover::before { opacity:1; }

/* payments + company registration band */
.klx-foot-pay { border-top:1px solid var(--klx-hair-soft) !important; display:flex !important;
  flex-direction:row !important; justify-content:space-between !important; align-items:center !important;
  gap:24px !important; flex-wrap:wrap; }
.klx-foot-pay .elementor-widget, .klx-foot-pay > .e-con { width:auto !important; }
.klx-pay-row { display:flex !important; flex-direction:row !important; align-items:center !important;
  flex-wrap:wrap; gap:8px !important; width:auto !important; }
.klx-pay-h .elementor-heading-title { display:inline-flex !important; align-items:center; gap:9px;
  font-family:var(--klx-text) !important; font-size:11px !important; font-weight:700 !important;
  letter-spacing:.22em !important; text-transform:uppercase !important; color:var(--klx-txt-faint) !important;
  margin-right:6px; white-space:nowrap; }
.klx-pay-h .elementor-heading-title::before { content:""; width:16px; height:16px; flex:none; background:currentColor;
  -webkit-mask:var(--klx-ico) center / contain no-repeat; mask:var(--klx-ico) center / contain no-repeat; }
.klx-pay-chip .elementor-heading-title { font-family:var(--klx-text) !important; font-size:11.5px !important;
  font-weight:500 !important; letter-spacing:.08em !important; text-transform:uppercase !important;
  color:var(--klx-txt-dim) !important; border:1px solid var(--klx-hair); border-radius:100px;
  padding:7px 13px; line-height:1 !important; white-space:nowrap; }
.klx-foot-reg .elementor-heading-title { font-family:var(--klx-text) !important; font-size:12.5px !important;
  font-weight:400 !important; letter-spacing:.02em !important; color:var(--klx-txt-faint) !important;
  font-variant-numeric:tabular-nums; white-space:nowrap; }
@media (max-width:767px){
  .klx-foot-pay { flex-direction:column !important; align-items:flex-start !important; gap:16px !important; }
}

/* ============================================================
   v4.10.0, LEGAL PAGES
   /terms-conditions/ (page 2467) · /refunds-cancellation-policy/ (page 2584)
   Compact hero band → non-sticky TOC → ≤72ch reading column → small CTA.
   Tokens only, so both themes come out AA without a second palette.
   ============================================================ */

/* ---- hero band (reuses .klx-ahero shell, quieter type) ---- */
.klx-legal-hero .klx-display .elementor-heading-title { font-size:clamp(36px,4.2vw,58px) !important; max-width:18ch; }
.klx-legal-hero .klx-lead p { max-width:58ch; }
.klx-legal-note p { font-family:var(--klx-text) !important; font-size:14.5px !important; line-height:1.6 !important;
  color:var(--klx-txt-dim) !important; max-width:60ch; margin:0; }
.klx-legal-note a { color:var(--klx-link) !important; text-decoration:underline; text-underline-offset:3px;
  text-decoration-color:var(--klx-gold-soft); }
.klx-legal-note a:hover { text-decoration-color:var(--klx-link); }

/* ---- table of contents (deliberately NOT sticky) ---- */
.klx-legal-tocband { background:var(--klx-bg) !important; border-bottom:1px solid var(--klx-hair-soft) !important; }
.klx-legal-toc { max-width:none !important; border:1px solid var(--klx-card-border) !important;
  border-radius:14px !important; background:var(--klx-surface) !important;
  padding:26px 30px !important; box-shadow:var(--klx-shadow-soft) !important; }
.klx-toc-h .elementor-heading-title { font-family:var(--klx-text) !important; font-size:11.5px !important;
  font-weight:700 !important; letter-spacing:.24em !important; text-transform:uppercase !important;
  color:var(--klx-accent) !important; }
.klx-toc-body ul.klx-toc-list { list-style:none !important; margin:0 !important; padding:0 !important;
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 34px; }
.klx-toc-body ul.klx-toc-list li { margin:0 !important; }
.klx-toc-body ul.klx-toc-list a { display:flex; gap:12px; align-items:baseline; padding:8px 0;
  font-family:var(--klx-text); font-size:15px; line-height:1.45; color:var(--klx-txt) !important;
  text-decoration:none; min-height:34px; box-sizing:border-box; transition:color .25s var(--klx-ease); }
.klx-toc-body ul.klx-toc-list a:hover { color:var(--klx-link) !important; }
.klx-toc-body ul.klx-toc-list a:hover .klx-toct { text-decoration:underline; text-underline-offset:3px;
  text-decoration-color:var(--klx-gold); }
.klx-tocn { flex:none; width:2.2em; font-weight:700; font-size:12px; letter-spacing:.08em;
  color:var(--klx-accent); font-variant-numeric:tabular-nums; }

/* ---- reading column ---- */
.klx-legal-body { background:var(--klx-bg) !important; }
.klx-legal-col { max-width:72ch !important; width:100% !important; }
.klx-legal-sec { scroll-margin-top:112px; }
.klx-legal-partband { padding-top:24px !important; border-top:1px solid var(--klx-hair) !important; }
.klx-legal-part .elementor-heading-title { font-family:var(--klx-text) !important; font-size:12px !important;
  font-weight:700 !important; letter-spacing:.26em !important; text-transform:uppercase !important;
  color:var(--klx-accent) !important; }
.klx-legal-h .elementor-heading-title { font-family:var(--klx-display) !important; font-weight:500 !important;
  font-size:clamp(23px,2.1vw,29px) !important; line-height:1.22 !important; letter-spacing:-.01em !important;
  color:var(--klx-txt) !important; display:flex !important; gap:14px; align-items:baseline; }
.klx-secno { flex:none; font-family:var(--klx-text); font-size:13px; font-weight:700; letter-spacing:.1em;
  color:var(--klx-accent); font-variant-numeric:tabular-nums; }
.klx-legal-txt { color:var(--klx-txt) !important; }
.klx-legal-txt p.klx-cl { font-family:var(--klx-text) !important; font-size:16.5px !important;
  line-height:1.72 !important; margin:0 0 14px !important; color:var(--klx-txt) !important; }
.klx-legal-txt p.klx-cl:last-child { margin-bottom:0 !important; }
.klx-legal-txt p.klx-cl-plain { padding-left:2.9em; }
.klx-clno { display:inline-block; min-width:2.9em; font-weight:700; color:var(--klx-accent);
  font-variant-numeric:tabular-nums; }
.klx-legal-txt ul.klx-sub { list-style:none !important; margin:0 0 14px !important; padding:0 0 0 2.9em !important; }
.klx-legal-txt ul.klx-sub li { position:relative; margin:0 0 9px !important; padding-left:2.2em;
  font-family:var(--klx-text); font-size:16.5px; line-height:1.72; color:var(--klx-txt); }
.klx-legal-txt ul.klx-sub li:last-child { margin-bottom:0 !important; }
.klx-sublab { position:absolute; left:0; font-weight:700; color:var(--klx-accent); }
.klx-legal-txt a { color:var(--klx-link) !important; text-decoration:underline; text-underline-offset:3px;
  text-decoration-color:var(--klx-gold-soft); }
.klx-legal-txt a:hover { text-decoration-color:var(--klx-link); }
.klx-legal-intro p.klx-cl { font-size:18px !important; color:var(--klx-txt-dim) !important; padding-left:0; }

/* ---- refunds 2.3 guideline table ---- */
.klx-legal-tablewrap { overflow-x:auto; margin:2px 0 18px 2.9em; }
table.klx-legal-table { width:100%; min-width:420px; border-collapse:collapse; margin:0; }
table.klx-legal-table th { text-align:left; font-family:var(--klx-text); font-size:11.5px; font-weight:700;
  letter-spacing:.18em; text-transform:uppercase; color:var(--klx-accent);
  padding:0 18px 10px 0; border-bottom:1px solid var(--klx-hair); }
table.klx-legal-table td { font-family:var(--klx-text); font-size:15.5px; line-height:1.6; color:var(--klx-txt);
  padding:12px 18px 12px 0; border-bottom:1px solid var(--klx-hair-soft); vertical-align:top; }
table.klx-legal-table td:first-child { white-space:nowrap; font-weight:700; }

/* ---- small contact CTA band ---- */
.klx-legal-cta { background:var(--klx-bg-2) !important; border-top:1px solid var(--klx-hair-soft) !important; }
.klx-legalcta-in { display:flex !important; flex-direction:row !important; justify-content:space-between !important;
  align-items:center !important; gap:24px !important; flex-wrap:wrap; }
.klx-legalcta-in > .e-con, .klx-legalcta-in .elementor-widget-button { width:auto !important; }
.klx-legalcta-h .elementor-heading-title { font-family:var(--klx-display) !important; font-weight:500 !important;
  font-size:clamp(21px,2vw,26px) !important; color:var(--klx-txt) !important; }
.klx-legalcta-p p { font-family:var(--klx-text) !important; font-size:15.5px !important;
  color:var(--klx-txt-dim) !important; margin:0; }

@media (max-width:1024px){
  .klx-toc-body ul.klx-toc-list { grid-template-columns:1fr; }
}
@media (max-width:767px){
  .klx-legal-toc { padding:20px 18px !important; border-radius:12px !important; }
  .klx-legal-txt p.klx-cl, .klx-legal-txt ul.klx-sub li { font-size:16px !important; }
  .klx-legal-txt p.klx-cl-plain { padding-left:1.4em; }
  .klx-clno { min-width:0; margin-right:.45em; }
  .klx-legal-txt ul.klx-sub { padding-left:1.4em !important; }
  .klx-legal-tablewrap { margin-left:0; }
  .klx-legal-h .elementor-heading-title { flex-direction:column !important; gap:6px; }
  .klx-legalcta-in { flex-direction:column !important; align-items:flex-start !important; }
}

/* ============================================================
   QUOTE PAGE - /get-your-custom-quote/ (page 2593)   v4.11.1
   Compact hero · designed Pro-form card + reassurance aside ·
   proof band · FAQ accordion · closing CTA.
   ============================================================ */

/* ---- hero (compact variant of .klx-ahero) ---- */
.klx-qhero .klx-display .elementor-heading-title { font-size:clamp(38px,4.4vw,62px) !important; max-width:14ch; }
.klx-qhero .klx-lead p { max-width:52ch; }
.klx-qfacts { display:flex !important; flex-direction:row !important; flex-wrap:wrap !important;
  align-items:center !important; gap:0 !important; margin-top:6px; }
.klx-qfacts .elementor-widget { width:auto !important; }
.klx-qfact .elementor-heading-title { font-family:var(--klx-text) !important; font-size:12.5px !important;
  font-weight:700 !important; letter-spacing:.16em !important; text-transform:uppercase !important;
  color:var(--klx-txt-dim) !important; padding:0 16px 0 0 !important; margin-right:16px;
  border-right:1px solid var(--klx-hair); line-height:1.5 !important; }
.klx-qfacts > .elementor-widget:last-child .klx-qfact .elementor-heading-title,
.klx-qfacts > .elementor-widget:last-child .elementor-heading-title { border-right:none; margin-right:0; padding-right:0 !important; }

/* ---- body split ---- */
.klx-qgrid { display:flex !important; flex-direction:row !important; gap:48px !important;
  align-items:flex-start !important; }
.klx-qgrid > .e-con { min-width:0; }
.klx-qform-col { flex:1.28 1 0 !important; background:var(--klx-surface) !important;
  border:1px solid var(--klx-card-border) !important; border-radius:18px !important;
  padding:36px 34px !important; box-shadow:var(--klx-shadow-card) !important; }
.klx-qaside { flex:1 1 0 !important; }
.klx-qform-h .elementor-heading-title { font-family:var(--klx-display) !important; font-weight:500 !important;
  font-size:clamp(24px,2.2vw,30px) !important; color:var(--klx-txt) !important; letter-spacing:-.01em !important; }
.klx-qform-sub, .klx-qform-sub p { font-size:15px !important; color:var(--klx-txt-dim) !important;
  line-height:1.6 !important; margin:0 !important; }

/* ---- the Elementor Pro form ---- */
.klx-qform .elementor-field-group { margin-bottom:0 !important; }
.klx-qform .elementor-form-fields-wrapper { gap:0 !important; }
.klx-qform .elementor-field-label { font-family:var(--klx-text) !important; font-size:12px !important;
  font-weight:700 !important; letter-spacing:.16em !important; text-transform:uppercase !important;
  color:var(--klx-txt-dim) !important; margin-bottom:8px !important; padding:0 !important; }
.klx-qform .elementor-field-label .elementor-mark-required,
.klx-qform .elementor-field-label span.required { color:var(--klx-accent) !important; }
.klx-qform input:not([type="submit"]),
.klx-qform textarea,
.klx-qform select {
  width:100% !important; background-color:var(--klx-bg) !important; color:var(--klx-txt) !important;
  border:1px solid var(--klx-hair) !important; border-radius:12px !important;
  padding:14px 16px !important; font-family:var(--klx-text) !important; font-size:15.5px !important;
  line-height:1.4 !important; box-shadow:none !important; min-height:52px !important;
  transition:border-color .25s var(--klx-ease), box-shadow .25s var(--klx-ease); }
.klx-qform select {
  -webkit-appearance:none; -moz-appearance:none; appearance:none;
  padding-right:44px !important; cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%238A5A2B' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-repeat:no-repeat !important; background-position:right 16px center !important;
  background-size:12px 8px !important; }
html[data-theme="dark"] .klx-qform select {
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%23C99A6B' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important; }
.klx-qform select option { background:var(--klx-opt-bg); color:var(--klx-txt); }
.klx-qform input::placeholder, .klx-qform textarea::placeholder { color:var(--klx-txt-faint) !important; opacity:1; }
.klx-qform input:not([type="submit"]):focus,
.klx-qform textarea:focus,
.klx-qform select:focus {
  border-color:var(--klx-accent) !important; outline:none !important;
  box-shadow:0 0 0 3px var(--klx-gold-soft) !important; }
.klx-qform textarea { min-height:120px; resize:vertical; }
.klx-qform .elementor-field-group.elementor-field-type-submit { margin-top:10px !important; }
.klx-qform .elementor-button[type="submit"] {
  width:100% !important; justify-content:center !important;
  font-family:var(--klx-text) !important; font-weight:700 !important; font-size:14px !important;
  letter-spacing:.08em !important; text-transform:uppercase !important; line-height:1 !important;
  padding:19px 32px !important; border-radius:100px !important; border:none !important;
  background:var(--klx-cta-fill) !important; color:var(--klx-cta-ink) !important;
  box-shadow:var(--klx-cta-shadow) !important; cursor:pointer;
  transition:transform .35s var(--klx-ease), box-shadow .35s var(--klx-ease), background .35s !important; }
.klx-qform .elementor-button[type="submit"]:hover { transform:translateY(-2px);
  background:var(--klx-cta-fill-h) !important; box-shadow:var(--klx-cta-shadow-h) !important; }
.klx-qform .elementor-button[type="submit"]:focus-visible { outline:3px solid var(--klx-accent); outline-offset:3px; }
.klx-qform .elementor-message { font-family:var(--klx-text) !important; font-size:15px !important;
  line-height:1.6 !important; margin-top:16px !important; }
.klx-qform .elementor-message.elementor-message-success {
  background:rgba(122,150,110,.12) !important; border:1px solid rgba(122,150,110,.5) !important;
  border-radius:12px !important; padding:16px 18px !important; color:#2F5D2A !important; }
html[data-theme="dark"] .klx-qform .elementor-message.elementor-message-success { color:#A9D39B !important; }
.klx-qform .elementor-message.elementor-message-danger,
.klx-qform .elementor-error, .klx-qform .elementor-help-inline { color:#A3122B !important; }
html[data-theme="dark"] .klx-qform .elementor-message.elementor-message-danger,
html[data-theme="dark"] .klx-qform .elementor-error,
html[data-theme="dark"] .klx-qform .elementor-help-inline { color:#F5A3B1 !important; }
.klx-qform .elementor-field-group.elementor-error input,
.klx-qform .elementor-field-group.elementor-error select,
.klx-qform .elementor-field-group.elementor-error textarea { border-color:#A3122B !important; }

/* ---- reassurance aside ---- */
.klx-qcard { background:var(--klx-surface) !important; border:1px solid var(--klx-card-border) !important;
  border-radius:16px !important; padding:26px 26px !important; box-shadow:var(--klx-shadow-soft) !important; }
.klx-qcard-h .elementor-heading-title { font-family:var(--klx-display) !important; font-weight:500 !important;
  font-size:21px !important; color:var(--klx-txt) !important; letter-spacing:-.005em !important; }
.klx-qcard-p, .klx-qcard-p p { font-size:14.5px !important; color:var(--klx-txt-dim) !important;
  line-height:1.6 !important; margin:0 !important; }
.klx-qstep { display:flex !important; flex-direction:row !important; align-items:flex-start !important;
  gap:16px !important; }
.klx-qstep > .e-con, .klx-qstep > .elementor-widget { width:auto !important; }
.klx-qstep-txt { flex:1 1 0 !important; width:auto !important; min-width:0; }
.klx-qtrust .klx-arating .elementor-heading-title { flex-wrap:wrap !important; row-gap:2px; }
.klx-qstep-n .elementor-heading-title { width:34px; height:34px; flex:none; border-radius:50%;
  display:flex !important; align-items:center; justify-content:center;
  background:var(--klx-ico-bg) !important; border:1px solid var(--klx-gold-soft) !important;
  font-family:var(--klx-display) !important; font-weight:500 !important; font-size:15px !important;
  color:var(--klx-accent) !important; line-height:1 !important; }
.klx-qstep-h .elementor-heading-title { font-family:var(--klx-text) !important; font-weight:700 !important;
  font-size:15.5px !important; color:var(--klx-txt) !important; letter-spacing:0 !important; }
.klx-qstep-p, .klx-qstep-p p { font-size:14.5px !important; color:var(--klx-txt-dim) !important;
  line-height:1.6 !important; margin:0 !important; }
.klx-qchips { display:flex !important; flex-direction:row !important; flex-wrap:wrap !important;
  gap:8px !important; }
.klx-qchips > .elementor-widget { width:auto !important; }
.klx-qchip .elementor-heading-title { display:inline-block; background:var(--klx-chip-bg) !important;
  border:1px solid var(--klx-chip-border) !important; border-radius:100px !important;
  padding:7px 14px !important; font-family:var(--klx-text) !important; font-size:12px !important;
  font-weight:700 !important; letter-spacing:.1em !important; text-transform:uppercase !important;
  color:var(--klx-txt-dim) !important; line-height:1.3 !important; }
.klx-qtalk .klx-cinfo-link .elementor-heading-title { margin:0 !important; }

/* ---- proof band (sits inside the maroon .klx-stats band, both themes) ---- */
.klx-qproof-in { display:flex !important; flex-direction:column !important; gap:44px !important; }
.klx-qquote { max-width:760px; margin:0 auto !important; text-align:center !important;
  align-items:center !important; }
.klx-qquote .klx-stars .elementor-heading-title { color:var(--klx-gold) !important;
  text-align:center !important; font-size:15px !important; }
.klx-qquote-t, .klx-qquote-t p { font-family:var(--klx-display) !important; font-weight:400 !important;
  font-size:clamp(20px,2.2vw,27px) !important; line-height:1.45 !important; letter-spacing:-.01em !important;
  color:#fff !important; margin:0 !important; text-align:center !important; }
.klx-qquote .klx-who { justify-content:center !important; }
.klx-qquote .klx-av .elementor-heading-title { width:46px; height:46px; font-size:15px !important;
  background:rgba(255,255,255,.10) !important; border:1px solid rgba(255,255,255,.22) !important;
  color:var(--klx-gold) !important; }
.klx-qquote .klx-who-name .elementor-heading-title { color:#fff !important; font-size:15px !important; }
.klx-qquote .klx-who-meta .elementor-heading-title { color:rgba(255,255,255,.75) !important; font-size:12.5px !important; }
.klx-qproof .klx-stats-grid { display:grid !important; grid-template-columns:repeat(4,1fr) !important;
  gap:20px !important; }

/* ---- FAQ (nested accordion) ---- */
.klx-sechead-c { align-items:center !important; text-align:center !important; }
.klx-qacc-wrap { max-width:860px; margin:0 auto !important; width:100% !important; }
.klx-qacc .e-n-accordion { display:flex; flex-direction:column; gap:12px; }
.klx-qacc details.e-n-accordion-item { background:var(--klx-surface) !important;
  border:1px solid var(--klx-card-border) !important; border-radius:14px !important;
  overflow:hidden; transition:border-color .3s var(--klx-ease); }
.klx-qacc details.e-n-accordion-item[open] { border-color:var(--klx-gold-soft) !important; }
.klx-qacc summary.e-n-accordion-item-title { display:flex !important; align-items:center !important;
  flex-direction:row !important; justify-content:space-between !important; gap:20px;
  cursor:pointer; list-style:none; padding:22px 26px !important;
  background:transparent !important; border:none !important;
  min-height:64px; box-sizing:border-box; }
.klx-qacc .e-n-accordion-item-title-header { flex:1 1 auto !important; min-width:0;
  text-align:left !important; }
.klx-qacc summary.e-n-accordion-item-title::-webkit-details-marker { display:none; }
.klx-qacc summary.e-n-accordion-item-title:focus-visible { outline:3px solid var(--klx-accent); outline-offset:-3px; }
.klx-qacc .e-n-accordion-item-title-text { font-family:var(--klx-display) !important; font-weight:500 !important;
  font-size:clamp(17px,1.5vw,20px) !important; line-height:1.35 !important; letter-spacing:-.005em !important;
  color:var(--klx-txt) !important; margin:0 !important; text-align:left !important; }
.klx-qacc .e-n-accordion-item-title-icon { flex:none; color:var(--klx-accent) !important; }
.klx-qacc .e-n-accordion-item-title-icon svg { width:15px; height:15px; fill:var(--klx-accent); }
.klx-qacc .klx-qacc-panel { padding:0 26px 24px 26px !important; }
.klx-qacc .klx-qacc-p, .klx-qacc .klx-qacc-p p { font-family:var(--klx-text) !important;
  font-size:16px !important; line-height:1.68 !important; color:var(--klx-txt-dim) !important; margin:0 !important; }

@media (max-width:1024px){
  .klx-qgrid { flex-direction:column !important; gap:36px !important; }
  .klx-qform-col, .klx-qaside { flex:0 0 auto !important; width:100% !important; }
  .klx-qproof .klx-stats-grid { grid-template-columns:repeat(2,1fr) !important; }
  .klx-qproof .klx-stat:nth-child(3)::before { display:none; }
}
@media (max-width:767px){
  .klx-qform-col { padding:24px 20px !important; border-radius:14px !important; }
  .klx-qcard { padding:22px 20px !important; }
  .klx-qform input:not([type="submit"]), .klx-qform textarea, .klx-qform select { font-size:16px !important; }
  .klx-qfact .elementor-heading-title { font-size:11.5px !important; padding-right:12px !important; margin-right:12px; }
  .klx-qacc summary.e-n-accordion-item-title { padding:18px 20px !important; }
  .klx-qacc .klx-qacc-panel { padding:0 20px 20px 20px !important; }
  .klx-qproof .klx-stats-grid { gap:12px !important; }
}

/* ============================================================
   v4.12.0, MEDIA WRAPPER HEIGHT HARDENING (collapsed-card fix)
   ------------------------------------------------------------
   ROOT CAUSE. Elementor's own container CSS ships
     .e-con { height:var(--height); min-height:var(--min-height); }
   with --height:auto and --min-height:initial. It is (0,1,0) and it
   loads AFTER this stylesheet, so ANY single-class height or
   min-height the skin declares on a container is silently dropped.
   Where the media wrapper inside that container is position:absolute
   inset:0, the wrapper then has no height to resolve against and the
   photo collapses to the container's 10px padding box, about 20px
   tall. It only showed at <=1023px because at desktop the height came
   from a grid track or a stretched sibling, never from the
   declaration. .klx-bcard.klx-tall survived because two classes beat
   .e-con, which is why the first bento card looked right and the four
   after it were strips.
   THE RULE. Every height / min-height the skin puts on an Elementor
   container is a component rule: it carries !important (CASCADE LAW,
   top of file). Every media wrapper also owns an aspect-ratio, so the
   box still has a resolvable height if no min-height ever binds.
   Order matters as much as specificity: the generic floor comes
   FIRST, the per-breakpoint intent AFTER it, or the floor wins.
   Gated by tools/qa/media-floor.mjs.
   ============================================================ */

/* -- 1. generic floor. Any klx media wrapper keeps a visible photo instead of
      a strip even if every rule below is somehow lost. Inert by design: every
      one of these renders taller than 200px in the approved layout. -- */
.klx-bcard, .klx-poster, .klx-dcard, .klx-gimg, .klx-jfeat-img { min-height:200px !important; }

/* -- 2. the img: height:100% only resolves against a sized wrapper, so pair it
      with the wrapper's own box and never let it exceed it. -- */
.klx-bcard-img, .klx-poster-img, .klx-dcard-img,
.klx-jfeat-img .elementor-widget-image { min-height:100% !important; }
.klx-bcard-img img, .klx-poster-img img, .klx-jfeat-img img {
  max-height:100% !important; min-height:100% !important; }

/* -- 3. collections bento: cards own their height at every width. The values
      are the ones the skin already declared (260 / 380), restated so they
      actually bind. The aspect-ratio is a pure fallback: at every width the
      min-height is the larger of the two, so it changes nothing today and
      still gives the box a height if a min-height is ever lost again.
      .klx-tall spans the full row and takes its height from min-height
      alone, so it must NOT carry the ratio. -- */
.klx-bento > .klx-bcard { aspect-ratio:4/3; }
.klx-bento > .klx-bcard.klx-tall { aspect-ratio:auto; }
@media (min-width:1024px){
  /* desktop rows come from grid-template-rows, the ratio must not fight them */
  .klx-bento > .klx-bcard { aspect-ratio:auto; }
}
@media (max-width:1023px){
  .klx-bcard { min-height:260px !important; }
  .klx-bcard.klx-tall { min-height:380px !important; }
}

/* -- 4. traveller moments video poster. Declared intent was min-height:480px;
      16/11 delivers 481px at 768 on its own, and a phone gets 4/3 with a
      320px floor so the poster does not eat the whole screen. -- */
@media (min-width:1024px){
  /* the 2-col grid stretches it against .klx-irema (426px in the approved
     layout), so keep a floor that cannot bind, only rescue a collapse */
  .klx-poster { min-height:340px !important; }
}
@media (max-width:1023px){
  .klx-poster { aspect-ratio:16/11; min-height:380px !important; }
}
@media (max-width:560px){
  .klx-poster { aspect-ratio:4/3; min-height:320px !important; }
}

/* -- 5. journal featured post image column -- */
@media (max-width:1023px){
  .klx-jfeat-img { height:300px !important; min-height:300px !important; aspect-ratio:16/10; }
}
@media (max-width:560px){
  .klx-jfeat-img { height:230px !important; min-height:230px !important; }
}

/* -- 6. destination collection grid. The wide card must stay taller than its
      siblings: the generic `.klx-cgrid > .e-con` floor is the same specificity
      and sits later in the file, so restate both here in the right order. -- */
@media (min-width:1024px){
  .klx-cgrid > .e-con { min-height:300px !important; }
  .klx-cgrid > .klx-cwide { min-height:360px !important; }
}
@media (max-width:1023px){
  /* no cwide rule here on purpose: the tablet layout already ran every card
     at 260px and that is the approved look */
  .klx-cgrid > .e-con { min-height:260px !important; }
}
@media (max-width:560px){
  .klx-cgrid > .e-con { min-height:240px !important; }
  .klx-cgrid > .klx-cwide { min-height:300px !important; }
}

/* ---------- v4.12.1 footer agency credit ---------- */
.klx-foot-credit .elementor-heading-title {
  font-family: var(--klx-text) !important;
  font-size: .78rem !important;
  font-weight: 400 !important;
  letter-spacing: .02em !important;
  color: rgba(255,255,255,.42) !important;
  text-transform: none !important;
}
.klx-foot-credit .elementor-heading-title a {
  color: rgba(255,255,255,.62) !important;
  text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,.22);
  padding-bottom: 1px;
  transition: color .2s ease, border-color .2s ease;
}
.klx-foot-credit .elementor-heading-title a:hover,
.klx-foot-credit .elementor-heading-title a:focus-visible {
  color: var(--klx-gold) !important;
  border-color: var(--klx-gold);
}
@media (max-width: 767px) {
  .klx-foot-credit .elementor-heading-title { font-size: .74rem !important; }
  .klx-foot-credit .elementor-heading-title a { display: inline-block; padding: 8px 0 9px; }
}
