/* ==========================================================================
   Страница «Команда»
   Использует те же фон, ширину контейнера, крошки, заголовок и токены,
   что «Все выпуски» и другие внутренние страницы.
   ========================================================================== */
.team-page {
    position: relative;
    isolation: isolate;
    min-height: 100svh;
    padding-bottom: clamp(48px, 7vh, 96px);
    overflow: hidden;
    background: linear-gradient(
        180deg,
        #dfeaf8 0,
        #edf4fc 920px,
        #f4f8fd 100%
    );
}

/*
   Фоновый арт живёт только в верхнем экране. Высота больше не зависит от
   длины списка, поэтому cover не растягивает исходник на несколько тысяч px.
*/
.team-page__art {
    position: absolute;
    inset: 0 0 auto;
    z-index: -1;
    height: clamp(760px, 100svh, 1080px);
    background-image: url("../images/bg-wide-1920.jpg");
    background-position: left top;
    background-repeat: no-repeat;
    background-size: cover;
}

/* Мягко растворяем арт в спокойной подложке длинной части страницы. */
.team-page__art::after {
    content: "";
    position: absolute;
    inset: auto 0 0;
    height: clamp(170px, 22vh, 280px);
    background: linear-gradient(
        180deg,
        rgba(237, 244, 252, 0) 0%,
        rgba(237, 244, 252, 0.72) 58%,
        #edf4fc 100%
    );
    pointer-events: none;
}

.team-page__inner {
    width: 100%;
    max-width: 1920px;
    margin: 0 auto;
    padding: 0 var(--gutter);
}

.team-roster {
    --team-host-image: url("../images/host.png");
    margin-top: clamp(4px, 0.7vw, 14px);
}

/* Дополнительный текст страницы остаётся обычным вводным текстом над сеткой. */
.team-roster > :not(ul:first-of-type) {
    max-width: 909px;
    color: var(--ink);
    font-size: clamp(16px, 1.04vw, 20px);
    line-height: 1.45;
}

.team-roster > :not(ul:first-of-type) + :not(ul:first-of-type) {
    margin-top: 0.8em;
}

/* Первый маркированный список — произвольная по длине сетка команды. */
.team-roster > ul:first-of-type {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(18px, 1.45vw, 28px) clamp(22px, 1.9vw, 36px);
    margin: 0;
    padding: 0;
    list-style: none;
}

.team-roster > :not(ul:first-of-type) + ul:first-of-type {
    margin-top: clamp(20px, 2vw, 36px);
}

.team-roster > ul:first-of-type > li {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    min-height: clamp(126px, 7.7vw, 148px);
    margin: 0;
    padding: clamp(24px, 1.55vw, 30px) clamp(28px, 2.05vw, 40px);
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.42);
    border-radius: var(--radius);
    background: var(--surface-70);
    box-shadow: var(--shadow-panel);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    color: var(--ink);
    font-size: clamp(16px, 1.04vw, 20px);
    font-weight: 500;
    line-height: 1.3;
}

.team-roster > ul:first-of-type > li p {
    margin: 0;
}

.team-roster > ul:first-of-type > li strong {
    display: block;
    margin-top: 5px;
    color: var(--ink);
    font-size: clamp(20px, 1.25vw, 24px);
    font-weight: 700;
    line-height: 1.16;
}

/*
   Ведущая — первый пункт. Изображение выводится отдельным портретным кадром,
   а не фоном на полкарточки: background-size: cover и верхний фокус обрезают
   поясной Feature image до головы и плеч.
*/
.team-roster > ul:first-of-type > li:first-child {
    padding-right: clamp(174px, 12.2vw, 224px);
}

.team-roster > ul:first-of-type > li:first-child::after {
    content: "";
    position: absolute;
    inset: 0 0 0 auto;
    width: clamp(146px, 10.4vw, 190px);
    background-image: var(--team-host-image);
    background-position: 50% 16%;
    background-repeat: no-repeat;
    background-size: cover;
    border-radius: 0 var(--radius) var(--radius) 0;
    box-shadow: -22px 0 32px rgba(238, 244, 255, 0.78);
    pointer-events: none;
}

@media (max-width: 900px) {
    .team-page {
        background: linear-gradient(
            180deg,
            #dfeaf8 0,
            #edf4fc 820px,
            #f4f8fd 100%
        );
    }

    .team-page__art {
        height: clamp(720px, 112svh, 960px);
        background-image: url("../images/bg-tall-1200.jpg");
        background-position: center top;
    }
}

@media (max-width: 820px) {
    .team-page { min-height: 0; }

    .team-roster > ul:first-of-type {
        grid-template-columns: 1fr;
    }

    .team-roster > ul:first-of-type > li {
        min-height: 132px;
    }

    .team-roster > ul:first-of-type > li:first-child {
        padding-right: 198px;
    }

    .team-roster > ul:first-of-type > li:first-child::after {
        width: 170px;
    }
}

@media (max-width: 760px) {
    .team-page__art {
        background-image: url("../images/bg-tall-800.jpg");
    }
}

@media (max-width: 520px) {
    .team-page {
        background: linear-gradient(
            180deg,
            #dfeaf8 0,
            #edf4fc 720px,
            #f4f8fd 100%
        );
    }

    .team-page__art {
        height: 820px;
    }

    .team-page__art::after {
        height: 190px;
    }

    .team-roster > ul:first-of-type {
        gap: 16px;
    }

    .team-roster > ul:first-of-type > li {
        min-height: 120px;
        padding: 22px 24px;
        border-radius: 16px;
    }

    .team-roster > ul:first-of-type > li:first-child {
        min-height: 156px;
        padding-right: 132px;
    }

    .team-roster > ul:first-of-type > li:first-child::after {
        width: 116px;
        background-position: 50% 12%;
        border-radius: 0 16px 16px 0;
        box-shadow: -16px 0 24px rgba(238, 244, 255, 0.82);
    }
}
