/* ═══════════════ ШРИФТ — из montserrat.css ═══════════════ */
/* Montserrat — локальные файлы, набор latin. Скачано с Google Fonts, лицензия SIL OFL 1.1 */
/* Один файл на все веса: Montserrat variable, ось wght 100–900 (fvar). Нижний край
   диапазона — 500, а не 100 из fvar: страница нигде не просит вес ниже 500, а с полом 500
   всё, что попросит меньше, выглядит как сейчас у пяти отдельных faces. */
@font-face{font-family:'Montserrat';font-style:normal;font-weight:500 900;font-display:swap;src:url('../fonts/montserrat-variable-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}

/* ═══════════════ ПЕРЕМЕННЫЕ ПРОЕКТА — из tokens.css ═══════════════ */
/* ─────────────────────────────────────────────────────────
   YES YOU CAN — переменные проекта.
   Все цвета, кегли, отступы, радиусы и тени — только здесь.
   В остальных файлах hex-кодов быть не должно.
   Источник чисел: макеты .dc.html и README (§2).
   ───────────────────────────────────────────────────────── */

:root{

  /* ── Фирменные цвета ── */
  --c-teal: #0F3D3E;              /* основной текст, тёмные кнопки, подвал */
  --c-teal-deep: #002A2E;         /* тёмные блоки: 5 коллекций, что вы получаете */
  --c-teal-ink: #1F3A3A;          /* текст отзывов */
  --c-teal-soft: #2C4A4A;         /* текст ответов в вопросах-ответах */
  --c-pink: #E42A63;              /* акцент, начало градиента кнопки, надписи-рубрики */
  --c-pink-2: #F0578A;            /* конец градиента кнопки */
  --c-orange: #F58A2E;            /* градиент заголовка */
  --c-orange-2: #F26A3A;          /* середина градиента заголовка */
  --c-amber: #F28A1E;             /* звёзды рейтинга */
  --c-peach: #F9B58A;             /* надписи на тёмном */
  --c-flag-red: #E42A2A;          /* флаг ОАЭ */
  --c-flag-green: #00843D;        /* флаг ОАЭ */
  --c-flag-black: #111;           /* флаг ОАЭ */
  --c-leaf: #7BAA5E;              /* маркеры-точки в списках */

  /* ── Фон страницы ── */
  --c-bg-top: #FFF3E6;            /* верх градиента */
  --c-bg-mid: #FFE4C9;            /* середина, 30% */
  --c-bg-bottom: #FFD9BA;         /* низ */
  --c-sheet: #FFF6EC;             /* шторки и окна */
  --c-preview: #E9E6E1;           /* фон предпросмотра макета */
  --bg-page: linear-gradient(180deg,var(--c-bg-top) 0%,var(--c-bg-mid) 30%,var(--c-bg-bottom) 100%);

  /* ── Коллекции ── */
  --c-glow-1: #FFF0F3;
  --c-glow-2: #FBE0E8;
  --c-glow-text: #B3164F;
  --c-glow-body: #5A3A45;
  --c-gut-1: #F7F2EA;
  --c-gut-2: #EDE6F6;
  --c-gut-3: #F8EBDD;
  --c-gut-text: #3A3530;
  --c-gut-body: #5A544C;
  --c-relax-1: #3B2540;
  --c-relax-2: #2A1830;
  --c-relax-text: #F4E2B8;
  --c-energy-1: #F7931E;
  --c-energy-2: #EF7C12;
  --c-protein-1: #F8EEDC;
  --c-protein-2: #EFDCC0;
  --c-protein-text: #3E2412;
  --c-protein-accent: #A5561C;
  --c-protein-body: #6A4A30;
  --c-num-muted: #6A6258;
  --c-rose-muted: #D9A7C7;

  /* ── Полупрозрачные ── */
  --c-white: #FFFFFF;                   
  --c-card: rgba(255,255,255,.6);
  --c-card-65: rgba(255,255,255,.65);      /* карточки вопросов-ответов */
  --c-header-bg: rgba(255,243,230,.88); /* шапка */
  --c-line: rgba(15,61,62,.25);         /* линии-разделители */
  --c-line-soft: rgba(15,61,62,.12);    /* тонкие линии */
  --c-line-faint: rgba(15,61,62,.08);   
  --c-ink-70: rgba(15,61,62,.7);           /* приглушённая рубрика на светлом */
  --c-ink-55: rgba(15,61,62,.55);       /* приглушённый текст */
  --c-ink-30: rgba(15,61,62,.3);
  --c-ink-20: rgba(15,61,62,.2);           /* рамка таблицы питания */
  --c-ink-12: rgba(15,61,62,.12);          /* границы строк таблицы */
  --c-ink-70: rgba(15,61,62,.7);           /* приглушённая строка в окне */
  --c-ink-60: rgba(15,61,62,.6);           /* сноска под кнопкой оплаты */
  --c-ink-65: rgba(15,61,62,.65);          /* строка про размер порции */
  --c-scrim: rgba(15,61,62,.72);           /* затемнение под окном */        
  --c-ink-10: rgba(15,61,62,.1);        
  --c-on-dark-90: rgba(255,255,255,.9);
  --c-on-dark-85: rgba(255,255,255,.85);   /* пояснения на тёмных карточках */
  --c-on-dark-75: rgba(255,255,255,.75);   /* строка «5 COLLECTIONS · 50 CANDIES…» */ 
  --c-on-dark-70: rgba(255,255,255,.7);    /* подписи цифр в блоке заказа */
  --c-on-dark-65: rgba(255,255,255,.65);
  --c-on-dark-60: rgba(255,255,255,.6);    /* граммовки и мелкие пояснения */
  --c-on-dark-12: rgba(255,255,255,.12);   /* рамка карточки с ценой */
  --c-on-dark-06: rgba(255,255,255,.06);   /* фон карточки с ценой */
  --c-on-dark-50: rgba(255,255,255,.5);    /* зачёркнутая цена на тёмном */
  --c-on-dark-40: rgba(255,255,255,.4);    /* копирайт */
  --c-on-dark-30: rgba(255,255,255,.3);
  --c-on-dark-18: rgba(255,255,255,.18);   /* граница над подвалом */ 
  --c-on-dark-20: rgba(255,255,255,.2);
  --c-on-light-55: rgba(255,255,255,.55); /* плашки под тёмный текст на цветном фоне */ 
  --c-on-dark-15: rgba(255,255,255,.15);
  --c-on-dark-10: rgba(255,255,255,.1); 
  --c-placeholder: #8AA0A0;             /* текст-подсказка в полях */

  /* ── Экраны коллекций: фоны карточек ── */
  --g-glow: linear-gradient(160deg,var(--c-glow-1),var(--c-glow-2));
  --g-gut: linear-gradient(135deg,var(--c-gut-1),var(--c-gut-2) 50%,var(--c-gut-3));
  --g-relax: linear-gradient(160deg,var(--c-relax-1),var(--c-relax-2));
  --g-energy: linear-gradient(160deg,var(--c-energy-1),var(--c-energy-2));
  --g-protein: linear-gradient(160deg,var(--c-protein-1),var(--c-protein-2));

  /* ── Экраны коллекций: недостающие цвета ── */
  --c-energy-eyebrow: #FFE3C2;             /* рубрика на оранжевом */
  --c-relax-desc: rgba(244,226,184,.8);    /* описание на тёмном */
  --c-relax-flav: rgba(244,226,184,.85);   /* подписи вкусов на тёмном */
  --c-relax-btn-text: #3B2540;             /* текст кнопки на светлой плашке */

  /* ── Тени коробок: у каждой коллекции своя ── */
  --sh-box-glow: drop-shadow(0 24px 16px rgba(120,20,60,.38)) drop-shadow(0 3px 4px rgba(0,0,0,.18));
  --sh-box-gut: drop-shadow(0 24px 16px rgba(60,50,40,.38)) drop-shadow(0 3px 4px rgba(0,0,0,.18));
  --sh-box-relax: drop-shadow(0 24px 16px rgba(0,0,0,.65)) drop-shadow(0 3px 4px rgba(0,0,0,.3));
  --sh-box-energy: drop-shadow(0 24px 16px rgba(90,35,0,.55)) drop-shadow(0 3px 4px rgba(0,0,0,.25));
  --sh-box-protein: drop-shadow(0 24px 16px rgba(80,40,10,.42)) drop-shadow(0 3px 4px rgba(0,0,0,.18));

  /* ── Градиенты ── */
  --g-h1: linear-gradient(180deg,var(--c-pink) 0%,var(--c-orange-2) 60%,var(--c-orange) 100%);
  --g-cta: linear-gradient(90deg,var(--c-pink),var(--c-pink-2));
  --g-both: linear-gradient(90deg,var(--c-pink),var(--c-orange));
  --g-final: linear-gradient(90deg,var(--c-peach),var(--c-pink));
  --g-success: linear-gradient(135deg,var(--c-pink),var(--c-orange));   /* кружок с галочкой */

  /* ── Кегли — плавно от телефона к десктопу ── */
  --fs-h1: clamp(62px, 37.49px + 6.2857vw, 128px);                /* 62 → 128 */
  --fs-h2: clamp(30px, 20.34px + 2.4762vw, 56px);                 /* 30 → 56 */
  --fs-h2-sm: clamp(24px, 18.06px + 1.5238vw, 40px);              /* 24 → 40 */
  --fs-h3: clamp(22px, 17.54px + 1.1429vw, 34px);                 /* 22 → 34 */
  --fs-sub: clamp(15px, 13.14px + 0.4762vw, 20px);                /* 15 → 20 */
  --fs-body: clamp(11px, 10.26px + 0.1905vw, 13px);               /* 11 → 13 */
  --fs-body-lg: clamp(12px, 10.89px + 0.2857vw, 15px);            /* 12 → 15 */
  --fs-btn: clamp(12px, 11.63px + 0.0952vw, 13px);                /* 12 → 13 */
  --fs-btn-lg: clamp(13px, 12.63px + 0.0952vw, 14px);             /* 13 → 14 */
  --fs-eyebrow: clamp(9px, 8.26px + 0.1905vw, 11px);              /* 9 → 11 */
  --fs-micro: clamp(8px, 7.26px + 0.1905vw, 10px);                /* 8 → 10 */

  /* ── Кегли первого экрана ── */
  --fs-lead: clamp(20px, 16.29px + 0.9524vw, 30px);               /* 20 → 30 · «WANT CANDY? GET MORE FROM IT» */
  --fs-note: clamp(10.5px, 9.57px + 0.2381vw, 13px);              /* 10.5 → 13 · мелкая подпись под линией */
  --fs-hero-stats: clamp(9.5px, 8.39px + 0.2857vw, 12px);         /* 9.5 → 12 · строка 5 / 50 / 20 (заход 12) */
  --fs-save: clamp(12px, 11.26px + 0.1905vw, 14px);               /* 12 → 14 · слово SAVE */
  --fs-save-num: clamp(18px, 15.03px + 0.7619vw, 26px);           /* 18 → 26 · число 20% */
  --fs-ship: clamp(11px, 11.00px + 0.0000vw, 11px);               /* 11 → 11 · строка про доставку */

  /* ── Межбуквенное, доп. ── */
  --ls-wider: .12em;
  --ls-sub: .06em;

  /* ── Кегли второго и третьего экранов ── */
  --fs-h2-md: clamp(26px, 20.80px + 1.3333vw, 40px);              /* 26 → 40 · «CANDY FIRST / FUNCTION BUILT IN» */
  --fs-step-num: clamp(18px, 14.29px + 0.9524vw, 28px);           /* 18 → 28 · номера 01 / 02 / 03 */
  --fs-step-title: clamp(11px, 9.89px + 0.2857vw, 14px);          /* 11 → 14 · «CRAVE IT», «EAT IT», «GET MORE» */
  --fs-step-text: clamp(10px, 8.89px + 0.2857vw, 13px);           /* 10 → 13 · пояснение под шагом */

  /* ── Кегли четвёртого экрана ── */
  --fs-h2-lead: clamp(24px, 16.57px + 1.9048vw, 44px);            /* 24 → 44 · «5 NEEDS · 5 COLLECTIONS / 1 COMPLETE SET» */
  --fs-chip: clamp(8px, 6.89px + 0.2857vw, 11px);                 /* 8 → 11 · подписи GLOW / ENERGY / GUT / PROTEIN / RELAX */

  /* ── Кегли экранов коллекций ── */
  --fs-coll-desc: clamp(11px, 9.89px + 0.2857vw, 14px);           /* 11 → 14 · описание коллекции */
  --fs-pill: clamp(9px, 8.63px + 0.0952vw, 10px);                 /* 9 → 10 · текст в овальной плашке */
  --fs-included: clamp(9px, 8.63px + 0.0952vw, 10px);             /* 9 → 10 · «INCLUDED IN THE COMPLETE SET» */
  --fs-inside: clamp(9px, 8.26px + 0.1905vw, 11px);               /* 9 → 11 · кнопка «SEE WHAT'S INSIDE» */

  /* ── Кегли блоков «Naturally good» и заказа ── */
  --fs-h2-nat: clamp(22px, 15.31px + 1.7143vw, 40px);             /* 22 → 40 · «NATURALLY GOOD» */
  --fs-nat-item: clamp(10px, 9.63px + 0.0952vw, 11px);            /* 10 → 11 · плашки «NATURAL FLAVOURS» и прочие */
  --fs-h2-set: clamp(26px, 19.31px + 1.7143vw, 44px);             /* 26 → 44 · «THE COMPLETE SET» */
  --fs-price-cur: clamp(14px, 11.77px + 0.5714vw, 20px);          /* 14 → 20 · «AED» рядом с ценой */
  --fs-save-badge: clamp(11px, 10.26px + 0.1905vw, 13px);         /* 11 → 13 · плашка SAVE 20% */
  --fs-btn-order: clamp(12px, 11.26px + 0.1905vw, 14px);          /* 12 → 14 · кнопка в блоке заказа */

  /* ── Кегли отзывов и вопросов-ответов ── */
  --fs-tag: clamp(8px, 7.63px + 0.0952vw, 9px);                   /* 8 → 9 · коллекция в карточке отзыва */
  --fs-review: clamp(11px, 10.44px + 0.1429vw, 12.5px);           /* 11 → 12.5 · текст отзыва */
  --fs-faq-q: clamp(12px, 10.89px + 0.2857vw, 15px);              /* 12 → 15 · вопрос */
  --fs-faq-a: clamp(11px, 10.07px + 0.2381vw, 13.5px);            /* 11 → 13.5 · ответ */
  --fs-faq-sign: clamp(18px, 16.51px + 0.3810vw, 22px);           /* 18 → 22 · знак плюс-минус */

  /* ── Кегли финального экрана и подвала ── */
  --fs-final: clamp(34px, 22.86px + 2.8571vw, 64px);              /* 34 → 64 · «WANT IT? HAVE IT» */
  --fs-final-price: clamp(30px, 24.80px + 1.3333vw, 44px);        /* 30 → 44 · цена в финальном блоке */
  --fs-final-old: clamp(12px, 10.51px + 0.3810vw, 16px);          /* 12 → 16 · зачёркнутая цена там же */
  --fs-legal: clamp(9px, 8.26px + 0.1905vw, 11px);                /* 9 → 11 · юридический адрес в подвале */

  /* ── Кегли окон ── */
  --fs-modal-title: clamp(24px, 21.77px + 0.5714vw, 30px);        /* 24 → 30 · название коллекции в окне */
  --fs-modal-label: clamp(10px, 9.63px + 0.0952vw, 11px);         /* 10 → 11 · подзаголовки INGREDIENTS / NUTRITION FACTS */
  --fs-modal-text: clamp(11px, 10.44px + 0.1429vw, 12.5px);       /* 11 → 12.5 · основной текст в окне */
  --fs-modal-serving: clamp(10px, 9.63px + 0.0952vw, 11px);       /* 10 → 11 · строка про размер порции */
  --fs-modal-th: clamp(9px, 8.63px + 0.0952vw, 10px);             /* 9 → 10 · шапка таблицы питания */
  --fs-modal-td: clamp(10.5px, 9.94px + 0.1429vw, 12px);          /* 10.5 → 12 · строки таблицы питания */
  --fs-modal-chip: 9px;                                           /* 9 → 9 · плашки HALAL / MADE IN UAE */
  --fs-modal-close: clamp(16px, 15.26px + 0.1905vw, 18px);        /* 16 → 18 · крестик закрытия */

  /* ── Кегли окна заказа и окна «нет в наличии» ── */
  --fs-order-sub: clamp(10px, 9.63px + 0.0952vw, 11px);           /* 10 → 11 · строка «5 COLLECTIONS · 50 CANDIES…» */
  --fs-order-price-lbl: clamp(11px, 10.63px + 0.0952vw, 12px);    /* 11 → 12 · «Regular price 249 AED» */
  --fs-order-price: clamp(18px, 16.51px + 0.3810vw, 22px);        /* 18 → 22 · цена 180 AED в окне */
  --fs-order-step: clamp(10px, 9.63px + 0.0952vw, 11px);          /* 10 → 11 · «STEP 1 — CHOOSE DELIVERY» */
  --fs-order-way: clamp(11px, 10.63px + 0.0952vw, 12px);          /* 11 → 12 · название способа доставки */
  --fs-order-way-note: clamp(9px, 8.63px + 0.0952vw, 10px);       /* 9 → 10 · пояснение под способом */
  --fs-field: clamp(13px, 12.63px + 0.0952vw, 14px);              /* 13 → 14 · текст в поле ввода */
  --fs-order-pay: clamp(14px, 13.63px + 0.0952vw, 15px);          /* 14 → 15 · кнопка PAY 180 AED */
  --fs-order-note: clamp(9px, 8.63px + 0.0952vw, 10px);           /* 9 → 10 · строка про оплату под кнопкой */
  --fs-modal-lead: 12px;                                          /* 12 → 12 · текст в окне «нет в наличии» */
  --fs-modal-h: 26px;                                             /* 26 → 26 · заголовок окна «нет в наличии» */

  /* ── Начертания и межбуквенное ── */
  --fw-medium: 500;
  --fw-semibold: 600;
  --fw-bold: 700;
  --fw-extrabold: 800;
  --fw-black: 900;
  --ls-eyebrow: .2em;
  --ls-btn: .14em;
  --ls-wide: .1em;
  --ls-final: .16em;              /* строка под заголовком финального блока */
  --ls-tight: -.02em;
  --lh-h1: .88;                   /* десктоп .86 — ниже в медиазапросе */
  --lh-h2: 1.05;
  --lh-body: 1.5;
  --lh-body-lg: 1.55;

  /* ── Отступы и сетка ── */
  --pad-x: 20px;                  /* поля экрана на телефоне */
  --container: 1200px;
  --header-h: 56px;               /* реальная высота шапки: 10 + лого 32 + 6 + запас */
  --tap: 44px;                    /* минимальная кнопка на телефоне */

  /* ── Скругления ── */
  --r-card: 22px;
  --r-card-lg: 28px;
  --r-input: 14px;
  --r-pill: 999px;
  --r-sheet: 28px;
  --r-table: 12px;
  --r-field: 12px;                /* поле ввода в окне, десктоп 14 */
  --r-way: 14px;                  /* карточка способа доставки, десктоп 16 */
  --r-pricebox: 14px;             /* плашка с ценой в окне, десктоп 16 */                /* таблица питания, десктоп 14 */
  --r-step: 16px;
  --r-nat: 12px;                  /* плашки «Naturally good», десктоп 14 */
  --r-badge: 10px;                /* плашка SAVE 20%, десктоп 12 */
  --r-price: 22px;
  --r-review: 18px;               /* карточка отзыва, десктоп 22 */
  --r-faq: 14px;                  /* карточка вопроса, десктоп 16 */                /* карточка с ценой на десктопе */                 /* карточки шагов, десктоп 20 — ниже в медиазапросе */

  /* ── Тени ── */
  --sh-cta: 0 12px 24px rgba(228,42,99,.3);
  --sh-cta-active: 0 6px 14px rgba(228,42,99,.28);
  --sh-card: 0 12px 26px rgba(90,30,20,.14);
  --sh-card-lg: 0 14px 30px rgba(90,30,20,.14);
  --sh-soft: 0 8px 18px rgba(0,0,0,.18);
  --sh-pack: drop-shadow(0 16px 18px rgba(90,30,20,.28));   /* пачка в окне */

  /* ── Движение ── */
  --dur-fast: .16s;
  --dur: .24s;
  --ease: cubic-bezier(.22,.61,.36,1);
}

  /* ── Планшет и десктоп — только поля, кегли меняются плавно сами ── */
@media (min-width:768px){ :root{
  --sh-box-glow: drop-shadow(0 30px 22px rgba(120,20,60,.38)) drop-shadow(0 4px 6px rgba(0,0,0,.18));
  --sh-box-gut: drop-shadow(0 30px 22px rgba(60,50,40,.38)) drop-shadow(0 4px 6px rgba(0,0,0,.18));
  --sh-box-relax: drop-shadow(0 30px 22px rgba(0,0,0,.65)) drop-shadow(0 4px 6px rgba(0,0,0,.3));
  --sh-box-energy: drop-shadow(0 30px 22px rgba(90,35,0,.55)) drop-shadow(0 4px 6px rgba(0,0,0,.25));
  --sh-box-protein: drop-shadow(0 30px 22px rgba(80,40,10,.42)) drop-shadow(0 4px 6px rgba(0,0,0,.18));
  --pad-x:32px; --r-card:var(--r-card-lg); --header-h:72px; --lh-h1:.86; --ls-tight:-.03em; --r-step:20px; --r-nat:14px; --r-badge:12px; --r-review:22px; --r-faq:16px; --r-table:14px; --r-field:14px; --r-way:16px; --r-pricebox:16px; } }
@media (min-width:1200px){ :root{ --pad-x:40px; } }

/* Человек попросил меньше движения — отключаем анимации */
@media (prefers-reduced-motion: reduce){ :root{ --dur-fast:0s; --dur:0s; } }

/* ═══════════════ ВЁРСТКА — из styles.css ═══════════════ */
/* ─────────────────────────────────────────────────────────
   YES YOU CAN — база.
   Здесь только сброс, типографика и общие элементы.
   Цвета и размеры берутся из tokens.css — hex тут запрещён.
   ───────────────────────────────────────────────────────── */

/* ── Сброс ───────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box}

html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}

body{
  margin:0;
  min-height:100dvh;             /* реальная высота: не прыгает при появлении панелей */
  background:var(--bg-page);
  background-attachment:fixed;
  color:var(--c-teal);
  font-family:Montserrat,system-ui,-apple-system,"Segoe UI",sans-serif;
  font-weight:var(--fw-medium);
  line-height:var(--lh-body);
  overflow-x:hidden;             /* страница никогда не едет вбок */
  -webkit-font-smoothing:antialiased;
}

img,svg,video{display:block;max-width:100%}
img{height:auto}

button,input,select,textarea{font:inherit;color:inherit;margin:0}
button{border:0;background:none;cursor:pointer;-webkit-tap-highlight-color:transparent}
a{color:inherit;text-decoration:none}
h1,h2,h3,p,figure{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
[hidden]{display:none!important}

/* ── Якоря: прокрутка останавливается ниже шапки ─────────── */
[id]{scroll-margin-top:var(--header-h)}

/* ── Только для чтения с экрана ──────────────────────────── */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* ── Ширина содержимого ──────────────────────────────────── */
/* «содержимое 1200 + поля» — поля прибавляем к ширине, иначе при border-box
   содержимое схлопывается до 1120 и не сходится с макетом */
.container{width:100%;max-width:calc(var(--container) + var(--pad-x) * 2);margin-inline:auto;padding-inline:var(--pad-x)}

/* Блок во всю ширину экрана, вырываясь из полей */

/* ── Типографика ─────────────────────────────────────────── */
.eyebrow{font-size:var(--fs-eyebrow);font-weight:var(--fw-bold);letter-spacing:var(--ls-eyebrow);line-height:1;color:var(--c-pink);text-transform:uppercase}
.h1{font-size:var(--fs-h1);font-weight:var(--fw-black);line-height:var(--lh-h1);letter-spacing:var(--ls-tight)}
.h2{font-size:var(--fs-h2);font-weight:var(--fw-black);line-height:var(--lh-h2);letter-spacing:-.01em}
.h2--sm{font-size:var(--fs-h2-sm)}
.h3{font-size:var(--fs-h3);font-weight:var(--fw-black);line-height:1.1}
.body{font-size:var(--fs-body)}

/* Текст, залитый градиентом */
.grad{background:var(--g-h1);-webkit-background-clip:text;background-clip:text;color:transparent}
.grad--both{background:var(--g-both)}

/* ── Кнопки ──────────────────────────────────────────────── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:14px;
  min-height:var(--tap);padding:0 24px;border-radius:var(--r-pill);
  font-size:var(--fs-btn);font-weight:var(--fw-extrabold);letter-spacing:var(--ls-btn);
  line-height:1;text-transform:uppercase;
  transition:transform var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease),background-color var(--dur-fast) var(--ease);
  will-change:transform;
}
.btn--primary{height:52px;background:var(--g-cta);box-shadow:var(--sh-cta);color:var(--c-white);font-size:var(--fs-btn-lg)}
.btn--outline{height:50px;border:1.5px solid var(--c-teal);color:var(--c-teal)}
.btn--dark{height:50px;background:var(--c-teal);color:var(--c-white)}

/* Нажатие — работает и пальцем, и мышью */
.btn:active{transform:scale(.98)}
.btn--primary:active{box-shadow:var(--sh-cta-active)}

/* Наведение — только там, где есть мышь. На телефоне такого состояния нет */
@media (hover:hover) and (pointer:fine){
  .btn--primary:hover{transform:translateY(-1px)}
  .btn--outline:hover{background:var(--c-ink-10)}
  .btn--dark:hover{background:var(--c-teal-deep)}
}
.btn:focus-visible{outline:2px solid var(--c-pink);outline-offset:3px}

/* ── Карточка ────────────────────────────────────────────── */
.card{background:var(--c-card);border-radius:var(--r-card);padding:24px var(--pad-x)}

/* ── Поля ввода ──────────────────────────────────────────── */
.input{
  width:100%;min-height:var(--tap);padding:12px 14px;
  border:1.5px solid var(--c-line);border-radius:var(--r-input);
  background:var(--c-white);
  font-size:16px;                /* меньше 16 — iOS увеличит страницу при вводе */
  font-weight:var(--fw-semibold);
  transition:border-color var(--dur-fast) var(--ease);
}
.input::placeholder{color:var(--c-placeholder)}
.input:focus-visible{outline:none;border-color:var(--c-pink)}
.input[aria-invalid="true"]{border-color:var(--c-flag-red)}
.field-error{margin-top:6px;font-size:var(--fs-micro);font-weight:var(--fw-bold);letter-spacing:var(--ls-wide);color:var(--c-flag-red)}

/* ── Иконки вместо символов, которых нет в Montserrat ─────
   ★ → ← ≤ ✓ ✦ в шрифте отсутствуют: браузер подставил бы
   системный, и на разных телефонах они выглядели бы по-разному. */
.icon{width:1em;height:1em;flex:none;fill:currentColor}
.icon--arrow{width:1.2em;height:1.2em}
.stars{display:inline-flex;gap:1px;color:var(--c-amber)}
.stars .icon{width:.85em;height:.85em}

/* ── Горизонтальная лента (отзывы) ───────────────────────── */
.rail{
  display:flex;overflow-x:auto;scroll-snap-type:x mandatory;
  touch-action:pan-x pan-y;          /* оба направления: браузер сам решает по жесту. Было pan-x — палец на ленте блокировал прокрутку страницы (18.09) */
  overscroll-behavior-x:contain;     /* не листает страницу назад свайпом */
  scrollbar-width:none;-webkit-overflow-scrolling:touch;
}
.rail::-webkit-scrollbar{display:none}
.rail>*{scroll-snap-align:start;flex:none}

/* ── Липкая нижняя панель ────────────────────────────────── */

/* ── Появление блоков ────────────────────────────────────── */
@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  
  *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}
}

/* ═════════════════════════════════════════════════════════
   ТЗ №1 — шапка, выпадающее меню, первый экран
   Числа: макеты YES YOU CAN - Landing.dc.html (390)
          и YES YOU CAN - Landing Desktop.dc.html (1440)
   ═══════════════════════════════════════════════════════ */

/* ── Шапка ───────────────────────────────────────────────── */
.header{
  position:sticky;top:0;z-index:50;
  background:var(--c-header-bg);
  backdrop-filter:blur(14px);          /* единственное размытие на сайте */
  -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--c-line-faint);
}
.header__bar{
  display:flex;align-items:center;justify-content:space-between;
  width:100%;margin-inline:auto;
  /* «содержимое 1200, поля 40» — при border-box поля прибавляем к ширине */
  max-width:calc(var(--container) + var(--pad-x) * 2);
  /* 46px в макете — статус-бар нарисованного айфона, в браузере не нужен */
  padding:max(10px,env(safe-area-inset-top)) var(--pad-x) 6px;
}

/* Кнопка меню: полосы 22×2, промежуток 4.
   Область нажатия добита отступами до 44×44, отрицательные поля
   возвращают рамку к размеру полос — строка шапки не растёт. */
.burger{
  display:flex;flex-direction:column;justify-content:center;gap:4px;
  width:var(--tap);height:var(--tap);
  padding:15px 11px;margin:-9px -11px;
}
.burger__line{height:2px;border-radius:2px;background:var(--c-teal)}
.burger:focus-visible{outline:2px solid var(--c-pink);outline-offset:2px}

.header__logo{display:flex;flex:none}
.header__logo img{height:32px;width:auto}
.header__logo:focus-visible{outline:2px solid var(--c-pink);outline-offset:3px;border-radius:4px}

.header__nav{display:none}
/* Заход 6 (ТЗ 16.09 §3.2): кнопка с ценой в шапке видна и на телефоне — весь трафик мобильный.
   На телефоне стоит справа, перед логотипом. Высота 32 — строка шапки не растёт,
   нажатие 44 px добито через ::before */
.header__cta{
  position:relative;order:2;display:inline-flex;align-items:center;justify-content:center;
  height:32px;margin-left:auto;margin-right:14px;padding:0 14px;border-radius:16px;
  background:var(--g-cta);color:var(--c-white);
  font-size:11px;font-weight:var(--fw-extrabold);letter-spacing:.06em;line-height:1;white-space:nowrap;
}
.header__cta::before{content:"";position:absolute;left:0;right:0;top:-6px;bottom:-6px}
.header__cta:focus-visible{outline:2px solid var(--c-pink);outline-offset:3px}
.header__logo{order:3}

/* ── Выпадающее меню (только телефон) ────────────────────── */
.menu{padding:4px var(--pad-x) 14px;border-top:1px solid var(--c-line)}
.menu__link{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  min-height:var(--tap);padding:12px 0;
  border-bottom:1px solid var(--c-line-soft);
  font-size:var(--fs-btn);font-weight:var(--fw-extrabold);
  letter-spacing:var(--ls-btn);line-height:1;
  color:var(--c-teal);
}
.menu__item:last-child .menu__link{border-bottom:0}
.menu__arrow{color:var(--c-pink)}
.menu__link:focus-visible{outline:2px solid var(--c-pink);outline-offset:-2px}

/* ── Первый экран: телефон ───────────────────────────────── */
.hero{display:flex;flex-direction:column}
/* На телефоне левая колонка распадается: фотография встаёт
   между полосой цифр и кнопками, как в макете */
.hero__col{display:contents}

.hero__head{display:flex;gap:10px;padding:20px var(--pad-x) 0}   /* заход 6: 26 → 20, кнопка первого экрана в 844 px */
.hero__lead{flex:1;min-width:0;padding-top:34px;padding-right:6px}
.hero__claim{font-size:var(--fs-lead);font-weight:var(--fw-extrabold);line-height:1.1}
.hero__rule{display:block;width:110px;height:1px;margin:14px 0 12px;background:var(--c-teal);opacity:.35}
.hero__sub{font-size:var(--fs-note);font-weight:var(--fw-bold);line-height:1.5;letter-spacing:var(--ls-sub)}
.hero__hl{color:var(--c-pink)}
/* Правка после осмотра 13.09 · 4. Правая колонка по центру «YES YOU CAN»:
   блок растянут на высоту строки, содержимое центрируется. На 768+ отступ
   сверху 54px задаёт правило планшета ниже — оно остаётся в силе. */
.hero__lead{display:flex;flex-direction:column;justify-content:center;padding-top:0}

/* Строка цифр — вместо рамки 5 / 50 / 20 (заход 12) */
.hero__stats{
  display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;
  margin:14px var(--pad-x) 0;
  font-size:var(--fs-hero-stats);font-weight:var(--fw-black);
  letter-spacing:.14em;line-height:1;color:var(--c-ink-70);
}
.hero__stats-dot{flex:none;width:3px;height:3px;border-radius:var(--r-pill);background:var(--c-pink)}

/* Фотография: во всю ширину экрана, края растворяются */
.hero__media{display:block;order:1;margin-top:4px}   /* заход 6: 14 → 4, верх фото растворён маской */
.hero__img{
  width:100%;
  /* цвет в маске служебный: чёрное — видно, прозрачное — нет */
  -webkit-mask-image:linear-gradient(180deg,transparent 0,black 12%,black 90%,transparent 100%);
  mask-image:linear-gradient(180deg,transparent 0,black 12%,black 90%,transparent 100%);
}

/* Кнопки и подписи под фотографией */
.hero__actions{order:2;display:flex;flex-direction:column;gap:10px;padding-inline:var(--pad-x);margin-top:-12px}   /* заход 6: −6 → −12, низ фото растворён маской; заход 12: кнопки, оффер и подписи — один столбец */
.hero__ship{
  display:flex;align-items:center;justify-content:center;gap:8px;margin-top:6px;
  font-size:var(--fs-ship);font-weight:var(--fw-extrabold);letter-spacing:var(--ls-wider);line-height:1;
}
.hero__badges{
  /* на узких экранах три подписи в одну строку не помещаются
     и вылезают за края — разрешаем перенос */
  display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:18px;
  font-size:var(--fs-eyebrow);font-weight:var(--fw-bold);letter-spacing:var(--ls-wide);line-height:1;
}
.hero__badge{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.hero__sep{opacity:.3}
.hero__sep--lead{display:none}      /* нужен только в одну строку на десктопе */

/* Флаг ОАЭ — декоративный */
.flag{display:inline-flex;flex:none;width:18px;height:12px;border-radius:2px;overflow:hidden}
.flag__red{width:5px;background:var(--c-flag-red)}
.flag__bars{flex:1;display:flex;flex-direction:column}
.flag__bars>span{flex:1}
.flag__bars>span:nth-child(1){background:var(--c-flag-green)}
.flag__bars>span:nth-child(2){background:var(--c-white)}
.flag__bars>span:nth-child(3){background:var(--c-flag-black)}

/* ── Планшет и десктоп (768+) ────────────────────────────── */
@media (min-width:768px){

  /* Шапка: логотип — меню — кнопка */
  .burger,.menu{display:none}
  .header__bar{padding:14px var(--pad-x)}
  .header__logo img{height:38px}

  .header__nav{
    display:flex;gap:24px;
    font-size:var(--fs-btn);font-weight:var(--fw-extrabold);
    letter-spacing:var(--ls-btn);line-height:1;color:var(--c-teal);
  }
  .header__nav a{white-space:nowrap}
  .header__nav a:focus-visible{outline:2px solid var(--c-pink);outline-offset:4px}

  .header__logo{order:0}
  .header__cta{
    order:0;margin:0;
    display:inline-flex;align-items:center;justify-content:center;
    height:44px;padding:0 22px;border-radius:22px;
    background:var(--g-cta);color:var(--c-white);
    font-size:var(--fs-btn);font-weight:var(--fw-extrabold);
    letter-spacing:var(--ls-wider);line-height:1;white-space:nowrap;
  }
  .header__cta:focus-visible{outline:2px solid var(--c-pink);outline-offset:3px}

  /* Первый экран. До 846px одна колонка: по ТЗ §4.3 две колонки
     держим, пока левая не уже 380px, а (W−64−40)·1.05/2.05 = 380 при W = 846 */
  .hero{
    display:grid;grid-template-columns:1fr;gap:40px;align-items:center;
    width:100%;margin-inline:auto;
    max-width:calc(var(--container) + var(--pad-x) * 2);
    padding:40px var(--pad-x) 0;
  }
  .hero__col{display:block;min-width:0}

  .hero__head{gap:28px;align-items:flex-start;padding:0}
  .hero__lead{flex:0 1 auto;padding-top:54px;padding-right:0}
  
  .hero__rule{width:140px;margin:18px 0 14px}
  .hero__sub{line-height:1.6;max-width:260px}

  .hero__stats{justify-content:flex-start;gap:10px;margin:34px 0 0}
  .hero__stats-dot{width:4px;height:4px}
  

  .hero__media{order:0;margin-top:0}
  .hero__img{
    -webkit-mask-image:linear-gradient(180deg,transparent 0,black 10%,black 92%,transparent 100%);
    mask-image:linear-gradient(180deg,transparent 0,black 10%,black 92%,transparent 100%);
  }

  .hero__actions{
    order:0;display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;
    gap:14px;margin-top:28px;padding-inline:0;
  }
  /* Заход 12: в разметке оффер стоит между кнопками — так он читается на телефоне.
     С 768 кнопки идут в ряд, а оффер и подписи — под ними, как в макете 3a/3b:
     order переносит их в конец ряда. Отступ подписей — ниже, в .hero__proof */
  .hero__offer{flex:1 0 100%;max-width:560px;margin:0;order:1}
  .hero__proof{flex:1 0 100%;order:2}
  /* Кнопки: текст всегда в одну строку. Внутренние поля ужаты на 3-4px
     против макета (34→30 и 30→27) — на глаз незаметно, но двух кнопок
     хватает уместить в ряд начиная с ширины окна ~1240px.
     Если места меньше — вторая кнопка встаёт под первой, текст не ломается. */
  .hero__btn-main,.hero__btn-alt{height:60px;border-radius:30px;white-space:nowrap}
  .hero__btn-main{padding:0 30px;gap:12px}
  .hero__btn-alt{padding:0 27px}

  /* Доставка и три подписи — одной строкой. В макете переносится текст
     ВНУТРИ каждой подписи, а сами подписи остаются в ряд: снимаем nowrap */
  .hero__proof{display:flex;align-items:center;flex-wrap:nowrap;gap:28px;margin-top:12px}   /* заход 12: 12 + gap 14 = 26 под оффером, как в макете */
  .hero__badge,.hero__ship{white-space:normal}
  .hero__ship{margin-top:0;font-weight:var(--fw-bold)}
  .hero__badges{display:contents;letter-spacing:.12em}
  .hero__sep--lead{display:inline}

  .flag{width:20px;height:13px}
  .flag__red{width:6px}
}

/* ── Две колонки: левая не уже 380px ─────────────────────── */
@media (min-width:846px){
  .hero{grid-template-columns:1.05fr 1fr}
}

/* ── Десктоп (1200+) ─────────────────────────────────────── */
@media (min-width:1200px){
  .header__logo img{height:44px}
  .header__nav{gap:36px}
}

/* Наведение — только там, где есть мышь */
@media (hover:hover) and (pointer:fine){
  .header__nav a:hover{color:var(--c-pink)}
  .menu__link:hover{color:var(--c-pink)}
}

/* Полупрозрачные подложки и тень считаем из фирменных цветов,
   чтобы не заводить новых значений в tokens.css */
@supports (background:color-mix(in srgb,white 35%,transparent)){
  /* Заход 12: строка цифр — фирменный тёмный на 75 %, как в макете. --c-ink-70 (70 %) на фоне
     первого экрана даёт 4,4 : 1, этот — 5,1 : 1 (390) и 5,0 (1440); без color-mix остаётся --c-ink-70 */
  .hero__stats{color:color-mix(in srgb,var(--c-teal) 75%,transparent)}
  @media (min-width:768px){
    .hero__btn-main{box-shadow:0 14px 28px color-mix(in srgb,var(--c-pink) 30%,transparent)}
  }
}

/* ═════════════════════════════════════════════════════════
   ТЗ №2 — экран 2 «WANT vs NEED» и экран 3 «Философия»
   Числа: макеты YES YOU CAN - Landing.dc.html (390)
          и YES YOU CAN - Landing Desktop.dc.html (1440)
   ═══════════════════════════════════════════════════════ */

/* .grad--both задаёт фон сокращённой записью `background:` — она сбрасывает
   background-clip:text, выставленный в .grad, и градиент заливает всю строку
   вместо букв. Возвращаем обрезку по тексту, существующие правила не трогаем. */
.grad.grad--both{-webkit-background-clip:text;background-clip:text}

/* ── Экран 2 «WANT vs NEED»: телефон ─────────────────────── */
/* Порядок на телефоне другой, чем на десктопе: картинка стоит
   между заголовком и подзаголовком. Меняем местами через order,
   разметка при этом остаётся в осмысленном порядке чтения. */
.want{margin:36px var(--pad-x) 0}
.want__card{display:flex;flex-direction:column}
.want__head{display:contents}
.want__text{order:1}
.want__media{order:2;display:block;margin-top:14px}
.want__aside{order:3;margin-top:18px}

.want__title{margin-top:10px}
.want__vs{color:var(--c-pink)}
.want__img{width:100%}
.want__sub{font-size:var(--fs-sub);font-weight:var(--fw-extrabold);line-height:1.3}
.want__both{margin-top:6px}

/* ── Экран 3 «Философия»: телефон ────────────────────────── */
.way{margin:36px var(--pad-x) 0}
.way__title{margin-top:10px;font-size:var(--fs-h2-md);font-weight:var(--fw-black);line-height:1.05}

.steps{display:flex;gap:8px;margin-top:14px}
.steps__item{
  flex:1;min-width:0;
  padding:14px 12px;border-radius:var(--r-step);
  background:var(--c-teal);color:var(--c-white);
}
.steps__num{font-size:var(--fs-step-num);font-weight:var(--fw-black);line-height:1;color:var(--c-peach)}
.steps__title{margin-top:8px;font-size:var(--fs-step-title);font-weight:var(--fw-extrabold);letter-spacing:var(--ls-wide);line-height:1}
.steps__text{margin-top:6px;font-size:var(--fs-step-text);font-weight:var(--fw-medium);line-height:1.4;color:var(--c-on-dark-85)}

/* ── Планшет и десктоп (768+) ────────────────────────────── */
@media (min-width:768px){

  /* Ширина как у первого экрана: содержимое 1200 + поля */
  .want{
    width:100%;max-width:calc(var(--container) + var(--pad-x) * 2);
    margin-top:56px;margin-inline:auto;padding-inline:var(--pad-x);
  }
  .want__card{padding:40px 44px}
  .want__title{margin-top:12px}
  /* Картинка уходит вниз, под текст */
  .want__media{order:4;margin-top:28px}

  .way{
    width:100%;max-width:calc(var(--container) + var(--pad-x) * 2);
    margin-top:56px;margin-inline:auto;padding-inline:var(--pad-x);
    display:grid;grid-template-columns:1.1fr 1.4fr;gap:40px;align-items:center;
  }
  .way__title{margin-top:12px}

  /* До 957px три карточки в ряд уже 150px — раскладываем в две строки */
  .steps{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:0}
  .steps__item{padding:24px 20px}
  .steps__item:last-child{grid-column:1 / -1}
  .steps__title{margin-top:14px}
  .steps__text{margin-top:8px;line-height:1.5}
}

/* ── Два столбца экрана 2: колонка не уже 300px ──────────────
   (W − pad-x·2 − 44·2 − 40) / 2 = 300 даёт W = 792 при pad-x 32 */
@media (min-width:792px){
  .want__head{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end}
  .want__aside{margin-top:0}
}

/* ── Три карточки в ряд: карточка не уже 150px ───────────────
   ((W − pad-x·2 − 40)·1.4/2.5 − 28) / 3 = 150 даёт W = 958 при pad-x 32 */
@media (min-width:958px){
  .steps{grid-template-columns:repeat(3,1fr)}
  .steps__item:last-child{grid-column:auto}
}

/* Правка после осмотра 13.09 · 3. Планшет 768–1023.98px: одна колонка —
   заголовок над карточками, три карточки равной ширины. С 1024 как было. */
@media (min-width:768px) and (max-width:1023.98px){
  .way{grid-template-columns:1fr}
  .steps{grid-template-columns:repeat(3,1fr)}
  .steps__item:last-child{grid-column:auto}
}

/* ── Десктоп (1200+) ─────────────────────────────────────────
   Ниже 1200 заголовок в одну строку не помещается в свою колонку,
   поэтому неразрывность включаем только здесь — как в макете */
@media (min-width:1200px){
  .way__title{white-space:nowrap}
}

/* ── Ваза с конфетами крупнее на телефоне ────────────────────
   Картинка выходит за внутренние поля карточки до её краёв:
   310px → 350px, продукт крупнее на 13%. Скругления карточки,
   отступы и весь остальной макет не меняются.
   На планшете и десктопе (768+) правило не действует. */
@media (max-width:767px){
  .want__media{
    margin-inline:calc(var(--pad-x) * -1);
    width:calc(100% + var(--pad-x) * 2);
  }
}

/* ═══ БЛОК «THE COMPLETE SET» · коробки на тумбах ═══
   Фон — студийный снимок, коробки отдельным webp с альфой, весь текст вёрсткой.
   Центры коробок приходят переменной --x на каждом li, одинаковые для обоих кадров. */

.cset{margin:36px 0 0}
.cset__inner{position:relative;overflow:hidden;padding:26px var(--pad-x,20px) 28px;
  background:url('../img/studio-teal.webp') center 58%/cover}
.cset__eyebrow{font-size:9px;font-weight:800;letter-spacing:.2em;line-height:1;color:#F9B58A}
.cset__title{margin-top:12px;font-size:24px;font-weight:900;line-height:1.08;letter-spacing:-.01em;color:#FFF}
.cset__media{position:relative;margin-top:6px}
.cset__media img{display:block;width:100%;max-width:none;height:auto}
.cset__text{margin-top:22px;font-size:11.5px;font-weight:600;line-height:1.6;color:rgba(255,255,255,.9);text-wrap:pretty}
.cset__btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;margin-top:20px;
  padding:16px 20px;border:0;border-radius:999px;background:linear-gradient(90deg,#E42A63,#F0578A);
  box-shadow:0 8px 22px rgba(228,42,99,.35);color:#FFF;font:inherit;font-size:11px;font-weight:800;
  letter-spacing:.16em;line-height:1;cursor:pointer;transition:transform .15s ease}
.cset__btn .icon{width:13px;height:13px;flex:none;fill:currentColor}
.cset__btn:active{transform:scale(.99)}
.cset__btn:focus-visible{outline:2px solid #FFF;outline-offset:3px}
@media (hover:hover) and (pointer:fine){.cset__btn:hover{transform:translateY(-1px)}}

@media (min-width:560px) and (max-width:1023.98px){
  .cset__inner{max-width:560px;margin-inline:auto}
}

@media (min-width:1024px){
  .cset{margin:56px auto 0;width:100%;max-width:calc(1200px + var(--pad-x,40px) * 2);padding-inline:var(--pad-x,40px)}
  .cset__inner{border-radius:32px;padding:64px 56px 60px;background-position:center 62%}
  .cset__eyebrow{font-size:13px;letter-spacing:.22em}
  .cset__title{margin-top:18px;font-size:52px;line-height:1.06;letter-spacing:-.02em}
  .cset__media{max-width:1000px;margin:10px auto 0}
  .cset__text{margin-top:34px;max-width:760px;font-size:18px}
  .cset__btn{
    width:-webkit-fit-content;
    width:fit-content;
    margin-top:32px;padding:22px 44px;font-size:15px;letter-spacing:.18em;gap:14px;
    box-shadow:0 12px 34px rgba(228,42,99,.35)}
  .cset__btn .icon{width:17px;height:17px}
}

/* ═══ ЭКРАНЫ КОЛЛЕКЦИЙ 05–09 · сцена на пьедестале ═══
   Подписи вкусов выгравированы в рендере — вёрстка их НЕ рисует.
   Брейкпоинты: база (телефон) → 560px (план­шет: ширина карточки) → 1024px (десктоп).
   Пути к картинкам живут в этом файле, не в инлайн-стилях: url() резолвится
   относительно CSS-файла. ═══════════════════════════════════════════ */

.coll-card--glow{--cc-ink:#B3164F;--cc-eyebrow:#B3164F;--cc-pill:#A61040;--cc-shadow:rgba(140,15,60,.09);--cc-rule:rgba(179,22,79,.16);--cc-inc:#B3164F;--cc-btn:linear-gradient(90deg,#C21B55,#8E0B36);--cc-bg:url('../img/bg-glow.webp')}
.coll-card--gut{--cc-ink:#08483A;--cc-eyebrow:#08483A;--cc-pill:#08483A;--cc-shadow:rgba(8,72,58,.1);--cc-rule:rgba(8,72,58,.16);--cc-inc:#08483A;--cc-btn:linear-gradient(90deg,#0B5B47,#03332A);--cc-bg:url('../img/bg-gut.webp')}
.coll-card--relax{--cc-ink:#55166E;--cc-eyebrow:#6B2A8A;--cc-pill:#600D72;--cc-shadow:rgba(85,22,110,.1);--cc-rule:rgba(85,22,110,.16);--cc-inc:#652281;--cc-btn:linear-gradient(90deg,#7A3193,#4E1660);--cc-bg:url('../img/bg-relax.webp')}
.coll-card--energy{--cc-ink:#D23A04;--cc-eyebrow:#D23A04;--cc-pill:#B8420A;--cc-shadow:rgba(180,60,10,.1);--cc-rule:rgba(210,58,4,.16);--cc-inc:#C43C05;--cc-btn:linear-gradient(90deg,#E0490B,#A82E03);--cc-bg:url('../img/bg-energy.webp')}
.coll-card--protein{--cc-ink:#4A2208;--cc-eyebrow:#7A4520;--cc-pill:#5C3010;--cc-shadow:rgba(74,34,8,.1);--cc-rule:rgba(74,34,8,.16);--cc-inc:#5C3010;--cc-btn:linear-gradient(90deg,#5C3010,#381804);--cc-bg:url('../img/bg-protein.webp')}

.coll-card{margin:16px var(--pad-x,20px) 0}
.coll-card--glow{margin-top:36px}
.coll-card__inner{position:relative;border-radius:28px;overflow:hidden;background:#FBF8F3;box-shadow:0 14px 30px rgba(90,30,20,.12)}

/* Сцена: фото обрывается маской выше пьедестала, ниже — кремовое поле карточки,
   границу задаёт силуэт подставки. Никаких кремовых полос снизу. */
.coll-card__scene{position:relative;overflow:hidden;background:#FBF8F3}
.coll-card__scene::before{content:"";position:absolute;left:0;right:0;top:0;height:68%;
  background:var(--cc-bg) center 12%/cover;
  -webkit-mask-image:linear-gradient(180deg,#000 80%,transparent 100%);
          mask-image:linear-gradient(180deg,#000 80%,transparent 100%)}
.coll-card__scene>img{position:relative;display:block;width:108%;max-width:none;height:auto;margin-left:-8%}

.coll-card__head{position:absolute;top:46px;right:10px;width:36%;z-index:2}
.coll-card__eyebrow{font-size:9px;font-weight:700;letter-spacing:.2em;line-height:1;color:var(--cc-eyebrow)}
.coll-card__title{margin-top:10px;font-size:28px;font-weight:900;line-height:.95;letter-spacing:-.01em;color:var(--cc-ink)}
.coll-card--protein .coll-card__title{font-size:26px}
.coll-card__desc{margin-top:10px;font-size:11px;font-weight:600;line-height:1.5;color:#3D3742;text-wrap:pretty}

.coll-card__note{margin:14px 18px 0;text-align:center;font-size:9px;font-weight:600;line-height:1.4;color:#6A5442}
/* Плашки: сетка с фиксированной высотой ячейки — ряд одинаковой высоты
   у всех пяти коллекций на любой ширине, максимум 2 строки в плашке */
/* Заход 6 (ТЗ 16.09 §3.3): кегль плашек не меньше 11 px (было 8 и 7,5). Надпись, которой
   не хватает ширины, встаёт в две строки: ячейка 38 px вмещает две строки по 11 px.
   Цвета --cc-pill на белом дают контраст от 5,49 — норма 4,5 выполнена, цвета не менялись */
.coll-card__pills{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:14px 18px 0}
.coll-card--protein .coll-card__pills{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 5px;margin-top:12px}
.coll-card__pills li{display:flex;align-items:center;justify-content:center;gap:5px;height:38px;padding:0 9px;
  border-radius:999px;background:#FFF;box-shadow:0 2px 6px var(--cc-shadow);color:var(--cc-pill);
  font-size:11px;font-weight:800;letter-spacing:.01em;line-height:1.15;text-align:center}
.coll-card--protein .coll-card__pills li{padding:0 6px;font-size:11px;letter-spacing:0}
.coll-card__pills .icon{width:12px;height:12px}
.coll-card__rule{height:1px;margin:16px 18px 0;border:0;background:var(--cc-rule)}
.coll-card__actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 18px 20px}
.coll-card__inc{display:flex;align-items:flex-start;gap:5px;min-width:0;font-size:9px;font-weight:800;letter-spacing:.12em;line-height:1.35;color:var(--cc-inc)}
.coll-card__inc .icon{width:11px;height:11px;margin-top:1px}
.coll-card__btn{flex:none;display:flex;align-items:center;gap:8px;padding:13px 18px;border:0;border-radius:999px;
  background:var(--cc-btn);color:#FFF;font:inherit;font-size:10px;font-weight:800;letter-spacing:.1em;line-height:1;
  white-space:nowrap;cursor:pointer;transition:transform .15s ease}
.coll-card__btn .icon{width:11px;height:11px}
.coll-card__btn:active{transform:scale(.98)}
.coll-card__btn:focus-visible{outline:2px solid var(--cc-ink);outline-offset:3px}
@media (hover:hover) and (pointer:fine){.coll-card__btn:hover{transform:translateY(-1px)}}
.coll-card .icon{flex:none}
.coll-card .icon--fill{fill:currentColor}

/* Планшет 560–1023.98px: телефонная композиция не растягивается */
@media (min-width:560px) and (max-width:1023.98px){
  .coll-card{max-width:520px;margin-inline:auto}
}

/* Десктоп 1024px+ */
@media (min-width:1024px){
  .coll-card{width:100%;max-width:calc(1200px + var(--pad-x,40px) * 2);margin:28px auto 0;padding-inline:var(--pad-x,40px)}
  .coll-card--glow{margin-top:56px}
  .coll-card__inner{display:grid;grid-template-columns:620px minmax(0,1fr);align-items:center;border-radius:32px;
    box-shadow:0 18px 40px rgba(90,30,20,.14)}
  .coll-card__inner::before{content:"";position:absolute;left:0;right:0;top:0;height:68%;
    background:var(--cc-bg) center 12%/cover;
    -webkit-mask-image:linear-gradient(180deg,#000 80%,transparent 100%);
            mask-image:linear-gradient(180deg,#000 80%,transparent 100%)}
  .coll-card__inner::after{content:"";position:absolute;inset:0;
    background:linear-gradient(90deg,rgba(251,248,243,0) 34%,rgba(251,248,243,.92) 54%,#FBF8F3 66%)}
  .coll-card__scene{grid-column:1;grid-row:1 / span 2;z-index:1;background:none}
  .coll-card__scene::before{display:none}
  .coll-card__scene>img{width:100%;margin-left:0}
  .coll-card__head{position:static;width:auto;z-index:1;padding:56px 56px 0 12px}
  .coll-card__eyebrow{font-size:13px;letter-spacing:.22em}
  .coll-card__title{margin-top:18px;font-size:62px;letter-spacing:-.02em;line-height:.92}
  .coll-card--protein .coll-card__title{font-size:58px}
  .coll-card__desc{margin-top:20px;max-width:440px;font-size:17px;line-height:1.55}
  .coll-card__foot{z-index:1;padding:0 56px 56px 12px}
  .coll-card__note{margin:12px 0 0;text-align:left;font-size:13px}
  .coll-card__pills,.coll-card--protein .coll-card__pills{display:flex;flex-wrap:wrap;gap:10px;margin:26px 0 0}
  .coll-card__pills li,.coll-card--protein .coll-card__pills li{height:auto;gap:8px;padding:12px 18px;font-size:12px;letter-spacing:.04em}
  .coll-card__pills .icon{width:17px;height:17px}
  .coll-card__rule{margin:30px 0 0}
  .coll-card__actions{flex-direction:row-reverse;justify-content:flex-end;gap:20px;margin:26px 0 0}
  .coll-card__inc{align-items:center;font-size:12px;line-height:1.3}
  .coll-card__inc br{display:none}
  .coll-card__inc .icon{width:14px;height:14px;margin-top:0}
  .coll-card__btn{gap:10px;padding:18px 28px;font-size:14px}
  .coll-card__btn .icon{width:14px;height:14px}
}

/* ═══ Узкий десктоп 1024–1279.98px ═══
   На 1024 правой колонке при треке 620px остаётся 256px: плашки встают
   столбиком, а кнопка с flex:none давит строку «included» в ноль.
   Здесь колонки в долях, плашки — такой же сеткой с фиксированной высотой,
   низ карточки в столбик. Высота ряда плашек 114px у всех пяти. */
@media (min-width:1024px) and (max-width:1279.98px){
  .coll-card__inner{grid-template-columns:minmax(0,52%) minmax(0,48%)}
  .coll-card__head{padding:44px 40px 0 12px}
  .coll-card__foot{padding:0 40px 44px 12px}
  .coll-card__title{font-size:46px}
  .coll-card--protein .coll-card__title{font-size:42px}
  .coll-card__desc{margin-top:16px;font-size:16px}
  .coll-card__note{font-size:12px}
  .coll-card__pills,.coll-card--protein .coll-card__pills{
    display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:22px}
  .coll-card--protein .coll-card__pills{grid-template-columns:repeat(3,minmax(0,1fr))}
  .coll-card__pills li,.coll-card--protein .coll-card__pills li{
    height:52px;padding:0 14px;justify-content:center;text-align:center;font-size:12px;letter-spacing:.03em;line-height:1.25}
  .coll-card--protein .coll-card__pills li{font-size:11px;padding:0 10px}
  .coll-card__rule{margin-top:24px}
  .coll-card__actions{flex-direction:column-reverse;align-items:flex-start;gap:14px;margin-top:22px}
  .coll-card__btn{padding:16px 24px}
}

/* ═════════════════════════════════════════════════════════
   ТЗ №5 — блок 11 «NATURALLY GOOD» и блок 12 «THE COMPLETE SET»
   Числа: макеты YES YOU CAN - Landing.dc.html (390)
          и YES YOU CAN - Landing Desktop.dc.html (1440)
   ═══════════════════════════════════════════════════════ */

/* ── Блок 11 «Naturally good»: телефон ───────────────────── */
.nat{margin:36px var(--pad-x) 0}
.nat__card{background:var(--c-card);border-radius:var(--r-card);padding:22px 20px}
.nat__eyebrow{color:var(--c-ink-70)}
.nat__title{margin-top:8px;font-size:var(--fs-h2-nat);font-weight:var(--fw-black);line-height:1.1}

.nat__grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}
.nat__item{
  display:flex;align-items:center;gap:8px;
  padding:10px 12px;border:1px solid var(--c-line);border-radius:var(--r-nat);
  font-size:var(--fs-nat-item);font-weight:var(--fw-bold);line-height:1.3;letter-spacing:.06em;
}
.nat__dot{width:8px;height:8px;border-radius:50%;background:var(--c-leaf);flex:none}

/* ── Блок 11: планшет и десктоп (768+) ───────────────────── */
@media (min-width:768px){
  .nat{
    width:100%;max-width:calc(var(--container) + var(--pad-x) * 2);
    margin:56px auto 0;padding-inline:var(--pad-x);
  }
  .nat__card{
    display:grid;grid-template-columns:1fr 2fr;gap:40px;align-items:center;
    padding:36px 40px;
  }
  .nat__title{margin-top:12px;line-height:1.05}
  .nat__grid{grid-template-columns:repeat(4,1fr);gap:10px;margin-top:0}
  .nat__item{padding:14px 16px;gap:10px}
}

/* ── Плашка свойств уже 150px → сетка 4 в 2 столбца ───────────
   Плашка = ((W − pad-x·2 − 120)·2/3 − 30) / 4 (карточка поля 40·2,
   сетка 1fr/2fr зазор 40, 4 плашки зазор 10·3 между ними).
   При pad-x 32 плашка равна 150px при W = 1129 — подтверждено замером. */
@media (min-width:768px) and (max-width:1128px){
  .nat__grid{grid-template-columns:repeat(2,1fr)}
}

/* ── Блок 12 «The complete set»: телефон ─────────────────── */
.set{margin:40px var(--pad-x) 0}
.set__card{
  display:flex;flex-direction:column;
  background:var(--c-teal-deep);color:var(--c-white);
  border-radius:var(--r-card);padding:22px 20px;
}

.set__body,.set__left,.set__right{display:contents}

.set__eyebrow{color:var(--c-peach)}
.set__title{margin-top:8px;font-size:var(--fs-h2-set);font-weight:var(--fw-black);line-height:1}
.set__head{order:1}

.set__btn{order:6;width:100%;height:50px;font-size:var(--fs-btn-order);margin-top:16px}

/* Заход 6 (§6.1): срок доставки виден и на телефоне — рядом с кнопкой заказа */
.set__ship{
  order:7;margin-top:10px;
  font-size:var(--fs-ship);font-weight:var(--fw-medium);line-height:1.5;
  text-align:center;color:var(--c-on-dark-60);
}

/* ── Блок 12: планшет и десктоп (768+) ───────────────────── */
@media (min-width:768px){
  .set{
    width:100%;max-width:calc(var(--container) + var(--pad-x) * 2);
    margin:56px auto 0;padding-inline:var(--pad-x);
  }
  .set__card{display:block;padding:0;overflow:hidden}
  .set__body{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start;padding:8px 44px 44px}
  .set__left{display:block}
  .set__right{
    display:block;background:var(--c-on-dark-06);border:1px solid var(--c-on-dark-12);
    border-radius:var(--r-price);padding:28px;
  }

  .set__title{margin-top:10px}
  
  

  

  .set__btn{height:60px;margin-top:22px}

  .set__ship{
    display:block;margin-top:12px;
    font-size:var(--fs-ship);font-weight:var(--fw-medium);line-height:1.5;
    text-align:center;color:var(--c-on-dark-60);
  }
}

/* ── Блок 12: колонка цены уже 300px → один столбец ────────────
   Колонка = ((W − pad-x·2) − 44·2 − 48) / 2 (поля 44·2, зазор 48).
   При pad-x 32 колонка равна 300px при W = 800 — подтверждено замером.
   Состав остаётся сверху, карточка цены — под ним: так уже идёт
   разметка, менять порядок не нужно. */
@media (min-width:768px) and (max-width:799px){
  .set__body{grid-template-columns:1fr}
}

/* ═══════════════════════════════════════════════════════
   ТЗ №6 — блок 14 «Отзывы» и блок 15 «Вопросы и ответы»
   Числа: макеты YES YOU CAN - Landing.dc.html (390)
          и YES YOU CAN - Landing Desktop.dc.html (1440)
   ═════════════════════════════════════════════════════ */

/* ── Блок 14 «Отзывы»: телефон ───────────────────
   У секции нет боковых полей: лента идёт от края до края,
   поля есть только у шапки блока. Карточка 250 при полях 20
   оставляет следующую карточку выглядывать справа — так видно,
   что ленту можно листать. */
.rev{margin-top:40px}
.rev__head{padding-inline:var(--pad-x)}
.rev__title{margin-top:8px;font-size:var(--fs-h2-sm);font-weight:var(--fw-black);line-height:1.05}
.rev__br{display:none}          /* перенос в две строки нужен только на десктопе */
.rev__nav{display:none}         /* стрелки — только на десктопе */

/* will-change выносит ленту в отдельный слой. Так плавнее листается пальцем,
   и растеризация остальной страницы перестаёт зависеть от появления бокового
   скролла: всё, что выше блока, совпадает с прежним видом попиксельно */
.rev__rail{
  gap:12px;margin-top:16px;padding:6px var(--pad-x) 20px;
  scroll-padding-left:var(--pad-x);will-change:transform;
}

.rev__card{
  display:flex;flex-direction:column;width:250px;
  border-radius:var(--r-review);      /* на 768+ токен сам становится 22 */
  overflow:hidden;
  background:var(--c-white);box-shadow:var(--sh-card);
}
.rev__img{width:100%;aspect-ratio:4/5;object-fit:cover}
.rev__body{padding:12px 14px 14px}

.rev__meta{display:flex;align-items:center;justify-content:space-between;gap:8px}
.rev__tag{font-size:var(--fs-tag);font-weight:var(--fw-bold);letter-spacing:var(--ls-btn);line-height:1;color:var(--c-pink)}
/* Звёзды рисованые: в Montserrat знака ★ нет. Размер иконки — .85em от этого кегля.
   position:relative нужен подписи для чтения с экрана: без него она позиционируется
   от окна, лента её не обрезает и ширина документа вырастает до длины ленты */
.rev__stars{position:relative;font-size:var(--fs-eyebrow)}
.rev__text{margin-top:8px;font-size:var(--fs-review);font-weight:var(--fw-medium);line-height:1.5;color:var(--c-teal-ink);text-wrap:pretty}
.rev__who{margin-top:10px;font-size:var(--fs-included);font-weight:var(--fw-bold);letter-spacing:var(--ls-sub);line-height:1;color:var(--c-teal);opacity:.6}

/* Подсказка под лентой — только на телефоне */
.rev__swipe{
  display:flex;align-items:center;justify-content:center;gap:8px;
  font-size:var(--fs-eyebrow);font-weight:var(--fw-bold);
  letter-spacing:var(--ls-btn);line-height:1;color:var(--c-ink-55);
}

/* Стрелки ленты. Видны с 768: ниже ленту листают пальцем */
.rev__arrow{
  display:flex;align-items:center;justify-content:center;flex:none;
  width:48px;height:48px;border-radius:var(--r-pill);
  font-size:var(--fs-sub);            /* в макете стрелка 20px на 1440 */
  color:var(--c-teal);
  transition:transform var(--dur-fast) var(--ease),opacity var(--dur-fast) var(--ease);
}
.rev__arrow--prev{border:1.5px solid var(--c-teal)}
.rev__arrow--next{background:var(--c-teal);color:var(--c-white)}
.rev__arrow:disabled{opacity:.35;cursor:default}
.rev__arrow:active{transform:scale(.96)}
.rev__arrow:focus-visible{outline:2px solid var(--c-pink);outline-offset:3px}

/* ── Блок 14: планшет и десктоп (768+) ──────────── */
@media (min-width:768px){

  .rev{margin-top:64px}

  /* Шапка блока — ширина как у остальных экранов */
  .rev__head{
    display:flex;align-items:flex-end;justify-content:space-between;gap:24px;
    width:100%;max-width:calc(var(--container) + var(--pad-x) * 2);
    margin-inline:auto;padding-inline:var(--pad-x);
  }
  .rev__title{margin-top:10px}
  .rev__br{display:inline}
  .rev__nav{display:flex;flex:none;gap:10px}

  /* Лента начинается там же, где содержимое шапки блока.
     Содержимое в проекте шириной var(--container), а поля прибавлены
     к ней (max-width = container + pad-x·2), поэтому левый край текста равен
     (100% − container − pad-x·2) / 2 + pad-x. max(0px, …) держит поле не меньше
     pad-x на узких экранах — иначе ниже 1280 карточки легли бы вплотную к краю. */
  .rev__rail{
    gap:20px;margin-top:28px;
    padding:8px calc(max(0px,(100% - var(--container) - var(--pad-x) * 2) / 2) + var(--pad-x)) 24px;
    scroll-padding-left:calc(max(0px,(100% - var(--container) - var(--pad-x) * 2) / 2) + var(--pad-x));
  }

  .rev__card{width:285px;box-shadow:var(--sh-card-lg)}
  .rev__body{padding:16px 18px 18px}
  .rev__text{margin-top:10px;line-height:1.55}
  .rev__who{margin-top:12px}

  .rev__swipe{display:none}
}

/* ── Блок 15 «Вопросы и ответы»: телефон ──────── */
.faq{margin:40px var(--pad-x) 0}
.faq__title{margin-top:8px;font-size:var(--fs-h2-sm);font-weight:var(--fw-black);line-height:1}
.faq__note{display:none}        /* пояснение есть только на десктопе */
.faq__list{display:flex;flex-direction:column;gap:6px;margin-top:14px}

.faq__item{background:var(--c-card-65);border-radius:var(--r-faq);padding:14px 16px}

/* Вся строка вопроса — область нажатия. Стандартный треугольник убираем:
   display:flex снимает маркер в Chrome и Firefox, list-style и ::-webkit-details-marker — в Safari */
.faq__q{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  font-size:var(--fs-faq-q);font-weight:var(--fw-extrabold);line-height:1.3;
  cursor:pointer;list-style:none;
}
.faq__q::-webkit-details-marker{display:none}
.faq__q:focus-visible{outline:2px solid var(--c-pink);outline-offset:2px}

/* Знак переключается состоянием open — без скрипта */
.faq__sign{flex:none;font-size:var(--fs-faq-sign);font-weight:var(--fw-semibold);line-height:1;color:var(--c-pink)}
.faq__sign::before{content:"+"}
.faq__item[open] .faq__sign::before{content:"−"}   /* U+2212, не дефис */

.faq__a{margin-top:10px;font-size:var(--fs-faq-a);font-weight:var(--fw-medium);line-height:1.55;color:var(--c-teal-soft)}

/* ── Блок 15: планшет и десктоп (768+) ──────────── */
@media (min-width:768px){
  .faq{
    width:100%;max-width:calc(var(--container) + var(--pad-x) * 2);
    margin:56px auto 0;padding-inline:var(--pad-x);
    display:grid;grid-template-columns:1fr 2fr;gap:40px;align-items:start;
  }
  .faq__title{margin-top:10px}
  .faq__note{
    display:block;max-width:300px;margin-top:14px;
    font-size:var(--fs-coll-desc);font-weight:var(--fw-medium);line-height:1.6;
    color:var(--c-teal);opacity:.75;
  }
  .faq__list{gap:8px;margin-top:0}
  .faq__item{padding:18px 22px}
  .faq__q{gap:16px}
  .faq__a{max-width:640px;line-height:1.6}
}

/* Наведение — только там, где есть мышь */
@media (hover:hover) and (pointer:fine){
  .rev__arrow:not(:disabled):hover{transform:translateY(-1px)}
  .faq__q:hover .faq__sign{opacity:.75}
}

/* ═══════════════════════════════════════════════════════
   ТЗ №7 — блок 16 «WANT IT? HAVE IT» и подвал
   Числа: макеты YES YOU CAN - Landing.dc.html (390)
          и YES YOU CAN - Landing Desktop.dc.html (1440)
   ═════════════════════════════════════════════════════ */

/* ── Один тёмный блок из двух тегов ──────────────────────────
   По смыслу это разное — призыв и подвал, — поэтому <section>
   и <footer>. Фон у обоих одинаковый, у секции нет нижнего
   поля, у подвала нет верхнего: стыка не видно и читается как
   единый блок из макета. Разделительная черта — это верхняя
   граница содержимого подвала, поэтому она не уходит в края. */
.final{
  position:relative;overflow:hidden;   /* конфеты торчат за края — обрезаем */
  margin-top:40px;
  padding:40px var(--pad-x) 34px;      /* 34 — расстояние от кнопки до черты */
  background:var(--c-teal);color:var(--c-white);
  text-align:center;
}
/* Текст поверх конфет: позиционированный элемент рисуется выше
   absolute-картинок, которые стоят раньше в разметке */
.final__inner{position:relative}

.final__title{font-size:var(--fs-final);font-weight:var(--fw-black);line-height:.95}

/* Заливка градиентом по буквам — как .grad, но своим набором цветов */
.final__yes{
  margin-top:10px;
  font-size:var(--fs-h3);font-weight:var(--fw-black);line-height:1;
  background:var(--g-final);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}

.final__list{
  margin-top:16px;
  font-size:var(--fs-eyebrow);font-weight:var(--fw-bold);
  letter-spacing:var(--ls-btn);line-height:1;color:var(--c-on-dark-75);
}

.final__price{margin-top:14px;font-size:var(--fs-final-price);font-weight:var(--fw-black);line-height:1}
.final__cur{font-size:var(--fs-price-cur)}
.final__old{
  margin-left:6px;
  font-size:var(--fs-final-old);font-weight:var(--fw-semibold);
  color:var(--c-on-dark-50);
}

/* .btn--primary даёт 52px и кегль 13 → 14; здесь по макету 12 → 14 */
.final__btn{display:flex;width:100%;max-width:320px;margin:18px auto 0;font-size:var(--fs-btn-order)}

/* ── Плавающие конфеты ───────────────────────────────────────
   Декорация: не перехватывает нажатия, текст идёт поверх.
   Верхние две лежат в секции (у неё overflow:hidden и края
   обрезаются), нижние две — в подвале: в макете они отмерены
   от низа всего блока, а низ блока и низ подвала — одно и то же.
   Горизонтально нижние не торчат, обрезать их не нужно. */
.final__candy{position:absolute;pointer-events:none}
.final__candy--m1{left:-10px;top:20px;width:70px;opacity:.9}
.final__candy--m2{right:-8px;top:40px;width:66px;opacity:.9}
.final__candy--d1,.final__candy--d2,.final__candy--d3,.final__candy--d4{display:none}

/* ── Подвал ──────────────────────────────────────────────── */
.foot{
  position:relative;                   /* от него отмерены нижние конфеты */
  padding:0 var(--pad-x) 110px;        /* большой нижний отступ — так в макете */
  background:var(--c-teal);color:var(--c-white);
  text-align:center;
}
.foot__inner{
  position:relative;                   /* содержимое поверх конфет */
  display:flex;flex-direction:column;align-items:center;gap:14px;
  padding-top:22px;border-top:1px solid var(--c-on-dark-18);
}

/* На телефоне логотип и адрес стоят в разных местах колонки,
   а не рядом: обёртка распадается, порядок задаём order.
   Разметка при этом остаётся в осмысленном порядке чтения. */
.foot__brand{display:contents}
.foot__logo{order:1;height:44px;width:auto}
.foot__soc{order:2}
.foot__legal{order:3}
.foot__addr{order:4}

.foot__soc{display:flex;gap:14px}
.foot__soc a{
  display:flex;align-items:center;justify-content:center;
  width:40px;height:40px;border-radius:50%;
  border:1px solid var(--c-on-dark-30);color:var(--c-white);
}
.foot__soc .icon{width:18px;height:18px}
.foot__soc a:focus-visible{outline:2px solid var(--c-pink);outline-offset:3px}

.foot__legal{
  display:flex;gap:18px;
  font-size:var(--fs-included);font-weight:var(--fw-semibold);
  letter-spacing:var(--ls-wider);line-height:1;color:var(--c-on-dark-85);
}
.foot__legal a{text-decoration:underline;text-underline-offset:3px}
.foot__legal a:focus-visible{outline:2px solid var(--c-pink);outline-offset:3px}

.foot__addr{
  font-size:var(--fs-legal);font-weight:var(--fw-medium);
  line-height:1.7;letter-spacing:.04em;color:var(--c-on-dark-60);
}
.foot__addr a:focus-visible{outline:2px solid var(--c-pink);outline-offset:2px}
.foot__dot{display:none}              /* точка перед почтой — только на десктопе */

.foot__copy{
  margin-top:14px;                    /* тот же промежуток, что и в колонке выше */
  font-size:var(--fs-tag);font-weight:var(--fw-medium);
  letter-spacing:var(--ls-wide);line-height:1;color:var(--c-on-dark-40);
}

/* ── Планшет и десктоп (768+) ────────────────────────────── */
@media (min-width:768px){

  .final{margin-top:64px;padding:64px var(--pad-x) 64px}
  /* Фон во всю ширину экрана, содержимое — обычной ширины сайта.
     Поля уже заданы секцией, поэтому здесь чистые 1200 */
  .final__inner{max-width:var(--container);margin-inline:auto}

  .final__br{display:none}            /* заголовок идёт одной строкой */
  .final__yes{margin-top:14px}
  .final__list{margin-top:22px;letter-spacing:var(--ls-final)}
  .final__price{margin-top:18px}
  .final__old{margin-left:10px}
  .final__btn{width:360px;max-width:none;height:60px;margin-top:26px}

  /* Поля и отбивки блока десктопные уже с 768 — раскладка десктопная.
     Внутреннее устройство подвала переключается ниже, по замеру */
  .foot{padding-bottom:40px}
  .foot__inner{max-width:var(--container);margin-inline:auto;padding-top:32px}
}

/* ── Подвал в три ячейки: с 958px ─────────────────────────────
   Сетка 1fr auto 1fr не даёт ячейкам налезть друг на друга, но
   при узкой ширине левая ячейка ужимается до минимума и адрес
   рассыпается: при 768 он занимает 8 строк шириной 115.8px при
   минимально возможной 113.6px — то есть ячейка уже упёрлась и
   три ячейки не помещаются. Замер по шагу 2px: адрес встаёт в те
   же 4 строки, что и на эталонном 1440, начиная с 958 (при 956 —
   пять строк). Ниже 958 подвал идёт колонкой по центру, как на
   телефоне. */
@media (min-width:958px){
  .foot{text-align:left}
  .foot__inner{
    display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:40px;
  }
  /* Логотип и адрес снова рядом, порядок ячеек — обычный.
     order действует и в сетке, поэтому его сбрасываем */
  .foot__brand{display:flex;align-items:center;gap:22px}
  .foot__logo{height:52px}
  .foot__legal{order:0;gap:24px}
  .foot__soc{order:0;justify-content:flex-end;gap:12px}
  .foot__soc a{width:44px;height:44px}
  .foot__soc .icon{width:20px;height:20px}

  .foot__br{display:none}             /* почта уходит в конец второй строки */
  .foot__dot{display:inline}
  .foot__copy{margin-top:22px;text-align:center}
}

/* ── Десктоп (1200+): четыре конфеты ──────────────────────────
   Замер: правый край левой конфеты равен 6% ширины + 120, левый
   край заголовка — (W − 9.99 · кегль) / 2, а кегль = 22.86 +
   2.8571vw. Они сходятся при W = 788: на планшете четыре конфеты
   наезжают на заголовок (при 768 перекрытие 5.8px, у правой 3.5px).
   Поэтому до 1200 показываем две «телефонные», а с 1200 запас
   до заголовка уже 122px. Нижние две ни при какой ширине не
   доходят ни до кнопки, ни до черты подвала. */
@media (min-width:1200px){
  .final__candy--m1,.final__candy--m2{display:none}
  .final__candy--d1{display:block;left:6%;top:40px;width:120px;opacity:.9}
  .final__candy--d2{display:block;right:7%;top:70px;width:110px;opacity:.9}
  .final__candy--d3{display:block;left:14%;bottom:200px;width:90px;opacity:.7}
  .final__candy--d4{display:block;right:15%;bottom:220px;width:96px;opacity:.7}
}

/* Наведение — только там, где есть мышь */
@media (hover:hover) and (pointer:fine){
  .foot__legal a:hover{color:var(--c-white)}
  .foot__soc a:hover{border-color:var(--c-white)}
}

/* ═════════════════════════════════════════════════════════
   ТЗ №8 — окно «Состав коллекции»
   Числа: макеты YES YOU CAN - Landing.dc.html (390, INFO SHEET)
          и YES YOU CAN - Landing Desktop.dc.html (1440, INFO DIALOG)
   Размытия под окном нет: во встроенных браузерах Instagram и
   TikTok оно роняет прокрутку, а это основной источник трафика.
   Вместо него плотное затемнение var(--c-scrim) — на глаз
   разница минимальна, риска никакого.
   ═══════════════════════════════════════════════════════ */

/* ── Страница под окном стоит ─────────────────────────────────
   overflow:hidden держит колесо и клавиши, но встроенный WebKit
   всё равно тянет страницу пальцем — поэтому body ещё и
   фиксируем. Сдвиг наверх и возврат прокрутки задаёт app.js. */
.is-locked{overflow:hidden}
.is-locked body{position:fixed;left:0;right:0;width:100%}

/* ── Затемнение ──────────────────────────────────────────── */
.info{
  position:fixed;inset:0;z-index:100;  /* шапка липкая, у неё 50 */
  display:flex;align-items:flex-end;   /* телефон: шторка снизу */
  background:var(--c-scrim);
}

/* ── Само окно ───────────────────────────────────────────── */
/* Высота — процентом от затемнения, а оно прижато к экрану.
   Единицы vh во встроенных браузерах считаются по несвёрнутой
   панели, и окно уехало бы под низ экрана */
.info__sheet{
  position:relative;
  width:100%;max-height:86%;
  overflow-y:auto;overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  padding:22px 22px 44px;
  border-radius:var(--r-sheet) var(--r-sheet) 0 0;
  background:var(--c-sheet);
  animation:fadeUp .35s var(--ease) both;
}
.info__sheet:focus{outline:none}       /* фокус ставим программно, рамка тут лишняя */

/* На телефоне всё идёт одной колонкой, поэтому обёртки колонок
   не создают своих блоков, а порядок правим через order */
.info__body{display:flex;flex-direction:column}
.info__side,.info__facts{display:contents}

/* ── Крестик ─────────────────────────────────────────────── */
/* Отрицательный нижний отступ убирает его из потока: рубрика и
   название встают на ту же высоту, что и в макете */
.info__close{
  position:sticky;top:0;z-index:2;
  align-self:flex-end;margin-bottom:-32px;
  display:flex;align-items:center;justify-content:center;
  width:32px;height:32px;border-radius:50%;
  background:var(--c-ink-10);color:var(--c-teal);
  font-size:var(--fs-modal-close);font-weight:var(--fw-semibold);line-height:1;
}
.info__close:focus-visible{outline:2px solid var(--c-pink);outline-offset:3px}

/* ── Название и пачка ────────────────────────────────────── */
.info__eyebrow{
  font-size:var(--fs-included);font-weight:var(--fw-bold);
  letter-spacing:var(--ls-eyebrow);line-height:1;color:var(--c-pink);
}
.info__title{margin-top:8px;font-size:var(--fs-modal-title);font-weight:var(--fw-black);line-height:1}
.info__sub{
  margin-top:6px;
  font-size:var(--fs-review);font-weight:var(--fw-semibold);
  line-height:1.5;color:var(--c-teal-soft);
}

.info__pack{display:flex;align-items:center;justify-content:center;height:400px;margin-top:14px}
/* width:auto снимает ширину из атрибута — иначе при упоре в
   max-height картинка не сохранила бы пропорции */
.info__pack img{width:auto;max-width:100%;max-height:100%;filter:var(--sh-pack)}

/* На телефоне плашки стоят под аллергенами, на десктопе — под пачкой */
.info__chips{order:1;display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.info__chips li{
  border:1px solid var(--c-ink-30);border-radius:var(--r-pill);
  padding:6px 10px;
  font-size:var(--fs-modal-chip);font-weight:var(--fw-bold);
  letter-spacing:.06em;line-height:1;
}

/* ── Состав, аллергены, активные вещества ────────────────── */
.info__label{
  margin-top:18px;
  font-size:var(--fs-modal-label);font-weight:var(--fw-extrabold);
  letter-spacing:var(--ls-btn);line-height:1;
}
.info__text{
  margin-top:8px;
  font-size:var(--fs-modal-text);font-weight:var(--fw-medium);
  line-height:1.55;color:var(--c-teal-soft);
}
.info__act{font-weight:var(--fw-semibold);line-height:1.6}
.info__serving{
  margin-top:6px;
  font-size:var(--fs-modal-serving);font-weight:var(--fw-semibold);
  line-height:1.4;color:var(--c-ink-65);
}

/* ── Таблица питания ─────────────────────────────────────── */
.info__table{margin-top:8px;border:1px solid var(--c-ink-20);border-radius:var(--r-table);overflow:hidden}
.info__thead,.info__row{display:grid;grid-template-columns:1.4fr 1fr 1fr}
.info__thead>*+*,.info__row>*+*{text-align:right}   /* два правых столбца — по правому краю */
.info__thead{
  padding:9px 12px;
  background:var(--c-teal);color:var(--c-white);
  font-size:var(--fs-modal-th);font-weight:var(--fw-extrabold);
  letter-spacing:.06em;line-height:1;
}
.info__row{
  padding:8px 12px;border-top:1px solid var(--c-ink-12);
  font-size:var(--fs-modal-td);font-weight:var(--fw-semibold);line-height:1.3;
}

/* Знака ≤ в Montserrat нет — рисуем иконкой #i-lte.
   Размер в em, поэтому растёт вместе с текстом; сдвиг вниз
   ставит её на среднюю линию цифр, чтобы не прыгала. */
.info__lte{display:inline-block;vertical-align:-.14em}

/* ── Кнопка «закрыть» — только на телефоне ───────────────── */
.info__btn{order:2;width:100%;height:52px;margin-top:20px;font-size:var(--fs-btn-order)}

/* ── Планшет и десктоп (768+) ────────────────────────────── */
@media (min-width:768px){

  .info{align-items:center;justify-content:center}

  .info__sheet{
    width:920px;max-width:100%;max-height:90%;
    padding:34px 38px 38px;
    border-radius:var(--r-sheet);
    animation-duration:.3s;
  }

  /* Две колонки: слева пачка и плашки, справа состав и таблица */
  .info__body{display:grid;grid-template-columns:360px minmax(0,1fr);column-gap:36px;align-items:start}
  .info__side{display:block;grid-column:1;grid-row:1}
  .info__facts{display:block;grid-column:2;grid-row:1;padding-top:34px}
  .info__facts>:first-child{margin-top:0}

  /* Окно и так на виду — крестик не липкий */
  .info__close{position:absolute;right:20px;top:20px;width:36px;height:36px;margin-bottom:0}

  .info__title{margin-top:10px}
  .info__sub{margin-top:8px}
  .info__pack{height:460px;margin-top:18px}
  .info__chips{margin-top:16px}
  .info__chips li{padding:7px 12px}

  .info__label{margin-top:22px}
  .info__text{line-height:1.6}
  .info__table{margin-top:10px}
  .info__thead{padding:11px 14px}
  .info__row{padding:9px 14px}

  .info__btn{display:none}
}

/* Человек попросил меньше движения — окно появляется без сдвига */
@media (prefers-reduced-motion:reduce){
  .info__sheet{animation:none}
}

/* Наведение — только там, где есть мышь */
@media (hover:hover) and (pointer:fine){
  .info__close:hover{background:var(--c-ink-20)}
}

/* ═════════════════════════════════════════════════════════
   ТЗ №9 — окно заказа и окно «нет в наличии»
   Числа: макеты YES YOU CAN - Landing.dc.html (390, блоки
          ORDER SHEET и MODAL) и YES YOU CAN - Landing
          Desktop.dc.html (1440, блоки ORDER DIALOG и
          SOLD OUT / SUCCESS).
   Устройство — то же, что у окна состава выше: затемнение
   var(--c-scrim) без размытия, на телефоне шторка снизу, на
   десктопе окно по центру, страница под окном стоит на
   классе .is-locked. Крестик, поля и кнопки переиспользуют
   готовые .input, .field-error и .btn из начала файла.
   ═══════════════════════════════════════════════════════ */

/* ── Затемнение ──────────────────────────────────────────── */
.order,.sold{
  position:fixed;inset:0;
  display:flex;align-items:flex-end;   /* телефон: шторка снизу */
  background:var(--c-scrim);
}
.order{z-index:100}                    /* шапка липкая, у неё 50 */
.sold{z-index:110}                     /* PAY меняет заказ на это окно */

/* ── Сами окна ───────────────────────────────────────────── */
/* Высота — процентом от затемнения: единицы vh во встроенных
   браузерах считаются по несвёрнутой панели, и низ окна уехал
   бы за край экрана */
.order__sheet,.sold__sheet{
  position:relative;
  width:100%;max-height:90%;
  overflow-y:auto;overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  padding:22px 22px 44px;
  border-radius:var(--r-sheet) var(--r-sheet) 0 0;
  background:var(--c-sheet);
  animation:fadeUp .35s var(--ease) both;
}
.order__sheet:focus,.sold__sheet:focus{outline:none}   /* фокус ставим программно */

/* Колонка, а не обычный поток: у соседей не слипаются отступы,
   и крестик встаёт по правому краю тем же приёмом, что в окне состава */
.order__form,.sold__form{display:flex;flex-direction:column}

/* ── Крестик ─────────────────────────────────────────────── */
.order__close,.sold__close{
  display:flex;align-items:center;justify-content:center;
  width:32px;height:32px;border-radius:50%;
  background:var(--c-ink-10);color:var(--c-teal);
  font-size:var(--fs-modal-close);font-weight:var(--fw-semibold);line-height:1;
}
/* Липкий и вынут из потока отрицательным отступом: рубрика с
   названием встают на ту же высоту, что и в макете */
.order__close{position:sticky;top:0;z-index:2;align-self:flex-end;margin-bottom:-32px}
.sold__close{position:absolute;right:18px;top:16px;z-index:2}
.order__close:focus-visible,.sold__close:focus-visible{outline:2px solid var(--c-pink);outline-offset:3px}

/* ── Заказ: рубрика, название, строка набора ─────────────── */
.order__eyebrow{
  font-size:var(--fs-included);font-weight:var(--fw-bold);
  letter-spacing:var(--ls-eyebrow);line-height:1;color:var(--c-pink);
}
.order__title{margin-top:8px;font-size:var(--fs-modal-title);font-weight:var(--fw-black);line-height:1}
.order__sub{
  margin-top:8px;
  font-size:var(--fs-order-sub);font-weight:var(--fw-bold);
  letter-spacing:var(--ls-wide);line-height:1;color:var(--c-ink-70);
}

/* ── Плашка с ценой ──────────────────────────────────────── */
.order__price{
  display:flex;align-items:center;justify-content:space-between;
  margin-top:14px;padding:12px 14px;
  background:var(--c-bg-top);border-radius:var(--r-pricebox);
}
.order__price-lbl{font-size:var(--fs-order-price-lbl);font-weight:var(--fw-semibold);line-height:1.4}
.order__price-lbl s{color:var(--c-ink-60)}
.order__price-now{font-size:var(--fs-order-price);font-weight:var(--fw-black);line-height:1.2}
.order__badge{
  flex:none;
  padding:8px 12px;border-radius:var(--r-badge);
  background:var(--c-pink);color:var(--c-white);
  font-size:var(--fs-save-badge);font-weight:var(--fw-black);
  letter-spacing:var(--ls-wide);line-height:1;
}

.order__badge[hidden]{display:none}   /* заход 6: без скидки плашки нет */

/* ── Шаги ────────────────────────────────────────────────── */
.order__step{
  margin-top:20px;
  font-size:var(--fs-order-step);font-weight:var(--fw-extrabold);
  letter-spacing:var(--ls-btn);line-height:1;
}

/* ── Способ доставки ─────────────────────────────────────── */
/* Настоящие радиокнопки: выбор работает стрелками и читается с
   экрана. Сама кнопка не видна — её показывает карточка-подпись.
   Карточки одной высоты: обёртка тянется на всю строку сетки,
   а подпись растягивается внутри неё */
.order__ways{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.order__way{position:relative;display:flex}
.order__radio{position:absolute;left:0;top:0;width:1px;height:1px;margin:0;opacity:0;pointer-events:none}
.order__way-box{
  flex:1;
  padding:12px;
  border:2px solid var(--c-ink-30);border-radius:var(--r-way);
  background:transparent;
  font-size:var(--fs-order-way);font-weight:var(--fw-extrabold);line-height:1.3;
  cursor:pointer;
  transition:border-color var(--dur-fast) var(--ease),background-color var(--dur-fast) var(--ease);
}
.order__way-note{
  display:block;margin-top:6px;
  font-size:var(--fs-order-way-note);font-weight:var(--fw-medium);
  line-height:1.3;color:var(--c-ink-70);
}
.order__radio:checked + .order__way-box{border-color:var(--c-pink);background:var(--c-bg-top)}
.order__radio:focus-visible + .order__way-box{outline:2px solid var(--c-pink);outline-offset:3px}

/* ── Поля ────────────────────────────────────────────────── */
/* Кегль полей берём из .input — там ровно 16px: меньше нельзя,
   iOS увеличивает страницу при вводе (var(--fs-field) даёт 13→14) */
.order__input{height:48px;padding:0 14px;border-color:var(--c-ink-30);border-radius:var(--r-field)}
.order__input--name{margin-top:10px}
.order__input--phone{margin-top:8px}

/* ── Кнопка оплаты и сноска ──────────────────────────────── */
.order__pay{
  width:100%;height:54px;margin-top:16px;
  font-size:var(--fs-order-pay);font-weight:var(--fw-black);
}
.order__note{
  margin-top:10px;text-align:center;
  font-size:var(--fs-order-note);font-weight:var(--fw-medium);
  line-height:1.5;color:var(--c-ink-60);
}

/* ── «Нет в наличии»: общее для обоих состояний ──────────── */
.sold__eyebrow{
  font-size:var(--fs-included);font-weight:var(--fw-bold);
  letter-spacing:var(--ls-eyebrow);line-height:1;color:var(--c-pink);
}
.sold__title{margin-top:10px;font-size:var(--fs-modal-h);font-weight:var(--fw-black);line-height:1}
.sold__lead{
  margin-top:12px;
  font-size:var(--fs-modal-lead);font-weight:var(--fw-medium);
  line-height:1.55;color:var(--c-teal-soft);
}

/* ── Состояние 1 — подписка ──────────────────────────────── */
.sold__input{margin-top:16px;height:50px;padding:0 14px;border-color:var(--c-ink-30);border-radius:var(--r-field)}
.sold__btn{width:100%;height:52px;margin-top:10px;font-size:var(--fs-btn-order)}

/* ── Состояние 2 — успех ─────────────────────────────────── */
.sold__ok{
  display:flex;align-items:center;justify-content:center;
  width:56px;height:56px;border-radius:50%;
  background:var(--g-success);color:var(--c-white);
}
.sold__ok-icon{width:26px;height:26px}
.sold__view--done .sold__title{margin-top:16px}
.sold__back{width:100%;height:52px;margin-top:18px;font-size:var(--fs-btn-order)}

/* ── Планшет и десктоп (768+) ────────────────────────────── */
@media (min-width:768px){

  .order,.sold{align-items:center;justify-content:center}

  .order__sheet,.sold__sheet{
    max-width:100%;max-height:90%;
    padding:32px 34px 36px;
    border-radius:var(--r-sheet);
    animation-duration:.3s;
  }
  .order__sheet{width:520px}
  .sold__sheet{width:480px}

  /* Окно и так на виду — крестик заказа не липкий */
  .order__close{position:absolute;right:20px;top:20px;width:36px;height:36px;margin-bottom:0}

  .order__title{margin-top:10px}
  .order__sub{margin-top:10px}
  .order__price{margin-top:18px;padding:14px 18px}
  .order__price-lbl{line-height:1.5}
  .order__badge{padding:9px 14px}
  .order__step{margin-top:24px}
  .order__ways{gap:10px;margin-top:12px}
  .order__way-box{padding:14px}
  .order__way-note{line-height:1.4}
  .order__input{height:52px;padding:0 16px}
  .order__input--name{margin-top:12px}
  .order__input--phone{margin-top:10px}
  .order__pay{height:58px;margin-top:18px}
  .order__note{margin-top:12px}
}

/* Человек попросил меньше движения — окна появляются без сдвига */
@media (prefers-reduced-motion:reduce){
  .order__sheet,.sold__sheet{animation:none}
}

/* Наведение — только там, где есть мышь */
@media (hover:hover) and (pointer:fine){
  .order__close:hover,.sold__close:hover{background:var(--c-ink-20)}
}

/* ── Второй экран без подложки ───────────────────────────────
   Картинка теперь с прозрачным фоном и ложится прямо на фон
   страницы. Белая карточка под ней больше не нужна — она делала
   блок плоским. Отступы, которые давала карточка, переносим на
   сам блок, чтобы текст не съехал. */
.want__card{padding:24px 0 0}
@media (min-width:768px){
  .want__card{padding:40px 0 0}
}

/* ФИКС ФОНА ENERGY 14.09 — у bg-energy апельсины лежат плотной полосой
   ровно под текстом, у остальных коллекций там мелкие светлые цветы.
   Гасим фон кремовой вуалью справа — так же, как дизайнер сделал
   на десктопе. Слева и снизу фрукты остаются видны. */
.coll-card--energy .coll-card__scene::before{
  background:
    linear-gradient(90deg,
      rgba(251,248,243,0) 30%,
      rgba(251,248,243,.80) 52%,
      rgba(251,248,243,.94) 70%,
      rgba(251,248,243,.97) 100%),
    var(--cc-bg) center 12%/cover;
}

/* ПРАВКИ 14.09 — карточка шире, сцена правее, текст выше.
   Текст поднят на ~30px (полторы-две строки): на узких экранах
   он больше не наезжает на конфеты. Все пять коллекций. */
@media (max-width:559.98px){
  .coll-card{margin-left:12px;margin-right:12px}
  .coll-card__scene>img{width:104%;margin-left:-4%}
  .coll-card__head{top:16px}
}

/* ═══════════════════════════════════════════════════════
   ТЗ 14.09 блок A — блок 12 «The complete set» стал формой заказа
   Картинка с пятью коробками убрана из разметки, статичный
   список заменён шестью строками со степперами по образцу
   .frow газировки: картинка слева, название и описание,
   степпер справа, одна позиция — одна строка. Правила
   .set__media, .set__img, .set__list, .set__qty выше больше
   ни к чему не применяются — оставлены на месте (ТЗ §5).
   ═════════════════════════════════════════════════════ */

/* ── Строки: телефон ─────────────────────────────────────
   Бюджет ширины на 390: содержимое карточки 310 = картинка 36
   + 12 + текст 148 + 12 + степпер 102 (360 — в блоке < 375 ниже). */
.set__rows{order:3;margin-top:16px;border-top:1px solid var(--c-on-dark-15)}
.set__row{display:flex;align-items:center;gap:12px;min-height:64px;padding:10px 0}
.set__row+.set__row{border-top:1px solid var(--c-on-dark-10)}
.set__row-img{flex:none;width:36px;height:44px;object-fit:contain}
/* Набор — в той же ячейке, что и коробки коллекций (36×44, с 768 — 44×56): текст
   всех шести строк начинается с одной линии, описание не прыгает (правка Жени 14.09,
   раунд 2). Файл набора 600×450 вписывается в ячейку целиком (object-fit: contain) */
.set__row-text{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}
.set__row-name{font-size:var(--fs-body-lg);font-weight:var(--fw-bold);line-height:1.25;color:var(--c-on-dark-85)}
.set__row-desc{font-size:var(--fs-body);font-weight:var(--fw-medium);line-height:1.35;color:var(--c-on-dark-60)}
.set__row.is-selected .set__row-name{color:var(--c-white)}

/* ── Степпер: 36 + 2 + 26 + 2 + 36 = 102 px; нажатие 44×44 через ::before ── */
.set__stepper{flex:none;display:flex;align-items:center;gap:2px}
.set__step{
  position:relative;width:36px;height:36px;border-radius:var(--r-pill);
  display:flex;align-items:center;justify-content:center;
  background:var(--c-on-dark-12);color:var(--c-white);
  font-size:18px;font-weight:var(--fw-semibold);line-height:1;
  transition:transform var(--dur-fast) var(--ease),background-color var(--dur-fast) var(--ease),opacity var(--dur-fast) var(--ease);
}
.set__step::before{content:"";position:absolute;inset:-4px}
.set__step:active{transform:scale(.92)}
.set__step:disabled{opacity:.35;cursor:default}
.set__step:focus-visible{outline:2px solid var(--c-pink);outline-offset:2px}
.set__count{
  min-width:26px;height:26px;padding:0 5px;border-radius:var(--r-pill);
  font-size:14px;font-weight:var(--fw-extrabold);line-height:26px;text-align:center;
  font-variant-numeric:tabular-nums;color:var(--c-on-dark-60);
  transition:background-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease);
}
/* Выбранная позиция: число на розовой плашке, название ярче */
.set__row.is-selected .set__count{background:var(--c-pink);color:var(--c-white)}

/* ── Итог, кнопка и тост — ТЗ 14.09, раунд 2 (правки после приёмки, блоки A–C) ──
   Над ценой — подпись минимума. Цена — одной строкой по образцу .total газировки:
   слева TOTAL и число коробок, справа зачёркнутая старая, чип −20% и итог.
   Кегли газировки: старая 14 px, итог 18 px. Если места нет (на 800–900 px
   карточка цены — узкая правая колонка), правая часть целиком уходит строкой
   ниже, а не вылезает за край. На телефонах от 360 — одна строка до 30 коробок. */
/* Заход 6: подпись минимума (.set__min) убрана — на её месте был оффер .set__offer; с захода 13 он в шапке блока.
   Заход 14: линию между списком и итогом, которую давала рамка оффера, держит сам итог (на телефоне) */
.set__total{
  order:5;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;
  column-gap:12px;row-gap:6px;margin-top:16px;padding-top:14px;border-top:1px solid var(--c-on-dark-15);
}
.set__total-label{font-size:12px;font-weight:var(--fw-extrabold);line-height:1.2;letter-spacing:.14em;text-transform:uppercase;color:var(--c-white)}
.set__total-boxes{display:block;margin-top:2px;font-size:12px;font-weight:var(--fw-semibold);letter-spacing:normal;text-transform:none;color:var(--c-on-dark-60)}
.set__total-right{display:flex;align-items:baseline;gap:8px;margin-left:auto;white-space:nowrap}
.set__total-was{font-size:14px;font-weight:var(--fw-semibold);line-height:1.2;color:var(--c-on-dark-60)}
.set__total-chip{padding:5px 10px;border-radius:8px;background:var(--c-pink);color:var(--c-white);font-size:12px;font-weight:var(--fw-extrabold);line-height:1;letter-spacing:.04em}
.set__total-now{font-size:18px;font-weight:var(--fw-bold);line-height:1.2;color:var(--c-white)}

/* Заход 15 (22.10): минимум 5 коробок — кнопка при 1–4 приглушена, но кликабельна
   (тап показывает тост); цвета — переменные :root */
.set__btn.is-off{opacity:.55;cursor:not-allowed}
.set__toast{position:fixed;left:50%;top:calc(72px + env(safe-area-inset-top,0px));z-index:60;
  max-width:calc(100% - 32px);padding:10px 14px;border-radius:10px;
  background:var(--c-white);color:var(--c-teal-deep);font-size:14px;font-weight:var(--fw-bold);line-height:1.35;text-align:center;
  box-shadow:0 8px 24px rgba(0,0,0,.25);transform:translate(-50%,0);opacity:0;pointer-events:none}
.set__toast.is-on{opacity:1;transition:opacity .2s ease}
.set__toast[hidden]{display:none}
@media (prefers-reduced-motion:reduce){.set__toast.is-on{transition:none}}
.set__total [hidden]{display:none}
/* Заход 14: цена за коробку и доставка по факту заказа. При пустой корзине текста нет,
   но строка держит высоту (min-height) — блок не прыгает при первом клике */
.set__deliv{flex:0 0 100%;margin-top:2px;min-height:1.35em;font-size:12px;font-weight:var(--fw-semibold);line-height:1.35;color:var(--c-on-dark-70)}

@media (hover:hover) and (pointer:fine){
  .set__step:not(:disabled):hover{background:var(--c-on-dark-20)}
}

/* ── Узкие телефоны (< 375): промежутки 8, кнопки 34 ──
   На 360 под текст всех строк остаётся 132 px: описание набора — в две строки,
   «g» не висит одна (неразрывные пробелы). Нажатие по-прежнему 44×44 */
@media (max-width:374.98px){
  .set__row{gap:8px}
  .set__step{width:34px;height:34px}
  .set__step::before{inset:-5px}
  .set__count{min-width:24px}
  /* строка цены на 360: зазоры ужаты — одна строка до 30 коробок (AED 1493 / 1194), запас ≥ 5 px */
  .set__total{column-gap:8px}
  .set__total-label{letter-spacing:.08em}
  .set__total-right{gap:6px}
  .set__total-chip{padding:5px 7px;letter-spacing:0}
}

/* ── Планшет и десктоп (768+) ── */
@media (min-width:768px){
  .set__body{padding-top:44px}          /* поле 8 px было рассчитано под картинку над ним */
  .set__rows{margin-top:20px}
  .set__row{min-height:76px;gap:16px}
  .set__row-img{width:44px;height:56px}
  .set__offer{margin-top:10px}   /* заход 13: оффер в шапке блока, под WHAT YOU GET — отступ как был у заголовка */
  .set__total{margin-top:0;padding-top:0;border-top:0}   /* заход 13: итог — первый в карточке цены, сверху её поле 28; линия там не нужна */
}

/* ═══ Заход 6 (ТЗ 16.09, блок R §2.3), текст — заход 11: оффер «Any 5 boxes — save 20% + free delivery» ═══
   Один компонент на первом экране и в блоке заказа: заголовок, старая и новая
   цена, строка «за коробку · доставка». 5 × 45 = 225, −20% = 180 — как 4 коробки,
   пятая бесплатно. Заход 12: на первом экране оффер — подпись под первой кнопкой,
   заголовок без «+ free delivery» (доставка — строкой ниже), цена мельче; в блоке
   заказа цена прежняя (.set__offer ниже). На телефоне — две колонки
   (цены справа столбиком), в карточке цены на 768+ — три строки подряд. */
.offer{
  display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:12px;row-gap:4px;
  padding:12px 14px;border-radius:12px;background:var(--c-teal);color:var(--c-white);
}
.offer__title{grid-column:1;grid-row:1;font-size:14px;font-weight:var(--fw-extrabold);line-height:1.2}
.offer__nb{white-space:nowrap}
.offer__price{grid-column:2;grid-row:1 / span 2;display:flex;flex-direction:column;align-items:flex-end;white-space:nowrap}
.offer__was{font-size:11.5px;font-weight:var(--fw-semibold);line-height:1.2;color:var(--c-on-dark-70)}
.offer__now{margin-top:2px;font-size:18px;font-weight:var(--fw-black);line-height:1}
.offer__note{grid-column:1;grid-row:2;font-size:12.5px;font-weight:var(--fw-semibold);line-height:1.35;color:var(--c-on-dark-85)}

/* первый экран: подпись под первой кнопкой (заход 12), отступы даёт gap в .hero__actions */
.hero__offer{margin:0}

/* блок заказа (заход 13): в шапке под WHAT YOU GET, на месте заголовка; на тёмной карточке —
   без своей подложки. Линию между оффером и списком даёт .set__rows (border-top) */
.set__offer{margin-top:8px;padding:0;border-top:0;border-radius:0;background:none}
/* Заход 12: мельче стал только оффер первого экрана. В блоке заказа цена остаётся прежней */
.set__offer .offer__was{font-size:12px}
.set__offer .offer__now{font-size:24px}

/* финальный блок: тот же оффер строкой */
.final__offer{margin-top:10px;font-size:15px;font-weight:var(--fw-extrabold);line-height:1.3;color:var(--c-peach)}

@media (min-width:768px){
  .offer{column-gap:20px;padding:14px 20px;border-radius:14px}
  .offer__title{font-size:20px}
  .offer__was{font-size:13px}
  .offer__now{font-size:24px}
  .offer__note{font-size:13px}
  .set__offer{grid-template-columns:minmax(0,1fr);padding:0;border-top:0;border-radius:0}
  .set__offer .offer__price{grid-column:1;grid-row:2;flex-direction:row;align-items:baseline;gap:12px}
  .set__offer .offer__note{grid-row:3}
  .set__offer .offer__was{font-size:14px}
  .set__offer .offer__now{font-size:32px}
  .final__offer{margin-top:14px;font-size:20px}
}
/* Заход 12: на 846–959 первый экран в две колонки, левая всего 372–430 px — заголовок
   оффера кеглем 20 шёл в две строки. Кегль 17 и поля 14 / зазор 12 держат его в одну */
@media (min-width:846px) and (max-width:959.98px){
  .hero__offer{column-gap:12px;padding-inline:14px}
  .hero__offer .offer__title{font-size:17px}
}

/* ═══ Заход 11 (ТЗ 17.09, §2), заход 13: живая подсказка при доборе ═══
   Одна строка на красной полоске между итогом и кнопкой. Текст ставит js/app.js (setHint)
   во внутренний .set__hint-text. Полоска стоит во всех состояниях, с нулевой коробки:
   при первом клике высота блока не меняется.
   Рамка заходит в поля карточки (по 16 px, до края 4 px). Под текст остаётся ширина окна
   минус 60: 300 px на 360, 330 на 390, 370 на 430 — замер. Самый длинный текст (четыре
   коробки, 800 и −0,01em) при кегле 13 — 335 px, поэтому кегль считается от ширины экрана:
   (100vw − 60) / 26,2 — 11,4 px на 360, 12,6 на 390, потолок 13 с 405 px и на 768+.
   Уже 360 текст идёт в две строки, место под них занято всегда.
   Цвета: белый на фирменном розовом — 4,37 : 1, ниже AA (4,5) для мелкого текста, поэтому
   фон полоски темнее на 8 %: белый 5,02 : 1, полоска к фону карточки 3,04 : 1. */
.set__hint{
  order:5;display:flex;align-items:center;justify-content:center;
  margin:12px -16px 0;padding:5px 6px;border-radius:8px;
  background:var(--c-pink);background:color-mix(in srgb,var(--c-pink),black 8%);
  font-size:clamp(11px, calc((100vw - 60px) / 26.2), 13px);font-weight:var(--fw-semibold);line-height:16px;
  text-align:center;white-space:nowrap;color:var(--c-white);
}
.set__hint-arrow{display:inline-block;width:1.1em;height:1.1em;vertical-align:-.2em}   /* svg в сбросе — block */
/* четыре коробки: 4 и 5 стоят одинаково — строка жирнее остальных; −0,01em держит её в 340 px на 360 */
.set__hint.is-next{font-weight:var(--fw-extrabold);letter-spacing:-.01em}
/* уже 360 кегль упёрся бы в минимум 11 и строка всё равно не влезает — там две строки */
@media (max-width:359.98px){
  .set__hint{min-height:42px;white-space:normal}
  .set__hint-text{text-wrap:balance}
}

@media (min-width:768px){
  .set__hint{margin:14px -10px 0;padding:6px 10px;font-size:13px;line-height:18px;white-space:normal}
  .set__hint-text{text-wrap:balance}
}
/* 800–1119: карточка цены — узкая правая колонка (235–394 px), длинные строки
   подсказки идут в две. Место под две строки занято на всех ступенях, текст — по центру */
@media (min-width:800px) and (max-width:1119.98px){
  .set__hint{min-height:48px}
}

/* ==== ТЗ 14.09, заход 2 ====
   thanks.html и privacy / cookies / delivery.html: подвал прижат к низу экрана (§2.3);
   строка «Privacy Policy · Cookie Policy · Delivery & Returns» в подвале (§4.7);
   текст документов (§4.2). Цвета и кегли — токены сайта, новых нет. ==== */
/* обёртки нет — колонкой становится body (у него уже min-height:100dvh) */
html[data-yyt-page="thanks"] body,html[data-yyt-page="legal"] body{display:flex;flex-direction:column}
html[data-yyt-page="thanks"] body>main,html[data-yyt-page="legal"] body>main{flex:1 0 auto}
.foot__policies{position:relative;margin-top:14px;font-size:max(11px,var(--fs-legal));font-weight:var(--fw-semibold);line-height:1.5;letter-spacing:.04em;color:var(--c-on-dark-85);text-align:center}
.foot__policies a{text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.foot__policies a:focus-visible{outline:2px solid var(--c-pink);outline-offset:3px}
@media (hover:hover) and (pointer:fine){.foot__policies a:hover{color:var(--c-white)}}
.legal{margin-bottom:40px}
@media (min-width:768px){.legal{margin-bottom:56px}}
.legal__card{max-width:calc(680px + var(--pad-x) * 2);margin-inline:auto}
/* обычный текст сайта 11–13 px; для длинного документа нужен читаемый кегль (§4.2) — не меньше 14 px */
.legal .legal__date{margin-top:8px;font-size:13px;line-height:1.5;color:var(--c-teal-soft)}
.legal .want__sub{margin-top:24px}
.legal p,.legal ul{margin-top:10px;font-size:max(14px,var(--fs-body-lg));line-height:1.6;color:var(--c-teal-soft)}
.legal .want__sub+p,.legal .want__sub+ul{margin-top:6px}
.legal ul{padding-left:1.2em;list-style:disc}
.legal li::marker{color:var(--c-leaf)}
.legal li+li{margin-top:4px}
.legal a{text-decoration:underline;text-underline-offset:3px}
