/* Shared media stability */
.elementor img,
.woocommerce img {
    max-width: 100%;
}

.single-product .swiper-slide-image,
.single-product .woocommerce-product-gallery__image img {
    display: block;
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: contain;
    object-position: center;
}

.elementor-widget-slides .swiper,
.elementor-widget-image-carousel .swiper,
.elementor-widget-testimonial-carousel .swiper,
.elementor-widget-reviews .swiper {
    max-width: 100%;
    overflow: hidden;
}

/* Elementor popup 3409: keep the dialog shell aligned with the RFQ panel. */
#elementor-popup-modal-3409 .dialog-widget-content {
    width: min(640px, calc(100vw - 32px)) !important;
    max-width: min(640px, calc(100vw - 32px)) !important;
    max-height: calc(100vh - 32px);
    overflow: hidden;
    background: transparent !important;
}

#elementor-popup-modal-3409 .dialog-message {
    width: 100% !important;
    max-width: 100% !important;
    max-height: calc(100vh - 32px);
    overflow-x: hidden;
    overflow-y: auto;
}

#elementor-popup-modal-3409 .elementor-3409,
#elementor-popup-modal-3409 .elementor-3409 > .elementor-element,
#elementor-popup-modal-3409 .elementor-3409 .elementor-container,
#elementor-popup-modal-3409 .elementor-3409 .elementor-column {
    width: 100% !important;
    max-width: 100% !important;
}

#elementor-popup-modal-3409 .dialog-close-button {
    z-index: 5;
}

@media (max-width: 767px) {
    html,
    body {
        max-width: 100%;
        overflow-x: hidden;
    }

    /* Keep utility and product-card copy readable on small screens. */
    .top-bar-label,
    .contact-item,
    .contact-item *,
    .response-time,
    .nk-sku-card-kicker {
        font-size: 12px !important;
        line-height: 1.45 !important;
    }

    .elementor-1611 .elementor-menu-toggle {
        margin-left: auto;
    }

    .elementor-1611 .elementor-nav-menu--dropdown.elementor-nav-menu__container {
        position: absolute !important;
        top: 100%;
        right: 0;
        left: auto !important;
        width: min(320px, calc(100vw - 24px)) !important;
        max-width: calc(100vw - 24px) !important;
        z-index: 1000;
    }

    .elementor-1611 .elementor-nav-menu--dropdown .elementor-nav-menu,
    .elementor-1611 .elementor-nav-menu--dropdown .menu-item,
    .elementor-1611 .elementor-nav-menu--dropdown .elementor-item {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box;
    }

    .elementor-1377 .elementor-element-3cbb942 .elementor-heading-title {
        max-width: 100%;
        font-size: clamp(30px, 9vw, 42px) !important;
        line-height: 1.05 !important;
        overflow-wrap: anywhere;
    }

    .elementor-1377 .elementor-element-6d824f2 > .elementor-widget-container {
        width: 100% !important;
        max-width: 100% !important;
        padding-right: 0 !important;
        padding-left: 0 !important;
    }

    .elementor-1377 .faq-question {
        width: 100%;
        white-space: normal !important;
        overflow-wrap: anywhere;
        text-align: left;
        align-items: flex-start;
        gap: 12px;
    }

    .elementor-1377 .faq-question > :last-child {
        flex: 0 0 auto;
    }

    .elementor-1377 .elementor-element-c33b50a .swiper-slide-inner {
        padding: 28px 30px !important;
    }

    .elementor-1377 .elementor-element-c33b50a .swiper-slide-contents {
        width: 100% !important;
        max-width: 100% !important;
    }

    .elementor-1377 .elementor-element-c33b50a .elementor-slide-heading {
        margin-bottom: 12px !important;
        font-size: clamp(25px, 7.4vw, 30px) !important;
        line-height: 1.15 !important;
        overflow-wrap: anywhere;
    }

    .elementor-1377 .elementor-element-c33b50a .elementor-slide-description {
        margin-bottom: 18px !important;
        font-size: 14px !important;
        line-height: 1.5 !important;
    }

    .elementor-1377 .elementor-element-c33b50a .elementor-slide-button {
        padding: 11px 18px !important;
        font-size: 14px !important;
        line-height: 1.2 !important;
    }

    main .elementor-widget-container,
    main .elementor-container,
    main .e-con,
    main .e-con-inner {
        max-width: 100%;
    }

    main table {
        display: block;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .elementor-element-87dabcd,
    .elementor-element-87dabcd > .elementor-widget-container {
        max-width: 100%;
        overflow: hidden;
    }

    #elementor-popup-modal-3409 .dialog-widget-content,
    #elementor-popup-modal-3409 .dialog-message {
        width: calc(100vw - 20px) !important;
        max-width: calc(100vw - 20px) !important;
        max-height: calc(100dvh - 20px);
    }

    #elementor-popup-modal-3409 .elementor-3409 .elementor-field-group.elementor-col-50 {
        width: 100% !important;
    }

    #elementor-popup-modal-3409 .elementor-3409 .elementor-element-populated {
        padding: 18px 14px 20px !important;
    }

    #elementor-popup-modal-3409 .elementor-3409 input,
    #elementor-popup-modal-3409 .elementor-3409 select,
    #elementor-popup-modal-3409 .elementor-3409 textarea,
    #elementor-popup-modal-3409 .elementor-3409 button {
        min-height: 44px;
    }
}
