/* Virtual Variations Frontend Styles */

/* Product info display */
.vvariaatio-product-info {
    margin-bottom: 30px;
}

.vvariaatio-selected-info {
    background: #f7f7f7;
    padding: 20px;
    border-radius: 5px;
    margin-bottom: 20px;
}

.vvariaatio-selected-title {
    font-size: 1.2em;
    margin: 0 0 10px 0;
}

.vvariaatio-selected-description {
    margin-bottom: 10px;
}

.vvariaatio-selected-description p:last-child {
    margin-bottom: 0;
}

.vvariaatio-selected-price {
    font-size: 1.3em;
    font-weight: 600;
    color: #333;
    margin-bottom: 10px;
}

.vvariaatio-selected-meta {
    font-size: 0.9em;
    color: #666;
}

/* Gallery highlights */
.woocommerce-product-gallery__image.vvariaatio-active-image {
    position: relative;
}

.woocommerce-product-gallery__image.vvariaatio-active-image::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    border: 3px solid #0073aa;
    pointer-events: none;
    z-index: 1;
}

/* Thumbnail highlights */
.flex-control-thumbs li img.vvariaatio-active-thumb {
    opacity: 1 !important;
    border-color: #0073aa !important;
}

/* Parent relationships display */
.vvariaatio-parent-relationships {
    margin: 20px 0;
    padding: 15px;
    background: #f7f7f7;
    border-radius: 5px;
}

.vvariaatio-parent-relationships h3 {
    margin: 0 0 10px 0;
    font-size: 1.1em;
}

.vvariaatio-parent-item {
    margin-bottom: 8px;
}

/* DEBUGGING STYLES - Visual indicators when debug mode is active */
body.vvariaatio-debug-mode .woocommerce-product-gallery {
    position: relative;
}

body.vvariaatio-debug-mode .woocommerce-product-gallery::before {
    content: "Gallery State: " attr(data-debug-state);
    position: absolute;
    top: -30px;
    left: 0;
    background: #007cba;
    color: white;
    padding: 5px 10px;
    font-size: 12px;
    z-index: 1000;
    border-radius: 3px;
}

body.vvariaatio-debug-mode .woocommerce-product-gallery[data-vvariaatio-transitioning="true"]::after {
    content: "TRANSITIONING";
    position: absolute;
    top: 10px;
    right: 10px;
    background: #dc3232;
    color: white;
    padding: 5px 10px;
    font-size: 12px;
    z-index: 1001;
    border-radius: 3px;
    animation: vv-pulse 1s infinite;
}

body.vvariaatio-debug-mode .woocommerce-product-gallery__wrapper[data-vvariaatio-replacing="true"]::after {
    content: "REPLACING";
    position: absolute;
    bottom: 10px;
    right: 10px;
    background: #ffb900;
    color: #000;
    padding: 5px 10px;
    font-size: 12px;
    z-index: 1001;
    border-radius: 3px;
    animation: vv-pulse 1s infinite;
}

body.vvariaatio-debug-mode [class*="flex-"] {
    outline: 2px dashed #dc3232 !important;
}

body.vvariaatio-debug-mode .flex-active-slide {
    outline: 3px solid #46b450 !important;
}

@keyframes vv-pulse {
    0% { opacity: 1; }
    50% { opacity: 0.5; }
    100% { opacity: 1; }
}

.vvariaatio-parent-item:last-child {
    margin-bottom: 0;
}

.vvariaatio-parent-link {
    display: block;
    padding: 8px 12px;
    background: white;
    border: 1px solid #ddd;
    border-radius: 3px;
    text-decoration: none;
    transition: all 0.2s ease;
}

.vvariaatio-parent-link:hover {
    background: #f0f0f0;
    border-color: #ccc;
    text-decoration: none;
}

.vvariaatio-parent-title {
    display: block;
    font-weight: 600;
    color: #333;
}

.vvariaatio-parent-meta {
    display: block;
    font-size: 0.9em;
    color: #666;
    margin-top: 2px;
}

/* Loading state */
.single_add_to_cart_button.loading {
    opacity: 0.6;
    cursor: wait;
}

.single_add_to_cart_button.loading::after {
    content: ' ...';
}

/* Variation form adjustments */
.vvariaatio-form .variations td.label,
.vvariaatio-custom-form .variations td.label {
    width: 30%;
}

.vvariaatio-form .variations select,
.vvariaatio-custom-form .variations select {
    width: 100%;
    max-width: 300px;
}

/* Disabled option styling */
.vvariaatio-form .variations select option:disabled,
.vvariaatio-form .variations select option.vvariaatio-disabled,
.vvariaatio-custom-form .variations select option:disabled,
.vvariaatio-custom-form .variations select option.vvariaatio-disabled {
    color: #999 !important;
    background-color: #f5f5f5 !important;
    font-style: italic;
}

/* Additional styling for browsers that don't support :disabled on options */
.vvariaatio-form .variations select option.vvariaatio-disabled,
.vvariaatio-custom-form .variations select option.vvariaatio-disabled {
    opacity: 0.6;
    text-decoration: line-through;
}

/* Visual indicator for selects with disabled options */
.vvariaatio-form .variations select.vvariaatio-has-disabled,
.vvariaatio-custom-form .variations select.vvariaatio-has-disabled {
    background-color: #fafafa;
    border-color: #ddd;
}

/* Hide out-of-stock message on virtual variation products */
.vvariaatio-form .stock.out-of-stock {
    display: none !important;
}

/* Hide default WooCommerce out-of-stock message when virtual variations are present */
.single-product .vvariaatio-form ~ .stock.out-of-stock,
.single-product .summary .stock.out-of-stock {
    display: none !important;
}

/* Mobile responsiveness */
@media (max-width: 768px) {
    .vvariaatio-form .variations td.label,
    .vvariaatio-custom-form .variations td.label {
        width: 100%;
        display: block;
        margin-bottom: 5px;
    }
    
    .vvariaatio-form .variations td.value,
    .vvariaatio-custom-form .variations td.value {
        display: block;
        width: 100%;
        margin-bottom: 15px;
    }
    
    .vvariaatio-form .variations select,
    .vvariaatio-custom-form .variations select {
        max-width: 100%;
    }
}

/* hotfix, hide out of stock notification on empty virtual variation */
.wp-block-add-to-cart-form:has(.vvariaatio-form) .variations_form.cart:not(.vvariaatio-form) {
    display: none;
}

/* Gallery filtering styles */
.woocommerce-product-gallery__image[data-hidden="true"] {
    visibility: hidden !important;
    opacity: 0 !important;
}

.woocommerce-product-gallery__image[data-hidden="false"] {
    visibility: visible !important;
    opacity: 1 !important;
}

.flex-control-nav li[data-hidden="true"] {
    display: none !important;
}

.flex-control-nav li[data-hidden="false"] {
    display: block !important;
}

/* Smooth transitions for gallery filtering */
.woocommerce-product-gallery__image {
    transition: opacity 0.3s ease;
}

.flex-control-nav li {
    transition: opacity 0.3s ease;
}

/* Initially show only first image - ONLY on virtual variation products */
.vvariaatio-form ~ .woocommerce-product-gallery:not(.vvariaatio-gallery-initialized) .woocommerce-product-gallery__image:not(:first-child),
.vvariaatio-form ~ .woocommerce-product-gallery:not(.vvariaatio-gallery-initialized) .flex-control-nav li:not(:first-child) {
    display: none !important;
}