/* ==========================================================================
   Landing: секции главной страницы рейтинга DieselProof
   ========================================================================== */

/* --- Защита от переполнения: крупные слова внутри карточек переносятся --- */
.stat, .leader, .co, .person, .disc, .group-card, .grade, .finding, .scenario, .weight, .sources li { min-width: 0; }
.stat__v, .finding__num, .leader h3, .co__name h3, .person h3, .group-card b, .scenario h3, .card h3 { overflow-wrap: anywhere; }

/* --- Hero --- */
.hero { padding-top: clamp(32px, 5vw, 72px); padding-bottom: clamp(32px, 5vw, 72px); }
.hero__grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, .65fr); gap: clamp(24px, 4vw, 56px); align-items: center; }
.hero__title { font-size: min(4.1vw, 5.25rem); line-height: 1.04; letter-spacing: -.035em; margin: 18px 0 20px; hyphens: manual; overflow-wrap: normal; word-break: normal; }
.hero__title .nw { white-space: nowrap; }
@media (max-width: 1000px) { .hero__title { font-size: clamp(2.1rem, 6vw, 4rem); } }
@media (max-width: 420px) { .hero__title { font-size: clamp(1.9rem, .8rem + 7.2vw, 2.4rem); } .hero__title .nw { white-space: normal; } }
.hero__title em { font-style: normal; background: linear-gradient(90deg, var(--c-blue-600), var(--c-teal-500) 55%, var(--c-green-600)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.hero__brand > span { min-width: 0; white-space: normal; }
.hero__brand { display: inline-flex; flex-wrap: wrap; max-width: 100%; align-items: center; gap: 8px 10px; font-family: var(--font-display); font-weight: 800; font-size: var(--fs-18); letter-spacing: -.01em; }
.hero__brand b { padding: 4px 12px; border-radius: 10px; background: var(--c-ink); color: #fff; }
.hero__lead { font-size: var(--fs-20); color: var(--c-ink-2); max-width: 58ch; }
.hero__cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.hero__art { position: relative; min-width: 0; }
.hero__img { position: relative; z-index: 1; width: 100%; height: auto; border-radius: 40% 40% var(--r-xl) var(--r-xl) / 28% 28% var(--r-xl) var(--r-xl); border: 2px solid var(--c-ink); box-shadow: 10px 10px 0 var(--c-ink); background: var(--c-blue-50); }
.hero__drops { position: absolute; inset: -10% -10% -10% -30%; z-index: 0; width: 130%; height: 120%; pointer-events: none; }
.hero__sticker { position: absolute; z-index: 2; left: -18px; bottom: 12%; max-width: 70%; }
.hero__stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-top: clamp(28px, 4vw, 48px); }
.stat { padding: 18px 20px; border-radius: var(--r-md); background: rgba(255,255,255,.8); border: 1px solid var(--c-line); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); min-width: 0; }
.stat__v { display: block; font-family: var(--font-display); font-weight: 700; font-size: var(--fs-32); line-height: 1.05; letter-spacing: -.03em; }
.stat__l { overflow-wrap: anywhere; hyphens: auto; display: block; margin-top: 6px; font-size: var(--fs-14); color: var(--c-ink-3); font-weight: 600; }
@media (max-width: 1000px) { .hero__grid { grid-template-columns: minmax(0, 1fr); } .hero__art { max-width: 520px; margin-inline: auto; width: 100%; } }
@media (max-width: 720px) { .hero__stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } .hero__sticker { left: 8px; } }

/* --- Навигационная карта материала --- */
.toc { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); gap: 10px; counter-reset: toc; }
.toc a { counter-increment: toc; position: relative; display: grid; gap: 4px; padding: 18px 18px 18px 64px; border-radius: var(--r-md); background: #fff; border: 1px solid var(--c-line); text-decoration: none; color: var(--c-ink); transition: transform var(--t-fast), border-color var(--t-fast), box-shadow var(--t-fast); min-height: 84px; }
.toc a::before { content: counter(toc, decimal-leading-zero); position: absolute; left: 16px; top: 18px; font-family: var(--font-mono); font-weight: 700; font-size: 14px; color: var(--c-blue-700); background: var(--c-blue-50); border-radius: 10px; padding: 4px 7px; }
.toc a b { font-size: var(--fs-16); font-weight: 800; }
.toc a span { font-size: var(--fs-14); color: var(--c-ink-3); font-weight: 500; line-height: 1.4; }
.toc a:hover { transform: translateY(-2px); border-color: var(--c-blue-400); box-shadow: var(--sh-2); color: var(--c-ink); }

/* --- Выводы (key findings) --- */
.finding { display: grid; gap: 10px; align-content: start; }
.finding__num { font-family: var(--font-display); font-weight: 800; font-size: var(--fs-56); line-height: 1; letter-spacing: -.04em; color: var(--c-blue-700); }
.finding--green .finding__num { color: var(--c-green-700); }
.finding--cherry .finding__num { color: var(--c-retro-cherry); }
.quote { position: relative; padding: clamp(24px, 3vw, 40px); border-radius: var(--r-lg); background: var(--c-ink); color: #fff; }
.quote p { font-size: var(--fs-20); line-height: 1.5; color: #fff; margin: 0 0 16px; }
.quote footer { display: flex; align-items: center; gap: 12px; color: #BFD6EE; font-size: var(--fs-14); font-weight: 600; }
.quote footer img { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; }

/* --- Лидеры --- */
.leaders { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(12px, 1.6vw, 20px); }
.leader { position: relative; display: flex; flex-direction: column; gap: 14px; padding: clamp(22px, 2.6vw, 34px); border-radius: var(--r-lg); background: #fff; border: 2px solid var(--c-ink); box-shadow: 6px 6px 0 var(--c-ink); min-width: 0; }
.leader--1 { background: linear-gradient(180deg, #FFF6E4, #fff 60%); }
.leader__top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.leader__place { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: var(--c-retro-sun); border: 2px solid var(--c-ink); font-family: var(--font-display); font-weight: 800; font-size: 26px; flex: none; }
.leader--2 .leader__place { background: var(--c-blue-100); }
.leader--3 .leader__place { background: var(--c-green-100); }
.leader__score { text-align: right; }
.leader__score b { display: block; font-family: var(--font-display); font-size: var(--fs-40); line-height: 1; letter-spacing: -.03em; }
.leader__score span { font-size: var(--fs-12); color: var(--c-ink-3); font-weight: 700; font-family: var(--font-mono); text-transform: uppercase; letter-spacing: .08em; }
.leader h3 { margin: 0; font-size: var(--fs-24); }
.leader__meta { display: flex; flex-wrap: wrap; gap: 6px; }
.leader p { margin: 0; color: var(--c-ink-2); font-size: var(--fs-16); }
.leader__bars { display: grid; gap: 8px; margin-top: auto; }
.leader__bar { display: grid; grid-template-columns: minmax(0, 1fr) 44px; gap: 10px; align-items: center; font-size: var(--fs-14); font-weight: 600; }
.leader__bar .scorebar { min-width: 0; grid-column: 1 / -1; height: 8px; }
.leader__bar .num { text-align: right; }
.leader__link { display: inline-flex; align-items: center; gap: 8px; font-weight: 800; }
@media (max-width: 1100px) { .leaders { grid-template-columns: minmax(0, 1fr); } }

/* --- Таблица: панель фильтров --- */
.rating-tools { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.rating-tools .chips { flex: 1 1 auto; }
.search { position: relative; flex: 0 1 320px; min-width: min(100%, 240px); }
.search .input { padding-left: 46px; }
.search .i { position: absolute; left: 16px; top: 50%; transform: translateY(-50%); width: 20px; height: 20px; color: var(--c-ink-3); }
.rtable th button { all: unset; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; }
.rtable th button:focus-visible { box-shadow: var(--sh-focus); border-radius: 4px; }
.rtable th[aria-sort="ascending"] button::after { content: '▲'; font-size: 10px; }
.rtable th[aria-sort="descending"] button::after { content: '▼'; font-size: 10px; }
.rtable .brand { display: grid; gap: 2px; }
.rtable .brand b { font-weight: 800; font-size: var(--fs-16); }
.rtable .brand a { font-size: var(--fs-14); font-weight: 600; }
.rtable .col-score { min-width: 180px; }
.rtable .scorecell { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 10px; align-items: center; font-weight: 800; }
.rtable tr.is-top .col-rank { color: var(--c-blue-700); }
.rtable tr[hidden] { display: none; }
.rtable .yes { color: var(--c-green-700); font-weight: 800; }
.rtable .no { color: var(--c-ink-3); }
.table-note { margin-top: 12px; font-size: var(--fs-14); color: var(--c-ink-3); }
.table-empty { padding: 32px; text-align: center; color: var(--c-ink-3); font-weight: 600; }
.table-scroll-hint { display: none; margin-bottom: 8px; font-size: var(--fs-14); color: var(--c-ink-3); font-weight: 600; }
@media (max-width: 1000px) { .table-scroll-hint { display: flex; align-items: center; gap: 8px; } }

/* --- Карточки компаний --- */
.co-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
@media (max-width: 860px) { .co-grid { grid-template-columns: minmax(0, 1fr); } }
.co { display: grid; gap: 12px; padding: clamp(18px, 2.2vw, 28px); border-radius: var(--r-lg); background: #fff; border: 1px solid var(--c-line); min-width: 0; }
.co[hidden] { display: none; }
.co__head { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 14px; align-items: center; }
.co__rank { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 16px; background: var(--c-mist); font-family: var(--font-display); font-weight: 800; font-size: 18px; }
.co--top .co__rank { background: var(--c-retro-sun); }
.co__name { min-width: 0; }
.co__name h3 { margin: 0; font-size: var(--fs-20); overflow-wrap: anywhere; }
.co__name a { font-size: var(--fs-14); font-weight: 700; overflow-wrap: anywhere; }
.co__score { font-family: var(--font-display); font-weight: 800; font-size: var(--fs-24); letter-spacing: -.02em; text-align: right; }
.co__score small { display: block; font-family: var(--font-mono); font-size: 11px; font-weight: 600; color: var(--c-ink-3); letter-spacing: .06em; }
.co__facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 0; }
.co__facts div { padding: 10px 12px; border-radius: 12px; background: var(--c-paper); min-width: 0; }
.co__facts dt { font-size: 12px; font-weight: 700; color: var(--c-ink-3); text-transform: uppercase; letter-spacing: .05em; }
.co__facts dd { margin: 2px 0 0; font-weight: 800; font-size: var(--fs-14); overflow-wrap: anywhere; }
@media (max-width: 520px) { .co__facts { grid-template-columns: repeat(2, minmax(0, 1fr)); } .co__head { grid-template-columns: auto minmax(0, 1fr); } .co__score { grid-column: 1 / -1; text-align: left; } }
.co__desc { margin: 0; color: var(--c-ink-2); font-size: var(--fs-16); }
.co details { border-top: 1px dashed var(--c-line-strong); padding-top: 10px; }
.co summary { cursor: pointer; font-weight: 800; color: var(--c-blue-700); min-height: 44px; display: flex; align-items: center; gap: 8px; border-radius: 10px; }
.co summary:hover { color: var(--c-blue-900); }
.co__contacts { display: grid; gap: 4px; font-size: var(--fs-14); color: var(--c-ink-2); margin: 8px 0 12px; }
.co__crit { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 190px), 1fr)); gap: 6px; }
.co__crit span { display: flex; justify-content: space-between; gap: 8px; padding: 6px 10px; border-radius: 10px; background: var(--c-paper); font-size: 13px; font-weight: 600; }
.co__crit span i { font-style: normal; font-family: var(--font-mono); font-weight: 700; }
.co__crit .ok i { color: var(--c-green-700); }
.co__crit .part i { color: var(--c-warn); }
.co__crit .none i { color: var(--c-ink-3); }
.more-row { display: flex; justify-content: center; margin-top: 20px; }

/* --- Калькуляторы --- */
.calc__grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(18px, 3vw, 36px); align-items: start; }
@media (max-width: 900px) { .calc__grid { grid-template-columns: minmax(0, 1fr); } }
.calc h3 { margin: 0; }
.calc fieldset { border: 1px solid var(--c-line); padding: 16px; min-width: 0; }
.calc legend { padding: 4px 10px; }
.chip input { width: 18px; height: 18px; margin: 0; accent-color: var(--c-blue-600); }
label.chip { cursor: pointer; }
label.chip:has(input:checked) { background: var(--c-ink); border-color: var(--c-ink); color: #fff; }
label.chip:has(input:checked):hover { background: var(--c-blue-700); border-color: var(--c-blue-700); color: #fff; }
label.chip:has(input:focus-visible) { box-shadow: var(--sh-focus); }
[data-shape-only][hidden] { display: none; }
.tip-mobile { display: none; }
@media (hover: none) { .tip-mobile { display: block; } }

/* --- Методология --- */
.method-grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(20px, 3vw, 48px); align-items: start; }
.method-aside { position: relative; align-self: stretch; }
.method-aside__inner { position: sticky; top: 96px; }
.method-main > h3 { margin: 0; }
@media (max-width: 1000px) { .method-grid { grid-template-columns: minmax(0, 1fr); } .method-aside__inner { position: static; } }
.weights { display: grid; gap: 6px; }
.weight { display: grid; grid-template-columns: 34px minmax(0, 1fr) 48px; gap: 10px; align-items: center; padding: 10px 12px; border-radius: 14px; background: #fff; border: 1px solid var(--c-line); transition: border-color var(--t-fast), transform var(--t-fast); }
.weight:hover { border-color: var(--c-blue-400); transform: translateX(3px); }
.weight__n { font-family: var(--font-mono); font-weight: 700; font-size: 13px; color: var(--c-ink-3); }
.weight__body { min-width: 0; display: grid; gap: 4px; }
.weight__body b { font-size: var(--fs-14); font-weight: 800; }
.weight__body small { font-size: 13px; color: var(--c-ink-3); line-height: 1.35; }
.weight__track { height: 6px; border-radius: 6px; background: var(--c-mist); overflow: hidden; }
.weight__track i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--c-blue-400), var(--c-green-600)); }
.weight__w { font-family: var(--font-display); font-weight: 800; font-size: var(--fs-18); text-align: right; }
.groups { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr)); gap: 10px; }
.group-card { padding: 16px; border-radius: var(--r-md); background: #fff; border: 1px solid var(--c-line); }
.group-card b { display: block; font-family: var(--font-display); font-size: var(--fs-32); letter-spacing: -.03em; line-height: 1; }
.group-card span { font-weight: 700; font-size: var(--fs-14); color: var(--c-ink-2); }
.formula { padding: 20px 22px; border-radius: var(--r-md); background: var(--c-ink); color: #fff; font-family: var(--font-mono); font-size: var(--fs-16); line-height: 1.6; overflow-wrap: anywhere; }
.formula b { color: var(--c-retro-sun); }
.steps { display: grid; gap: 12px; counter-reset: st; padding: 0; list-style: none; }
.steps li { counter-increment: st; position: relative; padding: 18px 18px 18px 72px; border-radius: var(--r-md); background: #fff; border: 1px solid var(--c-line); }
.steps li::before { content: counter(st); position: absolute; left: 18px; top: 16px; width: 38px; height: 38px; border-radius: 12px; display: grid; place-items: center; background: var(--c-blue-600); color: #fff; font-family: var(--font-display); font-weight: 800; }
.steps li b { display: block; margin-bottom: 4px; }

/* --- Сценарии (для кого) --- */
.scenario { display: grid; gap: 14px; align-content: start; min-width: 0; height: 100%; }
.scenario img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r-md); border: 1.5px solid var(--c-ink); background: var(--c-mist); }
.scenario h3 { margin: 0; }
.scenario ul { margin: 0; padding-left: 1.1em; color: var(--c-ink-2); }
.scenario li + li { margin-top: 4px; }

/* --- Split с иллюстрацией --- */
.split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(20px, 4vw, 56px); align-items: center; }
.split--rev > :first-child { order: 2; }
@media (max-width: 900px) { .split { grid-template-columns: minmax(0, 1fr); } .split--rev > :first-child { order: 0; } }
.illus { width: 100%; height: auto; border-radius: var(--r-lg); border: 2px solid var(--c-ink); box-shadow: 8px 8px 0 var(--c-ink); background: #fff; }

/* --- Марки топлива --- */
.grades { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); gap: 10px; }
.grade > * { min-width: 0; }
.grade { min-width: 0; padding: 18px; border-radius: var(--r-md); background: #fff; border: 1px solid var(--c-line); display: grid; gap: 6px; }
.grade__t { overflow-wrap: anywhere; hyphens: auto; font-family: var(--font-display); font-weight: 800; font-size: var(--fs-20); letter-spacing: -.02em; }
.grade__temp { font-family: var(--font-mono); font-weight: 700; color: var(--c-blue-700); }
.grade p { margin: 0; font-size: var(--fs-14); color: var(--c-ink-2); }

/* --- Чек-лист --- */
.checklist { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.checklist li { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 14px; align-items: start; padding: 16px; border-radius: var(--r-md); background: #fff; border: 1px solid var(--c-line); }
.checklist input { width: 26px; height: 26px; margin: 4px 0 0 6px; accent-color: var(--c-green-600); cursor: pointer; }
.checklist label { cursor: pointer; }
.checklist label b { display: block; }
.checklist label span { color: var(--c-ink-2); font-size: var(--fs-14); }
.checklist li:has(input:checked) { background: var(--c-green-50); border-color: var(--c-green-300); }
.check-progress { display: flex; align-items: center; gap: 14px; font-weight: 800; margin-bottom: 14px; }
.check-progress .scorebar { flex: 1; height: 12px; }

/* --- Редакция --- */
.team { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(12px, 1.6vw, 20px); }
@media (max-width: 1000px) { .team { grid-template-columns: minmax(0, 1fr); } }
.person { display: grid; gap: 14px; align-content: start; padding: clamp(20px, 2.4vw, 30px); border-radius: var(--r-lg); background: #fff; border: 1px solid var(--c-line); min-width: 0; }
.person__top { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 16px; align-items: center; }
@media (max-width: 380px) { .person__top { grid-template-columns: 72px minmax(0, 1fr); gap: 12px; } .person img { width: 72px !important; height: 72px !important; border-radius: 22px !important; } }
.person img { width: 96px; height: 96px; border-radius: 28px; object-fit: cover; background: var(--c-blue-50); border: 2px solid var(--c-ink); }
.person h3 { margin: 0 0 4px; font-size: var(--fs-20); }
.person__role { overflow-wrap: anywhere; hyphens: auto; display: block; font-size: var(--fs-14); color: var(--c-blue-700); font-weight: 800; }
.person p { margin: 0; color: var(--c-ink-2); font-size: var(--fs-16); }
.person ul { margin: 0; padding-left: 1.1em; color: var(--c-ink-2); font-size: var(--fs-14); }

/* --- Дисклеймеры --- */
.disc-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
@media (max-width: 860px) { .disc-grid { grid-template-columns: minmax(0, 1fr); } }
.disc { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 16px; padding: clamp(18px, 2.2vw, 26px); border-radius: var(--r-md); background: #fff; border: 1px solid var(--c-line); }
.disc h3 { font-size: var(--fs-18); margin: 0 0 6px; }
.disc p { margin: 0; font-size: var(--fs-14); color: var(--c-ink-2); line-height: 1.6; }

/* --- Источники --- */
.sources { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; counter-reset: src; }
@media (max-width: 860px) { .sources { grid-template-columns: minmax(0, 1fr); } }
.sources li { counter-increment: src; display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 12px; padding: 14px 16px; border-radius: var(--r-md); background: #fff; border: 1px solid var(--c-line); align-items: start; }
.sources li::before { content: '[' counter(src) ']'; font-family: var(--font-mono); font-weight: 700; color: var(--c-blue-700); font-size: 14px; padding-top: 2px; }
.sources b { display: block; font-size: var(--fs-14); }
.sources span { display: block; font-size: 13px; color: var(--c-ink-3); margin-top: 2px; }
.sources a { font-size: 13px; font-weight: 700; overflow-wrap: anywhere; }
.src-tabs { margin-bottom: 16px; }

/* --- Футер --- */
.site-footer { padding: clamp(32px, 5vw, 64px) 0 calc(96px + env(safe-area-inset-bottom)); }
.footer-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr)); gap: 28px; }
@media (max-width: 900px) { .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .footer-grid { grid-template-columns: minmax(0, 1fr); } }
.footer-grid h4 { font-size: var(--fs-14); font-family: var(--font-mono); text-transform: uppercase; letter-spacing: .1em; color: var(--c-retro-mint); margin-bottom: 12px; }
.footer-grid ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.footer-grid a { color: #D6E6F8; text-decoration: none; font-weight: 600; }
.footer-grid a:hover { color: #fff; text-decoration: underline; }
.footer-bottom { margin-top: 32px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.14); display: flex; flex-wrap: wrap; gap: 12px; justify-content: space-between; font-size: var(--fs-14); color: #BFD6EE; }

/* --- Разделитель-вывеска между разделами --- */
.divider-sign { display: flex; align-items: center; gap: 16px; }
.divider-sign::before, .divider-sign::after { content: ''; flex: 1; height: 2px; background: repeating-linear-gradient(90deg, var(--c-ink) 0 10px, transparent 10px 16px); }

/* --- Кредит-блок: вписываем в плитки --- */
.credit-wrap { border-radius: var(--r-block); overflow: hidden; }

/* --- Бесконечная карусель сценариев --- */
.hs__track.is-marquee { scroll-snap-type: none; overflow-x: auto; }
.hs__track.is-marquee > * { scroll-snap-align: none; }
.hs[data-marquee] .hs__track { grid-auto-columns: clamp(280px, 26vw, 400px); }

/* ===================== Правки адаптива v8 ===================== */
/* Все 26 критериев — на всю ширину, 2 колонки на ПК */
.weights-wrap { margin-top: clamp(28px, 4vw, 48px); }
.weights-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 24px; margin-bottom: 14px; }
.weights-head h3, .weights-head p { margin: 0; }
.weights-wrap .weights { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 14px; }
@media (min-width: 1600px) { .weights-wrap .weights { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 760px) { .weights-wrap .weights { grid-template-columns: minmax(0, 1fr); } }
@media (hover: none) { .hide-touch { display: none; } }

/* Редакция: на планшетах фото над именем, имя переносится только по словам */
.person h3 { overflow-wrap: normal; word-break: normal; hyphens: manual; }
@media (min-width: 1001px) and (max-width: 1400px) {
  .person__top { grid-template-columns: minmax(0, 1fr); gap: 12px; }
}
@media (max-width: 1000px) and (min-width: 621px) {
  .team { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .team .person:last-child { grid-column: 1 / -1; }
}
@media (max-width: 380px) { .person h3 { font-size: 1.15rem; } }

/* Таблица рейтинга: на ноутбуках/планшетах — компактнее, на ≤1100px — карточками */
.rtable td.col-seg, .rtable td.col-price, .rtable td.col-min { white-space: nowrap; }
.rtable .no-wrap { white-space: nowrap; }
@media (max-width: 1400px) {
  .rtable { font-size: 14px; }
  .rtable th, .rtable td { padding: 12px 10px; }
  .rtable .col-score { min-width: 140px; }
  .rtable .scorecell { grid-template-columns: 40px minmax(0, 1fr); }
}
@media (max-width: 1100px) {
  .table-scroll-hint { display: none !important; }
  .table-wrap { overflow: visible; border: 0; background: transparent; border-radius: 0; }
  .rtable, .rtable tbody, .rtable tr, .rtable td { display: block; min-width: 0; width: 100%; }
  .rtable { min-width: 0; }
  .rtable thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .rtable tbody { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .rtable tbody tr { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 6px 12px; padding: 16px; border-radius: var(--r-md); background: #fff; border: 1px solid var(--c-line); }
  .rtable tbody tr:hover { background: #fff; border-color: var(--c-blue-400); }
  .rtable td { border: 0; padding: 0; white-space: normal !important; }
  .rtable td.col-rank { grid-row: span 2; display: grid; place-items: center; width: 52px; height: 52px; border-radius: 16px; background: var(--c-mist); font-size: 20px; }
  .rtable tr.is-top td.col-rank { background: var(--c-retro-sun); color: var(--c-ink); }
  .rtable td.col-name { position: static; background: transparent !important; }
  .rtable td.col-score { grid-column: 2; }
  .rtable td[data-label] { grid-column: 1 / -1; display: flex; justify-content: space-between; gap: 12px; padding: 7px 0; border-top: 1px dashed var(--c-line); font-size: 14px; }
  .rtable td[data-label]::before { content: attr(data-label); color: var(--c-ink-3); font-weight: 700; flex: none; }
  .rtable td[data-label] > * { text-align: right; }
  .rtable td.table-empty { grid-column: 1 / -1; }
  .rtable tbody tr:has(.table-empty) { grid-column: 1 / -1; display: block; }
}
@media (max-width: 680px) { .rtable tbody { grid-template-columns: minmax(0, 1fr); } }

/* Подсказки: всплывающая через JS всегда в пределах экрана; CSS-подсказки у краёв */
.floating-tip { max-width: min(320px, calc(100vw - 24px)); white-space: normal; overflow-wrap: break-word; hyphens: manual; font-family: var(--font-body); font-weight: 500; font-size: 14px; letter-spacing: 0; text-transform: none; }
.grade__t .tip, .grade .tip { font-family: var(--font-body); font-size: 14px; font-weight: 500; letter-spacing: 0; line-height: 1.45; }

/* Футер: всегда виден, отступ под плавающие элементы */
.site-footer { position: relative; z-index: 1; margin-bottom: max(var(--section-gap), env(safe-area-inset-bottom)) !important; }
@media (max-width: 1180px) { .site-footer { padding-bottom: 110px; } }
.match-list { margin: 10px 0 0; padding: 0 6px 0 1.6em; display: grid; gap: 8px; max-height: 300px; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #3D95F5 transparent; }
.match-list li { display: grid; gap: 2px; }
.match-list:focus-visible { outline: 2px solid var(--c-retro-sun); outline-offset: 4px; border-radius: 8px; }
.match-list a { color: #fff; font-weight: 800; }
.match-list a:hover { color: var(--c-retro-sun); }
.match-list span { color: #BFD6EE; font-size: 13px; }
.match-cond { display: block; margin-top: 10px; font-size: 12px; color: #A9D1FF; }
@media (max-width: 1100px) {
  .rtable tbody tr { grid-template-columns: 52px minmax(0, 1fr); }
  .rtable td.col-name, .rtable td.col-score { grid-column: 2; min-width: 0 !important; width: auto; }
  .rtable .brand, .rtable .brand b, .rtable .brand a { min-width: 0; overflow-wrap: anywhere; }
  .rtable .col-score { min-width: 0 !important; }
  .rtable .scorecell { grid-template-columns: 44px minmax(0, 1fr); }
  .rtable .scorebar { min-width: 0; }
}
@media (max-width: 360px) {
  .rtable tbody tr { padding: 14px 12px; gap: 6px 10px; grid-template-columns: 44px minmax(0, 1fr); }
  .rtable td.col-rank { width: 44px; height: 44px; font-size: 17px; border-radius: 13px; }
  .rtable td[data-label] { font-size: 13px; gap: 8px; }
}
