

/* Start:/local/templates/petdiet/css/tokens.css?17925148063974*/
/* Pet Diet — глобальные токены дизайн-системы (единый источник, 2026-10-20).
   Раньше один и тот же набор был скопирован в home-rebrand / sets-rebrand / mobile-nav / rc-card.
   Значения — из colors_and_type.css макета Claude Design. Грузится ПЕРВЫМ (header.php).
   Брейкпоинты сайта: телефон ≤640, планшет/моб. навигация ≤980, ПК ≥981. */
:root {
    /* цвета */
    --cream:#F5EEE2; --cream-deep:#EADFCD; --tan:#CBA786; --surface:#FFFFFF; --surface-warm:#FCF8F1;
    --ink:#211F1A; --ink-soft:#423E36; --muted:#6E695E; --faint:#9C9486;
    --line:#E6DDCD; --line-soft:#F0E8DA;
    --green:#1F5B42; --green-700:#164230; --green-500:#2E7355; --green-tint:#E3EDE7; --green-tint-2:#C8DDD2;
    --blue:#A9D1DE; --blue-deep:#5E9FB5; --blue-tint:#E8F2F6; --blue-tint-2:#CFE6EC;
    --warm:#E8852E; --warm-600:#CC7120; --warm-tint:#FBE7D2; --warm-tint-2:#F5D2AC;
    /* форма, тени, движение, шрифты */
    --r-sm:8px; --r-md:14px; --r-lg:20px; --r-pill:999px;
    --sh-1:0 1px 2px rgba(33,31,26,.05),0 1px 3px rgba(33,31,26,.04);
    --sh-2:0 4px 12px rgba(33,31,26,.06),0 2px 4px rgba(33,31,26,.04);
    --sh-3:0 12px 32px rgba(33,31,26,.10),0 4px 10px rgba(33,31,26,.05);
    --dur:200ms; --ease:cubic-bezier(.22,.61,.36,1);
    --display:'Nunito',system-ui,-apple-system,sans-serif;
    --sans:'Golos Text',system-ui,-apple-system,'Segoe UI',sans-serif;

    /* кнопки: 3 размера × роли (primary зелёная, accent оранжевая, soft, line).
       Accent — только завершение покупки (корзина/чекаут), кнопки на тёмно-зелёном фоне и «Стартовый набор» в герое. */
    --btn-r:12px; --btn-fw:600;
    --btn-l-h:52px; --btn-l-px:28px; --btn-l-fs:1.06rem;
    --btn-m-h:44px; --btn-m-px:22px; --btn-m-fs:1rem;
    --btn-s-h:38px; --btn-s-px:16px; --btn-s-fs:.9rem;

    /* заголовки (ПК); телефонная шкала — ниже */
    --h1:clamp(2.2rem,3.8vw,2.9rem); --h2:clamp(1.75rem,2.6vw,2.2rem); --h3:1.25rem;
    --eyebrow-fs:.76rem;

    /* поле ввода: высота = большой кнопке — поле, кнопка и селект в одном ряду одной высоты.
       Степпер товара — отдельный компонент (--step-*), его не трогаем. */
    --field-h:var(--btn-l-h); --field-r:var(--btn-r); --field-px:16px; --field-fs:16px; /* <16px — iOS зумит при фокусе */
    --field-line:#DDCCAE; --field-bd:1.5px solid var(--field-line); --field-bg:var(--surface); --field-focus:var(--green-500);
    --field-ring:0 0 0 3px rgba(31,91,66,.14);

    /* поверхности на телефоне (≤640): лист — раздел до краёв экрана, карточка — объект с отступом, врезка — выделенный абзац внутри.
       Вложенность не глубже одного уровня. ПК и планшет не меняются. */
    --sheet-r:24px; --sheet-pad:20px; --sheet-gap:12px; --card-r:20px; --callout-r:14px; --callout-pad:16px;

    /* степпер количества */
    --step-h:38px; --step-btn:34px; --step-r:10px;

    /* слои: таб-бар < шит/«наверх» < модалки < корзина-панель < cookie < тосты */
    --z-tabbar:80; --z-sheet:90; --z-modal:3000; --z-cart-panel:4001; --z-cookie:4500; --z-toast:5500;
}
/* тач-экраны: области нажатия ≥44px */
@media (pointer: coarse) {
    :root { --btn-s-h:44px; --step-h:44px; --step-btn:40px; }
}
/* телефон: шкала заголовков H1 30 / H2 24 / H3 18 */
@media (max-width: 640px) {
    :root { --h1:1.9rem; --h2:1.5rem; --h3:1.125rem; }
}

/* End */


/* Start:/local/templates/petdiet/css/components.css?179251657626265*/
/* Pet Diet — общие компоненты дизайн-системы (2026-10-20). Грузится глобально сразу после tokens.css.
   Размеры/скругления/шрифты — только токены из tokens.css; в файлах страниц не переопределять. */

/* Браузер не наследует шрифт в кнопках и полях (иначе Arial 13.3px — так было в подписке).
   :where — нулевая специфичность, любой класс компонента перекрывает. */
:where(button, input, select, textarea) { font-family: inherit; }

/* :root-префикс (0,2,0) нужен там, где компонент живёт внутри .pd-sets-rb: её сброс
   `.pd-sets-rb *{margin:0;padding:0}` грузится позже и иначе обнулил бы отступы. */

/* ===================== КНОПКИ =====================
   Размеры: S (карточки, --btn-s-*, на тач-экранах 44px), M (по умолчанию .btn), L (--lg / .btn-lg).
   Роли: green (основная), warm (акцент: завершение покупки, кнопка на тёмно-зелёном фоне), soft, line.
   Классы: .psc-btn (+ --green/--warm/--soft/--line/--lg) — товары, наборы, калькулятор, карточки .prc;
           .pd-hm .btn / .pd-inf .btn (+ .btn-green/.btn-primary/.btn-soft/.btn-line/.btn-lg) — блоки главной и инфо-страниц. */
.psc-btn,
.pd-hm .btn,
.pd-inf .btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 9px;
    border: 0; cursor: pointer; text-decoration: none; white-space: nowrap;
    font-family: var(--sans); font-weight: var(--btn-fw); line-height: 1.1; text-transform: none;
    border-radius: var(--btn-r);
    transition: background var(--dur) var(--ease), color var(--dur) var(--ease), opacity var(--dur) var(--ease);
}
:root .psc-btn { width: 100%; min-height: var(--btn-s-h); padding: 0 var(--btn-s-px); font-size: var(--btn-s-fs); }
.pd-hm .btn, .pd-inf .btn { min-height: var(--btn-m-h); padding: 0 var(--btn-m-px); font-size: var(--btn-m-fs); }
:root .psc-btn--lg, .pd-hm .btn-lg, .pd-inf .btn-lg { min-height: var(--btn-l-h); padding: 0 var(--btn-l-px); font-size: var(--btn-l-fs); }
.pd-hm .btn-block, .pd-inf .btn-block { width: 100%; }
.psc-btn:active, .pd-hm .btn:active, .pd-inf .btn:active { opacity: .9; }
.psc-btn svg, .pd-hm .btn svg, .pd-inf .btn svg { flex: 0 0 auto; }
.psc-btn[disabled] { opacity: .6; cursor: not-allowed; }

.psc-btn--green, .pd-hm .btn-green, .pd-inf .btn-green { background: var(--green); color: #fff; }
.psc-btn--green:hover, .pd-hm .btn-green:hover, .pd-inf .btn-green:hover { background: var(--green-700); color: #fff; }
.psc-btn--warm, .pd-inf .btn-primary { background: var(--warm); color: #fff; }
.psc-btn--warm:hover, .pd-inf .btn-primary:hover { background: var(--warm-600); color: #fff; }
.psc-btn--soft, .pd-hm .btn-soft, .pd-inf .btn-soft { background: var(--green-tint); color: var(--green-700); }
.psc-btn--soft:hover, .pd-hm .btn-soft:hover, .pd-inf .btn-soft:hover { background: var(--green-tint-2); color: var(--green-700); }
.psc-btn--line, .pd-inf .btn-line { background: transparent; color: var(--ink); box-shadow: inset 0 0 0 1.5px var(--line); }
.psc-btn--line:hover, .pd-inf .btn-line:hover { box-shadow: inset 0 0 0 1.5px var(--green); color: var(--green-700); }

/* ===================== СТЕППЕР КОЛИЧЕСТВА =====================
   Один вид везде: зелёная подложка, рамка green-tint-2, кнопки ±. Высота --step-h (38, на тач-экранах 44).
   Крупный (страница товара, стартовый в каталоге): .pdd-buy__stepper / .pdrc__starter-stepper — высота кнопки L.
   Те же токены используют .pd-cart-ctl__stepper (home.css) и .pd-cart-panel__qty (корзина, ui-overlays.css). */
.psc__stepper,
.prc__stepper {
    display: flex; align-items: center; flex: 0 0 auto; overflow: hidden;
    height: var(--step-h);
    border: 1.5px solid var(--green-tint-2); border-radius: var(--step-r);
    background: var(--green-tint);
}
:root .psc__step,
:root .prc__step {
    width: var(--step-btn); align-self: stretch; display: grid; place-items: center;
    border: 0; padding: 0; background: transparent; color: var(--green-700); cursor: pointer;
}
.psc__step:hover, .prc__step:hover { background: var(--green-tint-2); }
.psc__step svg, .prc__step svg { display: block; }
.psc__count,
.prc__count { min-width: 22px; text-align: center; font-weight: 700; font-size: .92rem; color: var(--green-700); }

/* ===================== ВОПРОСЫ И ОТВЕТЫ (pdUiFaq, ui_components.php) =====================
   Нативные <details>: ответы в DOM (индексируются), работают без JS, name= — открыт один вопрос группы.
   Цвет открытого вопроса — --faq-ac (по умолчанию зелёный; на /otveti-na-voprosi/ — цвет категории). */
:root .pd-faq-ui { display: grid; gap: 10px; }
:root .pd-faq-ui__item {
    background: var(--surface); border: 1.5px solid var(--line); border-radius: var(--r-md);
    transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
:root .pd-faq-ui__item[open] { border-color: var(--faq-ac, var(--green)); box-shadow: var(--sh-1); }
:root .pd-faq-ui__q {
    display: flex; align-items: center; justify-content: space-between; gap: 14px;
    min-height: 56px; padding: 14px 18px 14px 20px; cursor: pointer; list-style: none;
}
:root .pd-faq-ui__q::-webkit-details-marker { display: none; }
:root .pd-faq-ui__q:focus-visible { outline: 2px solid var(--faq-ac, var(--green)); outline-offset: 2px; border-radius: var(--r-md); }
:root .pd-faq-ui__qt { margin: 0; font-family: var(--sans); font-weight: 600; font-size: 1rem; line-height: 1.35; color: var(--ink); }
:root .pd-faq-ui__item[open] .pd-faq-ui__qt { color: var(--faq-ac, var(--green-700)); }
:root .pd-faq-ui__ic {
    flex: 0 0 32px; width: 32px; height: 32px; border-radius: 50%; background: var(--green-tint);
    position: relative; transition: transform var(--dur) var(--ease), background var(--dur) var(--ease);
}
:root .pd-faq-ui__ic::before {
    content: ""; position: absolute; left: 50%; top: 45%; width: 8px; height: 8px;
    border-right: 2px solid var(--green-700); border-bottom: 2px solid var(--green-700);
    transform: translate(-50%, -50%) rotate(45deg);
}
:root .pd-faq-ui__item[open] .pd-faq-ui__ic { transform: rotate(180deg); background: var(--faq-ac, var(--green)); }
:root .pd-faq-ui__item[open] .pd-faq-ui__ic::before { border-color: #fff; }
:root .pd-faq-ui__a { padding: 0 20px 18px; color: var(--ink-soft); font-size: .96rem; line-height: 1.6; }
:root .pd-faq-ui__a a { color: var(--green); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 640px) {
    :root .pd-faq-ui__q { padding: 12px 14px 12px 16px; }
    :root .pd-faq-ui__a { padding: 0 16px 16px; font-size: .94rem; }
}

/* ===================== ОТЗЫВ (pdUiReviewCard, ui_components.php) =====================
   Один вид карточки на товаре, страницах здоровья и /otzivi/. Раскладку (карусель/сетка) задаёт контейнер страницы. */
:root .pd-rev-card {
    display: flex; flex-direction: column; gap: 12px;
    background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg);
    box-shadow: var(--sh-1); padding: 18px 20px;
}
:root .pd-rev-card__top { display: flex; align-items: center; gap: 12px; }
:root .pd-rev-card__av { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; flex: 0 0 auto; display: grid; place-items: center; }
:root .pd-rev-card__meta { display: grid; gap: 3px; min-width: 0; }
:root .pd-rev-card__stars { display: inline-flex; gap: 2px; color: var(--warm); }
:root .pd-rev-card__name { font-weight: 600; font-size: .9rem; color: var(--ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
:root .pd-rev-card__text {
    margin: 0; color: var(--ink-soft); font-size: .96rem; line-height: 1.6;
    display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 5; line-clamp: 5; overflow: hidden;
}
:root .pd-rev-card.is-open .pd-rev-card__text { -webkit-line-clamp: unset; line-clamp: unset; display: block; }
:root .pd-rev-card__more {
    align-self: flex-start; margin-top: auto; padding: 4px 0; min-height: 32px;
    border: 0; background: none; cursor: pointer; color: var(--green); font-weight: 600; font-size: .9rem;
    text-decoration: underline; text-underline-offset: 3px;
}
:root .pd-rev-card__more[hidden] { display: none; }

/* ===================== ДОСТАВКА / ОПЛАТА НА ТОВАРЕ (pdUiInfoAccordion) =====================
   Строка-итог (иконка + заголовок + кратко) → по нажатию подробности. На телефоне свёрнуто, на ПК раскрыто скриптом. */
:root .pd-acc__sum {
    display: grid; grid-template-columns: auto minmax(0, 1fr) auto;
    grid-template-areas: "ic t chev" "ic line chev"; column-gap: 12px; row-gap: 2px; align-items: center;
    cursor: pointer; list-style: none; min-height: 44px;
}
:root .pd-acc__sum::-webkit-details-marker { display: none; }
:root .pd-acc__sum .pdd-info__ic { grid-area: ic; }
:root .pd-acc__t { grid-area: t; margin: 0; font-family: var(--display); font-weight: 800; font-size: var(--h3); line-height: 1.2; }
:root .pd-acc__line { grid-area: line; font-size: .86rem; color: var(--muted); line-height: 1.35; }
:root .pd-acc[open] .pd-acc__line { display: none; }
:root .pd-acc__chev {
    grid-area: chev; width: 30px; height: 30px; border-radius: 50%; background: var(--green-tint); position: relative;
    transition: transform var(--dur) var(--ease);
}
:root .pd-acc__chev::before {
    content: ""; position: absolute; left: 50%; top: 45%; width: 7px; height: 7px;
    border-right: 2px solid var(--green-700); border-bottom: 2px solid var(--green-700); transform: translate(-50%, -50%) rotate(45deg);
}
:root .pd-acc[open] .pd-acc__chev { transform: rotate(180deg); }
:root .pd-acc__body { margin-top: 14px; }
:root .pd-acc__sum:focus-visible { outline: 2px solid var(--green); outline-offset: 4px; border-radius: 8px; }


/* ===================== КАТАЛОГ 2 В РЯД (телефон ≤640) =====================
   Один компактный вид для всех списков товаров: рационы (.prc — главная, каталог и др.), страницы здоровья
   (.pd-hlt-card), лакомства (.pd-trt-card), наборы (.psc). Префикс :root :is(.pd-rc,.pd-sets-rb) — сильнее
   копий стилей карточки в rc-card.css / ration-rebrand.css / sets-rebrand.css при любом порядке загрузки. */
.pd-l-short { display: none; }
@media (max-width: 640px) {
    :root :is(.pd-rc, .pd-sets-rb) :is(.pdrc__grid, .pd-rc__grid, .pd-hlt-cards, .pd-trt-grid, .pd-sets-rb__grid) {
        grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px;
    }
    :root .pd-rc.pd-rc--single .pd-rc__grid { grid-template-columns: minmax(0, 1fr); }
    /* > сетка: сильнее «во всю ширину экрана» (.pd-sets-rb.pdrc .card {margin:0 -18px}) из ration-rebrand.css */
    :root :is(.pd-rc, .pd-sets-rb) :is(.pdrc__grid, .pd-rc__grid, .pd-hlt-cards, .pd-trt-grid, .pd-sets-rb__grid) > :is(.prc, .pd-hlt-card, .pd-trt-card, .psc) {
        min-width: 0; margin-left: 0; margin-right: 0; padding: 10px;
        border-radius: var(--r-md); border-left-width: 1px; border-right-width: 1px;
    }
    :root :is(.pd-rc, .pd-sets-rb) :is(.prc, .pd-hlt-card, .pd-trt-card, .psc):hover { transform: none; }
    :root :is(.pd-rc, .pd-sets-rb) :is(.prc__media, .pd-hlt-card__media, .pd-trt-card__media, .psc__media) { border-radius: 10px; }
    /* название + метка */
    :root :is(.pd-rc, .pd-sets-rb) .prc__head { flex-direction: column; align-items: flex-start; gap: 4px; margin-top: 10px; }
    :root :is(.pd-rc, .pd-sets-rb) :is(.prc__name, .pd-hlt-card__name, .pd-trt-card__name, .psc__name) { font-size: 1rem; line-height: 1.2; }
    :root :is(.pd-rc, .pd-sets-rb) .prc__tag { font-size: 11px; padding: 2px 8px; }
    :root :is(.pd-rc, .pd-sets-rb) .prc__desc { display: none; }
    :root :is(.pd-rc, .pd-sets-rb) .pd-hlt-card__row { flex-direction: column; align-items: flex-start; gap: 2px; }
    :root :is(.pd-rc, .pd-sets-rb) :is(.pd-hlt-card__tag, .pd-trt-card__tag) {
        font-size: .78rem; line-height: 1.35; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;
    }
    /* цена */
    :root :is(.pd-rc, .pd-sets-rb) :is(.prc__price, .psc__price) { font-size: 1.15rem; }
    :root :is(.pd-rc, .pd-sets-rb) :is(.prc__unit, .psc__packs) { font-size: .72rem; width: 100%; }
    :root :is(.pd-rc, .pd-sets-rb) .prc__price-row { gap: 0 6px; padding-top: 6px; }
    /* наборы: выбор количества */
    :root .pd-sets-rb .psc__label { font-size: .72rem; }
    :root .pd-sets-rb .psc__select { font-size: .82rem; min-height: 40px; padding-left: 10px; padding-right: 26px; }
    :root .pd-sets-rb .psc__badge { font-size: .6rem; }
    /* кнопка: короткая надпись; в корзине — степпер на всю ширину */
    :root :is(.pd-rc, .pd-sets-rb) .pd-l-full { display: none; }
    :root :is(.pd-rc, .pd-sets-rb) .pd-l-short { display: inline; }
    :root :is(.pd-rc, .pd-sets-rb) :is(.pdrc__grid, .pd-rc__grid, .pd-hlt-cards, .pd-trt-grid, .pd-sets-rb__grid) :is(.prc__cart, .prc__incart, .pd-hlt-card__cart, .pd-hlt-card__incart, .pd-trt-card__cart, .pd-trt-card__incart, .psc__cart, .psc__incart) { margin-top: 10px; }
    /* только карточки в сетке (не блок покупки на странице товара — там тоже .psc__incart) */
    :root :is(.pd-rc, .pd-sets-rb) :is(.pdrc__grid, .pd-rc__grid, .pd-hlt-cards, .pd-trt-grid, .pd-sets-rb__grid) :is(.prc__incart, .pd-hlt-card__incart, .pd-trt-card__incart, .psc__incart) .psc-btn--soft { display: none; }
    :root :is(.pd-rc, .pd-sets-rb) :is(.pdrc__grid, .pd-rc__grid, .pd-hlt-cards, .pd-trt-grid, .pd-sets-rb__grid) :is(.prc__incart, .pd-hlt-card__incart, .pd-trt-card__incart, .psc__incart) :is(.prc__stepper, .psc__stepper) { flex: 1 1 auto; justify-content: space-between; }
}


/* ===================== ПАНЕЛЬ ПОКУПКИ НА ТОВАРЕ (pdUiBuyBar) =====================
   ≤980: над таб-баром, когда основной блок покупки ушёл вверх. Слой выше таб-бара, ниже модалок. */
.pd-buybar[hidden], .pd-buybar [hidden] { display: none !important; }
@media (max-width: 980px) {
    :root .pd-buybar {
        position: fixed; left: 0; right: 0; z-index: calc(var(--z-tabbar) - 1);
        bottom: var(--pd-tabbar-h, calc(58px + env(safe-area-inset-bottom)));
        display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 10px;
        padding: 8px max(12px, env(safe-area-inset-right)) 8px max(16px, env(safe-area-inset-left));
        background: var(--surface); border-top: 1px solid var(--line); box-shadow: 0 -6px 18px rgba(33, 31, 26, .08);
        font-family: var(--sans); color: var(--ink);
    }
    .pd-buybar__info { display: grid; min-width: 0; }
    .pd-buybar__price { font-family: var(--display); font-weight: 800; font-size: 1.35rem; line-height: 1.1; white-space: nowrap; }
    .pd-buybar__ctl { display: flex; align-items: center; gap: 8px; }
    :root .pd-buybar .psc-btn { width: auto; }
    :root .pd-buybar__stepper .psc__step { font-size: 1.2rem; line-height: 1; color: var(--green-700); }
    body.pd-has-buybar .pd-totop { display: none; }
    body.pd-has-buybar.pd-body { padding-bottom: calc(56px + 62px + env(safe-area-inset-bottom)); }
}

/* ===================== ЧЕКБОКС-СТРОКА (согласия и отметки) =====================
   Один вид везде: квадрат 20px, при отметке — зелёный с белой галочкой. Нативный input (оформление, подписка,
   консультация, окно звонка) и кнопка-переключатель входа (.pd-auth-switch, логика в auth.js не меняется). */
:root :is(.pd-checkout-check, .pd-hm-consult__agree, .pd-call-form__agree, .pd-cust-check) input[type="checkbox"],
:root .pd-auth-switch {
    -webkit-appearance: none; appearance: none;
    flex: 0 0 20px; width: 20px; height: 20px; min-width: 20px; margin: 1px 0 0; padding: 0;
    border: 1.5px solid var(--muted); border-radius: 6px; background: #fff;
    cursor: pointer; position: relative; box-shadow: none;
    transition: background-color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
:root :is(.pd-checkout-check, .pd-hm-consult__agree, .pd-call-form__agree, .pd-cust-check) input[type="checkbox"]:checked,
:root .pd-auth-switch.is-on {
    border-color: var(--green);
    background: var(--green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center / 13px no-repeat;
}
:root :is(.pd-checkout-check, .pd-hm-consult__agree, .pd-call-form__agree, .pd-cust-check) input[type="checkbox"]:focus-visible,
:root .pd-auth-switch:focus-visible { outline: 2px solid var(--green); outline-offset: 2px; }
:root .pd-auth-switch span { display: none; }
/* на тёмно-зелёной карточке консультации — светлая рамка, чтобы отметка читалась */
:root .pd-hm-consult__agree input[type="checkbox"] { border-color: rgba(255, 255, 255, .7); }
:root .pd-hm-consult__agree input[type="checkbox"]:checked { border-color: #fff; }

/* ---------- Длинный текст на телефоне (≤640): первые строки + «Читать полностью» ----------
   Обёртка .pd-clamp (число строк — --clamp-lines), кнопку ставит components.js и только если текст
   действительно длиннее. Текст целиком остаётся в разметке — для поиска ничего не меняется. */
:root .pd-clamp-btn { display: none; }
@media (max-width: 640px) {
    :root .pd-clamp.is-clamped:not(.is-open) {
        max-height: calc(var(--clamp-lines, 4) * 1.65em);
        overflow: hidden;
        -webkit-mask-image: linear-gradient(#000 55%, transparent);
        mask-image: linear-gradient(#000 55%, transparent);
    }
    :root .pd-clamp.is-clamped + .pd-clamp-btn {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        margin: 8px 0 0;
        padding: 6px 0;
        border: 0;
        background: none;
        color: var(--green);
        font: 600 1rem/1.3 var(--sans);
        text-decoration: underline;
        text-underline-offset: 3px;
        cursor: pointer;
    }
}

/* ---------- Ленты отзывов с привязкой прокрутки: первая карточка — с отступом, как у ленты ----------
   Без scroll-padding snap «start» прижимал первую карточку к краю экрана (лента прокручивалась на 18px). */
:root .pdr-rev__track { scroll-padding-inline: 18px; }     /* = padding ленты */
:root .pd-hlt-rev__track { scroll-padding-inline: 6px; }
/* Ленты отзывов: на ПК ровно 3 целые карточки, на планшете 2 — стрелка листает «страницами» (components.js).
   На телефоне — лента пальцем с выглядывающей следующей карточкой (ширины из CSS страниц). */
@media (min-width: 981px) {
    :root :is(.pdr-rev__track, .pd-hlt-rev__track) > :is(.pdr-rev__card, .pd-hlt-rev__card) { width: auto; flex: 0 0 calc((100% - 2 * 18px) / 3); }
}
@media (min-width: 641px) and (max-width: 980px) {
    :root :is(.pdr-rev__track, .pd-hlt-rev__track) > :is(.pdr-rev__card, .pd-hlt-rev__card) { width: auto; flex: 0 0 calc((100% - 18px) / 2); }
}
:root :is(.pdr-rev__nav, .pd-hlt-rev__nav) { transition: opacity .2s ease; }
:root :is(.pdr-rev__nav, .pd-hlt-rev__nav):disabled { opacity: 0; pointer-events: none; }

/* ---------- Горизонтальные ленты (вкладки, карточки, отзывы): без системной полосы прокрутки ----------
   Телефон и планшет (≤980): листаются пальцем; полоса выглядела серой линией под лентой.
   На ПК полоса остаётся — без неё ленту не прокрутить мышью. */
@media (max-width: 980px) {
    :root :is(.pds-comp__tabs, .pdr-other__row, .pdd__cross-row, .pd-prod-cert__thumbs, .pdr-rev__track, .pd-hlt-rev__track) {
        scrollbar-width: none;
        -ms-overflow-style: none;
    }
    :root :is(.pds-comp__tabs, .pdr-other__row, .pdd__cross-row, .pd-prod-cert__thumbs, .pdr-rev__track, .pd-hlt-rev__track)::-webkit-scrollbar {
        display: none;
    }
}

/* ---------- Поверхности на телефоне (≤640): лист до краёв со скруглением ----------
   Решение 2026-10-20 (аудит, вариант А). Лист — текстовый раздел во всю ширину экрана, скругление со всех
   сторон, без рамки; карточки-объекты (товар, отзыв, тариф, вариант набора, блок покупки, формы, таблицы,
   FAQ, фото) остаются с отступом и рамкой. Внутри листа — без рамок: линии-разделители и врезки.
   !important — только на геометрию поверхности: у компонентов свои отступы/рамки с высокой специфичностью
   (напр. .pd-sets-rb.pdrc .card{margin:0 -18px}). Ширина экрана — через calc(50% - 50vw): обёртки симметричные. */
@media (max-width: 640px) {
    :root :is(.pd-hm-why__card, .pd-trt-reason, .pdrc__reason, .pds-why__item, .pd-hlt-benefit, .pd-hlt-mkb-card, .pdr-seo__item, .pdrc__info, .pdrc__starter, .pd-hlt-attention, .pd-hlt-bonus, .pds-taste, .pdr-content, .pd-bnd-about, .pd-trt-comp, .pds-comp__card, .pdd-comp, .pdr-comp__card, .pd-trt-closing, .pdd-info, .pd-kon-hours, .pd-kon-soc, .pd-kon-req, .pd-sbc-card, .pd-starter__mcard, .pd-exp__panel, .pd-otz-rate, .pd-otz-cta, .pd-faq-cta, .pd-dlv-freebar, .pd-dlv-cta, .pd-prod-cta, .pd-blg-cta, .pd-hm-consult, .pd-hm-buy, .pds-buy, .pdd-buy, .pd-bnd-buy, .pd-bnd-artist, .pd-faq-ui__item, .pd-otz-card, .pd-checkout-card, .pd-checkout-summary, .pd-checkout-login, .pd-checkout__empty, .pd-cartpg-item, .pd-cartpg-free, .pd-cartpg-fo, .pd-cartpg__empty, .pd-sbc-sum, .pd-dlv-block, .pd-kon-place, .pd-dlv-map, .pd-hlt-table, .pd-lgl__table, .pds-gal__main, .pd-bnd-gal__main, .pdd__main, .pd-abt-video, .pd-abt-row__img, .pd-prod-video, .pd-prod-block__ph, .pd-art-cover) {
        margin-left: calc(50% - 50vw) !important;
        margin-right: calc(50% - 50vw) !important;
        width: auto !important;
        max-width: none !important;
        border: 0 !important;
        border-radius: var(--sheet-r) !important;
        box-shadow: none !important;
    }
    :root :is(.pd-hm-why__card, .pd-trt-reason, .pdrc__reason, .pds-why__item, .pd-hlt-benefit, .pd-hlt-mkb-card, .pdr-seo__item, .pdrc__info, .pdrc__starter, .pd-hlt-attention, .pd-hlt-bonus, .pds-taste, .pdr-content, .pd-bnd-about, .pd-trt-comp, .pds-comp__card, .pdd-comp, .pdr-comp__card, .pd-trt-closing, .pdd-info, .pd-kon-hours, .pd-kon-soc, .pd-kon-req, .pd-sbc-card, .pd-starter__mcard, .pd-exp__panel, .pd-otz-rate, .pd-otz-cta, .pd-faq-cta, .pd-dlv-freebar, .pd-dlv-cta, .pd-prod-cta, .pd-blg-cta, .pd-hm-consult, .pd-hm-buy, .pds-buy, .pdd-buy, .pd-bnd-buy, .pd-bnd-artist, .pd-faq-ui__item, .pd-otz-card, .pd-checkout-card, .pd-checkout-summary, .pd-checkout-login, .pd-checkout__empty, .pd-cartpg-item, .pd-cartpg-free, .pd-cartpg-fo, .pd-cartpg__empty, .pd-sbc-sum) {
        padding-left: var(--sheet-pad) !important;
        padding-right: var(--sheet-pad) !important;
    }
    :root :is(.pd-dlv-block, .pd-kon-place, .pd-dlv-map, .pd-hlt-table, .pd-lgl__table, .pds-gal__main, .pd-bnd-gal__main, .pdd__main, .pd-abt-video, .pd-abt-row__img, .pd-prod-video, .pd-prod-block__ph, .pd-art-cover) { overflow: hidden; }
    :root :is(.pd-abt-food, .pd-sbc-how, .pd-art-rel, .pdr-trans) { border-radius: var(--sheet-r) !important; overflow: hidden; }
    :root :is(.pd-sets-rb__hero, .pd-hlt-hero, .pd-trt-hero, .pd-cartpg-hero) { border-radius: 0 0 var(--sheet-r) var(--sheet-r) !important; }
    /* таблицы во всю ширину: крайние колонки — с полем листа, текст не уходит под скругление */
    :root .pd-hlt-table :is(.pd-hlt-table__head, .pd-hlt-table__row) > div:first-child,
    :root .pd-lgl__table :is(th, td):first-child { padding-left: var(--sheet-pad) !important; }
    :root .pd-hlt-table :is(.pd-hlt-table__head, .pd-hlt-table__row) > div:last-child,
    :root .pd-lgl__table :is(th, td):last-child { padding-right: var(--sheet-pad) !important; }
    :root :is(.pds-taste__box, .pdr-content__box, .pdr-trans__note) {
        border: 0 !important;
        border-radius: var(--callout-r) !important;
        padding: var(--callout-pad) !important;
        box-shadow: none !important;
    }
}

/* End */


/* Start:/local/templates/petdiet/css/base-header.css?17925060939629*/
:root {
    --pd-green: #1f5b42;
    --pd-green-dark: #0d3223;
    --pd-blue: #a9d1de;
    --pd-mint: #dfeee7;
    --pd-text: #1f5b42;
    --pd-muted: #5e756b;
    --pd-border: #d7e5de;
    --pd-white: #fff;
    --pd-shadow: 0 14px 42px rgba(31, 91, 66, 0.12);
}

@font-face {
    font-family: "Extenda";
    src: url("/local/templates/petdiet/fonts/Zetafonts-Extenda-40.woff") format("woff");
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body.pd-body {
    margin: 0;
    overflow-x: hidden;
    color: var(--pd-text);
    background: var(--pd-white);
    font-family: var(--sans); /* Golos Text — шрифт дизайн-системы (было Inter 400 + синтетический жирный) */
    font-size: 16px;
    line-height: 1.45;
}

a {
    color: inherit;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible {
    outline: 3px solid rgba(31, 91, 66, 0.58);
    outline-offset: 3px;
}

img {
    max-width: 100%;
    display: block;
}

.pd-container {
    width: min(1200px, calc(100% - 32px));
    margin: 0 auto;
}

.pd-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: #F5EEE2; /* --cream (макет Shell.jsx) */
    box-shadow: 0 1px 0 rgba(31, 91, 66, 0.06);
}

@keyframes pd-notice-marquee {
    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(-759px);
    }
}

.pd-header__logo img {
    width: 120px;
}

.pd-header__logo {
    margin-left: 0;
    position: relative;
    z-index: 2;
}

/* Ширина пунктов — по контенту (без фикс-ширин под старые ярлыки), зазор даёт gap:14px.
   Иначе при переименовании в более длинные названия текст вылезает за бокс и слипается. */

/* The tall flyout (Особенности здоровья, 12 items) is the 2nd-to-last item. Use
   nth-last-child so the size lands on it regardless of the JS-injected .pd-submenu__head
   (which prepends a child and shifts every nth-child index by one). */

/* «Все рационы» (2-е с начала = 4-е с конца) — flyout из 6 видов мяса выше
   основного столбца (5 пунктов), поэтому тянем фон подложки под 6 пунктов. */

@media (min-width: 1441px) {

    .pd-header__logo img {
        width: 171px;
    }

    /* Ширина пунктов — по контенту (фикс-ширины убраны и здесь), зазор задаёт .pd-menu gap:16px. */

    }

@media (max-width: 1200px) {
    .pd-header {
        box-shadow: none;
    }

    .pd-header__logo {
        grid-column: 1;
        grid-row: 1;
        margin-left: 0;
    }

    .pd-header__logo img {
        width: 74px;
    }

    }

/* Material Symbols Rounded — иконки шапки как в макете (person / shopping_basket) */
.ms {
    font-family: 'Material Symbols Rounded';
    font-weight: normal;
    font-style: normal;
    line-height: 1;
    letter-spacing: normal;
    text-transform: none;
    display: inline-block;
    white-space: nowrap;
    direction: ltr;
    -webkit-font-smoothing: antialiased;
    font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}

/* ============ Новая ПК-шапка (2 ряда) — порт Shell.jsx Nav 1:1 (токены макета) ============ */
/* Ряд 1 (cream): логотип · меню (ink-soft) · телефон · ЛК · Корзина. Ряд 2 (green #1F5B42): разделы (white). */
.pd-hdr2__row1 {
    display: flex;
    align-items: center;
    gap: 20px;
    height: 64px;
    font-family: 'Golos Text', Inter, sans-serif;
}
.pd-hdr2__row1 .pd-header__logo img {
    height: 32px;
    width: auto;
}
.pd-hdr2__nav {
    display: flex;
    align-items: center;
    gap: 2px;
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
    min-width: 0;
}
.pd-hdr2__nav::-webkit-scrollbar {
    display: none;
}
.pd-hdr2__nav1 {
    margin-left: 4px;
}
.pd-hdr2__link {
    padding: 8px 13px;
    border-radius: 11px;
    font-size: 0.94rem;
    font-weight: 500;
    color: #423e36; /* --ink-soft */
    background: transparent;
    text-decoration: none;
    white-space: nowrap;
    transition: color 0.18s ease, background 0.18s ease;
}
.pd-hdr2__link:hover {
    color: #164230; /* --green-700 */
    background: #e3ede7; /* --green-tint */
}
.pd-hdr2__link.is-active {
    color: #164230;
    background: #e3ede7;
    font-weight: 600;
}
.pd-hdr2__spacer {
    flex: 1;
}
.pd-hdr2__phone {
    font-family: 'Golos Text', Inter, sans-serif;
    font-size: 0.98rem;
    font-weight: 700;
    color: #211f1a; /* --ink */
    text-decoration: none;
    white-space: nowrap;
    margin-right: 4px;
}
.pd-hdr2__act {
    width: 56px;
    height: 50px;
    border-radius: 14px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    color: #423e36; /* --ink-soft */
    text-decoration: none;
    flex: 0 0 auto;
    font-family: 'Golos Text', Inter, sans-serif;
    transition: background 0.16s ease, color 0.16s ease;
}
.pd-hdr2__act:hover {
    background: #fcf8f1; /* --surface-warm */
    color: #164230;
}
.pd-hdr2__act.is-active {
    background: #e3ede7; /* --green-tint */
    color: #164230;
}
.pd-hdr2__act .ms {
    font-size: 23px;
}
.pd-hdr2__act-lbl {
    font-size: 0.68rem;
    font-weight: 600;
}
.pd-hdr2__act-ic {
    position: relative;
    display: grid;
    place-items: center;
}
.pd-hdr2__badge {
    position: absolute;
    top: -6px;
    right: -8px;
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    border-radius: 9px;
    background: #e8852e; /* --warm */
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    display: grid;
    place-items: center;
    line-height: 1;
}
/* Ряд 2 — зелёная полоса */
.pd-hdr2__strip {
    background: #1f5b42; /* --green */
    overflow-x: clip; /* не даём пунктам при узком десктопе вызвать гориз. скролл; выпадашки уходят вниз (overflow-y: visible) */
}
.pd-hdr2__nav2 {
    height: 46px;
    font-family: 'Golos Text', Inter, sans-serif;
    overflow: visible; /* перебиваем overflow-x:auto базового .pd-hdr2__nav, чтобы выпадашки не обрезались */
}
.pd-hdr2__strip-label {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.6);
    white-space: nowrap;
    margin-right: 12px;
    flex: 0 0 auto;
    text-decoration: none;
}
/* Кликабельный ярлык на /ratcioni-dlya-koshek/, но БЕЗ ховер-эффекта (по просьбе) */
.pd-hdr2__strip-label:hover {
    color: rgba(255, 255, 255, 0.6);
    background: transparent;
    text-decoration: none;
}
.pd-hdr2__nav2 .pd-hdr2__link {
    color: rgba(255, 255, 255, 0.9);
    border-radius: 9px;
}
.pd-hdr2__nav2 .pd-hdr2__link:hover,
.pd-hdr2__nav2 .pd-hdr2__link.is-active {
    color: #fff;
    background: rgba(255, 255, 255, 0.2);
}

/* Выпадающие меню ряда 2 (Рационы / Особенности здоровья) — порт Shell.jsx (.mega-link) */
.pd-hdr2__drop {
    position: relative;
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
}
.pd-hdr2__menu {
    position: absolute;
    top: 100%;
    padding-top: 8px; /* прозрачный «мостик» — ховер не срывается на зазоре кнопка↔карточка */
    z-index: 20;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-4px);
    pointer-events: none;
    transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s;
}
.pd-hdr2__menu--rations {
    left: 0;
}
.pd-hdr2__drop:hover > .pd-hdr2__menu,
.pd-hdr2__drop:focus-within > .pd-hdr2__menu {
    opacity: 1;
    visibility: visible;
    transform: none;
    pointer-events: auto;
}
.pd-hdr2__menu-card {
    background: #fff; /* --surface */
    border: 1px solid #e6ddcd; /* --line */
    border-radius: 14px;
    box-shadow: 0 4px 12px rgba(33, 31, 26, 0.06), 0 2px 4px rgba(33, 31, 26, 0.04); /* --sh-2 */
}
.pd-hdr2__menu--rations .pd-hdr2__menu-card {
    padding: 8px;
    min-width: 224px;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.pd-hdr2__mega {
    display: flex;
    align-items: center;
    gap: 11px;
    text-align: left;
    color: #423e36; /* --ink-soft */
    text-decoration: none;
    border-radius: 8px;
    transition: background 0.13s ease, color 0.13s ease;
}
.pd-hdr2__menu--rations .pd-hdr2__mega {
    font-size: 0.94rem;
    padding: 9px 10px;
}
.pd-hdr2__mega:hover {
    background: #e3ede7; /* --green-tint */
    color: #164230; /* --green-700 */
}
.pd-hdr2__mega-dot {
    width: 14px;
    height: 14px;
    border-radius: 5px;
    flex: 0 0 auto;
}

/* ≤980 — прячем ПК-ряды: остаётся минимальная шапка (логотип + звонок) + таб-бар (mobile-nav) */
@media (max-width: 980px) {
    .pd-hdr2__nav,
    .pd-hdr2__spacer,
    .pd-hdr2__phone,
    .pd-hdr2__act,
    .pd-hdr2__strip {
        display: none;
    }
    .pd-hdr2__row1 {
        height: 56px;
        gap: 12px;
    }
    .pd-hdr2__row1 .pd-header__logo img {
        height: 28px;
    }
}

/* End */


/* Start:/local/templates/petdiet/css/home.css?179250609327563*/
.pd-main {
    overflow: hidden;
}

.pd-products-heading-section {
    box-sizing: border-box;
    height: 190px;
    padding: 24px 0 0;
    background: #fff;
}

.pd-products-head {
    display: flex;
    justify-content: center;
    margin-bottom: 5px;
}

.pd-products-section {
    padding: 25px 0 30px;
    background: #fff;
}

@media (min-width: 981px) and (max-width: 1199px) {
    .pd-products-heading-section {
        padding: 31px 0 9px;
    }

    .pd-products-heading-section .pd-products-head {
        margin-bottom: 0;
    }

}

.pd-product-card {
    position: relative;
    display: flex;
    width: min(100%, 360px);
    min-height: 100%;
    flex-direction: column;
    justify-self: center;
    border: 0;
    background: transparent;
    color: var(--pd-green);
}

.pd-product-card__link {
    position: relative;
    z-index: 1;
    display: block;
    line-height: 0;
}

.pd-product-card__name {
    text-decoration: none;
    color: inherit;
}

.pd-product-card__image {
    position: relative;
    display: block;
    aspect-ratio: 10 / 11;
    background: transparent;
    overflow: visible;
}

.pd-product-card__image img {
    display: block;
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: opacity 0.1s linear;
}

.pd-product-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 0;
}

.pd-product-card__name {
    display: block;
    order: 2;
    min-height: 0;
    margin-top: 0;
    color: var(--pd-blue);
    font-size: 20px;
    line-height: 1.35;
    font-weight: 700;
}

.pd-product-card__price {
    display: block;
    order: 1;
    color: var(--pd-green);
    font-size: 20px;
    line-height: 1.75;
    font-weight: 500;
}

.pd-product-card__old-price {
    margin-left: 8px;
    color: #8c8c8c;
    text-decoration: line-through;
}

.pd-product-card__availability {
    display: block;
    order: 2;
    color: #8c8c8c;
    font-size: 14px;
    line-height: 1.35;
}

.pd-product-card__desc {
    order: 3;
    min-height: 44px;
    margin-top: 8px;
    color: var(--pd-green);
    font-size: 14px;
    line-height: 1.55;
}

.pd-product-card__more {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 45px;
    padding: 0 30px;
    border: 0;
    border-radius: 50px;
    background: #e6f2f6;
    color: var(--pd-green);
    font-size: 14px;
    line-height: 1.4;
    font-weight: 400;
    text-decoration: none;
}

.pd-product-card__actions {
    order: 4;
    display: grid;
    grid-template-columns: 141px 70px;
    width: 219px;
    gap: 8px 8px;
    align-items: center;
    align-self: center;
    margin-top: auto;
    padding-top: 20px;
}

.pd-product-card__more {
    grid-column: 1 / -1;
    width: 219px;
    justify-self: center;
}

.pd-product-card__buy {
    width: 70px;
    height: 45px;
    min-height: 45px;
    padding: 0;
    border: 0;
    border-radius: 50px;
    background: var(--pd-green);
    color: #fff;
    cursor: pointer;
    font: inherit;
    font-size: 0;
}

.pd-product-card__buy::before {
    content: "";
    display: block;
    width: 24px;
    height: 24px;
    margin: 0 auto;
    background: url("/local/tilda-home/images/tild6334-3163-4439-a534-653938656230__cart.svg") center / contain no-repeat;
    filter: brightness(0) invert(1);
}

.pd-product-card__buy:disabled {
    cursor: wait;
    opacity: 0.65;
}

/* Двухсостоянийный контрол корзины в карточке (В корзину → В корзине + степпер). Фирменный зелёный. */
.pd-product-card__actions .pd-cart-ctl {
    grid-column: 1 / -1;
    width: 100%;
}
/* [hidden] перебивается author-правилом display:flex (author > UA), поэтому скрываем явно !important. */
.pd-cart-ctl[hidden],
.pd-cart-ctl__incart[hidden],
.pd-cart-ctl__add[hidden] { display: none !important; }
.pd-cart-ctl__add,
.pd-cart-ctl__in {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1px;
    width: 100%;
    height: 45px;
    padding: 6px 12px;
    border: 0;
    border-radius: 50px;
    background: var(--pd-green);
    color: #fff;
    cursor: pointer;
    font: inherit;
    line-height: 1.12;
    text-align: center;
    transition: background-color 0.15s ease;
}
.pd-cart-ctl__title { font-size: 14px; font-weight: 700; }
.pd-cart-ctl__add:hover,
.pd-cart-ctl__in:hover { background: #184a35; }
.pd-cart-ctl__add:disabled { opacity: 0.65; cursor: wait; }
.pd-cart-ctl__incart {
    display: flex;
    gap: 8px;
    align-items: stretch;
    width: 100%;
}
.pd-cart-ctl__in {
    flex: 1 1 auto;
    min-width: 0;
    background: #184a35; /* «в корзине» — чуть темнее + галочка, чтобы отличаться от «в корзину» */
}
.pd-cart-ctl__stepper {
    flex: 0 0 auto;
    display: grid;
    grid-template-columns: var(--step-btn) minmax(22px, auto) var(--step-btn);
    align-items: center;
    justify-items: center;
    height: var(--step-h);
    background: var(--green-tint);
    border: 1.5px solid var(--green-tint-2);
    border-radius: var(--step-r);
}
.pd-cart-ctl__step {
    width: var(--step-btn);
    height: 100%;
    border: 0;
    background: transparent;
    color: var(--green-700);
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
    transition: color 0.15s ease;
}
.pd-cart-ctl__step:hover { color: #184a35; }
.pd-cart-ctl__count {
    min-width: 22px;
    text-align: center;
    color: var(--green-700);
    font-size: .92rem;
    font-weight: 700;
}
/* Одинаковая высота состояний (бордюр степпера не должен «распирать» строку). */
.pd-cart-ctl__add,
.pd-cart-ctl__in,
.pd-cart-ctl__stepper { box-sizing: border-box; }
/* Текстовая кнопка-состояние (Нет в наличии / Сообщить о поступлении) — не иконка-кружок __buy. */
.pd-product-card__actions .pd-product-card__buy--text {
    grid-column: 1 / -1;
    width: 100%;
    font-size: 14px;
    padding: 0 18px;
}
.pd-product-card__buy--text::before { content: none; }

.pd-product-card__status {
    display: block;
    order: 5;
    min-height: 18px;
    margin-top: 8px;
    color: var(--pd-muted);
    font-size: 12px;
}

.pd-product-card__status:empty {
    display: none;
    min-height: 0;
    margin-top: 0;
}

@media (min-width: 981px) and (max-width: 1199px) {
    .pd-products-section {
        padding: 7px 0 9px;
    }

    .pd-products-section .pd-container {
        width: 942px;
        max-width: calc(100% - 80px);
    }

    .pd-products-section .pd-product-card {
        width: 293px;
    }
}

.pd-consult-form button:disabled,
.pd-call-form button[type="submit"]:disabled {
    opacity: 0.68;
    cursor: progress;
}

.pd-consult-form input.is-invalid,
.pd-call-form input.is-invalid {
    border-color: #b94b3d;
    box-shadow: 0 0 0 3px rgba(185, 75, 61, 0.14);
}

.pd-consult-form__status[data-state="error"],
.pd-call-form__status[data-state="error"] {
    color: #b94b3d;
}

.pd-consult-form__status[data-state="success"],
.pd-call-form__status[data-state="success"] {
    color: var(--pd-green);
}

.pd-product-card__weight {
    position: absolute;
    z-index: 5;
    top: -6px;
    right: -18px;
    left: auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    padding: 0;
    border-radius: 50%;
    background: #e6f2f6;
    color: var(--pd-green);
    font-size: 14px;
    line-height: 1;
    text-decoration: none;
}

/* ── Mobile slider controls: animated swipe-hand hint + categories progress bar ── */

@keyframes pd-swipe-hand {
    0% { transform: translateX(-9px); }
    50% { transform: translateX(13px); }
    100% { transform: translateX(-9px); }
}

/* Back-to-top button — prod's white circle + green chevron, bottom-right, fades in on scroll */
.pd-totop {
    position: fixed;
    right: 18px;
    bottom: 18px;
    z-index: 90;
    width: 56px;
    height: 56px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 4px 14px rgba(31, 91, 66, 0.22);
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    transform: translateY(12px);
    transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s;
}

.pd-totop.is-visible {
    opacity: 1;
    visibility: visible;
    transform: none;
}

.pd-totop::before {
    content: "";
    display: block;
    width: 15px;
    height: 15px;
    margin: 4px auto 0;
    border-left: 3px solid #1f5b42;
    border-top: 3px solid #1f5b42;
    transform: rotate(45deg);
}

/* ============================================================
   Новый герой главной — порт HeroCanvas из макета Home.jsx (claude design).
   Токены захардкожены из colors_and_type.css макета:
   green #1F5B42 / green-700 #164230 / warm #E8852E / warm-600 #CC7120 /
   ink #211F1A / muted #6E695E. Градиенты и геометрия — дословно из JSX.
   ============================================================ */
.pd-hero2 {
    position: relative;
    overflow: hidden;
    min-height: 600px;
    background:
        radial-gradient(760px 440px at 83% 20%, rgba(244, 177, 112, .55) 0%, rgba(225, 131, 62, .35) 40%, rgba(225, 131, 62, 0) 72%),
        radial-gradient(620px 360px at 9% 84%, rgba(238, 226, 205, .62) 0%, rgba(238, 226, 205, .14) 50%, rgba(238, 226, 205, 0) 76%),
        radial-gradient(820px 300px at 68% 108%, rgba(139, 84, 40, .16) 0%, rgba(139, 84, 40, .04) 55%, rgba(139, 84, 40, 0) 80%),
        linear-gradient(108deg, #fffdf8 0%, #f8f3e9 100%);
}

/* фото-холст: пауч прижат к правому краю контентной области (wrap 1200/28 из макета) */
.pd-hero2__canvas {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 28px;
    width: 100%;
}

/* .product-pack из макета: холст сам по размеру пауча (аспект 1455×1608),
   ::before — мягкий тёплый ореол, ::after — контактная тень под упаковкой. */
.pd-hero2__media {
    position: absolute;
    top: 40px;
    right: -30px;
    width: clamp(400px, 34vw, 470px);
    isolation: isolate;
    overflow: visible;
}

/* <picture>-обёртка не влияет на раскладку — пауч остаётся прямым ребёнком media */
.pd-hero2__media picture {
    display: contents;
}

/* Мягкий градиентный акцент за упаковкой */
.pd-hero2__media::before {
    content: "";
    position: absolute;
    z-index: -2;
    inset: 4% -14% -5% -8%;
    background: radial-gradient(circle at 58% 48%,
        rgba(235, 137, 96, .22) 0%,
        rgba(235, 137, 96, .11) 38%,
        rgba(235, 137, 96, 0) 72%);
    filter: blur(36px);
    pointer-events: none;
}

/* Контактная тень под упаковкой */
.pd-hero2__media::after {
    content: "";
    position: absolute;
    z-index: -1;
    left: 10%;
    right: -2%;
    bottom: -2.5%;
    height: 11%;
    border-radius: 50%;
    background: radial-gradient(ellipse at center,
        rgba(55, 39, 28, .38) 0%,
        rgba(55, 39, 28, .19) 42%,
        rgba(55, 39, 28, 0) 74%);
    filter: blur(15px);
    transform: translateY(8px) scaleX(.96);
    pointer-events: none;
}

/* Тень повторяет прозрачный контур упаковки */
.pd-hero2__pouch {
    position: relative;
    z-index: 1;
    display: block;
    width: 100%;
    height: auto;
    filter:
        drop-shadow(0 9px 9px rgba(53, 35, 24, .10))
        drop-shadow(13px 22px 24px rgba(53, 35, 24, .19));
}

.pd-hero2__inner {
    position: relative;
    z-index: 2;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 28px 30px;
    width: 100%;
}

.pd-hero2__text {
    max-width: min(560px, 52%);
    padding: 52px 0 30px;
    position: relative;
    z-index: 2;
}

/* надзаголовок — это H1 страницы: сброс браузерных отступов/межстрочного у h1 */
.pd-hero2__eyebrow {
    display: block;
    margin: 0;
    line-height: 1.45;
    font-family: 'Golos Text', system-ui, -apple-system, 'Segoe UI', sans-serif;
    font-size: .76rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #164230;
}

.pd-hero2 .pd-hero2__title {
    font-family: 'Nunito', system-ui, -apple-system, sans-serif;
    font-weight: 800;
    color: #211F1A;
    font-size: clamp(1.85rem, 1.1rem + 1.5vw, 2.4rem);
    line-height: 1.08;
    letter-spacing: -.03em;
    margin: 13px 0 0;
    text-transform: none;
}

.pd-hero2 .pd-hero2__title span {
    display: block;
    white-space: nowrap;
}

.pd-hero2__lead {
    margin: 15px 0 0;
    font-family: 'Golos Text', system-ui, -apple-system, 'Segoe UI', sans-serif;
    font-size: 1rem;
    line-height: 1.52;
    color: #6E695E;
    width: 720px;
    height: 70px;
}

.pd-hero2__usp {
    list-style: none;
    margin: 22px 0 0;
    padding: 0;
    display: grid;
    grid-template-columns: 1fr;
    gap: 11px;
    max-width: 480px;
}

.pd-hero2__usp li {
    min-width: 0;
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr);
    align-items: center;
    gap: 11px;
}

.pd-hero2__ic {
    width: 40px;
    height: 40px;
    border-radius: 12px;
    background: rgba(231, 241, 236, .82);
    color: #164230;
    display: grid;
    place-items: center;
}

.pd-hero2__ic .ms {
    font-size: 23px;
}

.pd-hero2__usp-t {
    font-family: 'Golos Text', system-ui, -apple-system, 'Segoe UI', sans-serif;
    font-size: .9rem;
    font-weight: 500;
    line-height: 1.36;
    color: #403b36;
}

.pd-hero2__cta {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 23px;
}

/* кнопки .btn/.btn-lg из app.css макета */
.pd-hero2__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    font-family: var(--sans);
    font-weight: var(--btn-fw);
    font-size: var(--btn-l-fs);
    border-radius: var(--btn-r);
    min-height: var(--btn-l-h);
    padding: 0 var(--btn-l-px);
    line-height: 1.1;
    white-space: nowrap;
    text-decoration: none;
    transition: background .2s cubic-bezier(.22, .61, .36, 1), opacity .2s cubic-bezier(.22, .61, .36, 1);
}

.pd-hero2__btn:active {
    opacity: .9;
}

.pd-hero2__btn--green {
    background: #1F5B42;
    color: #fff;
}

.pd-hero2__btn--green:hover {
    background: #164230;
    color: #fff;
}

.pd-hero2__btn--warm {
    background: #E8852E;
    color: #fff;
}

.pd-hero2__btn--warm:hover {
    background: #CC7120;
    color: #fff;
}

/* короткая подпись кнопки — только в однострочной мобильной раскладке (ниже, 360–980) */
.pd-hero2__btn-short {
    display: none;
}

/* Мобильный герой-фигура (картинка с заголовком поверх) — скрыта на ПК */
.pd-hero2__mobile {
    display: none;
}

/* ---- мобильная версия героя (isMobile из макета): картинка с заголовком поверх → кнопки → текст → УТП ---- */
@media (max-width: 980px) {
    .pd-hero2 {
        min-height: 0;
        display: flex;
        flex-direction: column;
        padding: 18px 18px 20px;
        background:
            radial-gradient(600px 380px at 88% 12%, rgba(244, 177, 112, .55) 0%, rgba(225, 131, 62, .35) 40%, rgba(225, 131, 62, 0) 72%),
            radial-gradient(500px 300px at 6% 92%, rgba(238, 226, 205, .62) 0%, rgba(238, 226, 205, 0) 74%),
            linear-gradient(160deg, #fffdf8 0%, #f8f3e9 100%);
    }

    .pd-hero2__inner {
        order: 1;
        padding: 0;
        max-width: none;
    }

    .pd-hero2__text {
        max-width: 100%;
        padding: 0;
    }

    .pd-hero2 .pd-hero2__title {
        font-size: clamp(1.3rem, 4.6vw, 1.55rem);
    }

    .pd-hero2 .pd-hero2__title span {
        white-space: normal;
    }

    .pd-hero2__lead {
        font-size: .98rem;
        width: auto;
        height: auto;
    }

    .pd-hero2__usp {
        margin-top: 24px;
        max-width: 100%;
    }

    /* Десктопный пауч-холст на мобильном не показываем — вместо него
       отдельная мобильная фигура с заголовком поверх картинки. */
    .pd-hero2__canvas {
        display: none;
    }

    .pd-hero2__mobile {
        display: block;
        order: 2;
        position: relative;
        margin: 18px 0 0;
    }

    .pd-hero2__mobile-img {
        display: block;
        width: 100%;
        height: auto;
    }

    /* Заголовок поверх верхней части упаковки (top 25% из макета) */
    .pd-hero2__mtitle {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        height: 25%;
        margin: 0;
        padding: 26px 18px 0;
        display: flex;
        align-items: flex-start;
        font-family: 'Nunito', system-ui, -apple-system, sans-serif;
        font-weight: 800;
        color: #211F1A;
        font-size: clamp(1.05rem, 4vw, 1.3rem);
        line-height: 1.12;
        letter-spacing: -.02em;
    }

    /* Порядок блоков на мобильном:
       1 картинка+заголовок → 2 кнопки → 3 текст → 4 УТП.
       Разворачиваем обёртки в display:contents, чтобы листья стали
       прямыми флекс-элементами .pd-hero2 и слушались order. */
    .pd-hero2__inner,
    .pd-hero2__text {
        display: contents;
    }

    .pd-hero2__eyebrow {
        display: none;
    }

    .pd-hero2 .pd-hero2__title {
        display: none; /* заголовок теперь на картинке (.pd-hero2__mtitle) */
    }

    .pd-hero2__cta {
        order: 3;
        margin-top: 24px;
        flex-direction: column;
        align-items: stretch;
    }

    .pd-hero2__btn {
        width: 100%;
    }

    .pd-hero2__lead {
        order: 4;
        margin-top: 22px;
    }

    .pd-hero2__usp {
        order: 5;
        margin-top: 24px;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 13px 20px;
    }

    .pd-hero2__usp li {
        grid-template-columns: 42px minmax(0, 1fr);
        align-items: start;
        gap: 11px;
    }

    .pd-hero2__ic {
        width: 42px;
        height: 42px;
    }

    .pd-hero2__usp-t {
        font-size: 14px;
    }
}

/* УТП превращается в 2×2 сетку карточек на телефоне (порт .pd-benefits из макета) */
@media (max-width: 640px) {
    .pd-hero2__usp {
        margin-top: 24px;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }

    .pd-hero2__usp li {
        min-height: 132px;
        padding: 12px;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 9px;
        border: 1px solid rgba(31, 106, 80, .10);
        border-radius: 14px;
        background: rgba(255, 255, 255, .52);
        box-shadow:
            inset 0 1px 0 rgba(255, 255, 255, .72),
            0 8px 22px rgba(62, 45, 33, .035);
        -webkit-backdrop-filter: blur(3px);
        backdrop-filter: blur(3px);
    }

    .pd-hero2__ic {
        width: 38px;
        height: 38px;
        flex: 0 0 38px;
        border-radius: 11px;
        border: 1px solid rgba(31, 106, 80, .16);
        box-shadow: inset 0 1px 0 rgba(255, 255, 255, .62);
    }

    .pd-hero2__ic .ms {
        font-size: 22px;
    }

    .pd-hero2__usp-t {
        padding: 0;
        font-size: 12.8px;
        line-height: 1.38;
    }
}

/* Очень узкие экраны: карточки обратно в строку (порт из макета ≤365) */
@media (max-width: 365px) {
    .pd-hero2__usp {
        grid-template-columns: 1fr;
    }

    .pd-hero2__usp li {
        min-height: 0;
        flex-direction: row;
        align-items: center;
    }
}

/* ---- Новая мобильная раскладка героя (.pd-hero2--m2, пока только авторизованным):
   надзаголовок-H1 и слоган → кнопки → упаковка → текст → 4 преимущества в столбик.
   Без дублей: H1, кнопки и список преимуществ — ТЕ ЖЕ элементы, что на ПК (обёртки
   .pd-hero2__inner/__text на ≤980 уже display:contents → листья = флекс-элементы секции,
   порядок через order). Здесь только переоформление + SVG-иконки .pd-hero2__m2-ic. ---- */
.pd-hero2__m2-ic {
    display: none;
}

@media (max-width: 980px) {
    .pd-hero2--m2 {
        padding: 26px 18px 28px;
        background: #FCF7EC; /* ровный кремовый фон по образцу юзера, без градиентов */
    }

    /* тот же текст, что на ПК, — под упаковкой, над преимуществами */
    .pd-hero2--m2 .pd-hero2__lead {
        order: 5;
        margin-top: 28px;
    }

    /* Надзаголовок — H1 страницы, поэтому на мобильном тоже виден: над слоганом,
       отступ до слогана — как на ПК (13px) */
    .pd-hero2--m2 .pd-hero2__eyebrow {
        display: block;
        order: 1;
        margin: 0 0 13px;
    }

    /* Слоган виден на мобильном: 1-я фраза — как .pd-sets-rb__h1, 2-я — как
       .pd-hlt__lead.pd-hlt__lead--wide.pd-trt__lead-h (sets-rebrand.css) */
    .pd-hero2--m2 .pd-hero2__title {
        display: block;
        order: 1;
        margin: 0;
        font-size: 1rem;
        letter-spacing: normal;
    }

    .pd-hero2--m2 .pd-hero2__title span:first-child {
        font-family: 'Nunito', system-ui, sans-serif;
        font-weight: 800;
        font-size: 2.6rem;
        line-height: 1.05;
        letter-spacing: -.02em;
        color: #211F1A;
    }

    .pd-hero2--m2 .pd-hero2__title span:last-child {
        margin-top: 6px;
        font-family: 'Golos Text', system-ui, sans-serif;
        font-weight: 700;
        font-size: 1.08rem;
        line-height: 1.6;
        letter-spacing: normal;
        color: #211F1A;
    }

    .pd-hero2--m2 .pd-hero2__cta {
        order: 3;
        gap: 12px;
        margin-top: 24px;
    }

    .pd-hero2--m2 .pd-hero2__mobile {
        order: 4;
        margin-top: 28px;
    }

    .pd-hero2--m2 .pd-hero2__usp {
        order: 6;
        grid-template-columns: 1fr;
        gap: 14px;
        max-width: none;
        margin: 24px 0 0;
    }

    /* сброс мобильных «карточек» старого героя (≤620/≤365) */
    .pd-hero2--m2 .pd-hero2__usp li {
        display: flex;
        flex-direction: row;
        align-items: center;
        gap: 10px;
        min-width: 0;
        min-height: 0;
        padding: 0;
        border: 0;
        border-radius: 0;
        background: none;
        box-shadow: none;
        -webkit-backdrop-filter: none;
        backdrop-filter: none;
    }

    .pd-hero2--m2 .pd-hero2__ic {
        display: none;
    }

    .pd-hero2--m2 .pd-hero2__m2-ic {
        flex: 0 0 46px;
        width: 46px;
        height: 46px;
        border-radius: 50%;
        background: #F1E7D6;
        color: #1F5B42;
        display: grid;
        place-items: center;
    }

    .pd-hero2--m2 .pd-hero2__usp-t {
        min-width: 0;
        padding: 0;
        font-family: 'Golos Text', system-ui, -apple-system, 'Segoe UI', sans-serif;
        font-size: 13px;
        font-weight: 500;
        line-height: 1.36;
        color: #403b36;
    }
}

@media (max-width: 640px) {
    .pd-hero2--m2 .pd-hero2__title span:first-child {
        font-size: 1.8rem;
    }
}

/* Кнопки героя на мобильном — в одну строку, одинаковой ширины, с короткими
   подписями («Калькулятор» / «Стартовый набор»). Уже 360px в одну строку не
   помещаются даже короткие подписи, поэтому там — прежний столбик с полными. */
@media (min-width: 360px) and (max-width: 980px) {
    .pd-hero2--m2 .pd-hero2__cta {
        flex-direction: row;
        flex-wrap: nowrap;
    }

    .pd-hero2--m2 .pd-hero2__btn {
        flex: 1 1 0;
        min-width: 0;
        width: auto;
        padding: 0 10px;
        font-size: 1rem;
    }

    .pd-hero2--m2 .pd-hero2__btn-full {
        display: none;
    }

    .pd-hero2--m2 .pd-hero2__btn-short {
        display: inline;
    }
}

/* 360–374px: «Стартовый набор» при 16px не влезает в половину строки */
@media (min-width: 360px) and (max-width: 374px) {
    .pd-hero2--m2 .pd-hero2__btn {
        font-size: .94rem;
    }
}

/* Блок «Нормы кормления для кошек» на главной = ТОТ ЖЕ блок, что на
   /s-osobennostyami-zdorovya/ (pdHealthNormsTable, .pd-hlt-table). На странице здоровья
   секция --tight (padding-top:0, идёт за другой); на главной задаём симметричный ритм
   как у соседних .pd-hm блоков (34px / 24px), сам блок при этом идентичен. */
.pd-home-norms .pd-hlt-info--tight {
    padding: 34px 0;
}

@media (max-width: 980px) {
    .pd-home-norms .pd-hlt-info--tight {
        padding: 24px 0;
    }
}

/* Заголовок «Нормы кормления» на главной — по стилю/центрированию/отступам как
   заголовок FAQ (.pd-hm-h2), а не health-овский uppercase .pd-hlt__h2. Только на главной. */
.pd-home-norms .pd-hlt__h2 {
    font-size: var(--h2);
    line-height: 1.12;
    letter-spacing: -.02em;
    text-transform: none;
    text-align: center;
    margin-bottom: 32px;
}

@media (max-width: 640px) {
    .pd-home-norms .pd-hlt__h2 {
        margin-bottom: 22px;
    }
}

/* Подпись под таблицей норм на главной — по центру + небольшой отступ до кнопки
   (margin даём на самой подписи <p>, т.к. margin-top у div-кнопки сбрасывается в этом скоупе). */
.pd-home-norms .pd-hlt-table__note {
    text-align: center;
    margin-bottom: 18px;
}

/* Кнопка «Рассчитать норму кормления» под таблицей норм (только на главной). */
.pd-home-norms__cta {
    text-align: center;
}

/* В скоупе .pd-sets-rb ссылки окрашены в ink → форсим белый текст зелёной кнопки-ссылки. */
.pd-home-norms__cta a.psc-btn--green,
.pd-home-norms__cta a.psc-btn--green:hover {
    color: #fff;
}

/* End */


/* Start:/local/templates/petdiet/css/ui-overlays.css?179250609336991*/
.pd-modal {
    position: fixed;
    inset: 0;
    z-index: 3000;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 28px;
}

.pd-modal.is-open {
    display: flex;
}

.pd-modal-open {
    overflow: hidden;
}

.pd-modal__overlay {
    position: absolute;
    inset: 0;
    z-index: 0;
    background: rgba(31, 91, 66, 0.42);
}

.pd-modal__dialog {
    position: relative;
    z-index: 1;
    width: min(560px, 100%);
    max-height: min(760px, calc(100vh - 56px));
    overflow-y: auto;
    padding: 42px 48px 38px;
    border-radius: 8px;
    background: #fff;
    color: var(--pd-green);
    box-shadow: 0 24px 80px rgba(31, 91, 66, 0.22);
}

.pd-modal__close {
    position: absolute;
    top: 16px;
    right: 16px;
    width: 36px;
    height: 36px;
    border: 0;
    background: transparent;
    cursor: pointer;
}

.pd-modal__close::before,
.pd-modal__close::after {
    content: "";
    position: absolute;
    left: 8px;
    top: 17px;
    width: 20px;
    height: 2px;
    background: var(--pd-green);
}

.pd-modal__close::before {
    transform: rotate(45deg);
}

.pd-modal__close::after {
    transform: rotate(-45deg);
}

.pd-modal h2 {
    margin: 0 34px 10px 0;
    color: var(--pd-green);
    font-size: 32px;
    line-height: 1.1;
}

.pd-modal__lead {
    margin: 0 0 26px;
    font-size: 18px;
    line-height: 1.35;
}

.pd-call-form {
    display: grid;
    gap: 16px;
}

.pd-call-form label,
.pd-call-form__contact {
    margin: 0;
}

.pd-call-form > label:not(.pd-call-form__agree) {
    display: grid;
    gap: 7px;
}

.pd-call-form > label:not(.pd-call-form__agree) > span,
.pd-call-form__contact legend,
.pd-review-form__rating legend {
    font-size: 14px;
    font-weight: 700;
}

#call {
    align-items: center;
    justify-content: center;
}

#call .pd-modal__overlay {
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(8px);
}

#call .pd-modal__dialog {
    width: min(1200px, calc(100vw - 240px));
    max-height: min(690px, calc(100vh - 120px));
    padding: 36px 296px 35px;
    border-radius: 30px;
    background: #f0e7df;
    color: var(--pd-green);
    box-shadow: none;
    text-align: center;
}

#call .pd-modal__close {
    position: fixed;
    top: 20px;
    right: 20px;
    width: 32px;
    height: 32px;
}

#call .pd-modal__close::before,
#call .pd-modal__close::after {
    left: 2px;
    top: 15px;
    width: 30px;
    height: 2px;
    background: #000;
}

#call .pd-modal h2 {
    margin: 0 0 8px;
    color: #d2a477;
    font-family: var(--sans);
    font-size: 40px;
    line-height: 1.15;
    font-weight: 400;
}

#call .pd-modal__lead {
    margin: 0 0 20px;
    color: #d2a477;
    font-size: 20px;
    line-height: 1.35;
}

#call .pd-call-form {
    gap: 12px;
}

#call .pd-call-form > label:not(.pd-call-form__agree) {
    gap: 0;
}

#call .pd-call-form > label:not(.pd-call-form__agree) > span {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

#call .pd-call-form input[type="text"],
#call .pd-call-form input[type="tel"] {
    min-height: 54px;
    padding: 0 20px;
    border: 0;
    border-radius: 999px;
    background: #f8fbfd;
    color: var(--pd-green);
    font-size: 22px;
}

#call .pd-call-form input::placeholder {
    color: #8aa89c;
}

#call .pd-call-form__contact {
    margin-top: 0;
    color: #000;
    text-align: left;
}

#call .pd-call-form__contact legend {
    margin-bottom: 8px;
    color: #000;
    font-size: 16px;
    font-weight: 400;
}

#call .pd-call-form__contact label {
    color: #000;
    font-size: 16px;
    font-weight: 400;
}

#call .pd-call-form input[type="radio"],
#call .pd-call-form__agree input {
    appearance: none;
    width: 18px;
    height: 18px;
    min-height: 0;
    border: 1px solid #d5a175;
    border-radius: 50%;
    background: transparent;
}

#call .pd-call-form__agree input {
    border-radius: 0;
}

#call .pd-call-form__agree {
    grid-template-columns: 18px 1fr;
    gap: 10px;
    color: #000;
    font-size: 16px;
    line-height: 1.2;
    text-align: left;
}

#call .pd-call-form__agree a {
    color: #a9d1de;
    text-decoration: none;
}

#call .pd-call-form button[type="submit"] {
    justify-self: center;
    width: 210px;
    min-height: var(--btn-l-h);
    margin-top: 0;
    border-radius: var(--btn-r);
    background: var(--green);
    color: #fff;
    font-size: var(--btn-l-fs);
    font-weight: var(--btn-fw);
}

@media (max-width: 980px) {
    #call .pd-modal__dialog {
        width: min(640px, calc(100vw - 32px));
        max-height: calc(100vh - 72px);
        padding: 34px 28px 32px;
    }
}

@media (max-width: 640px) {
    #call {
        padding: 18px;
    }

    #call .pd-modal__dialog {
        padding: 30px 22px 28px;
        border-radius: 24px;
    }

    #call .pd-modal h2 {
        font-size: 34px;
    }

    #call .pd-modal__lead,
    #call .pd-call-form__agree,
    #call .pd-call-form__contact label {
        font-size: 14px;
    }

    #call .pd-call-form__contact {
        grid-template-columns: 1fr;
        gap: 8px;
    }
}

.pd-call-form input[type="text"],
.pd-call-form input[type="tel"],
.pd-call-form textarea {
    box-sizing: border-box;
    width: 100%;
    min-height: 52px;
    padding: 0 18px;
    border: 1px solid rgba(31, 91, 66, 0.34);
    border-radius: 0;
    color: var(--pd-green);
    font: inherit;
    font-size: 17px;
}

.pd-call-form textarea {
    min-height: 132px;
    padding: 14px 18px;
    resize: vertical;
}

.pd-call-form__contact {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    padding: 0;
    border: 0;
}

.pd-call-form__contact legend {
    grid-column: 1 / -1;
    margin-bottom: 2px;
}

.pd-review-form__rating {
    display: grid;
    gap: 8px;
    margin: 0;
    padding: 0;
    border: 0;
}

.pd-review-form__rating-options {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    overflow: hidden;
    border: 1px solid rgba(31, 91, 66, 0.26);
    border-radius: 5px;
}

.pd-review-form__rating-options label {
    position: relative;
    display: grid;
    min-height: 44px;
    place-items: center;
    border-right: 1px solid rgba(31, 91, 66, 0.18);
    cursor: pointer;
}

.pd-review-form__rating-options label:last-child {
    border-right: 0;
}

.pd-review-form__rating-options input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.pd-review-form__rating-options span {
    display: grid;
    width: 100%;
    height: 100%;
    place-items: center;
    color: var(--pd-green);
    font-weight: 700;
}

.pd-review-form__rating-options input:checked + span,
.pd-review-form__rating-options label:hover span {
    background: rgba(31, 91, 66, 0.08);
}

.pd-review-form__rating-scale {
    display: flex;
    justify-content: space-between;
    color: rgba(31, 91, 66, 0.62);
    font-size: 13px;
}

.pd-call-form__contact label,
.pd-call-form__agree {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 14px;
    line-height: 1.25;
}

.pd-call-form__agree a {
    color: var(--pd-blue);
}

.pd-call-form button[type="submit"] {
    justify-self: center;
    min-width: 210px;
    min-height: var(--btn-l-h);
    margin-top: 6px;
    padding: 0 var(--btn-l-px);
    border: 0;
    border-radius: var(--btn-r);
    background: var(--green);
    color: #fff;
    font: inherit;
    font-size: var(--btn-l-fs);
    font-weight: var(--btn-fw);
    cursor: pointer;
}

.pd-call-form__status {
    min-height: 20px;
    color: var(--pd-green);
    font-size: 14px;
    text-align: center;
}

/* Review modal (#ostavit-otziv): prod has a centered light-blue heading, a photo
   upload, and a full-width green submit. Scoped so the #call modal is untouched. */
#ostavit-otziv .pd-modal__dialog {
    width: min(600px, 100%);
}

#ostavit-otziv h2 {
    margin: 0 0 24px;
    color: #a9d1de;
    font-size: clamp(26px, 4.5vw, 36px);
    line-height: 1.12;
    font-weight: 700;
    text-align: center;
}

#ostavit-otziv .pd-modal__close::before,
#ostavit-otziv .pd-modal__close::after {
    background: var(--pd-green);
}

#ostavit-otziv .pd-review-form button[type="submit"] {
    justify-self: stretch;
    width: 100%;
    background: var(--pd-green);
    font-size: 17px;
}

.pd-cookie-notice {
    position: fixed;
    right: 20px;
    bottom: 30px;
    left: auto;
    z-index: 4500;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 16px;
    width: min(600px, calc(100% - 40px));
    min-height: 100px;
    padding: 15px 20px 15px 25px;
    border: 0;
    border-radius: 0;
    background: #ebebeb;
    color: var(--pd-green);
    box-shadow: none;
}

.pd-cookie-notice[hidden] {
    display: none;
}

.pd-cookie-notice__text {
    font-size: 15px;
    line-height: 1.55;
}

.pd-cookie-notice__text a {
    color: var(--pd-green);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.pd-cookie-notice__button {
    min-width: 60px;
    min-height: 40px;
    padding: 0 16px;
    border: 1px solid #b7b7b7;
    border-radius: 4px;
    background: #f5f5f5;
    color: #555;
    font: inherit;
    font-size: 14px;
    font-weight: 400;
    cursor: pointer;
}

@media (max-width: 640px) {
    .pd-cookie-notice {
        right: 0;
        bottom: 0;
        left: 0;
        width: auto;
        padding: 15px 25px;
    }

    .pd-cookie-notice__text {
        font-size: 12px;
        line-height: 1.45;
    }
}

.pd-cart-panel {
    position: fixed;
    inset: 0;
    z-index: 4001;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.24s ease, transform 0.24s ease, visibility 0.24s ease;
    pointer-events: none;
}

.pd-cart-panel.is-open {
    opacity: 1;
    visibility: visible;
    transform: translateX(0);
    pointer-events: auto;
}

.pd-cart-panel__overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.32);
}

.pd-cart-panel__body {
    position: absolute;
    top: 0;
    right: 0;
    display: grid;
    grid-template-rows: auto auto minmax(0, 1fr) auto auto auto;
    width: min(540px, 100%);
    height: 100%;
    padding: 30px 28px 26px;
    background: #fff;
    color: #111;
    font-family: var(--sans);
    box-shadow: -18px 0 60px rgba(0, 0, 0, 0.12);
    transform: translateX(100%);
    transition: transform 0.24s ease;
}

.pd-cart-panel.is-open .pd-cart-panel__body {
    transform: translateX(0);
}

.pd-cart-panel__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    padding-bottom: 22px;
    border-bottom: 1px solid rgba(17, 17, 17, 0.12);
}

.pd-cart-panel__eyebrow {
    margin-bottom: 7px;
    color: rgba(17, 17, 17, 0.52);
    font-size: 13px;
    line-height: 1.2;
}

.pd-cart-panel__close {
    position: relative;
    flex: 0 0 auto;
    width: 36px;
    height: 36px;
    border: 1px solid rgba(17, 17, 17, 0.16);
    border-radius: 50%;
    background: #fff;
    cursor: pointer;
}

.pd-cart-panel__close::before,
.pd-cart-panel__close::after {
    content: "";
    position: absolute;
    left: 10px;
    top: 16px;
    width: 14px;
    height: 2px;
    background: #111;
}

.pd-cart-panel__close::before {
    transform: rotate(45deg);
}

.pd-cart-panel__close::after {
    transform: rotate(-45deg);
}

.pd-cart-panel__title {
    color: #111;
    font-size: 22px;
    line-height: 1.1;
    font-weight: 600;
    letter-spacing: 0;
}

.pd-cart-panel__status {
    min-height: 20px;
    margin: 14px 0 10px;
    color: rgba(17, 17, 17, 0.58);
    font-size: 13px;
    line-height: 1.35;
}

.pd-cart-panel__items {
    min-height: 0;
    overflow-y: auto;
    padding-right: 2px;
}

.pd-cart-panel__item {
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr) auto;
    gap: 14px;
    align-items: start;
    padding: 14px 0;
    border-bottom: 1px solid rgba(17, 17, 17, 0.12);
}

.pd-cart-panel__item-image {
    display: grid;
    place-items: center;
    width: 64px;
    height: 64px;
    overflow: hidden;
    background: #f7f7f7;
}

.pd-cart-panel__item-image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* Кегли названия и подписи — как в «Составе заказа» в ЛК
   (.pd-cust-line-cart__n b/small в account-customers.css). */
.pd-cart-panel__item-name {
    display: block;
    color: #111;
    font-size: .9rem;
    line-height: 1.25;
    font-weight: 600;
    text-decoration: none;
}

.pd-cart-panel__item-sku {
    margin-top: 3px;
    color: rgba(17, 17, 17, 0.5);
    font-size: .79rem;
    line-height: 1.3;
}

.pd-cart-panel__item-controls {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-top: 10px;
}

/* Переключатель количества — общий вид степпера дизайн-системы (components.css, токены --step-*). */
.pd-cart-panel__qty {
    display: inline-flex;
    align-items: center;
    height: var(--step-h);
    border: 1.5px solid var(--green-tint-2);
    border-radius: var(--step-r);
    background: var(--green-tint);
    overflow: hidden;
}

.pd-cart-panel__qty button {
    display: grid;
    place-items: center;
    width: var(--step-btn);
    height: 100%;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--green-700);
    font-size: 16px;
    line-height: 1;
    cursor: pointer;
    transition: background .16s;
}

.pd-cart-panel__qty button:hover { background: var(--green-tint-2); }
.pd-cart-panel__qty button svg { display: block; }

/* Количество — поле ввода (правится и кнопками, и с клавиатуры).
   Подчёркивание — единственный признак того, что цифру можно набрать:
   рамка и фон сделали бы из неё «окошко» посреди строки. */
.pd-cart-panel__qty input {
    box-sizing: border-box;
    width: 40px;
    height: 26px;
    padding: 0 0 2px;
    margin: 0;
    border: 0;
    border-bottom: 1.5px solid rgba(22, 66, 48, 0.35);
    border-radius: 0;
    background: transparent;
    outline: none;
    color: var(--green-700);
    font-family: inherit;
    font-size: 16px; /* <16px → iOS Safari зумит страницу при фокусе */
    font-weight: 700;
    text-align: center;
    cursor: text;
    transition: border-color .16s;
}

.pd-cart-panel__qty input:hover { border-bottom-color: rgba(33, 31, 26, 0.55); }
.pd-cart-panel__qty input:focus { border-bottom-color: var(--green, #1F5B42); }

.pd-cart-panel__item-sum {
    color: #111;
    font-size: 16px;
    font-weight: 600;
    white-space: nowrap;
}

.pd-cart-panel__remove {
    position: relative;
    align-self: start;
    width: 28px;
    height: 28px;
    border: 1px solid rgba(17, 17, 17, 0.2);
    border-radius: 50%;
    background: transparent;
    color: #555;
    cursor: pointer;
}

.pd-cart-panel__remove::before,
.pd-cart-panel__remove::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 12px;
    height: 1.5px;
    background: currentColor;
}

.pd-cart-panel__remove::before {
    transform: translate(-50%, -50%) rotate(45deg);
}

.pd-cart-panel__remove::after {
    transform: translate(-50%, -50%) rotate(-45deg);
}

.pd-cart-panel__empty {
    align-self: center;
    color: rgba(17, 17, 17, 0.62);
    font-size: 16px;
    line-height: 1.45;
}

.pd-cart-panel__summary {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    margin-top: 22px;
    padding: 20px 0 0;
    border-top: 1px solid rgba(17, 17, 17, 0.12);
    color: #111;
    font-size: 18px;
    line-height: 1.2;
}

.pd-cart-panel__summary strong {
    font-weight: 400;
}

.pd-cart-panel__actions {
    display: grid;
    gap: 10px;
    margin-top: 18px;
}

.pd-cart-panel__checkout,
.pd-cart-panel__continue {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    padding: 0 22px;
    border-radius: 999px;
    font: inherit;
    font-size: 14px;
    line-height: 1.1;
    text-decoration: none;
    cursor: pointer;
}

.pd-cart-panel__checkout {
    border: 0;
    background: #111;
    color: #fff;
}

.pd-cart-panel__checkout.is-disabled {
    opacity: 0.42;
    pointer-events: none;
}

.pd-cart-panel__continue {
    border: 1px solid rgba(17, 17, 17, 0.16);
    background: transparent;
    color: #111;
}

body.pd-cart-panel-open {
    overflow: hidden;
}

.pd-main > .bx-authform,
.pd-body--personal:not(.pd-body--checkout) .pd-main .bx-authform {
    width: min(1120px, calc(100% - 32px));
    margin: 48px auto 84px;
    color: var(--pd-green);
    font-family: var(--sans);
}

.bx-authform a,
.bx-authform a:hover {
    color: var(--pd-green);
    text-decoration: none;
}

.bx-authform-input-container input[type="text"],
.bx-authform-input-container input[type="password"],
.bx-authform-input-container input[type="email"] {
    min-height: 46px;
    border: 1px solid rgba(17, 17, 17, 0.18);
    border-radius: 999px;
    background: #fff;
    color: #111;
    box-shadow: none;
}

.bx-authform-input-container input:focus {
    border-color: #111;
    outline: 3px solid rgba(17, 17, 17, 0.12);
}

.bx-authform .btn-primary,
.bx-authform .btn-primary:hover,
.bx-authform .btn-primary:focus,
.bx-authform input[type="submit"].button,
.bx-authform input[type="submit"].button:hover,
.bx-authform input[type="submit"].button:focus {
    min-height: 52px;
    border: 0;
    border-color: #111;
    border-radius: 999px;
    background: #111;
    background-color: #111;
    color: #fff;
    font-family: var(--sans);
    font-size: 14px;
    font-weight: 400;
    text-transform: uppercase;
    box-shadow: none;
}

.pd-main > .bx-authform,
.pd-body--personal:not(.pd-body--checkout) .pd-main .bx-authform {
    max-width: 560px;
    padding: 38px;
    border: 1px solid var(--pd-border);
    border-radius: 8px;
    background: #fff;
    box-shadow: var(--pd-shadow);
}

.bx-authform .bx-title {
    margin: 0 0 24px;
    color: var(--pd-green);
    font-family: var(--display);
    font-size: 34px;
    line-height: 1.05;
    font-weight: 900;
    text-transform: uppercase;
}

.bx-authform-social {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 0 0 24px;
}

.bx-authform-social-icon {
    width: 42px;
    height: 42px;
    border: 1px solid var(--pd-border);
    border-radius: 50%;
    background-color: #f7faf8;
}

.bx-authform .bxe-light {
    height: 1px;
    margin: 24px 0;
    border: 0;
    background: var(--pd-border);
}

.bx-authform-formgroup-container {
    margin-bottom: 18px;
}

.bx-authform-label-container,
.bx-authform .checkbox,
.bx-filter-param-text {
    color: var(--pd-green);
    font-size: 15px;
    font-weight: 700;
}

.bx-authform .checkbox {
    margin: 0;
}

.bx-authform .btn-primary {
    min-height: 48px;
    padding: 0 28px;
}

.bx-authform-link-container {
    color: var(--pd-muted);
    font-size: 15px;
    line-height: 1.45;
}

.bx-authform-link-container + .bx-authform-link-container {
    margin-top: 12px;
}

.bx-authform-link-container a {
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 4px;
}

.pd-body--personal:not(.pd-body--checkout) .pd-main .alert {
    border: 1px solid var(--pd-border);
    border-radius: 8px;
    background: #f7faf8;
    color: var(--pd-green);
    font-weight: 700;
}

.pd-body--personal:not(.pd-body--checkout) .pd-main .form-control,
.pd-body--personal:not(.pd-body--checkout) .pd-main input[type="text"],
.pd-body--personal:not(.pd-body--checkout) .pd-main input[type="password"],
.pd-body--personal:not(.pd-body--checkout) .pd-main input[type="email"],
.pd-body--personal:not(.pd-body--checkout) .pd-main input[type="tel"],
.pd-body--personal:not(.pd-body--checkout) .pd-main textarea,
.pd-body--personal:not(.pd-body--checkout) .pd-main select {
    min-height: 46px;
    border: 1px solid var(--pd-border);
    border-radius: 8px;
    background: #fff;
    color: var(--pd-green);
    box-shadow: none;
}

.pd-body--personal:not(.pd-body--checkout) .pd-main .form-control:focus,
.pd-body--personal:not(.pd-body--checkout) .pd-main input:focus,
.pd-body--personal:not(.pd-body--checkout) .pd-main textarea:focus,
.pd-body--personal:not(.pd-body--checkout) .pd-main select:focus {
    border-color: var(--pd-green);
    outline: 3px solid rgba(31, 91, 66, 0.16);
    box-shadow: none;
}

.pd-body--personal:not(.pd-body--checkout) .pd-main .btn-primary,
.pd-body--personal:not(.pd-body--checkout) .pd-main .btn-primary:hover,
.pd-body--personal:not(.pd-body--checkout) .pd-main .btn-primary:focus {
    min-height: 46px;
    border: 1px solid var(--pd-green);
    border-radius: 999px;
    background: var(--pd-green);
    color: #fff;
    font-weight: 700;
    text-transform: uppercase;
    box-shadow: none;
}

.pd-body--personal:not(.pd-body--checkout) .pd-main table {
    width: 100%;
    overflow: hidden;
    border: 1px solid var(--pd-border);
    border-radius: 8px;
    background: #fff;
    border-collapse: separate;
    border-spacing: 0;
    box-shadow: 0 12px 34px rgba(31, 91, 66, 0.08);
}

.pd-body--personal:not(.pd-body--checkout) .pd-main th,
.pd-body--personal:not(.pd-body--checkout) .pd-main td {
    padding: 14px 16px;
    border-bottom: 1px solid var(--pd-border);
    color: var(--pd-green);
    vertical-align: middle;
}

.pd-body--personal:not(.pd-body--checkout) .pd-main th {
    background: #f7faf8;
    font-weight: 900;
    text-transform: uppercase;
}

.pd-body--personal:not(.pd-body--checkout) .pd-main tr:last-child > td {
    border-bottom: 0;
}

.pd-body--checkout .form-control,
.pd-body--checkout input[type="text"],
.pd-body--checkout input[type="email"],
.pd-body--checkout input[type="tel"],
.pd-body--checkout textarea,
.pd-body--checkout select {
    min-height: 50px;
    border: 1px solid rgba(17, 17, 17, 0.18) !important;
    border-radius: 999px !important;
    background-color: #fff;
    color: #111;
    font-family: var(--sans);
    box-shadow: none !important;
}

.pd-body--checkout textarea {
    min-height: 96px;
    border-radius: 18px !important;
}

.pd-body--checkout .form-control:focus,
.pd-body--checkout input:focus,
.pd-body--checkout textarea:focus,
.pd-body--checkout select:focus {
    border-color: #111 !important;
    outline: 3px solid rgba(17, 17, 17, 0.12);
}

.pd-body--checkout .btn-primary,
.pd-body--checkout .btn-primary:hover,
.pd-body--checkout .btn-primary:focus {
    min-height: 52px;
    border: 0;
    border-color: #111;
    border-radius: 999px;
    background: #111;
    background-color: #111;
    color: #fff;
    font-family: var(--sans);
    font-size: 14px;
    font-weight: 400;
    text-transform: uppercase;
    box-shadow: none;
}

.pd-body--checkout .alert-danger:empty {
    display: none;
}

.pd-checkout {
    width: min(1160px, calc(100% - 32px));
    margin: 36px auto 84px;
    color: #111;
    font-family: var(--sans);
}

.pd-checkout__head {
    margin-bottom: 30px;
}

.pd-checkout__back {
    display: inline-flex;
    margin-bottom: 18px;
    color: rgba(17, 17, 17, 0.58);
    font-size: 14px;
    line-height: 1.3;
    text-decoration: none;
}

.pd-checkout h1 {
    margin: 0;
    color: #a9d1de;
    font-family: var(--sans);
    font-size: clamp(42px, 5vw, 72px);
    line-height: 1;
    font-weight: 400;
    letter-spacing: 0;
}

.pd-checkout__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(340px, 420px);
    gap: 48px;
    align-items: start;
}

.pd-checkout__form {
    display: grid;
    gap: 20px;
    min-width: 0;
}

.pd-checkout-card,
.pd-checkout-summary,
.pd-checkout__success,
.pd-checkout__alert,
.pd-checkout__empty {
    border: 0;
    background: #fff;
    box-shadow: none;
}

.pd-checkout-card {
    padding: 0;
}

.pd-checkout-card h2,
.pd-checkout-summary h2,
.pd-checkout__success h2 {
    margin: 0 0 20px;
    color: #111;
    font-family: var(--sans);
    font-size: 20px;
    line-height: 1.2;
    font-weight: 400;
    letter-spacing: 0;
}

.pd-checkout-card label {
    display: grid;
    gap: 0;
    margin: 0 0 20px;
}

.pd-checkout-card label:last-child {
    margin-bottom: 0;
}

.pd-checkout-card label > span,
.pd-checkout-fieldset > span,
.pd-checkout-check span {
    display: block;
    padding: 0 10px 5px 0;
    color: #1f5b42;
    font-family: var(--sans);
    font-size: 16px;
    line-height: 1.45;
    font-weight: 500;
}

.pd-checkout-card small {
    color: #1f5b42;
    font-family: var(--sans);
    font-size: 12px;
    line-height: 1.55;
    opacity: 0.7;
}

.pd-checkout input[type="text"],
.pd-checkout input[type="email"],
.pd-checkout input[type="tel"],
.pd-checkout textarea {
    width: 100%;
    min-height: var(--field-h);
    padding: 0 var(--field-px) !important;
    border: var(--field-bd) !important;
    border-radius: var(--field-r) !important;
    background: var(--field-bg) !important;
    color: var(--ink) !important;
    font-family: inherit !important;
    font-size: var(--field-fs) !important;
    line-height: 1.33 !important;
    font-weight: 400 !important;
    box-shadow: none !important;
}

.pd-checkout textarea {
    min-height: 96px;
    padding-top: 14px !important;
    border-radius: var(--field-r) !important;
    resize: vertical;
}

.pd-checkout input:focus,
.pd-checkout textarea:focus {
    border-color: var(--field-focus) !important;
    outline: 0;
    box-shadow: var(--field-ring) !important;
}

.pd-checkout__inline-fields {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 150px;
    gap: 0 14px;
    align-items: start;
}

.pd-checkout__inline-fields label {
    align-content: start;
    margin-bottom: 0;
}

.pd-checkout-options {
    display: grid;
    gap: 0;
    margin-bottom: 20px;
}

.pd-checkout-option {
    display: grid !important;
    grid-template-columns: 20px minmax(0, 1fr);
    gap: 10px !important;
    align-items: start;
    margin: 0 0 10px !important;
    padding: 0;
    border: 0;
    background: #fff;
    color: #1f5b42;
    font-family: var(--sans);
    font-size: 12px;
    line-height: 1;
    font-weight: 400;
    cursor: pointer;
}

.pd-checkout-option:first-child {
    margin-top: 3px !important;
}

.pd-checkout-option:last-child {
    margin-bottom: 0 !important;
}

.pd-checkout-option:has(input:checked) {
    color: #1f5b42;
    background: transparent;
}

.pd-checkout-option input {
    width: 18px;
    height: 18px;
    margin: 0;
    accent-color: #1f5b42;
}

.pd-checkout-option strong {
    display: block;
    color: #1f5b42;
    font-size: 12px;
    line-height: 1.25;
    font-weight: 400;
}

.pd-checkout-option small {
    display: block;
    margin-top: 5px;
    color: #1f5b42;
    font-size: 12px;
    line-height: 1.45;
    opacity: 0.7;
}

.pd-checkout-check {
    display: grid !important;
    grid-template-columns: 18px minmax(0, 1fr);
    gap: 10px !important;
    align-items: center;
    margin: 0 0 20px !important;
    color: #1f5b42;
    font-family: var(--sans);
    font-size: 12px;
    line-height: 1;
    font-weight: 400;
}

.pd-checkout-fieldset {
    display: grid;
    gap: 0;
    margin-bottom: 20px;
}

.pd-checkout-fieldset .pd-checkout-check {
    margin: 0 0 10px !important;
}

.pd-checkout-fieldset .pd-checkout-check:first-of-type {
    margin-top: 3px !important;
}

.pd-checkout-fieldset .pd-checkout-check:last-child {
    margin-bottom: 0 !important;
}

.pd-checkout-check input {
    width: 18px;
    height: 18px;
    margin: 0;
    accent-color: #1f5b42;
}

.pd-checkout-check span {
    font-size: 12px;
    line-height: 1.35;
    font-weight: 400;
}

.pd-checkout-option input[type="radio"],
.pd-checkout-check input[type="radio"],
.pd-checkout-check input[type="checkbox"] {
    position: relative;
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
    margin: 0;
    border: 2px solid #000;
    background: transparent;
    appearance: none;
    opacity: 0.6;
    cursor: pointer;
}

.pd-checkout-option input[type="radio"],
.pd-checkout-check input[type="radio"] {
    border-radius: 50%;
}

.pd-checkout-check input[type="checkbox"] {
    border-radius: 0;
}

.pd-checkout-option input[type="radio"]:checked,
.pd-checkout-check input[type="radio"]:checked,
.pd-checkout-check input[type="checkbox"]:checked {
    opacity: 1;
}

.pd-checkout-option input[type="radio"]::after,
.pd-checkout-check input[type="radio"]::after {
    content: "";
    position: absolute;
    top: 3px;
    left: 3px;
    display: block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #000;
    opacity: 0;
}

.pd-checkout-option input[type="radio"]:checked::after,
.pd-checkout-check input[type="radio"]:checked::after {
    opacity: 1;
}

.pd-checkout-check input[type="checkbox"]::after {
    content: "";
    position: absolute;
    top: 2px;
    left: 6px;
    display: block;
    width: 4px;
    height: 10px;
    border: solid #000;
    border-width: 0 2px 2px 0;
    opacity: 0;
    transform: rotate(45deg);
}

.pd-checkout-check input[type="checkbox"]:checked::after {
    opacity: 1;
}

.pd-checkout-check a {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.pd-checkout-summary {
    position: sticky;
    top: 124px;
    padding: 0;
    background: #fff;
}

.pd-checkout-summary__items {
    display: grid;
    gap: 12px;
    padding-bottom: 18px;
    border-bottom: 1px solid rgba(17, 17, 17, 0.12);
}

.pd-checkout-summary__minimum {
    margin-bottom: 14px;
    color: #1f5b42;
    font-size: 14px;
    line-height: 1.35;
}

.pd-checkout-summary__minimum.is-warning {
    color: #9f1d1d;
}

.pd-checkout-summary__item,
.pd-checkout-summary__total {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    color: #111;
    font-size: 14px;
    line-height: 1.35;
}

.pd-checkout-summary__item strong,
.pd-checkout-summary__total strong {
    flex: 0 0 auto;
    font-weight: 400;
}

.pd-checkout-summary__total {
    margin-top: 20px;
    font-size: 20px;
    color: #1f5b42;
}

.pd-checkout-summary__delivery {
    margin-top: 16px;
}

.pd-checkout-check--consent {
    margin-top: 20px !important;
}

.pd-checkout-submit,
.pd-checkout__success a,
.pd-checkout__empty a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 60px;
    border: 0;
    border-radius: 50px;
    background: #a9d1de;
    color: #fff;
    font-family: var(--sans);
    font-size: 16px;
    line-height: 1.4;
    font-weight: 400;
    padding: 0 30px;
    text-decoration: none;
    text-transform: uppercase;
    cursor: pointer;
}

.pd-checkout-submit {
    margin-top: 10px;
}

.pd-checkout__success,
.pd-checkout__empty {
    max-width: 680px;
    padding: 30px;
}

.pd-checkout__success p,
.pd-checkout__empty p {
    margin: 0 0 22px;
    color: rgba(17, 17, 17, 0.62);
    font-size: 16px;
    line-height: 1.45;
}

.pd-checkout__alert {
    margin-bottom: 18px;
    padding: 16px 18px;
    background: #fff7f7;
    color: #9f1d1d;
    font-size: 14px;
    line-height: 1.45;
}

@media (max-width: 980px) { /* планшет и телефон: оформление и мини-корзина в одну колонку (было 720) */
    .pd-main > .bx-authform,
.pd-body--personal:not(.pd-body--checkout) .pd-main .bx-authform {
        width: min(100% - 24px, 1120px);
        margin: 32px auto 58px;
    }

    .pd-main > .bx-authform,
    .pd-body--personal:not(.pd-body--checkout) .pd-main .bx-authform {
        padding: 28px 20px;
    }

    .pd-cart-panel__body {
        width: 100%;
        padding: 24px 18px 20px;
    }

    .pd-cart-panel__title {
        font-size: 22px;
    }

    .pd-cart-panel__item {
        grid-template-columns: 64px minmax(0, 1fr) auto;
    }

    .pd-cart-panel__item-image {
        width: 64px;
        height: 64px;
    }

    .pd-body--personal:not(.pd-body--checkout) .pd-main table {
        display: block;
        overflow-x: auto;
        white-space: nowrap;
    }

    .pd-checkout {
        width: min(100% - 24px, 1160px);
        margin: 32px auto 58px;
    }

    .pd-checkout__head {
        margin-bottom: 22px;
    }

    .pd-checkout h1 {
        font-size: 36px;
    }

    .pd-checkout__layout {
        grid-template-columns: minmax(0, 1fr);
        gap: 20px;
    }

    .pd-checkout-card,
    .pd-checkout-summary,
    .pd-checkout__success,
    .pd-checkout__empty {
        padding: 22px 18px;
    }

    .pd-checkout__inline-fields {
        grid-template-columns: minmax(0, 1fr);
        row-gap: 20px;
    }

    .pd-checkout-summary {
        position: static;
    }

    }

/* Фаза 2 — блок доставки: 3 типа, тарифы, карта */
.pd-checkout-dtype {
    display: flex;
    gap: 8px;
    margin-bottom: 18px;
}
.pd-checkout-dtype__item {
    flex: 1 1 0;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 0 10px;
    border: 1px solid var(--pd-border, #dcdcdc);
    border-radius: 12px;
    background: #fff;
    color: #1f5b42;
    font-family: var(--sans);
    font-size: 14px;
    text-align: center;
    cursor: pointer;
    transition: background .15s, border-color .15s, color .15s;
}
.pd-checkout-dtype__item input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
.pd-checkout-dtype__item:has(input:checked) {
    background: #a9d1de;
    border-color: #a9d1de;
    color: #fff;
}

.pd-checkout-dpanel { display: grid; gap: 14px; }
.pd-checkout-dpanel[hidden] { display: none; }

.pd-pickup-card {
    display: grid;
    gap: 4px;
    padding: 16px 18px;
    border: 1px solid var(--pd-border, #dcdcdc);
    border-radius: 12px;
    background: #f4faf7;
    color: #1f5b42;
    font-size: 13px;
}
.pd-pickup-card strong { font-size: 15px; }

.pd-checkout-mapbtn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 48px;
    padding: 0 22px;
    border: 1px solid #a9d1de;
    border-radius: 50px;
    background: #fff;
    color: #1f5b42;
    font-family: var(--sans);
    font-size: 14px;
    cursor: pointer;
}
.pd-checkout-mapbtn:hover { background: #f0f8fb; }

.pd-checkout-tariffs { display: grid; gap: 8px; }
.pd-checkout-tariffs__label { color: rgba(31, 91, 66, 0.7); font-size: 12px; }
.pd-checkout-tariff {
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr);
    gap: 10px;
    align-items: center;
    color: #1f5b42;
    font-size: 13px;
    cursor: pointer;
}
.pd-checkout-tariff input { width: 18px; height: 18px; accent-color: #a9d1de; }
.pd-checkout-tariff strong { font-weight: 500; }
.pd-checkout-option__free { display: block; color: #1f8a4c; font-size: 12px; }

/* Карта-модалка */
.pd-map-modal {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 20px;
}
.pd-map-modal.is-open { display: flex; }
.pd-map-modal__overlay { position: absolute; inset: 0; background: rgba(17, 17, 17, 0.55); }
.pd-map-modal__box {
    position: relative;
    z-index: 1;
    display: grid;
    gap: 12px;
    width: min(720px, 100%);
    max-height: 90vh;
    overflow: auto;
    padding: 22px;
    border-radius: 16px;
    background: #fff;
}
.pd-map-modal__box h3 { margin: 0; color: #1f5b42; font-size: 20px; }
.pd-map-modal__close {
    position: absolute;
    top: 12px;
    right: 14px;
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 50%;
    background: #f0f0f0;
    color: #1f5b42;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
}
.pd-map-modal__search {
    width: 100%;
    min-height: 48px;
    padding: 0 16px;
    border: 1px solid var(--pd-border, #dcdcdc);
    border-radius: 10px;
    font-size: 14px;
}
.pd-map-modal__canvas {
    width: 100%;
    height: 360px;
    border-radius: 12px;
    overflow: hidden;
    background: #eef2f4;
}
.pd-map-modal__result { display: grid; gap: 2px; color: #1f5b42; font-size: 14px; line-height: 1.4; }
.pd-map-modal__confirm { margin-top: 4px; }
.pd-map-modal__confirm:disabled { opacity: .5; cursor: not-allowed; }

.pd-checkout-submit:disabled,
.pd-checkout-submit.is-disabled { opacity: .5; cursor: not-allowed; }

body.pd-modal-open { overflow: hidden; }

@media (max-width: 640px) {
    .pd-map-modal__canvas { height: 280px; }
    .pd-checkout-dtype { flex-wrap: wrap; }
}

/* Тач-экраны: области нажатия ≥40–44px (мини-корзина «−/+» была 28, крестики модалок 32–36). ПК-вид не меняется. */
@media (pointer: coarse) {
    .pd-modal__close,
    #call .pd-modal__close,
    .pd-cart-panel__close,
    .pd-map-modal__close { width: 44px; height: 44px; }
}

/* End */


/* Start:/local/templates/petdiet/css/content-pages.css?179250609331963*/
/* ==== Единые хлебные крошки — ОДИН класс .pd-crumb на весь сайт (дизайн-система). ====
   Вид: 13.6px, приглушённый серо-коричневый, разделитель «›» (как на новых страницах).
   Виден только на ПК — на мобильном (<=980) скрыт глобально в responsive.css.
   Базовый класс задаёт ТОЛЬКО вид; вертикальный отступ снизу — из контекста (герой/шелл). */
.pd-crumb {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin: 0;
    padding: 0;
    font-size: .85rem;
    line-height: 1.3;
    font-weight: 400;
    color: #6E695E;
}
.pd-crumb a { color: #6E695E; text-decoration: none; }
.pd-crumb a:hover,
.pd-crumb a:focus-visible { color: #211F1A; }
.pd-crumb .sep,
.pd-crumb .cur { color: inherit; }
/* Отступы старых страниц сохранены 1:1 (скоуп по родительскому шеллу, не по классу крошек) */

/* На не-десктопе заголовок «Как купить…» не помещается одной строкой (nowrap) и
   вылезал за контейнер (особенно ~768px). Разрешаем перенос — встаёт в 2 строки. */

.pd-info-generated-faq__item {
    padding: 24px 28px;
    border: 0;
    border-radius: 8px;
    background: #fff;
    color: var(--pd-green);
}

.pd-info-generated-faq__item summary {
    cursor: pointer;
    color: var(--pd-green);
    font-size: 18px;
    line-height: 1.35;
    font-weight: 700;
    list-style: none;
}

.pd-info-generated-faq__item summary::-webkit-details-marker {
    display: none;
}

.pd-info-generated-faq__item summary::after {
    content: "+";
    float: right;
    margin-left: 18px;
    color: var(--pd-blue);
    font-size: 24px;
    line-height: 1;
}

.pd-info-generated-faq__item[open] summary::after {
    content: "-";
}

.pd-info-generated-faq__item p {
    margin: 14px 0 0;
    font-size: 17px;
    line-height: 1.45;
}

.pd-info-page__content a,
.pd-info-generated-faq__item a,
.pd-info-review-card a,
.pd-info-contacts__panel a {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 4px;
}

.pd-legal-page,
.pd-service-thanks-page {
    background: #fff;
    color: var(--pd-green);
    padding: 0 0 112px;
}

.pd-legal-shell,
.pd-service-thanks-shell {
    width: min(1160px, calc(100% - 40px));
    margin: 0 auto;
}

/* ============================================================
   Юр-страницы (оферта/политика) — ребренд по UserAgreement.jsx.
   Текст не меняется, меняется только оформление. Self-contained (.pd-lgl),
   токены макета скоуплены локально, чтобы не зависеть от порядка загрузки CSS.
   ============================================================ */
.pd-lgl {
    --lgl-blue-tint: #E8F2F6;
    --lgl-blue-tint-2: #CFE6EC;
    --lgl-blue-deep: #5E9FB5;
    --lgl-surface-warm: #FCF8F1;
    --lgl-surface: #FFFFFF;
    --lgl-ink: #211F1A;
    --lgl-ink-soft: #423E36;
    --lgl-muted: #6E695E;
    --lgl-faint: #9C9486;
    --lgl-cream-deep: #EADFCD;
    --lgl-line: #E6DDCD;
    --lgl-green-700: #164230;
    --lgl-sh-1: 0 1px 2px rgba(33, 31, 26, .05), 0 1px 3px rgba(33, 31, 26, .04);
    --lgl-display: 'Nunito', system-ui, -apple-system, sans-serif;
    --lgl-sans: 'Golos Text', system-ui, -apple-system, 'Segoe UI', sans-serif;
    --lgl-ease: cubic-bezier(.22, .61, .36, 1);
    font-family: var(--lgl-sans);
    color: var(--lgl-ink);
}

/* Контейнер = .wrap макета (28px по бокам, 18px на моб.) — как на других ребренд-страницах,
   а не узкий .pd-container (был 16px — оттого края на моб. были слишком малы). */
.pd-lgl__wrap {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 28px;
    width: 100%;
}
/* Сброс дефолтных браузерных margin у текста документа: макет строит вертикальный ритм на
   flex-gap/явных отступах (у него глоб. reset * {margin:0}). Без сброса p (1em) и h2 (0.83em)
   складывались с gap → отступы были гигантскими. */
.pd-lgl__doc h2,
.pd-lgl__doc p { margin: 0; }

/* Плавающий навигатор: у глобального .pd-main {overflow:hidden} (home.css) он становится
   scroll-контейнером и ЛОМАЕТ position:sticky у оглавления. Снимаем ТОЛЬКО на юр-страницах
   (широкого контента, который надо было бы обрезать, тут нет). */
.pd-main:has(.pd-lgl) { overflow: visible; }

/* — hero: реюз параметров .pd-inf-hero--blue (blog/dostavka/proizvodstvo): 24px сверху от шапки — */
.pd-lgl__hero {
    position: relative;
    overflow: hidden;
    background: linear-gradient(160deg, var(--lgl-blue-tint) 0%, var(--lgl-surface-warm) 100%);
    padding: 24px 0 52px;
}
.pd-lgl__hero-dots {
    position: absolute;
    inset: 0;
    background-image: radial-gradient(var(--lgl-blue-tint-2) 1.5px, transparent 1.5px);
    background-size: 22px 22px;
    opacity: .55;
    pointer-events: none;
}
.pd-lgl__hero-inner { position: relative; }
/* хлебные крошки — общий класс .pd-crumb; отступ снизу как в .pd-inf-hero (14px) */
.pd-lgl__hero .pd-crumb { margin-bottom: 14px; }
.pd-lgl__hero-row { display: flex; align-items: center; gap: 16px; }
.pd-lgl__hero-icon {
    width: 62px;
    height: 62px;
    border-radius: 18px;
    background: var(--lgl-surface);
    color: var(--lgl-blue-deep);
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    box-shadow: var(--lgl-sh-1);
}
.pd-lgl__hero-icon .ms { font-size: 34px; }
.pd-lgl__eyebrow {
    display: block;
    font-family: var(--lgl-sans);
    font-size: .76rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--lgl-blue-deep);
}
.pd-lgl__title {
    font-family: var(--lgl-display);
    font-weight: 800;
    font-size: clamp(2rem, 3.4vw, 2.7rem);
    margin-top: 6px;
    line-height: 1.08;
    letter-spacing: -.02em;
    color: var(--lgl-ink);
}

/* — body: TOC + документ — */
.pd-lgl__body {
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: 48px;
    align-items: start;
    padding-top: 44px;
    padding-bottom: 56px;
}
.pd-lgl__toc {
    position: sticky;
    top: 122px; /* высота липкой шапки (64+46=110) + зазор → навигатор плавает под шапкой, а не за ней */
    display: flex;
    flex-direction: column;
    gap: 2px;
    align-self: start;
}
.pd-lgl__toc-label {
    font-size: .74rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--lgl-faint);
    padding: 0 12px 10px;
}
.pd-lgl__toc-link {
    display: flex;
    align-items: center;
    gap: 11px;
    width: 100%;
    text-align: left;
    padding: 10px 12px;
    border-radius: 11px;
    color: var(--lgl-ink-soft);
    font-weight: 500;
    font-size: .92rem;
    line-height: 1.3;
    text-decoration: none;
    transition: all .16s var(--lgl-ease);
}
.pd-lgl__toc-link:hover { background: var(--lgl-blue-tint); }
.pd-lgl__toc-link.is-active {
    background: var(--lgl-blue-tint);
    color: var(--lgl-blue-deep);
    font-weight: 700;
}
.pd-lgl__toc-num {
    width: 24px;
    height: 24px;
    border-radius: 8px;
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    background: var(--lgl-cream-deep);
    color: var(--lgl-muted);
    font-family: var(--lgl-display);
    font-weight: 800;
    font-size: .8rem;
    transition: all .16s var(--lgl-ease);
}
.pd-lgl__toc-link.is-active .pd-lgl__toc-num {
    background: var(--lgl-blue-deep);
    color: #fff;
}

.pd-lgl__doc { max-width: 820px; min-width: 0; }
.pd-lgl__intro {
    background: var(--lgl-surface);
    border: 1px solid var(--lgl-line);
    border-radius: 20px; /* .card = var(--r-lg) */
    padding: 32px 40px;
    margin-bottom: 30px;
    box-shadow: var(--lgl-sh-1);
}
.pd-lgl__intro p {
    font-size: 1.08rem;
    line-height: 1.7;
    color: var(--lgl-ink);
}
.pd-lgl__intro p + p { margin-top: 14px; }

.pd-lgl__section { scroll-margin-top: 122px; }
.pd-lgl__section + .pd-lgl__section { margin-top: 42px; }
.pd-lgl__section-head {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 16px;
}
.pd-lgl__section-num {
    width: 40px;
    height: 40px;
    border-radius: 12px;
    background: var(--lgl-blue-tint);
    color: var(--lgl-blue-deep);
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    font-family: var(--lgl-display);
    font-weight: 800;
    font-size: 1.15rem;
}
.pd-lgl__section-title {
    font-family: var(--lgl-display);
    font-weight: 800;
    font-size: 1.6rem;
    letter-spacing: -.01em;
    line-height: 1.15;
    color: var(--lgl-ink);
}
.pd-lgl__section-body {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding-left: 54px;
}
.pd-lgl__section-body p {
    font-size: 1.04rem;
    line-height: 1.68;
    color: var(--lgl-ink-soft);
}
.pd-lgl__doc a { color: var(--lgl-green-700); font-weight: 600; }

@media (max-width: 980px) {
    .pd-lgl__wrap { padding: 0 18px; }
    .pd-lgl__hero { padding: 26px 0; }
    .pd-lgl__hero-icon { width: 50px; height: 50px; border-radius: 16px; }
    .pd-lgl__hero-icon .ms { font-size: 28px; }
    .pd-lgl__title { font-size: 1.7rem; }
    .pd-lgl__body {
        grid-template-columns: 1fr;
        gap: 0;
        padding-top: 24px;
        padding-bottom: 56px;
    }
    .pd-lgl__toc { display: none; }
    .pd-lgl__doc { max-width: none; }
    .pd-lgl__intro { padding: 22px 20px; margin-bottom: 22px; }
    .pd-lgl__intro p { font-size: 1rem; }
    .pd-lgl__section + .pd-lgl__section { margin-top: 30px; }
    .pd-lgl__section-body { padding-left: 0; }
    .pd-lgl__section-title { font-size: 1.35rem; }
    .pd-lgl__section-body p { font-size: .98rem; }}

.pd-service-thanks {
    display: flex;
    min-height: 620px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.pd-service-thanks__image {
    width: min(360px, 70vw);
    height: auto;
    margin: 0 0 42px;
}

.pd-service-thanks h1,
.pd-service-thanks__title {
    margin: 0;
    color: var(--pd-green);
    font-family: "Extenda", var(--display);
    font-size: 76px;
    line-height: 0.96;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: lowercase;
}

.pd-service-thanks p {
    max-width: 640px;
    margin: 34px 0 0;
    color: var(--pd-green);
    font-size: 22px;
    line-height: 1.3;
    font-weight: 400;
}

.pd-service-thanks__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 50px;
    margin-top: 34px;
    padding: 0 32px;
    border-radius: 25px;
    background: var(--pd-blue);
    color: #fff;
    font-size: 16px;
    line-height: 1;
    font-weight: 700;
    text-decoration: none;
}

@media (max-width: 640px) {

    .pd-legal-page,
    .pd-service-thanks-page {
        padding-bottom: 88px;
    }

    .pd-legal-shell,
    .pd-service-thanks-shell {
        width: min(320px, calc(100% - 20px));
    }

    .pd-service-thanks {
        min-height: 520px;
    }

    .pd-service-thanks__image {
        width: 240px;
        margin-bottom: 34px;
    }

    .pd-service-thanks h1,
    .pd-service-thanks__title {
        font-size: 50px;
        line-height: 0.98;
    }

    .pd-service-thanks p {
        margin-top: 26px;
        font-size: 18px;
    }

    .pd-service-thanks__button {
        width: 100%;
        margin-top: 28px;
    }}

.pd-faq-nav {
    display: grid;
    width: 250px;
    margin-top: 0;
}

.pd-faq-nav a {
    display: block;
    padding: 8px 4px 7px;
    border-bottom: 2px solid #fff;
    color: var(--pd-green);
    font-size: 17px;
    line-height: 1.15;
    font-weight: 700;
    text-decoration: none;
}

.pd-faq-item {
    border: 0;
    border-radius: 999px;
    background: #fff;
    color: var(--pd-green);
    overflow: hidden;
}

.pd-faq-item[open] {
    border-radius: 18px;
}

.pd-faq-item summary {
    position: relative;
    min-height: 44px;
    display: flex;
    align-items: center;
    padding: 8px 56px 8px 30px;
    cursor: pointer;
    color: var(--pd-green);
    font-size: 16px;
    line-height: 1.15;
    font-weight: 700;
    list-style: none;
}

.pd-faq-item summary::-webkit-details-marker {
    display: none;
}

.pd-faq-item summary::after {
    content: "+";
    position: absolute;
    top: 50%;
    right: 24px;
    width: 20px;
    height: 20px;
    display: grid;
    place-items: center;
    border: 2px solid var(--pd-green);
    border-radius: 50%;
    color: var(--pd-green);
    font-size: 20px;
    line-height: 16px;
    font-weight: 400;
    transform: translateY(-50%);
}

.pd-faq-item[open] summary::after {
    content: "-";
}

/* Shared image lightbox (certificate gallery) — mirrors prod's Tilda zoomer:
   full-screen white overlay, the image fit to screen, grey zoom + close buttons. */
.pd-lightbox {
    position: fixed;
    inset: 0;
    z-index: 5000;
    background: #fff;
}

.pd-lightbox[hidden] {
    display: none;
}

.pd-lightbox__stage {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    padding: 78px 16px 24px;
    box-sizing: border-box;
    overflow: auto;
    cursor: zoom-out;
}

.pd-lightbox__img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.pd-lightbox.is-zoomed .pd-lightbox__stage {
    align-items: flex-start;
    justify-content: flex-start;
    cursor: zoom-in;
}

.pd-lightbox.is-zoomed .pd-lightbox__img {
    max-width: none;
    max-height: none;
    width: auto;
}

.pd-lightbox__controls {
    position: fixed;
    top: 18px;
    right: 18px;
    display: flex;
    gap: 14px;
    z-index: 1;
}

.pd-lightbox__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #efefef;
    cursor: pointer;
}

.pd-lightbox__btn svg {
    display: block;
    width: 18px;
    height: 18px;
}

/* prev / next gallery navigation — page through the certificates (swipe + keys too) */
.pd-lightbox__nav {
    position: fixed;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #efefef;
    cursor: pointer;
    z-index: 1;
}

.pd-lightbox__prev {
    left: 12px;
}

.pd-lightbox__next {
    right: 12px;
}

.pd-lightbox__nav svg {
    display: block;
    width: 9px;
    height: 16px;
}

.pd-lightbox--single .pd-lightbox__nav {
    display: none;
}

body.pd-lightbox-open {
    overflow: hidden;
}

/* Add-to-cart toast (mobile) — mirrors prod's bottom "<name> добавлено в корзину" bubble */
.pd-cart-toast {
    position: fixed;
    left: 20px;
    right: 20px;
    bottom: 20px;
    z-index: 5500;
    display: flex;
    align-items: center;
    max-width: 420px;
    margin: 0 auto;
    min-height: 56px;
    padding: 14px 48px 14px 22px;
    border-radius: 10px;
    background: #648d9f;
    color: #fff;
    font-size: 16px;
    line-height: 1.25;
    box-shadow: 0 8px 28px rgba(31, 60, 72, 0.28);
    transform: translateY(170%);
    opacity: 0;
    transition: transform 0.32s ease, opacity 0.32s ease;
    pointer-events: none;
}

.pd-cart-toast.is-visible {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
}

.pd-cart-toast__text {
    flex: 1;
}

.pd-cart-toast__close {
    position: absolute;
    top: 8px;
    right: 10px;
    width: 26px;
    height: 26px;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
}

.pd-cart-toast__close::before,
.pd-cart-toast__close::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 14px;
    height: 1.5px;
    background: #fff;
}

.pd-cart-toast__close::before {
    transform: translate(-50%, -50%) rotate(45deg);
}

.pd-cart-toast__close::after {
    transform: translate(-50%, -50%) rotate(-45deg);
}

/* The desktop intro split (heading width:580 + margin-left:calc(50% - 50px)) only fits
   when the viewport is >=1060px (heading right edge = W/2 + 530). Between 901 and 1080 it
   overflows and clips the block on the LEFT. Fallback for photo-less intro pages (hub, dog):
   stack and center. Cat condition pages (--pravilno) get a scaled SPLIT instead — see the
   640-1080 block further down, which wins by source order. */

/* prod set card: teal title-case name, 16px/700 price, SQUARE 1:1 image (local base is light-blue
   name + 10/11 image). Base rules → apply on desktop AND mobile. */

/* /nabori-dlya-koshek/ set cards reuse the SET card layout from the product-landing ready-sets
   section (this page never got those rules → dropdown floated to the top, 20px text, and the
   actions row overflowed). Order on prod: price → name → «Количество:» select → [Подробнее + cart]. */

/* Селект и кнопки покупки — по ширине кнопки «Подробнее» (= col1 сетки actions:
   minmax(0,1fr) 70px). Только десктоп: на мобильном карточки узкие, там полная ширина. */

@media (max-width: 980px) {

    /* Выравнивание кнопок «Подробнее» в ряд — на ВСЁМ мобильно-планшетном диапазоне
       (<=900), а не только <=640: иначе в 641–900px блок действий оставался прижат к
       низу (margin-top:auto) и кнопки разъезжались. Высокая специфичность (3 класса)
       перебивает базовое .pd-product-card__actions{margin-top:auto}. */

    /* Narrow 2-col cards: the base 219px actions row overflowed into the next
       card. Stack them (Подробнее → qty → cart) full-width like prod. */

    /* set cards = homepage card sizing on mobile + the set-specific select/actions row */

}

/* «Правильно подобранный…» (girl-photo intro on cat condition pages): prod keeps the SPLIT
   layout (photo left, text right) from 640px up, scaling it down with the viewport — the
   full desktop geometry (580px heading + margin-left calc(50% - 50px)) only fits at
   >=1060px. Placed AFTER the <=900 mobile block so it overrides the stacked treatment in
   the 640-900 range; >=1081 falls through to the regular desktop rules. */

/* Health pages: the .pd-container is 1320px but prod's product row is 1200px wide. Constrain the
   featured-products grid so the 3 cards land at 380/780/1180 (40px gaps), not spread across 1320. */

.pd-product-landing-hero__content {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 16px;
    align-items: center;
    justify-content: center;
}

.pd-product-landing-hero__content p {
    flex: 0 0 100%;
    max-width: 1060px;
    margin: 0;
    font-size: 29px;
    line-height: 1.27;
}

/* Селект и кнопки покупки — по ширине кнопки «Подробнее» (= col1 сетки actions). Десктоп. */

.pd-info-primary-product {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr);
    gap: 28px;
    align-items: center;
    margin-top: 54px;
    padding: 28px;
    border: 1px solid var(--pd-border);
    border-radius: 8px;
    background: #fff;
    color: var(--pd-green);
}

.pd-product-card--related-ration .pd-product-card__link {
    position: relative;
}

.pd-product-card--related-ration .pd-product-card__image {
    height: 396px;
    aspect-ratio: auto;
}

.pd-product-card--related-ration .pd-product-card__weight {
    position: absolute;
    top: 10px;
    right: 8px;
    z-index: 2;
    display: flex;
    width: 50px;
    height: 50px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--pd-blue);
    color: #fff;
    font-size: 12px;
    line-height: 1;
    font-weight: 400;
}

.pd-product-card--related-ration .pd-product-card__price {
    font-size: 16px;
    line-height: 1.45;
    font-weight: 600;
}

.pd-product-card--related-ration .pd-product-card__name {
    margin-top: 0;
    color: var(--pd-green);
    font-size: 20px;
    line-height: 1.35;
    font-weight: 500;
}

.pd-product-card--related-ration .pd-product-card__desc {
    display: block;
    min-height: 0;
    margin-top: 8px;
}

.pd-product-card--related-ration .pd-product-card__actions {
    grid-template-columns: minmax(0, 1fr) 70px;
    width: 100%;
    gap: 8px;
    align-self: stretch;
    padding-top: 22px;
}

.pd-product-card--related-ration .pd-product-card__more {
    grid-column: auto;
    width: 100%;
}

.pd-product-card--related-ration .pd-product-card__status:empty {
    min-height: 0;
    margin-top: 0;
}

/* Кнопка покупки — по ширине «Подробнее» (col1 сетки actions). Только десктоп. */
@media (min-width: 981px) {
    .pd-product-card--related-ration .pd-product-card__actions .pd-cart-ctl,
    .pd-product-card--related-ration .pd-product-card__actions .pd-product-card__buy--text {
        grid-column: 1 / 2;
        width: 100%;
    }
}

@media (max-width: 980px) {

    .pd-product-card--related-ration .pd-product-card__image {
        height: auto;
        aspect-ratio: 1 / 1;
    }

    .pd-product-card--related-ration .pd-product-card__image img {
        width: calc(100% - 20px);
        margin: 0 auto;
    }

    .pd-product-card--related-ration .pd-product-card__weight {
        top: 0;
        right: 10px;
        width: 45px;
        height: 44px;
        font-size: 12px;
    }

    .pd-product-card--related-ration .pd-product-card__body {
        padding: 0 10px;
    }

    .pd-product-card--related-ration .pd-product-card__price {
        font-size: 12px;
        line-height: 1.35;
    }

    .pd-product-card--related-ration .pd-product-card__name {
        font-size: 14px;
        line-height: 1.35;
    }

    .pd-product-card--related-ration .pd-product-card__desc {
        display: block;
        margin-top: 8px;
        font-size: 12px;
        line-height: 1.55;
    }

    .pd-product-card--related-ration .pd-product-card__actions {
        grid-template-columns: minmax(0, 1fr) 70px;
        gap: 8px;
        padding-top: 28px;
    }

    .pd-product-card--related-ration .pd-product-card__more,
    .pd-product-card--related-ration .pd-product-card__buy {
        min-height: 50px;
    }

    .pd-product-card--related-ration .pd-product-card__buy {
        width: 70px;
        height: 50px;
    }}

@media (min-width: 1200px) {

    .pd-product-landing-hero__content {
        display: grid;
        gap: 12px;
        justify-items: center;
    }

    .pd-product-landing-hero__content p {
        max-width: 1060px;
        font-size: 20px;
        line-height: 1.25;
    }

}

@media (max-width: 980px) {

    .pd-product-landing-hero__content p {
        font-size: 20px;
        line-height: 1.32;
    }

}

.pd-main > .row.bx-site {
    width: min(100% - 48px, 1200px);
    margin: 42px auto 72px;
}

.bx-catalog-element > .row {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(320px, 0.72fr);
    gap: 42px;
    align-items: start;
}

.bx-catalog-element > .row > [class*="col-"] {
    max-width: none;
    padding: 0;
}

/* Set / product detail page — mirrors the pet-diet.ru Tilda product page:
   image on a soft colour panel + a clean info column (teal title-case heading, grey
   sub-heading, «Количество:» dropdown, green cart circle, lead, composition). */
.pd-catalog-detail {
    width: min(100% - 48px, 1100px);
    margin: 30px auto 80px;
    color: var(--pd-green);
}

/* Двухсостоянийный контрол корзины на детальной странице товара (как на карточках). */

/* Тот же контрол в крупных CTA-героях (стартовый набор категории, primary). */
/* Лендинг рациона: контрол фиксированной ширины, чтобы цена встала в ОДНУ строку рядом с ним. */
.pd-product-landing-hero__actions .pd-cart-ctl {
    width: 300px;
    max-width: 100%;
}

/* Контрол в позиционированном артборде (welcome): занимаем слот, «в корзине» — в столбик,
   чтобы степпер не вылезал за узкий слот (слот растёт по min-height). */

/* Селект и кнопки покупки — по ширине кнопки «Подробнее» (= col1 сетки actions). Десктоп. */

@media (max-width: 980px) {
    .pd-catalog-detail {
        width: min(100% - 32px, 760px);
        margin-top: 28px;
    }

}

@media (max-width: 640px) {
    .pd-catalog-detail {
        width: min(100% - 24px, 390px);
        margin: 22px auto 52px;
    }}

/* Хлебные крошки — единый класс .pd-crumb (см. верх файла). На мобильном скрыты глобально
   (responsive.css). Старые per-page классы .pd-*-breadcrumbs удалены при консолидации. */

/* «Все корма» product-card titles are Inter w500 green on prod (not teal/bold) */

.pd-hub-reviews__track {
    display: flex;
    transition: transform 0.5s ease;
    will-change: transform;
}

.pd-hub-reviews__arrow--prev {
    left: 20px;
}

.pd-hub-reviews__arrow--prev::before {
    transform: rotate(-135deg);
    margin-left: 3px;
}

.pd-hub-reviews__arrow--next {
    right: 20px;
}

.pd-hub-reviews__arrow--next::before {
    transform: rotate(45deg);
    margin-right: 3px;
}

/* Product-card hover image swap (prod cards reveal the product's 2nd photo on hover) */
.pd-product-card__image {
    position: relative;
}

.pd-product-card__img {
    transition: opacity 0.35s ease;
}

.pd-product-card__img--hover {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    opacity: 0;
    transition: opacity 0.35s ease;
    pointer-events: none;
}

.pd-product-card:hover .pd-product-card__img--hover,
.pd-product-card:focus-within .pd-product-card__img--hover {
    opacity: 1;
}

@media (hover: none) {
    .pd-product-card__img--hover {
        display: none;
    }}

/* Лендинг рациона — мобильный: цена + кнопка покупки в ОДНОЙ строке,
   «Подробный состав» — ОТДЕЛЬНОЙ строкой ниже (через flex order, т.к. в DOM ссылка идёт первой). */
@media (max-width: 640px) {
    .pd-product-landing-hero__actions,
    .pd-info-page--product-landing .pd-product-landing-hero__actions { flex-wrap: wrap; align-items: center; }
    .pd-product-landing-hero__price { font-size: 26px; order: 1; }
    .pd-product-landing-hero__actions .pd-cart-ctl { order: 2; width: auto; flex: 1 1 auto; max-width: none; }
}

/* Карточки наборов на мобильном (<=980): карточки узкие (2-в-ряд ~165–180px), поэтому
   ширина col1 «Подробнее» (~80–94px) обрезала бы текст селекта/кнопки. Здесь делаем всё
   на полную ширину — «Подробнее», селект и контрол корзины выравниваются по карточке.
   (На десктопе >=981px действует обратное правило — всё по ширине «Подробнее».) */
@media (max-width: 980px) {
    .pd-info-page--cat-sets .pd-product-card--ready-set .pd-product-card__actions,
    .pd-product-landing-ready-sets .pd-product-card--ready-set .pd-product-card__actions,
    .pd-catalog-detail__related .pd-product-card--ready-set .pd-product-card__actions,
    .pd-product-card--related-ration .pd-product-card__actions {
        grid-template-columns: minmax(0, 1fr);
        width: 100%;
    }
    .pd-info-page--cat-sets .pd-product-card--ready-set .pd-product-card__more,
    .pd-product-landing-ready-sets .pd-product-card--ready-set .pd-product-card__more,
    .pd-catalog-detail__related .pd-product-card--ready-set .pd-product-card__more,
    .pd-product-card--related-ration .pd-product-card__more {
        grid-column: 1 / -1;
        width: 100%;
    }
}

/* Страницы здоровья/условий: кнопки «Подробнее» в один ряд на ВСЁМ не-десктопе (<=980,
   где сетка переходит в 2-в-ряд). Top-anchor (margin-top, НЕ auto) + одинаковая высота
   контента (имя — резерв 2 строк, описание подрезано до 4 строк) → «Подробнее» НЕ меняет
   положение при добавлении товара в корзину (степпер растёт ВНИЗ) и выровнен по всем
   карточкам ряда. Раньше это действовало только до 900px → в 901–980px кнопки магнитились
   к нижнему краю. Специфичность 3 класса перебивает базовое .pd-product-card__actions{auto}. */
/* — редакция документа (архив pd_legal_doc_version): строка под заголовком + список редакций — */
.pd-lgl__ver {
    margin: 10px 0 0;
    font-size: .92rem;
    color: var(--lgl-muted);
}
.pd-lgl__ver a { color: var(--lgl-green-700); font-weight: 600; }
.pd-lgl__ver--warn {
    display: inline-block;
    padding: 8px 12px;
    border-radius: 10px;
    background: #FBE7D2;
    color: var(--lgl-ink);
}
.pd-lgl__versions {
    margin-top: 48px;
    padding-top: 24px;
    border-top: 1px solid var(--lgl-line);
}
.pd-lgl__versions h2 {
    font-family: var(--lgl-display);
    font-weight: 800;
    font-size: 1.15rem;
    margin: 0 0 12px;
}
.pd-lgl__versions ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.pd-lgl__versions li { font-size: .95rem; color: var(--lgl-ink-soft); }
.pd-lgl__versions .is-current { font-weight: 700; color: var(--lgl-ink); }

/* — документ без разделов (согласия): одна колонка без оглавления — */
.pd-lgl__body--notoc { grid-template-columns: minmax(0, 1fr); }
/* — таблица в тексте документа (цели обработки ПДн в политике) — */
.pd-lgl__table {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border: 1px solid var(--lgl-line);
    border-radius: 14px;
    background: var(--lgl-surface);
}
.pd-lgl__table table { width: 100%; min-width: 760px; border-collapse: collapse; font-size: .88rem; line-height: 1.5; }
.pd-lgl__table th,
.pd-lgl__table td { padding: 10px 12px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--lgl-line); color: var(--lgl-ink-soft); }
.pd-lgl__table th { background: var(--lgl-blue-tint); color: var(--lgl-ink); font-weight: 700; }
.pd-lgl__table tr:last-child td { border-bottom: 0; }
.pd-lgl__table td + td,
.pd-lgl__table th + th { border-left: 1px solid var(--lgl-line); }

/* End */


/* Start:/local/templates/petdiet/css/sections-footer.css?17925060936991*/


/* ===== Подвал — новый дизайн (Claude Design, Shell.jsx Footer): тёмно-зелёный, 5 колонок ===== */
.pd-footer {
    background: #164230; /* --green-700 из Claude Design (не брендовый --green #1f5b42) */
    color: rgba(255, 255, 255, 0.82);
    margin-top: auto;
}

.pd-footer__inner {
    padding: 56px 0 40px;
}

.pd-footer__grid {
    display: grid;
    grid-template-columns: auto auto 0.8fr 0.8fr 1.3fr;
    gap: 32px;
    align-items: start;
}

.pd-footer__logo img {
    height: 168px;
    width: auto;
    display: block;
}

.pd-footer__social {
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-items: flex-start;
}

.pd-footer__social a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 18px;
    border-radius: 99px;
    border: 1px solid rgba(255, 255, 255, 0.22);
    color: #fff;
    font-size: 0.9rem;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
    transition: background 0.18s ease, border-color 0.18s ease;
}

.pd-footer__social a:hover {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.4);
}

.pd-footer__col-title {
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.55);
    margin-bottom: 14px;
}

.pd-footer__links {
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-items: flex-start;
}

.pd-footer__links a,
.pd-footer__links span {
    font-size: 0.92rem;
    line-height: 1.35;
    color: rgba(255, 255, 255, 0.82);
    text-decoration: none;
    text-align: left;
}

.pd-footer__links a:hover {
    color: #fff;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.pd-footer__links .pd-footer__muted {
    color: rgba(255, 255, 255, 0.55);
}

/* контакты — продолжение списка колонки (тот же шаг 10px) */
.pd-footer__contacts {
    margin-top: 10px;
}

.pd-footer__addr {
    border-top: 1px solid rgba(255, 255, 255, 0.14);
    margin-top: 36px;
    padding-top: 22px;
    display: flex;
    gap: 40px;
    flex-wrap: wrap;
    font-size: 0.86rem;
    line-height: 1.55;
    color: rgba(255, 255, 255, 0.72);
}

.pd-footer__addr > span {
    flex: 1 1 320px;
    max-width: 58ch;
}

.pd-footer__addr b {
    color: rgba(255, 255, 255, 0.9);
    font-weight: 700;
}

.pd-footer__addr a {
    color: rgba(255, 255, 255, 0.72);
    text-decoration: none;
}

.pd-footer__addr a:hover {
    color: #fff;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.pd-footer__legal {
    border-top: 1px solid rgba(255, 255, 255, 0.14);
    margin-top: 22px;
    padding-top: 22px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-size: 0.82rem;
    color: rgba(255, 255, 255, 0.55);
    line-height: 1.5;
}

/* Планшет: логотип на свою строку, 4 колонки */
@media (max-width: 1100px) {
    .pd-footer__grid {
        grid-template-columns: auto 1fr 1fr 1fr;
    }

    .pd-footer__logo {
        grid-column: 1 / -1;
    }
}

/* Мобильные (совпадает с показом таб-бара ≤980): одна колонка по центру */
@media (max-width: 980px) {
    .pd-footer__inner {
        padding: 40px 0 calc(76px + env(safe-area-inset-bottom));
    }

    .pd-footer__grid {
        grid-template-columns: 1fr;
        justify-items: center;
        text-align: center;
        gap: 30px;
    }

    .pd-footer__logo {
        grid-column: auto;
    }

    .pd-footer__logo img {
        height: 150px;
    }

    .pd-footer__social,
    .pd-footer__links {
        align-items: center;
    }

    .pd-footer__links a,
    .pd-footer__links span {
        text-align: center;
    }

    .pd-footer__addr {
        flex-direction: column;
        gap: 16px;
        text-align: center;
        align-items: center;
    }

    .pd-footer__addr > span {
        max-width: none;
        flex: none;
    }

    .pd-footer__legal {
        text-align: center;
        align-items: center;
    }
}

/* Телефон: группы «Мы / Товары / Магазин» — аккордеоны (класс .is-acc ставит скрипт в footer.php),
   контакты под ними раскрыты всегда. Логотип и соцсети — как на планшете. */
@media (max-width: 640px) {
    .pd-footer.is-acc .pd-footer__grid {
        justify-items: stretch;
        gap: 0;
    }

    .pd-footer.is-acc .pd-footer__logo,
    .pd-footer.is-acc .pd-footer__social {
        justify-self: center;
        margin-bottom: 30px;
    }

    .pd-footer.is-acc .pd-footer__col {
        display: flex;
        flex-direction: column;
        border-top: 1px solid rgba(255, 255, 255, 0.14);
        text-align: left;
    }

    .pd-footer.is-acc .pd-footer__col-title {
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin: 0;
        padding: 16px 2px;
        min-height: 48px;
        cursor: pointer;
        color: #fff;
        font-size: 0.86rem;
        -webkit-tap-highlight-color: transparent;
    }

    .pd-footer.is-acc .pd-footer__col-title::after {
        content: "";
        width: 8px;
        height: 8px;
        margin: -4px 4px 0 12px;
        border-right: 2px solid currentColor;
        border-bottom: 2px solid currentColor;
        transform: rotate(45deg);
        transition: transform 0.18s ease;
    }

    .pd-footer.is-acc .pd-footer__col.is-open .pd-footer__col-title::after {
        margin-top: 4px;
        transform: rotate(-135deg);
    }

    .pd-footer.is-acc .pd-footer__col-title:focus-visible {
        outline: 2px solid rgba(255, 255, 255, 0.6);
        outline-offset: 2px;
    }

    .pd-footer.is-acc nav.pd-footer__links {
        align-items: flex-start;
        gap: 14px;
        padding: 0 2px 18px;
    }

    .pd-footer.is-acc nav.pd-footer__links a,
    .pd-footer.is-acc nav.pd-footer__links span {
        text-align: left;
    }

    .pd-footer.is-acc .pd-footer__col:not(.is-open) nav.pd-footer__links {
        display: none;
    }

    /* контакты — после последней группы, по центру, отдельной полосой */
    .pd-footer.is-acc .pd-footer__contacts {
        order: 2;
        align-items: center;
        margin: 0;
        padding: 22px 0 0;
        border-top: 1px solid rgba(255, 255, 255, 0.14);
    }

    .pd-footer.is-acc .pd-footer__col:has(.pd-footer__contacts) .pd-footer__col-title {
        order: 0;
    }

    .pd-footer.is-acc .pd-footer__col:has(.pd-footer__contacts) nav.pd-footer__links {
        order: 1;
    }

    .pd-footer.is-acc .pd-footer__contacts a,
    .pd-footer.is-acc .pd-footer__contacts span {
        text-align: center;
    }

    .pd-footer.is-acc .pd-footer__addr {
        margin-top: 24px;
    }
}


/* End */


/* Start:/local/templates/petdiet/css/responsive.css?17925060935496*/

@media (max-width: 980px) {
    .pd-header {
        box-shadow: none;
    }

    .pd-header__logo {
        grid-column: 1;
        grid-row: 1;
        margin-left: 0;
    }

    /* (old accordion submenu styles removed — replaced by the drill-down block below) */

    @media (min-width: 641px) {

        .pd-products-heading-section {
            height: auto;
            padding: 31px 0 9px;
        }

        .pd-products-heading-section .pd-products-head {
            margin-bottom: 0;
        }

        .pd-products-section {
            padding: 0 0 88px;
        }

        .pd-products-section .pd-container {
            width: 100%;
        }

    }

    /* Подвал: новый дизайн — весь адаптив в sections-footer.css (.pd-footer*). */

    /* Планшет (>=641px): каталог 3 в ряд (как на десктопе и у донора), а не 4 —
       при 4-в-ряд карточки были тесные/не влезали. На <=640 остаётся 2 в ряд. */

}

@media (max-width: 640px) {
    .pd-container {
        width: min(100% - 20px, 1200px);
    }

    .pd-header {
        position: sticky;
        top: 0;
    }

    .pd-header__logo img {
        width: 59px;
    }

    .pd-products-heading-section {
        height: auto;
        padding: 31px 0 20px;
    }

    .pd-products-heading-section .pd-container {
        width: 100%;
    }

    .pd-products-heading-section .pd-products-head {
        margin-bottom: 0;
    }

    .pd-products-section {
        padding: 0 0 30px;
    }

    .pd-products-section .pd-container {
        width: 100%;
    }

    /* Особенности здоровья (condition) product cards = homepage cards on mobile */

    /* /ratcioni-dlya-koshek/ (cat-rations) product cards = homepage cards on mobile.
       Without this the page falls to the desktop card (211px actions in a 154px card → the
       qty stepper + cart overflow and collide). Mirrors the homepage / health-category card. */

    .pd-products-head {
        display: block;
    }

    .pd-faq-nav {
        width: min(250px, 100%);
        justify-self: start;
        margin-left: 25px;
    }

    .pd-faq-nav a {
        padding: 8px 0 7px;
        font-size: 17px;
    }

    /* prod centers a 300px square photo per slide (not the full-width crop) */

    /* prod runs the video full-bleed edge-to-edge (local was inset 20px);
       width:100vw is needed because the base rule pins it to width:100% */

    /* prod shows a landscape crop of the cat photo on phones (not the tall desktop crop) */

    /* narrow columns so each link wraps "Телеграм:" / name like prod */

    /* Подвал: новый дизайн — весь мобильный адаптив в sections-footer.css (.pd-footer*). */
}

/* ════ Mobile menu = prod's white right-side slide-in panel ════ */
@media (max-width: 980px) {

    /* caret follows is-open only — neutralize desktop hover/focus-within rotation on mobile */

    /* Submenu = prod's drill-down: a blue panel sliding over the nav, with back arrow + title */

    /* Mobile: desktop hover/focus-within must NOT reveal submenus — only the is-open drill-down does.
       (After "back", focus stays on the back button inside the panel → :focus-within kept it shown.) */

}

/* Desktop: hide mobile-only menu extras */
/* Service pages: collapse the padded "reserved" breadcrumb areas so the crumb sits
   compactly under the header like prod (these blocks were sized for hidden crumbs) */

/* Desktop (ПК): every top-of-page breadcrumb sits ~14px below the header, like /podpiska/.
   The already-14px subscription crumb and the below-hero crumbs (about/treats) are excluded. */
@media (min-width: 981px) {

    /* category/sets crumb is centered (margin:0 auto), so the 14px comes from the wrapper */
}

/* Desktop: the JS-injected mobile drill-down header (back button + title) must not
   leak into the hover dropdowns — the reference desktop menu has no such row. */
/* Двухсостоянийный контрол корзины на узких карточках: «В корзине» и степпер — в столбик,
   степпер на всю ширину (иначе на ≤360px кнопка зажимается степпером ~90px и переносится). */
/* Хлебные крошки: скрыты в мобильной версии (max-width 980) на всех страницах.
   Единый класс — .pd-crumb; селектор [class*="crumb"] ловит и его, и обёртки-бары
   (.pd-...-breadcrumb-block, .pd-...-shell--breadcrumbs), которые оборачивают крошки.
   JSON-LD BreadcrumbList не затрагивается (это не class) — структурированные крошки остаются. */
@media (max-width: 980px) {
    [class*="crumb"] { display: none !important; }
}

/* Единое расположение крошек на ПК: крошка всегда 24px ниже шапки (как на /welcome/).
   Старые страницы (info_page.php) прижимали крошку к шапке (0px) — поднимаем шелл до 24px.
   Крошки видны только на ПК (на моб. скрыты выше), поэтому правило в min-width:981. */
@media (min-width: 981px) {
    .pd-service-thanks-shell {
        padding-top: 24px;
    }
}

/* End */


/* Start:/local/templates/petdiet/css/mobile-nav.css?179250609310309*/
/* Pet Diet — новая мобильная навигация (порт Shell.jsx из Claude Design):
   1) минимальная шапка (логотип + кнопка звонка),
   2) нижний таб-бар (Главная / Меню / Подписка / Корзина / ЛК·Войти),
   3) нижний шит-меню (bottom-sheet) с деревом разделов.
   Показывается на ≤980px, заменяя старый бургер/выпадающее меню. Скоуп-токены
   (дизайн-система наборов) объявлены на корнях компонентов — без глобальной утечки. */

/* токены дизайн-системы — глобально в css/tokens.css */

/* по умолчанию скрыто (десктоп) — включается только в мобильном медиа */
.pd-mnav__call, .pd-tabbar { display: none; }
.pd-msheet { display: none; }

/* ---------- кнопка звонка в шапке ---------- */
.pd-mnav__call {
    width: 42px; height: 42px; border-radius: 12px; color: var(--green);
    align-items: center; justify-content: center; margin-left: auto;
    background: transparent; flex: 0 0 auto;
}
.pd-mnav__call svg { width: 24px; height: 24px; }

/* ---------- нижний таб-бар ---------- */
.pd-tabbar {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 80;
    grid-template-columns: repeat(5, 1fr);
    background: var(--cream); border-top: 1px solid var(--line);
    box-shadow: 0 -6px 22px rgba(33, 31, 26, .10);
    padding-bottom: env(safe-area-inset-bottom);
}
.pd-tabbar__tab {
    display: flex; flex-direction: column; align-items: center; gap: 3px;
    padding: 9px 2px 8px; border: 0; background: transparent; cursor: pointer;
    color: var(--muted); text-decoration: none; -webkit-tap-highlight-color: transparent;
}
.pd-tabbar__tab.is-on { color: var(--green); }
.pd-tabbar__ico { position: relative; display: grid; place-items: center; }
.pd-tabbar__ico svg { width: 25px; height: 25px; }
.pd-tabbar__lbl { font-size: 12px; font-weight: 500; letter-spacing: .01em; line-height: 1; }
.pd-tabbar__tab.is-on .pd-tabbar__lbl { font-weight: 700; }
.pd-tabbar__badge {
    display: none; position: absolute; top: -5px; right: -8px;
    min-width: 16px; height: 16px; padding: 0 4px; border-radius: 8px;
    background: var(--warm); color: #fff; font-size: 10px; font-weight: 700;
    place-items: center; line-height: 1;
}
/* бейдж корзины показываем только при положительном количестве (значение проставляет script.js) */
.pd-tabbar__badge[data-basket-count-value]:not([data-basket-count-value="0"]) { display: grid; }

/* ---------- нижний шит-меню ---------- */
.pd-msheet { position: fixed; inset: 0; z-index: 90; flex-direction: column; }
.pd-msheet.is-open { display: flex; }
.pd-msheet__overlay { position: absolute; inset: 0; background: rgba(33, 31, 26, .45); }
.pd-msheet__panel {
    position: relative; margin-top: auto; background: var(--cream);
    border-radius: 22px 22px 0 0; display: flex; flex-direction: column;
    max-height: calc(100vh - 96px); max-height: calc(100dvh - 96px - env(safe-area-inset-bottom));
    box-shadow: 0 -18px 50px rgba(33, 31, 26, .28);
    animation: pd-sheet-up .26s var(--ease) both;
    font-family: 'Golos Text', system-ui, sans-serif; color: var(--ink);
}
@keyframes pd-sheet-up { from { transform: translateY(100%); } to { transform: translateY(0); } }

.pd-msheet__head {
    padding: 20px 18px 14px; display: flex; align-items: center; gap: 12px; position: relative;
}
.pd-msheet__grip {
    position: absolute; left: 50%; top: 7px; transform: translateX(-50%);
    width: 44px; height: 5px; border-radius: 99px; background: var(--line);
}
.pd-msheet__brand {
    width: 40px; height: 40px; border-radius: 12px; background: var(--green); color: #fff;
    display: grid; place-items: center; flex: 0 0 auto;
}
.pd-msheet__brand svg { width: 24px; height: 24px; }
.pd-msheet__title { font-family: var(--display); font-weight: 800; font-size: 1.1rem; line-height: 1.1; flex: 1; }
.pd-msheet__close {
    width: 36px; height: 36px; border-radius: 99px; border: 0; cursor: pointer;
    background: var(--surface-warm); color: var(--ink-soft); display: grid; place-items: center; flex: 0 0 auto;
}
@media (pointer: coarse) { .pd-msheet__close { width: 44px; height: 44px; } }
.pd-msheet__close svg { width: 21px; height: 21px; }
.pd-msheet__body { overflow-y: auto; -webkit-overflow-scrolling: touch; padding: 4px 14px calc(18px + env(safe-area-inset-bottom)); }

/* группа-раздел (всегда раскрыта, как карточка) */
.pd-msheet__group { margin-top: 4px; }
.pd-msheet__group-label {
    display: flex; align-items: center; gap: 8px; padding: 12px 8px 8px;
    font-size: .74rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--green-700);
}
.pd-msheet__group-label svg { width: 18px; height: 18px; }
.pd-msheet__card { background: var(--surface); border: 1px solid var(--line); border-radius: 16px; overflow: hidden; }

/* строка-ребёнок внутри карточки-группы */
.pd-msheet__child {
    display: flex; align-items: center; gap: 12px; padding: 12px 14px;
    color: var(--ink); text-decoration: none; font-size: .95rem; font-weight: 500;
}
.pd-msheet__child + .pd-msheet__child { border-top: 1px solid var(--line); }
.pd-msheet__child-ico { color: var(--green-700); display: grid; place-items: center; flex: 0 0 auto; }
.pd-msheet__child-ico svg { width: 20px; height: 20px; }

/* одиночный пункт-лист (белая карточка с иконкой-чипом) */
.pd-msheet__item {
    display: flex; align-items: center; gap: 12px; margin-top: 6px; padding: 13px 14px;
    background: var(--surface); border: 1px solid var(--line); border-radius: 14px;
    color: var(--ink); text-decoration: none; font-size: 1rem; font-weight: 700;
}
.pd-msheet__item-ico {
    width: 34px; height: 34px; border-radius: 10px; background: var(--green-tint); color: var(--green-700);
    display: grid; place-items: center; flex: 0 0 auto;
}
.pd-msheet__item-ico svg { width: 20px; height: 20px; }

/* ---------- переключение десктоп/мобилка ---------- */
@media (max-width: 980px) {
    /* прячем старую мобильную навигацию (бургер, выпадающее меню, иконки-действия) */
    .pd-header__burger, .pd-header__actions, .pd-header__nav, .pd-menu-overlay { display: none !important; }
    /* шапка на мобильном: НЕ закреплена, без бегущей строки, кремовый фон — как в макете Claude Design */
    .pd-header { position: static; box-shadow: none; background: #F5EEE2; }
    .pd-header__notice { display: none; }
    /* бар = flex (сброс сеточных 58px-строк base-header), высота 72, боковые отступы 18px (макетный .wrap) */
    .pd-header__bar {
        display: flex !important; align-items: center; gap: 10px;
        min-height: 72px; width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 18px;
    }
    .pd-header__logo img { width: auto !important; height: 32px; }
    .pd-mnav__call { display: flex; }
    .pd-tabbar { display: grid; }
    /* резерв под фикс. таб-бар, чтобы контент/подвал не прятались под ним */
    body.pd-body { padding-bottom: calc(56px + env(safe-area-inset-bottom)); }
    /* кнопка «наверх» — над таб-баром, а не поверх него */
    /* «Наверх» на телефоне/планшете не показываем: перекрывала контент; наверх — повторное нажатие активного пункта таб-бара */
    .pd-totop, .pd-totop.is-visible { display: none !important; }
    /* Порядок нижних слоёв (снизу вверх): таб-бар → панель покупки / «Оформить» → cookie → тосты.
       Тосты корзины и подписки — над таб-баром, а не поверх него. */
    /* Оформление заказа: таб-бар скрыт, чтобы не уводить из воронки (внизу — полоса «сумма + кнопка»). */
    body.pd-body--checkout:has(.pd-checkout__layout) .pd-tabbar { display: none; }
    body.pd-body--checkout:has(.pd-checkout__layout) { padding-bottom: env(safe-area-inset-bottom); }
    body.pd-body--checkout.pd-has-mbar { padding-bottom: calc(74px + env(safe-area-inset-bottom)); }
    body .pd-cart-toast, body .pd-sbc-toast { bottom: calc(var(--pd-tabbar-h, calc(58px + env(safe-area-inset-bottom))) + 12px); z-index: var(--z-toast); }
    body.pd-has-buybar .pd-cart-toast, body.pd-has-buybar .pd-sbc-toast { bottom: calc(var(--pd-tabbar-h, calc(58px + env(safe-area-inset-bottom))) + 76px); }
    /* плашка cookie — над таб-баром (иначе до «OK» навигация недоступна); body-префикс перебивает ≤640 из ui-overlays */
    body.pd-body .pd-cookie-notice {
        bottom: var(--pd-tabbar-h, calc(58px + env(safe-area-inset-bottom)));
        min-height: 0; padding-top: 12px; padding-bottom: 12px;
    }
    /* корзина и шит-меню НЕ заходят под таб-бар — останавливаются над ним, таб-бар всегда виден */
    .pd-cart-panel { bottom: calc(56px + env(safe-area-inset-bottom)); }
    .pd-msheet { bottom: calc(56px + env(safe-area-inset-bottom)); }
    /* раздел /personal/ на мобильном — без сайтовой шапки и подвала (полноэкранный ЛК/форма входа) */
    .pd-body--personal .pd-header,
    .pd-body--personal .pd-footer { display: none; }
    /* подписка и корзина на мобильном — без подвала */
    .pd-body--nofoot-m .pd-footer { display: none; }
    .pd-body--personal.pd-body { padding-top: 0; }
}

/* End */


/* Start:/local/templates/petdiet/template_styles.css?1780432348182*/
/* Pet Diet template styles are split into ordered modules under /local/templates/petdiet/css/.
   Register new modules in header.php to preserve cache-busting and cascade order. */

/* End */
/* /local/templates/petdiet/css/tokens.css?17925148063974 */
/* /local/templates/petdiet/css/components.css?179251657626265 */
/* /local/templates/petdiet/css/base-header.css?17925060939629 */
/* /local/templates/petdiet/css/home.css?179250609327563 */
/* /local/templates/petdiet/css/ui-overlays.css?179250609336991 */
/* /local/templates/petdiet/css/content-pages.css?179250609331963 */
/* /local/templates/petdiet/css/sections-footer.css?17925060936991 */
/* /local/templates/petdiet/css/responsive.css?17925060935496 */
/* /local/templates/petdiet/css/mobile-nav.css?179250609310309 */
/* /local/templates/petdiet/template_styles.css?1780432348182 */
