/* SOLORO LAB · «Северная наука» — вариант 3.
   Принцип: журнал лаборатории и атлас. Кремовая бумага, лесной зелёный, облепиховая точка как единственный яркий цвет.
   Cormorant Garamond — заголовки (продолжение фразы курсивом), Manrope — текст, IBM Plex Mono — номера формул и проценты. */

:root {
  --bg: #F3EEE4; --surface: #FBF8F1; --text: #1D2A22; --muted: #6F695F; --accent: #E0782A; --accent-ink: #A44E10;
  --forest: #1F3B2C; --forest-deep: #14281E; --moss: #5E7259; --cream: #EFE6D3; --stone: #D9CFBD; --warm-grey: #A69F93;
  --berry: #9B2D3A; --frost: #E8EDEA; --line: #E3DBCC; --line-strong: #CFC4B0; --on-forest: #F3EEE4; --on-forest-muted: rgba(243, 238, 228, .68);
  --success: #3F6B4E; --danger: #B3412F; --winter: #6F8FA6;
  --serif: 'Cormorant Garamond', 'Cormorant', Georgia, 'Times New Roman', serif;
  --sans: 'Manrope', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --mono: 'IBM Plex Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace;
  --gut: 40px; --max: 1440px; --hdr: 76px; --ease: cubic-bezier(.2, .7, .2, 1);
}
@media (max-width: 1099px) { :root { --gut: 28px; --hdr: 64px; } }
@media (max-width: 759px) { :root { --gut: 16px; --hdr: 58px; } }

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { margin: 0; background: var(--bg); color: var(--text); font: 400 16px/1.6 var(--sans); -webkit-font-smoothing: antialiased; overflow-x: hidden; }
body.lock { overflow: hidden; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; background: none; border: 0; padding: 0; }
h1, h2, h3, h4 { margin: 0; font-weight: 400; }
p, ul, ol, figure, dl, dd { margin: 0; }
ul, ol { padding: 0; list-style: none; }
[hidden] { display: none !important; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; border-radius: 1px; }
::selection { background: var(--accent); color: var(--forest-deep); }
[id] { scroll-margin-top: calc(var(--hdr) + 24px); }
main { display: block; min-height: 50vh; outline: none; }

.wrap { width: 100%; max-width: var(--max); margin: 0 auto; padding: 0 var(--gut); }
.vh { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; left: 12px; top: -60px; z-index: 300; background: var(--forest-deep); color: var(--on-forest); padding: 10px 14px; }
.skip:focus { top: 12px; }

/* ---------- типографика ---------- */
.mono, .code { font-family: var(--mono); font-size: 12px; letter-spacing: .02em; line-height: 1.4; font-feature-settings: 'zero' 0; }
.code { color: var(--forest); font-weight: 500; white-space: nowrap; }
.d-xl, .d-l, .d-m, .d-s { font-family: var(--serif); font-weight: 400; letter-spacing: -.012em; }
.d-xl { font-size: clamp(50px, 8.4vw, 136px); line-height: .93; }
.d-l { font-size: clamp(38px, 5vw, 76px); line-height: 1; }
.d-m { font-size: clamp(30px, 3.2vw, 48px); line-height: 1.04; }
.d-s { font-size: clamp(24px, 2.1vw, 32px); line-height: 1.1; }
.d-xl em, .d-l em, .d-m em, .d-s em, .sh__t em { font-style: italic; color: var(--moss); }
.on-forest .d-xl em, .on-forest .d-l em, .on-forest .d-m em, .on-forest .sh__t em { color: #C9D3BE; }
.lead { font-size: clamp(17px, 1.35vw, 20px); line-height: 1.55; color: var(--text); max-width: 34em; }
.muted { color: var(--muted); }
.small { font-size: 13px; line-height: 1.5; }
.ulink { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; text-decoration-color: var(--line-strong); transition: text-decoration-color .2s; }
.ulink:hover { text-decoration-color: var(--accent); }
.prose p + p { margin-top: 1em; }
.sep { color: var(--warm-grey); }
.dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--moss); flex: none; }
.dot--autumn { background: var(--accent); } .dot--winter { background: var(--winter); } .dot--summer { background: var(--moss); }

/* ---------- кнопки, чипсы ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 50px; padding: 0 26px; border: 1px solid var(--forest);
  background: var(--forest); color: var(--on-forest); border-radius: 2px; font: 500 14px/1.2 var(--sans); letter-spacing: .02em; text-align: center;
  transition: background-color .2s, color .2s, border-color .2s; }
.btn:hover { background: var(--forest-deep); border-color: var(--forest-deep); }
.btn .ic { width: 18px; height: 18px; }
.btn--line { background: transparent; color: var(--text); border-color: rgba(29, 42, 34, .35); }
.btn--line:hover { background: transparent; border-color: var(--text); color: var(--text); }
.btn--accent { background: var(--accent); border-color: var(--accent); color: var(--forest-deep); }
.btn--accent:hover { background: #CF6A1F; border-color: #CF6A1F; }
.btn--light { background: var(--on-forest); color: var(--forest-deep); border-color: var(--on-forest); }
.btn--light:hover { background: #fff; border-color: #fff; }
.btn--ghost-light { background: transparent; color: var(--on-forest); border-color: rgba(243, 238, 228, .45); }
.btn--ghost-light:hover { border-color: var(--on-forest); background: transparent; }
.btn--sm { min-height: 40px; padding: 0 16px; font-size: 13px; }
.btn--wide { width: 100%; }
.btn.is-added { background: var(--success); border-color: var(--success); color: #fff; }
.btn[disabled] { opacity: .45; cursor: not-allowed; }
.btns { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { display: inline-flex; align-items: center; gap: 8px; min-height: 36px; padding: 0 14px; border: 1px solid var(--line-strong); border-radius: 999px;
  font-size: 13px; line-height: 1.2; background: transparent; transition: border-color .2s, background-color .2s, color .2s; white-space: nowrap; }
.chip:hover { border-color: var(--text); }
.chip[aria-pressed="true"], .chip.is-on { background: var(--forest); border-color: var(--forest); color: var(--on-forest); }
.chip .mono { opacity: .7; }
.icbtn { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-width: 44px; height: 44px; border-radius: 2px; color: inherit; }
.icbtn:hover { color: var(--forest); }
.ic { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.ic--s { width: 16px; height: 16px; }
.badge { position: absolute; top: 4px; right: 0; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: var(--accent); color: var(--forest-deep);
  font: 600 11px/18px var(--sans); text-align: center; }
.badge[data-n="0"] { display: none; }
.price { font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
.price s { font-weight: 400; color: var(--muted); margin-left: 6px; font-size: .88em; }
.stars { position: relative; display: inline-block; vertical-align: -2px; line-height: 0; }
.stars .ic { width: 14px; height: 14px; stroke-width: 1.2; }
.stars__bg { color: var(--stone); display: inline-flex; }
.stars__bg .ic { fill: var(--stone); stroke: var(--stone); }
.stars__fg { position: absolute; inset: 0 auto 0 0; overflow: hidden; display: inline-flex; white-space: nowrap; color: var(--accent); }
.stars__fg .ic { fill: var(--accent); stroke: var(--accent); }

/* ---------- фото ---------- */
.ph { position: relative; overflow: hidden; background: var(--cream); }
.ph > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.cap { display: flex; justify-content: space-between; gap: 16px; padding-top: 10px; font-size: 12.5px; line-height: 1.45; color: var(--muted); }
.cap .code { color: var(--text); }
@media (max-width: 559px) { .cap { flex-direction: column; gap: 2px; } }

/* ---------- объявление и шапка ---------- */
.ann { background: var(--forest-deep); color: var(--on-forest); font-size: 13px; }
.ann__in { min-height: 36px; display: flex; align-items: center; justify-content: center; text-align: center; }
.ann__rot { display: none; position: relative; width: 100%; height: 20px; }
.ann__rot span { position: absolute; inset: 0; opacity: 0; transition: opacity .6s; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ann__rot span.on { opacity: 1; }
@media (max-width: 899px) { .ann__full { display: none; } .ann__rot { display: block; } .ann { font-size: 12.5px; } }

.hdr { position: sticky; top: 0; z-index: 60; background: rgba(243, 238, 228, .94); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  border-bottom: 1px solid transparent; transition: border-color .25s; }
.hdr.is-scrolled { border-bottom-color: var(--line); }
.hdr__in { height: var(--hdr); display: flex; align-items: center; gap: 28px; }
.logo { display: inline-flex; align-items: center; gap: 10px; color: var(--forest-deep); flex: none; }
.logo__mark { width: 34px; height: 34px; }
.logo__w { display: block; height: 15px; width: auto; aspect-ratio: 964.2 / 106.57; }
.ftr__brand .logo__w { height: 19px; }
.logo--light { color: var(--on-forest); }
.hdr__nav { flex: 1; display: flex; justify-content: center; }
.hdr__nav > ul { display: flex; gap: 4px; }
.hdr__nav > ul > li > a { display: inline-flex; align-items: center; gap: 4px; height: var(--hdr); padding: 0 12px; font-size: 14px; font-weight: 500; position: relative; }
.hdr__nav > ul > li > a::after { content: ''; position: absolute; left: 12px; right: 12px; bottom: 22px; height: 1px; background: var(--accent); transform: scaleX(0); transform-origin: left; transition: transform .3s var(--ease); }
.hdr__nav > ul > li > a:hover::after, .hdr__nav > ul > li > a[aria-current]::after, .has-mega:hover > a::after, .has-mega.is-open > a::after { transform: scaleX(1); }
.hdr__nav > ul > li > a[aria-current]::after { height: 2px; }
.hdr__tools { display: flex; align-items: center; gap: 2px; margin-left: auto; }
.icbtn--search { padding: 0 10px; }
.icbtn__t { font-size: 14px; font-weight: 500; }
.hdr__burger { display: none; margin-left: -10px; }
.mega { position: absolute; left: 0; right: 0; top: 100%; background: var(--surface); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);
  visibility: hidden; opacity: 0; transform: translateY(-6px); transition: opacity .2s, transform .25s var(--ease), visibility 0s .25s; }
.has-mega:hover .mega, .has-mega.is-open .mega { visibility: visible; opacity: 1; transform: none; transition-delay: 0s; }
.mega__in { display: grid; grid-template-columns: 1.2fr 1.2fr 1fr 240px; gap: 40px; padding-top: 36px; padding-bottom: 40px; }
.mega__t { font: italic 400 22px/1.2 var(--serif); color: var(--moss); margin-bottom: 14px; }
.mega__col a { display: flex; justify-content: space-between; gap: 12px; padding: 6px 0; font-size: 14px; border-bottom: 1px solid transparent; }
.mega__col a:hover { color: var(--forest); border-bottom-color: var(--line); }
.mega__col .mono { color: var(--warm-grey); }
.mega__cats { columns: 1; }
.mega__feat { display: block; font-size: 14px; }
.mega__feat .ph { margin-bottom: 10px; }
.mega__feat-t { display: block; font: 400 21px/1.15 var(--serif); }
.mega__feat-p { display: block; margin-top: 4px; font-weight: 600; }
.mega__feat-p s { font-weight: 400; color: var(--muted); }
@media (max-width: 1199px) { .hdr__nav > ul > li > a { padding: 0 9px; } .hdr__nav > ul > li > a::after { left: 9px; right: 9px; } .icbtn__t { display: none; } }
@media (max-width: 1099px) {
  .hdr__nav { display: none; }
  .hdr__burger { display: inline-flex; }
  .hdr__in { gap: 8px; }
  .hdr__logo { margin: 0 auto; }
  .hdr__tools { margin-left: 0; }
}
@media (max-width: 759px) {
  .logo__mark { width: 28px; height: 28px; }
  .logo__w { height: 13px; }
  .hdr__logo { gap: 8px; }
  .hdr__tools .icbtn { min-width: 38px; }
  .hdr__burger { min-width: 38px; }
}

/* мобильное меню */
.mnav { position: fixed; inset: 0; z-index: 120; background: var(--bg); overflow-y: auto; opacity: 0; transition: opacity .25s; }
.mnav.on { opacity: 1; }
.mnav__head { height: var(--hdr); display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); }
.mnav__body { padding-top: 20px; padding-bottom: 90px; }
.mnav__main a { display: block; padding: 8px 0; font: 400 32px/1.15 var(--serif); }
.mnav__main li:nth-child(n+2):nth-child(-n+5) a { font-size: 22px; padding: 5px 0 5px 20px; color: var(--moss); }
.mnav__sub { margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--line); display: grid; grid-template-columns: 1fr 1fr; gap: 6px 16px; }
.mnav__sub a { display: block; padding: 6px 0; font-size: 15px; }
.mnav__ct { margin-top: 28px; font-size: 14px; color: var(--muted); }
.mnav__ct a { color: var(--text); font-weight: 600; font-size: 17px; }

/* ---------- поиск ---------- */
.srch { position: fixed; inset: 0; z-index: 130; background: rgba(20, 40, 30, .32); opacity: 0; transition: opacity .2s; }
.srch.on { opacity: 1; }
.srch__panel { background: var(--bg); border-bottom: 1px solid var(--line); max-height: 100vh; overflow-y: auto; transform: translateY(-16px); transition: transform .3s var(--ease); }
.srch.on .srch__panel { transform: none; }
.srch__form { display: flex; align-items: center; gap: 14px; height: 104px; border-bottom: 1px solid var(--text); }
.srch__form > .ic { width: 28px; height: 28px; color: var(--moss); }
.srch__form input { flex: 1; min-width: 0; height: 64px; border: 0; background: transparent; font: 400 clamp(26px, 3vw, 42px)/1 var(--serif); outline: none; }
.srch__form input::placeholder { color: var(--warm-grey); }
.srch__form input::-webkit-search-cancel-button { display: none; }
.srch__res { padding: 28px 0 44px; display: grid; grid-template-columns: 2fr 1fr; gap: 24px 48px; }
.srch__grp, .srch__hints { min-width: 0; }
.srch__grp:first-child { grid-row: span 3; }
.srch__t { font: italic 400 20px/1.2 var(--serif); color: var(--moss); margin-bottom: 14px; display: flex; gap: 10px; align-items: baseline; }
.srch__prods { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 24px; margin-bottom: 18px; }
.sitem { display: flex; gap: 14px; align-items: center; padding: 6px 0; }
.sitem img { width: 56px; height: 70px; object-fit: cover; background: var(--cream); flex: none; }
.sitem > span { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.sitem__n { font: 400 19px/1.15 var(--serif); }
.sitem__p { font-size: 13px; font-weight: 600; }
.sitem:hover .sitem__n { color: var(--forest); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.srch__arts li + li { margin-top: 8px; }
.srch__arts a { font: 400 19px/1.25 var(--serif); }
.srch__arts a:hover { color: var(--forest); text-decoration: underline; text-underline-offset: 3px; }
.srch__none { grid-column: 1 / -1; max-width: 640px; }
.srch__none p + p { margin-top: 12px; }
@media (max-width: 759px) {
  .srch__form { height: 72px; gap: 8px; }
  .srch__form > .ic { display: none; }
  .srch__form .btn { display: none; }
  .srch__res { grid-template-columns: 1fr; padding-bottom: 80px; }
  .srch__prods { grid-template-columns: 1fr; }
}

/* ---------- мини-корзина ---------- */
.scrim { position: fixed; inset: 0; z-index: 140; background: rgba(20, 40, 30, .38); opacity: 0; transition: opacity .3s; }
.scrim.on { opacity: 1; }
.drawer { position: fixed; top: 0; right: 0; bottom: 0; z-index: 150; width: min(460px, 100vw); background: var(--surface); display: flex; flex-direction: column;
  transform: translateX(102%); transition: transform .42s var(--ease); visibility: hidden; }
.drawer.open { transform: none; visibility: visible; }
.drawer__head { display: flex; align-items: center; justify-content: space-between; padding: 14px 20px 14px 28px; border-bottom: 1px solid var(--line); }
.drawer__t { font: 400 30px/1 var(--serif); display: flex; align-items: baseline; gap: 12px; }
.drawer__t .mono { color: var(--muted); }
.drawer__ship { padding: 0 28px; }
.drawer__ship .ship { padding: 16px 0; border-bottom: 1px solid var(--line); }
.drawer__body { flex: 1; overflow-y: auto; padding: 0 28px; }
.drawer__foot { padding: 18px 28px 24px; border-top: 1px solid var(--line); display: grid; gap: 10px; }
.drawer__foot:empty { display: none; }
.mc__li { position: relative; display: grid; grid-template-columns: 76px 1fr; gap: 16px; padding: 18px 28px 18px 0; border-bottom: 1px solid var(--line); }
.mc__img img { width: 76px; height: 95px; object-fit: cover; background: var(--cream); }
.mc__name { font: 400 20px/1.15 var(--serif); margin: 2px 0 10px; }
.mc__row { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.mc__rm { position: absolute; right: -12px; top: 10px; color: var(--muted); }
.mc__sum { display: flex; justify-content: space-between; align-items: baseline; font-size: 15px; }
.mc__sum b { font-size: 20px; font-variant-numeric: tabular-nums; }
.mc__note { font-size: 12.5px; color: var(--muted); margin-bottom: 4px; }
.mc__empty { padding: 32px 0; }
.mc__empty p + p { margin-top: 20px; display: flex; gap: 18px; align-items: center; flex-wrap: wrap; }
@media (max-width: 759px) { .drawer__foot { padding-bottom: 64px; } .drawer__head, .drawer__body, .drawer__ship { padding-left: 16px; padding-right: 16px; } .drawer__foot { padding-left: 16px; padding-right: 16px; } }
.ship__t { font-size: 13.5px; display: flex; gap: 6px; align-items: center; }
.ship__t .ic { color: var(--success); }
.ship__bar { margin-top: 10px; height: 3px; background: var(--line); position: relative; overflow: hidden; }
.ship__bar span { position: absolute; inset: 0 auto 0 0; background: var(--accent); transition: width .5s var(--ease); }
.qty { display: inline-flex; align-items: center; border: 1px solid var(--line-strong); border-radius: 2px; height: 38px; }
.qty button { width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center; }
.qty button .ic { width: 16px; height: 16px; }
.qty button:hover { color: var(--forest); background: var(--cream); }
.qty output { min-width: 26px; text-align: center; font-variant-numeric: tabular-nums; font-size: 14px; font-weight: 600; }

/* ---------- уведомление ---------- */
.toast { position: fixed; right: 20px; top: calc(var(--hdr) + 48px); z-index: 170; max-width: calc(100vw - 32px); display: flex; align-items: center; gap: 10px;
  padding: 12px 16px; background: var(--forest-deep); color: var(--on-forest); font-size: 14px; border-radius: 2px;
  opacity: 0; transform: translateY(-8px); pointer-events: none; transition: opacity .25s, transform .3s var(--ease); }
.toast.on { opacity: 1; transform: none; pointer-events: auto; }
.toast a { text-decoration: underline; text-underline-offset: 3px; }
.toast .ic { width: 18px; height: 18px; color: var(--accent); fill: var(--accent); }

/* ---------- подвал ---------- */
.ftr { background: var(--forest-deep); color: var(--on-forest); margin-top: 0; padding: 0 0 32px; }
.ftr a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.ftr__atlas { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0 18px; border-bottom: 1px solid rgba(243, 238, 228, .14); }
.ftr__atlas a { display: inline-flex; align-items: center; gap: 8px; padding: 18px 0; font-size: 13.5px; }
.ftr__atlas .mono { color: var(--on-forest-muted); font-size: 11px; }
.ftr__top { display: grid; grid-template-columns: 1.6fr repeat(3, 1fr); gap: 40px; padding: 56px 0 44px; }
.ftr__brand p { margin-top: 20px; max-width: 30em; color: var(--on-forest-muted); font-size: 14px; }
.ftr__t { font: italic 400 21px/1.2 var(--serif); color: #C9D3BE; margin-bottom: 12px; }
.ftr__col li + li { margin-top: 8px; }
.ftr__col a { font-size: 14.5px; }
.ftr__mid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 40px; padding: 32px 0 40px; border-top: 1px solid rgba(243, 238, 228, .14); font-size: 14px; color: var(--on-forest-muted); }
.ftr__mid a { color: var(--on-forest); }
.ftr__blk p + p { margin-top: 10px; }
.ftr__big { font: 400 26px/1.3 var(--serif); }
.ftr__m { color: var(--on-forest-muted); font-size: 13px; }
.ftr__pay, .ftr__soc { display: flex; flex-wrap: wrap; gap: 6px; }
.ftr__pay span, .ftr__soc span { padding: 5px 10px; border: 1px solid rgba(243, 238, 228, .3); border-radius: 2px; font-size: 12.5px; color: var(--on-forest); }
.ftr__bot { display: flex; gap: 32px; justify-content: space-between; padding-top: 24px; border-top: 1px solid rgba(243, 238, 228, .14); font-size: 12.5px; color: var(--on-forest-muted); }
.ftr__legal { max-width: 70em; }
@media (max-width: 1099px) { .ftr__top { grid-template-columns: 1fr 1fr 1fr; } .ftr__brand { grid-column: 1 / -1; } .ftr__mid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 759px) {
  .ftr__atlas { display: grid; grid-template-columns: 1fr 1fr; }
  .ftr__atlas a { padding: 12px 8px 12px 0; }
  .ftr__atlas .mono { display: none; }
  .ftr__top { grid-template-columns: 1fr 1fr; gap: 32px 20px; padding-top: 40px; }
  .ftr__mid { grid-template-columns: 1fr; gap: 26px; }
  .ftr__bot { flex-direction: column; gap: 10px; padding-bottom: 48px; }
}

/* ---------- появление ---------- */
.js .rv { opacity: 0; transform: translateY(22px); transition: opacity 1s var(--ease), transform 1s var(--ease); transition-delay: calc(var(--d, 0) * 90ms); }
.js .rv.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .js .rv { opacity: 1; transform: none; transition: none; } }

/* ---------- раскладка секций ---------- */
.sec { padding: clamp(64px, 8.5vw, 128px) 0; }
.sec--tight { padding: clamp(44px, 5vw, 72px) 0; }
.sec--rule { border-top: 1px solid var(--line); }
.sec--surface { background: var(--surface); }
.sec--forest, .on-forest { background: var(--forest); color: var(--on-forest); }
.sec--deep { background: var(--forest-deep); color: var(--on-forest); }
.sh { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; align-items: end; margin-bottom: clamp(32px, 4vw, 56px); }
.sh__t { grid-column: 1 / span 7; font: 400 clamp(36px, 4.4vw, 68px)/1.02 var(--serif); letter-spacing: -.01em; }
.sh__x { grid-column: 9 / span 4; color: var(--muted); font-size: 15px; }
.on-forest .sh__x, .sec--forest .sh__x, .sec--deep .sh__x { color: var(--on-forest-muted); }
.sh__x .ulink, .sh__x .btn { margin-top: 14px; }
@media (max-width: 899px) { .sh { display: block; } .sh__x { margin-top: 16px; max-width: 36em; } }
.crumbs { padding: 22px 0 0; font-size: 13px; color: var(--muted); }
.crumbs ol { display: flex; flex-wrap: wrap; gap: 4px 0; }
.crumbs li + li::before { content: '/'; margin: 0 10px; color: var(--stone); }
.crumbs a:hover { color: var(--text); text-decoration: underline; text-underline-offset: 3px; }
.ph-head { padding: 28px 0 clamp(36px, 4vw, 56px); display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; align-items: end; }
.ph-head__t { grid-column: 1 / span 8; }
.ph-head__x { grid-column: 9 / span 4; color: var(--muted); }
@media (max-width: 899px) { .ph-head { display: block; } .ph-head__x { margin-top: 18px; } }

/* ---------- сетка товаров и карточка ---------- */
.pgrid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 48px 24px; }
.pgrid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 1199px) { .pgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 899px) { .pgrid, .pgrid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px 14px; } }
.pc { position: relative; display: flex; flex-direction: column; min-width: 0; }
.pc__img { position: relative; display: block; aspect-ratio: 4 / 5; overflow: hidden; background: var(--cream); }
.pc__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: opacity .6s var(--ease), transform 1.2s var(--ease); }
.pc__i2 { opacity: 0; }
.pc--2 .pc__img:hover .pc__i2, .pc--2 .pc__img:focus-visible .pc__i2 { opacity: 1; }
.pc:not(.pc--2) .pc__img:hover .pc__i1 { transform: scale(1.03); }
.pc__badge { position: absolute; left: 10px; top: 10px; padding: 4px 9px 5px; background: var(--surface); font-size: 12px; line-height: 1.2; border-radius: 2px; }
.pc__badge--sale { background: var(--accent); color: var(--forest-deep); font-weight: 600; }
.fav { position: absolute; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; color: var(--forest-deep);
  background: rgba(251, 248, 241, .82); transition: color .2s, background-color .2s; }
.fav .ic { width: 20px; height: 20px; }
.fav:hover { background: var(--surface); }
.fav.is-on .ic { fill: var(--accent); stroke: var(--accent-ink); }
.pc > .fav { right: 8px; top: 8px; }
.pc__body { display: flex; flex-direction: column; flex: 1; padding-top: 14px; }
.pc__meta { display: flex; justify-content: space-between; gap: 8px; font-size: 12px; color: var(--muted); padding-bottom: 10px; border-bottom: 1px solid var(--line); }
.pc__name { font: 400 clamp(21px, 1.7vw, 25px)/1.08 var(--serif); margin-top: 12px; letter-spacing: -.005em; }
.pc__name a:hover { color: var(--forest); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.pc__sub { margin-top: 6px; font-size: 13.5px; line-height: 1.45; color: var(--muted); }
.pc__acts { margin-top: 10px; color: var(--moss); font-size: 12px; }
.pc__acts:not(.mono) { font-size: 13px; }
.pc__foot { margin-top: auto; padding-top: 16px; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.pc__foot .price { font-size: 16px; }
.pc__add { display: inline-flex; align-items: center; gap: 6px; height: 38px; padding: 0 12px 0 10px; border: 1px solid var(--line-strong); border-radius: 2px; font-size: 13px; font-weight: 500;
  transition: background-color .2s, border-color .2s, color .2s; white-space: nowrap; }
.pc__add .ic { width: 16px; height: 16px; }
.pc__add:hover { background: var(--forest); border-color: var(--forest); color: var(--on-forest); }
.pc__add.is-added { background: var(--success); border-color: var(--success); color: #fff; }
@media (max-width: 759px) {
  .pc__name { font-size: 19px; }
  .pc__sub { font-size: 12.5px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  .pc__acts { font-size: 11px; }
  .pc__foot { flex-wrap: wrap; gap: 8px; }
  .pc__foot .price { font-size: 15px; }
  .pc__foot .price s { display: block; margin: 0; font-size: 12px; }
  .pc__add { width: 100%; justify-content: center; }
  .fav { width: 36px; height: 36px; }
}

/* компактная строка товара */
.prow { display: grid; grid-template-columns: 64px 1fr auto; gap: 14px; align-items: center; padding: 12px 0; border-top: 1px solid var(--line); }
.prow__img img { width: 64px; height: 80px; object-fit: cover; background: var(--cream); }
.prow__meta { display: flex; gap: 10px; font-size: 12px; color: var(--muted); }
.prow__name { font: 400 19px/1.15 var(--serif); margin-top: 2px; }
.prow__name a:hover { text-decoration: underline; text-underline-offset: 3px; }
.prow__sub { font-size: 13px; color: var(--muted); line-height: 1.4; margin-top: 2px; }
.prow__end { display: flex; align-items: center; gap: 10px; }
.prow__end .price { font-size: 14.5px; }
.prow__add { width: 38px; height: 38px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--line-strong); border-radius: 50%; }
.prow__add:hover { background: var(--forest); color: var(--on-forest); border-color: var(--forest); }
.prow__add.is-added { background: var(--success); border-color: var(--success); color: #fff; }
.prow__add .ic { width: 16px; height: 16px; }
.on-forest .prow, .sec--forest .prow { border-color: rgba(243, 238, 228, .16); }
.on-forest .prow__meta, .on-forest .prow__sub, .sec--forest .prow__sub, .sec--forest .prow__meta { color: var(--on-forest-muted); }
.on-forest .code, .sec--forest .code, .sec--deep .code { color: #C9D3BE; }
.on-forest .prow__add, .sec--forest .prow__add { border-color: rgba(243, 238, 228, .35); }
.on-forest .prow__add:hover { background: var(--on-forest); color: var(--forest-deep); }
@media (max-width: 759px) { .prow { grid-template-columns: 56px 1fr; row-gap: 6px; align-items: start; } .prow__img { grid-row: 1 / span 2; } .prow__img img { width: 56px; height: 70px; } .prow__end { grid-column: 2; justify-content: space-between; } .prow__sub { display: none; } }

/* пустые состояния */
.empty { padding: clamp(48px, 7vw, 96px) 0; max-width: 560px; }
.empty__mark .logo__mark { width: 56px; height: 56px; color: var(--moss); }
.empty__t { font: 400 clamp(32px, 3.4vw, 46px)/1.05 var(--serif); margin-top: 22px; }
.empty__x { margin-top: 14px; color: var(--muted); }
.empty__a { margin-top: 26px; display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: center; }

/* ---------- формы ---------- */
.field { display: flex; flex-direction: column; gap: 7px; min-width: 0; }
.field > label, .field__l { font-size: 13px; font-weight: 500; color: var(--text); }
.field__l .req, .field > label .req { color: var(--accent-ink); }
.inp, .sel, .ta { width: 100%; min-height: 50px; padding: 12px 14px; border: 1px solid var(--line-strong); border-radius: 2px; background: var(--surface); font-size: 15px; line-height: 1.3;
  transition: border-color .2s, box-shadow .2s; -webkit-appearance: none; appearance: none; }
.ta { min-height: 110px; resize: vertical; line-height: 1.5; }
.sel { padding-right: 40px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.5 9.5 12 15l5.5-5.5' fill='none' stroke='%231D2A22' stroke-width='1.4'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 12px center; background-size: 18px; }
.inp:hover, .sel:hover, .ta:hover { border-color: var(--warm-grey); }
.inp:focus, .sel:focus, .ta:focus { outline: none; border-color: var(--forest); box-shadow: 0 0 0 3px rgba(31, 59, 44, .12); }
.inp::placeholder, .ta::placeholder { color: var(--warm-grey); }
.field.is-err .inp, .field.is-err .sel, .field.is-err .ta { border-color: var(--danger); }
.err { font-size: 12.5px; color: var(--danger); display: none; }
.field.is-err .err, .is-err > .err { display: block; }
.hint { font-size: 12.5px; color: var(--muted); }
.opt { position: relative; display: flex; gap: 12px; align-items: flex-start; cursor: pointer; font-size: 14.5px; line-height: 1.45; }
.opt input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.opt__box { flex: none; width: 20px; height: 20px; margin-top: 1px; border: 1px solid var(--warm-grey); background: var(--surface); border-radius: 2px; display: inline-flex; align-items: center; justify-content: center; transition: background-color .15s, border-color .15s; }
.opt__box--r { border-radius: 50%; }
.opt input:checked + .opt__box { background: var(--forest); border-color: var(--forest); }
.opt input:checked + .opt__box::after { content: ''; width: 10px; height: 6px; border: solid var(--on-forest); border-width: 0 0 1.6px 1.6px; transform: translateY(-1px) rotate(-45deg); }
.opt input:checked + .opt__box--r::after { width: 8px; height: 8px; border: 0; border-radius: 50%; background: var(--on-forest); transform: none; }
.opt input:focus-visible + .opt__box { outline: 2px solid var(--accent); outline-offset: 2px; }
.is-err .opt__box { border-color: var(--danger); }
.tile { display: block; position: relative; cursor: pointer; }
.tile input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.tile__in { display: block; height: 100%; padding: 16px 18px; border: 1px solid var(--line-strong); border-radius: 2px; background: var(--surface); transition: border-color .2s, box-shadow .2s; }
.tile:hover .tile__in { border-color: var(--warm-grey); }
.tile input:checked + .tile__in { border-color: var(--forest); box-shadow: inset 0 0 0 1px var(--forest); }
.tile input:focus-visible + .tile__in { outline: 2px solid var(--accent); outline-offset: 2px; }
.tile__top { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; font-weight: 600; font-size: 14.5px; }
.tile__x { display: block; margin-top: 4px; font-size: 13px; color: var(--muted); line-height: 1.45; }
.note-demo { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; background: var(--frost); border-left: 2px solid var(--moss); font-size: 13px; line-height: 1.5; color: var(--text); }
.note-demo .ic { width: 18px; height: 18px; color: var(--moss); margin-top: 1px; }

/* аккордеон */
.acc { border-top: 1px solid var(--line); }
.acc details { border-bottom: 1px solid var(--line); }
.acc summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 0; font: 400 23px/1.2 var(--serif); }
.acc summary::-webkit-details-marker { display: none; }
.acc summary .ic { transition: transform .3s var(--ease); color: var(--moss); }
.acc details[open] summary .ic { transform: rotate(45deg); }
.acc summary:hover { color: var(--forest); }
.acc__b { padding: 0 0 22px; font-size: 15px; max-width: 46em; }
.acc__b p + p { margin-top: .8em; }

/* =====================================================================
   Карта: точечная Россия — единственный смелый элемент сайта
   ===================================================================== */
.map { position: relative; width: 100%; }
.map__svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.map__dots { fill: var(--moss); opacity: .78; }
.map__lat, .map__lon { stroke: var(--stone); stroke-width: .6; vector-effect: non-scaling-stroke; }
.map__polar { stroke: var(--accent); stroke-width: .8; stroke-dasharray: 3 4; vector-effect: non-scaling-stroke; }
.map__lbl { font: 400 9px var(--mono); fill: var(--warm-grey); letter-spacing: .02em; paint-order: stroke; stroke: var(--bg); stroke-width: 4px; stroke-linejoin: round; }
.on-forest .map__lbl { stroke: var(--forest); }
.map__lbl--polar { fill: var(--accent-ink); }
.map__mk { position: absolute; inset: 0; }
.mk { position: absolute; display: flex; align-items: center; gap: 8px; transform: translate(-7px, -50%); white-space: nowrap; color: var(--text); padding: 4px 0; cursor: pointer; }
.mk--l { flex-direction: row-reverse; transform: translate(calc(-100% + 7px), -50%); }
.mk__dot { position: relative; width: 14px; height: 14px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 3px var(--bg); flex: none; transition: transform .25s var(--ease); }
.mk--summer .mk__dot { background: var(--moss); }
.mk--winter .mk__dot { background: var(--winter); }
.mk__dot::after { content: ''; position: absolute; inset: -6px; border-radius: 50%; border: 1px solid currentColor; opacity: 0; transform: scale(.6); transition: opacity .25s, transform .25s var(--ease); }
.mk__l { font: 400 17px/1 var(--serif); padding: 3px 6px 4px; background: rgba(243, 238, 228, .86); border-radius: 2px; transition: background-color .2s, color .2s; }
.mk:hover .mk__dot, .mk:focus-visible .mk__dot, .mk[aria-pressed="true"] .mk__dot { transform: scale(1.18); }
.mk:hover .mk__dot::after, .mk:focus-visible .mk__dot::after, .mk[aria-pressed="true"] .mk__dot::after { opacity: .7; transform: none; }
.mk[aria-pressed="true"] .mk__l { background: var(--forest); color: var(--on-forest); }
.mk:focus-visible { outline: none; }
.mk:focus-visible .mk__l { outline: 2px solid var(--accent); outline-offset: 2px; }
/* та же карта на зелёном */
.on-forest .map__dots { fill: #C9D3BE; opacity: .34; }
.on-forest .map__lat, .on-forest .map__lon { stroke: rgba(243, 238, 228, .12); }
.on-forest .map__lbl { fill: rgba(243, 238, 228, .5); }
.on-forest .map__lbl--polar { fill: #F0A060; }
.on-forest .mk { color: var(--on-forest); }
.on-forest .mk__dot { box-shadow: 0 0 0 3px var(--forest); }
.on-forest .mk--summer .mk__dot { background: #A9C08F; }
.on-forest .mk--winter .mk__dot { background: #9FBBD0; }
.on-forest .mk__l { background: rgba(31, 59, 44, .78); }
.on-forest .mk:hover .mk__l, .on-forest .mk:focus-visible .mk__l { background: var(--on-forest); color: var(--forest-deep); }
.on-forest .dot--summer { background: #A9C08F; } .on-forest .dot--winter { background: #9FBBD0; }
@media (max-width: 759px) { .mk__l { font-size: 14px; padding: 2px 5px 3px; } .mk__dot { width: 12px; height: 12px; } .mk { gap: 6px; transform: translate(-6px, -50%); } .mk--l { transform: translate(calc(-100% + 6px), -50%); } }

/* =====================================================================
   Главная
   ===================================================================== */
.hero { padding-top: clamp(28px, 4vw, 60px); }
.hero__top { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; align-items: end; }
.hero__t { grid-column: 1 / span 8; }
.hero__t em { display: inline-block; padding-left: .9em; }
.hero__aside { grid-column: 9 / span 4; padding-bottom: 10px; }
.hero__sub { font-size: 16px; line-height: 1.6; color: var(--text); max-width: 30em; }
.hero__aside .btns { margin-top: 26px; }
.hero__stage { margin-top: clamp(32px, 4vw, 56px); }
.hero__frame { position: relative; aspect-ratio: 21 / 9; min-height: 340px; max-height: calc(100vh - 120px); overflow: hidden; background: var(--forest); }
.hero__slide { position: absolute; inset: 0; opacity: 0; transition: opacity 1.6s var(--ease); }
.hero__slide.is-on { opacity: 1; }
.hero__par { position: absolute; left: 0; right: 0; top: -9%; bottom: -9%; will-change: transform; }
.hero__par img { width: 100%; height: 100%; object-fit: cover; }
.hero__cap { display: grid; grid-template-columns: auto 1fr auto; gap: 24px; align-items: center; padding-top: 14px; padding-bottom: 14px; font-size: 13.5px; color: var(--muted); border-bottom: 1px solid var(--line); }
.hero__cap b { font-weight: 600; color: var(--text); }
.hero__n { color: var(--text); }
.hero__ct .ulink { color: var(--text); margin-left: 6px; }
.hero__dots { display: flex; gap: 4px; }
.hero__dots button { width: 40px; height: 32px; display: inline-flex; align-items: center; justify-content: center; }
.hero__dots span { width: 28px; height: 2px; background: var(--line-strong); transition: background-color .3s; }
.hero__dots [aria-pressed="true"] span { background: var(--accent); }
@media (max-width: 1099px) { .hero__t { grid-column: 1 / -1; } .hero__aside { grid-column: 1 / span 8; margin-top: 24px; } }
@media (max-width: 759px) {
  .hero__t em { padding-left: 0; }
  .hero__aside { grid-column: 1 / -1; }
  .hero__aside .btns .btn { flex: 1 1 auto; }
  .hero__frame { aspect-ratio: 4 / 5; min-height: 0; max-height: 72vh; }
  .hero__cap { grid-template-columns: auto 1fr; gap: 6px 14px; }
  .hero__ct { grid-column: 1 / -1; grid-row: 2; }
  .hero__dots { justify-self: end; }
}

.manif__g { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; align-items: start; }
.manif__t { grid-column: 1 / span 6; }
.manif__x { grid-column: 8 / span 5; padding-top: 10px; }
.manif__x p + p { margin-top: 22px; }
.facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: clamp(56px, 7vw, 104px); border-top: 1px solid var(--line-strong); }
.facts__i { padding: 26px 24px 0; border-left: 1px solid var(--line); }
.facts__i:first-child { padding-left: 0; border-left: 0; }
.facts__v { font: 400 clamp(60px, 6.6vw, 104px)/.9 var(--serif); letter-spacing: -.02em; color: var(--forest); font-variant-numeric: lining-nums; }
.facts__l { margin-top: 14px; font-size: 14px; line-height: 1.5; color: var(--muted); max-width: 17em; }
@media (max-width: 899px) {
  .manif__g { display: block; } .manif__x { margin-top: 24px; padding: 0; }
  .facts { grid-template-columns: 1fr 1fr; }
  .facts__i { padding: 22px 0 24px 18px; } .facts__i:nth-child(odd) { padding-left: 0; border-left: 0; }
  .facts__i:nth-child(n+3) { border-top: 1px solid var(--line); }
}

/* реестр формул */
.fx__g { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 4vw, 72px); align-items: start; }
.fx__view { position: sticky; top: calc(var(--hdr) + 24px); }
.fx__ph { position: relative; aspect-ratio: 4 / 5; overflow: hidden; background: var(--cream); }
.fx__img { position: absolute; inset: 0; opacity: 0; transition: opacity .6s var(--ease); }
.fx__img.on { opacity: 1; }
.fx__img img { width: 100%; height: 100%; object-fit: cover; }
.fx__cap { display: flex; gap: 18px; white-space: nowrap; padding-top: 10px; font-size: 12.5px; color: var(--muted); }
.fx__list { border-bottom: 1px solid var(--line); }
.fx__row { position: relative; display: grid; grid-template-columns: 84px minmax(0, 1fr) auto; gap: 8px 20px; padding: 24px 0 26px; border-top: 1px solid var(--line); }
.fx__thumb { display: none; }
.fx__code { padding-top: 10px; color: var(--muted); }
.fx__row.on .fx__code { color: var(--accent-ink); }
.fx__name { font: 400 clamp(26px, 2.5vw, 38px)/1.04 var(--serif); letter-spacing: -.01em; }
.fx__name a::after { content: ''; position: absolute; inset: 0; }
.fx__name a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 6px; }
.fx__sub { margin-top: 8px; font-size: 14px; color: var(--muted); }
.fx__acts { margin-top: 10px; color: var(--moss); }
.fx__acts:not(.mono) { font-size: 13px; }
.fx__end { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: flex-end; gap: 12px; padding-top: 8px; }
.fx__end .price { font-size: 16px; }
.fx__end .price s { display: block; margin: 2px 0 0; text-align: right; }
@media (max-width: 899px) {
  .fx__g { display: block; } .fx__view { display: none; }
  .fx__row { grid-template-columns: 72px minmax(0, 1fr); gap: 4px 16px; padding: 18px 0; }
  .fx__thumb { display: block; grid-row: 1 / span 3; aspect-ratio: 4 / 5; overflow: hidden; background: var(--cream); position: relative; z-index: 1; }
  .fx__thumb img { width: 100%; height: 100%; object-fit: cover; }
  .fx__code { padding: 0; grid-column: 2; }
  .fx__main { grid-column: 2; }
  .fx__name { font-size: 24px; }
  .fx__end { grid-column: 2; flex-direction: row; align-items: center; justify-content: space-between; padding-top: 6px; }
  .fx__end .price s { display: inline; margin-left: 6px; }
}

/* задачи кожи */
.cn__g { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; }
.cn__h { grid-column: 1 / span 4; }
.cn__h p { margin-top: 16px; max-width: 24em; }
.cn__h .btn { margin-top: 28px; }
.cn__list { grid-column: 6 / span 7; display: grid; grid-template-columns: 1fr 1fr; column-gap: 32px; border-top: 1px solid var(--line-strong); }
.cn__list a { display: grid; grid-template-columns: 1fr auto; gap: 4px 16px; padding: 18px 0 20px; border-bottom: 1px solid var(--line); height: 100%; }
.cn__n { font: 400 24px/1.12 var(--serif); }
.cn__hint { grid-column: 1; font-size: 13px; line-height: 1.45; color: var(--muted); }
.cn__c { grid-column: 1; color: var(--moss); margin-top: 6px; }
.cn__ar { grid-column: 2; grid-row: 1; align-self: center; width: 20px; height: 20px; color: var(--warm-grey); transition: transform .25s var(--ease), color .2s; }
.cn__list a:hover .cn__n { color: var(--forest); }
.cn__list a:hover .cn__ar { transform: translateX(4px); color: var(--accent-ink); }
@media (max-width: 1099px) { .cn__h { grid-column: 1 / -1; margin-bottom: 32px; } .cn__list { grid-column: 1 / -1; } }
@media (max-width: 759px) { .cn__list { grid-template-columns: 1fr; } .cn__n { font-size: 22px; } }

/* карта на главной */
.mapx { padding: clamp(64px, 8vw, 120px) 0 clamp(40px, 5vw, 64px); overflow: hidden; }
.mapx__head { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; align-items: end; }
.mapx__head h2 { grid-column: 1 / span 6; }
.mapx__head > p:not(.mapx__legend) { grid-column: 8 / span 5; color: var(--on-forest-muted); }
.mapx__legend { grid-column: 1 / span 6; display: flex; flex-wrap: wrap; gap: 6px 20px; margin-top: 32px; font-size: 13px; color: var(--on-forest-muted); }
.mapx__legend > span { display: inline-flex; align-items: center; gap: 8px; }
.mapx__head .btn { grid-column: 8 / span 5; justify-self: start; margin-top: 32px; }
.mapx__map { margin-top: clamp(28px, 3vw, 48px); }
.mapx__note { margin-top: 16px; color: var(--on-forest-muted); }
@media (max-width: 899px) {
  .mapx__head { display: block; }
  .mapx__head > p:not(.mapx__legend) { margin-top: 18px; }
  .mapx__head .btn { margin-top: 24px; }
  .mapx__legend { margin-top: 20px; }
}

/* ритуалы на главной */
.rtx__g { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; align-items: center; }
.rtx__fig { grid-column: 1 / span 7; }
.rtx__txt { grid-column: 9 / span 4; }
.rtx__txt .lead { margin-top: 20px; font-size: 17px; }
.rtx__list { margin: 32px 0; border-top: 1px solid var(--line-strong); }
.rtx__list a { display: grid; grid-template-columns: 24px 1fr auto; gap: 14px; align-items: baseline; padding: 16px 0; border-bottom: 1px solid var(--line); }
.rtx__list .ic { width: 20px; height: 20px; color: var(--accent-ink); transform: translateY(3px); }
.rtx__n { font: 400 24px/1.1 var(--serif); }
.rtx__n small { display: block; font: 400 13px/1.45 var(--sans); color: var(--muted); margin-top: 4px; }
.rtx__d { color: var(--muted); }
.rtx__list a:hover .rtx__n { color: var(--forest); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
@media (max-width: 1099px) { .rtx__fig { grid-column: 1 / -1; } .rtx__txt { grid-column: 1 / span 9; margin-top: 40px; } }
@media (max-width: 759px) { .rtx__txt { grid-column: 1 / -1; } }

/* лаборатория на главной */
.lbx__g { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; align-items: end; }
.lbx__txt { grid-column: 1 / span 4; padding-bottom: 36px; }
.lbx__txt p { margin-top: 20px; color: var(--muted); }
.lbx__txt .btn { margin-top: 28px; }
.lbx__fig { grid-column: 6 / span 7; }
.lbx__steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; margin-top: clamp(48px, 6vw, 88px); }
.lbx__steps li { border-top: 1px solid var(--forest); padding-top: 16px; }
.lbx__n { color: var(--accent-ink); }
.lbx__steps h3 { font: 400 26px/1.1 var(--serif); margin-top: 18px; }
.lbx__steps p { margin-top: 10px; font-size: 14px; color: var(--muted); }
@media (max-width: 1099px) { .lbx__txt { grid-column: 1 / -1; padding: 0 0 32px; max-width: 36em; } .lbx__fig { grid-column: 1 / -1; } .lbx__steps { grid-template-columns: 1fr 1fr; gap: 32px 24px; } }
@media (max-width: 759px) { .lbx__steps { grid-template-columns: 1fr; gap: 24px; } }

/* подарки на главной */
.gfx__g { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; align-items: center; }
.gfx__txt { grid-column: 1 / span 5; }
.gfx__txt .lead { margin-top: 20px; font-size: 17px; }
.gfx__sets { margin: 32px 0; border-bottom: 1px solid var(--line); }
.gfx__fig { grid-column: 7 / span 6; }
@media (max-width: 1099px) { .gfx__txt { grid-column: 1 / -1; } .gfx__fig { grid-column: 1 / -1; margin-top: 40px; } }

/* статьи */
.art__img { display: block; }
.art__img .ph img { transition: transform 1.2s var(--ease); }
.art__img:hover .ph img { transform: scale(1.025); }
.art__body { padding-top: 16px; }
.art__meta { display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: 12.5px; color: var(--muted); }
.art__cat { color: var(--accent-ink); }
.art__t { font: 400 clamp(23px, 2vw, 28px)/1.12 var(--serif); margin-top: 10px; }
.art__t a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; }
.art__lead { margin-top: 12px; font-size: 15px; color: var(--muted); max-width: 36em; }
.art--lg .art__t { font-size: clamp(30px, 3vw, 46px); line-height: 1.04; }
.jtx__g { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); grid-template-rows: auto 1fr; gap: 40px clamp(24px, 4vw, 64px); }
.jtx__g .art--lg { grid-row: 1 / span 2; }
.jtx__g .art--sm { display: grid; grid-template-columns: 42% 1fr; gap: 20px; align-items: start; }
.jtx__g .art--sm .art__body { padding-top: 0; }
@media (max-width: 899px) { .jtx__g { grid-template-columns: 1fr; } .jtx__g .art--lg { grid-row: auto; } }
@media (max-width: 559px) { .jtx__g .art--sm { grid-template-columns: 38% 1fr; gap: 14px; } .jtx__g .art--sm .art__t { font-size: 20px; } }

/* отзывы */
.rvw__nav .btns { margin-top: 18px; }
.rvw__b { width: 48px; height: 48px; border: 1px solid var(--line-strong); border-radius: 50%; }
.rvw__b:hover { border-color: var(--text); }
.rvw__b .ic { width: 18px; height: 18px; }
.rvw__rail { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 72px) / 4); gap: 24px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: 4px; }
.rvw__rail::-webkit-scrollbar { display: none; }
.rq { scroll-snap-align: start; display: flex; flex-direction: column; border-top: 1px solid var(--forest); padding-top: 18px; }
.rq__st .stars { color: var(--accent); }
.rq__t { margin: 16px 0 0; font: italic 400 21px/1.32 var(--serif); }
.rq__by { margin-top: auto; padding-top: 22px; font-size: 13.5px; color: var(--muted); display: flex; flex-direction: column; gap: 3px; }
.rq__by b { color: var(--text); font-weight: 600; }
.rq__p { margin-top: 8px; font-size: 13px; color: var(--text); }
.rq__p:hover { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 1099px) { .rvw__rail { grid-auto-columns: calc((100% - 24px) / 2); } }
@media (max-width: 759px) { .rvw__rail { grid-auto-columns: 84%; gap: 16px; } .rq__t { font-size: 19px; } }

/* консультация на главной */
.csx { background: var(--frost); padding: clamp(56px, 7vw, 104px) 0; }
.csx__g { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; align-items: center; }
.csx__fig { grid-column: 1 / span 4; }
.csx__txt { grid-column: 6 / span 6; }
.csx__who { font-size: 14px; color: var(--moss); max-width: 30em; }
.csx__txt h2 { margin-top: 18px; }
.csx__txt .lead { margin-top: 20px; }
.csx__txt .btns { margin-top: 30px; gap: 14px 28px; }
@media (max-width: 899px) { .csx__fig { grid-column: 1 / span 7; } .csx__txt { grid-column: 1 / -1; margin-top: 32px; } }
@media (max-width: 559px) { .csx__fig { grid-column: 1 / -1; } }

/* письма */
.nws__g { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; align-items: end; }
.nws__g > div { grid-column: 1 / span 6; }
.nws__g .lead { margin-top: 18px; font-size: 17px; }
.nws__f { grid-column: 8 / span 5; }
.nws__row { display: flex; gap: 0; }
.nws__row .inp { border-right: 0; }
.nws__row .btn { flex: none; }
.nws__f .hint { margin-top: 12px; }
.nws__ok { display: flex; gap: 12px; align-items: flex-start; padding: 16px 0; border-top: 1px solid var(--forest); font-size: 15px; }
.nws__ok .ic { color: var(--success); }
@media (max-width: 899px) { .nws__g > div, .nws__f { grid-column: 1 / -1; } .nws__f { margin-top: 28px; } }
@media (max-width: 559px) { .nws__row { flex-direction: column; gap: 10px; } .nws__row .inp { border-right: 1px solid var(--line-strong); } }
.trust { border-top: 1px solid var(--line); }
.trust__l { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); }
.trust__l li { padding: 26px 20px 30px; border-left: 1px solid var(--line); font-size: 13px; color: var(--muted); line-height: 1.45; }
.trust__l li:first-child { border-left: 0; padding-left: 0; }
.trust__l b { display: block; font: 400 20px/1.15 var(--serif); color: var(--text); margin-bottom: 6px; }
@media (max-width: 1099px) { .trust__l { grid-template-columns: repeat(3, 1fr); } .trust__l li:nth-child(4) { border-left: 0; padding-left: 0; } .trust__l li:nth-child(n+4) { border-top: 1px solid var(--line); } }
@media (max-width: 759px) { .trust__l { grid-template-columns: 1fr 1fr; } .trust__l li { padding: 18px 14px 20px; } .trust__l li:nth-child(odd) { border-left: 0; padding-left: 0; } .trust__l li:nth-child(4) { border-left: 1px solid var(--line); padding-left: 14px; } .trust__l li:nth-child(n+3) { border-top: 1px solid var(--line); } }

/* =====================================================================
   Каталог
   ===================================================================== */
.ctl-head { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; align-items: end; padding: 28px 0 36px; }
.ctl-head__t { grid-column: 1 / span 7; }
.ctl-head__x { grid-column: 9 / span 4; color: var(--muted); font-size: 15px; }
.ctl-q { display: flex; align-items: center; margin-top: 22px; border-bottom: 1px solid var(--text); transition: box-shadow .2s; }
.ctl-q > .ic { width: 20px; height: 20px; color: var(--moss); }
.ctl-q__i { flex: 1; min-width: 0; height: 46px; border: 0; background: transparent; padding: 0 10px; font-size: 15px; color: var(--text); outline: none; -webkit-appearance: none; appearance: none; }
.ctl-q__i::-webkit-search-cancel-button { display: none; }
.ctl-q__i::placeholder { color: var(--warm-grey); }
.ctl-q:focus-within { border-bottom-color: var(--forest); box-shadow: 0 1px 0 var(--forest); }
.ctl-q__x { width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center; color: var(--muted); }
.ctl-q__x:hover { color: var(--text); }
.ctl-cats { border-top: 1px solid var(--line-strong); border-bottom: 1px solid var(--line); padding: 14px 0; }
.chip.is-dim { opacity: .45; }
.ctl { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 48px; padding: 28px 0 clamp(72px, 9vw, 128px); align-items: start; }
.ctl__side { position: sticky; top: calc(var(--hdr) + 20px); max-height: calc(100vh - var(--hdr) - 20px - max(20px, var(--rs-sw-h, 0px))); overflow-y: auto; scrollbar-width: thin; padding-right: 8px; }
.ctl__sheet-h, .ctl__sheet-f { display: none; }
.flt + .flt { border-top: 1px solid var(--line); }
.flt__t { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; padding: 12px 0; font: italic 400 21px/1.2 var(--serif); color: var(--moss); }
.flt__t::-webkit-details-marker { display: none; }
.flt__t .ic { transition: transform .3s var(--ease); color: var(--text); }
.flt[open] .flt__t .ic { transform: rotate(45deg); }
.flt fieldset { border: 0; margin: 0; padding: 0 0 14px; min-width: 0; }
.flt__o { align-items: center; padding: 5px 0; font-size: 14px; }
.flt__o .opt__box { margin-top: 0; }
.flt__l { flex: 1; }
.flt__n { color: var(--warm-grey); }
.flt__o.is-dim { color: var(--warm-grey); }
.ctl__help { margin-top: 10px; padding-top: 18px; border-top: 1px solid var(--line); font-size: 13px; color: var(--muted); line-height: 1.55; }
.ctl__bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-bottom: 12px; border-bottom: 1px solid var(--line-strong); margin-bottom: 18px; }
.ctl__n { color: var(--muted); font-size: 13px; }
.ctl__fbtn { display: none; }
.ctl__fbtn b { font-weight: 500; margin-left: 2px; color: var(--accent-ink); }
.sel--bare { min-height: 40px; width: auto; border: 0; background-color: transparent; padding: 0 30px 0 0; font-size: 14px; font-weight: 500; background-position: right 2px center; }
.sel--bare:focus { box-shadow: none; }
.sel--bare:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.ctl__active { margin: -4px 0 22px; align-items: center; }
.ctl__active:empty { display: none; }
.chip--x { background: var(--cream); border-color: var(--cream); }
.chip--x .ic { width: 14px; height: 14px; }
.chip--x:hover { border-color: var(--text); }
.ctl__clear { font-size: 13px; margin-left: 8px; }
.ctl-tile { display: flex; flex-direction: column; background: var(--forest); color: var(--on-forest); padding: 28px 26px 30px; min-height: 100%; }
.ctl-tile__k .ic { width: 30px; height: 30px; color: #C9D3BE; }
.ctl-tile__t { font: 400 clamp(32px, 2.8vw, 44px)/1.02 var(--serif); margin-top: auto; padding-top: 48px; }
.ctl-tile__t em { color: #C9D3BE; }
.ctl-tile__x { margin-top: 14px; font-size: 14px; color: var(--on-forest-muted); }
.ctl-tile .btn { margin-top: 26px; align-self: flex-start; }
@media (max-width: 1099px) {
  .ctl { grid-template-columns: minmax(0, 1fr); gap: 0; padding-top: 20px; }
  .ctl__bar { flex-wrap: wrap; }
  .ctl__fbtn { display: inline-flex; }
  .ctl__n { order: 3; width: 100%; }
  .ctl__side { position: fixed; inset: 0; z-index: 135; max-height: none; padding: 0; background: var(--bg); display: flex; flex-direction: column;
    visibility: hidden; opacity: 0; transform: translateY(14px); transition: opacity .25s, transform .3s var(--ease), visibility 0s .3s; }
  .ctl__side.is-open { visibility: visible; opacity: 1; transform: none; transition-delay: 0s; }
  .ctl__sheet-h { display: flex; justify-content: space-between; align-items: center; height: var(--hdr); padding: 0 var(--gut); border-bottom: 1px solid var(--line); flex: none; }
  .ctl__sheet-t { font: 400 30px/1 var(--serif); }
  .ctl__groups { flex: 1; overflow-y: auto; padding: 8px var(--gut) 24px; }
  .ctl__sheet-f { display: grid; grid-template-columns: auto 1fr; gap: 10px; padding: 14px var(--gut) 60px; border-top: 1px solid var(--line); flex: none; }
}
@media (max-width: 899px) { .ctl-head { display: block; } .ctl-head__x { margin-top: 18px; max-width: 34em; } }
@media (max-width: 759px) {
  .ctl-head { padding-bottom: 26px; }
  .ctl-cats { margin: 0 calc(var(--gut) * -1); padding: 12px var(--gut); overflow-x: auto; scrollbar-width: none; }
  .ctl-cats::-webkit-scrollbar { display: none; }
  .ctl-cats .chips { flex-wrap: nowrap; }
  .ctl-tile { grid-column: 1 / -1; padding: 24px 20px; }
  .pgrid:has(> .ctl-tile) { grid-auto-flow: row dense; } /* плитка во всю ширину не оставляет дыру в сетке из двух колонок */
  .ctl-tile__t { padding-top: 28px; }
}

/* =====================================================================
   Карточка формулы
   ===================================================================== */
.pd { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(32px, 4.5vw, 80px); padding-top: 24px; padding-bottom: clamp(56px, 7vw, 104px); align-items: start; }
.pd__gal { position: relative; min-width: 0; }
.pd__rail { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.pd__shot { margin: 0; }
.pd__shot:first-child { grid-column: 1 / -1; }
.pd__shot .ph img { width: 100%; height: 100%; object-fit: cover; }
.pd__cnt { display: none; }
.pd__buy { position: sticky; top: calc(var(--hdr) + 24px); }
.pd__meta { display: flex; flex-wrap: wrap; gap: 6px 18px; align-items: baseline; font-size: 13px; color: var(--muted); padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.pd__meta .code { font-family: var(--mono); font-size: 13px; }
.pd__t { margin-top: 22px; font: 400 clamp(40px, 4.1vw, 64px)/.98 var(--serif); letter-spacing: -.012em; }
.pd__t em { font-style: italic; color: var(--moss); display: block; }
.pd__sub { margin-top: 14px; font-size: 16px; color: var(--muted); }
.pd__rate { margin-top: 14px; display: flex; align-items: center; gap: 10px; font-size: 14px; }
.pd__rate b { font-weight: 600; }
.pd__short { margin-top: 20px; font-size: 15.5px; max-width: 32em; }
.pd__acts { margin-top: 22px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); }
.pd__acts > div { display: flex; gap: 12px; align-items: baseline; padding: 11px 0; border-bottom: 1px solid var(--line); min-width: 0; }
.pd__acts > div:nth-child(odd) { padding-right: 14px; }
.pd__acts dt { color: var(--accent-ink); font-size: 14px; min-width: 3.6em; }
.pd__acts dd { margin: 0; font-size: 13.5px; line-height: 1.35; }
.pd__price { margin-top: 26px; display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 18px; }
.price--xl { font-size: 28px; font-weight: 500; letter-spacing: -.01em; }
.price--xl s { font-size: 17px; }
.pd__dol { font-size: 13px; color: var(--muted); }
.pd__save { margin-top: 10px; display: flex; gap: 8px; align-items: center; font-size: 13.5px; color: var(--success); }
.pd__act { margin-top: 20px; display: grid; grid-template-columns: auto 1fr auto; gap: 10px; align-items: stretch; }
.pd__act .qty { height: 52px; }
.pd__act .qty button { height: 50px; width: 40px; }
.pd__add { min-height: 52px; }
.pd__fav { position: static; width: 52px; height: 52px; border: 1px solid var(--line-strong); border-radius: 2px; background: transparent; }
.pd__gift { margin-top: 16px; font-size: 14px; display: flex; gap: 10px; align-items: flex-start; }
p.pd__gift { color: var(--moss); align-items: center; }
.pd__gift-x { display: block; font-size: 12.5px; color: var(--muted); margin-top: 2px; }
.pd__perks { margin-top: 24px; border-top: 1px solid var(--line); }
.pd__perks li { display: flex; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--line); font-size: 13.5px; line-height: 1.5; color: var(--muted); }
.pd__perks .ic { width: 20px; height: 20px; flex: none; color: var(--moss); }
.pd__perks a { color: var(--text); }

.pd-how__g { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; }
.pd-how__t { grid-column: 1 / span 4; }
.pd-how__x { grid-column: 6 / span 7; }
.pd-ben { margin-top: 28px; display: grid; grid-template-columns: 1fr 1fr; gap: 0 28px; }
.pd-ben li { display: flex; gap: 10px; padding: 12px 0; border-top: 1px solid var(--line); font-size: 14.5px; }
.pd-ben .ic { color: var(--accent-ink); margin-top: 3px; flex: none; }
.pd-ki__h { margin-top: clamp(56px, 7vw, 96px); font: italic 400 24px/1.2 var(--serif); color: var(--moss); padding-bottom: 14px; border-bottom: 1px solid var(--line-strong); }
.pd-ki { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.pd-ki__i { padding: 24px 24px 0 0; }
.pd-ki__i + .pd-ki__i { padding-left: 24px; border-left: 1px solid var(--line); }
.pd-ki__v { font: 400 clamp(56px, 6.4vw, 104px)/.9 var(--serif); letter-spacing: -.03em; color: var(--forest); font-variant-numeric: lining-nums; }
.pd-ki__n { margin-top: 18px; font-weight: 600; font-size: 15px; }
.pd-ki__r { margin-top: 6px; font-size: 14px; color: var(--muted); }

.pd-pr__g { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; align-items: center; }
.pd-pr__h { grid-column: 1 / span 6; }
.pd-pr__src { margin: 22px 0 18px; max-width: 34em; color: var(--muted); }
.pd-pr__card { grid-column: 8 / span 5; border-top: 2px solid var(--accent); padding-top: 22px; }
.pd-pr__v { font: 400 clamp(84px, 10vw, 156px)/.85 var(--serif); letter-spacing: -.04em; color: var(--accent-ink); }
.pd-pr__m { margin-top: 14px; font-size: 16px; }
.pd-pr__d { margin-top: 24px; display: grid; grid-template-columns: repeat(3, auto); gap: 18px; border-top: 1px solid var(--line); padding-top: 14px; }
.pd-pr__d dt { font-size: 12.5px; color: var(--muted); }
.pd-pr__d dd { margin: 4px 0 0; font-size: 14.5px; }

.pd-set__g { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; align-items: start; }
.pd-set__g > div { grid-column: 1 / span 5; }
.pd-set__x { margin-top: 18px; color: var(--muted); max-width: 30em; }
.pd-set__l { grid-column: 7 / span 6; }
.pd-set__l li { display: grid; grid-template-columns: 30px 1fr; align-items: center; }
.pd-set__n { color: var(--accent-ink); font-size: 13px; border-top: 1px solid var(--line); align-self: stretch; padding-top: 38px; }
.pd-set__l li:last-child .prow, .pd-set__l li:last-child .pd-set__n { border-bottom: 1px solid var(--line); }

.pd-acc__g { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; }
.pd-acc__side { grid-column: 1 / span 4; padding-top: 18px; }
.pd-acc__k { font-size: 14px; color: var(--muted); }
.pd-acc__k + .pd-acc__k { margin-top: 4px; }
.pd-acc .acc { grid-column: 6 / span 7; }
.pd-inci { font-family: var(--mono); font-size: 12.5px; line-height: 1.8; color: var(--muted); }
.pd-av { color: var(--text); }
.pd-warn { padding: 12px 14px; border-left: 2px solid var(--accent); background: var(--surface); }

.pd-or__g { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: 40px; align-items: center; }
.map--focus .mk:not(.is-on) { opacity: .28; pointer-events: none; }
.map--focus .mk:not(.is-on) .mk__l { display: none; }
.pd-or__l li + li { border-top: 1px solid var(--line); }
.pd-or__l { border-top: 1px solid var(--line-strong); border-bottom: 1px solid var(--line); }
.pd-or__i { display: grid; grid-template-columns: 14px 1fr; gap: 2px 12px; padding: 16px 0; }
.pd-or__i .dot--season { width: 10px; height: 10px; border-radius: 50%; margin-top: 9px; }
.pd-or__n { font: 400 24px/1.15 var(--serif); }
.pd-or__r, .pd-or__c, .pd-or__s { grid-column: 2; }
.pd-or__r { font-size: 14px; }
.pd-or__c { font-size: 11.5px; color: var(--warm-grey); }
.pd-or__s { font-size: 13.5px; color: var(--muted); margin-top: 6px; }
.pd-or__i:hover .pd-or__n { color: var(--forest); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }

.pd-rt__g { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 5vw, 80px); }
.pd-rt__g h2 { margin-bottom: 18px; }
.pd-rt__l { border-bottom: 1px solid var(--line); }
.pd-rt__i { display: grid; grid-template-columns: 40px 1fr auto; gap: 2px 14px; align-items: center; padding: 14px 0; border-top: 1px solid var(--line); }
.pd-rt__ic { grid-row: span 2; width: 40px; height: 40px; border: 1px solid var(--line-strong); border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; color: var(--accent-ink); }
.pd-rt__ic .ic { width: 20px; height: 20px; }
.pd-rt__n { font: 400 22px/1.15 var(--serif); }
.pd-rt__w { grid-column: 2; font-size: 13.5px; color: var(--muted); }
.pd-rt__d { grid-row: 1 / span 2; grid-column: 3; font-size: 12px; color: var(--muted); }
.pd-rt__i:hover .pd-rt__n { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.pd-rt__pairs .prow:last-child { border-bottom: 1px solid var(--line); }

.pd-rv__h { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: clamp(28px, 3.5vw, 48px); }
.pd-rv__sc { display: flex; align-items: center; gap: 16px; }
.pd-rv__sc > p:last-child { display: flex; flex-direction: column; gap: 4px; font-size: 13px; color: var(--muted); }
.pd-rv__v { font: 400 72px/.9 var(--serif); color: var(--forest); }
.pd-rv__g { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.pd-rv__g .rq { height: 100%; }
.pd-rv__note { margin-top: 24px; }
.pd-rec__t { margin-bottom: 14px; }
.pd-rec { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 40px; }

.pd-bar { display: none; }
@media (max-width: 1199px) {
  .pd-ki { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pd-ki__i:nth-child(3) { padding-left: 0; border-left: 0; }
  .pd-ki__i:nth-child(n+3) { margin-top: 24px; border-top: 1px solid var(--line); }
}
@media (max-width: 899px) {
  .pd { grid-template-columns: minmax(0, 1fr); gap: 28px; padding-top: 14px; }
  .pd__gal { margin: 0 calc(var(--gut) * -1); }
  .pd__rail { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 10px; padding: 0 var(--gut); scrollbar-width: none; }
  .pd__rail::-webkit-scrollbar { display: none; }
  .pd__shot { flex: 0 0 86%; scroll-snap-align: center; }
  .pd__shot:only-child { flex-basis: 100%; }
  .pd__cnt { display: block; position: absolute; right: calc(var(--gut) + 10px); top: 10px; padding: 4px 8px; background: var(--surface); font-size: 12px; border-radius: 2px; }
  .pd__buy { position: static; }
  .pd-how__t, .pd-how__x, .pd-pr__h, .pd-pr__card, .pd-set__g > div, .pd-set__l, .pd-acc__side, .pd-acc .acc { grid-column: 1 / -1; }
  .pd-how__x { margin-top: 24px; }
  .pd-pr__card { margin-top: 36px; }
  .pd-set__l { margin-top: 24px; }
  .pd-acc__side { padding: 0 0 14px; }
  .pd-or__g { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .pd-rt__g { grid-template-columns: minmax(0, 1fr); }
  .pd-rv__g { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .pd-rec { grid-template-columns: minmax(0, 1fr); }
  .pd-bar { display: flex; position: fixed; left: 12px; right: 12px; bottom: 58px; z-index: 90; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 10px 10px 16px;
    background: var(--forest); color: var(--on-forest); border-radius: 2px; transform: translateY(calc(100% + 80px)); visibility: hidden; transition: transform .35s var(--ease), visibility 0s .35s; }
  .pd-bar.on { transform: none; visibility: visible; transition-delay: 0s; }
  .pd-bar__t { display: flex; flex-direction: column; min-width: 0; }
  .pd-bar__n { font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--on-forest-muted); }
  .pd-bar .btn { background: var(--accent); border-color: var(--accent); color: var(--forest-deep); flex: none; }
}
@media (max-width: 559px) {
  .pd__acts { grid-template-columns: minmax(0, 1fr); }
  .pd__acts > div:nth-child(odd) { padding-right: 0; }
  .pd__act { grid-template-columns: auto 1fr auto; }
  .pd-ben { grid-template-columns: minmax(0, 1fr); }
  .pd-ki { grid-template-columns: minmax(0, 1fr); }
  .pd-ki__i, .pd-ki__i + .pd-ki__i { padding: 20px 0 0; border-left: 0; }
  .pd-ki__i + .pd-ki__i { margin-top: 20px; border-top: 1px solid var(--line); }
  .pd-ki__v { font-size: 64px; }
  .pd-pr__d { grid-template-columns: 1fr 1fr; }
  .pd-rv__h { flex-direction: column; align-items: flex-start; }
}
/* мобильные карточки товара: один актив и бейдж не налезает на «избранное» */
@media (max-width: 559px) {
  .pc__acts.mono { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  .pc__badge { max-width: calc(100% - 64px); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
}
.pd-spec { grid-column: 1 / span 4; border-top: 1px solid var(--line-strong); }
.pd-spec > div { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.pd-spec dt { font-size: 13px; color: var(--muted); }
.pd-spec dd { margin: 0; font: italic 400 21px/1.15 var(--serif); text-align: right; }
.pd-rv__o { display: flex; flex-direction: column; }
.pd-rv__ol { font-size: 12.5px; color: var(--muted); margin-bottom: 10px; }
.pd-rv__o .rq { flex: 1; border-top-color: var(--line-strong); }
@media (max-width: 899px) { .pd-spec { grid-column: 1 / -1; margin-bottom: 28px; } }
.pd__rail--2 .pd__shot--s { grid-column: 1 / -1; }
.pd__rail--2 .pd__shot--s .ph { aspect-ratio: 16 / 9 !important; }
.pd-rt__g > div:only-child { grid-column: 1 / -1; max-width: 640px; }
@media (max-width: 899px) { .pd__rail--2 .pd__shot--s .ph { aspect-ratio: 4 / 5 !important; } }

/* =====================================================================
   Корзина, оформление, «заказ принят»
   ===================================================================== */
.toast button { text-decoration: underline; text-underline-offset: 3px; color: var(--accent); font-weight: 600; margin-left: 4px; }
.ct { padding-bottom: clamp(56px, 7vw, 104px); }
.ct-head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px 24px; flex-wrap: wrap; padding: 22px 0 22px; border-bottom: 1px solid var(--text); }
.ct-head__t { font: 400 clamp(46px, 6vw, 92px)/.95 var(--serif); letter-spacing: -.015em; }
.ct-head__t em { font-style: italic; color: var(--moss); }
.ct-head__n { display: flex; gap: 24px; align-items: baseline; font-size: 14px; }
.ct-head__n .mono { font-size: 13px; color: var(--muted); }
.ct__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 380px); gap: clamp(32px, 5vw, 88px); align-items: start; }
.ct__main { min-width: 0; }
.ct__side { position: sticky; top: calc(var(--hdr) + 24px); padding-top: 28px; }

.ct-blk { padding: clamp(32px, 3.6vw, 48px) 0; border-bottom: 1px solid var(--line); }
.ct-blk--lines { padding-top: 0; }
.ct-blk__h { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; }
.ct-blk__t { font: 400 clamp(28px, 2.6vw, 38px)/1.05 var(--serif); }
.ct-blk__n { color: var(--muted); }
.ct-blk__x { margin-top: 10px; font-size: 14px; color: var(--muted); max-width: 40em; }

.ct-li { display: grid; grid-template-columns: 128px minmax(0, 1fr) auto 128px; gap: 0 28px; align-items: start; padding: 28px 0; border-bottom: 1px solid var(--line); }
.ct-li:last-child { border-bottom: 0; }
.ct-li__img { display: block; aspect-ratio: 4 / 5; overflow: hidden; background: var(--cream); }
.ct-li__img img { width: 100%; height: 100%; object-fit: cover; }
.ct-li__meta { display: flex; gap: 14px; font-size: 12.5px; color: var(--muted); }
.ct-li__name { margin-top: 8px; font: 400 clamp(24px, 2vw, 30px)/1.05 var(--serif); }
.ct-li__name a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.ct-li__sub { margin-top: 6px; font-size: 14px; color: var(--muted); max-width: 30em; }
.ct-li__set { margin-top: 10px; display: flex; gap: 8px; align-items: center; font-size: 13px; color: var(--moss); }
.ct-li__acts { margin-top: 16px; display: flex; flex-wrap: wrap; gap: 6px 22px; }
.ct-li__lnk { display: inline-flex; align-items: center; gap: 7px; min-height: 32px; font-size: 13px; color: var(--muted); }
.ct-li__lnk:hover { color: var(--text); }
.ct-li__lnk .t-on, .ct-li__lnk.is-on .t-off { display: none; }
.ct-li__lnk.is-on .t-on { display: inline; }
.ct-li__lnk.is-on { color: var(--accent-ink); }
.ct-li__lnk.is-on .ic { fill: var(--accent); stroke: var(--accent-ink); }
.ct-li__q { padding-top: 2px; }
.ct-li__sum { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; padding-top: 8px; text-align: right; }
.ct-li__sum .price { font-size: 18px; }
.ct-li__each { font-size: 12.5px; color: var(--muted); }
.ct-li__old { font-size: 13px; color: var(--muted); }

/* пробники */
.smp { margin-top: 24px; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 14px; }
.smp__o { position: relative; display: block; cursor: pointer; }
.smp__o input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.smp__in { display: flex; flex-direction: column; gap: 6px; font-size: 13px; line-height: 1.3; }
.smp__img { position: relative; display: block; aspect-ratio: 1; overflow: hidden; background: var(--cream); outline: 1px solid transparent; outline-offset: 0; transition: outline-color .2s; }
.smp__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.smp__o:hover .smp__img img { transform: scale(1.04); }
.smp__ck { position: absolute; right: 8px; top: 8px; width: 26px; height: 26px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
  background: rgba(251, 248, 241, .85); border: 1px solid var(--line-strong); color: transparent; transition: background-color .2s, color .2s, border-color .2s; }
.smp__ck .ic { width: 15px; height: 15px; stroke-width: 2; }
.smp__o input:checked + .smp__in .smp__img { outline: 2px solid var(--forest); outline-offset: -2px; }
.smp__o input:checked + .smp__in .smp__ck { background: var(--forest); border-color: var(--forest); color: var(--on-forest); }
.smp__o input:focus-visible + .smp__in .smp__img { outline: 2px solid var(--accent); outline-offset: 2px; }
.smp__in .code { margin-top: 4px; font-size: 11.5px; }
.smp__n { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* подарок */
.ct-wrap { margin-top: 24px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.ct-wrap__p { font-weight: 500; white-space: nowrap; }
.ct-wrap__p s { color: var(--muted); font-weight: 400; margin-right: 4px; }
.ct-card__tg { margin-top: 24px; }
.ct-card { margin-top: 20px; padding: 24px; background: var(--surface); border: 1px solid var(--line); display: grid; gap: 20px; }
.ct-des { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: -10px; }
.ct-des__o { position: relative; display: block; cursor: pointer; }
.ct-des__o input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.ct-des__in { display: flex; flex-direction: column; gap: 8px; font-size: 13px; }
.ct-des__in .ph { outline: 1px solid var(--line); outline-offset: 0; }
.ct-des__o input:checked + .ct-des__in .ph { outline: 2px solid var(--forest); outline-offset: 3px; }
.ct-des__o input:checked + .ct-des__in .ct-des__n { color: var(--forest); font-weight: 600; }
.ct-des__o input:focus-visible + .ct-des__in .ph { outline: 2px solid var(--accent); outline-offset: 3px; }
.ct-card__f .ta { font: italic 400 21px/1.4 var(--serif); background: var(--bg); min-height: 130px; }
.ct-card__meta { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; }
.ct-card__meta .mono { color: var(--muted); flex: none; }
.ct-card__tpl .chips { margin-top: 8px; }

/* сводка */
.sum { border-top: 2px solid var(--forest); padding-top: 18px; }
.sum__t { font: 400 30px/1.1 var(--serif); }
.sum__items { margin-top: 14px; border-top: 1px solid var(--line); }
.sum__items li { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--line); font-size: 13.5px; line-height: 1.3; }
.sum__img img { width: 44px; height: 55px; object-fit: cover; background: var(--cream); }
.sum__nm .mono { color: var(--muted); white-space: nowrap; }
.sum__edit { margin-top: 10px; font-size: 13px; }
.sum__dl { margin-top: 14px; }
.sum__dl > div { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 9px 0; border-bottom: 1px solid var(--line); font-size: 14px; }
.sum__dl dt { color: var(--muted); min-width: 0; }
.sum__dl dd { margin: 0; font-variant-numeric: tabular-nums; white-space: nowrap; }
.sum__m { display: block; font-size: 12.5px; color: var(--warm-grey); margin-top: 2px; }
.sum__total { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 16px 0 4px; }
.sum__total span { font: 400 26px/1 var(--serif); }
.sum__total b { font-size: 26px; font-weight: 500; letter-spacing: -.01em; }
.sum__x { font-size: 12.5px; color: var(--muted); }
.sum__save { margin-top: 10px; display: flex; gap: 6px; align-items: center; font-size: 13px; color: var(--success); }
.sum__ship { margin-top: 18px; }
.sum__pts { margin-top: 14px; font-size: 12.5px; color: var(--muted); }
.sum__pts .mono { color: var(--forest); font-weight: 500; }
.sum__go { margin-top: 22px; display: grid; gap: 12px; }
.sum__promo { display: flex; }
.sum__promo .inp { min-height: 46px; border-right: 0; }
.sum__promo .btn { min-height: 46px; padding: 0 16px; flex: none; }
.sum__promo-m { font-size: 12.5px; color: var(--muted); display: none; margin-top: -4px; }
.sum__promo-m.is-on { display: block; }
.sum__go [data-checkout-start] { min-height: 56px; font-size: 15px; }
.sum__dol { font-size: 12.5px; color: var(--muted); text-align: center; }
.ct-last { margin: -40px 0 56px; font-size: 14px; color: var(--muted); }
.ct-last .mono { color: var(--text); }

/* форма оформления */
.co { padding-top: 8px; }
.co-s { margin: 0; padding: clamp(28px, 3vw, 40px) 0; border: 0; border-bottom: 1px solid var(--line); min-width: 0; }
.co-s:last-child { border-bottom: 0; }
.co-s__h { float: left; display: flex; align-items: baseline; gap: 16px; width: 100%; padding: 0; margin-bottom: 22px; flex-wrap: wrap; }
.co-s__h ~ * { clear: both; }  /* все соседи после плавающей «легенды»: иначе сетка полей рядом с ней схлопывается в 0 */
.co-s__n { color: var(--accent-ink); font-size: 13px; }
.co-s__t { font: 400 clamp(30px, 2.8vw, 40px)/1 var(--serif); }
.co-s__x { margin-left: auto; font-size: 13px; color: var(--muted); }
.co-g { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 18px 16px; }
.co-g > .field { grid-column: span 3; }
.co-g > .co-g__w { grid-column: 1 / -1; }
.co-g > [data-f="city"] { grid-column: span 2; }
.co-g > .co-g__w2 { grid-column: span 4; }
.co-club { margin-top: 20px; }
.co-addr-x { margin-top: 10px; font-size: 13px; color: var(--muted); min-height: 1.5em; }
.co-dl { margin-top: 18px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.co-dl__p { white-space: nowrap; font-weight: 500; }
.co-dl__time { display: flex; gap: 6px; align-items: center; color: var(--text); margin-bottom: 3px; }
.co-dl__time .ic { color: var(--moss); }
.co-dl__free { display: block; margin-top: 4px; color: var(--moss); }
.co-dl__free:empty { display: none; }
.co-dl__off { display: none; margin-top: 4px; color: var(--danger); }
.co-dl__o.is-off { cursor: not-allowed; }
.co-dl__o.is-off .tile__in { opacity: .55; background: transparent; }
.co-dl__o.is-off .co-dl__off { display: block; }
.co-rcp__tg { margin-top: 22px; }
.co-rcp { margin-top: 16px; padding: 20px; background: var(--surface); border-left: 2px solid var(--moss); display: grid; gap: 16px; }
.co-cm { margin-top: 22px; }
.co-pay { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.co-pay__o:last-child:nth-child(odd) { grid-column: 1 / -1; }
.co-pay__x { margin-top: 14px; padding: 12px 14px; background: var(--surface); border-left: 2px solid var(--accent); font-size: 14px; }
.co-agree { margin-top: 24px; }
.co .note-demo { margin-top: 20px; }
.co-err { margin-top: 16px; padding: 12px 14px; border-left: 2px solid var(--danger); background: #F6E6E1; color: var(--danger); font-size: 14px; }
.co-submit { margin-top: 20px; min-height: 58px; font-size: 15.5px; }
.co-submit[disabled] { opacity: .8; cursor: progress; }
.co-legal { margin-top: 12px; text-align: center; }

/* мобильная плашка итога */
.ct-bar { display: none; }

/* заказ принят */
.od { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(32px, 5vw, 96px); padding-top: 32px; padding-bottom: clamp(64px, 8vw, 120px); align-items: start; outline: none; }
.od__no { font-size: 14px; color: var(--muted); display: flex; gap: 10px; align-items: baseline; }
.od__no .mono { font-size: 15px; color: var(--text); padding: 3px 8px; border: 1px solid var(--line-strong); }
.od__t { margin-top: 26px; font: 400 clamp(52px, 7.4vw, 116px)/.92 var(--serif); letter-spacing: -.018em; }
.od__t em { font-style: italic; color: var(--moss); }
.od__x { margin-top: 28px; }
.od__steps { margin-top: clamp(36px, 4vw, 56px); border-top: 1px solid var(--line-strong); }
.od__steps li { display: grid; grid-template-columns: 48px minmax(0, 220px) minmax(0, 1fr); gap: 4px 20px; align-items: baseline; padding: 16px 0; border-bottom: 1px solid var(--line); }
.od__sn { color: var(--accent-ink); font-size: 13px; }
.od__sw { font: italic 400 21px/1.2 var(--serif); }
.od__sd { font-size: 14px; color: var(--muted); }
.od__btns { margin-top: 32px; gap: 14px 26px; }
.od .note-demo { margin-top: 28px; max-width: 40em; }
.od__r { background: var(--surface); padding: clamp(22px, 2.4vw, 32px); border-top: 2px solid var(--forest); }
.od__rt { font: 400 28px/1.1 var(--serif); }
.od__items { margin-top: 16px; border-top: 1px solid var(--line); }
.od__items li { display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--line); font-size: 14px; line-height: 1.3; }
.od__img img { width: 48px; height: 60px; object-fit: cover; background: var(--cream); }
.od__nm .code { display: block; font-size: 11px; margin-bottom: 2px; }
.od__extra { margin-top: 12px; font-size: 13.5px; color: var(--muted); }
.od__extra b { color: var(--text); font-weight: 600; }
.od__dl { margin-top: 18px; }
.od__who { margin-top: 20px; padding-top: 14px; border-top: 1px solid var(--line-strong); display: grid; gap: 10px; }
.od__who > div { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 12px; font-size: 14px; }
.od__who dt { color: var(--muted); }
.od__who dd { margin: 0; }

@media (max-width: 1199px) {
  .ct-li { grid-template-columns: 112px minmax(0, 1fr) auto; grid-template-areas: 'img txt sum' 'img q sum'; gap: 0 22px; }
  .ct-li__img { grid-area: img; } .ct-li__txt { grid-area: txt; } .ct-li__q { grid-area: q; padding-top: 16px; } .ct-li__sum { grid-area: sum; }
  .smp { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 979px) {
  .ct__grid { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .ct__side { position: static; padding-top: 32px; }
  .od { grid-template-columns: minmax(0, 1fr); }
  .ct-bar { display: flex; position: fixed; left: 12px; right: 12px; bottom: 58px; z-index: 90; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 10px 10px 16px;
    background: var(--forest); color: var(--on-forest); border-radius: 2px; transform: translateY(calc(100% + 80px)); visibility: hidden; transition: transform .35s var(--ease), visibility 0s .35s; }
  .ct-bar.on { transform: none; visibility: visible; transition-delay: 0s; }
  .ct-bar__t { display: flex; flex-direction: column; min-width: 0; }
  .ct-bar__l { font-size: 12.5px; color: var(--on-forest-muted); }
  .ct-bar .price { font-size: 18px; }
  .ct-bar .btn { background: var(--accent); border-color: var(--accent); color: var(--forest-deep); flex: none; }
}
@media (max-width: 759px) {
  .ct-head { padding-top: 16px; }
  .ct-li { grid-template-columns: 84px auto minmax(0, 1fr); grid-template-areas: 'img txt txt' 'img q sum'; gap: 0 16px; padding: 22px 0; }
  .ct-li__name { font-size: 22px; }
  .ct-li__sub { font-size: 13px; }
  .ct-li__acts { margin-top: 10px; gap: 0 18px; }
  .ct-li__q { padding-top: 12px; }
  .ct-li__sum { padding-top: 14px; }
  .ct-wrap { grid-template-columns: minmax(0, 1fr); }
  .ct-card { padding: 18px 16px; }
  .ct-card__meta { flex-direction: column; gap: 4px; }
  .co-g { grid-template-columns: minmax(0, 1fr); }
  .co-g > .field, .co-g > [data-f="city"], .co-g > .co-g__w2 { grid-column: 1 / -1; }
  .co-dl, .co-pay { grid-template-columns: minmax(0, 1fr); }
  .co-s__x { margin-left: 0; width: 100%; }
  .od__steps li { grid-template-columns: 36px minmax(0, 1fr); }
  .od__sd { grid-column: 2; }
  .od__who > div { grid-template-columns: 90px minmax(0, 1fr); }
}
@media (max-width: 420px) {
  .smp { gap: 10px; }
  .ct-des { gap: 8px; }
}

/* ===================== Карта ингредиентов ===================== */
.ing-head__m { margin-top: 18px; color: var(--warm-grey); }
.ing-map { padding: clamp(28px, 3vw, 44px) 0 clamp(48px, 6vw, 88px); overflow: hidden; }
.ing-map__bar { display: flex; align-items: baseline; justify-content: space-between; gap: 12px 32px; flex-wrap: wrap; padding-bottom: 18px; border-bottom: 1px solid rgba(243, 238, 228, .14); }
.ing-map__lg, .cal__lg { display: flex; gap: 6px 20px; flex-wrap: wrap; font-size: 13px; color: var(--on-forest-muted); }
.ing-map__lg > span, .cal__lg > span { display: inline-flex; align-items: center; gap: 8px; }
.on-forest .dot--summer { background: #A9C08F; } .on-forest .dot--winter { background: #9FBBD0; }
.ing-map__hint { font-size: 13px; color: var(--on-forest-muted); max-width: 46em; }
.ing-map__stage { display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, 36%); gap: clamp(28px, 3vw, 48px); align-items: start; margin-top: clamp(20px, 2.4vw, 36px); }
.ing-map__map { position: sticky; top: 96px; }
.ing-map .mk { font: inherit; }
.ing-map .mk.is-on .mk__l { background: var(--bg); color: var(--forest-deep); }

.ig { color: var(--text); }
.ig--panel { background: var(--bg); border-radius: 2px; padding: 26px 28px 22px; position: relative; z-index: 2; }
.ig--panel.is-in > * { animation: icIn .45s var(--ease) both; }
.ig--panel.is-in > :nth-child(3) { animation-delay: .04s; } .ig--panel.is-in > :nth-child(4) { animation-delay: .08s; } .ig--panel.is-in > :nth-child(n+5) { animation-delay: .12s; }
@keyframes icIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.ig__n { font-size: 12px; color: var(--warm-grey); margin-bottom: 14px; }
.ig__top { display: grid; grid-template-columns: 132px minmax(0, 1fr); gap: 20px; align-items: end; }
.ig__img .ph { background: var(--cream); }
.ig__reg { font-size: 13px; color: var(--muted); }
.ig__t { font: 400 clamp(34px, 3vw, 46px)/.98 var(--serif); margin-top: 6px; outline: none; }
.ig__lat { font: italic 400 18px/1.2 var(--serif); color: var(--moss); margin-top: 4px; }
.ig__co { font-size: 11.5px; color: var(--warm-grey); margin-top: 12px; }
.ig__dl { margin-top: 20px; border-top: 1px solid var(--line); }
.ig__dl > div { display: grid; grid-template-columns: 128px minmax(0, 1fr); gap: 14px; padding: 9px 0; border-bottom: 1px solid var(--line); font-size: 14px; line-height: 1.45; }
.ig__dl dt { color: var(--muted); font-size: 13px; }
.ig__dl dd { margin: 0; }
.ig__dl .dot { margin-right: 8px; vertical-align: 1px; }
.ig__story { margin-top: 16px; font-size: 14.5px; line-height: 1.6; color: var(--text); }
.ig__p { margin-top: 18px; }
.ig__ph { font: italic 400 19px/1.2 var(--serif); color: var(--moss); margin-bottom: 4px; }
.ig .prow { border-color: var(--line); }
.ig .prow__meta { color: var(--muted); }
.ig .code { color: var(--accent-ink); }
.ig .prow__add { border-color: var(--line-strong); }
.prow--ic { padding: 9px 0; grid-template-columns: 48px 1fr auto; }
.prow--ic .prow__img img { width: 48px; height: 60px; object-fit: cover; }
.prow--ic .prow__name { font-size: 17px; }
.ig__nav { display: flex; justify-content: space-between; gap: 12px; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); }
.ig__go { display: inline-flex; align-items: center; gap: 8px; min-height: 36px; font-size: 13.5px; color: var(--muted); }
.ig__go:hover { color: var(--text); }
.ig__go .ic { width: 16px; height: 16px; }

.ing-car { display: none; }
@media (max-width: 1199px) {
  .ig--panel { padding: 22px 22px 18px; }
  .ig__top { grid-template-columns: 104px minmax(0, 1fr); }
  .ig__dl > div { grid-template-columns: 110px minmax(0, 1fr); }
}
@media (max-width: 979px) {
  .ing-map__stage { display: block; }
  .ing-map__map { position: static; }
  .ig--panel { margin-top: 20px; }
}
@media (max-width: 759px) {
  .ing-map { padding-top: 20px; }
  .ing-map__hint { display: none; }
  .ig--panel { display: none; }
  .ing-car { display: block; margin-top: 18px; }
  .ing-car__bar { display: flex; align-items: center; justify-content: space-between; color: var(--on-forest-muted); font-size: 12px; }
  .ing-car__btns { display: flex; gap: 4px; }
  .ing-car__btns .icbtn { border: 1px solid rgba(243, 238, 228, .3); width: 44px; }
  .ing-car__rail { list-style: none; margin: 10px calc(var(--gut) * -1) 0; padding: 0 var(--gut); display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding: 0 var(--gut); scrollbar-width: none; }
  .ing-car__rail::-webkit-scrollbar { display: none; }
  .ig--car { flex: 0 0 86%; scroll-snap-align: start; background: var(--bg); border-radius: 2px; padding: 18px 18px 14px; }
  .ig__top { grid-template-columns: 92px minmax(0, 1fr); gap: 14px; }
  .ig__t { font-size: 32px; }
  .ig__lat { font-size: 16px; }
  .ig__dl > div { grid-template-columns: 1fr; gap: 2px; padding: 8px 0; font-size: 13.5px; }
  .ig__dl dt { font-size: 12px; }
  .ig__more summary { list-style: none; display: flex; align-items: center; justify-content: space-between; min-height: 44px; font: italic 400 18px/1 var(--serif); color: var(--moss); cursor: pointer; border-bottom: 1px solid var(--line); }
  .ig__more summary::-webkit-details-marker { display: none; }
  .ig__more[open] summary .ic { transform: rotate(180deg); }
  .ig__more .ig__story { margin-top: 10px; font-size: 14px; }
  .prow--ic { grid-template-columns: 48px 1fr; }
  .prow--ic .prow__img { grid-row: 1 / span 2; }
}

/* календарь сборов */
.cal-s { padding-bottom: clamp(40px, 5vw, 72px); }
.cal__now { display: flex; align-items: flex-start; gap: 12px; font: 400 clamp(20px, 1.8vw, 26px)/1.3 var(--serif); margin-bottom: 24px; }
.cal__pulse { margin-top: .5em; width: 10px; height: 10px; border-radius: 50%; background: var(--accent); flex: none; box-shadow: 0 0 0 0 rgba(224, 120, 42, .5); animation: calP 2.4s ease-out infinite; }
@keyframes calP { 70% { box-shadow: 0 0 0 10px rgba(224, 120, 42, 0); } 100% { box-shadow: 0 0 0 0 rgba(224, 120, 42, 0); } }
@media (prefers-reduced-motion: reduce) { .cal__pulse { animation: none; } }
.cal { border-top: 1px solid var(--line-strong); }
.cal__body { list-style: none; margin: 0; padding: 0; }
.cal__r { display: grid; grid-template-columns: 210px repeat(12, minmax(0, 1fr)) 260px; align-items: center; border-bottom: 1px solid var(--line); min-height: 52px; transition: background-color .2s; }
.cal__r--h { min-height: 40px; font-size: 12px; color: var(--muted); }
.cal__r.is-on { background: var(--surface); }
.cal__nm { font: 400 21px/1.15 var(--serif); padding: 10px 12px 10px 0; }
a.cal__nm:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.cal__r.is-on .cal__nm { color: var(--accent-ink); }
.cal__m { text-align: center; }
.cal__ms { display: none; }
.cal__m.is-now { color: var(--accent-ink); font-weight: 600; }
.cal__c { position: relative; height: 100%; min-height: 52px; border-left: 1px solid var(--line); display: flex; align-items: center; }
.cal__c.is-now { background: rgba(224, 120, 42, .07); }
.cal__b { display: block; width: 100%; height: 12px; background: var(--moss); }
.cal__b--autumn { background: var(--accent); } .cal__b--winter { background: var(--winter); }
.cal__b.l { margin-left: 6px; border-radius: 6px 0 0 6px; } .cal__b.r { margin-right: 6px; border-radius: 0 6px 6px 0; }
.cal__b.l.r { border-radius: 6px; }
.cal__tx { font-size: 13px; color: var(--muted); padding-left: 20px; }
.cal__lg { margin-top: 18px; color: var(--muted); }
@media (max-width: 1099px) { .cal__r { grid-template-columns: 170px repeat(12, minmax(0, 1fr)); } .cal__tx { display: none; } }
@media (max-width: 759px) {
  .cal__r { grid-template-columns: 104px repeat(12, minmax(0, 1fr)); min-height: 44px; }
  .cal__nm { font-size: 16px; padding-right: 6px; }
  .cal__mf { display: none; } .cal__ms { display: inline; }
  .cal__c { min-height: 44px; }
  .cal__b { height: 9px; }
  .cal__b.l { margin-left: 3px; } .cal__b.r { margin-right: 3px; }
}
.ing-next__g { display: grid; grid-template-columns: 1fr 1fr; gap: 32px clamp(32px, 6vw, 96px); }
.ing-next__g > div { border-top: 1px solid var(--line-strong); padding-top: 24px; }
.ing-next__x { margin: 14px 0 22px; color: var(--muted); max-width: 34em; }
@media (max-width: 759px) { .ing-next__g { grid-template-columns: 1fr; } }

/* ===================== Ритуалы ===================== */
.rnav { position: sticky; top: var(--hdr); z-index: 30; background: rgba(243, 238, 228, .96); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.rnav__l { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.rnav__l li + li { border-left: 1px solid var(--line); }
.rnav__a { display: flex; align-items: center; gap: 10px; padding: 16px 20px; font-size: 14.5px; font-weight: 500; position: relative; transition: color .2s; }
.rnav__l li:first-child .rnav__a { padding-left: 0; }
.rnav__a::after { content: ''; position: absolute; left: 20px; right: 20px; bottom: -1px; height: 2px; background: var(--accent); transform: scaleX(0); transform-origin: left; transition: transform .35s var(--ease); }
.rnav__l li:first-child .rnav__a::after { left: 0; }
.rnav__a.is-on::after, .rnav__a:hover::after { transform: scaleX(1); }
.rnav__a .ic { color: var(--moss); flex: none; }
.rnav__d { margin-left: auto; color: var(--muted); font-size: 12px; }
.rit { padding: clamp(56px, 7vw, 112px) 0; }
.rit + .rit { border-top: 1px solid var(--line); }
.rit--evening { background: var(--forest-deep); border-top: 0 !important; }
.rit--evening + .rit { border-top: 0; }
.rit__g { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); column-gap: clamp(32px, 6vw, 104px); align-items: start; }
.rit__stick { position: sticky; top: calc(var(--hdr) + 80px); }
.rit__img .ph { background: var(--cream); }
.rit__img img { width: 100%; height: 100%; object-fit: cover; }
.rit__meta { display: flex; align-items: center; gap: 10px; margin-top: 22px; font-size: 13.5px; color: var(--muted); }
.rit__meta .mono { margin-left: auto; color: var(--text); }
.rit__meta .ic { color: var(--accent); }
.rit__t { margin-top: 10px; }
.rit__sub { font: italic 400 21px/1.3 var(--serif); color: var(--muted); margin-top: 6px; }
.rit__intro { font: 400 clamp(21px, 2vw, 27px)/1.35 var(--serif); max-width: 30em; padding-bottom: clamp(28px, 3vw, 40px); }
.rit__steps { counter-reset: none; border-top: 1px solid var(--line-strong); }
.rs { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 0 8px; padding: 26px 0 28px; border-bottom: 1px solid var(--line); }
.rs__n { font: 300 54px/0.9 var(--serif); color: var(--forest); font-variant-numeric: lining-nums; }
.rs__h { display: flex; align-items: baseline; gap: 16px; }
.rs__t { font: 500 21px/1.2 var(--sans); letter-spacing: -.01em; }
.rs__d { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; color: var(--muted); white-space: nowrap; }
.rs__d .ic { width: 13px; height: 13px; }
.rs__x { margin-top: 8px; color: var(--muted); max-width: 38em; }
.rs__p { display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; gap: 14px; align-items: center; margin-top: 18px; padding: 10px 12px 10px 10px; background: var(--surface); border-radius: 2px; }
.rs__img img { width: 52px; height: 64px; object-fit: cover; background: var(--cream); display: block; }
.rs__pm { display: flex; gap: 10px; font-size: 12px; color: var(--muted); }
.rs__pn { font: 400 19px/1.15 var(--serif); margin-top: 2px; }
.rs__pn a:hover { text-decoration: underline; text-underline-offset: 3px; }
.rs__alt { font-size: 13px; color: var(--muted); margin-top: 3px; }
.rs__end { display: flex; align-items: center; gap: 12px; }
.rs__end .price { font-size: 14.5px; }
.rs__in { display: inline-flex; align-items: center; gap: 5px; font-size: 13px; color: var(--success); font-weight: 500; }
.rb { margin-top: 26px; padding-top: 22px; border-top: 1px solid var(--line-strong); display: grid; gap: 10px; }
.rb__sum { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 6px; }
.rb__l { font-size: 14px; color: var(--muted); }
.rb__p { font-size: 22px; font-weight: 500; }
.rb__done { display: flex; align-items: center; gap: 8px; font-size: 14px; color: var(--success); font-weight: 500; }
.rb__set { margin-top: 16px; padding: 20px 22px 22px; border: 1px solid var(--accent); border-radius: 2px; display: grid; gap: 6px; }
.rb__st { display: flex; align-items: center; gap: 8px; font-size: 13.5px; color: var(--accent-ink); font-weight: 500; }
.rb__st .ic { color: var(--accent); }
.rb__sn { font: 400 23px/1.15 var(--serif); }
.rb__sn a:hover { text-decoration: underline; text-underline-offset: 3px; }
.rb__sx { font-size: 14px; color: var(--muted); }
.rb__sp { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 10px; margin: 6px 0 8px; }
.rb__sp .price { font-size: 20px; }
.rb__sp s { color: var(--muted); font-size: 15px; }
.rb__save { font: 500 12px/1 var(--mono); color: var(--accent-ink); background: rgba(224, 120, 42, .12); padding: 5px 7px; border-radius: 2px; }
.rit__tip { display: flex; gap: 12px; margin-top: 28px; padding: 18px 20px; background: var(--cream); border-left: 2px solid var(--accent); font-size: 14.5px; max-width: 40em; }
.rit__tip .ic { flex: none; margin-top: 3px; color: var(--accent); }
/* вечер — на тёмно-зелёном */
.rit--evening .rit__meta, .rit--evening .rit__sub, .rit--evening .rs__x, .rit--evening .rs__d, .rit--evening .rb__l, .rit--evening .rs__pm, .rit--evening .rs__alt, .rit--evening .rb__sx { color: var(--on-forest-muted); }
.rit--evening .rit__meta .mono { color: var(--on-forest); }
.rit--evening .rit__steps, .rit--evening .rb { border-top-color: rgba(243, 238, 228, .3); }
.rit--evening .rs { border-bottom-color: rgba(243, 238, 228, .14); }
.rit--evening .rs__n { color: #C9D3BE; }
.rit--evening .rs__p { background: rgba(243, 238, 228, .07); }
.rit--evening .rs__p .code { color: #C9D3BE; }
.rit--evening .rs__in, .rit--evening .rb__done { color: #A9D3A0; }
.rit--evening .prow__add { border-color: rgba(243, 238, 228, .4); color: var(--on-forest); }
.rit--evening .prow__add:hover { background: var(--on-forest); color: var(--forest-deep); border-color: var(--on-forest); }
.rit--evening .btn:not(.btn--accent):not(.btn--line) { background: var(--on-forest); color: var(--forest-deep); border-color: var(--on-forest); }
.rit--evening .btn--line { color: var(--on-forest); border-color: rgba(243, 238, 228, .45); }
.rit--evening .btn--line:hover { border-color: var(--on-forest); color: var(--on-forest); }
.rit--evening .rb__st { color: #F2A867; }
.rit--evening .rb__sp s { color: var(--on-forest-muted); }
.rit--evening .rb__save { color: #F2A867; background: rgba(224, 120, 42, .16); }
.rit--evening .rit__tip { background: rgba(243, 238, 228, .07); }
.rit--evening .ulink { text-decoration-color: rgba(243, 238, 228, .45); }
.rit--evening .rit__img .ph { background: var(--forest); }
.rit--weekend { background: var(--surface); }
.rit--weekend .rs__p { background: var(--bg); }
.rit-help__g { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: 32px 64px; align-items: end; }
.rit-help__a p { color: var(--muted); margin-bottom: 22px; max-width: 34em; }
@media (max-width: 1099px) {
  .rit__g { grid-template-columns: minmax(0, 4fr) minmax(0, 6fr); }
  .rs { grid-template-columns: 56px minmax(0, 1fr); }
  .rs__n { font-size: 44px; }
}
@media (max-width: 899px) {
  .rit__g { display: block; }
  .rit__stick { position: static; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0 28px; }
  .rit__img { grid-row: span 4; }
  .rit__meta { margin-top: 0; }
  .rit__intro { margin-top: 40px; }
  .rit-help__g { display: block; }
  .rit-help__a { margin-top: 20px; }
}
@media (max-width: 759px) {
  .rnav__a { flex-direction: column; align-items: flex-start; gap: 2px; padding: 12px 12px; font-size: 13.5px; line-height: 1.2; }
  .rnav__a > .ic { display: none; }
  .rnav__a::after { left: 12px; right: 12px; }
  .rnav__d { margin-left: 0; font-size: 11px; }
  .rit__stick { display: block; }
  .rit__img .ph { aspect-ratio: 4 / 3 !important; }
  .rit__meta { margin-top: 18px; }
  .rit__intro { margin-top: 32px; font-size: 21px; }
  .rs { grid-template-columns: 40px minmax(0, 1fr); padding: 22px 0 24px; }
  .rs__n { font-size: 36px; }
  .rs__h { flex-direction: column; gap: 4px; }
  .rs__d { margin-left: 0; }
  .rs__t { font-size: 19px; }
  .rs__p { grid-template-columns: 44px minmax(0, 1fr); margin-left: -40px; gap: 4px 12px; }
  .rs__img { grid-row: span 2; }
  .rs__img img { width: 44px; height: 56px; }
  .rs__end { grid-column: 2; justify-content: space-between; }
  .rb__set { padding: 18px; }
}

/* ===================== Лаборатория ===================== */
.lab-head .ph-head__t { font-size: clamp(46px, 6.2vw, 100px); grid-column: 1 / span 9; }
.lab-head .ph-head__x { grid-column: 10 / span 3; }
.lab-hero__img img { width: 100%; height: 100%; object-fit: cover; }
.lab-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-bottom: 1px solid var(--line-strong); }
.lab-facts__i { padding: 26px 28px 30px 0; }
.lab-facts__i + .lab-facts__i { border-left: 1px solid var(--line); padding-left: 28px; }
.lab-facts__v { font: 300 clamp(44px, 4.6vw, 72px)/1 var(--serif); color: var(--forest); letter-spacing: -.02em; }
.lab-facts__l { margin: 10px 0 0; font-size: 14px; color: var(--muted); max-width: 22em; }
.lab-path__g { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); column-gap: clamp(32px, 6vw, 104px); align-items: start; }
.lab-path__h { position: sticky; top: calc(var(--hdr) + 40px); }
.lab-path__x { margin-top: 22px; color: var(--muted); max-width: 30em; }
.lab-steps { position: relative; }
.lab-steps__line { position: absolute; left: 31px; top: 14px; bottom: 30px; width: 1px; background: var(--line-strong); }
.lab-steps__line i { position: absolute; inset: 0; background: var(--accent); transform-origin: top; transform: scaleY(0); width: 2px; left: -.5px; }
.lab-step { position: relative; display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 28px; padding-bottom: clamp(40px, 4.5vw, 64px); }
.lab-step:last-child { padding-bottom: 0; }
.lab-step__n { width: 64px; height: 64px; border-radius: 50%; border: 1px solid var(--line-strong); background: var(--bg); display: flex; align-items: center; justify-content: center; font: 400 30px/1 var(--serif); color: var(--forest); position: relative; z-index: 1; transition: background .4s var(--ease), color .4s, border-color .4s; }
.lab-step.is-past .lab-step__n { background: var(--forest); border-color: var(--forest); color: var(--on-forest); }
.lab-step__t { font: 400 clamp(26px, 2.4vw, 36px)/1.1 var(--serif); padding-top: 12px; }
.lab-step__x { margin-top: 12px; color: var(--muted); max-width: 36em; font-size: 16px; }
/* таблица тестов */
.ttab { border-top: 1px solid var(--text); }
.ttab__r { display: grid; grid-template-columns: minmax(0, 2.3fr) minmax(0, 1.6fr) minmax(0, 1.4fr) 110px minmax(0, 1.1fr) minmax(0, 2fr); gap: 20px; padding: 20px 0; border-bottom: 1px solid var(--line); align-items: start; font-size: 14.5px; }
.ttab__r--h { padding: 12px 0; font-size: 12.5px; color: var(--muted); font-weight: 500; }
.tprod { display: grid; gap: 3px; }
.tprod__n { font: 400 19px/1.15 var(--serif); }
.tprod:hover .tprod__n { text-decoration: underline; text-underline-offset: 3px; }
.ttab__me, .ttab__d { color: var(--muted); }
.ttab__v { font-size: 13px; padding-top: 2px; }
.tres__b { font-size: 22px; color: var(--accent-ink); font-weight: 500; letter-spacing: -.01em; line-height: 1.1; }
.tres__x { font-size: 13px; color: var(--muted); margin-top: 3px; }
.tdots { display: flex; flex-wrap: wrap; gap: 3px; margin-top: 8px; max-width: 152px; }
.tdots i { width: 7px; height: 7px; border-radius: 50%; background: var(--line-strong); }
.tdots i.on { background: var(--accent); }
.lab-disc { margin-top: 24px; font-size: 13px; color: var(--muted); max-width: 60em; }
.lab-std__g { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); column-gap: clamp(32px, 6vw, 104px); }
.lab-std__l li { display: flex; gap: 14px; align-items: baseline; padding: 16px 0; border-bottom: 1px solid rgba(243, 238, 228, .16); font-size: 17px; }
.lab-std__l li:first-child { border-top: 1px solid rgba(243, 238, 228, .16); }
.lab-std__l .ic { color: var(--accent); flex: none; transform: translateY(2px); }
.lab-cta__g { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: 24px 64px; align-items: end; }
.lab-cta__g p { color: var(--muted); margin-bottom: 22px; max-width: 34em; }
@media (max-width: 1199px) {
  .ttab__r { grid-template-columns: minmax(0, 2fr) minmax(0, 1.6fr) minmax(0, 1.3fr) 96px minmax(0, 1.8fr); }
  .ttab__d { display: none; }
}
@media (max-width: 979px) {
  .lab-head .ph-head__x { grid-column: 1 / -1; }
  .lab-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lab-facts__i:nth-child(3) { border-left: 0; padding-left: 0; }
  .lab-facts__i:nth-child(n+3) { border-top: 1px solid var(--line); }
  .lab-path__g, .lab-std__g, .lab-cta__g { display: block; }
  .lab-path__h { position: static; margin-bottom: 40px; }
  .lab-std__l { margin-top: 28px; }
  .lab-cta__g > div { margin-top: 20px; }
  .ttab { border-top: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .ttab__r { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 16px; padding: 18px; background: var(--bg); border: 0; border-radius: 2px; }
  .ttab__p { grid-column: 1 / -1; padding-bottom: 10px; border-bottom: 1px solid var(--line); margin-bottom: 6px; }
  .ttab__m { grid-column: 1 / -1; font-weight: 500; }
  .ttab__me { grid-column: 1; font-size: 13.5px; }
  .ttab__v { grid-column: 2; grid-row: 3; text-align: right; }
  .ttab__d { display: block; grid-column: 1 / -1; font-size: 13.5px; }
  .tres { grid-column: 1 / -1; margin-top: 8px; padding-top: 12px; border-top: 1px solid var(--line); }
  .ttab .ttab__r--h { display: none; }
}
@media (max-width: 759px) {
  .lab-hero .wrap { padding: 0; }
  .lab-hero__img .ph { aspect-ratio: 3 / 2 !important; }
  .lab-facts__v { font-size: 38px; }
  .lab-facts { padding: 0 var(--gut); }
  .lab-facts__i { padding: 20px 12px 22px 0; }
  .lab-facts__i + .lab-facts__i { padding-left: 14px; }
  .lab-facts__i:nth-child(3) { padding-left: 0; }
  .lab-facts__l { font-size: 13px; }
  .ttab { grid-template-columns: minmax(0, 1fr); }
  .lab-steps__line { left: 23px; }
  .lab-step { grid-template-columns: 48px minmax(0, 1fr); gap: 18px; }
  .lab-step__n { width: 48px; height: 48px; font-size: 24px; }
  .lab-step__t { padding-top: 8px; }
  .lab-std__l li { font-size: 15.5px; }
}
.sec--deep .d-xl em, .sec--deep .d-l em, .sec--deep .d-m em, .sec--deep .sh__t em, .rit--evening .d-l em { color: #C9D3BE; }

/* ===================== Журнал и статья ===================== */
.jbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 32px; padding: 18px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); margin-bottom: clamp(32px, 4vw, 56px); }
.jbar__n { font-size: 13.5px; color: var(--muted); }
.jf { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(28px, 4vw, 64px); align-items: center; padding-bottom: clamp(48px, 5vw, 80px); border-bottom: 1px solid var(--line); }
.jf__img { display: block; }
.jf__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
.jf__img:hover img { transform: scale(1.02); }
.jf__t { font: 400 clamp(34px, 3.6vw, 58px)/1.02 var(--serif); letter-spacing: -.012em; margin-top: 16px; }
.jf__t em { color: var(--moss); }
.jf__t a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 6px; }
.jf__lead { margin: 20px 0 28px; color: var(--muted); font-size: 16px; max-width: 32em; }
.jgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px clamp(20px, 2.4vw, 36px); padding: clamp(40px, 4vw, 64px) 0 clamp(64px, 7vw, 104px); }
.jgrid--f { padding-top: 0; }
.jtopics__g { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); column-gap: clamp(32px, 6vw, 104px); align-items: start; }
.jtopics__l { border-top: 1px solid var(--line-strong); }
.jtopics__b { width: 100%; display: grid; grid-template-columns: 180px minmax(0, 1fr) auto; gap: 16px; align-items: baseline; padding: 20px 0; border-bottom: 1px solid var(--line); text-align: left; transition: color .2s, padding .35s var(--ease); }
.jtopics__b:hover { color: var(--forest); padding-left: 8px; }
.jtopics__n { font: 400 28px/1.1 var(--serif); }
.jtopics__x { color: var(--muted); font-size: 14.5px; }
.jtopics__b .mono { color: var(--muted); }
/* статья */
.atc__h { max-width: 980px; padding: clamp(28px, 4vw, 56px) 0 clamp(28px, 3vw, 44px); }
.atc__t { font: 400 clamp(42px, 5.6vw, 88px)/.98 var(--serif); letter-spacing: -.015em; margin-top: 18px; }
.atc__t em { color: var(--moss); }
.atc__lead { margin-top: 26px; font: 400 clamp(20px, 1.8vw, 25px)/1.42 var(--serif); max-width: 36em; }
.atc__cover .ph img { width: 100%; height: 100%; object-fit: cover; }
.atc__g { display: grid; grid-template-columns: minmax(0, 7fr) minmax(280px, 4fr); column-gap: clamp(40px, 7vw, 120px); padding: clamp(40px, 5vw, 72px) 0 clamp(48px, 6vw, 88px); align-items: start; }
.atc__body { max-width: 40em; }
.atc__body p { font-size: 17.5px; line-height: 1.72; }
.atc__body p + p { margin-top: 1.1em; }
.atc__first::first-letter { float: left; font: 400 5.1em/.82 var(--serif); color: var(--accent); margin: .08em .1em 0 -.03em; }
.atc__foot { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 24px; align-items: center; margin-top: 40px; padding-top: 18px; border-top: 1px solid var(--line); font-size: 13.5px; color: var(--muted); }
.atc__share { display: inline-flex; align-items: center; gap: 6px; color: var(--text); font-size: 13.5px; }
.atc-p { position: sticky; top: calc(var(--hdr) + 28px); }
.atc-p__t { font: 400 26px/1.1 var(--serif); padding-bottom: 12px; }
.atc-p__sum { display: flex; justify-content: space-between; padding: 14px 0; border-top: 1px solid var(--line-strong); font-size: 14px; color: var(--muted); }
.atc-p__sum .price { color: var(--text); font-size: 17px; }
.atc-nav { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--line-strong); margin-bottom: clamp(48px, 6vw, 88px); }
.atc-nav__a { display: grid; gap: 8px; padding: 24px 32px 28px 0; }
.atc-nav__a--n { border-left: 1px solid var(--line); padding: 24px 0 28px 32px; text-align: right; justify-items: end; }
.atc-nav__l { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: var(--muted); }
.atc-nav__t { font: 400 clamp(20px, 1.8vw, 26px)/1.15 var(--serif); max-width: 24em; }
.atc-nav__a:hover .atc-nav__t { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
@media (max-width: 979px) {
  .jf { grid-template-columns: minmax(0, 1fr); }
  .jgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .jtopics__g { display: block; }
  .jtopics__l { margin-top: 28px; }
  .atc__g { display: block; }
  .atc-p { position: static; margin-top: 48px; max-width: 560px; }
}
@media (max-width: 759px) {
  .jbar .chips { flex-wrap: nowrap; overflow-x: auto; margin: 0 calc(-1 * var(--gut)); padding: 0 var(--gut); scrollbar-width: none; }
  .jbar .chips::-webkit-scrollbar { display: none; }
  .jbar .chip { flex: none; }
  .jgrid { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  .jtopics__b { grid-template-columns: minmax(0, 1fr) auto; gap: 4px 12px; }
  .jtopics__x { grid-column: 1 / -1; grid-row: 2; }
  .jtopics__n { font-size: 24px; }
  .atc__cover { margin: 0 calc(-1 * var(--gut)); }
  .atc__cover .ph { aspect-ratio: 4 / 3 !important; }
  .atc__body p { font-size: 16.5px; }
  .atc-nav { grid-template-columns: minmax(0, 1fr); }
  .atc-nav__a { padding: 20px 0; }
  .atc-nav__a--n { border-left: 0; border-top: 1px solid var(--line); padding: 20px 0; }
}
@media (max-width: 759px) {
  .crumbs li:last-child { min-width: 0; max-width: 100%; }
  .crumbs li:last-child span { display: inline-block; max-width: calc(100vw - 2 * var(--gut) - 26px); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: bottom; }
}

/* ===================== Консультация ===================== */
.cs { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 0 clamp(40px, 6vw, 110px); padding-bottom: clamp(70px, 9vw, 130px); }
.cs__stick { position: sticky; top: calc(var(--hdr) + 28px); padding-top: 10px; }
.cs__h { margin-top: 6px; font-size: clamp(46px, 5.3vw, 90px); }
.cs__facts { list-style: none; display: flex; flex-wrap: wrap; gap: 6px 22px; margin-top: 22px; font-size: 14px; color: var(--forest); }
.cs__facts li { display: flex; align-items: center; gap: 9px; }
.cs__facts li::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--accent); }
.cs__x { margin-top: 18px; color: var(--muted); max-width: 46ch; }
.cs__ex { display: grid; grid-template-columns: 92px 1fr; gap: 18px; align-items: center; margin-top: 34px; padding: 18px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.cs__exi .ph { border-radius: 50%; overflow: hidden; }
.cs__exn { font: 400 26px/1.1 var(--serif); }
.cs__exr { font-size: 13.5px; color: var(--forest); margin-top: 3px; }
.cs__exe { font-size: 13px; color: var(--muted); margin-top: 6px; line-height: 1.45; }
.cs__how { list-style: none; margin-top: 30px; display: grid; gap: 20px; counter-reset: none; }
.cs__how li { display: grid; grid-template-columns: 38px 1fr; gap: 14px; }
.cs__n { font: 400 30px/1 var(--serif); color: var(--accent-ink); font-style: italic; }
.cs__how h3 { font-size: 15px; font-weight: 600; }
.cs__how p { font-size: 13.5px; color: var(--muted); margin-top: 4px; line-height: 1.5; }
.cs__note { margin-top: 28px; font-size: 12.5px; color: var(--muted); line-height: 1.5; padding-left: 14px; border-left: 2px solid var(--stone); }

.cf { background: var(--surface); border: 1px solid var(--line); padding: clamp(24px, 3.2vw, 44px); }
.cf__top { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px 30px; flex-wrap: wrap; padding-bottom: 22px; border-bottom: 1px solid var(--line); }
.cf__t { font: 400 clamp(34px, 3vw, 44px)/1 var(--serif); }
.cf__prog { font-size: 13px; color: var(--muted); display: grid; gap: 8px; min-width: 210px; }
.cf__prog [data-prog] { font-family: var(--mono); color: var(--text); }
.cf__bar { display: block; height: 2px; background: var(--line); overflow: hidden; }
.cf__bar i { display: block; height: 100%; background: var(--accent); transform-origin: left; transform: scaleX(0); transition: transform .4s var(--ease); }
.cf__err { margin-top: 20px; padding: 12px 16px; border-left: 2px solid var(--danger); background: rgba(179, 65, 47, .06); color: var(--danger); font-size: 14px; }
.cf__g { border: 0; padding: 0; margin: 0; min-width: 0; padding-top: 28px; }
.cf__g + .cf__g { margin-top: 28px; border-top: 1px solid var(--line); }
.cf__gl { display: flex; align-items: baseline; gap: 14px; font: 400 24px/1.1 var(--serif); padding: 0; margin-bottom: 20px; }
.cf__gl .mono { font-size: 12px; color: var(--muted); }
.cf__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px 20px; }
.cf__grid > .field { grid-column: span 1; }
.cf__grid--0 > [data-f="name"], .cf__grid--0 > [data-f="contact"] { grid-column: span 1; }
.cf__grid--1 > [data-f="concerns"], .cf__grid--1 > [data-f="sensitivity"], .cf__grid--2 > .field, .cf__grid--3 > .field { grid-column: 1 / -1; }
.cf-set { border: 0; padding: 0; margin: 0; min-width: 0; }
.cf-set legend { padding: 0; margin-bottom: 10px; }
.opt-l { font-weight: 400; color: var(--muted); margin-left: 4px; }
.req { color: var(--accent-ink); }
.cf-chips, .cf-seg { display: flex; flex-wrap: wrap; gap: 8px; }
.cf-ch { position: relative; cursor: pointer; }
.cf-ch input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; }
.cf-ch span { display: inline-flex; align-items: center; gap: 8px; min-height: 42px; padding: 9px 15px; border: 1px solid var(--line-strong); border-radius: 2px; font-size: 14px; background: var(--bg); transition: background-color .15s, border-color .15s, color .15s; }
.cf-ch .ic { width: 14px; height: 14px; display: none; }
.cf-ch:hover span { border-color: var(--warm-grey); }
.cf-ch input:checked + span { background: var(--forest); border-color: var(--forest); color: var(--on-forest); }
.cf-ch input:checked + span .ic { display: inline-block; }
.cf-ch input:focus-visible + span { outline: 2px solid var(--accent); outline-offset: 2px; }
.cf-set.is-err .cf-ch span { border-color: var(--danger); }
.cf-cnt { text-align: right; font-family: var(--mono); font-size: 11.5px; }
.cf-file { position: relative; display: block; cursor: pointer; }
.cf-file input { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; }
.cf-file__b { display: flex; align-items: center; gap: 16px; padding: 18px 20px; border: 1px dashed var(--line-strong); background: var(--bg); font-size: 13.5px; color: var(--muted); line-height: 1.45; transition: border-color .2s; }
.cf-file__b b { color: var(--text); font-weight: 600; }
.cf-file__b .ic { width: 24px; height: 24px; color: var(--forest); flex: none; }
.cf-file:hover .cf-file__b { border-color: var(--forest); }
.cf-file input:focus-visible + .cf-file__b { outline: 2px solid var(--accent); outline-offset: 2px; }
.cf-thumbs { display: flex; flex-wrap: wrap; gap: 10px; }
.cf-thumbs:empty { display: none; }
.cf-th { position: relative; display: grid; grid-template-columns: 52px 1fr 32px; align-items: center; gap: 10px; padding: 6px; border: 1px solid var(--line); max-width: 280px; font-size: 12.5px; }
.cf-th img { width: 52px; height: 52px; object-fit: cover; }
.cf-th__n { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cf-th__x { width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; color: var(--muted); }
.cf-th__x:hover { color: var(--danger); }
.cf-consent .opt { font-size: 13.5px; }
.cf__sub { margin-top: 32px; padding-top: 26px; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; align-items: center; gap: 16px 26px; }
.cf__sub .note-demo { margin: 0; flex: 1 1 240px; }

.cs-ok { background: var(--forest-deep); color: var(--on-forest); padding: clamp(30px, 4vw, 56px); outline: none; }
.cs-ok__mark { display: inline-flex; width: 52px; height: 52px; border-radius: 50%; border: 1px solid var(--accent); color: var(--accent); align-items: center; justify-content: center; }
.cs-ok__mark .ic { width: 24px; height: 24px; }
.cs-ok__t { margin-top: 24px; color: var(--on-forest); }
.cs-ok__t em { color: #C9D3BE; }
.cs-ok__x { margin-top: 16px; color: var(--on-forest-muted); max-width: 52ch; }
.cs-ok__dl { margin-top: 30px; border-top: 1px solid rgba(239, 230, 211, .18); }
.cs-ok__dl > div { display: grid; grid-template-columns: 150px 1fr; gap: 16px; padding: 13px 0; border-bottom: 1px solid rgba(239, 230, 211, .18); font-size: 14.5px; }
.cs-ok__dl dt { color: var(--on-forest-muted); }
.cs-ok__w { margin-top: 30px; font: italic 400 22px/1.2 var(--serif); color: #C9D3BE; }
.cs-ok .btns { margin-top: 18px; align-items: center; }
.cs-ok .btn { background: var(--cream); color: var(--forest-deep); border-color: var(--cream); }
.cs-ok .btn--line { background: transparent; color: var(--on-forest); border-color: rgba(239, 230, 211, .5); }
.cs-ok .ulink { color: var(--on-forest); }

@media (max-width: 999px) {
  .cs { grid-template-columns: 1fr; }
  .cs__stick { position: static; }
  .cs__how { grid-template-columns: repeat(3, 1fr); gap: 20px; }
  .cs__how li { grid-template-columns: 1fr; gap: 8px; }
  .cs__main { margin-top: 40px; }
}
@media (max-width: 759px) {
  .cs__how { grid-template-columns: 1fr; }
  .cs__how li { grid-template-columns: 34px 1fr; }
  .cf { margin: 0 calc(-1 * var(--gut)); border-left: 0; border-right: 0; padding: 26px var(--gut); }
  .cf__grid { grid-template-columns: 1fr; }
  .cf__grid > .field { grid-column: 1 / -1; }
  .cf__prog { min-width: 0; width: 100%; }
  .cs-ok { margin: 0 calc(-1 * var(--gut)); }
  .cs-ok__dl > div { grid-template-columns: 1fr; gap: 3px; }
  .cf__sub .btn { width: 100%; }
}

/* ===================== Подарки ===================== */
.gh { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; align-items: end; padding: clamp(18px, 3vw, 40px) 0 clamp(50px, 6vw, 90px); }
.gh__t { grid-column: 1 / span 6; align-self: center; }
.gh__x { margin-top: 24px; }
.gh__img { grid-column: 8 / span 5; }
.gh__nav { list-style: none; margin-top: 40px; border-top: 1px solid var(--line-strong); max-width: 520px; }
.gh__nav a { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--line); font-size: 15.5px; transition: color .2s, padding .3s var(--ease); }
.gh__nav a:hover { color: var(--accent-ink); padding-left: 6px; }
.gh__nav .mono { font-size: 12px; color: var(--muted); white-space: nowrap; }

.gsets__l { display: grid; gap: clamp(60px, 8vw, 120px); }
.gs { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; align-items: center; }
.gs__img { grid-column: 1 / span 5; }
.gs__b { grid-column: 7 / span 6; }
.gs--r .gs__img { grid-column: 8 / span 5; order: 2; }
.gs--r .gs__b { grid-column: 1 / span 6; order: 1; }
.gs__k { display: flex; align-items: center; gap: 8px; font-size: 13.5px; color: var(--forest); }
.gs__t { font: 400 clamp(32px, 3.2vw, 48px)/1.05 var(--serif); margin-top: 12px; }
.gs__t a:hover { color: var(--accent-ink); }
.gs__x { margin-top: 14px; color: var(--muted); max-width: 46ch; }
.gs__l { list-style: none; margin-top: 26px; border-top: 1px solid var(--line-strong); }
.gs__l li { display: grid; grid-template-columns: 26px 1fr auto; gap: 12px; align-items: baseline; padding: 11px 0; border-bottom: 1px solid var(--line); font-size: 14.5px; }
.gs__l a:hover { color: var(--accent-ink); }
.gs__n { font-size: 11.5px; color: var(--muted); }
.gs__pr { font-size: 13px; color: var(--muted); font-variant-numeric: tabular-nums; white-space: nowrap; }
.gs__tot { margin-top: 18px; display: grid; gap: 6px; }
.gs__tot p { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; font-size: 14px; color: var(--muted); }
.gs__tot s { font-size: 14px; font-variant-numeric: tabular-nums; }
.gs__tot b.price { font-size: 26px; color: var(--text); }
.gs__a { margin-top: 22px; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 22px; }
.gs__save { font-size: 13.5px; color: var(--accent-ink); font-weight: 600; }

.gwr__g { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; }
.gwr__opts { grid-column: 1 / span 6; }
.gwr__prev { grid-column: 8 / span 5; }
.gwr__stick { position: sticky; top: calc(var(--hdr) + 28px); }
.gwr__list { display: grid; margin-top: 12px; border-top: 1px solid var(--line-strong); }
.gw { position: relative; display: block; cursor: pointer; border-bottom: 1px solid var(--line); }
.gw input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.gw__in { display: grid; gap: 6px; padding: 16px 0 16px 34px; position: relative; transition: background-color .2s; }
.gw__in::before { content: ''; position: absolute; left: 2px; top: 19px; width: 18px; height: 18px; border-radius: 50%; border: 1px solid var(--warm-grey); background: var(--surface); }
.gw input:checked + .gw__in::before { border-color: var(--forest); box-shadow: inset 0 0 0 4px var(--surface); background: var(--forest); }
.gw input:focus-visible + .gw__in { outline: 2px solid var(--accent); outline-offset: 2px; }
.gw__h { display: flex; justify-content: space-between; gap: 16px; align-items: baseline; }
.gw__n { font-weight: 600; font-size: 15.5px; }
.gw__p { font-size: 13.5px; }
.gw__x { font-size: 14px; color: var(--muted); line-height: 1.5; max-width: 52ch; }
.gw__note { font-size: 13px; color: var(--accent-ink); }
.gwr__card { margin-top: 30px; }
.gwr__card .opt b { font-weight: 600; }
.gwr__cf { margin-top: 22px; padding-left: 32px; display: grid; gap: 18px; }
.gwr__des { margin-top: -8px; }
.gwr__n { display: flex; justify-content: space-between; gap: 12px; }
.gwr__tl { margin-bottom: -8px; }
.gwr__tpl { list-style: none; display: grid; border-top: 1px solid var(--line); }
.gwr__tb { display: block; width: 100%; text-align: left; padding: 11px 0; border-bottom: 1px solid var(--line); font: italic 400 17px/1.35 var(--serif); color: var(--text); transition: color .2s; }
.gwr__tb:hover { color: var(--accent-ink); }
.gc-card { background: #FBF8F2; border: 1px solid var(--line); margin-top: 12px; transition: opacity .3s; }
.gc-card.is-off { opacity: .45; }
.gc-card__img { padding: 14px 14px 0; }
.gc-card__b { padding: 22px 26px 24px; min-height: 170px; display: flex; flex-direction: column; justify-content: space-between; gap: 20px; }
.gc-card__txt { font: italic 400 24px/1.3 var(--serif); color: var(--forest-deep); overflow-wrap: anywhere; }
.gc-card__ph { color: var(--warm-grey); }
.gc-card__by { font-size: 12px; color: var(--muted); }
.gwr__st { margin-top: 16px; display: flex; gap: 10px; font-size: 13.5px; color: var(--muted); line-height: 1.5; }
.gwr__st .ic { color: var(--success); flex: none; margin-top: 3px; }

.gce__g { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; align-items: start; }
.gce__side { grid-column: 1 / span 5; }
.gce__main { grid-column: 7 / span 6; }
.gce__x { margin-top: 18px; color: var(--on-forest-muted); max-width: 44ch; }
.gce__vis { margin-top: 40px; max-width: 420px; }
.gcert { position: relative; aspect-ratio: 1.6 / 1; background: var(--cream); color: var(--forest-deep); padding: clamp(18px, 2.4vw, 28px); display: flex; flex-direction: column; border-radius: 2px; overflow: hidden; transform: rotate(-2deg); }
.gcert::after { content: ''; position: absolute; right: -14%; bottom: -46%; width: 70%; aspect-ratio: 1; border-radius: 50%; border: 1px solid rgba(31, 59, 44, .18); box-shadow: 0 0 0 22px rgba(31, 59, 44, .03), 0 0 0 23px rgba(31, 59, 44, .12); }
.gcert__top { display: flex; align-items: center; gap: 10px; font-size: 12px; letter-spacing: .14em; }
.gcert__logo { display: block; height: 12px; width: auto; aspect-ratio: 964.2 / 106.57; }
.gcert__v { margin-top: auto; font: 400 clamp(46px, 5vw, 70px)/1 var(--serif); }
.gcert__r { font-size: .55em; color: var(--accent-ink); }
.gcert__l { font: italic 400 18px/1.2 var(--serif); margin-top: 4px; }
.gcert__f { display: flex; justify-content: space-between; gap: 12px; margin-top: 14px; padding-top: 10px; border-top: 1px solid rgba(31, 59, 44, .2); font-size: 11.5px; position: relative; z-index: 1; }
.gce__f { display: grid; gap: 22px; }
.gce__2 { display: grid; grid-template-columns: 1fr 1fr; gap: 22px 20px; }
.gce .field > label, .gce .field__l { color: var(--on-forest); }
.gce .opt-l { color: var(--on-forest-muted); }
.gce .err { color: #F2A792; }
.gce .field.is-err .inp { border-color: #F2A792; }
.gce .cf-ch span { background: transparent; border-color: rgba(243, 238, 228, .35); color: var(--on-forest); font-size: 14.5px; }
.gce .cf-ch:hover span { border-color: var(--on-forest); }
.gce .cf-ch input:checked + span { background: var(--on-forest); border-color: var(--on-forest); color: var(--forest-deep); }
.gce .inp, .gce .ta { background: rgba(243, 238, 228, .96); color: var(--forest-deep); color-scheme: light; }
.gce .inp::placeholder, .gce .ta::placeholder { color: #8A8577; }
.gce__sub { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 24px; margin-top: 4px; }
.gce__demo { font-size: 12.5px; color: var(--on-forest-muted); flex: 1 1 220px; }
.gce-ok { outline: none; border-top: 1px solid rgba(243, 238, 228, .2); padding-top: 28px; }
.gce-ok__t { font: 400 clamp(30px, 3vw, 42px)/1.08 var(--serif); margin-top: 20px; }
.gce-ok__t em { color: #C9D3BE; }
.gce-ok .gce__demo { margin-top: 18px; }
.gce-ok .btns { margin-top: 22px; }

.gcorp__g { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; align-items: start; }
.gcorp__g > h2 { grid-column: 1 / span 5; }
.gcorp__g > div { grid-column: 7 / span 6; }
.gcorp__l { list-style: none; margin-top: 24px; border-top: 1px solid var(--line); }
.gcorp__l li { display: flex; align-items: center; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--line); font-size: 15px; }
.gcorp__l .ic { color: var(--forest); }
.gcorp .btns { margin-top: 26px; }

@media (max-width: 999px) {
  .gh__t { grid-column: 1 / -1; }
  .gh__img { grid-column: 1 / -1; margin-top: 36px; }
  .gh__img .ph { aspect-ratio: 3/2 !important; }
  .gs__img, .gs--r .gs__img { grid-column: 1 / span 5; order: 0; }
  .gs__b, .gs--r .gs__b { grid-column: 6 / -1; order: 0; }
  .gwr__opts, .gwr__prev { grid-column: 1 / -1; }
  .gwr__prev { margin-top: 36px; }
  .gwr__stick { position: static; max-width: 460px; }
  .gce__side, .gce__main { grid-column: 1 / -1; }
  .gce__main { margin-top: 40px; }
  .gcorp__g > h2, .gcorp__g > div { grid-column: 1 / -1; }
  .gcorp__g > div { margin-top: 20px; }
}
@media (max-width: 759px) {
  .gs__img, .gs--r .gs__img, .gs__b, .gs--r .gs__b { grid-column: 1 / -1; }
  .gs__b { margin-top: 24px; }
  .gs__img .ph { aspect-ratio: 4/3 !important; }
  .gs__l li { grid-template-columns: 22px 1fr auto; gap: 10px; font-size: 14px; }
  .gs__pr { font-size: 12.5px; white-space: nowrap; }
  .gwr__cf { padding-left: 0; }
  .gce__2 { grid-template-columns: 1fr; }
  .gce__vis { margin-top: 28px; max-width: 340px; }
  .gcert { transform: rotate(-1.5deg); }
  .gce__sub .btn { width: 100%; }
}

/* ===================== Подбор ухода ===================== */
.qz-sec { padding-top: 0; }
.qz { border-top: 1px solid var(--line-strong); min-height: 520px; }
.qz__bar { display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; margin-top: -1px; }
.qz__bar i { height: 3px; background: transparent; transition: background-color .4s var(--ease); }
.qz__bar i.is-done { background: var(--forest); }
.qz__bar i.is-cur { background: var(--accent); }
.qz__g { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; padding-top: clamp(34px, 4.5vw, 64px); }
.qz__q { grid-column: 1 / span 8; }
.qz__side { grid-column: 10 / span 3; }
.qz__n { font-size: 12.5px; color: var(--muted); }
.qz__t { font: 400 clamp(36px, 4.2vw, 62px)/1.04 var(--serif); margin-top: 14px; max-width: 16em; outline: none; }
.qz__opts { margin-top: clamp(28px, 3.4vw, 46px); display: grid; border-top: 1px solid var(--line); max-width: 760px; }
.qz__opts--2 { grid-template-columns: 1fr 1fr; column-gap: 28px; border-top: 0; }
.qz__opts--2 .qz__o:nth-child(-n+2) { border-top: 1px solid var(--line); }
.qz__o { display: flex; align-items: center; gap: 16px; width: 100%; text-align: left; padding: 17px 4px; border-bottom: 1px solid var(--line); font-size: 17px; line-height: 1.35; transition: color .2s, padding .3s var(--ease), background-color .2s; }
.qz__ok { flex: none; width: 24px; height: 24px; border-radius: 50%; border: 1px solid var(--warm-grey); display: inline-flex; align-items: center; justify-content: center; color: transparent; transition: background-color .2s, border-color .2s, color .2s; }
.qz__ok .ic { width: 13px; height: 13px; }
.qz__o:hover { padding-left: 10px; color: var(--forest); }
.qz__o:hover .qz__ok { border-color: var(--forest); }
.qz__o.is-on { color: var(--forest); font-weight: 600; }
.qz__o.is-on .qz__ok { background: var(--accent); border-color: var(--accent); color: #fff; }
.qz__nav { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-top: 28px; max-width: 760px; min-height: 50px; }
.qz__back { display: inline-flex; align-items: center; gap: 8px; }
.qz__sl { font-size: 13px; font-weight: 600; padding-bottom: 12px; border-bottom: 1px solid var(--line-strong); }
.qz__al { list-style: none; }
.qz__al li { border-bottom: 1px solid var(--line); }
.qz__al li > button, .qz__al li > span { display: grid; gap: 3px; width: 100%; text-align: left; padding: 11px 0; }
.qz__aq { font-size: 12.5px; color: var(--muted); line-height: 1.4; }
.qz__aa { font-size: 14px; color: var(--text); }
.qz__aa--none { color: var(--warm-grey); }
.qz__al li.is-cur .qz__aa--none { color: var(--accent-ink); }
.qz__al button:hover .qz__aa { color: var(--accent-ink); text-decoration: underline; text-underline-offset: 3px; }

.qr { padding-top: clamp(34px, 4.5vw, 64px); }
.qr__t { margin-top: 12px; outline: none; }
.qr__for { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
.qr__for span { font-size: 13px; padding: 6px 12px; border: 1px solid var(--line-strong); border-radius: 2px; }
.qr__notes { margin-top: 26px; display: grid; gap: 10px; max-width: 760px; }
.qr__notes p { display: flex; gap: 12px; padding: 14px 16px; background: var(--surface); border-left: 2px solid var(--accent); font-size: 14.5px; line-height: 1.5; }
.qr__notes .ic { color: var(--forest); flex: none; margin-top: 3px; }
.qr__g { display: grid; grid-template-columns: 1fr 1fr; gap: 24px clamp(30px, 4vw, 64px); margin-top: clamp(30px, 4vw, 52px); }
.qr__ct { display: flex; align-items: center; gap: 10px; font: 400 30px/1.1 var(--serif); padding-bottom: 12px; border-bottom: 1px solid var(--line-strong); }
.qr__ct .mono { margin-left: auto; font-size: 12px; color: var(--muted); }
.qr__ct .ic { color: var(--forest); }
.qr__l { list-style: none; }
.qr__i { border-bottom: 1px solid var(--line); padding-top: 12px; }
.qr__s { font-size: 12.5px; color: var(--muted); }
.qr__i .prow { border-top: 0; padding-top: 6px; }
.qr__buy { margin-top: 36px; padding-top: 24px; border-top: 1px solid var(--line-strong); display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; row-gap: 18px; align-items: center; }
.qr__sum { grid-column: 1 / span 4; display: grid; gap: 4px; font-size: 14px; color: var(--muted); }
.qr__sum .price { font-size: 30px; color: var(--text); }
.qr__buy .btns { grid-column: 5 / -1; align-items: center; }
.qr__note { grid-column: 5 / -1; font-size: 13px; color: var(--muted); max-width: 64ch; }
.qz-alt__g { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; align-items: start; }
.qz-alt__g > h2 { grid-column: 1 / span 6; }
.qz-alt__g > div { grid-column: 8 / span 5; }
.qz-alt .btns { margin-top: 20px; align-items: center; }

@media (max-width: 999px) {
  .qz__q, .qz__side { grid-column: 1 / -1; }
  .qz__side { margin-top: 40px; }
  .qz__al { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); column-gap: 20px; }
  .qr__sum, .qr__buy .btns, .qr__note { grid-column: 1 / -1; }
  .qz-alt__g > h2, .qz-alt__g > div { grid-column: 1 / -1; }
  .qz-alt__g > div { margin-top: 18px; }
}
@media (max-width: 759px) {
  .qz { min-height: 0; }
  .qz__t { font-size: 34px; }
  .qz__opts--2 { grid-template-columns: 1fr; }
  .qz__opts--2 .qz__o:nth-child(2) { border-top: 0; }
  .qz__o { font-size: 16px; padding: 15px 2px; }
  .qz__o:hover { padding-left: 2px; }
  .qz__al { grid-template-columns: 1fr; }
  .qr__g { grid-template-columns: 1fr; }
  .qr__buy .btns .btn { width: 100%; }
}

/* ===================== Клуб ===================== */
.cl-head { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; align-items: end; padding: clamp(18px, 3vw, 40px) 0 clamp(50px, 6vw, 86px); }
.cl-head > div { grid-column: 1 / span 7; }
.cl-head__x { margin-top: 22px; }
.cl-head .btns { margin-top: 30px; align-items: center; }
.cl-head__w { grid-column: 9 / span 4; display: grid; gap: 10px; border-top: 1px solid var(--line-strong); padding-top: 18px; }
.cl-head__wv { font: 400 clamp(90px, 10vw, 150px)/.85 var(--serif); color: var(--accent-ink); letter-spacing: -.02em; }
.cl-head__wl { font-size: 15px; color: var(--muted); max-width: 26ch; }

.cl-lv { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line-strong); }
.cl-lv__i { padding: 26px 28px 8px 0; }
.cl-lv__i + .cl-lv__i { padding-left: 28px; border-left: 1px solid var(--line); }
.cl-lv__c { font-size: 12.5px; color: var(--accent-ink); }
.cl-lv__n { font: 400 clamp(44px, 4.4vw, 64px)/1 var(--serif); margin-top: 10px; }
.cl-lv__i:nth-child(2) .cl-lv__n { font-style: italic; }
.cl-lv__i:nth-child(3) .cl-lv__n { color: var(--forest); }
.cl-lv__th { margin-top: 8px; font-size: 14px; color: var(--muted); }
.cl-lv__p { list-style: none; margin-top: 22px; display: grid; gap: 10px; }
.cl-lv__p li { display: flex; gap: 10px; font-size: 14.5px; line-height: 1.45; }
.cl-lv__p .ic { color: var(--forest); flex: none; margin-top: 3px; }

.cl-calc__g { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; row-gap: 36px; }
.cl-calc__h { grid-column: 1 / span 5; }
.cl-calc__x { margin-top: 16px; color: var(--muted); max-width: 40ch; }
.cl-calc__in { grid-column: 1 / span 5; display: grid; gap: 30px; align-content: start; }
.cl-calc__out { grid-column: 7 / span 6; grid-row: 1 / span 2; border-left: 1px solid var(--line); padding-left: clamp(24px, 3vw, 48px); }
.cl-rng { display: grid; grid-template-columns: 1fr auto; gap: 12px 16px; align-items: baseline; }
.cl-rng label { font-size: 14px; font-weight: 500; }
.cl-rng__v { font-size: 15px; }
.cl-rng input { grid-column: 1 / -1; -webkit-appearance: none; appearance: none; width: 100%; height: 28px; background: transparent; cursor: pointer; --p: 0%; }
.cl-rng input::-webkit-slider-runnable-track { height: 2px; background: linear-gradient(to right, var(--forest) var(--p), var(--line-strong) var(--p)); }
.cl-rng input::-moz-range-track { height: 2px; background: var(--line-strong); }
.cl-rng input::-moz-range-progress { height: 2px; background: var(--forest); }
.cl-rng input::-webkit-slider-thumb { -webkit-appearance: none; width: 22px; height: 22px; border-radius: 50%; background: var(--surface); border: 1.5px solid var(--forest); margin-top: -10px; }
.cl-rng input::-moz-range-thumb { width: 20px; height: 20px; border-radius: 50%; background: var(--surface); border: 1.5px solid var(--forest); }
.cl-rng input:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
.cl-scale { position: relative; height: 74px; margin-top: 6px; }
.cl-scale__line { position: absolute; left: 0; right: 0; top: 10px; height: 1px; background: var(--line-strong); }
.cl-scale__t { position: absolute; top: 4px; display: grid; gap: 8px; transform: translateX(-1px); }
.cl-scale__t i { width: 1px; height: 13px; background: var(--text); }
.cl-scale__t .mono { font-size: 11px; color: var(--muted); white-space: nowrap; }
.cl-scale__t b { font: italic 400 17px/1 var(--serif); margin-bottom: -4px; }
.cl-scale__mk { position: absolute; top: 4px; width: 13px; height: 13px; border-radius: 50%; background: var(--accent); transform: translateX(-50%); transition: left .35s var(--ease); }
.cl-out__l { font-size: 14px; color: var(--muted); }
.cl-out__v { font: 400 clamp(70px, 8vw, 120px)/.9 var(--serif); margin-top: 10px; color: var(--forest-deep); letter-spacing: -.02em; }
.cl-out__u { font-size: .32em; font-style: italic; letter-spacing: 0; color: var(--muted); }
.cl-out__eq { margin-top: 10px; font-size: 15px; color: var(--accent-ink); }
.cl-out__dl { margin-top: 26px; border-top: 1px solid var(--line); }
.cl-out__dl > div { display: grid; grid-template-columns: 200px 1fr; gap: 16px; padding: 11px 0; border-bottom: 1px solid var(--line); font-size: 14.5px; }
.cl-out__dl dt { color: var(--muted); }

.cl-rules__g { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; }
.cl-rules__g > h2 { grid-column: 1 / span 4; }
.cl-rules__l { grid-column: 6 / span 7; list-style: none; border-top: 1px solid var(--line-strong); }
.cl-rules__l li { display: grid; grid-template-columns: 44px 1fr; gap: 14px; padding: 16px 0; border-bottom: 1px solid var(--line); font-size: 16px; line-height: 1.5; }
.cl-rules__n { font: italic 400 26px/1 var(--serif); color: var(--accent-ink); }

.cl-gl__g { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; align-items: center; }
.cl-gl__t { grid-column: 1 / span 5; }
.cl-gl__x { margin-top: 18px; color: var(--on-forest-muted); max-width: 46ch; }
.cl-gl__r { margin-top: 22px; display: flex; gap: 10px; font-size: 15px; color: var(--on-forest); padding-top: 16px; border-top: 1px solid rgba(243, 238, 228, .18); }
.cl-gl__r .ic { color: var(--accent); flex: none; margin-top: 3px; }
.cl-gl__vis { grid-column: 7 / span 6; display: grid; grid-template-columns: minmax(0, 300px) 1fr; gap: 32px; align-items: center; }
.cl-gl__svg { width: 100%; height: auto; color: var(--on-forest); }
.cl-gl__n { list-style: none; display: grid; gap: 0; counter-reset: gl; border-top: 1px solid rgba(243, 238, 228, .18); }
.cl-gl__p { display: grid; gap: 2px; padding: 12px 0 12px 28px; border-bottom: 1px solid rgba(243, 238, 228, .18); position: relative; font-size: 13.5px; color: var(--on-forest-muted); }
.cl-gl__p::before { counter-increment: gl; content: counter(gl); position: absolute; left: 0; top: 12px; font: italic 400 18px/1 var(--serif); color: #C9D3BE; }
.cl-gl__p b { font-weight: 600; color: var(--on-forest); font-size: 15px; }
.cl-gl__p--3 b { color: var(--accent); }

.cl-join__g { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; }
.cl-join__g > div:first-child { grid-column: 1 / span 5; }
.cl-join__g > div:last-child { grid-column: 7 / span 6; }
.cl-join__x { margin-top: 16px; color: var(--muted); max-width: 42ch; }
.cl-join__f { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.cl-join__f > [data-f="bday"], .cl-join__f > [data-f="agree"], .cl-join__sub { grid-column: 1 / -1; }
.cl-join__sub { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 22px; margin-top: 6px; }
.cl-join__sub .hint { flex: 1 1 200px; }
.cl-ok { outline: none; border-top: 1px solid var(--line-strong); padding-top: 24px; }
.cl-ok .cs-ok__mark { color: var(--forest); border-color: var(--forest); }
.cl-ok__t { font: 400 clamp(30px, 3vw, 42px)/1.08 var(--serif); margin-top: 18px; }
.cl-ok p { margin-top: 12px; max-width: 52ch; }
.cl-ok .btns { margin-top: 22px; align-items: center; }

@media (max-width: 999px) {
  .cl-head > div, .cl-head__w { grid-column: 1 / -1; }
  .cl-head__w { margin-top: 40px; grid-template-columns: auto 1fr; align-items: end; gap: 20px; }
  .cl-calc__h, .cl-calc__in, .cl-calc__out { grid-column: 1 / -1; grid-row: auto; }
  .cl-calc__out { border-left: 0; padding-left: 0; border-top: 1px solid var(--line-strong); padding-top: 24px; }
  .cl-rules__g > h2, .cl-rules__l { grid-column: 1 / -1; }
  .cl-rules__l { margin-top: 24px; }
  .cl-gl__t, .cl-gl__vis { grid-column: 1 / -1; }
  .cl-gl__vis { margin-top: 36px; }
  .cl-join__g > div:first-child, .cl-join__g > div:last-child { grid-column: 1 / -1; }
  .cl-join__g > div:last-child { margin-top: 26px; }
}
@media (max-width: 759px) {
  .cl-head__w { grid-template-columns: 1fr; }
  .cl-lv { grid-template-columns: 1fr; }
  .cl-lv__i, .cl-lv__i + .cl-lv__i { padding: 22px 0 18px; border-left: 0; }
  .cl-lv__i + .cl-lv__i { border-top: 1px solid var(--line); }
  .cl-out__dl > div { grid-template-columns: 1fr; gap: 2px; }
  .cl-gl__vis { grid-template-columns: 1fr; }
  .cl-gl__svg { max-width: 240px; margin: 0 auto; }
  .cl-join__f { grid-template-columns: 1fr; }
  .cl-join__sub .btn { width: 100%; }
  .cl-scale__t .mono { font-size: 10px; }
}

/* ===================== Доставка ===================== */
.dv-nav { display: flex; flex-wrap: wrap; gap: 8px 26px; margin-top: -10px; padding-bottom: 18px; border-bottom: 1px solid var(--line); font-size: 14.5px; }
.dv-nav a { color: var(--forest); text-decoration: underline; text-decoration-color: var(--line-strong); text-underline-offset: 4px; }
.dv-nav a:hover { color: var(--accent-ink); text-decoration-color: currentColor; }
.dv-path { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; margin-top: clamp(34px, 4vw, 56px); position: relative; }
.dv-path::before { content: ''; position: absolute; left: 6px; right: 0; top: 6px; height: 1px; background: var(--line-strong); }
.dv-path li { position: relative; display: grid; gap: 4px; padding-top: 28px; font-size: 14px; color: var(--muted); }
.dv-path b { font: 400 26px/1.1 var(--serif); color: var(--text); }
.dv-path__dot { position: absolute; left: 0; top: 0; width: 13px; height: 13px; border-radius: 50%; background: var(--bg); border: 1px solid var(--forest); }
.dv-path li:last-child .dv-path__dot { background: var(--accent); border-color: var(--accent); }
.dv-sum { display: grid; gap: 8px; font-size: 13px; font-weight: 500; color: var(--text); }
.dv-sum__f { display: flex; align-items: center; gap: 10px; }
.dv-sum__f .inp { max-width: 160px; font-size: 18px; }
.dv-sum__f > span { font-size: 18px; }
.sh__x .hint { margin-top: 8px; }
.dv-ml { list-style: none; border-top: 1px solid var(--line-strong); }
.dv-m { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 4fr) minmax(0, 3fr); gap: 24px; align-items: center; padding: 20px 0; border-bottom: 1px solid var(--line); }
.dv-m__n { display: grid; gap: 4px; }
.dv-m__n b { font-size: 17px; font-weight: 600; }
.dv-m__n span { font-size: 13.5px; color: var(--muted); }
.dv-m__t { display: flex; gap: 8px; font-size: 14px; }
.dv-m__t .ic { color: var(--moss); flex: none; margin-top: 3px; }
.dv-m__p { display: grid; gap: 3px; justify-items: end; text-align: right; }
.dv-m__p b { font-size: 17px; font-weight: 500; }
.dv-m__p span { font-size: 12.5px; color: var(--muted); }
.dv-m.is-free .dv-m__p b { color: var(--success); }
.dv-samples { margin-top: 22px; display: flex; gap: 10px; font-size: 14.5px; color: var(--forest); }
.dv-samples .ic { flex: none; margin-top: 3px; }
.dv-pay__g { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; }
.dv-pay__g > h2 { grid-column: 1 / span 4; }
.dv-pay__l { grid-column: 5 / span 8; display: grid; grid-template-columns: 1fr 1fr; column-gap: 32px; border-top: 1px solid var(--line-strong); }
.dv-pay__l > div { padding: 18px 0; border-bottom: 1px solid var(--line); }
.dv-pay__l dt { font-weight: 600; font-size: 16px; }
.dv-pay__l dd { margin-top: 5px; font-size: 14px; color: var(--muted); line-height: 1.5; }
.dv-ret__g { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; align-items: start; }
.dv-ret__g > div { grid-column: 1 / span 6; }
.dv-ret__x { margin-top: 18px; font-size: 16px; line-height: 1.6; max-width: 56ch; }
.dv-ret .btns { margin-top: 26px; }
.dv-ret__f { grid-column: 8 / span 5; list-style: none; border-top: 1px solid var(--line-strong); }
.dv-ret__f li { display: grid; gap: 4px; padding: 18px 0; border-bottom: 1px solid var(--line); }
.dv-ret__f b { font: 400 34px/1 var(--serif); color: var(--forest); }
.dv-ret__f span { font-size: 14px; color: var(--muted); }
.dv-faq__g { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; align-items: start; }
.dv-faq__h { grid-column: 1 / span 4; position: sticky; top: calc(var(--hdr) + 28px); }
.dv-faq__s { margin-top: 26px; }
.dv-faq__h .hint { margin-top: 10px; }
.dv-faq__l { grid-column: 6 / span 7; }
.dv-faq__none .empty { padding: 30px 0; }
.dv-ct__g { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; align-items: start; }
.dv-ct__g > h2 { grid-column: 1 / span 5; }
.dv-ct__l { grid-column: 7 / span 6; list-style: none; border-top: 1px solid rgba(243, 238, 228, .2); }
.dv-ct__l li { display: grid; grid-template-columns: 22px 1fr; gap: 2px 14px; padding: 16px 0; border-bottom: 1px solid rgba(243, 238, 228, .2); }
.dv-ct__l .ic { color: var(--accent); margin-top: 4px; }
.dv-ct__l a { font-size: 18px; color: var(--on-forest); }
.dv-ct__l a:hover { text-decoration: underline; text-underline-offset: 4px; }
.dv-ct__l span { grid-column: 2; font-size: 13.5px; color: var(--on-forest-muted); }
@media (max-width: 999px) {
  .dv-pay__g > h2, .dv-pay__l, .dv-ret__g > div, .dv-ret__f, .dv-faq__h, .dv-faq__l, .dv-ct__g > h2, .dv-ct__l { grid-column: 1 / -1; }
  .dv-pay__l, .dv-ret__f, .dv-faq__l, .dv-ct__l { margin-top: 26px; }
  .dv-faq__h { position: static; }
}
@media (max-width: 759px) {
  .dv-path { grid-template-columns: 1fr; gap: 0; }
  .dv-path::before { left: 6px; right: auto; top: 6px; bottom: 6px; width: 1px; height: auto; }
  .dv-path li { padding: 0 0 18px 30px; }
  .dv-path b { font-size: 22px; }
  .dv-m { grid-template-columns: 1fr auto; gap: 8px 16px; }
  .dv-m__n { grid-column: 1 / -1; }
  .dv-m__p { justify-items: end; }
  .dv-pay__l { grid-template-columns: 1fr; }
}

/* ===================== О бренде ===================== */
.ab-head { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; align-items: end; padding: clamp(18px, 3vw, 40px) 0 clamp(50px, 6vw, 90px); }
.ab-head__t { grid-column: 1 / span 7; align-self: center; }
.ab-head__x { margin-top: 24px; }
.ab-head__img { grid-column: 9 / span 4; }
.ab-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-top: 44px; border-top: 1px solid var(--line-strong); padding-top: 18px; max-width: 620px; }
.ab-facts dt { font: 400 clamp(40px, 4vw, 56px)/1 var(--serif); color: var(--forest); }
.ab-facts dd { font-size: 13.5px; color: var(--muted); margin-top: 8px; line-height: 1.4; }
.ab-story__h { margin-bottom: clamp(36px, 5vw, 70px); }
.ab-ch { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; align-items: center; }
.ab-ch + .ab-ch { margin-top: clamp(50px, 7vw, 100px); }
.ab-ch__img { grid-column: 1 / span 4; }
.ab-ch__b { grid-column: 6 / span 6; }
.ab-ch--r .ab-ch__img { grid-column: 9 / span 4; order: 2; }
.ab-ch--r .ab-ch__b { grid-column: 2 / span 6; order: 1; }
.ab-ch:nth-child(4) .ab-ch__img { grid-column: 1 / span 6; }
.ab-ch:nth-child(4) .ab-ch__b { grid-column: 8 / span 5; }
.ab-ch__n { display: flex; align-items: baseline; gap: 14px; font: italic 400 26px/1.1 var(--serif); color: var(--forest); }
.ab-ch__n .mono { font-style: normal; font-size: 12px; color: var(--muted); }
.ab-ch__x { margin-top: 16px; font-size: clamp(17px, 1.3vw, 19px); line-height: 1.65; max-width: 40em; }
.ab-ch__x--first::first-letter { float: left; font: 400 3.45em/.84 var(--serif); color: var(--accent-ink); margin: .1em .12em 0 0; }
.ab-q { position: relative; background: var(--forest-deep); color: var(--on-forest); overflow: hidden; }
.ab-q__img { position: absolute; inset: 0; opacity: .28; }
.ab-q__img .ph { height: 100%; aspect-ratio: auto !important; }
.ab-q__img img { height: 100%; object-fit: cover; }
.ab-q__in { position: relative; padding-top: clamp(80px, 11vw, 160px); padding-bottom: clamp(80px, 11vw, 160px); }
.ab-q__b { max-width: 920px; }
.ab-q__b p { font: italic 400 clamp(32px, 4vw, 58px)/1.12 var(--serif); }
.ab-q__b p::before { content: '«'; color: var(--accent); }
.ab-q__b p::after { content: '»'; color: var(--accent); }
.ab-q__b footer { margin-top: 26px; font-size: 14.5px; color: var(--on-forest-muted); }
.ab-pr__g { display: grid; grid-template-columns: 1fr 1fr; column-gap: clamp(30px, 5vw, 80px); border-top: 1px solid var(--line-strong); }
.ab-pr__i { padding: 30px 0 34px 56px; border-bottom: 1px solid var(--line); position: relative; }
.ab-pr__ic { position: absolute; left: 0; top: 34px; width: 28px; height: 28px; color: var(--forest); }
.ab-pr__t { font: 400 clamp(28px, 2.5vw, 36px)/1.1 var(--serif); }
.ab-pr__x { margin-top: 12px; font-size: 15px; color: var(--muted); line-height: 1.6; max-width: 48ch; }
.ab-pr__a { display: inline-block; margin-top: 14px; font-size: 14px; }
.ab-team__l { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line-strong); }
.ab-tm { padding: 28px 28px 10px 0; display: grid; align-content: start; gap: 6px; }
.ab-tm + .ab-tm { padding-left: 28px; border-left: 1px solid var(--line); }
.ab-tm__mono { width: 76px; height: 76px; border-radius: 50%; border: 1px solid var(--forest); display: inline-flex; align-items: center; justify-content: center; font: italic 400 40px/1 var(--serif); color: var(--forest); margin-bottom: 14px; }
.ab-tm__n { font: 400 32px/1.1 var(--serif); }
.ab-tm__r { font-size: 14px; color: var(--accent-ink); }
.ab-tm__x { margin-top: 8px; font-size: 14.5px; color: var(--muted); line-height: 1.55; }
.ab-tm .ulink { margin-top: 10px; justify-self: start; font-size: 14px; }
.ab-next__l { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line-strong); }
.ab-next__l li + li { border-left: 1px solid var(--line); }
.ab-next__l a { display: grid; grid-template-columns: 1fr auto; gap: 6px 16px; padding: 26px 26px 26px 0; height: 100%; transition: color .2s; }
.ab-next__l li + li a { padding-left: 26px; }
.ab-next__t { font: 400 28px/1.1 var(--serif); }
.ab-next__x { grid-column: 1; font-size: 14px; color: var(--muted); }
.ab-next__l .ic { grid-column: 2; grid-row: 1 / span 2; align-self: center; transition: transform .3s var(--ease); }
.ab-next__l a:hover { color: var(--accent-ink); }
.ab-next__l a:hover .ic { transform: translateX(4px); }
@media (max-width: 999px) {
  .ab-head__t { grid-column: 1 / -1; }
  .ab-head__img { grid-column: 1 / span 8; margin-top: 36px; }
  .ab-ch__img, .ab-ch--r .ab-ch__img, .ab-ch:nth-child(4) .ab-ch__img { grid-column: 1 / span 5; order: 0; }
  .ab-ch__b, .ab-ch--r .ab-ch__b, .ab-ch:nth-child(4) .ab-ch__b { grid-column: 6 / -1; order: 0; }
  .ab-team__l, .ab-next__l { grid-template-columns: 1fr; }
  .ab-tm, .ab-tm + .ab-tm { padding: 24px 0; border-left: 0; }
  .ab-tm + .ab-tm { border-top: 1px solid var(--line); }
  .ab-next__l li + li { border-left: 0; border-top: 1px solid var(--line); }
  .ab-next__l li + li a { padding-left: 0; }
}
@media (max-width: 759px) {
  .ab-head__img { grid-column: 1 / -1; }
  .ab-facts { gap: 14px; }
  .ab-facts dt { font-size: 36px; }
  .ab-ch__img, .ab-ch--r .ab-ch__img, .ab-ch:nth-child(4) .ab-ch__img, .ab-ch__b, .ab-ch--r .ab-ch__b, .ab-ch:nth-child(4) .ab-ch__b { grid-column: 1 / -1; }
  .ab-ch__img .ph { aspect-ratio: 3/2 !important; }
  .ab-ch__b { margin-top: 20px; }
  .ab-pr__g { grid-template-columns: 1fr; }
  .ab-pr__i { padding-left: 44px; }
  .ab-pr__ic { width: 24px; height: 24px; }
  .ab-q__b p { font-size: 30px; }
}

/* ===================== Избранное ===================== */
.fv-head__n { display: block; font-size: 13px; color: var(--accent-ink); margin-bottom: 10px; }
.fv-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px 30px; padding: 18px 0; margin-bottom: 34px; border-top: 1px solid var(--line-strong); border-bottom: 1px solid var(--line); }
.fv-bar__s { display: flex; align-items: baseline; gap: 14px; font-size: 15px; color: var(--muted); }
.fv-bar__s .price { font-size: 26px; color: var(--text); }
.fv-bar .btns { margin-top: 0; align-items: center; }
.fv-body { padding-bottom: clamp(50px, 6vw, 90px); }
.fv-body .empty { padding-top: 30px; }
@media (max-width: 759px) {
  .fv-bar { flex-direction: column; align-items: stretch; }
  .fv-bar .btns .btn { flex: 1 1 100%; }
}
.cl-gl__num { font: italic 400 19px var(--serif); fill: var(--on-forest-muted); }
.cs__jump { display: none; }
@media (max-width: 999px) { .cs__jump { display: block; margin-top: 22px; } }
@media (max-width: 759px) {
  .qz__side--none { display: none; }
  .qz__al li.is-empty, .qz__al li.is-cur { display: none; }
}

/* подарок внутри оформления: тот же блок, без собственного заголовка */
.co-gift__tg { margin-top: 22px; }
.co-gift { margin-top: 16px; }
.co-gift .ct-gift { padding: 0; border: 0; }
.co-gift .ct-blk__h { display: none; }
.co-gift .ct-blk__x { display: none; }
.co-gift .ct-wrap { margin-top: 14px; }

/* крупные цифры — только прописные: у Cormorant по умолчанию «старостильные» 3, 4, 5, 7, 9 опускаются под строку и наезжают на подпись */
.pd-pr__v, .lab-facts__v, .gcert__v, .cl-head__wv, .cl-out__v, .ab-facts dt, .cl-lv__n, .od__no { font-variant-numeric: lining-nums; }

.mk.mk--out { display: none; }

/* =====================================================================
   Раунд 2: правки по замечаниям арт-директора и QA
   ===================================================================== */

/* A5: только прописные цифры. Шорткат font: сбрасывает font-variant-numeric у самого элемента,
   поэтому наследования от html мало — правило ставим каждому элементу */
*, *::before, *::after { font-variant-numeric: lining-nums !important; }
.price, .price *, .mc__sum b, .qty output, .sum__dl dd, .gs__pr, .gs__tot s, .ttab__v { font-variant-numeric: lining-nums tabular-nums !important; }
/* только стиль переноса: шорткат text-wrap сбросил бы унаследованный white-space: nowrap (крошки, чипы) */
h1, h2, h3 { text-wrap-style: balance; }
p, li, dd, figcaption { text-wrap-style: pretty; }

/* A3: первый экран — заголовок и «паспорт» формулы, флакон целиком в кадре */
.hero__top { align-items: start; }
.hero__t { grid-column: 1 / span 7; grid-row: 1; font-size: clamp(50px, 7vw, 116px); }
.hero__aside { grid-column: 1 / span 6; grid-row: 2; align-self: end; padding-bottom: 0; margin-top: 36px; }
.hero__pass { grid-column: 8 / span 5; grid-row: 1 / span 2; margin: 0; min-width: 0; }
.hero__pimg { position: relative; display: block; aspect-ratio: 5 / 4; overflow: hidden; background: var(--forest); }
.hero__pimg img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; transition: transform 1.4s var(--ease); }
.hero__pass:hover .hero__pimg img { transform: scale(1.025); }
.hero__pc { padding-top: 14px; }
.hero__pm { display: flex; flex-wrap: wrap; font: 400 12px/1.4 var(--mono); color: var(--muted); }
.hero__pm > span:empty { display: none; }
.hero__pm > span + span::before { content: '·'; margin: 0 8px; color: var(--warm-grey); }
.hero__pm .code { color: var(--accent-ink); }
.hero__pn { margin-top: 6px; font: 400 clamp(24px, 2.1vw, 30px)/1.1 var(--serif); }
.hero__pn a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.hero__pk { display: flex; align-items: baseline; gap: 12px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); font-size: 13.5px; line-height: 1.4; color: var(--muted); }
.hero__pk b { flex: none; font: 400 clamp(36px, 3vw, 46px)/.9 var(--serif); letter-spacing: -.02em; color: var(--forest); }
.hero__pb { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 14px; }
.hero__pb .price { font-size: 22px; }
.hero__cap--one { grid-template-columns: minmax(0, 1fr); }
.hero__cap--one .hero__ct { grid-row: auto; }
.hero__dots button { width: 44px; height: 44px; }
@media (max-width: 1099px) {
  .hero__t { grid-column: 1 / -1; grid-row: 1; }
  .hero__aside { grid-column: 1 / span 6; grid-row: 2; margin-top: 28px; }
  .hero__pass { grid-column: 7 / span 6; grid-row: 2; margin-top: 28px; }
}
@media (max-width: 759px) {
  .hero__pass { grid-column: 1 / -1; grid-row: 2; margin-top: 22px; }
  .hero__pimg { aspect-ratio: 4 / 5; max-height: 58svh; }
  .hero__aside { grid-column: 1 / -1; grid-row: 3; margin-top: 26px; }
  .hero__pk b { font-size: 36px; }
}

/* A15: тизер ритуалов — кадр компактнее, подпись набора целиком */
.rtx__fig { grid-column: 1 / span 5; }
.rtx__txt { grid-column: 7 / span 6; }
.rtx__fig .cap { flex-wrap: wrap; gap: 4px 16px; }
.rtx__set { color: var(--text); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; text-decoration-color: var(--line-strong); }
.rtx__set:hover { text-decoration-color: currentColor; }
@media (max-width: 1099px) { .rtx__fig { grid-column: 1 / span 6; } .rtx__txt { grid-column: 7 / span 6; margin-top: 0; } }
@media (max-width: 759px) { .rtx__fig, .rtx__txt { grid-column: 1 / -1; } .rtx__txt { margin-top: 36px; } }
/* A6: кадр ритуала у окна — к правому краю, флаконы с латиницей за кадром */
.ph--right > img { object-position: 100% 50%; }

/* A10: результаты тестов на главной вместо третьего показа фото лаборатории */
.lbx__res { align-self: stretch; display: flex; flex-direction: column; }
.lbx__rh { font: 400 12px/1.4 var(--mono); color: var(--muted); padding-bottom: 12px; border-bottom: 1px solid var(--forest); }
.lbx__rl { list-style: none; margin: 0; padding: 0; }
.lbx__rl li { border-bottom: 1px solid var(--line-strong); }
.lbx__ri { display: grid; grid-template-columns: minmax(170px, 2fr) minmax(0, 3fr); gap: 24px; align-items: baseline; padding: 20px 0 22px; }
.lbx__rv { font: 400 clamp(56px, 6vw, 92px)/.85 var(--serif); letter-spacing: -.03em; color: var(--forest); white-space: nowrap; }
.lbx__rb { display: grid; gap: 6px; }
.lbx__rc { font-size: 16px; line-height: 1.4; }
.lbx__rp { font: 400 19px/1.2 var(--serif); }
.lbx__rp .code { margin-right: 8px; font: 500 13px var(--sans); }
.lbx__rm { font-size: 11.5px; color: var(--muted); }
.lbx__ri:hover .lbx__rp { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.lbx__res .cap { margin-top: auto; padding-top: 14px; flex-wrap: wrap; }
@media (max-width: 759px) { .lbx__ri { grid-template-columns: minmax(0, 1fr); gap: 10px; padding: 18px 0; } }

/* A7 / Q18: метки карты — зона касания 44×44 при маленькой точке; подпись под точкой, где соседи тесно */
.mk__dot::before { content: ''; position: absolute; left: 50%; top: 50%; width: 44px; height: 44px; margin: -22px 0 0 -22px; border-radius: 50%; }
.mk--b { flex-direction: column; gap: 4px; transform: translate(-50%, -11px); }
@media (max-width: 759px) { .mk--b { gap: 3px; transform: translate(-50%, -10px); } }
/* мини-карта на странице товара — иллюстрация, не навигация */
[data-pd-map] .mk { pointer-events: none; }

/* A8: карта целиком; карточка ингредиента — поверх карты справа, с прокруткой внутри */
.ig__hd { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.ig__hd .ig__n { margin: 0; }
.ig__x { display: none; }
@media (min-width: 1200px) {
  .ing-map__stage { display: block; position: relative; }
  .ing-map__map { position: relative; top: auto; }
  .ing-map__stage:not(.has-card) .ig--panel { display: none; }
  .ig--panel { position: absolute; top: 0; right: 0; bottom: 0; width: min(440px, 34%); padding-top: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; box-shadow: 0 24px 60px rgba(8, 20, 14, .42); }
  .ig__hd { position: sticky; top: 0; z-index: 3; margin: 0 -28px 16px; padding: 8px 10px 8px 28px; background: var(--bg); border-bottom: 1px solid var(--line); }
  .ig__x { display: inline-flex; }
}
@media (max-width: 1199px) {
  .ing-map__stage { display: block; }
  .ing-map__map { position: static; }
  .ig--panel { margin-top: 20px; }
}

/* A18: календарь на телефоне — «янв фев мар…» вместо одних инициалов */
@media (max-width: 759px) {
  .cal__r { grid-template-columns: 96px repeat(12, minmax(0, 1fr)); }
  .cal__mf { display: inline; font: 400 10px/1 var(--mono); letter-spacing: -.03em; text-transform: lowercase; }
  .cal__m.is-now .cal__mf { font-weight: 600; }
  .cal__ms { display: none; }
  .cal__nm { font-size: 15px; }
}
@media (max-width: 369px) { .cal { overflow-x: auto; } .cal__r { min-width: 340px; } }

/* A7: элементы управления на телефоне — не меньше 44 px */
@media (max-width: 759px), (pointer: coarse) {
  .fav { width: 44px; height: 44px; }
  .chip { min-height: 44px; }
  .pc__add { height: auto; min-height: 44px; }
  .prow__add { width: 44px; height: 44px; }
  .ig__go { min-height: 44px; }
  .ct-li__lnk { min-height: 44px; }
}
@media (max-width: 759px) {
  .hdr__tools .icbtn, .hdr__burger { min-width: 44px; }
}

/* A12: бейдж на узкой карточке — в две строки, без многоточия */
@media (max-width: 559px) {
  .pc__badge { max-width: calc(100% - 66px); white-space: normal; overflow: visible; text-overflow: clip; line-height: 1.15; }
}

/* A10: у части карточек первым кадром — текстура, флакон по наведению */
.pc--tex .pc__i1 { opacity: 0; }
.pc--tex .pc__i2 { opacity: 1; }
.pc--2.pc--tex .pc__img:hover .pc__i1, .pc--2.pc--tex .pc__img:focus-visible .pc__i1 { opacity: 1; }
.pc--2.pc--tex .pc__img:hover .pc__i2, .pc--2.pc--tex .pc__img:focus-visible .pc__i2 { opacity: 0; }

/* A14: крошки на телефоне — одной строкой, длинное название с многоточием */
@media (max-width: 759px) {
  .crumbs ol { flex-wrap: nowrap; white-space: nowrap; }
  .crumbs li { flex: none; }
  .crumbs li:last-child { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
  .crumbs li:last-child span { display: inline; max-width: none; }
}

/* A13: составы и проценты не рвутся */
.pd__acts dt { white-space: nowrap; }
.pd-ki__v { white-space: nowrap; }
.pd-ki__v--long { font-size: clamp(40px, 4.2vw, 68px); line-height: 1; }

/* E3: регион сырья под названием компонента */
.pd-ki__o { display: flex; align-items: center; gap: 6px; margin-top: 6px; font-size: 13px; color: var(--moss); }
.pd-ki__o .ic { flex: none; width: 14px; height: 14px; }

/* A2 / Q3: карточка теста — что измеряли, значение, тип метода */
.pd-pr__k { font-size: 14px; font-weight: 600; margin-bottom: 12px; }
.pd-pr__v--txt { font-size: clamp(40px, 4.4vw, 68px); line-height: .95; letter-spacing: -.02em; }
.pd-pr__d dd b { display: block; font-weight: 600; margin-bottom: 2px; }

/* A9: отзывы только о самой формуле — сетка по их числу */
@media (min-width: 900px) {
  .pd-rv__g--1 { grid-template-columns: minmax(0, 760px); }
  .pd-rv__g--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.pd-rv__no { padding: 22px 0; border-top: 1px solid var(--line); color: var(--muted); font-size: 15px; }

/* таблица тестов: на 980–1199 срок не прячем — без него результат не прочитать */
@media (min-width: 980px) and (max-width: 1199px) {
  .ttab__r { grid-template-columns: minmax(0, 1.9fr) minmax(0, 1.4fr) minmax(0, 1.3fr) 86px minmax(0, .9fr) minmax(0, 1.7fr); gap: 14px; }
  .ttab__d { display: block; }
}
.ttab__k { display: none; }
.ttab__ty { display: block; font-weight: 500; color: var(--text); margin-bottom: 2px; }
.tres__b { font: 400 30px/1 var(--serif); letter-spacing: -.01em; color: var(--accent-ink); }
@media (max-width: 979px) { .ttab__k { display: inline; } .ttab__d--none { display: none; } }

/* A11: эксперт — монограмма вместо чужих рук на аватаре; регалии строкой */
.cs__mono { position: relative; display: flex; align-items: center; justify-content: center; width: 92px; height: 92px; border-radius: 50%; background: var(--forest); color: var(--on-forest); font: italic 400 48px/1 var(--serif); }
.cs__mono i { position: absolute; right: 8px; bottom: 10px; width: 11px; height: 11px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 3px var(--bg); }
.cs__exc { margin-top: 4px; font-size: 13px; color: var(--text); }

/* A16: журнал без фильтров по одной статье */
.jbar--solo { justify-content: flex-start; }

/* Q15: необязательные шаги подбора */
.qr__opt { display: flex; gap: 10px; align-items: flex-start; margin-top: 18px; font-size: 14px; line-height: 1.5; color: var(--muted); }
.qr__opt .ic { flex: none; margin-top: 3px; color: var(--accent-ink); }
.qr__opt .ulink { color: var(--text); }

/* A19: средства набора уже в корзине — замена набором вместо дубля */
.rb__swap { height: auto; padding-top: 12px; padding-bottom: 12px; }
.rb__swn { margin-top: 8px; font-size: 13px; line-height: 1.45; color: var(--muted); }
.rit--evening .rb__swn { color: var(--on-forest-muted); }

/* Q17: каталог в шапке — ссылка и отдельная кнопка-стрелка */
.has-mega { display: flex; align-items: center; }
.hdr__nav > ul > li.has-mega > a { padding-right: 4px; }
.hdr__nav > ul > li.has-mega > a::after { right: 4px; }
.mega-tg { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 44px; color: var(--muted); border-radius: 2px; }
.mega-tg:hover { color: var(--text); }
.mega-tg .ic { transition: transform .2s; }
.mega-tg[aria-expanded="true"] .ic { transform: rotate(180deg); }

/* E2 / Q19: мини-корзина — заголовок пустого состояния, строка сертификата */
.mc__et { font: 400 30px/1.1 var(--serif); }
.mc__empty .mc__et + p { display: block; margin-top: 10px; color: var(--muted); }
.mc__vimg, .vthumb { display: flex; align-items: center; justify-content: center; background: var(--forest); color: var(--on-forest); }
.mc__vimg { width: 76px; height: 95px; }
.mc__vimg .logo__mark { width: 34px; height: 34px; }
.vthumb { width: 100%; height: 100%; }
.vthumb .logo__mark { width: 46%; height: auto; }
.sum__img .vthumb { width: 44px; height: 55px; }
.od__img .vthumb { width: 48px; height: 60px; }
.mc__to { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; color: var(--muted); }
.ct-li--v .ct-li__img { background: var(--forest); }
.co-dig { display: flex; gap: 10px; align-items: flex-start; margin-bottom: 18px; padding: 14px 16px; background: var(--surface); border-left: 2px solid var(--moss); font-size: 14px; line-height: 1.5; }
.co-dig .ic { flex: none; margin-top: 3px; color: var(--moss); }
.ftr__mail { overflow-wrap: anywhere; }
/* A9: на странице товара все отзывы — о нём самом, строка с названием формулы под отзывом лишняя */
.pd-rv .rq__p { display: none; }
/* длинный состав «20% + 3%» — мельче, но подпись под ним на одной линии с соседними */
.pd-ki__v--long { display: flex; align-items: flex-end; min-height: calc(clamp(56px, 6.4vw, 104px) * .9); }
@media (max-width: 759px) { .pd-ki__v--long { min-height: 0; font-size: 48px; } }
/* A14: в ленте галереи на телефоне подпись соседнего кадра раздвигала ряд — кладём подписи на сам кадр */
@media (max-width: 899px) {
  .pd__shot { position: relative; }
  .pd__shot .cap { position: absolute; left: 0; right: 0; bottom: 0; padding: 40px 14px 12px; background: linear-gradient(to top, rgba(14, 26, 19, .74), rgba(14, 26, 19, 0)); color: #F3EEE4; pointer-events: none; }
  .pd { row-gap: 22px; }
}
/* A15: полоса фактов замыкается линией следующей секции — без пустой полосы фона под ней */
.manif { padding-bottom: 0; }
.facts__i { padding-bottom: clamp(30px, 3.2vw, 48px); }
@media (max-width: 899px) { .facts__i { padding-bottom: 26px; } }
/* пункты шапки не рвём на две строки (на 1100–1120 px «Карта ингредиентов» переносилась) */
.hdr__nav > ul > li > a { white-space: nowrap; }
@media (max-width: 1199px) { .hdr__nav > ul > li > a { padding: 0 8px; } .hdr__nav > ul > li > a::after { left: 8px; right: 8px; } .hdr__nav > ul > li.has-mega > a { padding-right: 4px; } .hdr__nav > ul > li.has-mega > a::after { right: 4px; } }
/* 320 px (проверка при закрытии): кнопка «В корзину» в списке формул уходит под цену, а не за край; заголовок журнала «Северная» — по ширине */
@media (max-width: 899px) { .fx__end { flex-wrap: wrap; row-gap: 8px; } }
@media (max-width: 359px) { .d-xl { font-size: 42px; } }
/* 320–400 px: длинные слова не вылезают за плашку и колонку — «выбор косметологов», факты лаборатории и «О нас» */
@media (max-width: 400px) { .pc__badge { overflow-wrap: break-word; hyphens: auto; -webkit-hyphens: auto; } }
@media (max-width: 359px) {
  .lab-facts__v { font-size: 30px; }
  .ab-facts dd { font-size: 12px; overflow-wrap: break-word; hyphens: auto; -webkit-hyphens: auto; }
}
