@media (min-width: 1280px) {
    .checkout-grid__col--full {
        -ms-flex: 0 0 100%;
        flex: 0 0 100%;
        max-width: 100%;
    }
}

.step-list__item--extended {
    -ms-flex: 1 0 25%;
    flex: 1 0 25%;
    max-width: 250%;
}

/* Текст "Поля, отмеченные звёздочкой (*)..." — крупнее на 2px базового */
.checkout-grid__disclaimer .content--size_small {
    font-size: 16px;
}

.account-order-cancel {
    margin-top: 12px;
}

/* Правка 21: кнопка "Добавлено" в каталоге — серая в стилистике сайта,
   а не зелёная (используется цвет, что и у остальных ghost_gray-кнопок) */
.btn--added,
.btn--added:hover {
    background-color: #969696;
    border-color: #969696;
    color: #FFFFFF;
}

@media (min-width: 1280px) {
    .btn--theme_ghost.btn--size_adaptive {
        padding: 16px 32px;
    }
}

.cart-list__info {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding-left: 12px;
    border-top: 1px solid #d9d9d9;
    margin-top: 12px;
    padding-top: 12px;
}

.cart-list__info li {
    display: grid;
    grid-template-columns: 1fr 4fr;
    align-items: center;
    gap: 16px;
}

.cart-list__info li p {
    font-size: 14px;
    line-height: 21px;
    margin: 0;
}

.cart-list__info li p:nth-child(1) {
    color: gray;
}

@media (max-width: 1280px) {
    .cart-list__info {
        margin-bottom: 16px;
    }
}

@media (max-width: 1024px) {
    .cart-list__info li {
        grid-template-columns: 2fr 4fr;
    }
}

@media (max-width: 768px) {
    .cart-list__info li {
        grid-template-columns: 1fr;
        gap: 4px;
    }
}

.account-form__panel {
    overflow: hidden;
    max-height: 600px;
    opacity: 1;
    transition: max-height 0.35s ease, opacity 0.35s ease;
}

.account-form__panel--hidden {
    max-height: 0;
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
    transition: max-height 0.35s ease, opacity 0.25s ease, visibility 0s linear 0.35s;
}

.account-form__panel--visible {
    visibility: visible;
    transition: max-height 0.35s ease, opacity 0.35s ease 0.05s;
}

.ui-panel__btn {
    display: none;
}

.checkout-hidden {
    display: none;
}

.form-select.invalid + .ss-main {
    border-color: #d8544f;
}

.checkout-pay-error {
    margin-top: 8px;
    font-size: 13px;
    color: #d8544f;
}

/* Правка 5/6/7: обязательные поля должны быть заметны, а текст ошибки —
   реально показываться (main.css скрывает .form-input__error по умолчанию
   и никогда не включает его обратно). Скоуп на .checkout-grid, чтобы не
   зацепить остальные формы сайта (order.css подключается глобально). */
.checkout-grid .form-grid__label span,
.checkout-grid .checkout-required-mark {
    color: #d8544f;
    font-size: 20px;
    line-height: 1;
    vertical-align: middle;
}

/* Подпись под полем красным; показывается/скрывается через JS
   (order.js: markInputValidity/showEmptyHint) — сразу как подсказка для
   пустых полей, конкретной ошибкой после blur, и пропадает при заполнении */
.checkout-grid .form-input__error {
    color: #d8544f;
}

/* То же самое (звёздочки/подпись под полем) — для обязательных полей
   в профиле личного кабинета (Фамилия, Имя, Телефон, Email) */
.account-profile-form .form-grid__label span {
    color: #d8544f;
    font-size: 20px;
    line-height: 1;
    vertical-align: middle;
}

.account-profile-form .form-input__error {
    color: #d8544f;
}

.account-profile-form__disclaimer {
    font-size: 16px;
    color: #3E3D3D;
    margin-bottom: 4px;
}

.checkout-min-order-note {
    margin-bottom: 16px;
    padding: 12px 16px;
    background: #fdf0ef;
    border: 1px solid #f0c4c1;
    border-radius: 8px;
    color: #d8544f;
    font-size: 14px;
}

.checkout-delivery {
    position: relative;
    min-height: 40px;
}

@keyframes checkout-spin {
    to {
        transform: rotate(360deg);
    }
}

.checkout-inline-loader {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: #888;
}

.checkout-inline-loader::before {
    content: "";
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    border: 2px solid #d9d9d9;
    border-top-color: #9c7246;
    border-radius: 50%;
    animation: checkout-spin 0.8s linear infinite;
}

/* Правка 19: промокод на чек-ауте */
.checkout-promo {
    margin-bottom: 16px;
}

.checkout-promo__row {
    display: flex;
    gap: 8px;
}

.checkout-promo__input {
    flex: 1 1 auto;
    min-width: 0;
    border-radius: 6px;
    border: 1px solid rgba(0, 0, 0, 0.15);
}

.checkout-promo__btn {
    flex: 0 0 auto;
    white-space: nowrap;
}

.checkout-promo__message {
    margin-top: 6px;
    font-size: 13px;
    min-height: 16px;
}

.checkout-promo__message--error {
    color: #d8544f;
}

.checkout-promo__message--success {
    color: #4a9c5d;
}

/* Правка 18: подтверждение смены email в профиле */
.account-profile-form__email-code-actions {
    display: flex;
    gap: 8px;
    margin-top: 8px;
}

/* Правка (адаптив шапки): на мобильных .page-header__social рендерился
   прямо в строке шапки (flex-nowrap) вместе с телефоном/почтой
   (.page-header__contacts) и иконками корзины/аккаунта (.page-header__btn-list,
   тоже внутри .page-header__social) — 4 иконки соцсетей туда физически не
   помещались, из-за чего шапка "плыла"/переносилась криво. Прячем соцсети
   в строке шапки и дублируем их в подвале бургер-меню
   (.page-header__nav-footer) — там они появляются только при открытии
   меню. Корзину и аккаунт (.page-header__btn-list) в шапке не трогаем —
   это самостоятельные iconography-кнопки, а не соцсети. */
@media (max-width: 1279px) {
    .page-header__social > .social-list {
        display: none;
    }
}

.page-header__nav-footer-social {
    margin-bottom: 16px;
}

.page-header__nav-footer-social .social-list__list {
    justify-content: center;
}

/* Правка 22/25: юридическая информация в футере */
.page-footer__col--legal {
    margin-top: 24px;
}

.page-footer__legal-address {
    font-size: 12px;
    line-height: 1.5;
    color: #969696;
    margin-bottom: 12px;
}

.page-footer__legal-links {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 8px 20px;
}

.page-footer__legal-links li {
    margin-bottom: 0;
}

.page-footer__legal-links a {
    font-size: 14px;
    color: #969696;
    text-decoration: none;
    transition: opacity 0.3s;
}

.page-footer__legal-links a:hover {
    opacity: 0.7;
}

.page-footer__legal-links a:hover {
    color: #3E3D3D;
}

/* Правка 22: баннер согласия на использование cookie / Яндекс.Метрики */
.cookie-consent-banner {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 9999;
    background: rgba(35, 35, 35, 0.85);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    color: #fff;
    padding: 16px 20px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 16px;
}

/* [hidden] сам по себе перебивается правилом .cookie-consent-banner{display:flex}
   выше (та же специфичность, но наше правило — авторское, а не UA-стиль) —
   без этого баннер JS'ом не скрывался ни при загрузке, ни по клику */
.cookie-consent-banner[hidden] {
    display: none;
}

.cookie-consent-banner__text {
    font-size: 13px;
    line-height: 1.5;
    max-width: 640px;
    flex: 1 1 320px;
}

.cookie-consent-banner__text a {
    color: #fff;
    text-decoration: none;
    opacity: 0.7;
    transition: opacity 0.3s;
}

.cookie-consent-banner__text a:hover {
    opacity: 1;
}

.cookie-consent-banner__actions {
    display: flex;
    gap: 8px;
    flex: 0 0 auto;
}

.cookie-consent-banner__btn {
    white-space: nowrap;
}

.cookie-consent-banner__btn--accept {
    background-color: #000000;
    color: #ffffff;
    border-color: #000000;
}

.cookie-consent-banner__btn--accept:hover {
    background-color: rgba(0, 0, 0, 0.7);
    border-color: rgba(0, 0, 0, 0.7);
    color: #ffffff;
}

.cookie-consent-banner__btn--decline.btn--theme_ghost {
    color: #ffffff;
    border-color: #ffffff;
    background-color: transparent;
}

.cookie-consent-banner__btn--decline.btn--theme_ghost:hover {
    color: #232323;
    background-color: #ffffff;
    border-color: #ffffff;
}

.checkout-autocomplete-list {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    z-index: 1000;
    width: 100%;
    max-height: 220px;
    overflow-y: auto;
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.checkout-delivery__note {
    margin-top: 4px;
    font-size: 13px;
    color: #888;
}

.checkout-map {
    width: 100%;
    position: relative;
    border-radius: 8px;
}

@media (min-width: 1280px) {
    .checkout-grid__body > .checkout-grid__row {
        align-items: flex-start;
    }

    .checkout-grid__col--aside {
        position: sticky;
        top: calc(var(--hh, 88px) + 16px);
    }
}

.ss-main .ss-values .ss-single,
.ss-main .ss-values .ss-placeholder,
.ss-content .ss-list .ss-option {
    font-size: 14px !important;
}

@media (min-width: 1280px) {
    .ss-main .ss-values .ss-single,
    .ss-main .ss-values .ss-placeholder,
    .ss-content .ss-list .ss-option {
        font-size: 16px !important;
    }
}

#city-autocomplete-list::-webkit-scrollbar,
#pudo-autocomplete-list::-webkit-scrollbar,
#courier-city-autocomplete-list::-webkit-scrollbar {
    width: 4px;
}

#city-autocomplete-list::-webkit-scrollbar-track,
#pudo-autocomplete-list::-webkit-scrollbar-track,
#courier-city-autocomplete-list::-webkit-scrollbar-track {
    background-color: #fff;
}

#city-autocomplete-list::-webkit-scrollbar-thumb,
#pudo-autocomplete-list::-webkit-scrollbar-thumb,
#courier-city-autocomplete-list::-webkit-scrollbar-thumb {
    background-color: rgba(0, 0, 0, 0.3);
    border-radius: 6px;
}