/* ========================================
   PARTNERS PAGE STYLES
   Prefix: pt-
   ======================================== */

/* Hero */
/* Поиск игрока — рабочий экран, а не витрина: баннер занимал половину
   высоты окна, и результаты поиска начинались за нижним краем. Высота
   приведена к общей для карточек — 300 пикселей */
/* Высота, кегли и отступы — те же, что у «Турниров» и категорий:
   один сайт, шапки разделов должны читаться одинаково */
/* ОБЛОЖКА СТОИТ НА ОБЩИХ КРУТИЛКАХ РАЗДЕЛА — решение Кости 04.10.
   Замер 07.10: пол 460 · 460 · 358.4 · 253.2 · 460. Третий набор своих
   чисел на сайте, и на узких видах он был ДОЛЯМИ ВЫСОТЫ ОКНА (35vh и
   30vh) — обложка меняла размер от того, какой у человека телефон.
   В общее правило `css/style.css:5399` страница не попадала: там стоит
   `.pt-hero.pt-hero`, а разметка даёт класс один раз. */
.pt-hero {
    position: relative;
    padding: var(--oblozhka-vozduh) var(--pad-x) var(--oblozhka-vozduh-niz);
    text-align: center;
    min-height: var(--oblozhka-pol);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.pt-hero-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.pt-hero-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Затемнение как у остальных разделов: снимок здесь светлый, и обложка
   выбивалась яркостью из общего ряда */
.pt-hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to bottom,
        var(--alpha-black-60) 0%,
        rgba(10, 10, 10, 0.92) 100%
    );
    z-index: 1;
}

.pt-hero-content {
    position: relative;
    z-index: 2;
}

/* Кегль — ступень шкалы. Было 49.6 · 45.1 · 26 · 26 · 37.1: на 768 и 390
   пара «заголовок + подзаголовок» схлопывалась в одно число. */
.pt-hero h1 {
    font-size: var(--fs-hero);
    font-weight: var(--fw-extrabold);
    color: var(--text-primary);
    margin-bottom: var(--space-4);
    line-height: var(--lh-tight);
}

.pt-hero h1 span {
    color: var(--accent);
}

.pt-hero p {
    font-size: var(--fs-hero-sub);
    font-weight: var(--fw-semibold);
    color: var(--text-secondary);
    max-width: 720px;
    margin: 0 auto;
    line-height: var(--lh-normal);
}

/* ========================================
   FILTERS
   ======================================== */

/* СВОЕЙ ПОЛОСЫ ФИЛЬТРОВ У ЭТОЙ СТРАНИЦЫ НЕТ. Разметка берёт общие
   `trn-filters`, `trn-back`, `trn-search-wrap`, `trn-chips`
   (js/partners.js:319), а выпадашки — общий компонент `.f-dd`.
   Здесь лежала вторая копия: `.pt-filters`, `.pt-search-wrap`,
   `.pt-search-icon`, `.pt-search` с двумя состояниями, `.pt-filter-row`,
   `.pt-filter-count` — и поле поиска в ней было на 480. МЁРТВЫМ КОД
   НАЗВАН ПОСЛЕ ПРОВЕРКИ: ни одного из них нет ни в одной разметке и ни в
   одном скрипте (проверено по всему дереву 07.10). */

/* ========================================
   GRID
   ======================================== */

/* ВИТРИНА ИДЁТ ПО ШИРОКОЙ КОРОБКЕ (правило 07.10). Коробки не было
   вовсе: на 1440 карточки шли во всю ширину окна. */
.pt-grid-wrap {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: var(--section-y-sm) var(--pad-x) var(--section-y);
}

/* ЧИСЛО КОЛОНОК — СЛЕДСТВИЕ ШИРИНЫ КАРТОЧКИ, А НЕ ГРАНИЦЫ ЭКРАНА, и
   рядов на странице четыре на широких, три на узких. Оба правила
   выведены на «Услугах» и «Кортах» 07.10. Четыре в ряд числом давали на
   1024 карточку 227 — ровно тот случай, из-за которого на кортах четыре
   ставятся только на десктопе. */
.pt-grid {
    --pt-ryadov: 4;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: var(--space-6);
}

@media (max-width: 992px) {
    .pt-grid { --pt-ryadov: 3; }
}

/* ДВЕ В РЯД НА ТЕЛЕФОНЕ — своим минимумом: при 300 экран 390 давал бы
   одну колонку. Граница 640: ширин в медиа две. */
@media (max-width: 640px) {
    .pt-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: var(--space-3);
    }
}

/* ========================================
   CARD
   ======================================== */

.pt-card {
    position: relative;
    /* БЫЛО ИНЛАЙНОМ В js/partners.js. Карточка нажимаема у всех: вошедшему
       слой-ссылка ведёт на профиль, гостю открывается окно регистрации. */
    cursor: pointer;
    background: var(--bg-card);
    border: var(--bw-hair) solid var(--border-subtle);
    border-radius: var(--radius-xl);
    padding: var(--space-lg);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s;
}

/* ═══ СЛОЙ-ССЫЛКА КАРТОЧКИ ИГРОКА ═══════════════════════════════════════
   13.10. Карточка вела на профиль обработчиком: `div` с `cursor:pointer`
   инлайном, фокусируемых внутри ОДИН, ссылок ноль. Теперь прямым ребёнком
   лежит растянутая ссылка (js/kslt-sloy.js), а порядок слоёв взят с полосы
   турнира, где он выведен 04.10:

     содержимое          z-index 1
     слой-ссылка         z-index 2   — ВЫШЕ содержимого, иначе оно его съест
     «Пригласить»        z-index 3   — своё действие выше ссылки

   Гостю слоя не дают: карточка открывает окно регистрации, а не профиль, —
   поэтому правила висят на .pt-card-link, а не на .pt-card. */
.pt-card-link > * {
    position: relative;
    z-index: 1;
}

.pt-card-link > .pt-card-cover {
    position: absolute;
    inset: 0;
    z-index: 2;
    border-radius: inherit;
    text-decoration: none;
}

.pt-card-link > .pt-card-cover:focus-visible {
    outline: var(--bw-thick) solid var(--accent);
    outline-offset: 2px;
}

.pt-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 28px var(--alpha-black-30);
    border-color: var(--accent);
}

/* КЛИКАБЕЛЬНАЯ КАРТОЧКА — ЭТО ССЫЛКА, А НЕ DIV С ОБРАБОТЧИКОМ.
   До 24.09 у карточки стоял cursor: pointer, а обработчик висел на div —
   ни role, ни tabindex: клавиатурой сюда было не попасть вовсе, и диктор
   не знал, что это действие.
   Приём — растянутая ссылка: имя игрока становится <a>, его псевдоэлемент
   накрывает карточку целиком, кнопка «Пригласить» поднимается над ним
   z-index'ом. Клавиатура и диктор получают ОДНУ ссылку и ОДНУ кнопку,
   а не немой прямоугольник с двумя невидимыми действиями. */
.pt-name-link {
    color: inherit;
    text-decoration: none;
}

.pt-name-link::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
}

/* КНОПКА ВЫШЕ СЛОЯ-ССЫЛКИ. 13.10: сначала я завёл второе правило
   `.pt-card-link > .pt-invite-btn`, и замер показал у кнопки z-index 1 —
   это правило той же силы стоит НИЖЕ по файлу и побеждало порядком.
   ОДНО ОПРЕДЕЛЕНИЕ НА ОДНО ПОНЯТИЕ: ступень кнопки живёт здесь, а не в
   двух местах. 3 — чтобы «Пригласить» оставалась нажимаемой поверх слоя;
   у карточки без слоя соседей выше 1 нет, и число ничего не меняет. */
.pt-card .pt-invite-btn {
    position: relative;
    z-index: 3;
}

/* Кольцо фокуса — обязательное по WCAG 2.4.7, описание Button 17:82.
   До 24.09 во всём семействе .pt- не было НИ ОДНОГО :focus-visible. */
.pt-name-link:focus-visible,
.pt-invite-btn:focus-visible {
    outline: var(--bw-heavy) solid var(--accent);
    outline-offset: 2px;
}

.pt-card:has(.pt-name-link:focus-visible) {
    border-color: var(--accent);
}

/* NTRP — это Badge 27:53, тон Info, стиль Subtle: «Subtle — умолчание для
   карточек и таблиц». Высота 24, поля 8, радиус full, 11 Medium прописными,
   разрядка 0.5.
   Цвет #00BFFF был ШЕСТЫМ в палитре и ни в одном токене не значился;
   status/info после перекраски 23.09 — #60A5FA. */
/* МЕТКА НЕ СТОИТ НА ЛИЦЕ. Замер 24.09 на пяти видах: она везде задевала
   кружок — 6 пикселей на десктопе, 24 на телефоне. Абсолютный угол в
   карточке, у которой по центру портрет, неизбежно кладёт метку на
   портрет, как только карточка сужается.
   Наверх её не поднять: карточки без NTRP получили бы пустую полосу, и
   кружки в ряду встали бы на разной высоте. Поэтому метка — обычная
   строка перед кнопкой, рядом с такой же по виду плашкой разряда.
   Карточки без NTRP просто не имеют этой строки, как не имеют строки
   «Masters». Кнопки держит margin-top: auto, а не порядок. */
.pt-ntrp-badge {
    order: 1;
    margin-top: var(--space-2);          /* 8 */
    background: rgba(96, 165, 250, 0.16);
    color: var(--blue-400);
    font-size: var(--fs-2xs);            /* 11 */
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 0 var(--space-2);           /* 8; было 2 / 8 */
    line-height: 24px;
    border-radius: var(--radius-full);   /* было radius-sm */
}

.pt-invite-btn { order: 2; }

/* Avatar wrapper with online dot */
.pt-avatar-wrap {
    position: relative;
    margin-bottom: var(--space-sm);
}

/* ОДИН КРУЖОК — ОДНО ПОВЕДЕНИЕ. Замер 24.09: у карточки с фотографией
   обёртка была 87 при кружке 80, у карточки с инициалами — ровно 80, и
   имя под фотографией стояло на 6 пикселей ниже, чем имя под инициалами.
   Разница не в размере: <img> строчный, и под ним оставался зазор базовой
   линии. Заглушка рядом — flex, у неё зазора нет. */
/* СТУПЕНЬ `Avatar 29:82`: 24 · 32 · 40 · 56 · 80. Стояло 72 на широких и
   60 на телефоне — ни одна не ступень (замер 07.10). */
.pt-avatar {
    display: block;
    width: 80px;
    height: 80px;
    border-radius: 50%;
    object-fit: cover;
    border: var(--bw-thick) solid var(--border-subtle);
}

/* ЗАГЛУШКА НЕЙТРАЛЬНАЯ — как у компонента Avatar 29:82, перекрашенного
   23.09. Лайм по правилу 109:370 принадлежит одному главному действию;
   аватар — личность, а не действие. Пятое место, где лайм уходит:
   аватар рейтинга → плашка новости → подписи значков → заголовок колонки →
   кольцо пьедестала → инициалы партнёра. */
.pt-avatar-placeholder {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background: var(--bg-elevated);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-primary);
    font-size: var(--fs-xl);
    font-weight: 700;
    border: var(--bw-thick) solid var(--border-subtle);
}

.pt-online-dot {
    position: absolute;
    bottom: 2px;
    right: 2px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: var(--success);
    border: var(--bw-heavy) solid var(--bg-card);
}

/* Name */
.pt-name {
    font-size: var(--fs-base);
    font-weight: 700;
    color: var(--text-primary);
    margin-bottom: var(--space-2);       /* 8; было 6 */
    word-break: break-word;
}

/* Category badge */
.pt-badge {
    display: inline-block;
    padding: 3px 10px;
    border-radius: var(--radius-sm);
    background: var(--alpha-lime-12);
    color: var(--accent);
    font-size: var(--fs-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 10px;
}

.pt-badge-level {
    background: rgba(100, 180, 255, 0.12);
    color: #64b4ff;
}

.pt-badge-unknown {
    background: var(--alpha-white-08);
    color: var(--text-muted);
    font-style: italic;
}

/* Status label */
.pt-status {
    margin-top: 8px;
    font-size: var(--fs-xs);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.pt-status.online {
    color: var(--success);
}

.pt-status.offline {
    color: var(--text-muted);
}

/* ========================================
   GUEST RESTRICTION — Progressive Blur + CTA
   ======================================== */

/* Blurred cards */
.pt-card-blur {
    pointer-events: none;
    user-select: none;
}
.pt-card-blur-1 { filter: blur(2px); opacity: 0.7; }
.pt-card-blur-2 { filter: blur(4px); opacity: 0.5; }
.pt-card-blur-3 { filter: blur(6px); opacity: 0.35; }
.pt-card-blur-4 { filter: blur(8px); opacity: 0.2; }

/* CTA overlay — floats over blurred cards */
.pt-guest-overlay {
    position: relative;
    margin-top: -180px;
    padding-top: 40px;
    padding-bottom: 8px;
    background: linear-gradient(to bottom,
        transparent 0%,
        rgba(10, 10, 10, 0.6) 25%,
        rgba(10, 10, 10, 0.92) 50%,
        var(--bg-primary) 70%
    );
    z-index: 2;
}

/* ПОДКЛЮЧЕНА К ЭТАЛОНУ 24.09 — третья из трёх копий коробки-гейта.
   Эталон .badges-cta-box в css/style.css, сторож tools/check-korobka.js.
   Поля были 44 / 40 / 40, ни одно не ступень шкалы 8 · 12 · 16 · 24 · 32.
   Ширина 460 остаётся своей — это накладка поверх сетки карточек.
   Телефонной ступени у этой копии не было вовсе: на 375 коробка держала
   те же 44 / 40 при ширине экрана 375. Теперь ступень есть, ниже. */
.pt-guest-cta {
    position: relative;
    text-align: center;
    padding: var(--space-6) var(--space-8);   /* 24 / 32 — как у эталона */
    margin: 0 auto;
    max-width: 460px;
    background: rgba(18, 18, 18, 0.85);
    border-radius: 24px;
    overflow: hidden;
    isolation: isolate;
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
}

/* Rotating gradient border */
.pt-guest-cta::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 24px;
    padding: 1px;
    background: conic-gradient(
        from var(--pt-angle, 0deg),
        transparent 0%,
        var(--accent) 10%,
        transparent 20%,
        transparent 50%,
        var(--accent-glow) 60%,
        transparent 70%
    );
    -webkit-mask: linear-gradient(var(--neutral-white) 0 0) content-box, linear-gradient(var(--neutral-white) 0 0);
    mask: linear-gradient(var(--neutral-white) 0 0) content-box, linear-gradient(var(--neutral-white) 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    animation: pt-border-spin 4s linear infinite;
    z-index: -1;
}

@property --pt-angle {
    syntax: '<angle>';
    initial-value: 0deg;
    inherits: false;
}

@keyframes pt-border-spin {
    to { --pt-angle: 360deg; }
}

/* Ambient glow */
.pt-guest-cta::after {
    content: '';
    position: absolute;
    top: -40%;
    left: 50%;
    transform: translateX(-50%);
    width: 200px;
    height: 200px;
    background: radial-gradient(circle, var(--alpha-lime-12) 0%, transparent 70%);
    border-radius: 50%;
    z-index: -1;
    animation: pt-glow-pulse 3s ease-in-out infinite;
}

@keyframes pt-glow-pulse {
    0%, 100% { opacity: 0.5; transform: translateX(-50%) scale(1); }
    50% { opacity: 1; transform: translateX(-50%) scale(1.2); }
}

.pt-guest-icon {
    width: 52px;
    height: 52px;
    margin: 0 auto 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--alpha-lime-06);
    border: var(--bw-hair) solid var(--alpha-lime-12);
    color: var(--accent);
}

.pt-guest-title {
    font-size: var(--fs-lg);
    font-weight: 800;
    color: var(--neutral-white);
    margin-bottom: var(--space-2);       /* 8; было 10 — не ступень */
    letter-spacing: -0.02em;
}

.pt-guest-text {
    font-size: var(--fs-sm);
    color: var(--text-secondary);
    line-height: var(--lh-normal);       /* 1.5 */
    margin-bottom: var(--space-6);       /* 24 */
    max-width: 340px;
    margin-left: auto;
    margin-right: auto;
}

/* КНОПКА ЭТАЛОНА. Было: высота полями 12 / 36 — 36 не ступень шкалы,
   и высота выходила 43, не ступень Button 17:82 (28 · 36 · 44 · 52).
   Теперь запись .badges-cta-btn: высота свойством, ступень md 44. */
.pt-guest-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: var(--btn-h-md);             /* 44 */
    padding: 0 var(--space-8);           /* 32; было 12 × 36 */
    background: var(--accent);
    color: var(--neutral-black);
    font-size: var(--fs-sm);
    font-weight: 700;
    border-radius: var(--radius-md);
    text-decoration: none;
    transition: background 0.2s, transform 0.2s;
}

.pt-guest-btn:hover {
    background: var(--accent-hover);
    transform: translateY(-2px);
}

/* ТЕЛЕФОН — ступень, которой у этой копии не было. Числа эталона. */
@media (max-width: 640px) {
    .pt-guest-cta   { padding: var(--space-4) var(--space-6); }   /* 16 / 24 */
    .pt-guest-icon  { width: 32px; height: 32px; margin-bottom: var(--space-2); }
    .pt-guest-title { font-size: var(--fs-md); margin-bottom: var(--space-2); }   /* 18 */
    .pt-guest-text  { font-size: var(--fs-xs); margin-bottom: var(--space-3); }   /* 12 */
    .pt-guest-btn   { padding: 0 var(--space-6); }                /* 24; высота та же, 44 */
}

/* ========================================
   INVITE BUTTON
   ======================================== */

/* Кнопка прижата к низу карточки.

   Раньше она шла сразу за последней строкой, и у кого строк меньше — кнопка
   уезжала вверх. Ряд кнопок получался лесенкой, а карточка с кнопкой пониже
   читалась как более полная. Содержимое у людей разное, кнопка одна и та же —
   ей и стоять на одном уровне. */
.pt-invite-btn {
    display: block;
    width: 100%;
    /* auto прижимает кнопку к низу, прозрачная рамка держит отступ сверху,
       когда карточка самая высокая и свободного места не осталось */
    margin-top: auto;
    /* НАМЕРЕНО МИМО ШКАЛЫ РАМКИ: это не граница, а прозрачный отступ,
       который держит кнопку, когда margin-top:auto уже упёрся. Двенадцать
       здесь — ступень ОТСТУПА (8 · 12 · 16), а не толщины. */
    border-top: 12px solid transparent;
    /* ВЫСОТА СВОЙСТВОМ, А НЕ ПОЛЯМИ — описание Button 17:82. Ступень md 44
       названа там минимальной целью нажатия по Apple HIG. Замер 24.09 дал
       43 на трёх видах и 51 на двух: ни одна из двух высот не ступень
       (28 · 36 · 44 · 52), и обе на пиксель мимо.

       ПОПРАВКА К СОБСТВЕННОЙ ЗАПИСИ, тем же днём. Первым заходом здесь
       стояло min-height: 44 — и замер показал, что красится только 32:
       box-sizing здесь border-box, а прозрачная рамка сверху съедала 12 из
       этих 44. Цель нажатия выходила 44, а на вид кнопка вставала ступенью,
       которой в Button 17:82 нет. Теперь 12 прибавлены явно: красится 44 —
       ступень md, — а рамка остаётся тем, чем была, зазором сверху. */
    min-height: calc(var(--btn-h-md) + 12px);   /* красится 44, цель 56 */
    padding: 0;
    background: var(--accent);
    background-clip: padding-box;
    color: var(--neutral-black);
    font-size: var(--fs-sm);             /* 14; было 12 */
    font-weight: 700;
    border-right: none;
    border-bottom: none;
    border-left: none;
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: background 0.2s, transform 0.15s;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.pt-invite-btn:hover {
    background: var(--accent-hover);
    transform: translateY(-1px);
}

.pt-invite-btn:active {
    transform: scale(0.97);
}

.pt-invite-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    transform: none;
}

/* Empty state */
.pt-empty {
    grid-column: 1 / -1;
    text-align: center;
    padding: var(--space-xl) var(--space-lg);
    color: var(--text-muted);
    font-size: var(--fs-base);
}

.pt-empty svg {
    display: block;
    margin: 0 auto var(--space-sm);
    opacity: 0.3;
}

/* ========================================
   RESPONSIVE
   ======================================== */

/* ГРАНИЦЫ 992 · 768 · 480 СВЕДЕНЫ К 640 И 992. Отсюда ушло всё, что
   теперь держат крутилки и сетка: пол обложки долями высоты окна (35vh и
   30vh), кегли заголовка и подзаголовка, число колонок, поля витрины и
   правила мёртвой полосы фильтров. Осталось только то, что зависит от
   узости карточки, и оно переехало на 640. */
@media (max-width: 640px) {
    .pt-card {
        padding: var(--space-3);
    }

    /* 24.09: половинки `#players ...` отсюда убраны. Они появились, когда
       блок «Давай сыграем» на главной не имел своего объявления и ловил
       размеры отсюда. Теперь он объявлен целиком в style.css по шкале
       640/992, а этот файл отвечает только за страницу «Найти партнёра». */
    /* Ступень `Avatar 29:82`, соседняя снизу: 56, а не 60 */
    .pt-avatar, .pt-avatar-placeholder {
        width: 56px;
        height: 56px;
        font-size: var(--fs-md);
    }

    /* У ВИТРИНЫ ОДИН УРОВЕНЬ ТЕКСТА НА ВСЕ ВИДЫ — правило 07.10, то же,
       что у кортов и тренеров. Здесь стояла своя телефонная лестница:
       имя 14 при 16 на остальных видах, бейдж и статус 11 при 12. Кегли
       сняты; при двух колонках на 390 карточка 174, и имя 16 в неё
       помещается — замерено. */

    /* Кегль, поля и место метки сняты 24.09: это компонент Badge Info
       Subtle, 11 / 500 / высота 24, один и тот же на всех видах, и стоит
       он теперь строкой, а не в углу. Угловых координат здесь больше
       быть не должно. */

    /* Размер кнопки теперь общий — вторая ступень в style.css. Здесь
       остаётся только разрядка: на узкой карточке она растягивала слово */
    .pt-invite-btn {
        letter-spacing: 0;
    }
}

/* === ПОЛОСА СТРАНИЦ ===
   Своих кнопок у этой страницы больше нет: полоса — общий компонент,
   он лежит в `css/style.css` вместе со скриптом `js/polosa-stranic.js`.
   Снесены `.pt-pagination`, `.pt-page-btn` с тремя состояниями,
   `.pt-page-prev`, `.pt-page-next` — четвёртая копия одного понятия, и
   кнопки в ней были 40 × 40 мимо ступеней 28 · 36 · 44 · 52.
   Остаётся обёртка секции: её ширина своя. */
.pt-pagination-section {
    /* Полоса идёт по витрине, а не по умолчанию компонента */
    --polosa-shirina: 100%;
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 0 var(--pad-x) var(--space-xl);
}

.pt-pagination-section:empty {
    padding: 0;
}


/* === SPONSORS === */
