/* 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;
    }
}

/* ─────────────────────────────────────────────────────────────
   Static-export slider neutralization (site-wide).
   Swiper-based sliders (Elementor image-carousel, qode blog swiper,
   etc.) don't reliably initialise in the static export — the nav
   arrows lose their sizing and balloon to full-page, and slides
   flicker. Since these are static pages, hide all Swiper nav arrows
   + pagination and render every swiper track as a static flex/grid.
   ───────────────────────────────────────────────────────────── */
.swiper-button-next,
.swiper-button-prev,
.swiper-button-next-,
.swiper-button-prev-,
.elementor-swiper-button,
.elementor-swiper-button-next,
.elementor-swiper-button-prev,
.swiper-pagination {
    display: none !important;
}
/* Any swiper track that never got a specific grid treatment: show all
   slides in a horizontal wrap instead of a broken zero-height stack. */
.swiper-wrapper:not(.ntc-product-grid) {
    transform: none !important;
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 16px;
}
.swiper-wrapper:not(.ntc-product-grid) > .swiper-slide {
    transform: none !important;
    height: auto !important;
    opacity: 1 !important;
    visibility: visible !important;
}
/* Kill leftover lazy-preloaders (spinners) that never resolve without JS */
.swiper-lazy-preloader { display: none !important; }

/* Insurance: even if a swiper nav button somehow becomes visible, never let its
   chevron SVG (viewBox 0 0 1000 1000, no width/height) balloon to full-page.
   e-font-icon-svg chevrons are constrained to a normal icon size. */
.elementor-swiper-button svg,
.e-font-icon-svg.e-eicon-chevron-left,
.e-font-icon-svg.e-eicon-chevron-right,
svg.e-eicon-chevron-left,
svg.e-eicon-chevron-right {
    width: 1em !important;
    height: 1em !important;
    max-width: 40px !important;
    max-height: 40px !important;
}
