/* ==========================================================================
   Секции лендинга
   ========================================================================== */

/* --- HERO --- */
.hero { padding-top: var(--sp-4); }
.hero .block { padding-block: clamp(32px, 6vw, 96px); min-height: min(88vh, 900px); display: grid; align-content: space-between; background: linear-gradient(180deg, #eef6fd 0%, #f3faf5 100%); }
.hero__grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: var(--sp-7); align-items: center; }
.hero h1 { margin: 22px 0 26px; }
.hero h1 em { font-style: normal; color: var(--c-green); position: relative; white-space: nowrap; }
.hero h1 em::after { content: ''; position: absolute; left: 0; right: 0; bottom: .06em; height: .14em; background: var(--c-sun); z-index: -1; border-radius: 4px; opacity: .7; }
.hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: var(--sp-6); }
.hero__stage { position: relative; aspect-ratio: 1 / 1; width: 100%; max-width: 620px; justify-self: end; border-radius: var(--r-lg); background: radial-gradient(70% 70% at 50% 45%, #ffffff 0%, rgba(255,255,255,0) 70%); }
.hero__stage canvas { width: 100% !important; height: 100% !important; border-radius: var(--r-lg); touch-action: pan-y; }
.hero__stage-hint { position: absolute; left: 50%; bottom: 12px; transform: translateX(-50%); font-family: var(--f-mono); font-size: 14px; color: var(--c-ink-3); background: rgba(255,255,255,.8); padding: 6px 12px; border-radius: 999px; white-space: nowrap; }
.hero__particles { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; opacity: .9; }
.hero__stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--sp-4); margin-top: var(--sp-8); }
.hero__stats .tile { background: rgba(255,255,255,.75); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.hero__stats .stat__num { font-size: clamp(40px, 4vw, 72px); }
.hero__meta { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-top: 18px; font-size: var(--fs-small); color: var(--c-ink-3); }
.hero__meta span { display: inline-flex; align-items: center; gap: 6px; }
@media (max-width: 1000px) {
  .hero__grid { grid-template-columns: 1fr; }
  .hero__stage { justify-self: center; max-width: 520px; }
  .hero__stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 480px) { .hero h1 em { white-space: normal; } .hero__stats .stat__num { font-size: 40px; } }

/* --- Садовник (персонаж-рассказчик) --- */
.gardener { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 18px; align-items: start; }
.gardener__ava { width: 96px; height: 96px; border-radius: 50%; overflow: hidden; background: var(--s-sand-2); border: 3px solid #fff; box-shadow: var(--sh-1); }
.gardener__ava img { width: 100%; height: 100%; object-fit: cover; }
.gardener__bubble { position: relative; background: #fff; border-radius: 22px; padding: 18px 22px; font-size: var(--fs-body); line-height: 1.5; box-shadow: var(--sh-1); }
.gardener__bubble::before { content: ''; position: absolute; left: -10px; top: 26px; border: 10px solid transparent; border-right-color: #fff; border-left: 0; }
.gardener__name { font-family: var(--f-mono); font-size: 14px; letter-spacing: .1em; text-transform: uppercase; color: var(--c-soil); margin-bottom: 6px; display: block; }
@media (max-width: 520px) { .gardener { grid-template-columns: 64px minmax(0, 1fr); gap: 12px; } .gardener__ava { width: 64px; height: 64px; } }

/* Плейсхолдер изображения */
.ph { position: relative; border-radius: var(--r-md); background: repeating-linear-gradient(135deg, #eef1ee 0 12px, #e6eae6 12px 24px); display: grid; place-items: center; color: var(--c-ink-3); font-family: var(--f-mono); font-size: 14px; text-align: center; padding: 16px; min-height: 160px; overflow: hidden; }
.ph img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

/* --- Оглавление --- */
.toc { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; counter-reset: toc; }
.toc a { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 14px; align-items: baseline; padding: 16px 18px; border-radius: var(--r-sm); background: #fff; color: var(--c-ink); text-decoration: none; counter-increment: toc; transition: all var(--t-fast); min-height: 64px; }
.toc a::before { content: counter(toc, decimal-leading-zero); font-family: var(--f-mono); color: var(--c-green); font-size: 15px; }
.toc a:hover { background: var(--c-ink); color: #fff; }
.toc a:hover::before, .toc a:hover .toc__time { color: #9fe0bb; }
.toc__t { font-weight: 700; line-height: 1.3; }
.toc__time { font-family: var(--f-mono); font-size: 14px; color: var(--c-ink-3); white-space: nowrap; }
@media (max-width: 1000px) { .toc { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px) { .toc { grid-template-columns: 1fr; } }

/* --- TL;DR --- */
.tldr { list-style: none; display: grid; gap: 12px; counter-reset: t; }
.tldr li { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 18px; padding: 22px; background: #fff; border-radius: var(--r-md); counter-increment: t; }
.tldr li::before { content: counter(t, decimal-leading-zero); font-family: var(--f-mono); font-size: 28px; font-weight: 600; color: var(--c-blue); line-height: 1.1; }
.tldr h3 { font-size: var(--fs-h4); margin-bottom: 8px; }
.tldr p { color: var(--c-ink-2); }
@media (max-width: 560px) { .tldr li { grid-template-columns: 1fr; gap: 6px; padding: 18px; } }

/* --- Пьедестал --- */
.podium { display: grid; grid-template-columns: 1.25fr 1fr 1fr; gap: var(--sp-4); align-items: stretch; }
.podium .tile { display: flex; flex-direction: column; gap: 16px; padding: clamp(22px, 2.6vw, 40px); }
.podium__place { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.podium__num { font-size: clamp(64px, 7vw, 120px); font-weight: 800; letter-spacing: -0.06em; line-height: .85; color: var(--c-green); }
.podium .tile:nth-child(2) .podium__num { color: var(--c-blue); }
.podium .tile:nth-child(3) .podium__num { color: var(--c-soil); }
.podium__name { font-size: clamp(28px, 2.6vw, 44px); font-weight: 800; letter-spacing: -0.03em; line-height: 1.05; }
.podium__score { display: flex; align-items: baseline; gap: 8px; }
.podium__score b { font-size: clamp(36px, 3vw, 52px); letter-spacing: -0.04em; font-variant-numeric: tabular-nums; }
.podium__blocks { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px 14px; }
.podium__blocks div { font-size: 15px; color: var(--c-ink-2); }
.podium__blocks b { display: block; font-size: 20px; color: var(--c-ink); }
.facts { list-style: none; display: grid; gap: 8px; font-size: var(--fs-small); color: var(--c-ink-2); }
.facts li { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 10px; }
.facts .ico { width: 20px; height: 20px; color: var(--c-green); margin-top: 3px; }
.podium__foot { margin-top: auto; display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: space-between; padding-top: 12px; border-top: 1px solid var(--c-line); }
@media (max-width: 1100px) { .podium { grid-template-columns: 1fr 1fr; } .podium .tile:first-child { grid-column: 1 / -1; } }
@media (max-width: 680px) { .podium { grid-template-columns: 1fr; } .podium__blocks { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* --- Методология --- */
.formula { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; padding: clamp(20px, 3vw, 40px); background: var(--s-night); color: #fff; border-radius: var(--r-md); font-family: var(--f-mono); font-size: clamp(22px, 2.6vw, 44px); letter-spacing: -0.02em; }
.formula span { color: #8fd9ad; }
.formula small { display: block; width: 100%; font-family: var(--f-sans); font-size: var(--fs-small); color: #c5d5e2; letter-spacing: 0; }
.weights { display: flex; height: 64px; border-radius: 18px; overflow: hidden; margin: var(--sp-6) 0; }
.weights > div { display: grid; place-items: center; color: #fff; font-weight: 800; font-size: 18px; min-width: 0; transition: flex var(--t-mid) var(--ease); cursor: default; }
.weights > div:hover { flex-grow: 1.4 !important; }
.w-Q { background: var(--c-green); } .w-A { background: var(--c-blue); } .w-L { background: #8a5a2b; } .w-S { background: #0f7d74; } .w-T { background: #5b46b0; } .w-P { background: #b24a1c; }
.mblock { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: var(--sp-6); padding: clamp(20px, 2.6vw, 36px); background: #fff; border-radius: var(--r-md); }
.mblock + .mblock { margin-top: 12px; }
.mblock__id { display: inline-grid; place-items: center; width: 56px; height: 56px; border-radius: 16px; color: #fff; font-weight: 800; font-size: 24px; margin-bottom: 12px; }
.mblock__w { font-family: var(--f-mono); font-size: 15px; color: var(--c-ink-3); }
.crit { list-style: none; display: grid; gap: 10px; }
.crit li { display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; gap: 12px; align-items: start; padding: 12px 0; border-bottom: 1px dashed var(--c-line-2); }
.crit li:last-child { border-bottom: 0; }
.crit__id { font-family: var(--f-mono); font-weight: 600; color: var(--c-ink-3); }
.crit__name { font-weight: 700; }
.crit__how { display: block; font-size: var(--fs-small); color: var(--c-ink-2); margin-top: 4px; font-weight: 400; }
.crit__w { font-family: var(--f-mono); font-weight: 700; background: var(--s-stone); border-radius: 10px; padding: 2px 10px; white-space: nowrap; }
@media (max-width: 900px) { .mblock { grid-template-columns: 1fr; gap: var(--sp-4); } }
@media (max-width: 480px) { .crit li { grid-template-columns: 40px minmax(0, 1fr); } .crit__w { grid-column: 2; justify-self: start; } .weights { height: 52px; } .weights > div { font-size: 14px; } }

/* --- Таблица рейтинга --- */
.rt-tools { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-bottom: var(--sp-5); }
.rt-search { position: relative; flex: 1 1 280px; min-width: 0; }
.rt-search input { width: 100%; min-height: 54px; border-radius: var(--r-pill); border: 2px solid var(--c-line-2); background: #fff; padding: 0 20px 0 52px; font-size: 18px; }
.rt-search input:focus { border-color: var(--c-blue); outline: none; }
.rt-search .ico { position: absolute; left: 18px; top: 50%; transform: translateY(-50%); color: var(--c-ink-3); }
.seg { display: inline-flex; flex-wrap: wrap; gap: 6px; background: #fff; padding: 5px; border-radius: var(--r-pill); border: 1px solid var(--c-line); }
.seg button { min-height: 44px; padding: 0 16px; border-radius: var(--r-pill); border: 0; background: transparent; font-weight: 700; font-size: 16px; color: var(--c-ink-2); }
.seg button[aria-pressed="true"] { background: var(--c-ink); color: #fff; }
.rt-wrap { background: #fff; border-radius: var(--r-md); overflow: hidden; border: 1px solid var(--c-line); }
.rt-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.rt { width: 100%; min-width: 980px; font-size: 17px; }
.rt th { position: sticky; top: 0; background: var(--s-stone); text-align: left; font-size: 14px; font-family: var(--f-mono); font-weight: 500; letter-spacing: .04em; text-transform: uppercase; color: var(--c-ink-2); padding: 14px 14px; white-space: nowrap; }
.rt th button { all: unset; cursor: pointer; display: inline-flex; gap: 6px; align-items: center; }
.rt th button:focus-visible { outline: 2px solid var(--c-blue); border-radius: 4px; }
.rt th[aria-sort="descending"] button::after { content: '↓'; } .rt th[aria-sort="ascending"] button::after { content: '↑'; }
.rt td { padding: 14px; border-top: 1px solid var(--c-line); vertical-align: middle; }
.rt tbody tr { transition: background var(--t-fast); }
.rt tbody tr:hover { background: #f7fbf8; }
.rt tr.is-top td:first-child { color: var(--c-green); }
.rt__rank { font-family: var(--f-mono); font-weight: 700; font-size: 18px; width: 56px; }
.rt__name b { display: block; font-size: 18px; }
.rt__name a { font-size: 15px; }
.rt__score { font-weight: 800; font-size: 20px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.rt__bar { width: 110px; }
.rt__y { white-space: nowrap; font-variant-numeric: tabular-nums; }
.rt__y .ico { width: 16px; height: 16px; display: inline; vertical-align: -2px; color: #d49b00; }
.rt__flags { display: flex; gap: 4px; flex-wrap: wrap; }
.rt-more { display: flex; justify-content: center; padding: 18px; border-top: 1px solid var(--c-line); }
.rt tr.is-hidden { display: none; }
/* Мобильная версия таблицы — карточки */
@media (max-width: 760px) {
  .rt { min-width: 0; }
  .rt thead { display: none; }
  .rt, .rt tbody, .rt tr, .rt td { display: block; width: 100%; }
  .rt tr { padding: 16px 18px; border-top: 1px solid var(--c-line); display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; gap: 6px 12px; align-items: start; }
  .rt tr.is-hidden { display: none; }
  .rt td { border: 0; padding: 0; }
  .rt__rank { grid-row: span 2; font-size: 20px; }
  .rt__score { text-align: right; }
  .rt__bar, .rt__cell-hide { display: none !important; }
  .rt__y, .rt__price { grid-column: 2 / -1; font-size: 15px; color: var(--c-ink-2); }
  .rt__y::before { content: 'Яндекс Карты: '; } .rt__price::before { content: 'Цена грунта: '; }
  .rt__flags { grid-column: 2 / -1; }
}

/* --- Карточки компаний --- */
.cc { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: var(--sp-6); padding: clamp(22px, 2.8vw, 44px); background: #fff; border-radius: var(--r-md); }
.cc + .cc { margin-top: 14px; }
.cc__head { display: flex; gap: 18px; align-items: flex-start; }
.cc__rank { font-size: clamp(44px, 4vw, 72px); font-weight: 800; letter-spacing: -0.06em; line-height: .9; color: var(--c-green); min-width: 1.4em; }
.cc__name { font-size: clamp(26px, 2.2vw, 38px); font-weight: 800; letter-spacing: -0.03em; line-height: 1.1; }
.cc__type { color: var(--c-ink-3); font-size: var(--fs-small); margin-top: 6px; }
.cc__score { display: flex; align-items: center; gap: 16px; margin: 20px 0 14px; }
.cc__score b { font-size: 44px; letter-spacing: -0.04em; font-variant-numeric: tabular-nums; }
.cc__req { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 6px 16px; font-size: var(--fs-small); margin-top: 16px; }
.cc__req dt { color: var(--c-ink-3); } .cc__req dd { margin: 0; overflow-wrap: anywhere; }
.cc__bars { display: grid; gap: 12px; }
.cc__bar { display: grid; grid-template-columns: 150px minmax(0, 1fr) 44px; gap: 12px; align-items: center; font-size: 16px; }
.cc__bar b { text-align: right; font-variant-numeric: tabular-nums; }
.cc__txt { margin-top: 18px; color: var(--c-ink-2); }
.cc--compact { grid-template-columns: 1fr; gap: 12px; }
@media (max-width: 900px) { .cc { grid-template-columns: 1fr; } }
@media (max-width: 480px) { .cc__bar { grid-template-columns: 110px minmax(0, 1fr) 36px; font-size: 15px; } .cc__score b { font-size: 36px; } }

/* --- Радар / сравнение --- */
.compare { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--sp-6); align-items: center; }
.radar-box { position: relative; aspect-ratio: 1; width: 100%; max-width: 560px; margin: auto; }
.radar-box canvas { width: 100%; height: 100%; }
.cmp-pick { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0 24px; }
.cmp-pick button { min-height: 44px; padding: 0 16px; border-radius: var(--r-pill); border: 2px solid var(--c-line-2); background: #fff; font-weight: 700; font-size: 16px; }
.cmp-pick button[aria-pressed="true"] { border-color: currentColor; }
.cmp-legend { list-style: none; display: grid; gap: 8px; font-size: var(--fs-small); }
.cmp-legend li { display: flex; gap: 10px; align-items: center; }
.cmp-legend i { width: 16px; height: 16px; border-radius: 5px; flex: 0 0 16px; }
@media (max-width: 900px) { .compare { grid-template-columns: 1fr; } }

/* --- Калькуляторы --- */
.calc-nav { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 8px; margin-bottom: var(--sp-5); scrollbar-width: thin; }
.calc-nav button { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 10px; min-height: 52px; padding: 0 18px; border-radius: var(--r-pill); border: 0; background: #fff; font-weight: 700; font-size: 16px; color: var(--c-ink-2); white-space: nowrap; }
.calc-nav button .ico { width: 20px; height: 20px; }
.calc-nav button[aria-selected="true"] { background: var(--c-ink); color: #fff; }
.calc { display: none; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: var(--sp-5); }
.calc.is-active { display: grid; animation: calcIn .5s var(--ease); }
@keyframes calcIn { from { opacity: 0; transform: translateY(10px); } }
.calc__form { background: #fff; border-radius: var(--r-md); padding: clamp(20px, 2.6vw, 36px); display: grid; gap: 18px; align-content: start; }
.calc__form h3 { font-size: var(--fs-h3); }
.calc__form > p { color: var(--c-ink-2); }
.field { display: grid; gap: 8px; }
.field label, .field__l { font-weight: 700; font-size: 17px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.field__row { display: grid; grid-template-columns: minmax(0, 1fr) 120px; gap: 12px; align-items: center; }
.field input[type="number"], .field select { width: 100%; min-height: 52px; border: 2px solid var(--c-line-2); border-radius: 14px; padding: 0 14px; background: #fff; font-size: 18px; font-variant-numeric: tabular-nums; }
.field input[type="number"]:focus, .field select:focus { outline: none; border-color: var(--c-blue); }
.field input[type="range"] { width: 100%; accent-color: var(--c-green); height: 32px; }
.field__help { font-size: 15px; color: var(--c-ink-3); }
.radio-row { display: flex; flex-wrap: wrap; gap: 8px; }
.radio-row label { position: relative; }
.radio-row input { position: absolute; opacity: 0; pointer-events: none; }
.radio-row span { display: inline-flex; align-items: center; min-height: 46px; padding: 0 16px; border-radius: var(--r-pill); border: 2px solid var(--c-line-2); font-weight: 600; font-size: 16px; cursor: pointer; background: #fff; }
.radio-row input:checked + span { background: var(--s-mint); border-color: var(--c-green); color: var(--c-green-ink); }
.radio-row input:focus-visible + span { outline: 3px solid var(--c-blue); outline-offset: 2px; }
.calc__out { border-radius: var(--r-md); padding: clamp(20px, 2.6vw, 36px); background: var(--s-night); color: #fff; display: grid; gap: 18px; align-content: start; position: relative; overflow: hidden; }
.calc__big { font-size: clamp(48px, 5vw, 88px); font-weight: 800; letter-spacing: -0.05em; line-height: .95; font-variant-numeric: tabular-nums; }
.calc__big small { font-size: .35em; letter-spacing: 0; font-weight: 700; color: #9fe0bb; margin-left: 6px; }
.calc__rows { display: grid; gap: 10px; }
.calc__rows div { display: flex; justify-content: space-between; gap: 16px; padding-bottom: 10px; border-bottom: 1px solid rgba(255,255,255,.14); font-size: 17px; }
.calc__rows span { color: #c5d5e2; } .calc__rows b { text-align: right; }
.calc__note { font-size: 15px; color: #b9cbd8; }
.calc__trucks { display: flex; flex-wrap: wrap; gap: 8px; }
.calc__trucks span { display: inline-flex; align-items: center; gap: 6px; background: rgba(255,255,255,.1); padding: 6px 12px; border-radius: 999px; font-weight: 700; font-size: 15px; }
.calc__trucks .ico { width: 18px; height: 18px; }
.mix-bar { display: flex; height: 40px; border-radius: 12px; overflow: hidden; }
.mix-bar i { display: block; height: 100%; transition: width var(--t-mid) var(--ease); }
@media (max-width: 900px) { .calc { grid-template-columns: 1fr; } }

/* --- Гайд по сценариям --- */
.scen { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--sp-4); }
.scen .tile { display: flex; flex-direction: column; gap: 12px; }
.scen .tile .ico-badge { margin-bottom: 4px; }
.scen dl { display: grid; gap: 6px; font-size: 16px; margin: 0; }
.scen dt { color: var(--c-ink-3); font-size: 14px; font-family: var(--f-mono); text-transform: uppercase; letter-spacing: .06em; }
.scen dd { margin: 0 0 8px; }
@media (max-width: 1200px) { .scen { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .scen { grid-template-columns: 1fr; } }

/* --- Срез почвы (canvas) --- */
.soil-cut { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--sp-6); align-items: center; }
.soil-cut__canvas { position: relative; width: 100%; aspect-ratio: 4 / 5; max-height: 640px; border-radius: var(--r-md); overflow: hidden; background: #fff; cursor: crosshair; }
.soil-cut__canvas canvas { width: 100%; height: 100%; }
.soil-cut__info { min-height: 220px; }
@media (max-width: 900px) { .soil-cut { grid-template-columns: 1fr; } .soil-cut__canvas { aspect-ratio: 1; } }

/* --- Цены --- */
.chart-box { position: relative; width: 100%; height: 440px; background: #fff; border-radius: var(--r-md); padding: 12px; }
.chart-box canvas { width: 100%; height: 100%; }
.chart-tip { position: absolute; pointer-events: none; background: var(--c-ink); color: #fff; font-size: 15px; padding: 8px 12px; border-radius: 10px; opacity: 0; transition: opacity .15s; white-space: nowrap; z-index: 3; }
@media (max-width: 600px) { .chart-box { height: 520px; } }

/* --- Красные флаги --- */
.flags { counter-reset: f; }
.flags .tile { counter-increment: f; }
.flags .tile::before { content: counter(f, decimal-leading-zero); position: absolute; right: 22px; top: 18px; font-family: var(--f-mono); font-size: 44px; font-weight: 700; color: rgba(164,73,31,.14); }
.flags h3 { padding-right: 60px; }

/* --- Чек-лист --- */
.check { list-style: none; display: grid; gap: 10px; }
.check label { display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 14px; padding: 16px 18px; background: #fff; border-radius: var(--r-sm); cursor: pointer; align-items: start; transition: background var(--t-fast); }
.check input { width: 26px; height: 26px; accent-color: var(--c-green); margin: 2px 0 0; }
.check b { display: block; }
.check span span { display: block; font-size: var(--fs-small); color: var(--c-ink-2); margin-top: 4px; }
.check label:has(input:checked) { background: var(--s-mint-2); }
.check-progress { display: flex; align-items: center; gap: 16px; margin-bottom: 18px; font-weight: 700; }
.check-progress .meter { flex: 1; height: 14px; }

/* --- Календарь --- */
.cal { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; }
.cal .tile { padding: 18px; display: flex; flex-direction: column; gap: 8px; min-height: 200px; }
.cal__m { font-weight: 800; font-size: 22px; }
.cal__lvl { display: flex; gap: 4px; }
.cal__lvl i { flex: 1; height: 6px; border-radius: 3px; background: var(--c-line); }
.cal__lvl i.on { background: var(--c-green); }
.cal .tile p { font-size: 16px; }
.cal .tile.is-now { outline: 3px solid var(--c-green); outline-offset: -3px; }
@media (max-width: 1200px) { .cal { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 760px) { .cal { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 420px) { .cal { grid-template-columns: 1fr; } .cal .tile { min-height: 0; } }

/* --- Глоссарий --- */
.gloss { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.gloss dt { font-weight: 800; font-size: 20px; margin-bottom: 6px; }
.gloss dd { margin: 0; color: var(--c-ink-2); font-size: var(--fs-small); }
.gloss > div { background: #fff; border-radius: var(--r-sm); padding: 20px; }
@media (max-width: 1000px) { .gloss { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px) { .gloss { grid-template-columns: 1fr; } }

/* --- FAQ --- */
.faq { display: grid; gap: 10px; }
.faq details { background: #fff; border-radius: var(--r-sm); }
.faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: 18px; align-items: center; padding: 20px 22px; font-weight: 700; font-size: var(--fs-h4); line-height: 1.3; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary .ico { transition: transform var(--t-mid) var(--ease); flex: 0 0 24px; width: 24px; height: 24px; }
.faq details[open] summary .ico { transform: rotate(180deg); }
.faq__a { padding: 0 22px 22px; color: var(--c-ink-2); max-width: 80ch; }

/* --- Редакция --- */
.team { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-4); }
.person { background: #fff; border-radius: var(--r-md); padding: 20px 20px 26px; display: flex; flex-direction: column; gap: 14px; }
.person__photo { aspect-ratio: 4 / 4.2; border-radius: var(--r-sm); overflow: hidden; background: var(--s-sky); }
.person__photo img { width: 100%; height: 100%; object-fit: cover; object-position: top; transition: transform var(--t-slow) var(--ease); }
.person:hover .person__photo img { transform: scale(1.04); }
.person h3 { font-size: 24px; }
.person__role { font-family: var(--f-mono); font-size: 14px; color: var(--c-green); text-transform: uppercase; letter-spacing: .06em; }
.person p { color: var(--c-ink-2); font-size: var(--fs-small); }
@media (max-width: 1000px) { .team { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .team { grid-template-columns: 1fr; } }

/* --- Дисклеймеры --- */
.disc { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.disc .tile h3 { display: flex; gap: 12px; align-items: center; font-size: 22px; }
.disc .tile h3 .ico { color: var(--c-clay); }
.disc .tile p { font-size: var(--fs-small); }
@media (max-width: 800px) { .disc { grid-template-columns: 1fr; } }

/* --- Источники --- */
.src-group + .src-group { margin-top: var(--sp-6); }
.src-group h3 { margin-bottom: 14px; font-size: 24px; }
.src { list-style: none; counter-reset: s; display: grid; gap: 8px; }
.src li { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 12px; padding: 16px 18px; background: #fff; border-radius: var(--r-sm); }
.src li::before { content: '[' counter(s) ']'; counter-increment: s; font-family: var(--f-mono); color: var(--c-blue); font-weight: 600; }
.src a { font-weight: 700; color: var(--c-ink); text-decoration-color: var(--c-line-2); }
.src a:hover { color: var(--c-blue); }
.src small { display: block; color: var(--c-ink-2); margin-top: 4px; }
.src-count { counter-reset: s var(--start, 0); }

/* --- Пасхалка: клякса --- */
.blot { position: fixed; inset: 0; pointer-events: none; z-index: 80; width: 100vw; height: 100vh; }
