/* 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 Fix Pack — Banner / Certificates / Footer
   ============================================================ */

/* ── FIX 2: Certificate–Awards carousel (awb-swiper / Swiper.js)
   swiper-wrapper is set to display:none by Avada CSS; Swiper JS
   adds .swiper-ready to flip it. In static context JS can fail
   → entire carousel invisible.
   Force a 4-up flex grid as fallback when JS hasn't run.      */

/* show the wrapper regardless of JS state */
.fusion-image-carousel .awb-swiper .swiper-wrapper,
.awb-swiper.awb-swiper-carousel .swiper-wrapper {
    display: flex !important;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 16px;
    padding: 10px 0 20px;
}

/* slides: 4-up on desktop, 2-up on tablet, 1-up on mobile */
.fusion-image-carousel .awb-swiper .swiper-slide,
.awb-swiper.awb-swiper-carousel .swiper-slide {
    display: flex !important;
    flex: 0 0 calc(25% - 16px);
    max-width: calc(25% - 16px);
    min-width: 140px;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    padding: 8px;
    border: 1px solid #e9eaee;
    border-radius: 4px;
}
.fusion-image-carousel .awb-swiper .swiper-slide img,
.awb-swiper.awb-swiper-carousel .swiper-slide img {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 0 auto;
}

/* hide prev/next arrow buttons when static grid is shown */
.fusion-image-carousel .awb-swiper-button,
.awb-swiper.awb-swiper-carousel .awb-swiper-button {
    display: none;
}

/* when Swiper actually initialises (.swiper-initialized) hand control back */
.awb-swiper.swiper-initialized .swiper-wrapper {
    flex-wrap: nowrap !important;
    gap: 0 !important;
    padding: 0 !important;
}
.awb-swiper.swiper-initialized .swiper-slide {
    flex: none !important;
    max-width: none !important;
    border: none !important;
    padding: 0 !important;
}
.awb-swiper.swiper-initialized .awb-swiper-button {
    display: flex !important;
}

@media (max-width: 1024px) {
    .fusion-image-carousel .awb-swiper .swiper-slide,
    .awb-swiper.awb-swiper-carousel .swiper-slide {
        flex: 0 0 calc(33.33% - 16px);
        max-width: calc(33.33% - 16px);
    }
}
@media (max-width: 640px) {
    .fusion-image-carousel .awb-swiper .swiper-slide,
    .awb-swiper.awb-swiper-carousel .swiper-slide {
        flex: 0 0 calc(50% - 12px);
        max-width: calc(50% - 12px);
    }
}


/* ── FIX 3: Footer alignment
   Three-column footer (form | contact | map) needs flex
   so columns are equal-height and consistently spaced.        */

.fusion-footer-widget-area .fusion-columns.fusion-columns-3.fusion-widget-area {
    display: flex !important;
    flex-wrap: wrap;
    align-items: flex-start;
    margin: 0 -15px;
}

.fusion-footer-widget-area .fusion-columns-3 .fusion-column.col-lg-4 {
    flex: 0 0 33.3333%;
    max-width: 33.3333%;
    padding: 30px 20px 20px;
    box-sizing: border-box;
    float: none !important;      /* override Bootstrap float */
}

/* contact info column — make links and text stack cleanly */
.fusion-footer-widget-area #text-5 .contact-widget p {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-bottom: 10px;
    line-height: 1.5;
}
.fusion-footer-widget-area #text-5 .contact-widget .fa {
    margin-top: 3px;
    flex-shrink: 0;
}

/* form column — clean up nested h2 > form quirk */
.fusion-footer-widget-area #text-12 h2 { margin: 0; }
.fusion-footer-widget-area #text-12 h2 > div.everest-forms { font-size: 1rem; font-weight: normal; }

/* map column — ensure iframe fills column */
.fusion-footer-widget-area #custom_html-3 iframe {
    width: 100% !important;
    display: block;
    border-radius: 4px;
}

/* copyright bar — centred */
.fusion-footer-copyright-area .fusion-copyright-content {
    text-align: center;
    padding: 14px 0;
}

/* mobile: stack columns */
@media (max-width: 800px) {
    .fusion-footer-widget-area .fusion-columns-3 .fusion-column.col-lg-4 {
        flex: 0 0 100%;
        max-width: 100%;
    }
}


/* ── FIX 4: Hide fusion sliding bar (renders as giant white block without Avada JS) */
.fusion-sliding-bar-wrapper,
#slidingbar-area,
.slidingbar-area,
.fusion-sb-toggle-wrapper {
    display: none !important;
    height: 0 !important;
    overflow: hidden !important;
}

/* ── FIX 5: Clean custom footer ── */
.epx-footer-wrap {
    background: #1a1a2e;
    color: #ccc;
    font-size: 14px;
    line-height: 1.6;
}
.epx-footer-widgets {
    display: flex;
    flex-wrap: wrap;
    max-width: 1200px;
    margin: 0 auto;
    padding: 40px 30px 24px;
    gap: 32px;
    box-sizing: border-box;
    align-items: flex-start;
}
.epx-footer-col {
    flex: 1 1 240px;
    min-width: 200px;
    box-sizing: border-box;
}
.epx-footer-heading {
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    margin: 0 0 14px;
    padding-bottom: 8px;
    border-bottom: 2px solid #0d6efd;
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* ── form ── */
.epx-footer-form input[type=text],
.epx-footer-form input[type=tel],
.epx-footer-form input[type=email],
.epx-footer-form textarea {
    width: 100% !important;
    padding: 9px 12px !important;
    margin-bottom: 10px !important;
    background: #2a2a42 !important;
    border: 1px solid #3a3a58 !important;
    border-radius: 4px !important;
    color: #fff !important;
    font-size: 13px !important;
    box-sizing: border-box !important;
    outline: none !important;
    display: block !important;
}
.epx-footer-form input[type=text]:focus,
.epx-footer-form input[type=tel]:focus,
.epx-footer-form input[type=email]:focus,
.epx-footer-form textarea:focus {
    border-color: #0d6efd !important;
    background: #2e2e4e !important;
}
.epx-footer-form input[type=text]::placeholder,
.epx-footer-form input[type=tel]::placeholder,
.epx-footer-form input[type=email]::placeholder,
.epx-footer-form textarea::placeholder {
    color: #8888aa !important;
    opacity: 1 !important;
}
.epx-footer-form textarea {
    resize: vertical;
    min-height: 90px;
}
.epx-footer-form button {
    background: #0d6efd !important;
    color: #fff !important;
    border: none !important;
    padding: 10px 30px !important;
    border-radius: 4px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    transition: background .2s;
    display: inline-block !important;
}
.epx-footer-form button:hover { background: #0b5ed7 !important; }

/* ── contact info ── */
.epx-footer-contact p {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 0 0 14px;
    color: #bbb;
    font-size: 13px;
}
.epx-fi-icon {
    color: #0d6efd;
    font-size: 16px;
    margin-top: 1px;
    flex-shrink: 0;
    width: 18px;
    text-align: center;
}
.epx-footer-contact a { color: #7eb3ff; text-decoration: none; }
.epx-footer-contact a:hover { color: #fff; }
.epx-footer-contact strong { color: #ddd; margin-right: 4px; }

/* ── social icons ── */
.epx-footer-social {
    margin-top: 18px;
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    align-items: center;
}
.epx-footer-social a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px; height: 36px;
    border-radius: 50%;
    background: rgba(255,255,255,.1);
    color: #ccc;
    font-size: 17px;
    text-decoration: none;
    transition: background .2s, color .2s;
}
.epx-footer-social a:hover { background: #0d6efd; color: #fff; }
.epx-footer-social .fa { line-height: 1; }

/* ── copyright ── */
.epx-footer-bar {
    background: #111122;
    text-align: center;
    padding: 14px 20px;
    font-size: 13px;
    color: #888;
    border-top: 1px solid rgba(255,255,255,.07);
}
.epx-footer-bar a { color: #7eb3ff; text-decoration: none; }
.epx-footer-bar a:hover { color: #fff; }

/* Hide OLD Avada footer */
.fusion-footer-widget-area,
.fusion-footer-copyright-area { display: none !important; }

@media (max-width: 860px) {
    .epx-footer-col { flex: 1 1 100%; min-width: 0; }
    .epx-footer-widgets { padding: 28px 20px 16px; gap: 24px; }
}

