
/* === DS custom (managed) START === */
/* 1. Mega menu: dropdown hangs below the bar as an extension of it */
.elementor-location-header .e-con.e-parent { position: relative; overflow: visible; }
.elementor-location-header .elementor-widget-mega-menu,
.elementor-location-header .elementor-widget-mega-menu .elementor-widget-container,
.elementor-location-header .elementor-widget-mega-menu .e-n-menu,
.elementor-location-header .elementor-widget-mega-menu .e-n-menu-wrapper { position: static; }
.elementor-location-header .elementor-widget-mega-menu .e-n-menu-content { position: absolute; top: 100%; left: 0; right: 0; width: auto; margin: 0; }
.elementor-location-header .elementor-widget-mega-menu .e-n-menu-content > .e-con { max-width: 100%; width: 100%; margin: 0; border-radius: 0 0 12px 12px; }

/* 2. Multi-step form: keep step labels on one line */
.elementor-widget-form .e-form__indicators { align-items: flex-start; gap: 4px; }
.elementor-widget-form .e-form__indicators__indicator { flex-basis: auto; flex-grow: 0; flex-shrink: 0; min-width: 120px; align-items: center; text-align: center; }
.elementor-widget-form .e-form__indicators__indicator__label { white-space: nowrap; text-align: center; font-size: 14px; line-height: 1.4; margin-top: 6px; }
.elementor-widget-form .e-form__indicators__indicator__separator { flex-grow: 1; flex-shrink: 1; margin-top: 18px; }

/* 3. Search: in-flow field that pushes the other top-bar items left as it opens */
.elementor-location-header .elementor-widget-search-form {
  position: static;
  --e-search-form-toggle-color: #FFFFFF;
  --e-search-form-toggle-background-color: transparent;
  --e-search-form-toggle-border-width: 0;
  --e-search-form-toggle-border-radius: 0;
  --e-search-form-toggle-size: 20px;
  --e-search-form-toggle-icon-size: 1em;
}
.elementor-location-header .elementor-widget-search-form .elementor-search-form__toggle i,
.elementor-location-header .elementor-widget-search-form .elementor-search-form__toggle .e-font-icon-svg-container {
  background-color: transparent;
  border: 0;
  border-radius: 0;
  width: auto;
  height: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.elementor-location-header .elementor-widget-search-form .elementor-search-form__toggle i:before { position: static; transform: none; font-size: 16px; }
.elementor-location-header .elementor-widget-search-form .elementor-search-form__toggle svg { position: static; transform: none; width: 16px; height: 16px; }
.elementor-location-header .elementor-widget-search-form .elementor-widget-container,
.elementor-location-header .elementor-widget-search-form .elementor-search-form { display: flex; align-items: center; gap: 8px; }
.elementor-location-header .elementor-widget-search-form .elementor-search-form__toggle { flex: 0 0 auto; order: 2; color: #FFFFFF; }
.elementor-location-header .elementor-widget-search-form .elementor-search-form__toggle i,
.elementor-location-header .elementor-widget-search-form .elementor-search-form__toggle i:before { color: #FFFFFF; }
.elementor-location-header .elementor-widget-search-form .elementor-search-form__toggle svg { fill: #FFFFFF; }
.elementor-location-header .elementor-search-form--skin-full_screen .elementor-search-form__container {
  inset: auto;
  position: relative;
  order: 1;
  flex: 0 0 auto;
  width: 0;
  height: auto;
  min-height: 0;
  padding: 0;
  margin: 0;
  overflow: hidden;
  align-items: center;
  background-color: rgba(255,255,255,0.14);
  border-radius: 4px;
  opacity: 0;
  pointer-events: none;
  transform: none;
  z-index: auto;
  transition: width .3s cubic-bezier(.22,.61,.36,1), opacity .18s ease, padding .3s ease;
}
.elementor-location-header .elementor-search-form--skin-full_screen .elementor-search-form__container:not(.elementor-search-form--full-screen) { width: 0; opacity: 0; padding: 0; transform: none; overflow: hidden; }
.elementor-location-header .elementor-search-form--skin-full_screen .elementor-search-form__container.elementor-search-form--full-screen { width: min(300px, 46vw); padding: 5px 34px 5px 12px; opacity: 1; pointer-events: auto; }
.elementor-location-header .elementor-search-form--skin-full_screen input[type=search].elementor-search-form__input {
  font-size: 13px;
  line-height: 1.5;
  color: #FFFFFF;
  text-align: left;
  border: 0;
  background: transparent;
  padding: 0;
  height: auto;
  min-height: 0;
  width: 100%;
  position: relative;
  z-index: 1;
}
.elementor-location-header .elementor-search-form--skin-full_screen input[type=search].elementor-search-form__input::placeholder { color: rgba(255,255,255,0.7); opacity: 1; }
/* close button: real hit area, above the input, always visible when open */
.elementor-location-header .elementor-search-form--skin-full_screen .elementor-search-form--full-screen .dialog-lightbox-close-button,
.elementor-location-header .elementor-search-form--skin-full_screen .dialog-lightbox-close-button {
  position: absolute;
  top: 50%;
  right: 6px;
  bottom: auto;
  left: auto;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  padding: 0;
  margin: 0;
  border-radius: 3px;
  color: #FFFFFF;
  font-size: 14px;
  line-height: 1;
  opacity: 1;
  cursor: pointer;
  pointer-events: auto;
  z-index: 5;
}
.elementor-location-header .elementor-search-form--skin-full_screen .dialog-lightbox-close-button svg { fill: #FFFFFF; width: 12px; height: 12px; }
.elementor-location-header .elementor-search-form--skin-full_screen .dialog-lightbox-close-button i,
.elementor-location-header .elementor-search-form--skin-full_screen .dialog-lightbox-close-button i:before { color: #FFFFFF; font-size: 14px; }
.elementor-location-header .elementor-search-form--skin-full_screen .dialog-lightbox-close-button:hover { background-color: rgba(255,255,255,0.2); }

@media (max-width: 1024px) {
  .elementor-location-header .elementor-widget-mega-menu .e-n-menu-content { position: static; top: auto; width: auto; }
  .elementor-location-header .elementor-widget-mega-menu .e-n-menu-content > .e-con { border-radius: 0; }
}
@media (max-width: 767px) {
  .elementor-location-header .elementor-search-form--skin-full_screen .elementor-search-form__container.elementor-search-form--full-screen { width: min(60vw, 220px); padding: 4px 30px 4px 10px; }
  .elementor-widget-form .e-form__indicators__indicator { min-width: 84px; }
  .elementor-widget-form .e-form__indicators__indicator__label { font-size: 13px; }
}

/* 4. Hero scroll cue */
#ds-hero { position: relative; }
.ds-scroll-cue {
  position: absolute;
  bottom: 82px;
  left: 50%;
  transform: translateX(-50%);
  animation: dsCue 2.4s ease-in-out infinite;
  z-index: 2;
}
.ds-scroll-cue a, .ds-scroll-cue .elementor-icon { color: #FFFFFF; transition: opacity .2s ease; }
.ds-scroll-cue:hover { animation-play-state: paused; }
.ds-scroll-cue:hover .elementor-icon { opacity: .7; }
@keyframes dsCue {
  0%, 100% { transform: translate(-50%, 0); }
  50%      { transform: translate(-50%, 9px); }
}
@media (prefers-reduced-motion: reduce) {
  .ds-scroll-cue { animation: none; }
}
/* === DS custom (managed) END === */

/* --- Restored from Nexter code snippets (auto-disabled due to a plugin bug) --- */

/* [Nexter: Header overlap into hero] Floats the Elementor header main bar as a rounded white card overlapping the hero. Reverts to a normal bar below 1024px. */
.elementor-location-header .elementor-element-5885726 {
  position: relative;
  z-index: 99;
  background: transparent !important;
  margin-bottom: -107px;
  padding-top: 0;
  padding-bottom: 0;
}

.elementor-location-header .elementor-element-5885726 > .elementor-container {
  max-width: 1320px;
  margin: 20px auto 0;
  padding: 8px 28px;
  background: #FFFFFF;
  border-radius: 12px;
  box-shadow: 0 12px 28px rgba(26, 83, 115, 0.15);
}

@media (max-width: 1024px) {
  .elementor-location-header .elementor-element-5885726 {
    margin-bottom: 0;
    background: #FFFFFF !important;
  }
  .elementor-location-header .elementor-element-5885726 > .elementor-container {
    max-width: 100%;
    margin: 0;
    padding: 0;
    border-radius: 0;
    box-shadow: none;
  }
}

/* [Nexter: Mega menu dropdown below header] Positions the Elementor Mega Menu dropdown absolutely below the header bar, spanning its full width with rounded bottom corners. */
.elementor-location-header .e-con.e-parent {
  position: relative;
  overflow: visible;
}

.elementor-location-header .elementor-widget-mega-menu,
.elementor-location-header .elementor-widget-mega-menu .elementor-widget-container,
.elementor-location-header .elementor-widget-mega-menu .e-n-menu,
.elementor-location-header .elementor-widget-mega-menu .e-n-menu-wrapper {
  position: static;
}

.elementor-location-header .elementor-widget-mega-menu .e-n-menu-content {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  width: auto;
  margin: 0;
}

.elementor-location-header .elementor-widget-mega-menu .e-n-menu-content > .e-con {
  max-width: 100%;
  width: 100%;
  margin: 0;
  border-radius: 0 0 12px 12px;
}

@media (max-width: 1024px) {
  .elementor-location-header .elementor-widget-mega-menu .e-n-menu-content {
    position: static;
    top: auto;
    width: auto;
  }
  .elementor-location-header .elementor-widget-mega-menu .e-n-menu-content > .e-con {
    border-radius: 0;
  }
}

/* [Nexter: Multi-step form labels readable] Prevents Elementor multi-step form step labels from wrapping vertically. */
.elementor-widget-form .e-form__indicators {
  align-items: flex-start;
  gap: 4px;
}

.elementor-widget-form .e-form__indicators__indicator {
  flex-basis: auto;
  flex-grow: 0;
  flex-shrink: 0;
  min-width: 120px;
  align-items: center;
  text-align: center;
}

.elementor-widget-form .e-form__indicators__indicator__label {
  white-space: nowrap;
  text-align: center;
  font-size: 14px;
  line-height: 1.4;
  margin-top: 6px;
}

.elementor-widget-form .e-form__indicators__indicator__separator {
  flex-grow: 1;
  flex-shrink: 1;
  margin-top: 18px;
}

@media (max-width: 767px) {
  .elementor-widget-form .e-form__indicators__indicator {
    min-width: 84px;
  }
  .elementor-widget-form .e-form__indicators__indicator__label {
    font-size: 13px;
  }
}

/* [Nexter: Search drawer under top bar] Converts the Elementor full-screen search into a slim drawer that slides down from beneath the top bar. */
:root { --ds-search-top: 40px; }

.elementor-location-header .elementor-search-form--skin-full_screen .elementor-search-form__container {
  inset: auto;
  position: fixed;
  top: var(--ds-search-top);
  left: 0;
  right: 0;
  bottom: auto;
  height: auto;
  min-height: 0;
  align-items: center;
  padding: 20px 6vw;
  background-color: #FFFFFF;
  box-shadow: 0 14px 32px rgba(26, 83, 115, 0.18);
  transform: translateY(-110%);
  opacity: 0;
  pointer-events: none;
  transition: transform .34s cubic-bezier(.22,.61,.36,1), opacity .2s ease;
  z-index: 9998;
}

.elementor-location-header .elementor-search-form--skin-full_screen .elementor-search-form__container:not(.elementor-search-form--full-screen) {
  transform: translateY(-110%);
  opacity: 0;
  overflow: hidden;
}

.elementor-location-header .elementor-search-form--skin-full_screen .elementor-search-form__container.elementor-search-form--full-screen {
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
}

.elementor-location-header .elementor-search-form--skin-full_screen input[type=search].elementor-search-form__input {
  font-size: 20px;
  line-height: 1.4;
  color: #1F2A30;
  text-align: left;
  border-width: 0 0 1px;
  border-color: #D8E0E5;
  padding: 10px 0;
  background: transparent;
}

.elementor-location-header .elementor-search-form--skin-full_screen input[type=search].elementor-search-form__input::placeholder {
  color: #7A8892;
  opacity: 1;
}

.elementor-location-header .elementor-search-form--skin-full_screen .dialog-lightbox-close-button {
  top: 50%;
  right: 3vw;
  bottom: auto;
  transform: translateY(-50%);
  color: #1F2A30;
  font-size: 22px;
}

@media (max-width: 767px) {
  :root { --ds-search-top: 0px; }
  .elementor-location-header .elementor-search-form--skin-full_screen .elementor-search-form__container {
    padding: 16px 20px;
  }
  .elementor-location-header .elementor-search-form--skin-full_screen input[type=search].elementor-search-form__input {
    font-size: 17px;
  }
}

/* === Floating header card — live header 3112, container dd167ee === */
.elementor-3112 .elementor-element.elementor-element-dd167ee{
  left:0 !important;
  right:0 !important;
  --margin-left:auto !important;
  --margin-right:auto !important;
  margin-left:auto !important;
  margin-right:auto !important;
  max-width:1400px !important;
  width:calc(100% - 48px) !important;
}
@media (max-width:1024px){
  .elementor-3112 .elementor-element.elementor-element-dd167ee{ width:calc(100% - 32px) !important; }
}
@media (max-width:767px){
  .elementor-3112 .elementor-element.elementor-element-dd167ee{ width:calc(100% - 20px) !important; }
}


/* === Mega dropdown spans the full nav card === */
/* give the card a positioning context, but never while it is sticky-fixed */
.elementor-3112 .elementor-element.elementor-element-dd167ee:not(.elementor-sticky--active){ position:relative !important; }
/* stop the menu widget being the positioning reference */
.elementor-3112 .elementor-element.elementor-element-6a809b1{ position:static !important; }
/* stretch the dropdown to the card's own edges */
.elementor-3112 .elementor-element.elementor-element-6a809b1 .e-n-menu-content{
  position:absolute !important;
  top:100% !important;
  left:0 !important;
  right:0 !important;
  width:auto !important;
  max-width:none !important;
}
.elementor-3112 .elementor-element.elementor-element-6a809b1 .e-n-menu-content > .e-con{
  width:100% !important;
  max-width:none !important;
  margin-left:0 !important;
  margin-right:0 !important;
}
/* mega dropdown spans card */

/* Neutralise menu wrappers so the dropdown anchors to the card, not the menu */
.elementor-3112 .elementor-element.elementor-element-6a809b1 .e-n-menu,
.elementor-3112 .elementor-element.elementor-element-6a809b1 .e-n-menu-wrapper,
.elementor-3112 .elementor-element.elementor-element-6a809b1 .e-n-menu-heading,
.elementor-3112 .elementor-element.elementor-element-6a809b1 .e-n-menu-item{
  position:static !important;
}
/* card must be the anchor in every state, including sticky */
.elementor-3112 .elementor-element.elementor-element-dd167ee{ position:relative; }
@media (min-width:1025px){
  .elementor-3112 .elementor-element.elementor-element-6a809b1 .e-n-menu-content{
    position:absolute !important; top:100% !important; left:0 !important; right:0 !important;
    width:auto !important; max-width:none !important;
  }
}
/* neutralise menu wrappers */

/* Remove the seam between the nav card and an open dropdown */
@media (min-width:1025px){
  /* while a panel is open, square off the card's bottom, drop its shadow, and force opaque so it matches the dropdown */
  .elementor-3112 .elementor-element.elementor-element-dd167ee:has(.e-n-menu-content > .e-con.e-active){
    border-bottom-left-radius:0 !important;
    border-bottom-right-radius:0 !important;
    box-shadow:none !important;
    background-color:#FFFFFF !important;
  }
  /* pull the panel up 1px so no hairline can show through */
  .elementor-3112 .elementor-element.elementor-element-6a809b1 .e-n-menu-content{
    top:calc(100% - 1px) !important;
  }
  /* panel keeps the single shadow for the whole assembly */
  .elementor-3112 .elementor-element.elementor-element-6a809b1 .e-n-menu-content > .e-con.e-active{
    box-shadow:0 14px 34px rgba(26,83,115,0.22) !important;
  }
}
/* seam between card and dropdown */

/* Force the nav card opaque only once scrolled/stuck (ISAAC request: transparent at top so the hero video shows) */
.elementor-3112 .elementor-element.elementor-element-dd167ee.elementor-sticky--effects{
  background-color:#FFFFFF !important;
  opacity:1 !important;
  backdrop-filter:none !important;
}
/* force opaque nav card */

/* Fix: dark nav-item text is invisible against the transparent header state (hero
   image/video showing through above the fold). Force nav text white with a soft
   shadow while transparent; revert to solid ink with no shadow once the header
   goes opaque on scroll (sticky state), matching the widget's own default color. */
.elementor-3112 .elementor-element.elementor-element-6a809b1{
  --n-menu-title-color-normal:#FFFFFF !important;
}
.elementor-3112 .elementor-element.elementor-element-6a809b1 .e-n-menu-title{
  text-shadow:0 1px 3px rgba(0,0,0,0.55), 0 1px 10px rgba(0,0,0,0.35) !important;
}
.elementor-3112 .elementor-sticky--effects .elementor-element-6a809b1{
  --n-menu-title-color-normal:#181717 !important;
}
.elementor-3112 .elementor-sticky--effects .elementor-element-6a809b1 .e-n-menu-title{
  text-shadow:none !important;
}

/* === Nav card + dropdown: shadow geometry so nothing bleeds upward === */
@media (min-width:1025px){
  /* card keeps its float — shadow removed per request (transparent, no-shadow nav) */
  .elementor-3112 .elementor-element.elementor-element-dd167ee{
    box-shadow:none !important;
  }
  /* panel: offset (18) must exceed half the blur (30/2=15) or the shadow bleeds up onto the card */
  .elementor-3112 .elementor-element.elementor-element-6a809b1 .e-n-menu-content > .e-con{
    box-shadow:0 18px 30px -2px rgba(26,83,115,0.20) !important;
    border-top:0 !important;
    margin-top:0 !important;
  }
}


/* ===== Mobile / tablet nav — Yellow Zebra pattern ===== */
@media (max-width:1024px){
  /* compact utility bar: keep search + contacts reachable, but slim */
  .elementor-3112 .elementor-element.elementor-element-d05d883{ padding:4px 12px !important; font-size:12px !important; }
  .elementor-3112 .elementor-element.elementor-element-d05d883 .elementor-nav-menu a{ font-size:12px !important; }

  /* card: logo | CTA + burger, nothing wraps */
  .elementor-3112 .elementor-element.elementor-element-dd167ee{
    justify-content:space-between !important; flex-wrap:nowrap !important; gap:10px !important;
  }
  .elementor-3112 .elementor-element.elementor-element-9890ea8{ margin-right:auto !important; }

  /* full-bleed drop panel under the card */
  .elementor-3112 .elementor-element.elementor-element-6a809b1 .e-n-menu-content{
    position:static !important; width:100% !important; max-width:none !important;
  }
  .elementor-3112 .elementor-element.elementor-element-6a809b1 .e-n-menu-content > .e-con{
    width:100% !important; max-width:none !important; box-shadow:none !important;
    border-radius:0 !important; padding:14px 16px 20px !important;
  }

  /* menu rows: full width, separated, chevron right — like Yellow Zebra */
  .elementor-3112 .elementor-element.elementor-element-6a809b1 .e-n-menu-heading{
    flex-direction:column !important; align-items:stretch !important; width:100% !important;
  }
  .elementor-3112 .elementor-element.elementor-element-6a809b1 .e-n-menu-item{ width:100% !important; }
  .elementor-3112 .elementor-element.elementor-element-6a809b1 .e-n-menu-title{
    width:100% !important; justify-content:space-between !important;
    padding:15px 4px !important; border-bottom:1px solid #EFF3F5 !important;
  }

  /* toggle sits right, ink coloured */
  .elementor-3112 .elementor-element.elementor-element-6a809b1 .e-n-menu-toggle{ margin-left:6px !important; color:#1F2A30 !important; }
}
@media (max-width:767px){
  /* stop the desktop negative pull creating a gap on small screens */
  .elementor-3112 .elementor-element.elementor-element-dd167ee{ width:calc(100% - 20px) !important; }
}
/* mobile nav — yellow zebra pattern */


/* ===== Off-canvas mobile panel polish ===== */
@media (max-width:1024px){
  /* rows with dividers + chevron, Yellow Zebra style */
  #off-canvas-dsoffcv1 .elementor-nav-menu--main .elementor-item{
    justify-content:space-between !important; border-bottom:0 !important; width:100% !important;
  }
  #off-canvas-dsoffcv1 .elementor-nav-menu--dropdown a,
  #off-canvas-dsoffcv1 .elementor-nav-menu a{ padding-left:0 !important; padding-right:0 !important; }
  /* card: logo left, CTA + burger right */
  .elementor-3112 .elementor-element.elementor-element-dd167ee{ justify-content:space-between !important; }
  .elementor-3112 .elementor-element.elementor-element-dsburger1{ order:99 !important; }
}
/* off-canvas mobile panel polish */


/* ===== Off-canvas panel: Yellow Zebra row treatment ===== */
.elementor-element-dsoffcv1 .e-off-canvas__main{ background:#FFFFFF !important; }
/* main menu: full-width rows, divider under each, chevron pushed right */
.elementor-element-dsoc_menu .elementor-nav-menu--main .elementor-nav-menu > li{ width:100% !important; }
.elementor-element-dsoc_menu .elementor-nav-menu--main .elementor-nav-menu a.elementor-item{
  display:flex !important; align-items:center !important; justify-content:space-between !important;
  width:100% !important; padding:13px 0 !important; border-bottom:0 !important;
}
.elementor-element-dsoc_menu .elementor-nav-menu .sub-arrow{ margin-left:auto !important; }
.elementor-element-dsoc_menu .elementor-nav-menu .sub-arrow i{ color:#9AA5AB !important; font-size:13px !important; }
/* secondary links: quieter, no dividers */
.elementor-element-dsoc_util .elementor-nav-menu a.elementor-item{
  padding:8px 0 !important; border:0 !important; font-size:13px !important;
}
/* search: underline only, icon left */
.elementor-element-dsoc_search .elementor-search-form__container{
  border-bottom:1px solid #E3E9ED !important; background:transparent !important;
  border-radius:0 !important; padding:4px 0 !important;
}
.elementor-element-dsoc_search input[type=search]{ background:transparent !important; font-size:15px !important; }
/* off-canvas panel row */
/* off-canvas panel rows */


/* ===== Off-canvas header row: logo | CTA | phone | close ===== */
.elementor-element-dsoc_head{ display:flex !important; align-items:center !important; flex-wrap:nowrap !important; gap:8px !important; }
.elementor-element-dsoc_logo{ order:1 !important; margin-right:auto !important; flex:0 0 auto !important; }
.elementor-element-dsoc_cta{ order:2 !important; flex:0 0 auto !important; width:auto !important; }
.elementor-element-dsoc_tel{ order:3 !important; flex:0 0 auto !important; width:auto !important; }
.elementor-element-dsoc_close{ order:4 !important; flex:0 0 auto !important; width:auto !important; }
.elementor-element-dsoc_cta .elementor-button{
  white-space:nowrap !important; font-size:11px !important; padding:9px 14px !important;
}
.elementor-element-dsoc_tel .elementor-icon-wrapper,
.elementor-element-dsoc_close .elementor-icon-wrapper{ display:flex !important; align-items:center !important; justify-content:center !important; }
/* primary vs secondary grouping is carried by the two dividers already in the panel */
/* off-canvas header row order */


/* ===== Panel: group dividers only, never per-row ===== */
.elementor-element-dsoffcv1 .elementor-nav-menu a.elementor-item,
.elementor-element-dsoffcv1 .elementor-nav-menu li,
.elementor-element-dsoffcv1 .elementor-nav-menu ul{
  border-bottom:0 !important; border-top:0 !important;
}
.elementor-element-dsoc_menu .elementor-nav-menu a.elementor-item{ padding:13px 0 !important; }
.elementor-element-dsoc_util .elementor-nav-menu a.elementor-item{ padding:7px 0 !important; }
/* the only lines are the two divider widgets between groups */
.elementor-element-dsoc_div1 .elementor-divider-separator,
.elementor-element-dsoc_div2 .elementor-divider-separator{ border-top-color:#E3E9ED !important; }
/* group dividers only */


/* ===== Closed navbar on mobile: logo | CTA | phone | burger ===== */
@media (max-width:1024px){
  .elementor-3112 .elementor-element.elementor-element-dd167ee{
    display:flex !important; align-items:center !important; flex-wrap:nowrap !important; gap:8px !important;
  }
  .elementor-3112 .elementor-element.elementor-element-9890ea8{ order:1 !important; margin-right:auto !important; flex:0 0 auto !important; }
  .elementor-3112 .elementor-element.elementor-element-c2642f1{ order:2 !important; flex:0 0 auto !important; width:auto !important; }
  .elementor-3112 .elementor-element.elementor-element-dsphone1{ order:3 !important; flex:0 0 auto !important; width:auto !important; }
  .elementor-3112 .elementor-element.elementor-element-dsburger1{ order:4 !important; flex:0 0 auto !important; width:auto !important; }
  .elementor-3112 .elementor-element.elementor-element-c2642f1 .elementor-button{
    white-space:nowrap !important; font-size:11px !important; padding:9px 15px !important;
  }
  .elementor-3112 .elementor-element.elementor-element-dsburger1 .elementor-button{
    padding:4px 6px !important; background:transparent !important; border:0 !important;
  }
}
/* card row order on mobile */


/* ===== Panel header row v2 — child combinator beats anything Elementor emits ===== */
.elementor-element-dsoffcv1 .elementor-element.elementor-element-dsoc_head{
  display:flex !important; flex-direction:row !important; flex-wrap:nowrap !important;
  align-items:center !important; justify-content:flex-start !important; gap:8px !important;
}
.elementor-element-dsoffcv1 .elementor-element-dsoc_head > .elementor-element-dsoc_logo{
  order:1 !important; flex:0 0 auto !important; margin-right:auto !important; max-width:96px !important;
}
.elementor-element-dsoffcv1 .elementor-element-dsoc_head > .elementor-element-dsoc_cta{
  order:2 !important; flex:0 1 auto !important; width:auto !important; min-width:0 !important;
}
.elementor-element-dsoffcv1 .elementor-element-dsoc_head > .elementor-element-dsoc_tel{
  order:3 !important; flex:0 0 auto !important; width:auto !important;
}
.elementor-element-dsoffcv1 .elementor-element-dsoc_head > .elementor-element-dsoc_close{
  order:4 !important; flex:0 0 auto !important; width:auto !important;
}
.elementor-element-dsoffcv1 .elementor-element-dsoc_cta .elementor-button{
  white-space:nowrap !important; font-size:10.5px !important; padding:9px 13px !important; line-height:1.1 !important;
}
.elementor-element-dsoffcv1 .elementor-element-dsoc_logo img{ height:32px !important; width:auto !important; object-fit:contain !important; }
/* panel header row v2 */


/* ===== Hero video framing — keep the lion in shot ===== */
.elementor-9 .elementor-element.elementor-element-dshero .elementor-background-video-container video,
.elementor-9 .elementor-element.elementor-element-dshero video.elementor-background-video-hosted,
.elementor-9 .elementor-element.elementor-element-dshero .elementor-background-video-embed{
  object-fit:cover !important;
  object-position:center 78% !important;
}
/* fallback still framed the same way so the swap is invisible */
.elementor-9 .elementor-element.elementor-element-dshero{
  background-position:center 78% !important;
  background-size:cover !important;
}
/* on tall/narrow screens the crop flips to left-right, so centre it there */
@media (max-width:1024px){
  .elementor-9 .elementor-element.elementor-element-dshero .elementor-background-video-container video,
  .elementor-9 .elementor-element.elementor-element-dshero video.elementor-background-video-hosted{
    object-position:center center !important;
  }
  .elementor-9 .elementor-element.elementor-element-dshero{ background-position:center center !important; }
}
/* hero video framing */


/* ===== Top utility bar — logo deep indigo, white content ===== */
.elementor-3112 .elementor-element.elementor-element-d05d883{ background-color:#102090 !important; }
.elementor-3112 .elementor-element.elementor-element-d05d883 a,
.elementor-3112 .elementor-element.elementor-element-d05d883 span,
.elementor-3112 .elementor-element.elementor-element-d05d883 i,
.elementor-3112 .elementor-element.elementor-element-d05d883 svg{ color:#FFFFFF !important; fill:#FFFFFF !important; }
.elementor-3112 .elementor-element.elementor-element-d05d883 a:hover{ color:#E8B14C !important; }
/* top bar logo deep indigo */


/* ===== Top bar: inline search drawer ===== */
.elementor-3112 .elementor-element.elementor-element-71e0094 .elementor-search-form,
.elementor-3112 .elementor-element.elementor-element-71e0094 .elementor-search-form__container{
  display:flex !important; align-items:center !important; background:transparent !important;
  border:0 !important; min-height:0 !important; box-shadow:none !important;
}
.elementor-3112 .elementor-element.elementor-element-71e0094 input[type=search]{
  width:0 !important; min-width:0 !important; flex:0 0 0 !important; padding:0 !important;
  opacity:0 !important; color:#FFFFFF !important; background:transparent !important;
  border:0 !important; border-bottom:1px solid rgba(255,255,255,0.45) !important; border-radius:0 !important;
  transition:width .3s ease, flex-basis .3s ease, opacity .25s ease, padding .3s ease !important;
}
.elementor-3112 .elementor-element.elementor-element-71e0094.ds-search-open input[type=search]{
  width:250px !important; flex:0 0 250px !important; opacity:1 !important; padding:5px 8px !important;
}
.elementor-3112 .elementor-element.elementor-element-71e0094 .elementor-search-form__icon,
.elementor-3112 .elementor-element.elementor-element-71e0094 .elementor-search-form__submit{
  cursor:pointer !important; color:#FFFFFF !important; background:transparent !important; padding:0 6px !important;
}
.elementor-3112 .elementor-element.elementor-element-71e0094 input[type=search]::placeholder{ color:rgba(255,255,255,0.65) !important; }
/* inline search drawer */

/* When the drawer is open, the magnifier sits to the RIGHT of the field */
.elementor-3112 .elementor-element.elementor-element-71e0094.ds-search-open .elementor-search-form,
.elementor-3112 .elementor-element.elementor-element-71e0094.ds-search-open .elementor-search-form__container{
  display:flex !important; flex-direction:row !important; align-items:center !important;
}
.elementor-3112 .elementor-element.elementor-element-71e0094.ds-search-open input[type=search]{
  order:1 !important;
}
.elementor-3112 .elementor-element.elementor-element-71e0094.ds-search-open .elementor-search-form__icon,
.elementor-3112 .elementor-element.elementor-element-71e0094.ds-search-open .elementor-search-form__submit,
.elementor-3112 .elementor-element.elementor-element-71e0094.ds-search-open button{
  order:2 !important; margin-left:6px !important; margin-right:0 !important;
}
/* closed state keeps the icon where it was */
.elementor-3112 .elementor-element.elementor-element-71e0094:not(.ds-search-open) .elementor-search-form__icon{ order:0 !important; }
/* search icon moves right when open */














/* ===== Card image hover — slow zoom, clipped by the card ===== */
/* every Loop Grid card: departures, gallery, packages, blog, partners, parks */
.e-loop-item .elementor-widget-image,
.e-loop-item .elementor-widget-image .elementor-image,
.e-loop-item .elementor-widget-image figure{ overflow:hidden !important; }
.e-loop-item .elementor-widget-image img{
  transition:transform .6s cubic-bezier(.2,.6,.2,1) !important;
  will-change:transform;
  display:block;
}
.e-loop-item:hover .elementor-widget-image img{ transform:scale(1.08) !important; }

/* background-image cards (country + trip cards) lift instead of zoom */
.elementor-20 .elementor-element.elementor-element-ddc_ug,
.elementor-20 .elementor-element.elementor-element-ddc_rw,
.elementor-20 .elementor-element.elementor-element-ddc_ke,
.elementor-20 .elementor-element.elementor-element-ddc_tz,
.elementor-9 .elementor-element.elementor-element-dspt_d1,
.elementor-9 .elementor-element.elementor-element-dspt_d2,
.elementor-9 .elementor-element.elementor-element-dspt_d3,
.elementor-9 .elementor-element.elementor-element-dspt_d4{
  transition:transform .5s cubic-bezier(.2,.6,.2,1), box-shadow .5s ease !important;
  will-change:transform;
}
.elementor-20 .elementor-element.elementor-element-ddc_ug:hover,
.elementor-20 .elementor-element.elementor-element-ddc_rw:hover,
.elementor-20 .elementor-element.elementor-element-ddc_ke:hover,
.elementor-20 .elementor-element.elementor-element-ddc_tz:hover,
.elementor-9 .elementor-element.elementor-element-dspt_d1:hover,
.elementor-9 .elementor-element.elementor-element-dspt_d2:hover,
.elementor-9 .elementor-element.elementor-element-dspt_d3:hover,
.elementor-9 .elementor-element.elementor-element-dspt_d4:hover{ transform:translateY(-6px) scale(1.015) !important; }

/* respect reduced-motion preferences */
@media (prefers-reduced-motion:reduce){
  .e-loop-item .elementor-widget-image img,
  .e-loop-item:hover .elementor-widget-image img{ transition:none !important; transform:none !important; }
}
/* card image hover zoom */


/* ===== Destinations hero: positioning context =====
   This hero computes as position:static, so Elementor's absolutely-positioned
   background-slideshow layers anchor to the wrong ancestor and vanish.
   Do not remove. ===== */
.elementor-20 .elementor-element.elementor-element-ddhero{
  position:relative !important;
  overflow:hidden !important;
}
.elementor-20 .elementor-element.elementor-element-ddhero .elementor-background-slideshow{
  position:absolute !important; inset:0 !important; z-index:0 !important;
}
.elementor-20 .elementor-element.elementor-element-ddhero > .e-con-inner,
.elementor-20 .elementor-element.elementor-element-ddhero > .elementor-element{ position:relative !important; z-index:2 !important; }
/* destinations hero positioning context */

/* Slideshow slides were computing to height:0 — force the full chain */
.elementor-20 .elementor-element.elementor-element-ddhero .elementor-background-slideshow,
.elementor-20 .elementor-element.elementor-element-ddhero .elementor-background-slideshow .swiper-container,
.elementor-20 .elementor-element.elementor-element-ddhero .elementor-background-slideshow .swiper-wrapper,
.elementor-20 .elementor-element.elementor-element-ddhero .elementor-background-slideshow__slide,
.elementor-20 .elementor-element.elementor-element-ddhero .swiper-slide,
.elementor-20 .elementor-element.elementor-element-ddhero .elementor-background-slideshow__slide__image{
  height:100% !important;
  min-height:100% !important;
}
.elementor-20 .elementor-element.elementor-element-ddhero .elementor-background-slideshow__slide__image{
  background-size:cover !important;
  background-position:center center !important;
  width:100% !important;
}
/* slideshow height chain */

/* Swiper's fade module leaves every slide at opacity 0 here; with a single
   slide there is no crossfade to preserve, so force it visible. */
.elementor-20 .elementor-element.elementor-element-ddhero .elementor-background-slideshow__slide,
.elementor-20 .elementor-element.elementor-element-ddhero .swiper-slide{
  opacity:1 !important;
}
/* slideshow opacity fix */


/* ===== Destinations hero: slow zoom on load =====
   Elementor's Ken Burns needs a JS-added .elementor-ken-burns--active class,
   which never fires for a single non-looping slide. Driven by CSS instead. ===== */
@keyframes dsHeroZoom{ 0%{ transform:scale(1); } 100%{ transform:scale(1.22); } }
.elementor-20 .elementor-element.elementor-element-ddhero .elementor-background-slideshow__slide__image{
  transform-origin:center center !important;
  animation:dsHeroZoom 14s ease-in-out infinite alternate !important;
  will-change:transform;
}
@media (prefers-reduced-motion:reduce){
  .elementor-20 .elementor-element.elementor-element-ddhero .elementor-background-slideshow__slide__image{
    animation:none !important; transform:none !important;
  }
}
/* hero slow zoom */


/* ===== Safaris hero: positioning context, visible slides, slow zoom ===== */
.elementor-52 .elementor-element.elementor-element-sfhero{ position:relative !important; overflow:hidden !important; }
.elementor-52 .elementor-element.elementor-element-sfhero .elementor-background-slideshow,
.elementor-52 .elementor-element.elementor-element-sfhero .swiper-wrapper,
.elementor-52 .elementor-element.elementor-element-sfhero .swiper-slide,
.elementor-52 .elementor-element.elementor-element-sfhero .elementor-background-slideshow__slide,
.elementor-52 .elementor-element.elementor-element-sfhero .elementor-background-slideshow__slide__image{ height:100% !important; min-height:100% !important; }
.elementor-52 .elementor-element.elementor-element-sfhero .elementor-background-slideshow__slide,
.elementor-52 .elementor-element.elementor-element-sfhero .swiper-slide{ opacity:1 !important; }
.elementor-52 .elementor-element.elementor-element-sfhero .elementor-background-slideshow__slide__image{
  background-size:cover !important; background-position:center center !important; width:100% !important;
  transform-origin:center center !important; animation:dsHeroZoom 14s ease-in-out infinite alternate !important; will-change:transform;
}
@media (prefers-reduced-motion:reduce){ .elementor-52 .elementor-element.elementor-element-sfhero .elementor-background-slideshow__slide__image{ animation:none !important; transform:none !important; } }
/* safaris hero */


/* ===== Destinations page — align colleague's build to our design system =====
   Markup, copy, park tags and links are untouched; this is styling only. ===== */
/* 1. all content bands white (CTA stays Brand Blue, as in our build) */
.elementor-20 .elementor-element.elementor-element-ddgrid,
.elementor-20 .elementor-element.elementor-element-ddfeat{ background-color:#FFFFFF !important; }
.elementor-20 .bg-beige{ background:#FFFFFF !important; }
.elementor-20 .section-padding{ background:#FFFFFF; }
/* feature boxes need an edge now they sit on white rather than beige */
.elementor-20 .feature-box{ background:#FFFFFF !important; border:1px solid #EFF3F5 !important; }

/* 2. destination cards shaped like ours */
.elementor-20 .dest-card{
  border-radius:14px !important;
  transition:transform .5s cubic-bezier(.2,.6,.2,1), box-shadow .5s ease !important;
  will-change:transform;
}
.elementor-20 .dest-card:hover{
  transform:translateY(-6px) scale(1.015) !important;
  box-shadow:0 16px 34px rgba(26,83,115,.25) !important;
}
/* overlay in our Deep Blue rather than their near-black */
.elementor-20 .dest-overlay{
  background:linear-gradient(180deg, rgba(15,58,82,0) 28%, rgba(15,58,82,.88) 100%) !important;
  padding:26px !important;
}
/* park tags: keep the pills, match our radius */
.elementor-20 .dest-tag{ border-radius:50px !important; }
/* their image zoom on hover is kept as-is */
/* destinations page alignment */

/* Cards were 350px inside 606px grid columns — make them fill the cell */
.elementor-20 .destinations-grid{
  align-items:stretch !important;
  justify-items:stretch !important;
  gap:3px !important;
}
.elementor-20 .destinations-grid > .dest-card,
.elementor-20 .dest-card{
  display:block !important;
  width:100% !important;
  max-width:none !important;
  justify-self:stretch !important;
}
.elementor-20 .dest-card img{ width:100% !important; height:100% !important; object-fit:cover !important; }
/* dest cards fill their grid cells */

/* CTA band was inset 10px and its text column 20px wider than every other
   section — bring both onto the same grid. */
.elementor-20 .elementor-element.elementor-element-ddcta{
  padding-left:0 !important;
  padding-right:0 !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
}
.elementor-20 .dest-cta-section{
  width:100% !important;
  max-width:none !important;
  margin-left:0 !important;
  margin-right:0 !important;
  padding:45px 20px !important;
}
.elementor-20 .dest-cta-section .container{
  max-width:1240px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
/* cta alignment */


/* ===== Safaris page — layout polish (styling only, no markup changes) ===== */
/* 1. every band white, on one 1240px grid like Home and Destinations */
.elementor-52 .dsx-country-section{ background:#FFFFFF !important; }
.elementor-52 .dsx-country-section{ max-width:none !important; width:100% !important; }
/* only the inner wrappers are constrained, so the white band stays full-bleed */
.elementor-52 .dsx-country-section .inner,
.elementor-52 .dsx-slider-wrap{ max-width:1240px !important; margin-left:auto !important; margin-right:auto !important; }
.elementor-52 .section-padding{ background:#FFFFFF !important; }
.elementor-52 .bg-beige,
.elementor-52 .cats-section{ background:#FFFFFF !important; }

/* 2. itinerary cards — consistent shape, quieter default, lift on hover */
.elementor-52 .dsx-slider-track .card{
  background:#FFFFFF !important;
  border:1px solid #EFF3F5 !important;
  border-radius:14px !important;
  box-shadow:none !important;
  overflow:hidden !important;
  transition:transform .45s cubic-bezier(.2,.6,.2,1), box-shadow .45s ease !important;
}
.elementor-52 .dsx-slider-track .card:hover{
  transform:translateY(-6px) !important;
  box-shadow:0 14px 30px rgba(26,83,115,.16) !important;
}
.elementor-52 .dsx-slider-track .card .img img{ transition:transform .6s cubic-bezier(.2,.6,.2,1) !important; }
.elementor-52 .dsx-slider-track .card:hover .img img{ transform:scale(1.07) !important; }

/* 3. even out the ragged descriptions so card rhythm is consistent */
.elementor-52 .dsx-slider-track .card .content p{
  display:-webkit-box !important;
  -webkit-line-clamp:3 !important;
  -webkit-box-orient:vertical !important;
  overflow:hidden !important;
  line-height:1.6 !important;
}

/* 4. tags and buttons on the palette */
.elementor-52 .card .tag{ border-radius:50px !important; background:#EFF3F5 !important; color:#1A5373 !important; border:0 !important; }
.elementor-52 .card .btn-view,
.elementor-52 .more{ border-radius:50px !important; }

/* 5. carousel arrows clear of the cards */
.elementor-52 .dsx-slider-btn{
  background:#FFFFFF !important;
  color:#1A5373 !important;
  border:1px solid #EFF3F5 !important;
  box-shadow:0 6px 18px rgba(26,83,115,.14) !important;
  width:44px !important;
  height:44px !important;
  border-radius:50% !important;
}
.elementor-52 .dsx-slider-btn.prev{ left:-20px !important; }
.elementor-52 .dsx-slider-btn.next{ right:-20px !important; }

/* 6. the reviews block renders empty — collapse its gap rather than leave a sliver */
.elementor-52 .elementor-element.elementor-element-dsxsf_reviews{ padding-top:0 !important; padding-bottom:0 !important; }
/* safaris page polish */


/* ===== Page background =====
   body was rgb(235,235,235); that grey showed through wherever a section
   did not paint its own background. ===== */
body{ background-color:#FFFFFF !important; }
.elementor-52 .elementor-element.elementor-element-dsxsf_cats,
.elementor-52 .elementor-element.elementor-element-dsxsf_nav,
.elementor-52 .elementor-element.elementor-element-dsxsf_ug,
.elementor-52 .elementor-element.elementor-element-dsxsf_rw,
.elementor-52 .elementor-element.elementor-element-dsxsf_ke,
.elementor-52 .elementor-element.elementor-element-dsxsf_tz{ background-color:#FFFFFF !important; }
/* page background white */


/* ===== Safaris: exact card fit + full-bleed CTA ===== */
/* Cards were 300px in a 1092px viewport with 26px gaps = 3.35 visible.
   Size them so exactly 3 fill the viewport — no sliver. */
.elementor-52 .dsx-slider{ overflow:hidden !important; }
.elementor-52 .dsx-slider-track{ overflow:hidden !important; }
.elementor-52 .dsx-slider-track .card{
  flex:0 0 calc((100% - 52px) / 3) !important;
  width:calc((100% - 52px) / 3) !important;
  min-width:0 !important;
  max-width:none !important;
}
@media (max-width:1024px){
  .elementor-52 .dsx-slider-track .card{ flex:0 0 calc((100% - 26px) / 2) !important; width:calc((100% - 26px) / 2) !important; }
}
@media (max-width:767px){
  .elementor-52 .dsx-slider-track .card{ flex:0 0 100% !important; width:100% !important; }
}

/* CTA band edge to edge, text still on the 1240 grid */
.elementor-52 .elementor-element.elementor-element-dsxsf_cta{
  padding-left:0 !important;
  padding-right:0 !important;
}
.elementor-52 .elementor-element.elementor-element-dsxsf_cta > .e-con-inner{
  max-width:none !important;
  width:100% !important;
  padding-left:0 !important;
  padding-right:0 !important;
}
.elementor-52 .dsx-itin-cta{
  width:100% !important;
  max-width:none !important;
  margin-left:0 !important;
  margin-right:0 !important;
  padding:80px 20px !important;
}
.elementor-52 .dsx-itin-cta .container,
.elementor-52 .dsx-itin-cta .inner{
  max-width:1240px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
/* safaris carousel + cta bleed */


/* ===== Safari Categories — photo cards ===== */
/* align the section onto the same 1240 grid as everything else */
.elementor-52 .dsx-itin-categories .head,
.elementor-52 .dsx-itin-categories .grid{ max-width:1240px !important; margin-left:auto !important; margin-right:auto !important; }
.elementor-52 .dsx-itin-categories .grid{ gap:24px !important; }

.elementor-52 .cat-card.cat-photo{
  position:relative !important;
  display:flex !important;
  align-items:flex-end !important;
  min-height:320px !important;
  padding:0 !important;
  border:0 !important;
  border-radius:14px !important;
  overflow:hidden !important;
  background-size:cover !important;
  background-position:center center !important;
  background-repeat:no-repeat !important;
  text-decoration:none !important;
  box-shadow:none !important;
  transition:transform .5s cubic-bezier(.2,.6,.2,1), box-shadow .5s ease, background-size .8s ease !important;
}
.elementor-52 .cat-card.cat-photo:hover{
  transform:translateY(-6px) !important;
  box-shadow:0 16px 34px rgba(26,83,115,.25) !important;
}
/* readable scrim over the photo */
.elementor-52 .cat-photo .cat-scrim{
  position:absolute !important;
  inset:0 !important;
  background:linear-gradient(180deg, rgba(15,58,82,0) 30%, rgba(15,58,82,.90) 100%) !important;
}
.elementor-52 .cat-photo .cat-inner{
  position:relative !important;
  z-index:2 !important;
  padding:26px !important;
  width:100% !important;
}
.elementor-52 .cat-photo h3{ color:#FFFFFF !important; margin:0 0 8px !important; font-size:1.45rem !important; }
.elementor-52 .cat-photo p{ color:rgba(255,255,255,.92) !important; margin:0 0 14px !important; font-size:.93rem !important; line-height:1.55 !important; }
.elementor-52 .cat-photo .btn-explore{
  display:inline-flex !important;
  align-items:center !important;
  gap:8px !important;
  color:#E8B14C !important;
  font-weight:600 !important;
  font-size:.92rem !important;
  transition:gap .3s ease !important;
}
.elementor-52 .cat-card.cat-photo:hover .btn-explore{ gap:13px !important; }
/* the old icon chrome is no longer used */
.elementor-52 .cat-photo .cat-icon{ display:none !important; }
@media (max-width:767px){ .elementor-52 .cat-card.cat-photo{ min-height:250px !important; } }
/* safari category photo cards */

/* .cat-card is a COLUMN flex (their original icon stack), so align-items
   controls the horizontal axis. Content must be pushed down with
   justify-content, not align-items. */
.elementor-52 .cat-card.cat-photo{
  flex-direction:column !important;
  justify-content:flex-end !important;
  align-items:stretch !important;
}
.elementor-52 .cat-photo .cat-inner{ margin-top:auto !important; }
/* the categories band is .dsx-itin-categories, not .bg-beige */
.elementor-52 .dsx-itin-categories{ background:#FFFFFF !important; }
/* category card column fix */


/* ===== Safaris: scope fix =====
   The shortcode sections (.dsx-country-section, .dsx-itin-cta) render OUTSIDE the
   .elementor-52 wrapper, so every rule prefixed with it never matched. Scoped to
   the dsx- classes instead. Verified with card.closest('.elementor-52') === null. ===== */

/* 1. carousel: exactly 3 cards per view, no clipped sliver */
.dsx-country-section .dsx-slider{ overflow:hidden !important; }
.dsx-country-section .dsx-slider-track .card{
  flex:0 0 calc((100% - 52px) / 3) !important;
  width:calc((100% - 52px) / 3) !important;
  min-width:0 !important;
  max-width:none !important;
}
@media (max-width:1024px){
  .dsx-country-section .dsx-slider-track .card{ flex:0 0 calc((100% - 26px) / 2) !important; width:calc((100% - 26px) / 2) !important; }
}
@media (max-width:767px){
  .dsx-country-section .dsx-slider-track .card{ flex:0 0 100% !important; width:100% !important; }
}

/* 2. CTA band edge to edge, text on the 1240 grid */
.dsx-itin-cta{
  width:100% !important;
  max-width:none !important;
  margin-left:0 !important;
  margin-right:0 !important;
  padding:80px 20px !important;
}
.dsx-itin-cta > .container,
.dsx-itin-cta > .inner,
.dsx-itin-cta > div{
  max-width:1240px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

/* 3. hero H1 was rgb(62,62,62) — unreadable on a dark image */
.dsx-itin-hero h1{ color:#FFFFFF !important; -webkit-text-fill-color:#FFFFFF !important; }
.dsx-itin-hero p{ color:rgba(255,255,255,.94) !important; }
/* dsx scope fix */

/* The CTA's Elementor container carries padding:0 10px, which insets the band.
   Unprefixed because this section renders outside .elementor-52. */
.elementor-element-dsxsf_cta{ padding-left:0 !important; padding-right:0 !important; }
.elementor-element-dsxsf_cta > .e-con-inner{ max-width:none !important; width:100% !important; padding-left:0 !important; padding-right:0 !important; }
.elementor-element-dsxsf_cta .elementor-widget-html{ width:100% !important; max-width:none !important; }
/* cta bleed unprefixed */

/* The shortcode sets a per-country background inline (Uganda/Kenya #FCFCFC,
   Rwanda/Tanzania #EFF3F5). Unify to white — unprefixed, since these sections
   render outside .elementor-52. */
.dsx-country-section,
.dsx-country-section > .inner{ background:#FFFFFF !important; }
.elementor-element-dsxsf_ug,
.elementor-element-dsxsf_rw,
.elementor-element-dsxsf_ke,
.elementor-element-dsxsf_tz{ background-color:#FFFFFF !important; }
/* country section white unprefixed */


/* ===== Country pages (Uganda etc.) — align to the design system =====
   Unprefixed: these sections may render outside .elementor-<id>. ===== */
/* white bands, one 1240 grid */
.ds-country .section,
.ds-country.section,
.ds-country{ background:#FFFFFF !important; }
.ds-country .section-container{ max-width:1240px !important; margin-left:auto !important; margin-right:auto !important; }
/* section headers */
.ds-country .section-label{ color:#C46A2C !important; letter-spacing:.14em !important; text-transform:uppercase !important; font-size:12px !important; font-weight:600 !important; }
.ds-country .section-header h2{ color:#1A5373 !important; }
.ds-country .section-header p{ color:#666666 !important; }
/* hero overlay onto the Deep Blue palette (was old indigo) */
.ds-country .dest-hero{ position:relative !important; }
.ds-country .dest-hero::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,.10) 0%, rgba(0,0,0,.28) 100%); pointer-events:none; z-index:0; }
.ds-country .dest-hero > *{ position:relative !important; z-index:1 !important; }
/* cards on this page share the site card language */
.ds-country .card,
.ds-country .tip-card,
.ds-country .why-card,
.ds-country .activity-card{
  background:#FFFFFF !important; border:1px solid #EFF3F5 !important; border-radius:14px !important;
  box-shadow:none !important;
  transition:transform .45s cubic-bezier(.2,.6,.2,1), box-shadow .45s ease !important;
}
.ds-country .card:hover,
.ds-country .tip-card:hover,
.ds-country .why-card:hover,
.ds-country .activity-card:hover{
  transform:translateY(-6px) !important; box-shadow:0 14px 30px rgba(26,83,115,.16) !important;
}
/* uganda country page polish */

/* ===== DS COUNTRY POLISH v2 START ===== */
/* 1 — Hero flush to the viewport edges */
.elementor-element-cthero{ padding:0 !important; }
.elementor-element-cthero > .e-con-inner{ padding-left:0 !important; padding-right:0 !important; max-width:none !important; width:100% !important; }
.ds-country .dest-hero{ width:100% !important; }

/* 4 — Travel-planning / tips cards: lift them off the page */
.ds-country .tips-section{ background:#F4F8FA !important; }
.ds-country .tips-grid{ gap:26px !important; }
.ds-country .tip-card{ background:#FFFFFF !important; border:1px solid #E1E9EE !important; border-top:4px solid #C46A2C !important; border-radius:14px !important; box-shadow:0 4px 18px rgba(15,58,82,.08) !important; transition:transform .3s ease, box-shadow .3s ease !important; }
.ds-country .tip-card:hover{ transform:translateY(-6px) !important; box-shadow:0 18px 40px rgba(15,58,82,.15) !important; }
.ds-country .tip-card h3{ color:#1A5373 !important; display:flex !important; align-items:center !important; gap:10px !important; }
.ds-country .tip-card h3 i{ color:#C46A2C !important; font-size:18px !important; }
.ds-country .tip-card li{ color:#5A6B75 !important; }

@media (max-width:1024px){ .elementor-element-dpk_img img{ height:195px !important; } }

/* 4b — tinted tips band must run edge to edge */
.elementor-element-cttips{ padding-left:0 !important; padding-right:0 !important; }
.ds-country .tips-section > .section-container{ max-width:1240px !important; margin-left:auto !important; margin-right:auto !important; padding-left:20px !important; padding-right:20px !important; }

/* 2 — National Parks: photo cards */
.ds-country .parks-grid{ display:grid !important; grid-template-columns:repeat(4,1fr) !important; gap:26px !important; }
.ds-country .park-card{
  position:relative !important; display:flex !important; flex-direction:column !important;
  justify-content:flex-end !important; min-height:380px !important;
  border:0 !important; border-radius:14px !important; overflow:hidden !important;
  background-color:#1A5373 !important; background-size:cover !important;
  background-position:center !important; background-repeat:no-repeat !important;
  box-shadow:0 4px 16px rgba(15,58,82,.10) !important;
  transition:transform .45s cubic-bezier(.2,.6,.2,1), box-shadow .45s ease !important;
}
.ds-country .park-card::before{
  content:"" !important; position:absolute !important; inset:0 !important;
  background:linear-gradient(180deg, rgba(15,58,82,0) 28%, rgba(15,58,82,.88) 100%) !important;
  pointer-events:none !important;
}
.ds-country .park-card:hover{ transform:translateY(-6px) !important; box-shadow:0 18px 42px rgba(15,58,82,.24) !important; }
.ds-country .park-content{ position:relative !important; z-index:1 !important; padding:24px !important; }
.ds-country .park-tag{
  display:inline-block !important; background:#C46A2C !important; color:#FFFFFF !important;
  font-size:11px !important; font-weight:700 !important; letter-spacing:.07em !important;
  text-transform:uppercase !important; padding:5px 11px !important; border-radius:999px !important;
}
.ds-country .park-card h3{ color:#FFFFFF !important; font-size:21px !important; line-height:1.25 !important; margin:12px 0 6px !important; }
.ds-country .park-card p{ color:rgba(255,255,255,.86) !important; font-size:14px !important; margin:0 !important; }
.ds-country .park-link{ display:inline-flex !important; align-items:center !important; gap:8px !important; color:#FFC845 !important; font-weight:600 !important; margin-top:14px !important; text-decoration:none !important; }
.ds-country .park-link i{ transition:transform .3s ease !important; }
.ds-country .park-card:hover .park-link i{ transform:translateX(5px) !important; }
@media (max-width:1024px){ .ds-country .parks-grid{ grid-template-columns:repeat(2,1fr) !important; } }
@media (max-width:640px){ .ds-country .parks-grid{ grid-template-columns:1fr !important; } .ds-country .park-card{ min-height:320px !important; } }

/* 4c — fix broken bullet glyph (2022 escape lost, printing literal "2022") */
.ds-country .tip-card ul, .ds-country .tip-card li{ list-style:none !important; }
.ds-country .tip-card ul{ padding-left:0 !important; margin:0 !important; }
.ds-country .tip-card li{ position:relative !important; padding-left:20px !important; margin-bottom:12px !important; line-height:1.55 !important; }
.ds-country .tip-card li::marker{ content:"" !important; color:transparent !important; font-size:0 !important; }
.ds-country .tip-card li::before{ content:"" !important; position:absolute !important; left:2px !important; top:9px !important; width:6px !important; height:6px !important; border-radius:50% !important; background:#C46A2C !important; }


/* 5 — "Best Time to Visit": section was white-on-white (invisible). Restore it as a deep-blue band. */
.elementor-element-ctbesttime{ background-color:#0F3A52 !important; padding-left:0 !important; padding-right:0 !important; }
.ds-country .best-time{ background:transparent !important; color:#FFFFFF !important; }
.ds-country .best-time > .section-container{ max-width:1240px !important; margin-left:auto !important; margin-right:auto !important; padding-left:20px !important; padding-right:20px !important; }
.ds-country .best-time .section-header{ text-align:center !important; }
.ds-country .best-time .section-label{ background:rgba(255,255,255,.12) !important; color:#FFC845 !important; }
.ds-country .best-time h2{ color:#FFFFFF !important; }
.ds-country .best-time .section-header p{ color:rgba(255,255,255,.82) !important; }
.ds-country .best-time-intro{ color:rgba(255,255,255,.82) !important; max-width:840px !important; margin:0 auto 42px !important; text-align:center !important; }
.ds-country .time-grid{ display:grid !important; grid-template-columns:repeat(3,1fr) !important; gap:26px !important; }
.ds-country .time-card{
  background:rgba(255,255,255,.07) !important; border:1px solid rgba(255,255,255,.16) !important;
  border-radius:14px !important; padding:30px !important;
  transition:transform .4s ease, background .4s ease, border-color .4s ease !important;
}
.ds-country .time-card:hover{ transform:translateY(-6px) !important; background:rgba(255,255,255,.12) !important; border-color:rgba(255,200,69,.45) !important; }
.ds-country .time-card h3{ color:#FFFFFF !important; display:flex !important; align-items:center !important; gap:10px !important; font-size:20px !important; margin:0 0 12px !important; }
.ds-country .time-card h3 i{ color:#FFC845 !important; }
.ds-country .time-card .months{ display:inline-block !important; background:#C46A2C !important; color:#FFFFFF !important; font-size:12px !important; font-weight:700 !important; letter-spacing:.05em !important; padding:5px 12px !important; border-radius:999px !important; margin-bottom:14px !important; }
.ds-country .time-card > p{ color:rgba(255,255,255,.80) !important; margin:0 0 16px !important; }
.ds-country .time-card ul, .ds-country .time-card li{ list-style:none !important; }
.ds-country .time-card ul{ padding-left:0 !important; margin:0 !important; }
.ds-country .time-card li{ position:relative !important; padding-left:22px !important; margin-bottom:10px !important; color:rgba(255,255,255,.86) !important; font-size:14.5px !important; line-height:1.55 !important; }
.ds-country .time-card li::marker{ content:"" !important; color:transparent !important; font-size:0 !important; }
.ds-country .time-card li::before{ content:"" !important; position:absolute !important; left:2px !important; top:8px !important; width:6px !important; height:6px !important; border-radius:50% !important; background:#FFC845 !important; }
@media (max-width:1024px){ .ds-country .time-grid{ grid-template-columns:1fr !important; } }

/* 6 — "Ready to Explore Uganda?" CTA: an !important rule elsewhere was wiping the
   inline background, leaving white text on white. Restore it and run it edge to edge. */
.elementor-element-ctcta{ padding:0 !important; background-color:#0A1172 !important; }
.ds-country .dest-cta-section{
  width:100% !important; max-width:none !important;
  background-color:#0A1172 !important;
  background-position:center center !important; background-size:cover !important; background-repeat:no-repeat !important;
  padding:96px 20px !important; text-align:center !important;
}
.ds-country .dest-cta-section > .section-container{ max-width:1240px !important; margin-left:auto !important; margin-right:auto !important; padding-left:20px !important; padding-right:20px !important; }
.ds-country .dest-cta-section h2{ color:#FFFFFF !important; margin:0 0 16px !important; }
.ds-country .dest-cta-section p{ color:rgba(255,255,255,.86) !important; max-width:760px !important; margin:0 auto 30px !important; }
.ds-country .dest-cta-section .btn-cta{
  display:inline-flex !important; align-items:center !important; gap:10px !important;
  background:#C46A2C !important; color:#FFFFFF !important; font-weight:700 !important;
  padding:16px 34px !important; border-radius:999px !important; text-decoration:none !important;
  box-shadow:0 10px 26px rgba(196,106,44,.35) !important;
  transition:transform .3s ease, box-shadow .3s ease, background .3s ease !important;
}
.ds-country .dest-cta-section .btn-cta:hover{ transform:translateY(-3px) !important; background:#A9581F !important; box-shadow:0 16px 34px rgba(196,106,44,.45) !important; }
.ds-country .dest-cta-section .btn-cta i{ transition:transform .3s ease !important; }
.ds-country .dest-cta-section .btn-cta:hover i{ transform:translateX(5px) !important; }
/* page-scoped photo so Rwanda/Kenya keep their own */
.ds-country .dest-cta-section{ position:relative !important; overflow:hidden !important; }
.ds-country .dest-cta-section > .section-container{ position:relative !important; z-index:1 !important; }
.elementor-539 .dest-cta-section::before{
  content:"" !important; position:absolute !important; inset:0 !important; z-index:0 !important;
  background-image:url("https://detlefsafaris.com/wp-content/uploads/2025/03/game-drive-in-murchison.jpg.webp") !important;
  background-size:cover !important; background-position:center center !important; background-repeat:no-repeat !important;
  opacity:.30 !important; pointer-events:none !important;
}
/* ===== DS COUNTRY POLISH v2 END ===== */

/* ===== DS ACCOMMODATIONS START ===== */
/* Placeholder photo treatment - replace when real lodge photography is supplied */
.ds-lodge-photo{ position:relative !important; display:block !important; overflow:hidden !important; border-radius:14px 14px 0 0 !important; line-height:0 !important; background:linear-gradient(135deg,#12405C 0%,#1A5373 100%) !important; }
.ds-lodge-photo img{ width:100% !important; height:190px !important; object-fit:cover !important; opacity:0 !important; display:block !important; }
.ds-lodge-photo::after{ content:"Photo coming soon"; position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.70); font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; }

/* Star ratings hidden - unverified review claims about third-party lodges. Delete this rule to restore them. */
.ds-lodge-rating{ display:none !important; }

/* Lodge cards */
.e-con:has(> .ds-lodge-photo){ overflow:hidden !important; border:1px solid #EFF3F5 !important; box-shadow:0 2px 12px rgba(15,58,82,.07) !important; transition:transform .35s ease, box-shadow .35s ease !important; }
.e-con:has(> .ds-lodge-photo):hover{ transform:translateY(-6px) !important; box-shadow:0 16px 36px rgba(15,58,82,.16) !important; }

/* Types of Safari Accommodation band */



@media (max-width:1024px){ .ds-accom-type{ width:100% !important; } }

/* --- premium polish: match site typography (Poppins), not the serif default --- */
.elementor-3027 h1, .elementor-3027 h2, .elementor-3027 h3, .elementor-3027 h4{ font-family:"Poppins", sans-serif !important; }
.elementor-3027 h1{ font-weight:700 !important; letter-spacing:-.5px !important; }
#uganda h2, #rwanda h2, #kenya h2, #tanzania h2{ font-family:"Baskervville", serif !important; font-size:38px !important; font-weight:600 !important; line-height:1.2 !important; color:#181717 !important; }
@media (max-width:767px){ #uganda h2, #rwanda h2, #kenya h2, #tanzania h2{ font-size:28px !important; } }

/* lodge card interior */
.e-con:has(> .ds-lodge-photo){ border-radius:16px !important; }
.e-con:has(> .ds-lodge-photo) h3{ font-family:"Poppins", sans-serif !important; font-size:19px !important; font-weight:700 !important; line-height:1.3 !important; color:#102090 !important; margin-bottom:6px !important; }
.ds-lodge-photo{ border-radius:16px 16px 0 0 !important; }
.ds-lodge-photo img{ height:210px !important; }

/* filter bar reads as a control, not a band */
#all-countries .e-con{ border-radius:999px !important; box-shadow:0 6px 24px rgba(15,58,82,.08) !important; width:fit-content !important; max-width:100% !important; margin-left:auto !important; margin-right:auto !important; padding:8px 10px !important; }
#all-countries{ padding-top:34px !important; padding-bottom:34px !important; }

/* hero copy */
.elementor-element-7cad7835 h1{ font-size:clamp(34px,4.4vw,56px) !important; line-height:1.1 !important; }

/* equal-height cards with the price/CTA pinned to the bottom */
.e-con-inner:has(> .e-con > .ds-lodge-photo), .e-con:has(> .e-con > .ds-lodge-photo){ align-items:stretch !important; align-content:stretch !important; }
.e-con:has(> .ds-lodge-photo){ display:flex !important; flex-direction:column !important; height:auto !important; align-self:stretch !important; }
.e-con:has(> .ds-lodge-photo) > .e-con{ flex:1 1 auto !important; display:flex !important; flex-direction:column !important; }
.e-con:has(> .ds-lodge-photo) > .e-con > .elementor-widget:last-child{ margin-top:auto !important; }
/* ===== DS ACCOMMODATIONS END ===== */

/* ===== DS ACCOM TYPE PHOTO CARDS START ===== */
/* Photo cards, matching the Safaris page .cat-photo pattern. */
.ds-accom-type{ position:relative !important; display:flex !important; overflow:hidden !important; border-radius:16px !important; min-height:340px !important; box-shadow:0 5px 18px rgba(12,44,62,.08) !important; transition:transform .5s cubic-bezier(.2,.6,.2,1), box-shadow .5s ease !important; }
.ds-accom-type:hover{ transform:translateY(-6px) !important; box-shadow:0 16px 34px rgba(26,83,115,.25) !important; }
/* readable scrim over the photo */
.ds-accom-type::before{ content:"" !important; position:absolute !important; inset:0 !important; z-index:1 !important; background:linear-gradient(180deg, rgba(15,58,82,0) 28%, rgba(15,58,82,.90) 100%) !important; pointer-events:none !important; }
/* push the content to the foot of the card */
.ds-accom-type{ align-items:stretch !important; }
.ds-accom-type > .elementor-icon-box-wrapper{ position:relative !important; z-index:2 !important; display:flex !important; flex-direction:column !important; justify-content:flex-end !important; align-items:flex-start !important; width:100% !important; min-height:100% !important; flex:1 1 auto !important; padding:26px !important; }
.ds-accom-type .elementor-icon-box-content{ flex:0 0 auto !important; }
.ds-accom-type .elementor-icon-box-icon{ margin-top:auto !important; margin-bottom:12px !important; flex:0 0 auto !important; }

.ds-accom-type .elementor-icon-box-title{ margin:0 0 8px !important; }
.ds-accom-type .elementor-icon-box-title, .ds-accom-type .elementor-icon-box-title a{ color:#FFFFFF !important; font-size:23px !important; line-height:1.25 !important; }
.ds-accom-type .elementor-icon-box-description{ color:rgba(255,255,255,.90) !important; font-size:14px !important; line-height:1.6 !important; margin:0 !important; }
@media (max-width:1024px){ .ds-accom-type{ min-height:290px !important; } }
/* ===== DS ACCOM TYPE PHOTO CARDS END ===== */

/* ===== DS ACCOM COUNTRY PAGES START ===== */
.ds-accomc{ font-family:"Poppins",sans-serif; background:#FFFFFF; }
.ds-accomc .ac-inner{ max-width:1240px; margin:0 auto; padding:76px 20px 84px; }

/* section head */
.ds-accomc .ac-head{ text-align:center; max-width:760px; margin:0 auto 34px; }
.ds-accomc .ac-label{ display:block; color:#C46A2C; font-size:12px; font-weight:700; letter-spacing:2px; text-transform:uppercase; margin-bottom:10px; }
.ds-accomc .ac-head h2{ font-family:"Poppins",sans-serif; font-size:38px; font-weight:700; line-height:1.2; color:#102090; margin:0 0 12px; }
.ds-accomc .ac-head p{ color:#5B6670; margin:0; }

/* region jump nav */
.ds-accomc .ac-nav{ display:flex; flex-wrap:wrap; justify-content:center; gap:12px; margin:0 0 56px; }
.ds-accomc .ac-nav-link{ padding:10px 22px; border-radius:999px; border:1.5px solid #102090; color:#102090; font-size:14px; font-weight:600; text-decoration:none; transition:background .25s ease, color .25s ease; }
.ds-accomc .ac-nav-link:hover{ background:#102090; color:#FFFFFF; }

/* region blocks */
.ds-accomc .ac-region{ margin-bottom:66px; scroll-margin-top:150px; }
.ds-accomc .ac-region:last-child{ margin-bottom:0; }
.ds-accomc .ac-region-title{ display:inline-block; font-family:"Poppins",sans-serif; font-size:27px; font-weight:700; color:#102090; margin:0 0 12px; padding-bottom:10px; border-bottom:3px solid #C46A2C; }
.ds-accomc .ac-region-desc{ color:#5B6670; max-width:820px; margin:0 0 28px; }

/* lodge grid + cards */
.ds-accomc .ac-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; align-items:stretch; }
.ds-accomc .ac-card{ display:flex; flex-direction:column; background:#FFFFFF; border:1px solid #EFF3F5; border-radius:16px; overflow:hidden; box-shadow:0 2px 12px rgba(15,58,82,.07); transition:transform .35s ease, box-shadow .35s ease; }
.ds-accomc .ac-card:hover{ transform:translateY(-6px); box-shadow:0 16px 36px rgba(15,58,82,.16); }
.ds-accomc .ac-photo{ position:relative; height:200px; background:linear-gradient(135deg,#12405C 0%,#1A5373 100%); }
.ds-accomc .ac-soon{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.62); font-size:10px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; }
.ds-accomc .ac-badge{ position:absolute; top:14px; right:14px; z-index:2; background:#C46A2C; color:#FFFFFF; padding:5px 12px; border-radius:999px; font-size:11px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.ds-accomc .ac-body{ display:flex; flex-direction:column; flex:1 1 auto; padding:22px 22px 24px; }
.ds-accomc .ac-body h4{ font-family:"Poppins",sans-serif; font-size:19px; font-weight:700; line-height:1.3; color:#102090; margin:0 0 6px; }
.ds-accomc .ac-loc{ display:flex; align-items:center; gap:7px; color:#5B6670; font-size:12.5px; margin-bottom:12px; }
.ds-accomc .ac-loc i{ color:#C46A2C; }
.ds-accomc .ac-body p{ color:#5B6670; font-size:14px; line-height:1.6; margin:0 0 18px; flex:1 1 auto; }
.ds-accomc .ac-foot{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding-top:15px; border-top:1px solid #EFF3F5; margin-top:auto; }
.ds-accomc .ac-rate{ color:#102090; font-size:13.5px; font-weight:700; }
.ds-accomc .ac-btn{ background:#102090; color:#FFFFFF; padding:9px 18px; border-radius:999px; font-size:13px; font-weight:600; text-decoration:none; white-space:nowrap; transition:background .25s ease; }
.ds-accomc .ac-btn:hover{ background:#C46A2C; color:#FFFFFF; }

/* full-bleed hero and CTA, matching the rest of the site */
.ds-accomc-hero, .ds-accomc-cta{ padding-left:0 !important; padding-right:0 !important; }

@media (max-width:1024px){ .ds-accomc .ac-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:767px){ .ds-accomc .ac-grid{ grid-template-columns:1fr; } .ds-accomc .ac-inner{ padding:52px 20px 60px; } .ds-accomc .ac-head h2{ font-size:28px; } .ds-accomc .ac-region-title{ font-size:22px; } }

/* the theme defaults headings to Baskervville on these templates - match the rest of the site */
.elementor-3389 h1, .elementor-3389 h2, .elementor-3389 h3, .elementor-3389 h4, .elementor-3390 h1, .elementor-3390 h2, .elementor-3390 h3, .elementor-3390 h4, .elementor-3391 h1, .elementor-3391 h2, .elementor-3391 h3, .elementor-3391 h4, .elementor-3392 h1, .elementor-3392 h2, .elementor-3392 h3, .elementor-3392 h4{ font-family:"Poppins",sans-serif !important; }
.elementor-3389 h1, .elementor-3390 h1, .elementor-3391 h1, .elementor-3392 h1{ font-weight:700 !important; letter-spacing:-.5px !important; }
/* ===== DS ACCOM COUNTRY PAGES END ===== */

/* ===== DS ACCOM FILTER BAR START ===== */
.ds-accomf .af-bar{ display:grid; grid-template-columns:1fr 1fr auto; gap:18px; align-items:end; background:#F4F8FA; border:1px solid #E1E9EE; border-radius:16px; padding:22px 24px; margin:0 0 12px; }
.ds-accomf .af-group{ display:flex; flex-direction:column; gap:7px; }
.ds-accomf .af-group label{ font-size:11.5px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:#102090; }
.ds-accomf .af-group select{ font-family:"Poppins",sans-serif; font-size:14.5px; color:#102090; background:#FFFFFF; border:1.5px solid #DCE6EC; border-radius:10px; padding:12px 14px; cursor:pointer; transition:border-color .25s ease; }
.ds-accomf .af-group select:focus{ outline:none; border-color:#102090; }
.ds-accomf .af-clear{ font-family:"Poppins",sans-serif; font-size:13.5px; font-weight:600; color:#5B6670; background:transparent; border:1.5px solid #DCE6EC; border-radius:999px; padding:12px 20px; cursor:pointer; transition:color .25s ease, border-color .25s ease; }
.ds-accomf .af-clear:hover{ color:#C46A2C; border-color:#C46A2C; }
.ds-accomf .af-count{ grid-column:1 / -1; color:#5B6670; font-size:13.5px; }
.ds-accomf .af-grid{ margin-top:30px; }
.ds-accomf .af-empty{ text-align:center; color:#5B6670; margin:44px 0 0; }
.ds-accomf .af-empty a{ color:#C46A2C; font-weight:600; }
@media (max-width:767px){ .ds-accomf .af-bar{ grid-template-columns:1fr; } }
/* ===== DS ACCOM FILTER BAR END ===== */

/* ===== DS HOME START ===== */
/* Explore Our Destinations used a 1500px container while every other section is 1240 */
.elementor-element-dsexplore.ds-home #ds-explore .container{ max-width:1240px !important; width:100% !important; margin-left:auto !important; margin-right:auto !important; padding-left:0 !important; padding-right:0 !important; }
.elementor-element-dsexplore .container{ max-width:1240px !important; margin-left:auto !important; margin-right:auto !important; }
.elementor-element-dsexplore > .e-con-inner{ max-width:1240px !important; margin-left:auto !important; margin-right:auto !important; }
.elementor-element-dsexplore section, .elementor-element-dsexplore .section{ padding-top:0 !important; padding-bottom:0 !important; background:transparent !important; }

/* Follow Our Adventures was 1,471px - keep it to one band (fade now matches the white page) */
.elementor-element-dssocial2 .elementor-widget-shortcode{ max-height:430px !important; overflow:hidden !important; position:relative !important; }
.elementor-element-dssocial2 .elementor-widget-shortcode::after{ content:"" !important; position:absolute !important; left:0 !important; right:0 !important; bottom:0 !important; height:70px !important; background:linear-gradient(180deg, rgba(255,255,255,0) 0%, #FFFFFF 100%) !important; pointer-events:none !important; }

/* tighten the header block above each grid */
.elementor-9 .e-con > .e-con-inner > .e-con:first-child{ padding-bottom:26px !important; }
/* ===== DS HOME END ===== */


/* === Detlef Safaris: fix header/content overlap on Content-Only template pages (Terms of Service, Cookie Policy, Privacy Policy, FAQs) -- added 2026-08-31 === */
body.page-id-2843 .the-content,
body.page-id-2841 .the-content {
    padding-top: 50px;
}
body.page-id-3432 .the-content,
body.page-id-3 .the-content {
    padding-top: 120px;
}
/* === end Detlef Safaris header overlap fix === */


/* ===== ABOUT PAGE CTA - tilted flanking photos ===== */
.ds-au-cta-photo {
    width: 210px !important;
    height: 290px !important;
    flex: 0 0 210px !important;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 25px 60px rgba(0,0,0,0.35);
}
.ds-au-cta-photo img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block;
}
.ds-au-cta-photo-left {
    transform: rotate(-8deg);
}
.ds-au-cta-photo-right {
    transform: rotate(8deg);
}
.ds-au-cta-photo-right img {
    object-position: 78% 40% !important;
}
@media (max-width: 900px) {
    .ds-au-cta-photo { display: none; }
}

.ds-au-cta-inner {
    width: auto !important;
    flex: 0 1 620px !important;
    max-width: 620px !important;
}

.ds-au-cta-photo {
    position: relative;
}
.ds-au-cta-photo .elementor-widget-image,
.ds-au-cta-photo .elementor-widget-container,
.ds-au-cta-photo img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    margin: 0 !important;
}

/* ===== ABOUT STORY - fanned photo tiles (card 3) ===== */
.ds-story-fan {
    position: relative;
    height: 220px;
    margin-bottom: 4px;
}
.e-con.e-con-boxed.ds-story-fan-tile {
    position: absolute !important;
    width: 150px !important;
    height: 190px !important;
    flex: 0 0 150px !important;
    box-shadow: 0 15px 30px rgba(0,0,0,0.22);
}
.ds-story-fan-tile-1 {
    left: 0;
    top: 22px;
    transform: rotate(-7deg);
    z-index: 1;
}
.e-con.e-con-boxed.ds-story-fan-tile-2 {
    left: 92px;
    top: 0;
    width: 168px !important;
    height: 208px !important;
    flex: 0 0 168px !important;
    transform: rotate(8deg);
    z-index: 2;
}

/* ===== ABOUT STATS - single row of 4 ===== */
.e-con.e-con-boxed.elementor-element-dsau_st1,
.e-con.e-con-boxed.elementor-element-dsau_st2,
.e-con.e-con-boxed.elementor-element-dsau_st3,
.e-con.e-con-boxed.elementor-element-dsau_st4 {
    width: 22% !important;
    flex: 0 0 22% !important;
}
@media (max-width: 767px) {
.e-con.e-con-boxed.elementor-element-dsau_st1,
.e-con.e-con-boxed.elementor-element-dsau_st2,
.e-con.e-con-boxed.elementor-element-dsau_st3,
.e-con.e-con-boxed.elementor-element-dsau_st4 {
    width: 46% !important;
    flex: 0 0 46% !important;
}
}

/* ===== ABOUT WHY CHOOSE US - photo fills full column height ===== */
.e-con.e-con-boxed.elementor-element-dsau_why_photo {
    height: 100% !important;
    align-self: stretch !important;
}
.elementor-element-dsau_why_photo .elementor-widget-image,
.elementor-element-dsau_why_photo .elementor-widget-container,
.elementor-element-dsau_why_photo .elementor-element-dsau_why_img {
    height: 100% !important;
}
.elementor-element-dsau_why_img img {
    border-radius: 24px !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 100%;
    object-fit: cover !important;
    display: block;
}
@media (max-width: 767px) {
  .e-con.e-con-boxed.elementor-element-dsau_why_photo { height: 320px !important; }
  .elementor-element-dsau_why_photo .elementor-widget-image,
  .elementor-element-dsau_why_photo .elementor-widget-container,
  .elementor-element-dsau_why_photo .elementor-element-dsau_why_img,
  .elementor-element-dsau_why_img img { height: 100% !important; }
}

/* ===== ABOUT WHY CHOOSE US - compact sizing override (CDN-cache-safe) ===== */
.e-con.e-con-boxed.elementor-element-dsau_why {
    padding-top: 40px !important;
    padding-bottom: 40px !important;
}
.e-con.e-con-boxed.elementor-element-dsau_why_row {
    column-gap: 36px !important;
    row-gap: 24px !important;
}
.e-con.e-con-boxed.elementor-element-dsau_why_photo {
    width: 38% !important;
}
.e-con.e-con-boxed.elementor-element-dsau_why_content {
    width: 54% !important;
}
.elementor-element-dsau_why_pill_txt {
    margin-bottom: 6px !important;
}
.elementor-element-dsau_why_heading .elementor-heading-title {
    font-size: 26px !important;
    line-height: 1.2em !important;
    margin-bottom: 8px !important;
}
.elementor-element-dsau_why_sub {
    margin-bottom: 14px !important;
}
.elementor-element-dsau_why_sub p {
    font-size: 15px !important;
    line-height: 1.5em !important;
}
.e-con.e-con-boxed.elementor-element-dsau_why_grid {
    row-gap: 12px !important;
    column-gap: 20px !important;
}
.elementor-element-dsau_why_f1_num .elementor-heading-title,
.elementor-element-dsau_why_f2_num .elementor-heading-title,
.elementor-element-dsau_why_f3_num .elementor-heading-title,
.elementor-element-dsau_why_f4_num .elementor-heading-title {
    font-size: 15px !important;
}
.elementor-element-dsau_why_f1_div .elementor-divider,
.elementor-element-dsau_why_f2_div .elementor-divider,
.elementor-element-dsau_why_f3_div .elementor-divider,
.elementor-element-dsau_why_f4_div .elementor-divider {
    margin-top: 4px !important;
    margin-bottom: 6px !important;
}
.elementor-element-dsau_why_f1_div .elementor-divider-separator,
.elementor-element-dsau_why_f2_div .elementor-divider-separator,
.elementor-element-dsau_why_f3_div .elementor-divider-separator,
.elementor-element-dsau_why_f4_div .elementor-divider-separator {
    width: 30px !important;
}
.elementor-element-dsau_why_f1_h .elementor-heading-title,
.elementor-element-dsau_why_f2_h .elementor-heading-title,
.elementor-element-dsau_why_f3_h .elementor-heading-title,
.elementor-element-dsau_why_f4_h .elementor-heading-title {
    font-size: 15px !important;
    margin-bottom: 4px !important;
}
.elementor-element-dsau_why_f1_p,
.elementor-element-dsau_why_f2_p,
.elementor-element-dsau_why_f3_p,
.elementor-element-dsau_why_f4_p {
    font-size: 13px !important;
}
.elementor-element-dsau_why_f1_p p,
.elementor-element-dsau_why_f2_p p,
.elementor-element-dsau_why_f3_p p,
.elementor-element-dsau_why_f4_p p {
    line-height: 1.45em !important;
}

/* ===== DS ACCOMMODATION REDESIGN START (yellowzebra-style flat cards + go2africa-style sidebar filters) ===== */
.dsacc-wrap{ background:#FBFCFD; }
.dsacc-inner{ max-width:1240px; margin:0 auto; padding:64px 20px 72px; }
.dsacc-head{ max-width:640px; margin:0 0 36px; }
.dsacc-head .dsacc-label{ display:inline-block; font-family:"Poppins",sans-serif; font-size:11.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:#C46A2C; margin-bottom:10px; }
.dsacc-head h2{ font-family:"Poppins",sans-serif; font-size:32px; font-weight:700; color:#102090; margin:0 0 10px; letter-spacing:-.3px; }
.dsacc-head p{ color:#5B6670; font-size:15.5px; line-height:1.6; margin:0; }

.dsacc-layout{ display:flex; align-items:flex-start; gap:44px; }

.dsacc-sidebar{ flex:0 0 264px; width:264px; }
.dsacc-sidebar-top{ display:flex; align-items:center; justify-content:space-between; padding-bottom:14px; margin-bottom:18px; border-bottom:2px solid #102090; }
.dsacc-sidebar-top span{ font-family:"Poppins",sans-serif; font-size:15px; font-weight:700; color:#102090; }
.dsacc-clear-all{ background:none; border:none; padding:0; font-family:"Poppins",sans-serif; font-size:12.5px; font-weight:600; color:#C46A2C; cursor:pointer; }
.dsacc-clear-all:hover{ text-decoration:underline; }

.dsacc-fgroup{ padding-bottom:20px; margin-bottom:20px; border-bottom:1px solid #EFF3F5; }
.dsacc-fgroup:last-child{ border-bottom:none; margin-bottom:0; }
.dsacc-fgroup h5{ font-family:"Poppins",sans-serif; font-size:12px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:#102090; margin:0 0 12px; }

.dsacc-check{ display:flex; align-items:center; gap:9px; padding:6px 0; cursor:pointer; }
.dsacc-check input[type=checkbox]{ width:16px; height:16px; flex:0 0 16px; accent-color:#102090; cursor:pointer; }
.dsacc-check span:nth-child(2){ flex:1 1 auto; font-size:14px; color:#33393E; line-height:1.3; }
.dsacc-check:hover span:nth-child(2){ color:#102090; }
.dsacc-count{ font-size:12px; color:#9AA4AB; font-variant-numeric:tabular-nums; }

.dsacc-subgroup{ margin-bottom:4px; }
.dsacc-subgroup:last-child{ margin-bottom:0; }
.dsacc-subhead{ display:block; font-size:11.5px; font-weight:700; color:#5B6670; text-transform:uppercase; letter-spacing:.05em; margin:12px 0 2px; }
.dsacc-subgroup:first-child .dsacc-subhead{ margin-top:0; }
.dsacc-subgroup .dsacc-check{ padding-left:4px; }

.dsacc-main{ flex:1 1 auto; min-width:0; }
.dsacc-results{ font-size:13.5px; color:#5B6670; margin:0 0 22px; }
.dsacc-results strong{ color:#102090; }

.dsacc-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:34px 26px; }

.dsacc-card{ display:flex; flex-direction:column; }
.dsacc-photo{ position:relative; height:190px; background:linear-gradient(135deg,#12405C 0%,#1A5373 100%); }
.dsacc-photo.tier-ultra-luxury{ background:linear-gradient(135deg,#12405C 0%,#2C6E4F 100%); }
.dsacc-photo.tier-luxury{ background:linear-gradient(135deg,#12405C 0%,#1A5373 100%); }
.dsacc-photo.tier-mid-range{ background:linear-gradient(135deg,#3C4A56 0%,#5B6670 100%); }
.dsacc-photo.tier-eco-lodge{ background:linear-gradient(135deg,#2C4A2E 0%,#4A6B4D 100%); }
.dsacc-photo.tier-budget{ background:linear-gradient(135deg,#5B6670 0%,#7C8790 100%); }
.dsacc-badge{ position:absolute; top:13px; left:13px; z-index:2; background:rgba(255,255,255,.94); color:#102090; padding:5px 12px; font-family:"Poppins",sans-serif; font-size:10.5px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.dsacc-soon{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; gap:6px; color:rgba(255,255,255,.55); font-size:10px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; }

.dsacc-body{ padding:16px 2px 0; }
.dsacc-card-eyebrow{ font-size:12.5px; color:#9AA4AB; margin-bottom:6px; }
.dsacc-body h4{ font-family:"Poppins",sans-serif; font-size:18px; font-weight:600; line-height:1.3; color:#102090; margin:0 0 8px; }
.dsacc-body p{ color:#5B6670; font-size:13.5px; line-height:1.6; margin:0 0 16px; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.dsacc-foot{ display:flex; align-items:center; justify-content:space-between; gap:10px; padding-top:14px; border-top:1px solid #EFF3F5; margin-top:auto; }
.dsacc-rate{ color:#102090; font-size:13px; font-weight:700; }
.dsacc-btn{ display:inline-flex; align-items:center; gap:6px; background:#C46A2C; color:#FFFFFF; padding:8px 16px; border-radius:999px; font-size:12.5px; font-weight:600; text-decoration:none; white-space:nowrap; transition:background .25s ease; }
.dsacc-btn:hover{ background:#102090; color:#FFFFFF; }

.dsacc-empty{ text-align:center; color:#5B6670; margin:44px 0 0; }
.dsacc-empty a{ color:#C46A2C; font-weight:600; }

@media (max-width:1100px){
  .dsacc-grid{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:900px){
  .dsacc-layout{ flex-direction:column; }
  .dsacc-sidebar{ width:100%; flex:0 0 auto; }
  .dsacc-fgroup{ display:inline-block; vertical-align:top; width:48%; margin-right:2%; }
}
@media (max-width:600px){
  .dsacc-grid{ grid-template-columns:1fr; }
  .dsacc-inner{ padding:44px 18px 56px; }
  .dsacc-head h2{ font-size:26px; }
  .dsacc-fgroup{ width:100%; margin-right:0; display:block; }
}
/* ===== DS ACCOMMODATION REDESIGN END ===== */

