﻿/* ============================================
   Product Configurator - Main Styles
   ============================================ */

.pc-configurator-wrapper {
    margin: 0 0 30px 0 !important;
    padding: var(--pc-wrapper-padding) !important;
    background: var(--pc-wrapper-bg) !important;
    border: var(--pc-wrapper-border-width) solid var(--pc-border-color) !important;
    border-radius: 8px !important;
    width: var(--pc-wrapper-width) !important;
}

/* Reduce spacing for short description to close gap with configurator */
.woocommerce-product-details__short-description {
    margin-bottom: 5px !important;
    padding-bottom: 5px !important;
}

.woocommerce-product-details__short-description p {
    margin-bottom: 5px !important;
}

.woocommerce-product-details__short-description p:last-child {
    margin-bottom: 0 !important;
}

.pc-configurator-title {
    font-size: var(--pc-title-font-size) !important;
    font-weight: 600 !important;
    margin-bottom: 20px !important;
    color: var(--pc-title-color) !important;
    text-transform: var(--pc-text-transform) !important;
}

.pc-configs-container {
    margin-bottom: 25px !important;
    height: var(--pc-container-height) !important;
}

.pc-configs-container[style*="height: auto"] {
    overflow-y: visible !important;
}

.pc-configs-container:not([style*="height: auto"]) {
    overflow-y: auto !important;
}

.pc-config-item {
    margin-bottom: var(--pc-option-spacing) !important;
}

.pc-config-label {
    display: block !important;
    font-weight: 600 !important;
    margin-bottom: var(--pc-label-spacing) !important;
    color: #333 !important;
    font-size: var(--pc-label-font-size) !important;
    text-transform: var(--pc-text-transform) !important;
}

.pc-required {
    color: #e74c3c;
    margin-left: 3px;
}

.pc-config-select {
    width: 100% !important;
    padding: var(--pc-input-padding) !important;
    padding-top: var(--pc-vertical-padding) !important;
    padding-bottom: var(--pc-vertical-padding) !important;
    line-height: var(--pc-select-line-height) !important;
    height: var(--pc-option-height) !important;
    border: var(--pc-input-border-width) solid var(--pc-select-border-color) !important;
    border-radius: 4px !important;
    font-size: var(--pc-option-font-size) !important;
    background: #fff !important;
    transition: border-color 0.3s !important;
    display: block !important;
    box-sizing: border-box !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
}

.pc-config-select:focus {
    outline: none !important;
    border-color: var(--pc-primary-color) !important;
}

.pc-config-select option {
    padding: 2px 0 !important;
    background: #fff !important;
    color: #333 !important;
}

.pc-config-select option:checked,
.pc-config-select option:focus {
    background: var(--pc-primary-color) !important;
    color: #fff !important;
}

.pc-config-select.pc-error {
    border-color: #e74c3c;
}

.pc-config-radio-group {
    display: flex !important;
    flex-direction: column !important;
    gap: var(--pc-radio-gap) !important;
}

.pc-radio-option {
    display: flex !important;
    align-items: center !important;
    padding: var(--pc-input-padding) !important;
    background: #fff !important;
    border: var(--pc-input-border-width) solid var(--pc-radio-border-color) !important;
    border-radius: 4px !important;
    cursor: pointer !important;
    transition: all 0.3s !important;
    font-size: var(--pc-option-font-size) !important;
    height: var(--pc-option-height) !important;
    min-height: var(--pc-option-height) !important;
}

.pc-radio-option:hover {
    border-color: var(--pc-primary-color) !important;
    background: #f0f8ff !important;
}

.pc-radio-option input[type="radio"] {
    margin-right: 10px;
    cursor: pointer;
}

.pc-radio-option input[type="radio"]:checked+.pc-radio-label {
    font-weight: 600 !important;
    color: var(--pc-primary-color) !important;
}

.pc-radio-label {
    flex: 1 !important;
    cursor: pointer !important;
    font-size: var(--pc-option-font-size) !important;
}

.pc-config-item.pc-error {
    border-left: 4px solid #e74c3c;
    padding-left: 10px;
}

.pc-price-summary {
    margin-top: 25px !important;
    padding: 20px !important;
    background: var(--pc-price-summary-bg) !important;
    border: var(--pc-wrapper-border-width) solid var(--pc-price-summary-border-color) !important;
    border-radius: 6px !important;
}

.pc-base-price,
.pc-options-price,
.pc-total-price {
    display: flex;
    justify-content: space-between;
    padding: 8px 0;
    border-bottom: 1px solid #eee;
}

.pc-total-price {
    border-bottom: none !important;
    border-top: var(--pc-wrapper-border-width) solid var(--pc-price-summary-border-color) !important;
    margin-top: 8px !important;
    padding-top: 12px !important;
    font-size: 18px !important;
    font-weight: 600 !important;
}

.pc-price-label {
    color: #666 !important;
    font-size: var(--pc-label-font-size) !important;
    text-transform: var(--pc-text-transform) !important;
}

.pc-price-value {
    font-weight: 600;
    color: #333;
}

.pc-total-price .pc-price-value {
    color: var(--pc-total-price-color) !important;
    font-size: 20px !important;
}

/* ============================================
   MINI CART - Clean Inline Format
   ============================================ */

/* Mini cart item - don't override WooCommerce structure, just enhance it */
.woocommerce-mini-cart-item {
    position: relative;
}

/* Product name and configs - all inline, one line */
.woocommerce-mini-cart-item .woocommerce-mini-cart-item__title {
    display: inline;
    margin: 0;
    padding: 0;
    font-weight: 500;
    font-size: 13px;
    line-height: 1.5;
    color: #333;
}

.woocommerce-mini-cart-item .woocommerce-mini-cart-item__title a {
    color: #333;
    text-decoration: none;
    display: inline;
}

.woocommerce-mini-cart-item .woocommerce-mini-cart-item__title a:hover {
    color: var(--ast-global-color-0, #2271b1);
}

/* Mini cart configs - inline format, one continuous line */
.woocommerce-mini-cart-item .pc-mini-configs-inline {
    display: inline;
    margin-left: 6px;
    font-size: 11px;
    color: #666;
    line-height: 1.5;
    font-weight: normal;
}

/* Option prices in configs - same color as summary */
.woocommerce-mini-cart-item .pc-mini-configs-inline .pc-mini-option-price {
    color: var(--ast-global-color-0, #2271b1);
    font-weight: 500;
}

/* Mini cart price summary */
.woocommerce-mini-cart-item .pc-mini-price-summary {
    display: block;
    margin-top: 4px;
    padding-top: 4px;
    border-top: 1px solid #e5e5e5;
    font-size: 11px;
    line-height: 1.5;
}

.woocommerce-mini-cart-item .pc-mini-price-summary .pc-mini-base-price {
    color: #666;
    margin-right: 6px;
}

.woocommerce-mini-cart-item .pc-mini-price-summary .pc-mini-options-price {
    color: var(--ast-global-color-0, #2271b1);
    margin-right: 6px;
    font-weight: 500;
}

.woocommerce-mini-cart-item .pc-mini-price-summary .pc-mini-total-price {
    color: #333;
    font-weight: 600;
    margin-right: 6px;
}

.woocommerce-mini-cart-item .pc-mini-price-summary .pc-mini-quantity-multiplier {
    color: #666;
    margin-right: 6px;
}

.woocommerce-mini-cart-item .pc-mini-price-summary .pc-mini-final-total {
    color: #333;
    font-weight: 600;
}

/* Quantity next to remove button */
.woocommerce-mini-cart-item .pc-mini-quantity {
    display: inline-block;
    margin-right: 6px;
    font-size: 11px;
    color: #666;
    font-weight: 500;
    vertical-align: middle;
}

/* Remove button container - ensure quantity and remove are together */
.woocommerce-mini-cart-item .woocommerce-mini-cart-item__remove {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 4px;
}

/* Remove button styling */
.woocommerce-mini-cart-item .remove {
    display: inline-block;
    vertical-align: middle;
    margin: 0;
}

/* Hide all default variation/meta displays in mini cart */
.woocommerce-mini-cart-item .woocommerce-mini-cart-item__meta {
    display: none !important;
}

.woocommerce-mini-cart-item .variation {
    display: none !important;
}

/* Hide default quantity display */
.woocommerce-mini-cart-item .woocommerce-mini-cart-item__quantity {
    display: none !important;
}

/* ============================================
   CART PAGE - Full Structured Format
   ============================================ */

/* Ensure product name is always on top in cart table */
.woocommerce-cart .product-name {
    display: flex;
    flex-direction: column;
}

.woocommerce-cart .product-name a {
    display: block;
    margin-bottom: 8px;
    font-weight: 500;
    order: 1;
}

.woocommerce-cart .pc-cart-configs-wrapper {
    margin-top: 0;
    padding-top: 0;
    order: 2;
}

.pc-cart-configs-wrapper {
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px solid #e5e5e5;
}

.pc-cart-configs-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.pc-cart-config-item {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    font-size: 13px;
    line-height: 1.5;
    color: #555;
    gap: 6px;
}

.pc-config-name {
    font-weight: 500;
    color: #333;
    white-space: nowrap;
}

.pc-config-separator {
    color: #999;
    margin: 0 2px;
}

.pc-config-value {
    color: #555;
    flex: 1;
    min-width: 0;
}

.pc-config-price {
    color: var(--ast-global-color-0, #2271b1);
    font-weight: 500;
    white-space: nowrap;
    margin-left: auto;
    font-size: 12px;
}

/* Quantity in cart table - always consistent */
.woocommerce-cart .product-quantity {
    white-space: nowrap;
    text-align: center;
    vertical-align: middle;
    width: 80px;
}

.woocommerce-cart .product-quantity .quantity {
    display: inline-block;
}

/* Hide update cart button */
.woocommerce-cart button[name="update_cart"],
.woocommerce-cart .actions .button[name="update_cart"],
.woocommerce-cart input[name="update_cart"] {
    display: none !important;
}

/* Loading state during cart update */
.woocommerce-cart.pc-cart-updating {
    opacity: 0.7;
    pointer-events: none;
    position: relative;
}

.woocommerce-cart.pc-cart-updating::before {
    content: 'Aktualizowanie koszyka...';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: #fff;
    padding: 15px 30px;
    border: 2px solid var(--ast-global-color-0, #2271b1);
    border-radius: 4px;
    font-weight: 500;
    color: var(--ast-global-color-0, #2271b1);
    z-index: 1000;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

body.pc-cart-loading {
    cursor: wait;
}

/* ============================================
   CHECKOUT - Full Structured Format
   ============================================ */

/* Checkout order review table - ensure consistent layout */
.woocommerce-checkout-review-order-table tbody tr {
    vertical-align: top;
}

/* Show quantity in quantity column - match styling of other columns */
.woocommerce-checkout-review-order-table thead tr th.product-quantity,
.woocommerce-checkout-review-order-table tbody tr td.product-quantity,
table.woocommerce-checkout-review-order-table thead tr th.product-quantity,
table.woocommerce-checkout-review-order-table tbody tr td.product-quantity {
    display: table-cell !important;
    visibility: visible !important;
    text-align: center !important;
    vertical-align: middle !important;
    padding: 8px !important;
    font-size: 14px !important;
    color: #333 !important;
    width: 80px !important;
    opacity: 1 !important;
}

/* Header styling - match other headers (Produkt, Kwota) - same color and style */
.woocommerce-checkout-review-order-table thead th.product-quantity {
    font-weight: 700 !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    color: inherit !important;
}

/* Match the exact color of other table headers */
.woocommerce-checkout-review-order-table thead th {
    color: #333 !important;
}

.woocommerce-checkout-review-order-table thead th.product-quantity {
    color: #333 !important;
}

/* Body cell styling - center aligned, just the number */
.woocommerce-checkout-review-order-table tbody td.product-quantity {
    font-weight: 500 !important;
    text-align: center !important;
}

/* Override any WooCommerce default hiding */
.woocommerce-checkout-review-order-table .product-quantity {
    display: table-cell !important;
}

/* Hide any quantity display in product name column */
.woocommerce-checkout-review-order-table .product-name .pc-checkout-quantity {
    display: none !important;
}

/* Hide quantity that might be displayed as text in product name (e.g., "3x Product Name") */
.woocommerce-checkout-review-order-table .product-name {
    /* Remove any quantity prefix */
}

/* Hide quantity display that WooCommerce might add */
.woocommerce-checkout-review-order-table .product-name .quantity {
    display: none !important;
}

/* Ensure total price column shows the correct value */
.woocommerce-checkout-review-order-table tbody td.product-total {
    display: table-cell !important;
    visibility: visible !important;
}

/* Hide inline quantity (no longer needed) */
.woocommerce-checkout-review-order-table .pc-checkout-quantity {
    display: none;
}

/* Product name column */
.woocommerce-checkout-review-order-table .product-name {
    display: flex;
    flex-direction: column;
    padding: 8px 0;
    /* Consistent padding for all rows */
}

.woocommerce-checkout-review-order-table .product-name>a {
    display: inline;
    margin: 0;
    font-weight: 500;
    line-height: 1.5;
}

/* Price breakdown in checkout */
.woocommerce-checkout-review-order-table .pc-checkout-price-breakdown {
    display: block;
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px solid #e5e5e5;
    font-size: 12px;
    line-height: 1.6;
}

.woocommerce-checkout-review-order-table .pc-checkout-price-label {
    color: #666;
    font-weight: 500;
}

.woocommerce-checkout-review-order-table .pc-checkout-base-price {
    color: #666;
    margin: 0 4px;
}

.woocommerce-checkout-review-order-table .pc-checkout-options-price {
    color: var(--ast-global-color-0, #2271b1);
    font-weight: 500;
    margin: 0 4px;
}

.woocommerce-checkout-review-order-table .pc-checkout-item-price {
    color: #333;
    font-weight: 500;
    margin: 0 4px;
}

.woocommerce-checkout-review-order-table .pc-checkout-total-price {
    color: #333;
    font-weight: 600;
    font-size: 13px;
    margin-left: 4px;
}

.woocommerce-checkout-review-order-table .pc-cart-configs-wrapper {
    margin-top: 0;
    padding-top: 0;
    min-height: 24px;
    /* Ensure consistent height even with one option */
    display: flex;
    align-items: flex-start;
}

.woocommerce-checkout-review-order-table .pc-cart-configs-list {
    margin: 0;
    padding: 0;
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.woocommerce-checkout-review-order-table .pc-cart-config-item {
    font-size: 12px;
    margin: 0;
    padding: 2px 0;
    display: block;
    white-space: normal;
    line-height: 1.4;
}

.woocommerce-checkout-review-order-table .pc-cart-config-item .pc-config-price {
    display: block;
    margin-left: 0;
    margin-top: 2px;
    font-weight: 500;
}

/* Price column - show final total */
.woocommerce-checkout-review-order-table .product-total {
    text-align: right;
    white-space: nowrap;
    vertical-align: top;
    padding-top: 8px;
    font-weight: 600;
    font-size: 14px;
}

/* ============================================
   ORDER DETAILS PAGE
   ============================================ */

.pc-order-configs-wrapper {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid #e5e5e5;
}

.pc-order-configs-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.pc-order-config-item {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    font-size: 13px;
    line-height: 1.6;
    color: #555;
    gap: 6px;
}

.pc-order-config-name {
    font-weight: 500;
    color: #333;
    white-space: nowrap;
}

.pc-order-config-separator {
    color: #999;
    margin: 0 2px;
}

.pc-order-config-value {
    color: #555;
    flex: 1;
    min-width: 0;
}

.pc-order-config-price {
    color: var(--ast-global-color-0, #2271b1);
    font-weight: 500;
    white-space: nowrap;
    margin-left: auto;
    font-size: 12px;
}

.woocommerce-order-details .pc-order-configs-wrapper {
    margin-top: 10px;
}

/* ============================================
   Price Breakdown (Cart & Checkout)
   ============================================ */

.pc-cart-price-breakdown,
.pc-cart-subtotal-breakdown {
    display: inline-block;
    vertical-align: top;
}

.pc-base-price-row,
.pc-options-price-row,
.pc-total-price-row,
.pc-base-subtotal-row,
.pc-options-subtotal-row,
.pc-total-subtotal-row {
    font-size: 13px;
    line-height: 1.5;
    display: block;
}

.pc-base-price-row,
.pc-base-subtotal-row {
    color: #666;
}

.pc-options-price-row,
.pc-options-subtotal-row {
    color: var(--ast-global-color-0, #2271b1);
    font-size: 12px;
    padding-left: 12px;
}

.pc-total-price-row,
.pc-total-subtotal-row {
    font-weight: 600;
    margin-top: 4px;
    padding-top: 4px;
    border-top: 1px solid #ddd;
    color: #333;
    font-size: 14px;
}

/* ============================================
   Hide Default WooCommerce Display
   ============================================ */

/* Hide default variation display when we have custom configs */
.woocommerce-cart-item__meta:has(.pc-cart-configs-wrapper) .variation,
.woocommerce-order-details:has(.pc-order-configs-wrapper) .variation {
    display: none;
}

/* Fallback for browsers without :has() support */
.woocommerce-cart-item__meta .pc-cart-configs-wrapper~.variation {
    display: none;
}

/* ============================================
   Responsive Design
   ============================================ */

@media (max-width: 768px) {

    /* Mini cart mobile */
    .woocommerce-mini-cart-item .pc-mini-configs-inline {
        font-size: 10px;
        display: block;
        margin-left: 0;
        margin-top: 4px;
    }

    .woocommerce-mini-cart-item .pc-mini-quantity {
        font-size: 10px;
    }

    /* Cart page mobile */
    .pc-cart-config-item,
    .pc-order-config-item {
        flex-direction: column;
        align-items: flex-start;
        gap: 3px;
    }

    .pc-config-price,
    .pc-order-config-price {
        margin-left: 0;
        margin-top: 2px;
    }

    .pc-config-separator,
    .pc-order-config-separator {
        display: none;
    }

    .pc-configurator-wrapper {
        padding: 15px;
    }

    .pc-configurator-title {
        font-size: 20px;
    }

    .pc-price-summary {
        padding: 15px;
    }
}

/* ============================================
   Print Styles
   ============================================ */

@media print {

    .pc-cart-configs-wrapper,
    .pc-order-configs-wrapper {
        border-top: 1px solid #ccc;
    }

    .pc-config-price,
    .pc-order-config-price {
        color: #000;
    }

    .pc-mini-config-price {
        color: #000;
    }
}

/* ============================================
   Mobile Cart Fixes (Astra & Generic)
   ============================================ */
@media (max-width: 992px) {
    /* Hide all shopping cart widgets, mini-carts, and dropdowns on mobile/tablet */
    .widget_shopping_cart,
    .widget_shopping_cart_content,
    .woocommerce-mini-cart,
    .woocommerce-mini-cart-item,
    [class*="mini-cart"],
    [class*="widget_shopping_cart"],
    [id*="mini-cart"],
    [id*="widget_shopping_cart"],
    .ast-site-header-cart-data,
    .ast-desktop-cart-dropdown,
    .ast-mobile-cart-flyout,
    .ast-mobile-cart-drawer,
    .ast-cart-slideout,
    .ast-cart-flyout,
    .ast-mobile-popup-drawer[data-section*="cart"],
    .ast-mobile-popup-drawer.ast-mobile-cart-drawer,
    .ast-mobile-popup-drawer[class*="cart"],
    .ast-mobile-popup-drawer[id*="cart"],
    .ast-mobile-popup-drawer[data-section="section-header-cart"] {
        display: none !important;
        visibility: hidden !important;
        opacity: 0 !important;
        pointer-events: none !important;
        height: 0 !important;
        overflow: hidden !important;
    }
}

