.cart-bmb-club {
    display: flex;
    gap: 5px;
    align-items: center;
    padding: 4px 17px;
    width: fit-content;
    font-family: var(--font-family);
    font-weight: 700;
    font-size: 12px;
    line-height: 110%;
    text-align: center;
    border-radius: 30px;
}

/* Телефон: статичный код страны вместо виджета intl-tel-input */
.phone-field {
    position: relative;
}

.phone-field .phone-prefix {
    position: absolute;
    top: 50%;
    left: 12px;
    transform: translateY(-50%);
    color: #767676;
    pointer-events: none;
}

.phone-field .tel {
    padding-left: 56px;
}

/* Итоги заказа и список товаров пересчитываются после /cart/update */
.cart-total-block,
.b-items {
    transition: filter 0.2s ease;
}

.cart-total-block.is-loading,
.b-items.is-loading {
    filter: blur(3px);
    pointer-events: none;
    user-select: none;
    /* Страховка: если JS не загрузился и класс не сняли, через 8 с блок снова доступен */
    animation: cart-loading-timeout 0s linear 8s forwards;
}

@keyframes cart-loading-timeout {
    to {
        filter: none;
        pointer-events: auto;
        user-select: auto;
    }
}

/* Текст выбранного способа доставки (cart_checkout.js): style_cart.css прячет .text-delivery ul, когда способ выбран */
.switcher-content .block-items .block-product:not(.product-sold):has(.product-checked:checked) .item-block-delivery:has(label input[data-id]:checked) .text-delivery .delivery-label {
    display: block;
}

/* Интервалы доставки (cart_checkout.js: has-intervals). style_cart.css показывает блок только при data-use-date у способа */
.switcher-content .block-slider-standart.has-intervals {
    display: block;
    margin-top: 20px;
}
.switcher-content .block-slider-standart.has-intervals .dynamic-select-date {
    display: flex;
    flex-direction: row-reverse;
    white-space: nowrap;
    align-items: center;
    width: max-content;
    gap: 10px;
}
.switcher-content .block-slider-standart.has-intervals .dynamic-select-date .hidden-span {
    display: block;
}

/* Подъём на этаж: .block-lift-floor только при getting_up_data.enable_option = true (cart_checkout.js: lift-floor-enabled) */
.switcher-content:not(.lift-floor-enabled) .block-lift-floor {
    display: none !important;
}

/* Галочка подъёма в шаге адреса — по getting_up_data.enable_option, а не по data-lift-floor у способа:
   при бесплатном подъёме getting_up_text (и data-lift-floor) не приходит */
.switcher-content.page-2.lift-floor-enabled [class*=page-delivery] .uk-accordion > li .uk-accordion-content .block-lift-floor {
    display: block;
}
.switcher-content .page-delivery .block-lift-floor .lift-floor-free,
.switcher-content.lift-floor-free .page-delivery .block-lift-floor .lift-floor-paid {
    display: none;
}
.switcher-content.lift-floor-free .page-delivery .block-lift-floor span.lift-floor-free {
    display: inline;
}
.switcher-content.lift-floor-free .page-delivery .block-lift-floor p.lift-floor-free {
    display: block;
}

/* «Оформить заказ» выключена: отмечена услуга без её товара (cart_checkout.js: hasServicesWithoutProduct) */
.switcher-content .block-price .btn-checkout.uk-disabled {
    opacity: 0.5;
}

/* Способы оплаты: настоящая радиокнопка стоит в top/left 50% подписи и прячется за её фоном (style_cart.css).
   У способа без описания подпись в одну строку — кнопка вылезает из-под фона. Прячем её саму;
   кружок рисует label:before, фокус с клавиатуры — его обводкой */
.switcher-content .type-payment label input[type="radio"] {
    opacity: 0;
}
.switcher-content.page-2 [class*=page-delivery] .uk-accordion > li .uk-accordion-content .type-payment label:has(input:focus-visible):before {
    outline: 2px solid #575656;
}
