/* clone-fix.css — restores behaviors the LiteSpeed UCSS / deferred JS stripped. */

/* reveal Elementor entrance-animation blocks (no scroll observer in static mirror) */
.elementor-invisible { opacity: 1 !important; visibility: visible !important; animation: none !important; }

/* "Why Choose" icons: size them (rendered 0×0) and lift above the .icon::before
   grey circle (z-index:1) that was painting over them */
.icon-box-widget .icon svg, .icon-box-widget .icon i { width: 46px !important; height: 46px !important; font-size: 46px !important; position: relative; z-index: 2; }

/* "Why Choose" icons: brand color (was black) + animation (idle pulse, hover lift) */
.icon-box-widget .icon { border-radius: 50%; transition: transform .3s ease, background-color .3s ease, box-shadow .3s ease; animation: iqIconPulse 2.8s ease-in-out infinite; }
.icon-box-widget .icon svg, .icon-box-widget .icon i { fill: #ef5b3d !important; color: #ef5b3d !important; transition: transform .3s ease, fill .3s ease, color .3s ease; }
.icon-box-widget:hover .icon { transform: translateY(-6px); background-color: #ef5b3d !important; animation: none; }
.icon-box-widget:hover .icon svg, .icon-box-widget:hover .icon i { fill: #fff !important; color: #fff !important; transform: scale(1.15) rotate(-6deg); }
@keyframes iqIconPulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(239, 91, 61, .22); } 50% { box-shadow: 0 0 0 14px rgba(239, 91, 61, 0); } }

/* swiper: slides lay out in a row and clip, never overlap */
.swiper, .swiper-container { overflow: hidden; }
.swiper-wrapper { display: flex; }
.swiper-slide { flex-shrink: 0; }

/* "Every Occasion" slider: make the background photos fill each slide and stop
   them animating/vanishing during slide transitions */
.slider_box_V1 { position: relative; height: 100%; min-height: 520px; overflow: hidden; border-radius: 14px; }
.slide-bgimg { position: absolute; inset: 0; background-size: cover !important; background-position: center !important; background-repeat: no-repeat; transition: none !important; transform: none !important; }
.swiper-slide:has(.slider_box_V1) { opacity: 1 !important; }

/* partner/client logos larger */
.client-item img,
.elementor-widget-luxride-client-carousel-widget img { height: 50px; width: auto; object-fit: contain; }

/* GTranslate: removed entirely (not wanted) — hide switcher in header + footer */
.gtranslate_wrapper, .gt_float_switcher, #google_translate_element2,
[class*="gtranslate"], [class*="gt_container"], .skiptranslate { display: none !important; }
body { top: 0 !important; position: static !important; }

/* broken aio-contact list -> hidden; clean WhatsApp button instead */
.aio-contact-parent { display: none !important; }
.iq-wa {
  position: fixed; right: 20px; bottom: 20px; z-index: 99998;
  width: 58px; height: 58px; border-radius: 50%; background: #25D366;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 10px 26px rgba(0, 0, 0, .35); transition: transform .15s;
}
.iq-wa:hover { transform: scale(1.08); }
.iq-wa svg { width: 32px; height: 32px; fill: #fff; }

/* desktop dropdown: white panel, hover-open, header height fixed */
@media (min-width: 1025px) {
  /* keep all top nav items on one line (was wrapping "Our Pricing" down) */
  .navbar_nav { flex-wrap: nowrap !important; width: max-content !important; max-width: none !important; }
  /* .dropdown-btn is the mobile accordion toggle — hide on desktop (was a 2nd caret) */
  .dropdown-btn { display: none !important; }
  li.menu-item-has-children { position: relative; }
  .menu-item-has-children > .sub-menu, .menu-box .sub-menu {
    display: block !important; position: absolute; top: 100%; left: 0;
    min-width: 240px; margin: 0; padding: 14px 8px; list-style: none;
    background: #fff; border-radius: 8px; box-shadow: 0 18px 45px rgba(0, 0, 0, .16);
    opacity: 0; visibility: hidden; transform: translateY(8px);
    transition: opacity .18s ease, transform .18s ease; pointer-events: none; z-index: 9999;
  }
  .menu-item-has-children:hover > .sub-menu { opacity: 1; visibility: visible; transform: translateY(0); pointer-events: auto; }
  .sub-menu .menu-item-has-children > .sub-menu { top: 0; left: 100%; }
  .sub-menu li { display: block; width: 100%; }
  .sub-menu a, .sub-menu .box_menu, .sub-menu * { color: #1f2733; }
  .sub-menu a:hover, .sub-menu a:hover * { color: #ec5a3c; }
}

/* mobile: burger toggles the menu */
@media (max-width: 1024px) {
  .navbar_togglers { cursor: pointer; }

  /* THE ACTUAL BUG: the theme's own script (luxrideinitMobileMenu) toggles
     `mobile_menu_box-visible` on <body>, and the theme stylesheet had rules that
     reveal .mobile_menu_box / .menu-box for that class. LiteSpeed's "unused CSS"
     pass deleted every one of them — the class only appears at runtime, so the
     optimiser could not see it referenced in the HTML and treated it as dead.
     Result: the burger toggled the class correctly and absolutely nothing
     happened on screen. These rules put the reveal back. */
  body.mobile_menu_box-visible .mobile_menu_box,
  body.iq-menu-open .mobile_menu_box {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }

  body.mobile_menu_box-visible .mobile_menu_box .menu-box,
  body.iq-menu-open .mobile_menu_box .menu-box {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;   /* theme parks it at translateX(100%) */
    z-index: 99999 !important;
    background: #0b0b0b !important;
    padding: 60px 18px 28px !important;
    overflow-y: auto; -webkit-overflow-scrolling: touch;
  }

  body.mobile_menu_box-visible .menu-backdrop {
    opacity: 1 !important; visibility: visible !important;
    background: rgba(0, 0, 0, .55);
  }

  body.mobile_menu_box-visible { overflow: hidden; }
  .menu-box ul { flex-direction: column; align-items: stretch; width: 100%; }
  .menu-box li { width: 100%; }
  .menu-box a, .menu-box .box_menu, .menu-box * { color: #fff; }

  /* Top-level rows: comfortable tap targets, separated */
  .menu-box > .navbar_nav > li > a,
  .menu-box .navbar_nav > li > a {
    display: block; padding: 14px 2px; font-size: 16px;
    border-bottom: 1px solid rgba(255,255,255,.10);
  }

  /* Sub-menus collapse by default and open one at a time (accordion).
     They used to be forced visible, which dumped ~50 links on screen at once. */
  .menu-box .sub-menu {
    position: static !important; transform: none !important;
    background: transparent; box-shadow: none; min-width: 0;
    display: none; opacity: 1 !important; visibility: visible !important;
    padding: 2px 0 8px 14px;
    border-bottom: 1px solid rgba(255,255,255,.10);
  }
  /* !important: the theme's scripts stamp an inline `display:none` on sub-menus,
     and author !important is the only thing that outranks an inline style. */
  .menu-box li.iq-open > .sub-menu { display: block !important; }
  .menu-box .sub-menu a { padding: 11px 2px; font-size: 15px; display: block; opacity: .85; }
  .menu-box .sub-menu .sub-menu { border-bottom: 0; }

  /* Caret reflects open/closed state (hover carets mean nothing on touch) */
  .menu-box .menu-item-has-children > a > .text-link::after { transform: none; }
  .menu-box li.iq-open > a > .text-link::after { transform: rotate(180deg); }

  /* The theme's own dropdown arrows are laid out as separate blocks here and
     rendered as stray floating chevrons between rows. We draw our own caret. */
  .menu-box .fi-rr-angle-down,
  .menu-box .fi-rs-angle-small-down { display: none !important; }

  /* Duplicate top-level entries flagged by clone-fix.js (the mirror emitted the
     main and sticky navigations into the same list). */
  .menu-box li.iq-dupe { display: none !important; }

  /* Close button, pinned inside the overlay */
  .menu-box .close-btn {
    position: absolute; top: 16px; right: 16px; z-index: 2;
    width: 40px; height: 40px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    background: rgba(255,255,255,.10); cursor: pointer; font-size: 20px; line-height: 1;
  }
  /* The backdrop must stay in the layout: the theme's click-to-close handler is
     bound to it, so display:none would silently disable closing. The parent
     .mobile_menu_box is what hides/shows, and it is invisible until opened. */

  /* Header row: keep logo and burger on one tidy line */
  .header_area .logo_box { flex: 0 1 auto; min-width: 0; }
  .header_area .header_contact { margin-left: auto; }
}

/* Add caret (arrow) to menu items with sub-menus */
.menu-item-has-children > a > .text-link::after {
    content: " \25BE"; /* small downward caret */
    font-size: 14px;
    margin-left: 6px;
    display: inline-block;
    transition: transform 0.2s ease;
}
.menu-item-has-children:hover > a > .text-link::after {
    transform: rotate(180deg);
}

/* ===== Header logo: was rendering at its native size (192x33 desktop,
   205x35 on a 375px phone, i.e. over half the screen width). Cap the height
   and let the width follow the aspect ratio. ===== */
.header_area img[src*="Logo"],
.sticky_header_area img[src*="Logo"],
.logo_box img,
img.logo_default {
    height: 26px !important;
    width: auto !important;
    max-width: 100%;
}

@media (max-width: 991px) {
    .header_area img[src*="Logo"],
    .sticky_header_area img[src*="Logo"],
    .logo_box img,
    img.logo_default {
        height: 24px !important;
    }
}

@media (max-width: 600px) {
    .header_area img[src*="Logo"],
    .sticky_header_area img[src*="Logo"],
    .logo_box img,
    img.logo_default {
        height: 22px !important;
    }
}
