/* WP2Static UI Polyfill — sticky header + utility */
header.fusion-header-wrapper, #masthead, header.site-header, header#header, .header-main {
    position: sticky !important;
    top: 0 !important;
    z-index: 1000;
    transition: box-shadow .2s ease, padding .2s ease;
}
header.wp2s-scrolled {
    box-shadow: 0 2px 12px rgba(0,0,0,.08);
    background: rgba(255,255,255,.98) !important;
    backdrop-filter: blur(6px);
}
/* Hide Avada slider loading spinner — Avada JS removes it normally,
   but we strip that JS, so it would stay forever. Hide it always. */
.fusion-slider-loading, .fusion-slider-loading-progress, .fusion-slider-loading-progress-bar,
.fusion-loader, .fusion-page-loading, .fusion-preloader,
#preloader, #fusion-preloader, .preloader-wrap, .preloader { display: none !important; }
/* Ensure slider slides themselves stay visible if loader was hiding them */
.fusion-slider, .fusion-slider-sc, .flexslider, .fusion-flexslider { opacity: 1 !important; visibility: visible !important; }

/* Desktop menu must NEVER be hidden by our polyfill — guard against accidental display:none */
@media (min-width: 800px) {
    .fusion-main-menu, nav.fusion-main-menu, .fusion-main-menu > ul,
    .fusion-menu, ul.fusion-menu { display: block !important; }
    .fusion-main-menu > ul, .fusion-menu { display: flex !important; }
}

/* Make sure toggle/accordion content can be shown */
.fusion-toggle-content, .elementor-tab-content, .elementor-accordion-content,
.panel-collapse, .accordion-content, .collapse { display: none; }
.fusion-toggle-content.fusion-toggle-content-open,
.elementor-tab-content.active, .elementor-accordion-content.active,
.panel-collapse.in, .panel-collapse.show, .collapse.in, .collapse.show,
.accordion-content.active { display: block !important; }
.fusion-toggle-heading, .elementor-tab-title, .elementor-accordion-title,
.panel-heading[role="tab"], .accordion-toggle, [data-toggle="collapse"] {
    cursor: pointer; user-select: none;
}
/* v1.3.9: Pages where sidebar is removed (contact-us etc.) — make content full-width */
body.wp2s-no-sidebar #content,
body.wp2s-no-sidebar section#content,
body.wp2s-no-sidebar .fusion-content-widget-area-wrapper,
body.wp2s-no-sidebar .has-sidebar #content {
    flex: 1 1 100% !important;
    max-width: 100% !important;
    width: 100% !important;
    float: none !important;
}
body.wp2s-no-sidebar #sidebar,
body.wp2s-no-sidebar aside#sidebar,
body.wp2s-no-sidebar .fusion-sidebar { display: none !important; }
body.wp2s-no-sidebar .has-sidebar #main .fusion-row { display: block !important; }

/* Avada search overlay — hidden permanently when our inline search is used (v1.3.8). */
.fusion-overlay-search { display: none !important; }

/* Modal styling */
.modal { display: none; position: fixed; inset: 0; z-index: 10000;
    background: rgba(0,0,0,.5); align-items: center; justify-content: center; }
.modal.in, .modal.show, .modal.active { display: flex !important; }
.modal-dialog { background: #fff; max-width: 600px; max-height: 80vh; overflow-y: auto;
    border-radius: 8px; padding: 20px; box-shadow: 0 10px 40px rgba(0,0,0,.2); }
.modal .close, .modal-close { cursor: pointer; font-size: 24px; background: none;
    border: none; position: absolute; top: 10px; right: 16px; color: #666; }
/* Mobile menu */
@media (max-width: 800px) {
    .fusion-mobile-menu, .mobile-menu, .menu-mobile { display: none; }
    .fusion-mobile-menu.wp2s-open, .mobile-menu.wp2s-open, .menu-mobile.wp2s-open {
        display: block !important; position: absolute; top: 100%; left: 0; right: 0;
        background: #fff; box-shadow: 0 4px 12px rgba(0,0,0,.1); padding: 20px; z-index: 999;
    }
}


/* ══════════════════════════════════════════════
   EchoPx Static Fix Pack — MightyMachines
   ══════════════════════════════════════════════ */

/* ── FIX 1: Flaticon font — map missing glyphs to FA equivalents
   (flaticon font files were not exported; use FA chars instead)   */
@font-face {
  font-family: "Flaticon";
  src: url('/assets/themes/industry/fonts/flaticon/Flaticon.woff2') format('woff2'),
       url('/assets/themes/industry/fonts/flaticon/Flaticon.woff')  format('woff'),
       url('/assets/themes/industry/fonts/flaticon/Flaticon.ttf')   format('truetype');
  font-weight: normal; font-style: normal;
}
/* Fallback: if Flaticon font still fails (files missing), use FA glyphs via content */
.flaticon-office:before  { font-family: 'FontAwesome' !important; content: "\f1ad" !important; } /* building */
.flaticon-cup:before     { font-family: 'FontAwesome' !important; content: "\f091" !important; } /* trophy */
.flaticon-envelope:before{ font-family: 'FontAwesome' !important; content: "\f0e0" !important; } /* envelope */
.flaticon-phone:before   { font-family: 'FontAwesome' !important; content: "\f095" !important; } /* phone */
.flaticon-arrows:before  { font-family: 'FontAwesome' !important; content: "\f178" !important; } /* arrow-right */
.flaticon-back:before    { font-family: 'FontAwesome' !important; content: "\f177" !important; } /* arrow-left */

/* ── FIX 2: Hero slider — ensure CSS is robust (defensive re-declaration) */
.epx-slider { position: relative; width: 100%; height: 600px; max-height: 82vh; overflow: hidden; background: #15202b; }
.epx-slides { position: absolute; inset: 0; }
.epx-slide  { position: absolute; inset: 0; background-size: cover; background-position: center;
              opacity: 0; transition: opacity 1s ease; display: flex; align-items: center; }
.epx-slide.is-active { opacity: 1 !important; }
.epx-slide::before   { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.62), rgba(0,0,0,.18)); }
.epx-slide-inner     { position: relative; max-width: 1200px; margin: 0 auto; padding: 0 40px; width: 100%;
                        color: #fff; box-sizing: border-box; }
.epx-slide-inner h2  { font-size: 42px; line-height: 1.15; margin: 0 0 18px; max-width: 660px;
                        font-weight: 700; color: #fff; text-shadow: 0 2px 6px rgba(0,0,0,.45); }
.epx-slide-inner p   { font-size: 18px; line-height: 1.55; margin: 0 0 26px; max-width: 580px;
                        color: #f1f1f1; text-shadow: 0 1px 4px rgba(0,0,0,.45); }
.epx-slide-btn       { display: inline-block; background: #f4c700; color: #222 !important;
                        padding: 13px 32px; border-radius: 3px; font-weight: 600;
                        text-decoration: none; letter-spacing: .3px; transition: background .2s; }
.epx-slide-btn:hover { background: #d4a900; color: #222 !important; }
.epx-nav             { position: absolute; top: 50%; transform: translateY(-50%); z-index: 5;
                        background: rgba(0,0,0,.4); color: #fff; border: 2px solid rgba(255,255,255,.6);
                        width: 44px; height: 44px; cursor: pointer; font-size: 18px; border-radius: 50%;
                        line-height: 1; display: flex; align-items: center; justify-content: center; }
.epx-nav:hover { background: rgba(0,0,0,.72); }
.epx-prev { left: 20px; } .epx-next { right: 20px; }
.epx-dots { position: absolute; bottom: 22px; left: 0; right: 0; text-align: center; z-index: 5; }
.epx-dot  { width: 12px; height: 12px; border-radius: 50%; border: 2px solid #fff;
             background: transparent; margin: 0 5px; cursor: pointer; padding: 0;
             display: inline-block; vertical-align: middle; }
.epx-dot.is-active { background: #fff; }
@media (max-width: 768px) {
  .epx-slider { height: 280px; }
  .epx-slide-inner { padding: 0 20px; }
  .epx-slide-inner h2 { font-size: 22px; margin-bottom: 10px; }
  .epx-slide-inner p  { font-size: 13px; margin-bottom: 14px; }
  .epx-slide-btn { padding: 9px 20px; }
  .epx-nav { width: 34px; height: 34px; font-size: 14px; }
}

/* ── FIX 3: Client logo brand section */
.brand-area { padding: 40px 0; }
.brand-area .title { margin-bottom: 28px; }
.brand { display: flex; flex-wrap: wrap; justify-content: center; align-items: center;
          gap: 20px; padding: 0 10px; }
.brand .single-item { display: block; }
.brand .inner-box {
    border: 1px solid #e8e8e8;
    padding: 14px 20px;
    border-radius: 4px;
    min-width: 140px;
    max-width: 180px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    transition: box-shadow .2s;
}
.brand .inner-box:hover { box-shadow: 0 4px 12px rgba(0,0,0,.1); }
.brand .inner-box img { max-width: 130px; max-height: 60px; width: auto; height: auto;
                         display: block; object-fit: contain; }


/* ══════════════════════════════════════════════
   EchoPx Fix v2 — Banner width + Logo display
   ══════════════════════════════════════════════ */

/* ── FIX: Home page slider — break out of kc-container max-width:1200px
   The slider row uses .kc-row-container.kc-container which caps at 1200px.
   Target the kc_row that wraps .rev_slider_wrapper and remove the cap.     */
.kc_row:has(.rev_slider_wrapper) {
    padding: 0 !important;
    margin: 0 !important;
}
.kc_row:has(.rev_slider_wrapper) > .kc-row-container.kc-container {
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    width: 100% !important;
    margin: 0 !important;
}
.kc_row:has(.rev_slider_wrapper) .kc-wrap-columns {
    margin: 0 !important;
    padding: 0 !important;
}
/* Also ensure the section and slider fill width */
section.rev_slider_wrapper,
.rev_slider_wrapper {
    width: 100% !important;
    max-width: 100% !important;
    overflow: visible !important;
    padding: 0 !important;
    margin: 0 !important;
}
.epx-slider {
    width: 100% !important;
    max-width: 100% !important;
    left: 0 !important;
    right: 0 !important;
}

/* ── FIX: Inside page hero banner (breadcrumb-area) full-width         */
section.breadcrumb-area {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box;
}

/* ── FIX: Client logo section — CSS fallback when Owl Carousel
   hasn't initialized (theme CSS sets width:100% on .single-item
   which stacks all logos vertically without carousel JS).              */

/* When Owl Carousel HAS initialized — leave it alone */
.brand.owl-loaded .single-item { width: auto; }

/* When Owl Carousel has NOT initialized — flex grid fallback */
.brand-area .brand:not(.owl-loaded) {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: stretch !important;
    gap: 16px !important;
    padding: 20px 0 10px !important;
}
.brand-area .brand:not(.owl-loaded) > a.tool_tip {
    flex: 0 0 calc(20% - 16px) !important;
    min-width: 140px !important;
    max-width: 190px !important;
    text-decoration: none !important;
}
.brand-area .brand:not(.owl-loaded) .single-item {
    width: auto !important;
    height: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 8px !important;
    border: 1px solid #e9e9e9 !important;
    box-sizing: border-box !important;
}
.brand-area .brand:not(.owl-loaded) .inner-box {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 12px !important;
    min-height: 70px !important;
    width: 100% !important;
}
.brand-area .brand:not(.owl-loaded) .single-item img {
    max-width: 130px !important;
    max-height: 60px !important;
    width: auto !important;
    height: auto !important;
    display: block !important;
    object-fit: contain !important;
}
.brand-area .brand:not(.owl-loaded) .single-item:hover {
    border-color: #fdc900 !important;
}
@media (max-width: 1100px) {
    .brand-area .brand:not(.owl-loaded) > a.tool_tip {
        flex: 0 0 calc(25% - 16px) !important;
    }
}
@media (max-width: 768px) {
    .brand-area .brand:not(.owl-loaded) > a.tool_tip {
        flex: 0 0 calc(33.33% - 16px) !important;
    }
}
@media (max-width: 480px) {
    .brand-area .brand:not(.owl-loaded) > a.tool_tip {
        flex: 0 0 calc(50% - 16px) !important;
    }
}


/* ══════════════════════════════════════════════
   EchoPx Fix v3 — Static Logo Grid
   Replaces Owl Carousel dependency entirely.
   ══════════════════════════════════════════════ */
.epx-brand-static { background:#fff; padding: 50px 0 60px; }
.epx-brand-static .title { text-align:center; margin-bottom: 36px; }
.epx-brand-static .title p {
    color: #555;
    font-size: 16px;
    line-height: 1.6;
    margin: 0;
}

.epx-logo-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 18px;
    padding: 0 10px;
}

.epx-logo-item {
    flex: 0 0 calc(20% - 18px);
    min-width: 160px;
    max-width: 210px;
    border: 1px solid #e9e9e9;
    border-radius: 3px;
    padding: 18px 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    background: #fff;
    transition: border-color .25s ease, box-shadow .25s ease;
    min-height: 90px;
}
.epx-logo-item:hover {
    border-color: #fdc900;
    box-shadow: 0 3px 14px rgba(0,0,0,.08);
}
.epx-logo-item img {
    max-width: 140px;
    max-height: 65px;
    width: auto;
    height: auto;
    display: block;
    object-fit: contain;
    margin: 0 auto;
}

/* Responsive breakpoints */
@media (max-width: 1100px) {
    .epx-logo-item { flex: 0 0 calc(25% - 18px); min-width: 140px; }
}
@media (max-width: 800px) {
    .epx-logo-item { flex: 0 0 calc(33.33% - 18px); min-width: 120px; }
}
@media (max-width: 540px) {
    .epx-logo-item { flex: 0 0 calc(50% - 18px); min-width: 100px; padding: 14px 16px; }
}
@media (max-width: 340px) {
    .epx-logo-item { flex: 0 0 calc(100% - 18px); }
}

/* Hide the old brand carousel CSS fallbacks — no longer needed */
.brand-area .brand:not(.owl-loaded),
.brand-area .brand:not(.owl-loaded) > a.tool_tip,
.brand-area .brand:not(.owl-loaded) .single-item,
.brand-area .brand:not(.owl-loaded) .inner-box,
.brand-area .brand:not(.owl-loaded) .single-item img { all: unset; }
