/**
 * Default Elementor widget styles for WooCustom Toolkit.
 * These styles are intentionally lightweight and are loaded in Elementor editor,
 * preview iframe, and frontend so every widget has a styled initial state.
 */
.elementor-widget[class*="elementor-widget-woocustom_"] {
    direction: rtl;
    --woocustom-elementor-primary: var(--woocustom-color-primary, #087F8C);
    --woocustom-elementor-primary-soft: var(--woocustom-primary-soft, #eef8f9);
    --woocustom-elementor-text: var(--woocustom-text, #111827);
    --woocustom-elementor-muted: var(--woocustom-muted, #64748b);
    --woocustom-elementor-border: var(--woocustom-border, #e5e7eb);
    --woocustom-elementor-surface: var(--woocustom-surface, #ffffff);
    --woocustom-elementor-soft: var(--woocustom-surface-soft, #f8fafc);
    --woocustom-elementor-radius: var(--woocustom-radius-md, 12px);
    --woocustom-elementor-shadow: 0 10px 30px rgba(15, 23, 42, .08);
    --woocustom-elementor-primary-rgb: var(--woocustom-primary-rgb, 8, 127, 140);
}

.elementor-widget[class*="elementor-widget-woocustom_"] *,
.elementor-widget[class*="elementor-widget-woocustom_"] *::before,
.elementor-widget[class*="elementor-widget-woocustom_"] *::after {
    box-sizing: border-box;
}

.elementor-widget[class*="elementor-widget-woocustom_"] button,
.elementor-widget[class*="elementor-widget-woocustom_"] input,
.elementor-widget[class*="elementor-widget-woocustom_"] select,
.elementor-widget[class*="elementor-widget-woocustom_"] textarea {
    font-family: inherit;
}

.elementor-widget[class*="elementor-widget-woocustom_"] svg,
.elementor-widget[class*="elementor-widget-woocustom_"] img {
    display: block;
    max-width: 100%;
}

/* Shared buttons */
.elementor-widget-woocustom_ajax_add_to_cart .single_add_to_cart_button,
.elementor-widget-woocustom_ajax_add_to_cart .woocustom-view-cart-button,
.woocustom-share-button,
.woocustom-add-to-compare-btn,
.price-chart-icon-button,
.woocustom-quick-atc-btn,
.woocustom-quick-atc-fallback {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 42px;
    padding: 10px 18px;
    border: 0;
    border-radius: var(--woocustom-elementor-radius);
    background: var(--woocustom-elementor-primary);
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.4;
    text-decoration: none;
    cursor: pointer;
    transition: transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
    box-shadow: 0 8px 22px rgba(var(--woocustom-primary-rgb, 8, 127, 140), .22);
}

.elementor-widget-woocustom_ajax_add_to_cart .single_add_to_cart_button:hover,
.elementor-widget-woocustom_ajax_add_to_cart .woocustom-view-cart-button:hover,
.woocustom-share-button:hover,
.woocustom-add-to-compare-btn:hover,
.price-chart-icon-button:hover,
.woocustom-quick-atc-btn:not([disabled]):hover,
.woocustom-quick-atc-fallback:hover {
    transform: translateY(-1px);
    box-shadow: 0 12px 28px rgba(var(--woocustom-primary-rgb, 8, 127, 140), .28);
}

/* AJAX add to cart */
.elementor-widget-woocustom_ajax_add_to_cart form.cart,
.elementor-widget-woocustom_ajax_add_to_cart .cart {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    direction: rtl;
}

.elementor-widget-woocustom_ajax_add_to_cart .quantity,
.elementor-widget-woocustom_ajax_add_to_cart .fb-quantity-container {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 42px;
    padding: 4px 8px;
    border: 1px solid var(--woocustom-elementor-border);
    border-radius: var(--woocustom-elementor-radius);
    background: var(--woocustom-elementor-soft);
}

.elementor-widget-woocustom_ajax_add_to_cart .quantity input,
.elementor-widget-woocustom_ajax_add_to_cart .fb-quantity-box {
    width: 54px;
    min-height: 34px;
    border: 0;
    background: transparent;
    color: var(--woocustom-elementor-text);
    font-weight: 700;
    text-align: center;
}

.elementor-widget-woocustom_ajax_add_to_cart .fb-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 9px;
    color: var(--woocustom-elementor-text);
    background: #fff;
}

/* Quick add to cart */
.woocustom-quick-atc-wrap {
    display: inline-flex;
    flex-direction: column;
    gap: 10px;
    direction: rtl;
    min-width: 42px;
}

.woocustom-quick-atc-action-area {
    display: flex;
    align-items: center;
    gap: 8px;
}

.woocustom-quick-atc-btn,
.woocustom-quick-atc-fallback {
    position: relative;
    width: 42px;
    height: 42px;
    min-height: 42px;
    padding: 0;
    border-radius: 12px;
    overflow: hidden;
}

.woocustom-quick-atc-btn[disabled],
.woocustom-quick-atc-btn--oos {
    opacity: .45;
    cursor: not-allowed;
    background: var(--woocustom-elementor-border);
    color: var(--woocustom-elementor-muted);
    box-shadow: none;
}

.woocustom-quick-atc-icon-default,
.woocustom-quick-atc-icon-loading {
    position: absolute;
    inset: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.woocustom-quick-atc-icon-loading { opacity: 0; }
.woocustom-quick-atc-btn.is-loading .woocustom-quick-atc-icon-default { opacity: 0; }
.woocustom-quick-atc-btn.is-loading .woocustom-quick-atc-icon-loading { opacity: 1; }

.woocustom-quick-atc-variations {
    display: flex;
    flex-direction: column;
    gap: 10px;
    max-width: 100%;
}

.woocustom-quick-atc-attr-group {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.woocustom-quick-atc-attr-label {
    color: var(--woocustom-elementor-muted);
    font-size: 12px;
    font-weight: 700;
}

.woocustom-quick-atc-attr-options {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.woocustom-quick-atc-opt {
    all: unset;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    padding: 5px 14px;
    border: 1px solid var(--woocustom-elementor-border);
    border-radius: 9px;
    background: var(--woocustom-elementor-soft);
    color: var(--woocustom-elementor-text);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.5;
    cursor: pointer;
}

.woocustom-quick-atc-opt:hover,
.woocustom-quick-atc-opt.is-selected {
    border-color: var(--woocustom-elementor-primary);
    background: var(--woocustom-elementor-primary-soft);
    color: var(--woocustom-elementor-primary);
}

.woocustom-quick-atc-var-msg {
    min-height: 16px;
    margin: 2px 0 0;
    color: var(--woocustom-danger, #ef4444);
    font-size: 12px;
}

.woocustom-quick-atc-var-price {
    margin: 0;
    color: var(--woocustom-elementor-text);
    font-size: 14px;
    font-weight: 800;
}

.woocustom-quick-atc-qty-wrap {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 3px;
    border: 1px solid var(--woocustom-elementor-border);
    border-radius: 12px;
    background: var(--woocustom-elementor-soft);
}

.woocustom-quick-atc-qty-btn,
.woocustom-quick-atc-qty-confirm {
    all: unset;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 9px;
    cursor: pointer;
}

.woocustom-quick-atc-qty-confirm {
    background: var(--woocustom-elementor-primary);
    color: #fff;
}

.woocustom-quick-atc-qty-num {
    min-width: 26px;
    color: var(--woocustom-elementor-text);
    font-size: 14px;
    font-weight: 800;
    line-height: 1;
    text-align: center;
}

.woocustom-quick-atc-modal-overlay {
    position: fixed;
    inset: 0;
    z-index: 999999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 18px;
    background: rgba(15, 23, 42, .58);
    opacity: 0;
    visibility: hidden;
    direction: rtl;
}

.woocustom-quick-atc-modal-overlay.is-open {
    opacity: 1;
    visibility: visible;
}

.woocustom-quick-atc-modal {
    width: min(600px, 100%);
    padding: 24px;
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 28px 90px rgba(0, 0, 0, .28);
    text-align: right;
}

/* Product categories */
.woocustom-category-section {
    width: 100%;
    direction: rtl;
}

.woocustom-categories {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 14px;
}

.woocustom-category-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 130px;
    padding: 16px 12px;
    border: 1px solid var(--woocustom-elementor-border);
    border-radius: 18px;
    background: #fff;
    color: var(--woocustom-elementor-text);
    text-align: center;
    text-decoration: none;
    box-shadow: var(--woocustom-elementor-shadow);
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.woocustom-category-card:hover {
    transform: translateY(-3px);
    border-color: var(--woocustom-elementor-primary);
    box-shadow: 0 16px 34px rgba(15, 23, 42, .12);
}

.woocustom-category-card-image {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 76px;
    height: 76px;
    border-radius: 18px;
    background: var(--woocustom-elementor-soft);
}

.woocustom-category-card-image img,
.woocustom-category-card-image svg {
    width: 58px;
    height: 58px;
    object-fit: contain;
}

.woocustom-category-card-title {
    color: var(--woocustom-elementor-text);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.7;
}

/* Sorting */
.woocustom-sorting-wrapper {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    direction: rtl;
}

.woocustom-sorting-tabs,
.woocustom-sorting-wrapper ul {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.woocustom-filter-list-title {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--woocustom-elementor-muted);
    font-size: 14px;
    font-weight: 700;
}

.woocustom-sorting-wrapper .nav-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    padding: 8px 14px;
    border: 1px solid var(--woocustom-elementor-border);
    border-radius: 999px;
    background: #fff;
    color: var(--woocustom-elementor-text);
    font-size: 13px;
    font-weight: 700;
}

.woocustom-sorting-wrapper .nav-link.active,
.woocustom-sorting-wrapper .nav-link:hover {
    border-color: var(--woocustom-elementor-primary);
    background: var(--woocustom-elementor-primary-soft);
    color: var(--woocustom-elementor-primary);
}

/* Savings */
.woocustom-savings-wrapper {
    position: relative;
    overflow: hidden;
    width: 100%;
    padding: 18px;
    border: 1px solid rgba(var(--woocustom-primary-rgb, 8, 127, 140), .18);
    border-radius: 20px;
    background: linear-gradient(135deg, var(--woocustom-elementor-primary-soft) 0%, var(--woocustom-elementor-surface) 100%);
    box-shadow: var(--woocustom-elementor-shadow);
    direction: rtl;
}

.woocustom-savings-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.woocustom-savings-badge,
.woocustom-savings-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    border-radius: 15px;
    background: var(--woocustom-elementor-primary);
    color: #fff;
    flex: 0 0 auto;
}

.woocustom-savings-content {
    display: flex;
    flex-direction: column;
    gap: 4px;
    flex: 1 1 auto;
}

.woocustom-savings-title {
    color: var(--woocustom-elementor-text);
    font-size: 14px;
    font-weight: 800;
}

.woocustom-savings-subtitle {
    color: var(--woocustom-elementor-muted);
    font-size: 12px;
}

.woocustom-savings-amount {
    color: var(--woocustom-elementor-primary);
    font-size: 18px;
    font-weight: 900;
    white-space: nowrap;
}

/* Wishlist / compare / share / chart */
.woocustom-wishlist-btn,
.woocustom-add-to-compare-btn,
.price-chart-icon-button,
.woocustom-share-button {
    width: 42px;
    height: 42px;
    min-height: 42px;
    padding: 0;
    border-radius: 13px;
}

.woocustom-share-button {
    width: auto;
    padding: 10px 16px;
}

.woocustom-share-icon,
.woocustom-share-icon svg,
.woocustom-share-icon img,
.woocustom-wishlist-btn svg,
.woocustom-wishlist-btn img,
.woocustom-add-to-compare-btn svg,
.woocustom-add-to-compare-btn img,
.price-chart-icon-button svg,
.price-chart-icon-button img {
    width: 22px;
    height: 22px;
}

.woocustom-wishlist-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--woocustom-elementor-border);
    background: #fff;
    color: var(--woocustom-elementor-text);
    cursor: pointer;
    box-shadow: var(--woocustom-elementor-shadow);
    transition: transform .2s ease, color .2s ease, border-color .2s ease;
}

.woocustom-wishlist-btn:hover,
.woocustom-wishlist-btn.woocustom-wishlisted {
    color: var(--woocustom-elementor-primary);
    border-color: rgba(var(--woocustom-primary-rgb, 8, 127, 140), .28);
    transform: translateY(-1px);
}

.price-chart-icon-container {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* Discount */
.woocustom-elementor-discount {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 30px;
    padding: 5px 12px;
    border-radius: 999px;
    background: var(--woocustom-elementor-primary);
    color: #fff;
    font-size: 13px;
    font-weight: 900;
    line-height: 1;
}

/* Product features */
.custom-feature-boxes {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 12px;
    direction: rtl;
}

.custom-feature-boxes .feature-box {
    padding: 14px;
    border: 1px solid var(--woocustom-elementor-border);
    border-radius: 16px;
    background: #fff;
    color: var(--woocustom-elementor-text);
    font-size: 14px;
    line-height: 1.8;
    box-shadow: var(--woocustom-elementor-shadow);
}

.custom-feature-boxes .feature-box strong {
    color: var(--woocustom-elementor-primary);
}

/* Countdown */
.woocustom-product-countdown {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 44px;
    padding: 12px 18px;
    border-radius: 16px;
    background: var(--woocustom-elementor-primary-soft);
    color: var(--woocustom-elementor-primary);
    font-size: 14px;
    font-weight: 900;
    box-shadow: 0 10px 28px rgba(var(--woocustom-primary-rgb, 8, 127, 140), .12);
    direction: rtl;
}

/* Reviews */
.custom-reviews-container,
.woocustom-reviews-container {
    width: 100%;
    direction: rtl;
}

.single-review,
.custom-review-item,
.woocustom-review-item {
    padding: 16px;
    border: 1px solid var(--woocustom-elementor-border);
    border-radius: 18px;
    background: #fff;
    box-shadow: var(--woocustom-elementor-shadow);
}

.open-review-modal-btn,
.submit-review-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 9px 16px;
    border: 0;
    border-radius: 12px;
    background: var(--woocustom-elementor-primary);
    color: #fff;
    font-weight: 800;
    cursor: pointer;
}

/* AI review summary */
.wcai-summary-wrap {
    width: 100%;
    padding: 20px;
    border: 1px solid rgba(var(--woocustom-primary-rgb, 8, 127, 140), .14);
    border-radius: 22px;
    background: linear-gradient(135deg, #ffffff 0%, var(--woocustom-elementor-primary-soft) 100%);
    color: var(--woocustom-elementor-text);
    box-shadow: var(--woocustom-elementor-shadow);
    direction: rtl;
}

.wcai-summary-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 12px;
}

.wcai-icon {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    border-radius: 16px;
    background: var(--woocustom-elementor-primary);
    color: #fff;
    flex: 0 0 auto;
}

.wcai-icon svg,
.wcai-icon img {
    width: 24px;
    height: 24px;
}

.wcai-summary-header h3 {
    margin: 0;
    color: var(--woocustom-elementor-text);
    font-size: 18px;
    font-weight: 900;
    line-height: 1.5;
}

.wcai-summary-subtitle {
    margin: 0;
    color: var(--woocustom-elementor-muted);
    font-size: 12px;
    line-height: 1.6;
}

.wcai-summary-text {
    margin: 0;
    color: var(--woocustom-elementor-text);
    font-size: 14px;
    line-height: 2;
}

/* Compare table / wishlist page defaults */
.woocustom-compare-table,
.woocustom-wishlist-products {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    direction: rtl;
}

.woocustom-wishlist-item {
    padding: 16px;
    border: 1px solid var(--woocustom-elementor-border);
    border-radius: 18px;
    background: #fff;
    box-shadow: var(--woocustom-elementor-shadow);
}

/* Elementor editor fallback notices */
.elementor-editor-active .elementor-widget[class*="elementor-widget-woocustom_"] .elementor-alert,
.elementor-editor-active .elementor-widget[class*="elementor-widget-woocustom_"] .elementor-alert-info {
    padding: 12px 14px;
    border: 1px dashed var(--woocustom-elementor-primary);
    border-radius: 12px;
    background: var(--woocustom-elementor-primary-soft);
    color: var(--woocustom-elementor-text);
    direction: rtl;
    font-size: 13px;
    line-height: 1.8;
}

@media (max-width: 767px) {
    .woocustom-categories,
    .custom-feature-boxes {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .woocustom-savings-inner {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* Product image gallery Elementor widget */
.woocustom-product-gallery {
    --woocustom-gallery-primary: var(--woocustom-elementor-primary, var(--woocustom-color-primary, #087F8C));
    --woocustom-gallery-border: var(--woocustom-elementor-border, #e5e7eb);
    --woocustom-gallery-shadow: var(--woocustom-elementor-shadow, 0 14px 36px rgba(15, 23, 42, .08));
    display: flex;
    flex-direction: column;
    gap: 14px;
    width: 100%;
    direction: rtl;
    box-sizing: border-box;
}

.woocustom-product-gallery,
.woocustom-product-gallery *,
.woocustom-product-gallery *::before,
.woocustom-product-gallery *::after {
    box-sizing: border-box;
}

.woocustom-product-gallery--thumbs-right,
.woocustom-product-gallery--thumbs-left {
    align-items: stretch;
}

.woocustom-product-gallery--thumbs-right {
    flex-direction: row;
}

.woocustom-product-gallery--thumbs-left {
    flex-direction: row-reverse;
}

.woocustom-product-gallery-main {
    appearance: none;
    -webkit-appearance: none;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 320px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: inherit;
    text-align: inherit;
    overflow: visible;
    box-shadow: none;
    cursor: zoom-in;
    transition: opacity .18s ease, transform .18s ease;
}

.woocustom-product-gallery-main:focus {
    outline: none;
}

.woocustom-product-gallery-main:focus-visible {
    outline: 2px solid var(--woocustom-gallery-primary);
    outline-offset: 4px;
}

.woocustom-product-gallery.is-changing .woocustom-product-gallery-main-media img,
.woocustom-product-gallery.is-changing img.woocustom-product-gallery-main-img {
    opacity: .72;
    transform: scale(.985);
}

.woocustom-product-gallery-main-media,
.woocustom-product-gallery-main-media picture,
.woocustom-product-gallery-main-img {
    display: block;
    width: 100%;
    max-width: 100%;
    line-height: 0;
}

.woocustom-product-gallery-main-media img,
img.woocustom-product-gallery-main-img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    max-height: 640px;
    object-fit: contain;
    transition: opacity .18s ease, transform .18s ease;
}

.woocustom-product-gallery-thumbs {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    width: 100%;
}

.woocustom-product-gallery--thumbs-right .woocustom-product-gallery-thumbs,
.woocustom-product-gallery--thumbs-left .woocustom-product-gallery-thumbs {
    flex: 0 0 92px;
    width: 92px;
    max-height: 620px;
    overflow-y: auto;
    overflow-x: hidden;
    align-content: flex-start;
}

.woocustom-product-gallery--thumbs-right .woocustom-product-gallery-main,
.woocustom-product-gallery--thumbs-left .woocustom-product-gallery-main {
    flex: 1 1 auto;
}

.woocustom-product-gallery-thumb {
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 74px;
    height: 74px;
    padding: 4px;
    border: 2px solid var(--woocustom-gallery-border);
    border-radius: 16px;
    background: #fff;
    cursor: pointer;
    overflow: hidden;
    box-shadow: 0 8px 20px rgba(15, 23, 42, .06);
    transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.woocustom-product-gallery-thumb:hover,
.woocustom-product-gallery-thumb.is-active {
    border-color: var(--woocustom-gallery-primary);
    box-shadow: 0 10px 24px rgba(var(--woocustom-primary-rgb, 8, 127, 140), .18);
}

.woocustom-product-gallery-thumb:hover {
    transform: translateY(-1px);
}

.woocustom-product-gallery-thumb-media,
.woocustom-product-gallery-thumb-media picture,
.woocustom-product-gallery-thumb img {
    display: block;
    width: 100%;
    height: 100%;
    line-height: 0;
}

.woocustom-product-gallery-thumb-media img,
.woocustom-product-gallery-thumb img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 11px;
}

.woocustom-product-gallery--no-thumbs .woocustom-product-gallery-main {
    width: 100%;
}

@media (max-width: 767px) {
    .woocustom-product-gallery--thumbs-right,
    .woocustom-product-gallery--thumbs-left {
        flex-direction: column;
    }

    .woocustom-product-gallery--thumbs-right .woocustom-product-gallery-thumbs,
    .woocustom-product-gallery--thumbs-left .woocustom-product-gallery-thumbs {
        flex: 0 0 auto;
        width: 100%;
        max-height: none;
        overflow: visible;
    }

    .woocustom-product-gallery-main {
        min-height: 240px;
        padding: 0;
    }

    .woocustom-product-gallery-thumb {
        width: 64px;
        height: 64px;
    }
}


/* Product image gallery lightbox */
body.woocustom-product-gallery-lightbox-open {
    overflow: hidden;
}

.woocustom-product-gallery {
    --woocustom-lightbox-bg: rgba(15, 23, 42, .92);
    --woocustom-lightbox-padding: 28px;
    --woocustom-lightbox-image-bg: #fff;
    --woocustom-lightbox-image-radius: 14px;
    --woocustom-lightbox-image-shadow: 0 28px 90px rgba(0, 0, 0, .35);
    --woocustom-lightbox-caption-color: #fff;
    --woocustom-lightbox-caption-size: 14px;
    --woocustom-lightbox-counter-color: #fff;
    --woocustom-lightbox-counter-bg: rgba(15, 23, 42, .55);
    --woocustom-lightbox-button-bg: rgba(255, 255, 255, .95);
    --woocustom-lightbox-button-color: #111827;
    --woocustom-lightbox-button-hover-bg: #ffffff;
    --woocustom-lightbox-button-hover-color: var(--woocustom-gallery-primary, var(--woocustom-color-primary, #087F8C));
    --woocustom-lightbox-button-size: 48px;
    --woocustom-lightbox-icon-size: 24px;
    --woocustom-lightbox-nav-offset: 24px;
    --woocustom-lightbox-close-offset: 20px;
}

.woocustom-product-gallery-lightbox {
    position: fixed;
    inset: 0;
    z-index: 999999;
    display: none;
    align-items: center;
    justify-content: center;
    padding: var(--woocustom-lightbox-padding, 28px);
    background: transparent;
    direction: rtl;
    isolation: isolate;
}

.woocustom-product-gallery-lightbox.is-open {
    display: flex;
}

.woocustom-product-gallery-lightbox-backdrop {
    position: absolute;
    inset: 0;
    z-index: -1;
    background: var(--woocustom-lightbox-bg, rgba(15, 23, 42, .92));
    backdrop-filter: blur(7px);
}

.woocustom-product-gallery-lightbox-figure {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    max-width: min(96vw, 1220px);
    max-height: 92vh;
    margin: 0;
}

.woocustom-product-gallery-lightbox-img {
    display: block;
    max-width: 100%;
    max-height: 82vh;
    width: auto;
    height: auto;
    object-fit: contain;
    border-radius: var(--woocustom-lightbox-image-radius, 14px);
    background: var(--woocustom-lightbox-image-bg, #fff);
    box-shadow: var(--woocustom-lightbox-image-shadow, 0 28px 90px rgba(0, 0, 0, .35));
    opacity: 1;
    transform: scale(1);
    transition: opacity .18s ease, transform .18s ease;
}

.woocustom-product-gallery-lightbox.is-loading .woocustom-product-gallery-lightbox-img {
    opacity: .42;
    transform: scale(.985);
}

.woocustom-product-gallery-lightbox-caption {
    margin-top: 12px;
    max-width: min(92vw, 900px);
    color: var(--woocustom-lightbox-caption-color, #fff);
    font-size: var(--woocustom-lightbox-caption-size, 14px);
    line-height: 1.8;
    text-align: center;
}

.woocustom-product-gallery-lightbox-counter {
    position: absolute;
    bottom: var(--woocustom-lightbox-close-offset, 20px);
    left: 50%;
    transform: translateX(-50%);
    min-width: 58px;
    padding: 6px 12px;
    border-radius: 999px;
    background: var(--woocustom-lightbox-counter-bg, rgba(15, 23, 42, .55));
    color: var(--woocustom-lightbox-counter-color, #fff);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.4;
    text-align: center;
}

.woocustom-product-gallery-lightbox-button {
    appearance: none;
    -webkit-appearance: none;
    position: absolute;
    z-index: 3;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--woocustom-lightbox-button-size, 48px);
    height: var(--woocustom-lightbox-button-size, 48px);
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: var(--woocustom-lightbox-button-bg, rgba(255, 255, 255, .95));
    color: var(--woocustom-lightbox-button-color, #111827);
    cursor: pointer;
    box-shadow: 0 14px 36px rgba(0, 0, 0, .20);
    transition: background-color .16s ease, color .16s ease, transform .16s ease, opacity .16s ease;
}

.woocustom-product-gallery-lightbox-button:hover,
.woocustom-product-gallery-lightbox-button:focus-visible {
    background: var(--woocustom-lightbox-button-hover-bg, #fff);
    color: var(--woocustom-lightbox-button-hover-color, var(--woocustom-gallery-primary, #087F8C));
    outline: none;
    transform: scale(1.04);
}

.woocustom-product-gallery-lightbox-svg {
    display: block;
    width: var(--woocustom-lightbox-icon-size, 24px);
    height: var(--woocustom-lightbox-icon-size, 24px);
    fill: none;
    stroke: currentColor;
    stroke-width: 2.25;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.woocustom-product-gallery-lightbox-close {
    top: var(--woocustom-lightbox-close-offset, 20px);
    right: var(--woocustom-lightbox-close-offset, 20px);
}

.woocustom-product-gallery-lightbox-prev,
.woocustom-product-gallery-lightbox-next {
    top: 50%;
    transform: translateY(-50%);
}

.woocustom-product-gallery-lightbox-prev:hover,
.woocustom-product-gallery-lightbox-prev:focus-visible,
.woocustom-product-gallery-lightbox-next:hover,
.woocustom-product-gallery-lightbox-next:focus-visible {
    transform: translateY(-50%) scale(1.04);
}

.woocustom-product-gallery-lightbox-prev {
    left: var(--woocustom-lightbox-nav-offset, 24px);
}

.woocustom-product-gallery-lightbox-next {
    right: var(--woocustom-lightbox-nav-offset, 24px);
}

.woocustom-product-gallery-lightbox-loader {
    position: absolute;
    z-index: 2;
    width: 42px;
    height: 42px;
    border: 3px solid rgba(255, 255, 255, .35);
    border-top-color: #fff;
    border-radius: 50%;
    opacity: 0;
    pointer-events: none;
    animation: woocustom-gallery-loader .75s linear infinite;
}

.woocustom-product-gallery-lightbox.is-loading .woocustom-product-gallery-lightbox-loader {
    opacity: 1;
}

@keyframes woocustom-gallery-loader {
    to {
        transform: rotate(360deg);
    }
}

@media (max-width: 767px) {
    .woocustom-product-gallery-lightbox {
        padding: 18px;
    }

    .woocustom-product-gallery-lightbox-button {
        width: 42px;
        height: 42px;
    }

    .woocustom-product-gallery-lightbox-prev {
        left: 10px;
    }

    .woocustom-product-gallery-lightbox-next {
        right: 10px;
    }

    .woocustom-product-gallery-lightbox-img {
        max-height: 78vh;
    }
}

/* Product stock alert Elementor widget */
.woocustom-product-stock-alert {
    display: flex;
    align-items: center;
    gap: 14px;
    position: relative;
    overflow: hidden;
    direction: rtl;
    margin: 20px 0;
    padding: 14px 18px;
    border: 1px solid rgba(var(--woocustom-primary-rgb, 8, 127, 140), .16);
    border-radius: var(--woocustom-radius-md, 12px);
    background: linear-gradient(135deg, var(--woocustom-primary-soft, #eef8f9) 0%, var(--woocustom-surface, #ffffff) 100%);
    box-shadow: 0 10px 30px rgba(var(--woocustom-primary-rgb, 8, 127, 140), .08);
    color: var(--woocustom-text, #111827);
}

.woocustom-product-stock-alert::before {
    content: '';
    position: absolute;
    inset: -60%;
    background: radial-gradient(circle, rgba(var(--woocustom-primary-rgb, 8, 127, 140), .06) 0%, transparent 64%);
    pointer-events: none;
}

.woocustom-product-stock-alert--icon-end {
    flex-direction: row-reverse;
}

.woocustom-product-stock-icon {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    min-width: 38px;
    color: var(--woocustom-color-primary, #087F8C);
    background: rgba(var(--woocustom-primary-rgb, 8, 127, 140), .11);
    border-radius: var(--woocustom-radius-sm, 8px);
    flex-shrink: 0;
}

.woocustom-product-stock-icon svg,
.woocustom-product-stock-icon img {
    width: 20px;
    height: 20px;
    object-fit: contain;
}

.woocustom-product-stock-icon svg {
    animation: woocustom-stock-pulse 2s infinite ease-in-out;
}

.woocustom-product-stock-content {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.woocustom-product-stock-title {
    margin: 0 !important;
    color: var(--woocustom-text, #111827);
    font-size: 14px;
    font-weight: 800;
    line-height: 1.5;
}

.woocustom-product-stock-desc {
    margin: 0 !important;
    color: var(--woocustom-muted, #64748b);
    font-size: 12px;
    line-height: 1.8;
}

.woocustom-product-stock-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0 2px;
    padding: 1px 7px;
    border-radius: 7px;
    color: var(--woocustom-color-primary, #087F8C);
    background: rgba(var(--woocustom-primary-rgb, 8, 127, 140), .10);
    font-weight: 900;
    line-height: 1.5;
}

@keyframes woocustom-stock-pulse {
    0%, 100% { transform: scale(1); opacity: 1; }
    50% { transform: scale(1.14); opacity: .75; }
}
