/*
Theme Name: Astra Child
Theme URI: https://barnadom24.ru
Template: astra
Author: Barnadom24
Version: 1.0.2
License: GNU General Public License v2 or later
Text Domain: astra-child
*/

/* === Header Fixes for Barnadom24 === */

/* 0. Logo: force site-branding to have dimensions */
[data-section="title_tagline"] .site-branding.ast-site-identity {
    display: flex !important;
    align-items: center;
    min-height: 42px;
    min-width: 150px;
}
.site-branding.ast-site-identity .custom-logo {
    height: 42px !important;
    width: auto !important;
    max-width: 200px;
}
.site-branding.ast-site-identity .custom-logo-link {
    display: flex;
    align-items: center;
}

/* 1. Menu: force single line, smaller font */
.ast-below-header-bar .main-header-menu {
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}
.ast-below-header-bar .main-header-menu::-webkit-scrollbar {
    display: none;
}
.main-header-menu .menu-item {
    flex-shrink: 0 !important;
    white-space: nowrap !important;
}
.main-header-menu .menu-link {
    font-size: 13px !important;
    padding: 0 8px !important;
    letter-spacing: 0.3px;
}

/* 2. Below header: horizontal scroll for many items */
.ast-below-header-bar {
    overflow-x: auto !important;
}
.ast-below-header-bar .ast-container {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* 3. Primary header: better alignment */
.ast-primary-header-bar .ast-container {
    display: flex;
    align-items: center;
    justify-content: flex-end;
}

/* 4. Phone number styling */
.ast-header-html-1 .ast-builder-html-element {
    font-size: 18pt;
    color: #ffffff;
    font-weight: 600;
}
.ast-header-html-1 .ast-builder-html-element a {
    color: #ffffff !important;
    text-decoration: none !important;
}

/* 5. Social icons spacing */
.ast-header-html-2 .ast-builder-html-element {
    display: flex;
    align-items: center;
    gap: 8px;
}
.ast-header-html-2 img {
    width: 35px;
    height: 35px;
}

/* 6. Cart icon in above header */
.ast-above-header-bar {
    min-height: 35px !important;
}
.ast-above-header-bar .ast-container {
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

/* 7. Mobile header improvements */
@media (max-width: 544px) {
    .ast-primary-header-bar .ast-container {
        padding: 5px 15px !important;
    }
    .ast-header-html-1 .ast-builder-html-element {
        font-size: 14pt !important;
    }
    /* Mobile: force site-branding visible */
    [data-section="title_tagline"] .site-branding.ast-site-identity {
        min-height: 35px;
        min-width: 120px;
    }
    .site-branding.ast-site-identity .custom-logo {
        height: 35px !important;
    }
}

/* 8. Search icon alignment */
.ast-header-search .ast-search-menu-icon {
    display: flex;
    align-items: center;
}

/* 9. Desktop: hide above header cart */
@media (min-width: 922px) {
    .ast-above-header-bar .ast-header-woo-cart {
        display: none;
    }
}

/* 10. Dropdown menus: compact */
.main-header-menu .sub-menu .menu-link {
    font-size: 12px !important;
    padding: 5px 12px !important;
}

/* 11. Категории на телефоне: заголовок сверху, товары сразу, длинный текст — под сеткой */
@media (max-width: 544px) {
    .ast-woocommerce-container {
        display: flex;
        flex-direction: column;
    }
    .ast-woocommerce-container > header.woocommerce-products-header {
        display: contents;
    }
    .ast-woocommerce-container > form.woocommerce-ordering,
    .ast-woocommerce-container > p.woocommerce-result-count {
        order: 1;
    }
    .ast-woocommerce-container > ul.products {
        order: 2;
    }
    .ast-woocommerce-container > nav.woocommerce-pagination {
        order: 3;
    }
    .ast-woocommerce-container .term-description {
        order: 4;
        margin-top: 1.5em;
    }
}

/* 12. Корзина на телефоне: вместо таблицы с боковой прокруткой — карточки товара.
   Штатный CSS темы (Astra, селекторы с #content) и WooCommerce (!important)
   перебивает обычные селекторы — поэтому здесь осознанно подняты и специфичность
   (добавлен #content), и !important там, где это требуется. */
@media (max-width: 544px) {
    .woocommerce-cart-form table.shop_table_responsive {
        display: block !important;
        border: 0;
        table-layout: auto;
    }
    .woocommerce-cart-form table.shop_table_responsive thead {
        display: none !important;
    }
    .woocommerce-cart-form table.shop_table_responsive tbody {
        display: block;
    }
    .woocommerce-cart-form table.shop_table_responsive tr.cart_item {
        display: block;
        position: relative;
        padding: 14px 44px 14px 14px;
        margin-bottom: 14px;
        border: 1px solid var(--ast-border-color);
        border-radius: 10px;
        background: #fff;
    }
    .woocommerce-page.woocommerce-cart .woocommerce-cart-form table.shop_table_responsive tr td,
    .woocommerce-cart-form table.shop_table_responsive tr td {
        display: block;
        border: 0;
        padding: 0;
        text-align: left !important;
    }
    .woocommerce-cart-form table.shop_table_responsive td.product-name dl.variation {
        margin: 6px 0 0;
        font-size: 13px;
        color: #6b7280;
    }
    .woocommerce-cart-form table.shop_table_responsive td.product-name dl.variation dt,
    .woocommerce-cart-form table.shop_table_responsive td.product-name dl.variation dd {
        display: inline;
        margin: 0;
        padding: 0;
        font-weight: 400;
    }
    .woocommerce-cart-form table.shop_table_responsive td.product-name dl.variation dd p {
        display: inline;
        margin: 0;
    }
    .woocommerce-cart-form table.shop_table_responsive td.product-remove {
        position: absolute;
        top: 8px;
        right: 8px;
        width: auto;
        padding: 0;
    }
    .woocommerce-cart-form table.shop_table_responsive td.product-remove a.remove {
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        width: 30px;
        height: 30px;
    }
    .woocommerce-page #content .woocommerce-cart-form table.shop_table_responsive td.product-thumbnail {
        display: none !important;
    }
    .woocommerce-cart-form table.shop_table_responsive td.product-name {
        font-size: 16px;
        font-weight: 700;
        line-height: 1.35;
        margin-bottom: 10px;
        padding-right: 68px;
        text-align: left !important;
    }
    .woocommerce-cart-form table.shop_table_responsive td.product-price::before {
        content: "Цена:\00a0";
        color: #6b7280;
    }
    /* Подписи «Товар:» и «Количество:» приходят из CSS WooCommerce как attr(data-title) ": ".
       Обычный пробел в конце строки обрезается (псевдоэлемент плавающий), поэтому
       ставим неразрывный: иначе значение идёт вплотную к двоеточию. */
    .woocommerce-cart-form table.shop_table_responsive td.product-name::before,
    .woocommerce-cart-form table.shop_table_responsive td.product-quantity::before {
        content: attr(data-title) ":\00a0";
    }
    .woocommerce-page.woocommerce-cart .woocommerce-cart-form table.shop_table_responsive tr td.product-subtotal,
    .woocommerce-cart-form table.shop_table_responsive tr td.product-subtotal {
        display: inline-block;
        margin-top: 10px;
        font-size: 16px;
        font-weight: 700;
    }
    .woocommerce-cart-form table.shop_table_responsive td.product-subtotal::before {
        content: "Итого:\00a0";
        color: #6b7280;
        font-weight: 400;
    }
    .woocommerce-cart-form table.shop_table_responsive td.product-quantity {
        margin-top: 10px;
    }
    .woocommerce-cart-form table.shop_table_responsive td.product-quantity .quantity {
        display: inline-flex;
        align-items: center;
    }
    .woocommerce-cart-form table.shop_table_responsive td.product-quantity .quantity .qty {
        width: 82px;
        text-align: center;
    }
    .woocommerce-cart-form table.shop_table_responsive td.actions {
        display: block;
        padding: 4px 0 0;
    }
    .woocommerce-cart-form table.shop_table_responsive td.actions .coupon {
        display: block;
        margin-bottom: 10px;
    }
    .woocommerce-cart-form table.shop_table_responsive td.actions .coupon .input-text {
        width: 100%;
        margin-bottom: 8px;
    }
    /* Кнопка «Обновить корзину» лежит в <p> внутри td.actions (не прямым потомком).
       WooCommerce задаёт ей margin-left:5px — вместе с шириной 100% она вылезает
       на 5px за таблицу, и у таблицы (overflow-x:auto) появляется горизонтальная
       прокрутка под кнопкой. #content нужен, чтобы перебить правило WooCommerce. */
    .woocommerce-page #content .woocommerce-cart-form table.shop_table_responsive td.actions .button,
    .woocommerce-cart-form table.shop_table_responsive td.actions .button {
        width: 100%;
        max-width: 100%;
        margin-left: 0;
        margin-right: 0;
    }
}

/* 13. «Сумма корзины» на телефоне: подписи строк возвращаются, значения
   не уезжают за край, доставка переносится и не обрезается.
   Причина дефекта: WooCommerce на телефоне прячет th (tbody th{display:none}),
   а широкий select страны в калькуляторе распирает ячейку до 432px —
   значения с text-align:right уходят за правый край. */
@media (max-width: 544px) {
    .woocommerce-page.woocommerce-cart .cart-collaterals .cart_totals table.shop_table_responsive,
    .cart-collaterals .cart_totals table.shop_table_responsive {
        display: block;
        width: 100%;
        max-width: 100%;
    }
    .woocommerce-page.woocommerce-cart .cart-collaterals .cart_totals table.shop_table_responsive tbody,
    .cart-collaterals .cart_totals table.shop_table_responsive tbody {
        display: block;
    }
    .woocommerce-page.woocommerce-cart .cart-collaterals .cart_totals table.shop_table_responsive tr,
    .cart-collaterals .cart_totals table.shop_table_responsive tr {
        display: block;
        margin: 0 0 12px;
        padding: 12px 14px;
        border: 1px solid var(--ast-border-color);
        border-radius: 10px;
        background: #fff;
    }
    .woocommerce-page.woocommerce-cart .cart-collaterals .cart_totals table.shop_table_responsive tbody th,
    .cart-collaterals .cart_totals table.shop_table_responsive tbody th {
        display: block !important;
        width: auto;
        border: 0;
        padding: 0 0 4px;
        background: none;
        text-align: left !important;
        font-size: 13px;
        font-weight: 400;
        color: #6b7280;
    }
    .woocommerce-page.woocommerce-cart .cart-collaterals .cart_totals table.shop_table_responsive tr td,
    .cart-collaterals .cart_totals table.shop_table_responsive tr td {
        display: block;
        width: 100% !important;
        max-width: 100%;
        border: 0;
        padding: 0;
        background: none !important;
        text-align: left !important;
        overflow-wrap: break-word;
    }
    .woocommerce-page.woocommerce-cart .cart-collaterals .cart_totals table.shop_table_responsive tr td::before,
    .cart-collaterals .cart_totals table.shop_table_responsive tr td::before {
        display: none !important;
        content: none !important;
    }
    .woocommerce-page.woocommerce-cart .cart-collaterals .cart_totals ul#shipping_method,
    .cart-collaterals .cart_totals ul#shipping_method {
        margin: 0;
        padding: 0;
    }
    .woocommerce-page.woocommerce-cart .cart-collaterals .cart_totals ul#shipping_method label,
    .cart-collaterals .cart_totals ul#shipping_method label {
        display: block;
        white-space: normal;
        overflow-wrap: break-word;
    }
    .woocommerce-page.woocommerce-cart .cart-collaterals .cart_totals .woocommerce-shipping-destination,
    .cart-collaterals .cart_totals .woocommerce-shipping-destination {
        white-space: normal;
        overflow-wrap: break-word;
    }
    .woocommerce-page.woocommerce-cart .cart-collaterals .cart_totals form,
    .cart-collaterals .cart_totals form,
    .woocommerce-page.woocommerce-cart .cart-collaterals .cart_totals select:not(.select2-hidden-accessible),
    .cart-collaterals .cart_totals select:not(.select2-hidden-accessible),
    .woocommerce-page.woocommerce-cart .cart-collaterals .cart_totals .select2,
    .cart-collaterals .cart_totals .select2 {
        max-width: 100% !important;
        width: 100% !important;
    }
    .woocommerce-page.woocommerce-cart .cart-collaterals .cart_totals select.select2-hidden-accessible,
    .cart-collaterals .cart_totals select.select2-hidden-accessible {
        width: 1px !important;
        max-width: 1px !important;
    }
    .woocommerce-page.woocommerce-cart .cart-collaterals .cart_totals tr.shipping td,
    .cart-collaterals .cart_totals tr.shipping td {
        position: relative;
        overflow: hidden;
    }
}
/* ============================================================
 * BND MINI CART COMPACT (15.10.2026, план недели 2, п.4)
 * Мини-корзина (drawer) на телефоне: строка товара компактная,
 * фото маленькое слева. Причина: мини-корзина рендерится
 * Elementor-виджетом (.elementor-menu-cart__product) без его CSS —
 * блочная раскладка, фото 300x300 почти во всю ширину, строка 345px.
 * Меняем ТОЛЬКО drawer (.astra-cart-drawer) и только <922px:
 * десктоп, страница /cart/ и оформление заказа не затрагиваются.
 * Пустая корзина (BND CART EMPTY FIX) не тронута.
 * ============================================================ */
@media (max-width: 921px) {
    .astra-cart-drawer .widget_shopping_cart_content .elementor-menu-cart__product {
        display: flex !important;
        align-items: center;
        gap: 12px;
        padding: 10px 0;
    }

    .astra-cart-drawer .widget_shopping_cart_content .elementor-menu-cart__product-image {
        width: 52px !important;
        min-width: 52px !important;
        max-width: 52px !important;
        flex: 0 0 52px;
        margin: 0 !important;
        padding: 0 !important;
    }

    .astra-cart-drawer .widget_shopping_cart_content .elementor-menu-cart__product-image img {
        width: 100% !important;
        height: 52px !important;
        max-width: 52px !important;
        object-fit: contain;
        margin: 0 !important;
        vertical-align: top;
    }

    .astra-cart-drawer .widget_shopping_cart_content .elementor-menu-cart__product-name {
        flex: 1 1 auto;
        min-width: 0;
        margin: 0 !important;
        line-height: 1.3;
    }

    .astra-cart-drawer .widget_shopping_cart_content .elementor-menu-cart__product-price {
        flex: 0 0 auto;
        margin: 0 !important;
        white-space: nowrap;
    }

    .astra-cart-drawer .widget_shopping_cart_content .elementor-menu-cart__product-remove {
        flex: 0 0 auto;
        margin: 0 !important;
    }
}

/* Минимум заказа: неактивная кнопка-заглушка в корзине (19.10.2026) */
.bnd-min-order-disabled,
.bnd-min-order-disabled[disabled] {
    background: #999 !important;
    border-color: #999 !important;
    color: #fff !important;
    cursor: not-allowed;
    opacity: 1;
}
