/* ---------- Шрифт заголовков и крупных цифр: Jun (Василий Шишкин, свободная лицензия, fonts/Jun/LICENSE.txt) ---------- */
/* Начертание одно, без жирного: диапазон 100–900 отдаёт этот файл на любую толщину, и браузер не дорисовывает искусственный жирный. */
@font-face { font-family: "Jun-kalina"; font-style: normal; font-weight: 100 900; src: url("../fonts/Jun/Jun-Regular.otf") format("opentype"); font-display: swap; }
@font-face { font-family: "Jun-kalina"; font-style: italic; font-weight: 100 900; src: url("../fonts/Jun/Jun-Italic.otf") format("opentype"); font-display: swap; }

/* ---------- Дизайн-система Kalina: общие токены для шапки, корзины и оформления ---------- */
:root {
    /* Цвета */
    --kln-red: #db272e;          /* акцент: главные кнопки, выбор, бейджи */
    --kln-red-hover: #c21f26;
    --kln-red-soft: #fff5f5;     /* фон промо-строки */
    --kln-ink: #1e1e1e;          /* заголовки, суммы */
    --kln-text: #333;            /* основной текст */
    --kln-muted: #7a7a7a;        /* подписи, подсказки */
    --kln-line: #ececec;         /* рамки карточек и разделители */
    --kln-border: #dedede;       /* рамки полей и вторичных кнопок */
    --kln-border-strong: #c9c9c9;
    --kln-surface: #fafafa;      /* фон полей и служебных полос */
    --kln-soft: #faf7f6;         /* тёплая плашка: бонусы, описание доставки */
    --kln-success: #1e8a4c;
    --kln-success-soft: #e9f6ee;
    --kln-error: #b81f25;
    /* Шрифты */
    --kln-font: ProximaNova-kalina, sans-serif;
    --kln-font-head: Jun-kalina, serif;
    /* Размеры */
    --kln-r-sm: 8px;             /* поля, кнопки, плитки */
    --kln-r-md: 12px;            /* карточки */
    --kln-h-control: 46px;       /* поля и обычные кнопки */
    --kln-h-cta: 54px;           /* главная кнопка страницы */
    --kln-ring: 0 0 0 3px rgba(219, 39, 46, .12);
    /* Размеры текста: основной и подсказки — 16, подписи полей — 15, второстепенное — 14 (меньше не используем). */
    --kln-fs-body: 16px;
    --kln-fs-label: 15px;
    --kln-fs-small: 14px;
}

/* ---------- Шапка поверх main.css подрядчика ---------- */
/* Сверху вниз: красная полоса с бонусами (для гостей) → город, меню сайта, телефон → «Каталог» и поиск, логотип, иконки → разделы каталога.
   На планшете и телефоне «Каталог» — иконкой, поиск — под лупой. */

.main-header { padding: 0; background: #fff; border-bottom: 1px solid var(--kln-line); }

/* Полоса с бонусами */
.kln-promo { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 4px 14px; min-height: 38px; padding: 7px 16px; background: var(--kln-red); color: #fff; font-size: 14px; line-height: 1.35; text-align: center; text-decoration: none; transition: background-color .15s; }
.kln-promo:hover,
.kln-promo:focus { background: var(--kln-red-hover); color: #fff; text-decoration: none; }
.kln-promo b { font-weight: 700; }
.kln-promo__more { text-decoration: underline; text-underline-offset: 3px; opacity: .9; }
.kln-promo:focus-visible { outline: 2px solid #fff; outline-offset: -4px; }

/* Город, меню сайта, телефон */
.main-header .header-utility { background: var(--kln-surface); border-bottom: 1px solid var(--kln-line); }
.main-header .header-utility__inner { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 40px; }
.main-header .header-utility .head-shops { display: flex; align-items: center; gap: 6px; padding: 0; white-space: nowrap; font-size: 14px; }
.main-header .header-utility .head-shops:before { position: static; flex: 0 0 18px; width: 18px; height: 18px; background: var(--kln-muted); -webkit-mask: url(../img/icons/pin.svg) no-repeat center / contain; mask: url(../img/icons/pin.svg) no-repeat center / contain; }
.main-header .header-utility .head-shops .city { font-size: 14px; color: var(--kln-ink); }
.main-header .header-utility .head-shops .number { font-size: 14px; color: var(--kln-muted); }
.main-header .header-utility .main-menu { flex: 1 1 auto; display: flex; justify-content: center; min-width: 0; }
.main-header .main-menu > ul { display: flex; align-items: center; gap: 24px; margin: 0; padding: 0; }
.main-header .main-menu > ul > li { margin: 0; padding: 0; }
.main-header .main-menu > ul > li > a { display: block; padding: 8px 0; font-size: 14px; color: var(--kln-text); white-space: nowrap; }
.main-header .main-menu > ul > li._active > a { color: var(--kln-red); }
/* Наведение: под пунктом слева направо прорисовывается красная линия, а когда курсор уходит — уезжает вправо
   (точка опоры transform-origin меняется: при наведении слева, без наведения справа). У текущего раздела линия видна всегда. */
.main-header .main-menu > ul > li > a { position: relative; text-decoration: none; }
.main-header .main-menu > ul > li > a:hover { color: var(--kln-text); }
.main-header .main-menu > ul > li._active > a:hover { color: var(--kln-red); }
.main-header .main-menu > ul > li > a:before { left: 0; right: 0; bottom: 7px; width: auto; height: 1px; background: var(--kln-red); opacity: 1; transform: scaleX(0); transform-origin: right; transition: transform .6s cubic-bezier(.625, .05, 0, 1); }
.main-header .main-menu > ul > li > a:hover:before,
.main-header .main-menu > ul > li > a:focus-visible:before,
.main-header .main-menu > ul > li._active > a:before { left: 0; opacity: 1; transform: scaleX(1); transform-origin: left; }
@media (prefers-reduced-motion: reduce) {
    .main-header .main-menu > ul > li > a:before { transition: none; }
}
.main-header .head-contacts { display: flex; flex-direction: row; align-items: center; gap: 16px; top: auto; margin: 0; }
.main-header .head-phone { font-size: 15px; font-weight: 600; color: var(--kln-ink); white-space: nowrap; }
.main-header .head-contacts .working-mode { font-size: 14px; color: var(--kln-muted); white-space: nowrap; }
.main-header .header-messengers { display: flex; align-items: center; gap: 6px; }
.main-header .header-messengers a { display: flex; align-items: center; justify-content: center; width: 28px; height: 28px; color: var(--kln-muted); }
.main-header .header-messengers a:hover { color: var(--kln-red); }
.main-header .header-messengers svg { width: 17px; height: 17px; margin: 0; }

/* Основная строка: «Каталог» и поиск | логотип | избранное, корзина, вход. Под ней — разделы каталога. */
.main-header .main-header--container { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); grid-template-rows: auto auto; max-width: 1280px; align-items: center; column-gap: 32px; row-gap: 0; padding-top: 18px; }
.main-header .main-header__left { display: contents; }
.main-header .main-header__left .header-logo { grid-column: 2; grid-row: 1; width: 150px; height: auto; margin: 0; }
.main-header .header-logo img { display: block; width: 100%; height: auto; margin: 0; }
.main-header .kln-header-tools { grid-column: 1; grid-row: 1; display: flex; align-items: center; gap: 10px; min-width: 0; }
.main-header .main-header__right { grid-column: 3; grid-row: 1; justify-self: end; display: flex; align-items: center; gap: 22px; width: auto; margin: 0; }
.main-header .main-header__right .el-favorites,
.main-header .main-header__right .small-basket { margin: 0; color: var(--kln-ink); }
.main-header .main-header__right .el-favorites:hover,
.main-header .main-header__right .small-basket:hover { color: var(--kln-red); }
.main-header .main-header__right .header-aut { height: 40px; line-height: 40px; padding: 0 18px; box-shadow: none; }
.main-header .main-header__right .header-aut._authorized { width: 40px; padding: 0; }

/* Кнопка «Каталог» открывает панель со всеми пунктами меню и разделами. */
.main-header .kln-catalog-btn { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 8px; height: var(--kln-h-control); padding: 0 18px 0 14px; border: 0; border-radius: var(--kln-r-sm); background: var(--kln-red); color: #fff; font: inherit; font-size: 15px; font-weight: 600; cursor: pointer; transition: background-color .15s; }
.main-header .kln-catalog-btn:hover { background: var(--kln-red-hover); }
.main-header .kln-catalog-btn__icon { display: block; width: 22px; height: 22px; background: currentColor; -webkit-mask: url(../img/icons/catalog.svg) no-repeat center / contain; mask: url(../img/icons/catalog.svg) no-repeat center / contain; }

/* Иконки шапки — линейные, из одного набора; цвет берут из color. */
.main-header .el-favorites__icon,
.main-header .small-basket__icon { width: 40px; height: 40px; margin-bottom: 2px; border: 0; border-radius: 0; background: none; overflow: visible; }
.main-header .el-favorites__icon:before,
.main-header .small-basket__icon:before { left: 7px; top: 7px; width: 26px; height: 26px; background: currentColor; -webkit-mask: url(../img/icons/heart.svg) no-repeat center / contain; mask: url(../img/icons/heart.svg) no-repeat center / contain; }
.main-header .small-basket__icon:before { -webkit-mask-image: url(../img/icons/cart.svg); mask-image: url(../img/icons/cart.svg); }
.main-header .el-favorites__text,
.main-header .small-basket__text { font-size: 13px; color: var(--kln-text); }
.main-header .el-favorites__count,
.main-header .small-basket__count { width: 20px; height: 20px; line-height: 16px; border-width: 2px; font-size: 11px; top: -2px; right: -4px; }

/* Кнопка-лупа — только на планшете и телефоне. */
.main-header .kln-search-toggle { display: none; padding: 0; border: 0; background: none; font: inherit; color: var(--kln-ink); cursor: pointer; }
.main-header .kln-search-toggle .el-favorites__icon:before { -webkit-mask-image: url(../img/icons/search.svg); mask-image: url(../img/icons/search.svg); }
.main-header._search-open .kln-search-toggle { color: var(--kln-red); }

/* Поиск */
.main-header .pannel-search { flex: 0 1 270px; width: 100%; max-width: 270px; margin: 0; padding: 0; }
.main-header .el-search__input { height: var(--kln-h-control); margin: 0; padding: 0 52px 0 16px; font-size: 15px; font-style: normal; border-radius: var(--kln-r-sm); border: 1px solid var(--kln-border); background: #fff; box-shadow: none; }
.main-header .el-search__input:focus { border-color: var(--kln-red); box-shadow: var(--kln-ring); outline: none; }
.main-header .el-search .el-search__input::placeholder { font-style: normal; font-weight: 400; color: var(--kln-muted); }
.main-header .el-search .search-icon,
.main-header .el-search .search-icon:hover { height: var(--kln-h-control); width: var(--kln-h-control); top: 0; right: 0; margin-top: 0; background: var(--kln-muted); -webkit-mask: url(../img/icons/search.svg) no-repeat center / 22px; mask: url(../img/icons/search.svg) no-repeat center / 22px; }
.main-header .el-search .search-icon:hover { background: var(--kln-red); }

/* Разделы каталога, в которых есть товары */
.main-header .kln-sections { grid-column: 1 / -1; grid-row: 2; min-width: 0; margin-top: 18px; border-top: 1px solid rgba(0, 0, 0, .08); }
.main-header .kln-sections ul { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 4px 28px; margin: 0; padding: 14px 0 12px; list-style: none; } /* пункты растянуты на ширину контейнера */
.main-header .kln-sections li { margin: 0; padding: 0; }
.main-header .kln-sections li:before { display: none; }
.main-header .kln-sections a { display: block; padding: 4px 0; font-size: 17px; color: var(--kln-ink); white-space: nowrap; text-decoration: none; }
.main-header .kln-sections a:hover,
.main-header .kln-sections li._active a { color: var(--kln-red); }

.main-header a:focus-visible,
.main-header button:focus-visible { outline: 2px solid var(--kln-red); outline-offset: 3px; }

@media (max-width: 1200px) {
    .main-header .main-header--container { column-gap: 24px; }
    .main-header .main-menu > ul { gap: 18px; }
    .main-header .kln-sections ul { column-gap: 20px; justify-content: center; }
    .main-header .kln-sections a { font-size: 15px; }
    .main-header .main-header__right { gap: 14px; }
    .main-header .head-contacts .working-mode { display: none; }
    /* На узком экране иконки без подписей. */
    .main-header .el-favorites__text,
    .main-header .small-basket__text { display: none; }
    .main-header .el-favorites__icon,
    .main-header .small-basket__icon { margin-bottom: 0; }
}
/* Планшет и телефон: кнопка каталога — иконкой слева, поиск под лупой, разделы листаются вбок. */
@media (max-width: 1023px) {
    .main-header .header-utility .main-menu { display: none; }
    /* Слева «Каталог» и лупа, по центру логотип, справа избранное, корзина, вход.
       По краям по три колонки по 40px (одна слева пустая) — так логотип стоит ровно посередине. */
    .main-header .main-header--container { grid-template-columns: 40px 40px 40px minmax(0, 1fr) auto minmax(0, 1fr) 40px 40px 40px; grid-template-rows: 96px auto auto; column-gap: 0; padding-top: 0; }
    .main-header .kln-header-tools,
    .main-header .main-header__right { display: contents; }
    .main-header .kln-catalog-btn { grid-column: 1; grid-row: 1; width: 40px; height: 40px; padding: 0; justify-content: center; background: none; color: var(--kln-ink); }
    .main-header .main-header__right > .kln-search-toggle { grid-column: 2; grid-row: 1; }
    .main-header .main-header__right > .el-favorites:not(.kln-search-toggle) { grid-column: 7; grid-row: 1; }
    .main-header .main-header__right > div { grid-column: 8; grid-row: 1; }
    .main-header .main-header__right > .header-aut { grid-column: 9; grid-row: 1; }
    .main-header .main-header__right > * { justify-self: center; }
    .main-header .kln-catalog-btn:hover { background: none; color: var(--kln-red); }
    .main-header .kln-catalog-btn__icon { width: 26px; height: 26px; }
    .main-header .kln-catalog-btn__text { display: none; }
    .main-header .main-header__left .header-logo { grid-column: 5; width: 120px; }
    .main-header .kln-search-toggle { display: block; }
    .main-header .pannel-search { display: none; grid-column: 1 / -1; grid-row: 2; max-width: none; padding: 0 0 12px; }
    .main-header._search-open .pannel-search { display: block; }
    .main-header .kln-sections { grid-row: 3; margin: 0 -15px; border-top: 0; overflow-x: auto; scrollbar-width: none; }
    .main-header .kln-sections::-webkit-scrollbar { display: none; }
    .main-header .kln-sections ul { justify-content: flex-start; flex-wrap: nowrap; gap: 20px; width: max-content; padding: 6px 15px 12px; }
    .main-header .main-header__right .header-aut { width: 40px; height: 40px; padding: 0; border: 0; border-radius: 0; background: transparent; font-size: 0; }
    .main-header .main-header__right .header-aut:not(._authorized):after { content: ''; position: absolute; inset: 7px; width: auto; height: auto; display: block; opacity: 1; border-radius: 0; background: var(--kln-ink); -webkit-mask: url(../img/icons/user.svg) no-repeat center / contain; mask: url(../img/icons/user.svg) no-repeat center / contain; }
    .main-header .main-header__right .header-aut:not(._authorized):hover:after { background: var(--kln-red); }
    .main-header .header-aut:before { display: none; }
    .main-header .main-header__right .header-aut._authorized span { width: 38px; height: 38px; }
}
@media (max-width: 767px) {
    .kln-promo { min-height: 34px; padding: 6px 12px; font-size: 13px; }
    .kln-promo__more { display: none; }
    .main-header .header-utility { display: none; }
    .main-header .main-header--container { grid-template-rows: 72px auto auto; }
    .main-header .main-header__left .header-logo { width: 96px; }
    .main-header .kln-sections a { font-size: 14px; }
}
@media (max-width: 359px) {
    /* 6 кнопок по 34px + логотип 76px + поля контейнера помещаются в 320px. */
    .main-header .main-header--container { grid-template-columns: 34px 34px 34px minmax(0, 1fr) auto minmax(0, 1fr) 34px 34px 34px; }
    .main-header .main-header__left .header-logo { width: 76px; }
    .main-header .kln-catalog-btn,
    .main-header .el-favorites__icon,
    .main-header .small-basket__icon,
    .main-header .main-header__right .header-aut { width: 34px; height: 34px; }
    .main-header .el-favorites__icon:before,
    .main-header .small-basket__icon:before { left: 5px; top: 5px; width: 24px; height: 24px; }
    .main-header .main-header__right .header-aut:not(._authorized):after { inset: 5px; }
}

/* Bootstrap clearfix не должен создавать пустые строки внутри CSS Grid. */
.main-header .header-utility__inner::before,
.main-header .header-utility__inner::after,
.main-header .main-header--container::before,
.main-header .main-header--container::after { display: none; }

/* ---------- Компоненты: кнопки корзины и оформления ---------- */
/* Главная кнопка — красная, капсом; вторичная — белая с рамкой. Высоты и радиусы — из токенов. */
.kln-total__checkout,
#bx-soa-orderSave [data-save-button],
#bx-soa-order .bx-soa-more-btn .btn,
.kln-confirm__pay,
.kln-confirm__ps input[type="submit"] {
    font-family: var(--kln-font);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    border-radius: var(--kln-r-sm);
    box-shadow: none;
    transition: background-color .15s, border-color .15s, color .15s;
}
.kln-total__checkout,
#bx-soa-orderSave [data-save-button],
#bx-soa-order .bx-soa-more-btn .pull-right,
.kln-confirm__pay,
.kln-confirm__ps input[type="submit"] { background: var(--kln-red); border: 1px solid var(--kln-red); color: #fff; }
.kln-total__checkout:hover,
#bx-soa-orderSave [data-save-button]:hover,
#bx-soa-order .bx-soa-more-btn .pull-right:hover,
.kln-confirm__pay:hover,
.kln-confirm__ps input[type="submit"]:hover { background: var(--kln-red-hover); border-color: var(--kln-red-hover); color: #fff; }
.kln-total .kln-btn-ghost,
#bx-soa-order .bx-soa-more-btn .pull-left,
#acrit-bonus-paysystem label.bxr-subscribe-tab-link { font-weight: 400; letter-spacing: 0; text-transform: none; }
#bx-soa-order .bx-soa-more-btn .pull-left { text-transform: none; letter-spacing: 0; }
.kln-total__checkout:focus-visible,
#bx-soa-orderSave [data-save-button]:focus-visible,
#bx-soa-order .bx-soa-more-btn .btn:focus-visible,
.kln-total .kln-btn-ghost:focus-visible { outline: none; box-shadow: var(--kln-ring); }

/* Заголовки шагов и страниц — тем же шрифтом, что логотип и разделы каталога. */
#bx-soa-order .bx-soa-section-title,
.kln-confirm__title { font-family: var(--kln-font-head); font-weight: 600; color: var(--kln-ink); }

/* ---------- Общие компоненты сайта поверх main.css подрядчика ---------- */

/* Кнопки: без тени, скругление и шрифт из токенов. */
.btn:not(.header-aut) {
    border-radius: var(--kln-r-sm);
    box-shadow: none;
    font-weight: 600;
    letter-spacing: .06em;
    transition: background-color .15s, border-color .15s, color .15s;
}
.btn.btn_red { border: 1px solid var(--kln-red); }
.btn.btn_red:hover,
.btn.btn_red:focus:hover { background: var(--kln-red-hover); border-color: var(--kln-red-hover); color: #fff; }
.btn:focus-visible { outline: none; box-shadow: var(--kln-ring); }

/* «В корзину»: в каталоге — вторичная, в карточке товара — главная. */
.card-product .add-basket,
.js-load_more.load-btn {
    border-radius: var(--kln-r-sm);
    box-shadow: none;
    font-weight: 600;
    letter-spacing: .06em;
    transition: background-color .15s, border-color .15s, color .15s;
}
.card-product .add-basket:hover { background: var(--kln-red); border-color: var(--kln-red); color: #fff; }
.product-basket .add-basket {
    border-radius: var(--kln-r-sm);
    background: var(--kln-red);
    box-shadow: none;
    font-weight: 600;
    letter-spacing: .06em;
    transition: background-color .15s;
}
.product-basket .add-basket:hover { background: var(--kln-red-hover); color: #fff; }

/* Карточки: тонкая рамка и одно скругление вместо теней разной силы. */
.card-product,
.sidebar-category,
.page-sidebar,
.product-page__info {
    border: 1px solid var(--kln-line);
    border-radius: var(--kln-r-md);
    box-shadow: none;
}
.card-product { overflow: hidden; transition: border-color .15s, box-shadow .15s; }
.card-product:hover { border-color: var(--kln-border); box-shadow: 0 6px 24px rgba(0, 0, 0, .06); }
.card-product__title { color: var(--kln-text); line-height: 1.4; text-wrap: balance; }
.card-product .card-product__title h3 { line-height: inherit; }
.card-product .card-product__title a { color: var(--kln-ink); transition: color .15s; }
/* Наведение — лёгкое: чуть темнее рамка карточки и мягкий тон названия, без красного и подчёркивания. */
.card-product .card-product__title a:hover { color: var(--kln-text); text-decoration: none; }
.card-product:hover .card-product__title a { color: #555; }
.card-product__prices ._curent,
.product-price .curent-price { color: var(--kln-ink); }

/* Поля ввода: как поиск в шапке. */
.form-input,
.filter-wrap input[type="text"] {
    border: 1px solid var(--kln-border);
    border-radius: var(--kln-r-sm);
    box-shadow: none;
    transition: border-color .15s, box-shadow .15s;
}
.form-input { height: var(--kln-h-control); padding: 0 14px; font-size: 15px; color: var(--kln-ink); }
.form-input:focus,
.filter-wrap input[type="text"]:focus { border-color: var(--kln-red); box-shadow: var(--kln-ring); outline: none; }

/* Сортировка и вкладки: активный пункт — красный. */
.prod-sorting__el:hover,
.product-tabs__nav ._active,
.product-tabs__nav .active { color: var(--kln-red); }

/* Ссылки в тексте и боковом меню. */
.aside-menu a:hover,
.sidebar-category a:hover,
.sidebar-category a._active { color: var(--kln-red); }
@media (min-width: 1024px) {
    /* «Войти» — того же размера и радиуса, что «Каталог», но контурная. */
    .main-header .main-header__right .header-aut:not(._authorized) { display: inline-flex; align-items: center; height: var(--kln-h-control); line-height: 1; padding: 0 22px; border: 1.5px solid var(--kln-red); border-radius: var(--kln-r-sm); background: #fff; color: var(--kln-red); font-size: 14px; font-weight: 600; letter-spacing: .06em; transition: background-color .15s, color .15s; }
    .main-header .main-header__right .header-aut:not(._authorized):hover { background: var(--kln-red); color: #fff; }
}

/* ---------- Второстепенная кнопка: красный текст и красная рамка ---------- */
/* Одна на весь сайт: «Применить», «Назад», «В корзину» в каталоге, «Показать ещё» и обычные .btn. */
.btn:not(.btn_red):not(.btn_br):not(.header-aut),
.card-product .add-basket,
.js-load_more.load-btn,
.kln-total .kln-btn-ghost,
#bx-soa-order .bx-soa-more-btn .pull-left,
#bx-soa-order .bx-soa-coupon-block .btn,
#acrit-bonus-paysystem label.bxr-subscribe-tab-link {
    background: #fff;
    border: 1px solid var(--kln-red) !important;
    color: var(--kln-red);
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    box-shadow: none;
}
.btn:not(.btn_red):not(.btn_br):not(.header-aut):hover,
.card-product .add-basket:hover,
.js-load_more.load-btn:hover,
.kln-total .kln-btn-ghost:hover,
#bx-soa-order .bx-soa-more-btn .pull-left:hover,
#bx-soa-order .bx-soa-coupon-block .btn:hover,
#acrit-bonus-paysystem label.bxr-subscribe-tab-link:hover {
    background: var(--kln-red-soft);
    border-color: var(--kln-red-hover) !important;
    color: var(--kln-red-hover);
}

/* Поле промокода и «Применить» — в одну строку одной высоты. */
#bx-soa-order .bx-soa-coupon-input { display: flex; gap: 8px; }
#bx-soa-order .bx-soa-coupon-input .form-control { flex: 1 1 auto; min-width: 0; }
#bx-soa-order .bx-soa-coupon-block .btn { flex: 0 0 auto; height: var(--kln-h-control); line-height: normal; padding: 0 20px; border-radius: var(--kln-r-sm); font-size: 14px; }

/* Счётчики в шапке скрыты, пока assets/js/kalina.js не увидит в них число больше нуля
   (иначе при загрузке мигают пустые кружки). */
.main-header .el-favorites__count:not(._filled),
.main-header .small-basket__count:not(._filled) { display: none; }

/* ---------- Страница «Система лояльности» ---------- */
.kln-loyalty { max-width: 860px; color: var(--kln-text); }
.kln-loyalty__lead { margin: 0 0 40px; font-size: 19px; line-height: 1.5; color: var(--kln-ink); }
.kln-loyalty .kln-loyalty__title { margin: 0 0 18px; font-family: var(--kln-font-head); font-size: 28px; font-weight: 600; line-height: 1.2; color: var(--kln-ink); }
.kln-loyalty__cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 16px; margin-bottom: 44px; }
.kln-loyalty__card { padding: 22px 22px 20px; border: 1px solid var(--kln-line); border-radius: var(--kln-r-md); background: #fff; }
.kln-loyalty__value { font-family: var(--kln-font-head); font-size: 34px; font-weight: 700; line-height: 1.1; color: var(--kln-red); }
.kln-loyalty__name { margin: 4px 0 10px; font-size: 16px; font-weight: 600; color: var(--kln-ink); }
.kln-loyalty__card p { margin: 0; font-size: 15px; line-height: 1.5; color: var(--kln-muted); }
.kln-loyalty .kln-loyalty__list { margin: 0 0 36px; padding: 0; list-style: none; }
.kln-loyalty .kln-loyalty__list li { position: relative; margin: 0 0 12px; padding-left: 22px; font-size: 16px; line-height: 1.55; }
.kln-loyalty .kln-loyalty__list li:before { content: ""; position: absolute; left: 2px; top: .62em; width: 8px; height: 8px; border-radius: 50%; background: var(--kln-red); }
/* Плашка с промокодом 10% — тёплый фон, как полоса бонусов на главной. */
.kln-loyalty__promo { display: flex; align-items: flex-start; gap: 28px; margin-bottom: 44px; padding: 28px 32px 16px; border-radius: var(--kln-r-md); background: var(--kln-soft); }
.kln-loyalty__promo-value { flex: 0 0 auto; font-family: var(--kln-font-head); font-size: 56px; font-weight: 600; line-height: 1; color: var(--kln-red); }
.kln-loyalty__promo-text { flex: 1 1 auto; min-width: 0; }
.kln-loyalty__promo .kln-loyalty__title { margin-bottom: 14px; }
.kln-loyalty__promo .kln-loyalty__list { margin-bottom: 0; }
.kln-loyalty__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.kln-loyalty__actions .btn { display: inline-flex; align-items: center; justify-content: center; min-width: 220px; height: var(--kln-h-control); line-height: normal; padding: 0 24px; font-size: 14px; }
@media (max-width: 767px) {
    .kln-loyalty__lead { margin-bottom: 28px; font-size: 17px; }
    .kln-loyalty .kln-loyalty__title { font-size: 24px; }
    .kln-loyalty__cards { grid-template-columns: 1fr; gap: 10px; margin-bottom: 32px; }
    .kln-loyalty__card { padding: 16px 18px; }
    .kln-loyalty__value { font-size: 28px; }
    .kln-loyalty__promo { flex-direction: column; gap: 10px; margin-bottom: 32px; padding: 20px 18px 8px; }
    .kln-loyalty__promo-value { font-size: 44px; }
    .kln-loyalty__actions .btn { flex: 1 1 100%; }
}

/* ---------- Карточка товара ---------- */
/* Блок покупки: цена → наличие → кнопка → избранное, ниже характеристики и артикул.
   Порядок меняется через order: обёртки подрядчика раскрыты display: contents. */
/* Название товара — по центру, крупно, с воздухом сверху и снизу; без красной черты, как заголовки блоков. */
/* Сверху заголовка — отступ хлебных крошек (main.css: 50px, на телефоне до 480px — 20px), снизу столько же. */
.product-title { margin: 0; padding: 0 0 50px; text-align: center; }
.product-title:before { display: none; }
.product-title h1 { max-inline-size: 900px; margin: 0 auto; font-size: clamp(30px, 3.2vw, 46px); line-height: 1.15; letter-spacing: .02em; text-wrap: balance; color: var(--kln-ink); }
@media (max-width: 767px) {
    .product-title { margin-top: -26px; padding-bottom: 24px; }
    .product-title h1 { font-size: 26px; }
}
@media (max-width: 480px) {
    .product-title { margin-top: 0; padding-bottom: 20px; }
}

.product-page__row { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 48px; align-items: start; }
.product-page__row .product-page__gallery,
.product-page__row .product-page__info { width: auto; min-width: 0; }
.product-page__row .product-page__gallery--single .product-gallery { width: 100%; }

.product-page__row .product-page__info { position: sticky; top: 20px; display: flex; flex-direction: column; gap: 14px; padding: 26px; border: 1px solid var(--kln-line); border-radius: var(--kln-r-md); box-shadow: none; }
.product-page__info .product-basket,
.product-page__info .product-description--block,
.product-page__info .product-description--actions { display: contents; }

.product-page__info .certificates__color { order: 0; margin: 0; }
.product-page__info .product-price { order: 1; width: auto; margin: 0; }
.product-page__info .product-condition { order: 2; }
.product-page__info .product-btns { order: 3; display: block; width: 100%; margin: 0; }
.product-page__info .product-actions { order: 4; }
.product-page__info .product-auth { order: 5; }
.product-page__info .product-description--data { order: 6; width: auto; margin-top: 8px; }
.product-page__info .product-code--block { order: 7; margin: 0; }

.product-page__info .product-price__title { display: none; }
.product-page__info .product-price .curent-price { font-family: var(--kln-font-head); font-size: 36px; font-weight: 400; line-height: 1.1; color: var(--kln-ink); }
.product-page__info .product-price .old-price { margin-top: 4px; font-size: 16px; color: var(--kln-muted); }
/* Скидка: цена, старая цена и небольшая плашка в одну строку (на узком экране переносятся) — а не красная полоса на всю ширину. */
.product-page__info .product-price { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; }
.product-page__info .product-price .curent-price { flex: 0 0 auto; }
.product-page__info .product-price .old-price { margin-top: 0; }
.product-page__info .product-price .discount-percentage { margin: 0; padding: 2px 8px; border-radius: 6px; font-size: 13px; font-weight: 600; line-height: 1.4; }

.product-page__info .product-condition { align-items: center; gap: 6px; font-size: 15px; color: var(--kln-success); }
.product-page__info .product-condition img { width: 16px; margin: 0; }
.product-page__info .product-condition ._not { color: var(--kln-muted); }

.product-page__info .product-btns .add-basket { display: flex; align-items: center; justify-content: center; width: 100%; max-width: none; height: var(--kln-h-cta); line-height: normal; margin: 0; font-size: 15px; }
.product-page__info .product-btns .add-basket._added { background: #fff; border: 1px solid var(--kln-red); color: var(--kln-red); }
.product-page__info .product-btns .add-basket._added span { display: flex; align-items: center; justify-content: center; border-radius: var(--kln-r-sm); background: var(--kln-red); }

.product-page__info .product-actions .add-favorites { margin: 0; font-size: 15px; }
.product-page__info .product-auth { max-width: none; margin: 0; }
.product-page__info .product-auth a { display: inline-flex; align-items: center; gap: 8px; padding: 0; background: none; }
.product-page__info .product-auth a img { width: 18px; padding: 0; opacity: .7; }
.product-page__info .product-auth a span { text-wrap: balance; font-family: var(--kln-font); font-size: 14px; color: var(--kln-muted); text-decoration: underline; }
.product-page__info .product-auth a:hover span { color: var(--kln-red); }

.product-page__info .product-description--data { padding-top: 16px; border-top: 1px solid var(--kln-line); }
.product-page__info .product-description--data ul { margin: 0; padding: 0; }
.product-page__info .product-description--data ul li { gap: 16px; padding: 6px 0; border: 0; font-family: var(--kln-font); font-size: 14px; color: var(--kln-muted); }
.product-page__info .product-description--data ul li span { color: var(--kln-ink); text-align: right; }

.product-page__info .product-code--block .product-code { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 16px; width: 100%; font-size: 14px; }
.product-page__info .product-code--block .product-code p { margin: 0; padding: 0; color: var(--kln-muted); }
.product-page__info .product-code--block .product-code p:nth-child(2) a { color: var(--kln-text); text-decoration: underline; }

/* Правая колонка: карточка с ценой, под ней характеристики. Карточка больше не «прилипает» при прокрутке —
   иначе она наезжала бы на таблицу под собой. */
.product-page__aside { display: flex; flex-direction: column; gap: 32px; min-width: 0; }
.product-page__row .product-page__aside .product-page__info { position: static; }
.kln-specs__title { margin: 0; padding-bottom: 12px; border-bottom: 1px solid var(--kln-line); font-family: var(--kln-font); font-size: 17px; font-weight: 600; line-height: 1.3; color: var(--kln-ink); }
.kln-specs .product-tabs__table { width: 100%; font-family: var(--kln-font); }
.kln-specs .product-tabs__table tr:nth-child(n) { background: none; border-bottom: 1px solid var(--kln-line); }
.kln-specs .product-tabs__table td { padding: 10px 0; font-family: var(--kln-font); font-size: 14px; line-height: 1.45; vertical-align: top; }
.kln-specs .product-tabs__table td:first-child { width: 45%; padding-right: 16px; color: var(--kln-muted); }
.kln-specs .product-tabs__table td:last-child { width: 55%; color: var(--kln-ink); }
.kln-specs .product-tabs__table td a { color: var(--kln-ink); text-decoration: underline; }
.kln-specs .product-tabs__table td a:hover { color: var(--kln-red); }

@media (max-width: 992px) {
    .product-page__row { grid-template-columns: minmax(0, 1fr) 360px; gap: 28px; }
}
@media (max-width: 768px) {
    .product-page__row { display: flex; flex-direction: column; gap: 20px; }
    .product-page__row .product-page__gallery { width: 100%; max-width: 100%; overflow: hidden; }
    .product-page__row .product-page__info { position: static; width: 100%; padding: 18px 16px; }
    .product-page__aside { width: 100%; gap: 24px; }
    .product-page__info .product-price .curent-price { font-size: 28px; }
}

/* ---------- Окно «Добавлено в корзину» ---------- */
.p-added-cart { top: 24px; display: block; width: 380px; max-width: calc(100vw - 32px); padding: 18px 20px 20px; border-radius: var(--kln-r-md); box-shadow: 0 12px 40px rgba(0, 0, 0, .14); }
.p-added-cart._active { right: 24px; }
.p-added-cart._hold { right: 24px; opacity: 1; }
/* Спрятанное окно только прозрачное, а на телефоне стоит поверх шапки — не даём ему перехватывать нажатия. */
.p-added-cart:not(._active):not(._hold) { visibility: hidden; pointer-events: none; }
.kln-added__head { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
.kln-added__check { position: relative; flex: 0 0 24px; height: 24px; border-radius: 50%; background: var(--kln-success-soft); }
.kln-added__check:after { content: ""; position: absolute; left: 8px; top: 5px; width: 6px; height: 11px; border: solid var(--kln-success); border-width: 0 2px 2px 0; transform: rotate(45deg); }
.kln-added__label { flex: 1 1 auto; font-size: 16px; font-weight: 600; color: var(--kln-ink); }
.kln-added__close { position: relative; flex: 0 0 28px; height: 28px; padding: 0; border: 0; border-radius: 50%; background: none; cursor: pointer; }
.kln-added__close:hover { background: var(--kln-surface); }
.kln-added__close:before,
.kln-added__close:after { content: ""; position: absolute; left: 50%; top: 50%; width: 14px; height: 1.5px; background: var(--kln-muted); transform: translate(-50%, -50%) rotate(45deg); }
.kln-added__close:after { transform: translate(-50%, -50%) rotate(-45deg); }
.kln-added__item { display: flex; align-items: center; gap: 14px; margin-bottom: 16px; }
.p-added-cart .p-added-car__img { flex: 0 0 72px; width: 72px; height: 72px; margin: 0; border-radius: var(--kln-r-sm); background: var(--kln-surface); overflow: hidden; }
.p-added-cart .p-added-car__img img { width: 100%; height: 100%; max-height: none; object-fit: cover; }
.p-added-cart .p-added-car__title { margin: 0; font-size: 14px; line-height: 1.4; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }
.p-added-cart .p-added-car__title a { color: var(--kln-ink); }
.kln-added__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.kln-added__actions .btn { display: flex; align-items: center; justify-content: center; height: var(--kln-h-control); line-height: normal; padding: 0 10px; font-size: 12px; white-space: normal; text-align: center; }
@media (max-width: 480px) {
    .p-added-cart { left: 16px; right: auto; width: auto; max-width: none; }
    .p-added-cart._active,
    .p-added-cart._hold { top: 12px; right: 16px; }
}
/* «Уже в корзине» в каталоге — та же второстепенная кнопка с лёгкой красной заливкой вместо голубой. */
.card-product .add-basket._added { background: var(--kln-red-soft); color: var(--kln-red); }

/* Карточка в каталоге: название читается легче, цена и кнопка всегда прижаты к низу — в ряду на одном уровне. */
.card-product { display: flex; flex-direction: column; height: 100%; }
.card-product .card-product__midle { flex: 1 1 auto; padding-top: 4px; }
.card-product .card-product__footer { margin-top: auto; }
.card-product .card-product__title,
.card-product .card-product__title h3,
.card-product .card-product__title h3 a,
.card-product .card-product__title a { font-size: 15px; line-height: 1.5; letter-spacing: .005em; }
.card-product .card-product__title h3 { margin: 0; }
.card-product .card-product__title a { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; overflow: hidden; }
.card-product .card-product__prices { margin-top: 14px; }
@media (max-width: 480px) {
    .card-product .card-product__title,
    .card-product .card-product__title h3,
    .card-product .card-product__title a { font-size: 14px; line-height: 1.45; }
}

/* Фон подвала: тот же узор, но JPEG на белом 21 КБ вместо прозрачного PNG 277 КБ. */
.main-footer:before { background-image: url(../img/footer_bg.jpg); }

/* ---------- Каталог: заголовок, справа от него сортировка и ярлыки ---------- */
/* Панель стоит в строке заголовка, чтобы фильтр и товары начинались сразу под ней. Пункты — кнопки с рамкой. */
.kln-catalog-head { display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; gap: 16px 32px; margin-bottom: 32px; }
.kln-catalog-head .page-title { margin-bottom: 0; }
.kln-catalog-head .option-category { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 16px; margin: 0; padding: 0; border: 0; border-radius: 0; background: none; z-index: 20; }
.kln-catalog-head .sorting-wrapper { margin: 0; gap: 10px; }
.kln-catalog-head .sorting-wrapper__title { margin: 0; font-size: 14px; font-weight: 400; color: var(--kln-muted); }
.kln-catalog-head .prod-sorting__current { display: inline-flex; align-items: center; height: 40px; padding: 0 34px 0 14px; border: 1px solid var(--kln-border); border-radius: var(--kln-r-sm); background: #fff; font-size: 14px; line-height: 1; color: var(--kln-ink); transition: border-color .15s; }
.kln-catalog-head .prod-sorting__current:hover,
.kln-catalog-head .prod-sorting.__act .prod-sorting__current { border-color: var(--kln-ink); color: var(--kln-ink); text-decoration: none; }
.kln-catalog-head .prod-sorting__current:after { content: ''; position: absolute; right: 15px; top: 50%; width: 7px; height: 7px; margin-top: -6px; border: solid currentColor; border-width: 0 1.5px 1.5px 0; transform: rotate(45deg); transition: transform .15s; }
.kln-catalog-head .prod-sorting.__act .prod-sorting__current:after { margin-top: -2px; transform: rotate(-135deg); }
.kln-catalog-head .prod-sorting__list a { padding: 6px 0; font-size: 14px; }
.kln-catalog-head .prod-sorting__list a.selected { color: var(--kln-red); }
.kln-catalog-head .prod-sorting__list { top: calc(100% + 6px); left: 0; width: auto; min-width: 100%; padding: 8px 16px; border: 1px solid var(--kln-line); border-radius: var(--kln-r-sm); box-shadow: 0 8px 24px rgba(0, 0, 0, .08); }

.kln-catalog-head .filter-labels { display: flex; gap: 8px; margin: 0; padding: 0; }
.kln-catalog-head .filter-labels li { margin: 0; }
.kln-catalog-head .filter-labels li:before { display: none; }
.kln-catalog-head .filter-labels .filter-label { --dot: var(--kln-ink); height: 40px; padding: 0 16px 0 30px; border: 1px solid var(--kln-border); border-radius: 20px; background: #fff; font-size: 14px; line-height: 38px; color: var(--kln-ink); transition: border-color .15s, background-color .15s; }
.kln-catalog-head .filter-labels .filter-label:before { left: 14px; width: 8px; height: 8px; margin-top: -4px; background: var(--dot); }
.kln-catalog-head .filter-labels .filter-label.__news { --dot: #5cda2a; }
.kln-catalog-head .filter-labels .filter-label.__sale { --dot: var(--kln-red); }
.kln-catalog-head .filter-labels .filter-label.__discount { --dot: var(--kln-red); }
.kln-catalog-head .filter-labels .filter-label.__hit { --dot: var(--kln-ink); }
/* Плашка «Хит» — чёрная (в main.css голубая), в карточках и на странице товара. */
._hit, .card-product .card-product__labels ._hit, .product-label.__hit { background: var(--kln-ink); }
.kln-catalog-head .filter-labels .filter-label.__action { --dot: #011524; }
.kln-catalog-head .filter-labels .filter-label:hover { border-color: var(--dot); color: var(--kln-ink); }
/* Выбранный ярлык: заливка цветом точки, повторное нажатие снимает фильтр. */
.kln-catalog-head .filter-labels .filter-label.__active { border-color: var(--dot); background: var(--dot); color: #fff; }
.kln-catalog-head .filter-labels .filter-label.__active:before { background: #fff; }

@media (max-width: 768px) {
    .kln-catalog-head { gap: 16px; margin-bottom: 20px; }
    .kln-catalog-head .option-category { width: 100%; }
    .kln-catalog-head .prod-sorting__list { left: auto; right: 0; }
    /* На телефоне ярлыки не прячем, а листаем вбок. */
    .kln-catalog-head .option-category .filter-labels { display: flex; flex-wrap: nowrap; width: calc(100% + 30px); margin: 0 -15px; padding: 0 15px; overflow-x: auto; scrollbar-width: none; }
    .kln-catalog-head .option-category .filter-labels::-webkit-scrollbar { display: none; }
}

/* Главный слайдер: одна рамка по ширине сетки сайта (.container: 1280px − поля по 15px), слайды в ней друг на друге,
   смена «шторкой» (assets/js/story-slider.js). На низких окнах рамка уже: высота не больше свободной под шапкой
   (экран − шапка (--kln-header-h из JS) − отступы, × пропорции баннера 5000×2200), но не уже 560px. */
.home-slider { --kln-slide-w: calc(min(100%, 1280px) - 30px); --kln-banner-ratio: 2.2727; --kln-slide-pad: 40px; padding: 16px 0 24px; touch-action: pan-y; outline: none; }
.home-slider .home-slider__frame { position: relative; width: min(var(--kln-slide-w), max(calc((100vh - var(--kln-header-h, 260px) - var(--kln-slide-pad)) * var(--kln-banner-ratio)), 560px)); aspect-ratio: 5000 / 2200; margin: 0 auto; overflow: hidden; border-radius: 20px; background: var(--kln-line, #eee); box-shadow: 0 5px 29px rgba(0, 0, 0, .07); }
@supports (height: 100svh) {
    .home-slider .home-slider__frame { width: min(var(--kln-slide-w), max(calc((100svh - var(--kln-header-h, 260px) - var(--kln-slide-pad)) * var(--kln-banner-ratio)), 560px)); }
}
.home-slider .home-slider__slide { position: absolute; inset: 0; overflow: hidden; }
/* До запуска скрипта виден только первый слайд, иначе при загрузке баннеры мигают друг за другом
   (дальше видимость задаёт story-slider.js в style слайда). */
.home-slider .home-slider__slide:not(:first-child) { visibility: hidden; }
.home-slider .home-slider__item { width: 100%; height: 100%; border-radius: 0; box-shadow: none; transform: none; transition: none; }
.home-slider .home-slider__item:before { display: none; }
.home-slider .home-slider__item img { width: 100%; height: 100%; max-width: none; object-fit: cover; -webkit-user-drag: none; will-change: transform; }
.home-slider:focus-visible .home-slider__frame { outline: 2px solid var(--kln-red, #db272e); outline-offset: 3px; }
/* Стрелки внутри рамки, поверх слайдов. */
.home-slider .swiper-button-prev,
.home-slider .swiper-button-next { z-index: 1000; top: 50%; margin-top: -25px; padding: 0; border: 0; }
.home-slider .swiper-button-prev { left: 20px; margin-right: 0; }
.home-slider .swiper-button-next { right: 20px; }
@media (max-width: 480px) {
    .home-slider { --kln-slide-pad: 28px; padding: 10px 0 18px; }
    .home-slider .home-slider__frame { border-radius: 14px; }
}

/* Подвал на узких телефонах: «Контакты» и «Адреса магазинов» друг под другом —
   в одну строку адреса не помещались и раздвигали страницу шире экрана. */
.main-footer__shops { min-width: 0; overflow-wrap: anywhere; }
@media (max-width: 400px) {
    .main-footer__right { flex-wrap: wrap; row-gap: 24px; }
    .main-footer__contacts { flex: 1 1 100%; margin-right: 0; padding-right: 0; }
    .main-footer__shops { flex: 1 1 100%; }
}

/* Фото в карточке — на всю ширину и высоту блока, как и второе фото при наведении (раньше было уже на 10px и по центру). */
.card-product .card-product__img .card-product__img_curent img { width: 100%; height: 100%; max-width: none; max-height: none; object-fit: cover; object-position: center; }

/* ---------- Заголовки блоков: по центру, без красной черты, с разрядкой ---------- */
.sec-title { padding-top: 0; letter-spacing: .12em; }
.sec-title:before { display: none; }
/* Заголовки страниц и текстовых блоков — тоже без красной черты (отступ сверху был под неё). */
.page-title, .seo-block h2, .product-description h2 { padding-top: 0; }
.page-title:before, .seo-block h2:before, .product-description h2:before { display: none; }
.sec-title h1, .sec-title h2, .sec-title h3, .sec-title h4, .sec-title h5, .sec-title h6 { font-size: 30px; letter-spacing: inherit; line-height: 1.2; }
/* Заголовок посередине, стрелки карусели справа — сетка из трёх колонок держит заголовок ровно по центру. */
.section .sec-head { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; column-gap: 16px; margin-bottom: 36px; }
.section .sec-head .sec-title { grid-column: 2; justify-self: center; margin: 0; text-align: center; }
.section .sec-head .elements-slider-pagination,
.section .sec-head > :not(.sec-title) { grid-column: 3; justify-self: end; }
/* Заголовок Shorts: у подрядчика сам заголовок и был красной чертой 70×2px (custom.css подключён позже — нужен селектор сильнее). */
body .stories-category .cpt-stories-block .cpt-stories-title { position: static; width: auto; height: auto; background: none; text-align: center; }
/* Под заголовком Shorts было ~100px пустоты (отступы карусели у подрядчика). */
body .stories-category .cpt-stories-block .swiper-container { margin-top: 0; padding: 16px 0 24px; }
body .stories-category .swiper-wrapper { margin: 0; }
/* Shorts одной строкой без карусели (свой block.php модуля историй): кружки делят ширину сетки поровну.
   На телефоне кружки фиксированного размера, строка листается пальцем. */
body .stories-category .cpt-stories-block { width: 100%; }
.stories-category .kln-shorts { padding: 16px 0 24px; }
.stories-category .kln-shorts__list { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 30px; }
.stories-category .kln-shorts__item { min-width: 0; }
body .stories-category .kln-shorts .cpt-stories-preview-slide { width: 100%; height: auto; aspect-ratio: 1 / 1; margin: 0; cursor: pointer; }
@media (max-width: 992px) {
    .stories-category .kln-shorts__list { gap: 16px; }
}
@media (max-width: 767.98px) {
    .stories-category .kln-shorts__list { grid-auto-columns: 84px; gap: 12px; margin: 0 -15px; padding: 0 15px; overflow-x: auto; scroll-snap-type: x proximity; scroll-padding-inline: 15px; scrollbar-width: none; }
    .stories-category .kln-shorts__list::-webkit-scrollbar { display: none; }
    .stories-category .kln-shorts__item { scroll-snap-align: start; }
}
.stories-category .cpt-stories-block .cpt-stories-title > div { padding: 0; font-family: var(--kln-font-head); font-size: 30px; font-weight: 600; line-height: 1.2; letter-spacing: .12em; text-transform: uppercase; }
@media (max-width: 768px) {
    .sec-title h1, .sec-title h2, .sec-title h3, .sec-title h4, .sec-title h5, .sec-title h6,
    .stories-category .cpt-stories-block .cpt-stories-title > div { font-size: 24px; }
    .section .sec-head { margin-bottom: 24px; }
}
@media (max-width: 480px) {
    .sec-title { letter-spacing: .08em; }
    .sec-title h1, .sec-title h2, .sec-title h3, .sec-title h4, .sec-title h5, .sec-title h6,
    .stories-category .cpt-stories-block .cpt-stories-title > div { font-size: 20px; letter-spacing: .08em; }
    /* На телефоне стрелки не помещаются по бокам — заголовок по центру, стрелки скрыты (карусель листается пальцем). */
    .section .sec-head { grid-template-columns: 1fr; }
    .section .sec-head .sec-title { grid-column: 1; }
    .section .sec-head .elements-slider-pagination { display: none; }
}

/* ---------- Главная: полоса «5000 бонусов за первый заказ» ---------- */
.kln-bonus-strip { padding: 10px 0 50px; }
.kln-bonus-strip__inner { display: flex; align-items: center; gap: 28px; padding: 28px 40px; border-radius: var(--kln-r-md); background: var(--kln-soft); }
.kln-bonus-strip__value { flex: 0 0 auto; font-family: var(--kln-font-head); font-size: 64px; font-weight: 600; line-height: 1; color: var(--kln-red); }
.kln-bonus-strip__text { flex: 1 1 auto; min-width: 0; }
.kln-bonus-strip__title { font-size: 22px; font-weight: 600; color: var(--kln-ink); }
.kln-bonus-strip__note { margin-top: 6px; font-size: var(--kln-fs-label); color: var(--kln-muted); }
.kln-bonus-strip__btn { flex: 0 0 auto; display: inline-flex; align-items: center; height: var(--kln-h-control); padding: 0 24px; border-radius: var(--kln-r-sm); background: var(--kln-red); color: #fff; font-size: 14px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; text-decoration: none; transition: background-color .15s; }
.kln-bonus-strip__btn:hover,
.kln-bonus-strip__btn:focus { background: var(--kln-red-hover); color: #fff; text-decoration: none; }
@media (max-width: 767px) {
    .kln-bonus-strip { padding-bottom: 36px; }
    .kln-bonus-strip__inner { flex-direction: column; gap: 12px; padding: 24px 20px; text-align: center; }
    .kln-bonus-strip__value { font-size: 52px; }
    .kln-bonus-strip__title { font-size: 19px; }
    .kln-bonus-strip__btn { width: 100%; justify-content: center; }
}

/* ---------- Панель «Каталог» (меню и все разделы) ---------- */
/* Открывается на весь экран поверх шапки и листается внутри. У подрядчика она стояла с отступом 100px
   под старую низкую шапку — новая шапка выше, и панель наезжала на логотип, а низ уходил за экран.
   Анимации укорочены до 0,2 с (были 0,3–0,6 с с задержками и секунда ожидания при закрытии).
   Слой 10000 — выше плавающих кружков историй (9999). */
body .full-pannel { top: 0; height: 100%; padding: 32px 0 48px; overflow-y: auto; overscroll-behavior: contain; transform: translateY(12px); transition: opacity .2s ease, transform .2s ease, visibility 0s linear .2s; }
body .full-pannel._active { top: 0; z-index: 10000; transform: none; transition: opacity .2s ease, transform .2s ease, visibility 0s; }
body .full-pannel .pannel-rows,
body .full-pannel .pannel-search .el-search { transform: translateY(12px); transition: opacity .2s ease .05s, transform .2s ease .05s; }
body .full-pannel._active .pannel-rows,
body .full-pannel._active .pannel-search .el-search { transform: none; }
body .full-pannel._previously .pannel-rows,
body .full-pannel._previously .pannel-search .el-search { transform: translateY(-8px); transition-delay: 0s; }
body .full-pannel .close-pannel { margin-bottom: 28px; }
body .full-pannel .el-search__input { height: var(--kln-h-control); padding: 0 52px 0 16px; font-size: 15px; font-style: normal; border: 1px solid var(--kln-border); border-radius: var(--kln-r-sm); background: #fff; box-shadow: none; }
body .full-pannel .el-search__input::placeholder { font-style: normal; color: var(--kln-muted); }
body .full-pannel .el-search__input:focus { border-color: var(--kln-red); box-shadow: var(--kln-ring); outline: none; }
@media (max-width: 580px) {
    body .full-pannel { padding: 20px 0 32px; }
    body .full-pannel .pannel-rows { max-height: none; overflow: visible; }
}

/* Панель «Каталог» под логотипом (--kln-panel-top считает kalina.js при открытии) — закрывает строку разделов; верх шапки остаётся виден,
   а её кнопка «Каталог» становится «Закрыть». Своя кнопка «Закрыть» у панели больше не нужна. */
body .full-pannel,
body .full-pannel._active { top: var(--kln-panel-top, 0px); height: calc(100% - var(--kln-panel-top, 0px)); border-top: 1px solid var(--kln-line); }
body .full-pannel .close-pannel { display: none; }
.main-header .kln-catalog-btn._open .kln-catalog-btn__icon { -webkit-mask-image: url(../img/icons/close.svg); mask-image: url(../img/icons/close.svg); }
@media (min-width: 1024px) {
    /* На компьютере в шапке уже есть поле поиска — второе в панели не нужно. */
    body .full-pannel .pannel-search { display: none; }
    body .full-pannel .pannel-rows { margin-top: 0 !important; }
}

/* Состав панели «Каталог»: разделы | бренды | меню и контакты. Сетка вместо ширин подрядчика,
   которые были привязаны к первой и последней колонке. */
body .full-pannel .kln-panel { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.7fr) minmax(220px, .8fr); gap: 40px 56px; margin-top: 0; }
/* :nth-child(n) — чтобы перебить правила подрядчика для :first-child и :last-child. */
body .full-pannel .kln-panel > .pannel-col:nth-child(n) { width: auto; max-height: none; margin: 0; overflow: visible; order: 0; }
body .full-pannel .kln-panel .pannel-col__title { margin: 0 0 18px; padding-bottom: 12px; border-bottom: 1px solid var(--kln-border); font-size: 20px; line-height: 1.2; letter-spacing: .14em; color: var(--kln-ink); }
/* Разделы — в две колонки, крупнее остальных пунктов. */
body .full-pannel .pannel-catalog-menu { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 28px; }
body .full-pannel .pannel-catalog-menu .col { width: auto; padding: 0; }
body .full-pannel .pannel-catalog-menu ul { margin: 0; padding: 0; }
body .full-pannel .pannel-catalog-menu ul li { margin: 0; }
body .full-pannel .pannel-catalog-menu ul li a { display: block; padding: 7px 0; font-size: 16px; font-weight: 600; line-height: 1.3; color: var(--kln-ink); text-decoration: none; }
body .full-pannel .pannel-catalog-menu ul li a:hover { color: var(--kln-red); }
/* Бренды */
.kln-panel-brands__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 24px; margin: 0; padding: 0; list-style: none; }
.kln-panel-brands__list li { margin: 0; }
.kln-panel-brands__list li:before { display: none; }
.kln-panel-brands__list a { display: block; padding: 7px 0; font-size: 15px; line-height: 1.3; letter-spacing: .02em; color: var(--kln-text); text-decoration: none; }
.kln-panel-brands__list a:hover { color: var(--kln-red); }
.kln-panel-brands__all { display: inline-block; margin-top: 14px; font-size: 14px; font-weight: 600; color: var(--kln-red); text-decoration: none; }
.kln-panel-brands__all:hover { color: var(--kln-red-hover); text-decoration: underline; }
/* Меню и контакты — справа, отделены линией, помельче. */
body .full-pannel .kln-panel > .pannel-col:last-child { padding-left: 40px; border-left: 1px solid var(--kln-line); }
body .full-pannel .kln-panel .pannel-menu ul a { padding: 5px 0; font-size: 15px; color: var(--kln-text); }
body .full-pannel .kln-panel .pannel-menu ul a:hover { color: var(--kln-red); text-decoration: none; }
@media (max-width: 1199px) {
    body .full-pannel .kln-panel { grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr) minmax(200px, .8fr); gap: 32px 36px; }
    .kln-panel-brands__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    body .full-pannel .kln-panel > .pannel-col:last-child { padding-left: 28px; }
}
@media (max-width: 1023px) {
    body .full-pannel .kln-panel { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    body .full-pannel .kln-panel > .pannel-col:last-child { grid-column: 1 / -1; padding: 28px 0 0; border-left: 0; border-top: 1px solid var(--kln-line); }
}
@media (max-width: 767px) {
    body .full-pannel .kln-panel { grid-template-columns: 1fr; gap: 28px; }
    body .full-pannel .kln-panel .pannel-col__title { font-size: 18px; margin-bottom: 10px; }
}

/* Плашка «Показать» у изменённого блока фильтра — в стиле кнопок сайта. */
.filter-wrap .bx-filter-container-modef { border-radius: var(--kln-r-sm); background: var(--kln-red); box-shadow: 0 6px 18px rgba(219, 39, 46, .25); }
.filter-wrap .bx-filter-container-modef:hover { background: var(--kln-red-hover); }
.filter-wrap .bx-filter-container-modef a { font-family: var(--kln-font); font-size: 13px; letter-spacing: .06em; }

/* ---------- Личный кабинет ---------- */
/* Слева — кто вошёл и разделы, справа — содержимое. На телефоне разделы становятся строкой вкладок над содержимым. */
.lk { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 40px; align-items: start; margin-bottom: 60px; font-family: var(--kln-font); font-size: var(--kln-fs-body); line-height: 1.5; color: var(--kln-text); }
.lk *, .lk *:before, .lk *:after { box-sizing: border-box; }
.lk-main { min-width: 0; }

/* Боковая панель */
.lk-aside { position: sticky; top: 20px; padding: 20px; border: 1px solid var(--kln-line); border-radius: var(--kln-r-md); background: #fff; }
.lk-user { display: flex; align-items: center; gap: 12px; padding-bottom: 16px; margin-bottom: 8px; border-bottom: 1px solid var(--kln-line); color: inherit; text-decoration: none; }
.lk-user:hover { color: inherit; text-decoration: none; }
.lk-user__avatar { flex: 0 0 48px; display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; overflow: hidden; border-radius: 50%; background: var(--kln-soft); color: var(--kln-red); font-family: var(--kln-font-head); font-size: 24px; font-weight: 600; }
.lk-user__avatar img { width: 100%; height: 100%; margin: 0; border-radius: 0; object-fit: cover; }
/* Пользователь без фото: контур даёт сама иконка, фон и рамку убираем. */
.kln-user-icon { display: block; width: 100%; height: 100%; color: var(--kln-ink); }
.lk-user .lk-user__avatar_empty,
.lk-photo .lk-photo__initial_empty { background: transparent; }
/* Кнопка кабинета в шапке: без красной рамки и красной точки (на мобильном их уже нет). */
.main-header .header-aut._authorized { border-color: transparent; background: transparent; }
.main-header .header-aut._authorized:before { display: none; }
.lk-user__info { display: flex; flex-direction: column; min-width: 0; }
.lk-user__name { font-size: var(--kln-fs-body); font-weight: 600; line-height: 1.3; color: var(--kln-ink); overflow-wrap: anywhere; }
.lk-user__email { font-size: var(--kln-fs-small); color: var(--kln-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lk-nav { display: flex; flex-direction: column; }
.lk-nav__link { display: block; margin: 0 -10px; padding: 9px 10px; border-radius: var(--kln-r-sm); font-size: var(--kln-fs-label); color: var(--kln-text); text-decoration: none; transition: background-color .15s, color .15s; }
.lk-nav__link:hover { background: var(--kln-surface); color: var(--kln-ink); text-decoration: none; }
.lk-nav__link._active { background: var(--kln-red-soft); color: var(--kln-red); font-weight: 600; }
.lk-nav__link_out { margin-top: 8px; padding-top: 13px; border-top: 1px solid var(--kln-line); border-radius: 0; color: var(--kln-muted); }
.lk-nav__link_out:hover { background: none; color: var(--kln-red); }

/* Общие элементы */
.lk-card { display: block; padding: 20px 22px; border: 1px solid var(--kln-line); border-radius: var(--kln-r-md); background: #fff; color: inherit; }
.lk-card_link { text-decoration: none; transition: border-color .15s, box-shadow .15s; }
.lk-card_link:hover { border-color: var(--kln-border); box-shadow: 0 6px 24px rgba(0, 0, 0, .06); color: inherit; text-decoration: none; }
.lk-card__label { display: block; font-size: var(--kln-fs-small); color: var(--kln-muted); }
.lk-card__hint { display: block; margin-top: 6px; font-size: var(--kln-fs-small); color: var(--kln-muted); }
.lk-section { margin-bottom: 36px; }
.lk-section:last-child { margin-bottom: 0; }
.lk-section__head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.lk-section__head .lk-section__title { margin: 0; }
.lk .lk-section__title { margin: 0 0 16px; font-family: var(--kln-font-head); font-size: 24px; font-weight: 600; line-height: 1.2; letter-spacing: 0; text-transform: none; color: var(--kln-ink); }
.lk .lk-section__subtitle { margin: 20px 0 6px; font-family: var(--kln-font); font-size: var(--kln-fs-label); font-weight: 600; color: var(--kln-ink); }
.lk-section__lead,
.lk-section__text { margin: -8px 0 16px; font-size: var(--kln-fs-label); color: var(--kln-muted); }
.lk-section__text { margin: 0; color: var(--kln-text); }
.lk-lead { max-width: 640px; margin: 0 0 24px; font-size: var(--kln-fs-body); color: var(--kln-muted); }
.lk-link { font-size: var(--kln-fs-label); font-weight: 600; color: var(--kln-red); text-decoration: none; }
.lk-link:hover { color: var(--kln-red-hover); text-decoration: underline; text-underline-offset: 3px; }
.lk-link_muted { font-weight: 400; color: var(--kln-muted); }
.lk-link_muted:hover { color: var(--kln-ink); }
.lk-back { display: inline-flex; align-items: center; gap: 6px; margin-bottom: 20px; font-size: var(--kln-fs-label); color: var(--kln-muted); text-decoration: none; }
.lk-back:before { content: "←"; }
.lk-back:hover { color: var(--kln-red); text-decoration: none; }
.lk .lk-btn { display: inline-flex; align-items: center; justify-content: center; width: auto; height: var(--kln-h-control); line-height: normal; margin: 0; padding: 0 24px; border-radius: var(--kln-r-sm); font-size: 14px; cursor: pointer; }
.lk-empty { padding: 32px; border: 1px dashed var(--kln-border); border-radius: var(--kln-r-md); text-align: center; }
.lk-empty__text { max-width: 420px; margin: 0 auto 18px; color: var(--kln-muted); }
.lk-alert { margin-bottom: 20px; padding: 12px 16px; border-radius: var(--kln-r-sm); font-size: var(--kln-fs-label); }
.lk-alert_success { background: var(--kln-success-soft); color: var(--kln-success); }
.lk-alert_error { background: var(--kln-red-soft); color: var(--kln-error); }
.lk-alert p, .lk-alert font { margin: 0; color: inherit; font-size: inherit; }
.lk-paid { color: var(--kln-success); font-weight: 600; }

/* Статус заказа: принят — нейтральный, оплачен/в работе — тёплый, выполнен — зелёный, отменён — серый. */
.lk-status { display: inline-flex; align-items: center; padding: 3px 10px; border-radius: 999px; background: var(--kln-surface); font-size: var(--kln-fs-small); font-weight: 600; line-height: 1.4; color: var(--kln-text); white-space: nowrap; }
.lk-status_P { background: var(--kln-soft); color: #9a5b12; }
.lk-status_F { background: var(--kln-success-soft); color: var(--kln-success); }
.lk-status_canceled { background: var(--kln-surface); color: var(--kln-muted); font-weight: 400; }

/* Главная кабинета */
.lk-dash { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; margin-bottom: 36px; }
.lk-dash__value { display: block; margin-top: 4px; font-size: 30px; font-weight: 700; font-variant-numeric: lining-nums tabular-nums; line-height: 1.1; color: var(--kln-ink); }
.lk-dash__bonus { border-color: transparent; background: var(--kln-soft); }
.lk-dash__bonus .lk-dash__value { color: var(--kln-red); }

/* Вкладки заказов */
.lk-tabs { display: flex; gap: 4px; margin-bottom: 20px; border-bottom: 1px solid var(--kln-line); overflow-x: auto; scrollbar-width: none; }
.lk-tabs::-webkit-scrollbar { display: none; }
.lk-tabs__item { flex: 0 0 auto; margin-bottom: -1px; padding: 10px 14px; border-bottom: 2px solid transparent; font-size: var(--kln-fs-label); color: var(--kln-muted); text-decoration: none; white-space: nowrap; }
.lk-tabs__item:hover { color: var(--kln-ink); text-decoration: none; }
.lk-tabs__item._active { border-bottom-color: var(--kln-red); color: var(--kln-ink); font-weight: 600; }

/* Заказ в списке */
.lk-orders { display: flex; flex-direction: column; gap: 12px; }
.lk-order { border: 1px solid var(--kln-line); border-radius: var(--kln-r-md); background: #fff; transition: border-color .15s; }
.lk-order:hover,
.lk-order._open { border-color: var(--kln-border); }
.lk-order__head { display: grid; grid-template-columns: minmax(0, 1fr) auto auto 20px; align-items: center; gap: 16px; width: 100%; padding: 18px 22px; border: 0; background: none; color: inherit; font: inherit; text-align: left; text-decoration: none; cursor: pointer; }
a.lk-order__head:hover { color: inherit; text-decoration: none; }
.lk-order_static .lk-order__head { grid-template-columns: minmax(0, 1fr) auto auto; }
.lk-order__head:focus-visible { outline: none; box-shadow: var(--kln-ring); border-radius: var(--kln-r-md); }
.lk-order__name { font-size: var(--kln-fs-body); font-weight: 600; color: var(--kln-ink); }
.lk-order__date { display: block; font-size: var(--kln-fs-small); font-weight: 400; color: var(--kln-muted); }
.lk-order__sum { font-size: 17px; font-weight: 600; color: var(--kln-ink); white-space: nowrap; }
.lk-order__chevron { width: 10px; height: 10px; justify-self: center; border-right: 2px solid var(--kln-muted); border-bottom: 2px solid var(--kln-muted); transform: translateY(-3px) rotate(45deg); transition: transform .2s; }
.lk-order._open .lk-order__chevron { transform: translateY(2px) rotate(-135deg); }
.lk-order__body { padding: 0 22px 20px; border-top: 1px solid var(--kln-line); }
.lk-order__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; }
.lk-order__body .lk-order__actions { padding-top: 18px; border-top: 1px solid var(--kln-line); }
.lk-order_static .lk-order__actions { padding: 0 22px 18px; }
.lk-order__note { font-size: var(--kln-fs-small); color: var(--kln-muted); }

/* Миниатюры товаров в последнем заказе */
.lk-thumbs { display: flex; gap: 8px; padding: 0 22px 16px; overflow-x: auto; scrollbar-width: thin; }
.lk-thumbs__item { position: relative; flex: 0 0 64px; height: 64px; overflow: hidden; border: 1px solid var(--kln-line); border-radius: var(--kln-r-sm); background: #fff; }
.lk-thumbs__item img { width: 100%; height: 100%; object-fit: cover; }
.lk-thumbs__qty { position: absolute; right: 3px; bottom: 3px; padding: 0 5px; border-radius: 4px; background: rgba(30, 30, 30, .75); font-size: 12px; line-height: 18px; color: #fff; }

/* Состав заказа */
.lk .lk-items { margin: 0; padding: 0; list-style: none; }
.lk .lk-items__row { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; align-items: center; gap: 14px; margin: 0; padding: 12px 0; border-bottom: 1px solid var(--kln-line); }
.lk .lk-items__row:before { display: none; }
.lk-items_priced .lk-items__row { grid-template-columns: 56px minmax(0, 1fr) auto 100px; }
.lk-items__img { display: block; width: 56px; height: 56px; overflow: hidden; border: 1px solid var(--kln-line); border-radius: var(--kln-r-sm); }
.lk-items__img img { width: 100%; height: 100%; object-fit: cover; }
.lk-items__info { display: flex; flex-direction: column; min-width: 0; }
.lk-items__name { font-size: var(--kln-fs-label); line-height: 1.35; color: var(--kln-ink); text-decoration: none; }
.lk-items__name:hover { color: var(--kln-red); text-decoration: none; }
.lk-items__prop { font-size: var(--kln-fs-small); color: var(--kln-muted); }
.lk-items__qty { font-size: var(--kln-fs-small); color: var(--kln-muted); white-space: nowrap; }
.lk-items__price { font-weight: 600; color: var(--kln-ink); text-align: right; white-space: nowrap; }

/* Итоги и свойства: подпись слева, значение справа */
.lk .lk-summary { margin: 0; padding: 14px 0; }
.lk-summary__row { display: flex; justify-content: space-between; gap: 16px; padding: 4px 0; font-size: var(--kln-fs-label); }
.lk-summary__row dt { font-weight: 400; color: var(--kln-muted); }
.lk-summary__row dd { margin: 0; text-align: right; color: var(--kln-ink); }
.lk-summary__row_total { margin-top: 6px; padding-top: 10px; border-top: 1px solid var(--kln-line); font-size: 17px; }
.lk-summary__row_total dt,
.lk-summary__row_total dd { font-weight: 600; color: var(--kln-ink); }
.lk .lk-props { margin: 0; }
.lk-props > div { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 12px; padding: 6px 0; font-size: var(--kln-fs-label); }
.lk-props dt { font-weight: 400; color: var(--kln-muted); }
.lk-props dd { margin: 0; color: var(--kln-ink); overflow-wrap: anywhere; }

/* Страница заказа */
.lk-od-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 16px 24px; margin-bottom: 36px; }
.lk-od-head__main { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; }
.lk-od-head__date { font-size: var(--kln-fs-label); color: var(--kln-muted); }
.lk-od-head__sum { font-size: 26px; font-weight: 700; line-height: 1; color: var(--kln-ink); }
.lk-od-head .lk-order__actions { grid-column: 1 / -1; padding-top: 16px; border-top: 1px solid var(--kln-line); }
.lk-od-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 0 40px; margin-bottom: 36px; }
.lk-od-cols .lk-section { margin-bottom: 0; }
.lk-pay { position: relative; }
.lk-pay summary { list-style: none; }
.lk-pay summary::-webkit-details-marker { display: none; }
.lk-pay__body { margin-top: 12px; padding: 16px; border: 1px solid var(--kln-line); border-radius: var(--kln-r-sm); }

/* Формы: подпись над полем, поля в две колонки */
.lk-form { max-width: 760px; }
.lk-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 20px; }
.lk-field { display: flex; flex-direction: column; min-width: 0; margin: 0; }
.lk-field_wide { grid-column: 1 / -1; }
.lk .lk-field__label { display: block; margin: 0 0 6px; font-size: var(--kln-fs-small); font-weight: 600; color: var(--kln-ink); }
.lk-field__label .req { margin-left: 2px; color: var(--kln-red); }
.lk-field__hint { margin-top: 6px; font-size: var(--kln-fs-small); line-height: 1.4; color: var(--kln-muted); }
.lk .form-input,
.lk .lk-field select,
.lk .lk-field textarea { width: 100%; max-width: none; margin: 0; }
.lk .lk-field textarea { min-height: 96px; padding: 12px 14px; border: 1px solid var(--kln-border); border-radius: var(--kln-r-sm); font: inherit; font-size: 15px; resize: vertical; }
.lk .form-input._locked { background: var(--kln-surface); color: var(--kln-muted); cursor: default; }
.lk .form-input._locked:focus { border-color: var(--kln-border); box-shadow: none; }
.lk-form__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; padding-top: 24px; border-top: 1px solid var(--kln-line); }

.lk-person { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 28px; align-items: start; }
.lk-photo { position: relative; display: flex; flex-direction: column; align-items: center; gap: 8px; margin: 0; cursor: pointer; }
.lk-photo__img,
.lk-photo__initial { width: 120px; height: 120px; border-radius: 50%; }
.lk-photo__img { margin: 0; object-fit: cover; }
.lk-photo__initial { display: flex; align-items: center; justify-content: center; background: var(--kln-soft); color: var(--kln-red); font-family: var(--kln-font-head); font-size: 52px; font-weight: 600; }
.lk-photo__img[hidden],
.lk-photo__initial[hidden] { display: none; }
.lk-photo__action { font-size: var(--kln-fs-small); font-weight: 600; color: var(--kln-red); }
.lk-photo:hover .lk-photo__action { text-decoration: underline; text-underline-offset: 3px; }
.lk-photo__input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.lk-photo:focus-within .lk-photo__img,
.lk-photo:focus-within .lk-photo__initial { box-shadow: var(--kln-ring); }

.lk-pass { position: relative; display: block; }
.lk-pass .form-input { padding-right: 46px; }
.lk-pass__eye { position: absolute; top: 0; right: 0; width: 46px; height: var(--kln-h-control); border: 0; background: var(--kln-muted); -webkit-mask: url(../img/icons/eye.svg) no-repeat center / 20px; mask: url(../img/icons/eye.svg) no-repeat center / 20px; cursor: pointer; }
.lk-pass__eye._on { background: var(--kln-red); }

/* Адреса доставки */
.lk .lk-addresses { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
.lk .lk-address { display: flex; flex-direction: column; gap: 16px; margin: 0; }
.lk .lk-address:before { display: none; }
.lk-address__body { flex: 1 1 auto; display: flex; flex-direction: column; gap: 4px; }
.lk-address__name { margin-bottom: 4px; font-size: 17px; font-weight: 600; color: var(--kln-ink); text-decoration: none; }
.lk-address__name:hover { color: var(--kln-red); text-decoration: none; }
.lk-address__line { font-size: var(--kln-fs-label); line-height: 1.45; color: var(--kln-text); overflow-wrap: anywhere; }
.lk-address__line_muted { color: var(--kln-muted); }
.lk-address__actions { display: flex; gap: 20px; padding-top: 14px; border-top: 1px solid var(--kln-line); }

/* Поле «Город» с поиском — по размерам как остальные поля */
.lk .location-block-wrapper .bx-sls .dropdown-block { border: 1px solid var(--kln-border); border-radius: var(--kln-r-sm); }
.lk .location-block-wrapper .bx-sls .bx-ui-sls-container,
.lk .location-block-wrapper .bx-sls .bx-ui-sls-container input { height: calc(var(--kln-h-control) - 2px); font-family: var(--kln-font); font-size: 15px; }

/* Отмена заказа: стандартный шаблон Битрикса */
.lk-cancel .bx-order-cancel { padding: 0; }
.lk-cancel textarea { width: 100%; min-height: 110px; margin: 8px 0 16px; padding: 12px 14px; border: 1px solid var(--kln-border); border-radius: var(--kln-r-sm); font: inherit; }
.lk .lk-cancel input[type="submit"] { height: var(--kln-h-control); padding: 0 24px; border: 1px solid var(--kln-red); border-radius: var(--kln-r-sm); background: var(--kln-red); color: #fff !important; font-family: var(--kln-font); font-size: 14px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; cursor: pointer; }

@media (max-width: 1023px) {
    .lk { grid-template-columns: minmax(0, 1fr); gap: 24px; }
    .lk-aside { min-width: 0; }
    .lk-aside { position: static; padding: 0; border: 0; }
    .lk-user { padding-bottom: 14px; margin-bottom: 0; border: 0; }
    /* Разделы — строка вкладок с прокруткой */
    .lk-nav { flex-direction: row; gap: 8px; margin: 0 -16px; padding: 0 16px 2px; overflow-x: auto; scrollbar-width: none; }
    .lk-nav::-webkit-scrollbar { display: none; }
    .lk-nav__link { flex: 0 0 auto; margin: 0; padding: 8px 14px; border: 1px solid var(--kln-line); border-radius: 999px; font-size: var(--kln-fs-small); white-space: nowrap; }
    .lk-nav__link._active { border-color: transparent; }
    .lk-nav__link_out { margin: 0; padding-top: 8px; border-top: 1px solid var(--kln-line); border-radius: 999px; }
}
@media (max-width: 767px) {
    .lk { margin-bottom: 40px; }
    .lk .lk-section__title { font-size: 21px; }
    .lk-card { padding: 16px 18px; }
    .lk-dash { grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 28px; }
    .lk-dash__value { font-size: 26px; }
    .lk-order__head { grid-template-columns: minmax(0, 1fr) auto 16px; gap: 6px 12px; padding: 16px; }
    .lk-order_static .lk-order__head { grid-template-columns: minmax(0, 1fr) auto; }
    .lk-order__head .lk-status { grid-row: 2; grid-column: 1; justify-self: start; }
    .lk-order__head .lk-order__sum { grid-row: 1; grid-column: 2; }
    .lk-order__chevron { grid-row: 1; grid-column: 3; }
    .lk-order__body { padding: 0 16px 16px; }
    .lk-thumbs, .lk-order_static .lk-order__actions { padding-left: 16px; padding-right: 16px; }
    .lk-items_priced .lk-items__row { grid-template-columns: 56px minmax(0, 1fr) auto; }
    .lk-items_priced .lk-items__qty { grid-column: 2; grid-row: 2; margin-top: -10px; }
    .lk-items_priced .lk-items__price { grid-column: 3; grid-row: 1 / 3; }
    .lk-od-head { grid-template-columns: 1fr; }
    .lk-props > div { grid-template-columns: 1fr; gap: 0; }
    .lk-grid { grid-template-columns: 1fr; gap: 16px; }
    .lk-person { grid-template-columns: 1fr; gap: 20px; }
    .lk-photo { flex-direction: row; gap: 16px; }
    .lk-photo__img, .lk-photo__initial { width: 72px; height: 72px; font-size: 32px; }
    .lk-form__actions .lk-btn { width: 100%; }
    .lk-empty { padding: 24px 16px; }
}
@media (max-width: 400px) {
    .lk-dash { grid-template-columns: 1fr; }
}
/* Поля адреса: убрать отступы и узкую ширину из стилей подрядчика и обёртки bootstrap */
.lk .sale-profile-detail-form .lk-field.form-group { max-width: none; margin: 0; }
.lk .sale-profile-detail-form > .lk-section:first-of-type .lk-field { max-width: calc(50% - 10px); }
.lk .sale-profile-detail-form .lk-field > .col-md-12 { width: 100%; padding: 0; float: none; }
@media (max-width: 767px) {
    .lk .sale-profile-detail-form > .lk-section:first-of-type .lk-field { max-width: none; }
}
.lk .lk-cancel input[type="submit"]:hover { background: var(--kln-red-hover); border-color: var(--kln-red-hover); }
.lk-cancel .bx-order-cancel > a:first-child { display: inline-flex; margin-bottom: 20px; font-size: var(--kln-fs-label); color: var(--kln-muted); text-decoration: none; }
.lk-cancel .bx-order-cancel > a:first-child:before { content: "← "; white-space: pre; }
.lk-cancel .bx-order-cancel > a:first-child:hover { color: var(--kln-red); }
.lk-cancel .bx-order-cancel a { color: var(--kln-red); }

/* Полоса для гостей на главной: два предложения (промокод −10% и бонусы) и одна кнопка регистрации */
.kln-bonus-strip__offers { flex: 1 1 auto; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; min-width: 0; }
.kln-bonus-strip__offer { display: flex; align-items: center; gap: 20px; min-width: 0; }
.kln-bonus-strip__offer + .kln-bonus-strip__offer { padding-left: 32px; border-left: 1px solid rgba(219, 39, 46, .15); }
.kln-bonus-strip__offers .kln-bonus-strip__value { font-size: 52px; }
.kln-bonus-strip__note a { color: var(--kln-red); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 1023px) {
    .kln-bonus-strip__inner { flex-wrap: wrap; }
    .kln-bonus-strip__offers { flex-basis: 100%; grid-template-columns: 1fr; gap: 16px; }
    .kln-bonus-strip__offer { gap: 16px; text-align: left; }
    .kln-bonus-strip__offer + .kln-bonus-strip__offer { padding: 16px 0 0; border-left: 0; border-top: 1px solid rgba(219, 39, 46, .15); }
    .kln-bonus-strip__offers .kln-bonus-strip__value { flex: 0 0 96px; font-size: 40px; }
}

/* Карточка товара: промокод −10% для гостей, над строкой про бонусы */
.product-page__info .kln-promo-note { order: 5; display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: var(--kln-r-sm); background: var(--kln-soft); color: var(--kln-text); text-decoration: none; transition: background-color .15s; }
.product-page__info .kln-promo-note:hover { background: var(--kln-red-soft); color: var(--kln-text); text-decoration: none; }
.kln-promo-note__value { flex: 0 0 auto; font-size: 20px; font-weight: 700; line-height: 1; color: var(--kln-red); }
.kln-promo-note__text { font-size: 14px; line-height: 1.4; }

/* ---------- Главная: хиты, новинки, акции — сеткой по 8 карточек вместо каруселей ---------- */
/* Отступы между карточками — как в каталоге (main.css .products-list): 20px, на телефоне 4px. */
.products-list.kln-products-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; margin-bottom: 0; }
.products-list.kln-products-grid .card-product { width: auto; margin: 0; }
@media (min-width: 691px) and (max-width: 992px) {
    .products-list.kln-products-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    /* 8 карточек в три колонки дают неполную последнюю строку — показываем ровно две строки (6) */
    .products-list.kln-products-grid .card-product:nth-child(n+7) { display: none; }
}
@media (max-width: 690px) {
    .products-list.kln-products-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 480px) {
    .products-list.kln-products-grid { gap: 10px 4px; }
}

/* ---------- Главная: преимущества под слайдером ---------- */
/* Белый фон (иконки — прозрачные PNG), пункты ровными колонками: 3 или 4 в ряд, на телефоне по два. */
.sec-slider-home:before { display: none; }
.sec-slider-home { padding-bottom: 16px; }
.trigers { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px 32px; padding-top: 28px; }
.trigers .trigers__el { display: flex; align-items: center; gap: 16px; width: auto; margin: 0; padding: 0; font-size: var(--kln-fs-label); line-height: 1.4; color: var(--kln-ink); }
.trigers .trigers__el .trigers__icon { flex: 0 0 80px; width: 80px; height: 80px; max-width: none; margin: 0 -6px 0 -8px; }
.trigers .trigers__el br { display: none; }
.trigers .trigers__el .trigers__icon img { width: 100%; height: 100%; object-fit: contain; }
@media (max-width: 767px) {
    .trigers { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 12px; padding-top: 20px; }
    .trigers .trigers__el { gap: 10px; font-size: 13px; line-height: 1.3; }
    .trigers .trigers__el .trigers__icon { flex-basis: 56px; width: 56px; height: 56px; margin: 0 -4px 0 -6px; }
    .trigers .trigers__el br { display: none; }
}
/* Карусель давала блоку нижний отступ, сетка — нет: возвращаем, чтобы следующий блок не прилипал. */
.s_slider:has(.kln-products-grid) { padding-bottom: 45px; }
.kln-bonus-strip { padding-top: 30px; }
@media (max-width: 767px) {
    .s_slider:has(.kln-products-grid) { padding-bottom: 30px; }
    .kln-bonus-strip { padding-top: 20px; }
}
/* Заголовок блока товаров на главной: карусель давала воздух под заголовком, сетка — нет. */
.s_slider:has(.kln-products-grid) .sec-head { margin-bottom: 36px; }
@media (max-width: 767px) {
    .s_slider:has(.kln-products-grid) .sec-head { margin-bottom: 24px; }
}

/* ---------- Хлебные крошки: по центру и приглушённые, чтобы не спорили с заголовком ---------- */
.bread-crumbs { justify-content: center; text-align: center; row-gap: 4px; margin-bottom: 0; } /* в корзине bootstrap даёт ul margin-bottom: 10px — плашка выше снизу */
.bread-crumbs .bread-crumbs__link,
.bread-crumbs .bread-crumbs__current { color: var(--kln-muted); }
.bread-crumbs .bread-crumbs__link:hover { color: var(--kln-red); text-decoration: none; }

/* ---------- «В корзину» в карточках каталога и главной: спокойная кнопка ---------- */
/* Без капса и красной рамки — карточка не должна кричать; красный появляется при наведении. */
body .card-product .add-basket {
    height: 42px;
    line-height: 40px;
    border: 1px solid var(--kln-border) !important;
    background: #fff;
    color: var(--kln-ink);
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0;
    text-transform: none;
}
body .card-product .add-basket:hover { border-color: var(--kln-red) !important; background: #fff; color: var(--kln-red); }
body .card-product .add-basket._added { border-color: transparent !important; background: var(--kln-red-soft); color: var(--kln-red); }
/* «Уже в корзине»: спокойный зелёный с галочкой и обычным регистром. В разметке и JS карточек текст
   заглавными («УЖЕ В КОРЗИНЕ») — его прячем и выводим подпись здесь; «Добавить еще» при наведении как было. */
body .card-product .add-basket._added { display: flex; align-items: center; justify-content: center; gap: 6px; background: var(--kln-success-soft); color: var(--kln-success); font-size: 0; }
body .card-product .add-basket._added::after { content: "Уже в корзине"; font-size: 14px; }
body .card-product .add-basket._added::before { content: ""; display: inline-block; flex: 0 0 14px; width: 14px; height: 14px; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; }
body .card-product .add-basket._added:hover { background: var(--kln-success-soft); color: var(--kln-success); }
body .card-product .add-basket._added span { font-size: 14px; }
@media (max-width: 480px) {
    body .card-product .add-basket._added::after,
    body .card-product .add-basket._added span { font-size: 13px; }
}
@media (max-width: 480px) {
    body .card-product .add-basket { height: 36px; line-height: 34px; font-size: 13px; }
}

/* ---------- Карточка: листание фото при движении мыши ---------- */
/* Второе фото «при наведении» у таких карточек не нужно — его заменяет листание. */
.card-product .kln-hover-gallery .card-product__img_next { display: none; }
.kln-hover-gallery__bars { position: absolute; left: 10px; right: 10px; bottom: 8px; z-index: 3; display: flex; gap: 4px; opacity: 0; transition: opacity .15s; pointer-events: none; }
.kln-hover-gallery__bars span { flex: 1 1 0; height: 2px; border-radius: 1px; background: rgba(30, 30, 30, .18); }
.kln-hover-gallery__bars span._active { background: var(--kln-red); }
.card-product:hover .kln-hover-gallery__bars { opacity: 1; }
/* Красная полоса снизу карточки при наведении (main.css .card-product:before) — убрана, хватает рамки и тени. */
.card-product:before,
.card-product:hover:before { display: none; }

/* ---------- Страница товара: фото крупнее ---------- */
/* Было окно фиксированной высоты 505px — вертикальные снимки 2:3 стояли узкой полосой по центру.
   Теперь окно по пропорции 2:3 на всю ширину колонки, миниатюры тянутся на ту же высоту. */
@media (min-width: 993px) {
    .product-gallery .product-gallery__item,
    .product-gallery .gallery-video { height: auto; aspect-ratio: 2 / 3; max-height: 720px; border-radius: var(--kln-r-md); overflow: hidden; }
    /* Не растягиваем картинку больше её настоящего размера — маленькие исходники иначе размываются. */
    /* Картинка целиком вписана в окно 2:3 (max-height: 100% в окне с aspect-ratio не срабатывал — вытянутые фото обрезались),
       маленькие исходники не растягиваются — scale-down. */
    .product-gallery .product-gallery__item { position: relative; }
    .product-gallery .product-gallery__item img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; max-height: none; object-fit: scale-down; object-position: center top; }
}

/* ---------- Главная: текст о магазине ---------- */
/* Вступление крупнее, дальше — четыре коротких блока с тегами: что есть, из чего, в каком стиле, бренды. */
.h-about-content { max-width: 1040px; }
.h-about-content .h-about-content__desc { font-size: var(--kln-fs-body); line-height: 1.6; color: var(--kln-text); }
.h-about-content .h-about-content__desc .kln-about__lead { max-width: 820px; margin: 0 0 36px; font-size: 19px; line-height: 1.55; color: var(--kln-ink); }
.kln-about__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 48px; }
.h-about-content .kln-about__title { margin: 0 0 12px; font-family: var(--kln-font); font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--kln-muted); }
.h-about-content .h-about-content__desc .kln-about__text { margin: 0 0 12px; font-size: var(--kln-fs-label); color: var(--kln-text); }
.h-about-content .kln-about__tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.h-about-content .kln-about__tags li { margin: 0; padding: 0; }
.h-about-content .kln-about__tags li:before { display: none; }
.kln-about__tags a,
.kln-about__tags span { display: inline-flex; align-items: center; min-height: 34px; padding: 6px 14px; border: 1px solid var(--kln-line); border-radius: 999px; background: #fff; font-size: 14px; line-height: 1.3; color: var(--kln-ink); text-decoration: none; transition: border-color .15s, color .15s, background-color .15s; }
.kln-about__tags a:hover { border-color: var(--kln-red); color: var(--kln-red); text-decoration: none; }
.kln-about__tags_plain span { border-color: transparent; background: var(--kln-surface); color: var(--kln-text); }
.h-about-content .h-about-content__desc .kln-about__outro { margin: 36px 0 0; font-family: var(--kln-font-head); font-size: 22px; font-style: italic; color: var(--kln-ink); }
@media (max-width: 767px) {
    .h-about-content .h-about-content__desc .kln-about__lead { margin-bottom: 28px; font-size: 17px; }
    .kln-about__grid { grid-template-columns: 1fr; gap: 24px; }
    .kln-about__tags a, .kln-about__tags span { min-height: 32px; padding: 5px 12px; font-size: 13px; }
}

/* Цены в карточках — шрифтом заголовков (Jun), как цена на странице товара. */
.card-product .card-product__prices ._curent { font-family: var(--kln-font-head); font-size: 24px; font-weight: 400; line-height: 1.1; letter-spacing: .01em; }
.card-product .card-product__prices ._old { font-family: var(--kln-font-head); font-size: 18px; }
@media (max-width: 480px) {
    .card-product .card-product__prices ._curent { font-size: 20px; }
    .card-product .card-product__prices ._old { font-size: 15px; }
}
/* Фон подвала (footer_bg.jpg в ::before) заходит на ~255px вверх и закрывал низ текста о магазине — текст поверх. */
body .section.s_about { position: relative; z-index: 2 !important; } /* custom.css ставил -1 !important */

/* ---------- Подвал ---------- */
/* Спокойный светлый фон без узора и надписи «КАЛИНА». Колонки: о магазине и связь | меню | каталог | магазины.
   Заголовки колонок одного вида (мелкий капс), ссылки — основной текст, телефон — крупно. */
.main-footer.kln-footer { border-top: 1px solid var(--kln-line); background: var(--kln-surface); overflow: visible; font-family: var(--kln-font); color: var(--kln-text); }
.main-footer.kln-footer:before,
.main-footer.kln-footer:after { display: none; }
.kln-footer__grid { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(150px, .7fr) minmax(340px, 1.6fr) minmax(240px, 1.1fr); gap: 40px 48px; padding: 64px 0 48px; }

.kln-footer__brand { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
.kln-footer .kln-footer__logo { display: block; width: 150px; margin: 0; }
.kln-footer .kln-footer__logo img { display: block; width: 100%; height: auto; }
.kln-footer__tagline { max-width: 280px; margin: 0; font-size: var(--kln-fs-small); line-height: 1.5; color: var(--kln-muted); }
.kln-footer__phone { font-size: 22px; font-weight: 600; line-height: 1.2; color: var(--kln-ink); text-decoration: none; white-space: nowrap; }
.kln-footer__phone:hover { color: var(--kln-red); text-decoration: none; }

/* Мессенджеры (как в шапке) и соцсети из инфоблока — один ряд круглых кнопок. */
.kln-footer__social { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.kln-footer__social > a,
.kln-footer__social .social-list li a { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border: 1px solid var(--kln-border); border-radius: 50%; background: #fff; color: var(--kln-ink); transition: border-color .15s, color .15s; }
.kln-footer__social > a:hover,
.kln-footer__social .social-list li a:hover { border-color: var(--kln-red); color: var(--kln-red); }
.kln-footer__social > a svg { width: 18px; height: 18px; }
.kln-footer__social .social-list { display: contents; }
.kln-footer__social .social-list__title { display: none; }
.kln-footer__social .social-list ul { display: contents; margin: 0; padding: 0; list-style: none; }
.kln-footer__social .social-list li { margin: 0; padding: 0; }
.kln-footer__social .social-list li:before { display: none; }
.kln-footer__social .social-list img { width: 18px; height: 18px; object-fit: contain; }

/* Заголовки колонок */
.kln-footer .footer-menu-block__title,
.kln-footer .main-footer__shops_title { margin: 0 0 16px; font-family: var(--kln-font); font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--kln-muted); }
.kln-footer .footer-menu-block { width: auto; margin: 0; padding: 0; }
.kln-footer .footer-menu ul { margin: 0; padding: 0; list-style: none; }
.kln-footer .footer-menu li { margin: 0 0 10px; padding: 0; }
.kln-footer .footer-menu li:before { display: none; }
.kln-footer .footer-menu a { font-size: var(--kln-fs-label); line-height: 1.4; color: var(--kln-ink); text-decoration: none; transition: color .15s; }
.kln-footer .footer-menu a:hover,
.kln-footer .footer-menu a._active { color: var(--kln-red); text-decoration: none; }
.kln-footer .footer-menu__double ul { display: block; columns: 2; column-gap: 32px; }
.kln-footer .footer-menu__double li { width: auto; break-inside: avoid; }
.kln-footer .footer-menu li, .kln-footer .footer-menu a { width: auto; float: none; }

/* Магазины */
.kln-footer .main-footer__shops { width: auto; margin: 0; padding: 0; }
.kln-footer .footer-shop { position: relative; margin: 0 0 20px; padding: 0 0 0 26px; }
.kln-footer .footer-shop:last-child { margin-bottom: 0; }
.kln-footer .footer-shop:before { content: ""; position: absolute; left: 0; top: 2px; width: 18px; height: 18px; background: var(--kln-red); -webkit-mask: url(../img/icons/pin.svg) no-repeat center / contain; mask: url(../img/icons/pin.svg) no-repeat center / contain; }
.kln-footer .footer-shop p { margin: 0; font-size: var(--kln-fs-label); font-weight: 600; line-height: 1.4; color: var(--kln-ink); }
.kln-footer .footer-shop span { display: block; margin: 2px 0 4px; font-size: var(--kln-fs-small); line-height: 1.45; color: var(--kln-muted); }
.kln-footer .footer-shop .footer-shop__mode { font-size: var(--kln-fs-small); font-weight: 400; line-height: 1.45; color: var(--kln-text); }

/* Нижняя строка */
.kln-footer .main-footer__bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 24px; margin: 0; padding: 20px 0 28px; border-top: 1px solid var(--kln-line); font-size: var(--kln-fs-small); color: var(--kln-muted); }
.kln-footer .main-footer__bottom .footer-coperight,
.kln-footer .main-footer__bottom .footer-links { margin: 0; font-size: var(--kln-fs-small); color: var(--kln-muted); }
.kln-footer .main-footer__bottom a { margin-left: 16px; color: var(--kln-muted); text-decoration: none; }
.kln-footer .main-footer__bottom a:first-child { margin-left: 0; }
.kln-footer .main-footer__bottom a:hover { color: var(--kln-red); }

@media (max-width: 1100px) {
    .kln-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px; padding: 48px 0 40px; }
}
@media (max-width: 600px) {
    .kln-footer__grid { grid-template-columns: 1fr; gap: 32px; padding: 40px 0 32px; }
    .kln-footer__phone { font-size: 20px; }
    .kln-footer .main-footer__bottom { flex-direction: column; align-items: flex-start; }
}

/* Большая серая надпись «КАЛИНА» за текстом о магазине (about_kalina.png) — убрана вместе с узором подвала. */
.section.s_about:before { display: none; }
/* Каталог в подвале: две колонки через columns (в main.css — flex с li по 50%, из-за чего строки ломались по словам). */
.kln-footer .footer-menu.footer-menu__double ul { display: block; columns: 2; column-gap: 32px; }
.kln-footer .footer-menu.footer-menu__double ul li { width: auto; padding-right: 0; }
.kln-footer .footer-menu a { display: inline; padding: 0; margin: 0; }
@media (max-width: 600px) {
    /* На телефоне меню и каталог — обе в две колонки с одинаковым шагом (main.css вытягивал меню в строку). */
    .kln-footer .footer-menu ul,
    .kln-footer .footer-menu.footer-menu__double ul { display: block; columns: 2; column-gap: 24px; }
    .kln-footer .footer-menu ul li,
    .kln-footer .footer-menu.footer-menu__double ul li { width: auto; margin: 0 0 10px; padding: 0; break-inside: avoid; }
}
/* SVG-иконкам мессенджеров старые стили давали отступ справа — иконка уезжала из центра кружка. */
.kln-footer__social > a svg { margin: 0; flex: 0 0 auto; }
/* Связь в подвале: «Написать нам» — личные чаты по номеру магазина, «Наши каналы» — соцсети и каналы. */
.kln-footer__contact { display: flex; flex-direction: column; gap: 8px; }
.kln-footer__contact + .kln-footer__contact { margin-top: 4px; }
.kln-footer__label { font-size: 13px; line-height: 1.3; color: var(--kln-muted); }
/* Преимущества: линейные иконки Davooda — 48px без отрицательных отступов (они были под объёмные 3D-иконки). */
.trigers .trigers__el .trigers__icon { flex: 0 0 48px; width: 48px; height: 48px; margin: 0; }
@media (max-width: 767px) {
    .trigers .trigers__el .trigers__icon { flex-basis: 40px; width: 40px; height: 40px; margin: 0; }
}

/* Ровные переносы в коротких текстах: заголовки, подписи, преимущества.
   text-wrap: balance выравнивает строки по длине, чтобы последняя не висела одним словом.
   Только короткие блоки (браузер балансирует до ~6 строк) — длинные абзацы и описания не трогаем. */
h1, h2, h3, h4, h5, h6,
.page-title, .sec-title, .small-title, .bx-title,
.trigers__cont, .trigers__cont p,
.kln-about__title, .kln-bonus-strip__title, .kln-confirm__title,
.lk-section__title, .lk-section__subtitle, .lk-items__name, .lk-order__name,
.product-item-title, .product-item-info-container-title, .product-dignity--title,
.catalog-categories__name, .sidebar-category__title, .filter-block__title, .pannel-col__title,
.footer-menu-block__title, .main-footer__shops_title,
.bx-soa-section-title, .main-basket__total-title, .main-basket__coupon-title, .p-added-car__title { text-wrap: balance; }

/* Преимущества под карточкой товара (news.list/dignity): три колонки по центру —
   крупная иконка сверху, под ней заголовок и подпись; на телефоне — столбиком. */
.product-dignity { margin: 0; padding: 56px 0 64px; }
.product-dignity .product-dignity--row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; margin: 0; padding: 48px 0 0; list-style: none; border-top: 1px solid var(--kln-line); }
.product-dignity .product-dignity--block { display: flex; flex-direction: column; align-items: center; gap: 18px; width: auto; margin: 0; padding: 0; text-align: center; }
.product-dignity .product-dignity--icon { flex: 0 0 auto; width: 80px; height: 80px; margin: 0; padding: 0; background: none; border-radius: 0; object-fit: contain; }
.product-dignity .product-dignity--text { display: flex; flex-direction: column; align-items: center; }
.product-dignity .product-dignity--title { display: block; min-height: 0; padding: 0; margin: 0 0 8px; font-family: var(--kln-font-head); font-size: 24px; font-weight: 400; line-height: 1.2; color: var(--kln-ink); }
.product-dignity .product-dignity--paragraph { display: block; min-height: 0; margin: 0; max-width: 30ch; font-family: var(--kln-font); font-size: var(--kln-fs-body); line-height: 1.5; color: var(--kln-muted); text-wrap: pretty; }
@media (max-width: 992px) {
    .product-dignity .product-dignity--row { gap: 28px; }
    .product-dignity .product-dignity--icon { width: 68px; height: 68px; }
    .product-dignity .product-dignity--title { font-size: 21px; }
    .product-dignity .product-dignity--paragraph { font-size: var(--kln-fs-label); }
}
@media (max-width: 768px) {
    .product-dignity { padding: 40px 0 48px; }
    .product-dignity .product-dignity--row { grid-template-columns: 1fr; gap: 32px; padding-top: 32px; }
    .product-dignity .product-dignity--block { gap: 12px; }
    .product-dignity .product-dignity--icon { width: 64px; height: 64px; }
}

/* ---------- Страница товара: галерея ---------- */
@media (min-width: 993px) {
    /* Фото прижато к верху рамки 2:3 — начинается вровень с миниатюрами, а не посередине. */
    .product-gallery .product-gallery__item { align-items: flex-start; }
    /* Стрелки миниатюр — обе под миниатюрами, в своём поле, а не поверх крайних миниатюр.
       Первая миниатюра начинается вровень с фото. */
    .product-page__row .product-page__gallery .product-thumbs { height: 476px; padding: 0 0 36px; } /* 4 миниатюры × (100 + 10) + поле стрелок */
    .product-thumbs .swiper-wrapper .product-thumbs__slide { margin-bottom: 0; } /* отступ задаёт spaceBetween в main.js */
    .product-page__gallery .product-thumbs .swiper-button-prev,
    .product-page__gallery .product-thumbs .swiper-button-next { top: auto; bottom: 0; width: 50%; height: 28px; }
    /* Подложка поля стрелок: миниатюры, уехавшие вниз, не просвечивают под ними. */
    .product-page__gallery .product-thumbs::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; z-index: 5; height: 36px; background: #fff; }
    .product-page__gallery .product-thumbs .swiper-button-prev,
    .product-page__gallery .product-thumbs .swiper-button-next { z-index: 10; background: none; }
    .product-page__gallery .product-thumbs .swiper-button-prev { left: 0; }
    .product-page__gallery .product-thumbs .swiper-button-next { left: 50%; right: auto; }
}
/* Когда листать некуда (миниатюр мало или уже край), стрелки не показываем. */
.product-page__gallery .product-thumbs .swiper-button-disabled,
.product-page__gallery .product-thumbs .swiper-button-lock { opacity: 0; pointer-events: none; }

/* ---------- Страница товара: характеристики ---------- */
/* Одна таблица вместо короткого списка в карточке + таблицы ниже. Подписи читаемые, значения со ссылками на подборки. */
.product-tabs { margin-top: 48px; }
.product-tabs .product-tabs__nav { gap: 32px; margin-bottom: 8px; border-bottom-color: var(--kln-line); }
.product-tabs .product-tabs__tab { padding: 14px 0; font-family: var(--kln-font); font-size: 17px; font-weight: 600; color: var(--kln-muted); }
.product-tabs .product-tabs__tab--active { color: var(--kln-ink); }
.product-tabs .product-tabs__tab--active::after { height: 2px; background: var(--kln-red); }
.product-tabs--single .product-tabs__tab { cursor: default; }
.product-tabs .product-tabs__pane--active { margin-top: 0; }
.product-tabs .product-tabs__table { max-width: 860px; font-family: var(--kln-font); }
.product-tabs .product-tabs__table tr { background: none; border-bottom: 1px solid var(--kln-line); }
.product-tabs .product-tabs__table td { padding: 12px 0; font-family: var(--kln-font); font-size: 15px; line-height: 1.45; vertical-align: top; }
.product-tabs .product-tabs__table td:first-child { width: 40%; padding-right: 24px; color: var(--kln-muted); }
.product-tabs .product-tabs__table td:last-child { width: 60%; color: var(--kln-ink); }
.product-tabs .product-tabs__table td a { color: var(--kln-ink); text-decoration: underline; }
.product-tabs .product-tabs__table td a:hover { color: var(--kln-red); text-decoration-color: currentColor; }
.product-tabs .product-tabs__pane p { max-width: 72ch; font-family: var(--kln-font); font-size: 15px; line-height: 1.6; color: var(--kln-text); }

/* На планшете и телефоне окно фото квадратное, по ширине экрана: раньше было 450px в высоту, и квадратное фото
   стояло с пустыми полями по ~50px сверху и снизу. Квадратные снимки (их большинство) заполняют окно целиком,
   вертикальные встают по центру. */
@media (max-width: 992px) {
    .product-gallery .product-gallery__item { height: auto; aspect-ratio: 1 / 1; }
    .product-gallery .product-gallery__item { position: relative; }
    /* scale-down: большие фото вписываются в квадрат, маленькие исходники не растягиваются до размытия. */
    .product-gallery .product-gallery__item img { position: absolute; inset: 0; width: 100%; height: 100%; max-height: none; object-fit: scale-down; }
}

/* ---------- Страница товара: телефон ---------- */
@media (max-width: 767px) {
    .product-title { padding-bottom: 12px; }
    .product-page__row .product-page__gallery { margin-bottom: 0; }
    .product-page__row .product-page__gallery .product-thumbs { padding-top: 12px; }
    .product-tabs { margin-top: 32px; }
    .product-page { margin-bottom: 0; }
    /* Аккордеон в шрифте сайта, а не крупным 22px; если раздел один — это просто заголовок. */
    .product-tabs .product-tabs__accordion-header { padding: 14px 0; border-bottom-color: var(--kln-line); }
    .product-tabs .product-tabs__accordion-title { font-family: var(--kln-font); font-size: 17px; font-weight: 600; color: var(--kln-ink); }
    .product-tabs .product-tabs__accordion-header--open + .product-tabs__pane { margin-top: 0; padding: 0 0 8px; }
    .product-tabs--single .product-tabs__accordion-header { pointer-events: none; }
    .product-tabs--single .product-tabs__accordion-icon { display: none; }
    .product-tabs .product-tabs__table td { padding: 10px 0; font-size: 14px; }
    .product-tabs .product-tabs__table td:first-child { width: 45%; padding-right: 16px; }
    .product-tabs .product-tabs__table td:last-child { width: 55%; }
}

/* Карточки в ряду одной высоты сразу, без скачка: height: 100% (из правила выше) в flex-ряду каталога
   без заданной высоты не работает и отключает растягивание — каждая карточка была высотой со своё содержимое.
   В сетке и в ряду карточка тянется на всю высоту строки, кнопка прижата к низу. */
.products-list { align-items: stretch; }
.products-list .card-product { height: auto; }
.products-list .card-product .card-product__footer { margin-top: auto; }

/* ---------- Логотипы брендов: полоса на главной и страница /brands/ ---------- */
/* Размер и обрезку задают переменные из logos.json (news.list/brands/brand_logo.php). */
.brand-filters { position: absolute; pointer-events: none; }
.brand-art { --brand-scale: 1; position: relative; display: block; flex: 0 0 auto; width: calc(var(--brand-width) * var(--brand-scale)); height: calc(var(--brand-height) * var(--brand-scale)); overflow: hidden; }
.brand-art[style] img { position: absolute; left: calc(var(--brand-left) * var(--brand-scale)); top: calc(var(--brand-top) * var(--brand-scale)); width: calc(var(--brand-image-width) * var(--brand-scale)); height: calc(var(--brand-image-height) * var(--brand-scale)); max-width: none; max-height: none; }
.brand-art--enzo img { filter: url(#brand-enzo-ink); }
.brand-art--kaylin img { filter: grayscale(1) contrast(8); }
.brand-art--enzo, .brand-art--kaylin { mix-blend-mode: multiply; }

/* Страница «Бренды»: плитки с логотипом по центру и названием под ним. */
.kln-brands { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px; margin: 0 0 60px; padding: 0; list-style: none; } /* снизу отступ до подвала, как на других страницах */
.kln-brands__item { margin: 0; padding: 0; }
.kln-brands__item:before { display: none; }
.kln-brands__link { display: flex; flex-direction: column; align-items: center; gap: 14px; height: 100%; padding: 28px 20px 20px; border: 1px solid var(--kln-line); border-radius: 12px; background: #fff; color: var(--kln-ink); text-decoration: none; transition: border-color .2s, box-shadow .2s; }
.kln-brands__link:hover { border-color: rgba(0, 0, 0, .18); box-shadow: 0 6px 20px rgba(0, 0, 0, .06); color: var(--kln-ink); }
.kln-brands__logo { display: flex; align-items: center; justify-content: center; width: 100%; height: 64px; }
.kln-brands__logo > img { display: block; max-width: 156px; max-height: 52px; width: auto; height: auto; object-fit: contain; }
.kln-brands__text { font-family: var(--kln-font-head); font-size: 22px; letter-spacing: .06em; text-align: center; }
.kln-brands__name { font-size: 13px; letter-spacing: .08em; text-transform: uppercase; text-align: center; color: var(--kln-muted); }
.kln-brands__link:hover .kln-brands__name { color: var(--kln-red); }
@media (max-width: 480px) {
    .kln-brands { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .kln-brands__link { padding: 20px 10px 14px; gap: 10px; }
    .kln-brands__logo { height: 52px; }
    .kln-brands .brand-art { --brand-scale: .84; }
    .kln-brands__logo > img { max-width: 100%; max-height: 44px; }
    .kln-brands__text { font-size: 17px; }
}

/* ---------- Подчёркивание ссылок: тонкое, цветом текста с прозрачностью 50% ---------- */
/* Одно на весь сайт: !important перекрывает сокращённое text-decoration в правилах подрядчика и bootstrap
   (оно сбрасывает цвет и толщину линии). Там, где подчёркивания нет (text-decoration: none), ничего не меняется.
   Подчёркнутые span внутри ссылок (.kln-promo__more, .product-auth, .lk-photo__action) — так же. */
a, .kln-promo__more, .product-page__info .product-auth a span, .lk-photo__action {
    text-decoration-thickness: 1px !important;
    text-decoration-color: color-mix(in srgb, currentColor 50%, transparent) !important;
    text-underline-offset: 3px !important;
}

/* ---------- Плашка cookie (модуль awz:cookies.sett) ---------- */
/* Модуль печатает свои стили в конце страницы, поэтому селекторы с body — чтобы перебить их. */
body .awz_cookies_sett__message {
    width: calc(100% - 32px);
    max-width: 640px;
    left: 50%;
    right: auto;
    bottom: 16px;
    margin-left: 0;
    transform: translateX(-50%);
    background: #fff;
    color: var(--kln-text);
    font-family: var(--kln-font);
    font-size: var(--kln-fs-small);
    line-height: 1.5;
    border: 1px solid var(--kln-line);
    border-radius: var(--kln-r-md);
    box-shadow: 0 12px 40px rgba(0, 0, 0, .12), 0 2px 8px rgba(0, 0, 0, .06);
    text-align: left;
}
body .awz_cookies_sett__container { padding: 20px 24px; }
body .awz_cookies_sett__row { gap: 24px; }
body .awz_cookies_sett__col { color: var(--kln-text); }
body .awz_cookies_sett__agr_link,
body a.awz_cookies_sett__agr_link { color: var(--kln-ink); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--kln-border-strong); }
body a.awz_cookies_sett__agr_link:hover { color: var(--kln-red); text-decoration-color: currentColor; }
body .awz_cookies_sett__col__right { display: flex; flex-direction: column; gap: 8px; padding: 0; }
body .awz_cookies_sett__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 140px;
    height: 40px;
    margin: 0;
    padding: 0 20px;
    border: 1px solid var(--kln-red);
    border-radius: var(--kln-r-sm);
    font-size: var(--kln-fs-small);
    transition: background-color .15s, border-color .15s, color .15s;
}
body #awz_cookies_sett__all { background: var(--kln-red); color: #fff; }
body #awz_cookies_sett__all:hover { background: var(--kln-red-hover); border-color: var(--kln-red-hover); }
body #awz_cookies_sett__all_decline { background: #fff; color: var(--kln-ink); border-color: var(--kln-border); }
body #awz_cookies_sett__all_decline:hover { background: #fff; border-color: var(--kln-border-strong); color: var(--kln-ink); }

@media (max-width: 767.98px) {
    body .awz_cookies_sett__message { bottom: 12px; border-radius: var(--kln-r-md); text-align: left; }
    body .awz_cookies_sett__container { padding: 16px; }
    body .awz_cookies_sett__row { gap: 12px; }
    body .awz_cookies_sett__col__right { flex-direction: row; width: 100%; }
    body .awz_cookies_sett__btn { flex: 1 1 0; min-width: 0; }
}

/* ---------- Текстовые страницы (Доставка, Для покупателей и т. п.): крупнее текст, спокойнее заголовки ---------- */
/* Только прямые потомки .page-content — компоненты внутри страниц не задеваем. */
.page-content > p, .page-content > ul > li, .page-content > ol > li,
.kln-delivery p, .kln-delivery li { font-size: 17px; line-height: 1.6; color: var(--kln-text); }
.page-content > p, .kln-delivery > p { margin: 0 0 14px; }
.page-content > ul, .page-content > ol { margin: 0 0 18px; }
.page-content > ul > li, .page-content > ol > li { margin-bottom: 8px; }
.page-content > h2, .kln-delivery > h2 { margin: 52px 0 18px; font-family: var(--kln-font-head); font-size: 28px; font-weight: 600; line-height: 1.2; color: var(--kln-ink); }
.page-content > h2:first-child, .kln-delivery > h2:first-child { margin-top: 0; }
.page-content > h3, .kln-delivery > h3 { margin: 32px 0 12px; font-family: var(--kln-font); font-size: 18px; font-weight: 600; line-height: 1.35; color: var(--kln-ink); }
@media (max-width: 767px) {
    .page-content > p, .page-content > ul > li, .page-content > ol > li,
    .kln-delivery p, .kln-delivery li { font-size: 16px; }
    .page-content > h2, .kln-delivery > h2 { margin-top: 40px; font-size: 24px; }
}

/* ---------- Страница «Доставка и оплата» ---------- */
.kln-delivery { max-width: 820px; }
.kln-delivery b { font-weight: 600; color: var(--kln-ink); }
/* Шаги заказа: номер в кружке слева. */
.kln-delivery .kln-delivery__steps { margin: 0 0 24px; padding: 0; list-style: none; counter-reset: kln-step; }
.kln-delivery .kln-delivery__steps li { position: relative; margin: 0 0 16px; padding-left: 52px; counter-increment: kln-step; }
.kln-delivery .kln-delivery__steps li:before { content: counter(kln-step); position: absolute; left: 0; top: -2px; display: flex; align-items: center; justify-content: center; width: 34px; height: 34px; border: 1px solid rgba(219, 39, 46, .35); border-radius: 50%; box-sizing: border-box; background: #fff; color: var(--kln-red); font-family: var(--kln-font-head); font-size: 18px; font-weight: 600; line-height: 1; }
/* Памятка «Чтобы мы могли связаться» — тёплая плашка. */
.kln-delivery__note { padding: 22px 26px 10px; border-radius: var(--kln-r-md); background: var(--kln-soft); }
.kln-delivery__note p { margin: 0 0 10px; }
.kln-delivery .kln-delivery__note ul { margin: 0 0 10px; padding-left: 22px; list-style: disc outside; }
.kln-delivery .kln-delivery__note li { margin-bottom: 4px; }
/* Карточки: оплата и сроки, способы доставки. */
.kln-delivery__facts, .kln-delivery__ways { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.kln-delivery__fact, .kln-delivery__way { padding: 22px 24px 10px; border: 1px solid var(--kln-line); border-radius: var(--kln-r-md); background: #fff; }
.kln-delivery__fact p, .kln-delivery__way p { margin: 0 0 12px; font-size: 16px; line-height: 1.55; }
.kln-delivery__fact-title, .kln-delivery__way-title { font-size: 18px; font-weight: 600; line-height: 1.3; color: var(--kln-ink); }
.kln-delivery__fact-title { margin-bottom: 10px; }
.kln-delivery__way-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 12px; margin-bottom: 10px; }
.kln-delivery__price { font-size: 14px; font-weight: 600; color: var(--kln-success); white-space: nowrap; }
/* Отслеживание: логотипы служб в одну строку. */
.kln-delivery__track { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 28px; }
.kln-delivery__track-item { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; min-width: 160px; padding: 16px 20px 12px; border: 1px solid var(--kln-line); border-radius: var(--kln-r-md); color: var(--kln-muted); font-size: 13px; text-decoration: none; transition: border-color .15s; }
.kln-delivery__track-item:hover { border-color: rgba(0, 0, 0, .18); color: var(--kln-ink); text-decoration: none; }
.kln-delivery__track-item img { display: block; height: 36px; width: auto; max-width: 120px; object-fit: contain; }
.kln-delivery .kln-delivery__more { margin: 0 0 60px; padding-top: 20px; border-top: 1px solid var(--kln-line); }
@media (max-width: 767px) {
    .kln-delivery__facts, .kln-delivery__ways { grid-template-columns: 1fr; gap: 10px; }
    .kln-delivery__note, .kln-delivery__fact, .kln-delivery__way { padding: 18px 18px 6px; }
    .kln-delivery__track-item { flex: 1 1 calc(50% - 6px); min-width: 0; }
}

/* ---------- Значок подарка вместо цифры скидки: приветственный промокод ---------- */
/* Размер — от font-size контейнера (крупные цифры в плашках), цвет — от color. */
.kln-gift-icon { display: block; width: 1em; height: 1em; }
.kln-promo-note__value .kln-gift-icon { width: 22px; height: 22px; }
