/* ==========================================================================
   НАСТРОЙКИ ДИЗАЙНА КНОПКИ (МЕНЯЙТЕ ЦИФРЫ И ЦВЕТА ЗДЕСЬ)
   ========================================================================== */
:root {
    --b2b-btn-bg: #222222;        /* Цвет базовой кнопки "В КОРЗИНУ" */
    --b2b-btn-color: #ffffff;     /* Цвет текста базовой кнопки */
    --b2b-radius: 4px;            /* Скругление (border-radius) для ВСЕХ кнопок системы */
    --b2b-counter-bg: #ffffff;    /* Фон открытого счетчика-дисплея */
    --b2b-counter-border: #ccc;   /* Рамка счетчика-дисплея */
    --b2b-accent: #137333;        /* Акцентный цвет (зеленый для подтверждений и анимаций) */
}

/* Стили большой базовой плашки кнопки */
.custom-catalog-submit-button, 
.single-product .woocommerce-variation-add-to-cart .single_add_to_cart_button {
    display: block !important;
    width: 100% !important;
    background-color: var(--var-bg, var(--b2b-btn-bg)) !important;
    color: var(--b2b-btn-color) !important;
    text-transform: uppercase !important;
    font-size: 11px !important;
    font-weight: bold !important;
    padding: 11px 0 !important;
    border: none !important;
    border-radius: var(--b2b-radius) !important;
    margin-top: 10px !important;
    cursor: pointer !important;
    text-align: center !important;
    transition: all 0.2s ease-in-out !important;
}

/* Состояние счетчика-дисплея */
.custom-catalog-submit-button.is-counter,
.single-product .woocommerce-variation-add-to-cart.is-transformed .quantity {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 0 !important;
    border: 1px solid var(--b2b-counter-border) !important;
    background-color: var(--b2b-counter-bg) !important;
    border-radius: var(--b2b-radius) !important;
    height: 36px !important;
    overflow: hidden !important;
}

.custom-catalog-submit-button.is-counter .qty-btn {
    width: 35px !important;
    height: 100% !important;
    background-color: #f5f5f5 !important;
    color: #222222 !important;
    font-size: 16px !important;
    line-height: 34px !important;
    text-align: center !important;
    cursor: pointer !important;
}

/* Фиксируем стиль дисплея счетчика, чтобы при AJAX ничего не прыгало */
.custom-catalog-submit-button.is-counter .qty-num {
    flex-grow: 1 !important;
    color: #222222 !important;
    font-weight: bold !important;
    text-align: center !important;
    line-height: 34px !important;
    background-color: var(--b2b-counter-bg) !important; /* Белый фон */
    opacity: 1;
    transition: opacity 0.15s ease-in-out;
}

/* СТРОГОЕ ВСПЛЫВАЮЩЕЕ ПРЕДУПРЕЖДЕНИЕ НАД КНОПКОЙ */
.b2b-strict-alert {
    position: absolute;
    bottom: 50px;
    left: 5%;
    width: 90%;
    background-color: #ffffff;
    border: 2px solid var(--b2b-btn-bg);
    border-radius: var(--b2b-radius);
    padding: 10px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.2);
    z-index: 9999;
    text-align: center;
    display: none;
}
.b2b-strict-alert p {
    font-size: 11px !important;
    line-height: 1.3em !important;
    margin: 0 0 8px 0 !important;
    color: #222222 !important;
    font-weight: 600 !important;
}
.b2b-alert-actions {
    display: flex;
    justify-content: center;
    gap: 10px;
}
.b2b-alert-actions button {
    padding: 3px 12px !important;
    font-size: 10px !important;
    font-weight: bold !important;
    border-radius: 3px !important;
    cursor: pointer !important;
}
.b2b-confirm-yes {
    background-color: var(--b2b-accent) !important;
    color: #fff !important;
    border: none !important;
}
.b2b-confirm-no {
    background-color: #f5f5f5 !important;
    color: #222222 !important;
    border: 1px solid #ccc !important;
}

/* АНИМАЦИЯ ДЛЯ ЦЕНЫ (ПУЛЬСАЦИЯ) */
.price-pulse {
    animation: b2bPulse 0.3s ease-in-out;
}
@keyframes b2bPulse {
    0% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.5; transform: scale(1.04); color: var(--b2b-accent); }
    100% { opacity: 1; transform: scale(1); }
}

/* АНИМАЦИЯ ВСПЛЫВАЮЩЕЙ ЦИФРЫ +1 */
.plus-one-anim {
    position: absolute;
    color: var(--b2b-accent);
    font-weight: bold;
    font-size: 14px;
    right: 15px;
    top: -15px;
    animation: plusOneFloat 0.8s ease-out forwards;
}
@keyframes plusOneFloat {
    0% { opacity: 1; transform: translateY(0); }
    100% { opacity: 0; transform: translateY(-25px); }
}

/* Оформление раскрывающегося комментария на чекауте */
.b2b-checkout-comments-toggle {
    border: 1px solid #ccc;
    border-radius: var(--b2b-radius);
    padding: 10px;
    margin: 15px 0;
    background: #fafafa;
}
.b2b-checkout-comments-toggle summary {
    font-weight: bold;
    cursor: pointer;
    outline: none;
}
.b2b-comments-inside {
    margin-top: 10px;
}



/* ==========================================================================
   КОРРЕКЦИЯ СТРАНИЦЫ ОФОРМЛЕНИЯ ЗАКАЗА ДЛЯ B2B (OCEANWP)
   ========================================================================== */

/* Скрываем всю лишнюю платежную географию для авторизованных клиентов, оставляя только контакты */
.logged-in .woocommerce-billing-fields__field-wrapper > p:not(#billing_email_field):not(#billing_phone_field) {
    display: none !important;
}

/* Намертво убираем чекбокс "Использовать этот адрес для выставления счетов" и блоки счетов */
.logged-in #ship-to-different-address,
.logged-in .shipping-address-checkbox-wrap,
.logged-in .woocommerce-account-fields {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Принудительно держим блок доставки развернутым на экране */
.logged-in .shipping_address {
    display: block !important;
}

/* Красивое оформление ссылки возврата в корзину */
.b2b-back-to-cart-wrap {
    width: 100% !important;
    margin-bottom: 20px !important;
    display: block !important;
    clear: both !important;
}
.b2b-back-to-cart-link {
    display: inline-block !important;
    color: #666 !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    transition: color 0.2s ease;
}
.b2b-back-to-cart-link:hover {
    color: #222 !important;
    text-decoration: underline !important;
}





/* ==========================================================================
   ПОЛНОЕ УНИЧТОЖЕНИЕ ПЕРЕЧЕРКНУТЫХ КНОПОК ДЛЯ РОЗНИЦЫ (GUESTS)
   ========================================================================== */

/* Если на сайт зашел неавторизованный гость, мы намертво скрываем 
   любые кнопки вариаций, которые WooCommerce или тема пометили как заблокированные */
body:not(.logged-in) .swatch.disabled,
body:not(.logged-in) .variable-item.disabled,
body:not(.logged-in) .variable-item.out-of-stock,
body:not(.logged-in) .swatch.out-of-stock,
body:not(.logged-in) .swatches-container .disabled {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Скрываем служебное текстовое уведомление темы OceanWP о недоступности товара */
body:not(.logged-in) .woocommerce-variation-availability {
    display: none !important;
}


/* Намертво убираем уведомление о недоступности PRO-товара для гостей */
body:not(.logged-in) .woocommerce-variation-availability,
body:not(.logged-in) .single_variation .woocommerce-variation-availability,
body:not(.logged-in) .woocommerce-Variation-not-available {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
}






/* ==========================================================================
   УЛЬТИМАТИВНЫЙ CSS ЧИСТИЛЬЩИК ФАСАДА ДЛЯ ОТКРЫТОГО МАГАЗИНА (ГОСТИ)
   ========================================================================== */

/* 1. Если у товара нет розничных вариаций — полностью стираем КАРТОЧКУ ТОВАРА */
body:not(.logged-in) .products li.product.b2b-only-pro-product {
    display: none !important;
}

/* 2. Намертво скрываем текстовые уведомления темы о недоступности PRO-товаров */
body:not(.logged-in) .woocommerce-variation-availability,
body:not(.logged-in) .single_variation .woocommerce-variation-availability,
body:not(.logged-in) .woocommerce-Variation-not-available {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    height: 0 !important;
}

/* 3. ОЧИЩАЕМ ФАСАД: Намертво скрываем кнопки объемов, которые не имеют розничного доступа.
   Тема OceanWP и плагин свотчей добавляют им классы disabled, out-of-stock или скрывают цену */
body:not(.logged-in) .variations_form .swatch.disabled,
body:not(.logged-in) .variations_form .swatch.out-of-stock,
body:not(.logged-in) .variations_form .variable-item.disabled,
body:not(.logged-in) .variations_form .variable-item.out-of-stock,
body:not(.logged-in) .variations_form .swatch:not(.active):not(.selected):has(span:empty) {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    opacity: 0 !important;
    visibility: hidden !important;
}

/* 4. ЕСЛИ КНОПКА РОЗНИЧНОГО ОБЪЕМА ОСТАЛАСЬ ВСЕГО ОДНА (ПОСЛЕ СКРЫТИЯ ОПТОВОЙ) */
/* Мы делаем её черной и отключаем лишнюю кликабельность, превращая в красивую плашку инфо */
body:not(.logged-in) .variations_form .swatch.active,
body:not(.logged-in) .variations_form .swatch.selected,
body:not(.logged-in) .variations_form .variable-item.active,
body:not(.logged-in) .variations_form .variable-item.selected {
    background-color: #222222 !important; /* Наш черный бренд-цвет выбранной кнопки */
    color: #ffffff !important;             /* Белый текст */
    border-color: #222222 !important;
    font-weight: bold !important;
    cursor: default !important;
    pointer-events: none !important;        /* Полностью отключаем кликабельность */
}

body:not(.logged-in) .variations_form ul li:not(.selected) { display: none !important; }






/* ==========================================================================
   КЛАССИЧЕСКАЯ 3-КОЛОНОЧНАЯ B2B ТАБЛИЦА ОБЪЕМОВ (СТРАНИЦА ТОВАРА)
   ========================================================================== */

/* 1. Намертво убираем старые свотчи, дублирующий SKU и верхнюю БОЛЬШУЮ ЦЕНУ товара */
.single-product table.variations,
.single-product .woocommerce-variation-add-to-cart,
.single-product .single_add_to_cart_button,
.single-product span.sku_wrapper,
.single-product .product_meta .sku_wrapper,
.single-product .summary .price-wrap,
.single-product .summary > .price {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
}

/* 2. Контейнер и структура таблицы */
.b2b-variations-table-container {
    width: 100% !important;
    margin: 20px 0 !important;
    display: block !important;
    clear: both !important;
}

.b2b-single-product-table {
    width: 100% !important;
    border-collapse: collapse !important;
}

/* Заголовки категорий («для салона», «для дома») */
.b2b-table-heading-row td {
    padding: 20px 0 8px 0 !important;
    font-size: 12px !important;
    font-style: italic;
    letter-spacing: 0.5px !important;
    color: #777777 !important;
    /* text-transform: uppercase !important;
    font-weight: bold !important;
    border-bottom: 2px solid #222222 !important;
    */
}

/* Основные ячейки */
.b2b-product-var-row td {
    padding: 12px 0 !important;
   /* border-bottom: 1px solid #eeeeee !important; */
    vertical-align: middle !important;
}

table th, table td {
    border-bottom: none !important;
}

tr.b2b-product-var-row {
    border-bottom: 2px solid silver !important;
}



/* Колонка 1: Свободный флекс для объема слева и артикула справа */
.b2b-col-info {
    /* width: 45% !important;
    display: flex !important;
    justify-content: space-between !important;

    align-items: center !important;
    padding-right: 35px !important; 
    box-sizing: border-box !important;
    */
}

.b2b-var-volume {
    font-size: 15px;
    font-weight: 600;
    color: #222222;
    line-height: 15px;
    vertical-align: baseline;
}

.b2b-var-sku {
    font-size: 12px;
    font-style: normal;
    color: black;
    background: WhiteSmoke;
    padding: 2px 7px;
    border-radius: 3px;
    font-weight: normal; 
    text-transform: none;
}

.b2b-var-sku2 {
    font-size: 11px !important;
    font-style: normal;
    color: DimGray !important;
    border:none;
    float: right; 
    font-weight: normal; 
    text-transform: none;
}



/* Колонка 2: Цена объема */
.b2b-col-price {
    width: 25% !important;
    font-size: 16px !important;
    font-weight: bold !important;
    color: #222222 !important;
    text-align: left !important;
}

/* Колонка 3: Наша кнопка-дисплей */
.b2b-col-action {
    width: 30% !important;
    text-align: right !important;
}

/* Оформление кнопок */
.b2b-table-btn {
    display: inline-flex !important;
    width: 100% !important;
    max-width: 130px !important;
    height: 36px !important;
    background-color: #222222 !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 4px !important;
    font-size: 11px !important;
    font-weight: bold !important;
    text-transform: uppercase !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
}

.b2b-table-btn.is-counter {
    background-color: #ffffff !important;
    border: 1px solid #cccccc !important;
    color: #222222 !important;
    justify-content: space-between !important;
    padding: 0 !important;
    overflow: hidden !important;
}

.b2b-table-qty-btn {
    width: 35px !important;
    height: 100% !important;
    background: #f5f5f5 !important;
    font-size: 16px !important;
    line-height: 34px !important;
    text-align: center !important;
    user-select: none !important;
}

.b2b-table-qty-num {
    flex-grow: 1 !important;
    text-align: center !important;
    font-weight: bold !important;
}
