/**
 * Quick View Modal Styles
 *
 * @package WooCommerce_Quick_View
 * @version 1.0.0
 */

/* ==========================================================================
   Quick View Button
   ========================================================================== */

.woo-qv-button {
        display: inline-block;
        margin: var( --woo-qv-button-margin, 10px 0 );
        padding: var( --woo-qv-button-padding, 8px 16px );
        background-color: var( --woo-qv-button-bg, #333 );
        color: var( --woo-qv-button-color, #fff );
        border: var( --woo-qv-button-border, none );
        border-radius: var( --woo-qv-button-radius, 3px );
        cursor: pointer;
        font-size: 14px;
        text-align: center;
        transition: background-color 0.3s ease;
}

.woo-qv-button:hover,
.woo-qv-button:focus {
        background-color: var( --woo-qv-button-bg-hover, #555 );
        color: var( --woo-qv-button-color-hover, #fff );
        outline: 2px solid #0073aa;
        outline-offset: 2px;
}

/* Same row button styling */
.woo-qv-buttons-wrapper {
        display: flex;
        gap: 10px;
        align-items: center;
        flex-wrap: wrap;
}

.woo-qv-button-inline {
        margin: 0;
}

/* ==========================================================================
   Modal Base
   ========================================================================== */

.woo-qv-modal {
        display: none;
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        z-index: 999999;
        opacity: 0;
        transition: opacity 0.3s ease;
}

.woo-qv-modal.active {
        display: block;
        opacity: 1;
}

.woo-qv-modal-overlay {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-color: rgba( 0, 0, 0, 0.7 );
}

.woo-qv-modal-content {
        position: relative;
        max-width: 900px;
        width: 90%;
        max-height: 90vh;
        margin: 5vh auto;
        background-color: #fff;
        border-radius: 5px;
        overflow-y: auto;
        z-index: 1000000;
        box-shadow: 0 5px 20px rgba( 0, 0, 0, 0.3 );
}

/* ==========================================================================
   Close Icon
   ========================================================================== */

.woo-qv-close {
        position: absolute;
        top: 15px;
        right: 15px;
        color: #333;
        font-size: 32px;
        line-height: 1;
        cursor: pointer;
        z-index: 1000001;
        background: transparent;
        border: 0;
        padding: 0;
        margin: 0;
        font-family: inherit;
        -webkit-appearance: none;
        -moz-appearance: none;
        appearance: none;
}

.woo-qv-close:focus {
        outline: 2px solid #0073aa;
        outline-offset: 2px;
}

/* ==========================================================================
   Loading State
   ========================================================================== */

.woo-qv-loading {
        display: none;
        text-align: center;
        padding: 60px 20px;
}

.woo-qv-spinner {
        display: inline-block;
        width: 40px;
        height: 40px;
        border: 4px solid #f3f3f3;
        border-top: 4px solid #333;
        border-radius: 50%;
        animation: woo-qv-spin 1s linear infinite;
}

@keyframes woo-qv-spin {
        0% {
                transform: rotate( 0deg );
        }
        100% {
                transform: rotate( 360deg );
        }
}

.screen-reader-text {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect( 0, 0, 0, 0 );
        white-space: nowrap;
        border-width: 0;
}

/* ==========================================================================
   Product Content
   ========================================================================== */

.woo-qv-product-content {
        display: none;
        padding: 30px;
}

.woo-qv-product-content::after {
        content: "";
        display: table;
        clear: both;
}

.woo-qv-product-image {
        float: left;
        width: 45%;
        margin-right: 5%;
}

.woo-qv-product-image img {
        width: 100%;
        height: auto;
        border-radius: 3px;
}

.woo-qv-product-details {
        float: left;
        width: 50%;
}

.woo-qv-product-title {
        margin: 0 0 15px;
        font-size: 24px;
        font-weight: 600;
        color: #333;
}

.woo-qv-product-price {
        margin-bottom: 15px;
        font-size: 20px;
        color: #333;
}

.woo-qv-product-price .amount {
        font-weight: 600;
}

.woo-qv-product-description {
        margin-bottom: 20px;
        font-size: 14px;
        line-height: 1.6;
        color: #666;
}

/* ==========================================================================
   Variations
   ========================================================================== */

.woo-qv-product-variations {
        margin-bottom: 20px;
}

.woo-qv-variation-attribute {
        margin-bottom: 15px;
}

.woo-qv-variation-attribute label {
        display: block;
        margin-bottom: 5px;
        font-weight: 600;
        font-size: 14px;
}

.woo-qv-variation-select {
        width: 100%;
        padding: 8px 12px;
        border: 1px solid #ddd;
        border-radius: 3px;
        font-size: 14px;
}

.woo-qv-variation-select:focus {
        outline: 2px solid #0073aa;
        outline-offset: 0;
        border-color: #0073aa;
}

/* ==========================================================================
   Product Actions
   ========================================================================== */

.woo-qv-product-actions {
        display: flex;
        align-items: center;
        gap: 15px;
        margin-top: 20px;
}

.woo-qv-quantity-wrapper label {
        display: flex;
        align-items: center;
        gap: 8px;
        font-size: 14px;
        font-weight: 600;
}

.woo-qv-quantity {
        width: 70px;
        padding: 8px;
        border: 1px solid #ddd;
        border-radius: 3px;
        font-size: 14px;
}

.woo-qv-quantity:focus {
        outline: 2px solid #0073aa;
        outline-offset: 0;
        border-color: #0073aa;
}

.woo-qv-add-to-cart-wrapper .button,
.woo-qv-cart-form .button {
        padding: 10px 24px;
        background-color: #333;
        color: #fff;
        border: none;
        border-radius: 3px;
        font-size: 14px;
        cursor: pointer;
        text-decoration: none;
        display: inline-block;
        transition: background-color 0.3s ease;
}

.woo-qv-add-to-cart-wrapper .button:hover,
.woo-qv-add-to-cart-wrapper .button:focus,
.woo-qv-cart-form .button:hover,
.woo-qv-cart-form .button:focus {
        background-color: #555;
        outline: 2px solid #0073aa;
        outline-offset: 2px;
}

.woo-qv-add-to-cart-wrapper .button:disabled,
.woo-qv-cart-form .button:disabled {
        background-color: #ccc;
        cursor: not-allowed;
        opacity: 0.6;
}

/* ==========================================================================
   Body State
   ========================================================================== */

body.woo-qv-modal-open {
        overflow: hidden;
}

/* ==========================================================================
   Responsive
   ========================================================================== */

@media ( max-width: 768px ) {
        .woo-qv-product-image,
        .woo-qv-product-details {
                float: none;
                width: 100%;
                margin-right: 0;
        }

        .woo-qv-product-image {
                margin-bottom: 20px;
        }

        .woo-qv-modal-content {
                width: 95%;
                margin: 2.5vh auto;
                max-height: 95vh;
        }

        .woo-qv-product-content {
                padding: 20px;
        }

        .woo-qv-product-actions {
                flex-direction: column;
                align-items: stretch;
        }

        .woo-qv-add-to-cart-wrapper .button,
        .woo-qv-cart-form .button {
                width: 100%;
                text-align: center;
        }
}
