

/* Start:/local/components/rsf/contests.list/templates/.default/style.css?178530702818196*/
/* Component: contests.list */

.contests-list {
    padding: 0 var(--page-padding) 124px;
}

/* ===== Results card list (/contests/announcements/results/) =====
   Figma 2269:2403 (D) / 2269:2627 (M).
   Desktop card 1312×183 (varies by description length), mobile card 350×309.
   Section gap: page-title-section bottom 47 + cards-list top 64 ≈ Figma 64-block. */
.contests-list--results {
    padding-top: 64px;
}

.results-list {
    display: flex;
    flex-direction: column;
    gap: 32px; /* Figma row-gap 32 (215-183=32, 451-419=32) */
}

.results-card {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 32px;
    padding: 32px;
    background: #F2F6FF;
    border-radius: 24px;
}

.results-card__body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.results-card__title {
    font-size: 28px;
    font-weight: 700;
    line-height: 1.2;
    color: #1F428E;
    margin: 0;
}

.results-card__link:hover {
    text-decoration: underline;
}

.results-card__meta {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.results-card__subprogram {
    font-size: 16px;
    font-weight: 700;
    line-height: 1.2;
    color: #3C4052;
    margin: 0;
}

.results-card__desc {
    font-size: 14px;
    font-weight: 400;
    line-height: 1.5;
    color: #3C4052;
    margin: 0;
}

.results-card__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    /* Высота 48 = padding-block 16 + lh 16 (без min-height) — на iOS Safari
       min-height + flex-extra смещает glyph; padding-only центрует надёжно. */
    padding: 16px 24px;
    border: 1px solid #1F428E;
    border-radius: 100px;
    background: #fff;
    color: #1F428E;
    font-family: var(--font-family);
    font-size: 16px;
    font-weight: 400;
    line-height: 1;
    white-space: nowrap;
    text-decoration: none;
    transition: background 0.2s, color 0.2s;
    flex-shrink: 0;
}

.results-card__btn:hover {
    background: #1F428E;
    color: #fff;
}

@media (max-width: 767px) {
    .results-list {
        gap: 32px; /* Figma mobile y-distances 341-309=32, 722-690=32 */
    }

    .results-card {
        flex-direction: column;
        align-items: stretch;
        padding: 20px;
        gap: 20px;
        border-radius: 24px;
    }

    .results-card__title {
        font-size: 32px;
        line-height: 1.2;
        letter-spacing: -0.96px;
    }

    .results-card__desc {
        font-size: 13px;
    }

    .results-card__btn {
        width: 100%;
        justify-content: center;
    }
}

.contests-list__container {
    max-width: var(--container-max-width);
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 48px;
}

/* Shared section header */
.section-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.section-heading {
    color: var(--color-primary);
    font-size: var(--font-size-3xl);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -1.96px;
    margin: 0;
}

.btn-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 13px 16px;
    min-height: 48px;
    border-radius: var(--radius-full);
    background: var(--color-primary);
    color: var(--color-text-light);
    font-family: var(--font-family);
    font-size: 16px;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
    transition: opacity 0.2s;
    text-decoration: none;
}

.btn-primary:hover {
    opacity: 0.85;
}

.btn-outline {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 13px 16px;
    min-height: 48px;
    border-radius: var(--radius-full);
    border: 1px solid var(--color-primary);
    background: var(--color-text-light);
    color: var(--color-primary);
    font-family: var(--font-family);
    font-size: 16px;
    font-weight: 400;
    line-height: 1;
    white-space: nowrap;
    transition: opacity 0.2s;
    text-decoration: none;
}

.btn-outline:hover {
    opacity: 0.7;
}

/* Full-width button (mobile) */
.btn-full {
    display: none;
}

/* Card grid (main mode) */
.competition-cards {
    display: flex;
}

.competition-cards--main {
    width: 100%;
    display: flex;
}

.competition-card-box {
    max-width: 416px;
    flex: none;
}

.competition-card {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 32px;
    border-radius: 24px;
    background: var(--color-bg-light);
    min-height: 484px;
    gap: 32px;
    height: 100%;
}

.competition-card-box:not(:last-child) {
    margin-right: 32px;
}

.swiper-slide.competition-card {
    display: flex;
}

.competition-cards--main > .competition-card {
    flex: none;
    min-width: 0;
}

.card-top {
    display: flex;
    flex-direction: column;
    gap: 24px;
    flex: 1;
}

.card-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

/* .status-badge / .status-open / .status-soon / .status-closed —
 * вынесены в local/templates/rsf_main/css/components.css (единый B.3-компонент,
 * используется здесь и в contests.detail). Здесь только контекстные overrides. */

.card-date {
    color: var(--color-text);
    font-size: var(--font-size-base);
    font-weight: 400;
    line-height: 1;
    text-align: right;
    white-space: nowrap;
}

.card-info {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.card-title {
    color: var(--color-primary);
    font-size: 40px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -1.96px;
    margin: 0;
}

.card-period {
    color: var(--color-primary);
    font-size: var(--font-size-base);
    font-weight: 400;
    line-height: 1.2;
    margin: 0;
}

.card-program {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.program-name {
    color: var(--color-text);
    font-size: var(--font-size-base);
    font-weight: 700;
    line-height: 1.2;
    margin: 0;
}

.program-desc {
    color: var(--color-text);
    font-size: var(--font-size-sm);
    font-weight: 400;
    line-height: 1.5;
    margin: 0;
}

.card-footer {
    display: flex;
    justify-content: flex-end;
}

/* ===== Contest list cards (E.8 объявления / E.9 открытые отборы / E.11 архив) =====
   Единый дизайн-код от E.10 results-card + B.3 status-badge + E.5 reference-docs.
   Без отдельного Figma-фрейма — собирается из опорных паттернов. */

.contest-rows {
    display: flex;
    flex-direction: column;
    gap: 32px;
}

.contests-list--open,
.contests-list--archive,
.contests-list--announcements {
    padding-top: 64px;
}

.contest-row {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 32px;
    align-items: center;
    padding: 32px;
    background: var(--color-bg-light);
    border-radius: 24px;
}

.contest-row__body {
    display: flex;
    flex-direction: column;
    gap: 24px;
    min-width: 0;
}

/* Head: только title-block (badge перенесён в actions для desktop, в начало body для mobile). */
.contest-row__head {
    min-width: 0;
}

/* Mobile-копия status badge (со строкой даты) — скрыта на desktop. */
.contest-row__status-row {
    display: none;
}

/* Desktop-копия status badge — компактная (по тексту), слева над заголовком.
   На mobile перебивается @media: показывается status-row (badge + date). */
.contest-row__status--desktop {
    align-self: flex-start;
}

.contest-row__title {
    color: #1F428E;
    font-size: 28px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -0.32px;
    text-decoration: none;
    min-width: 0;
    transition: opacity 0.15s;
}

.contest-row__title:hover {
    text-decoration: underline;
}

/* Subtitle: SUBPROGRAM ("Конкурс № N. Подпрограмма № M") — короткий ярлык под H2 */
.contest-row__subtitle {
    color: #3C4052;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.4;
    margin: 8px 0 0;
}

/* Description (PREVIEW_TEXT) — паттерн E.10 results-card__desc */
.contest-row__description {
    color: #3C4052;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.5;
    margin: 0;
}

/* Meta — label/value по паттерну G.1 contacts-card */
.contest-row__meta {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.contest-row__meta-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.contest-row__meta-label {
    color: #3C4052;
    font-size: 16px;
    font-weight: 400;
    line-height: 24px;
}

.contest-row__meta-value {
    color: #1F428E;
    font-size: 16px;
    font-weight: 700;
    line-height: 24px;
}

/* Documents — паттерн E.5 reference-docs (file-text 24×24 + 16/Regular) */
.contest-row__docs {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 12px 32px;
}

.contest-row__doc {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #3C4052;
    font-size: 16px;
    font-weight: 400;
    line-height: 20px;
    text-decoration: none;
    transition: color 0.15s;
}

.contest-row__doc:hover {
    color: #1F428E;
}

.contest-row__doc svg {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
    color: #3C4052;
    transition: color 0.15s;
}

.contest-row__doc:hover svg {
    color: #1F428E;
}

/* Actions — паттерн E.10 results-card__btn (pill 13/16).
 * `align-items: flex-end` + удалённый min-width — pillы становятся компактными
 * под контент (как стандартные CTA сайта), выравнены по правому краю actions-колонки.
 * Mobile (≤767) перекрывает правилом ниже: full-width столбец. */
.contest-row__actions {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 12px;
}


.contest-row__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    /* Высота 48 = padding-block 16 + lh 16 без min-height. На iOS Safari
       min-height + flex-extra-space смещает glyph внутри font-box;
       чисто padding-управляемая высота центрует одинаково везде. */
    padding: 16px 24px;
    border-radius: 100px;
    font-family: var(--font-family);
    font-size: 16px;
    line-height: 1;
    white-space: nowrap;
    text-decoration: none;
    transition: background 0.15s, color 0.15s, opacity 0.15s;
}

.contest-row__btn--primary {
    background: #1F428E;
    color: #fff;
    border: 1px solid #1F428E;
    font-weight: 700;
}

.contest-row__btn--primary:hover {
    opacity: 0.88;
}

.contest-row__btn--outline {
    background: #fff;
    color: #1F428E;
    border: 1px solid #1F428E;
    font-weight: 400;
}

.contest-row__btn--outline:hover {
    background: #1F428E;
    color: #fff;
}

/* Empty state */
.contests-list__empty {
    text-align: center;
    color: var(--color-text-secondary);
    padding: var(--spacing-3xl) 0;
    font-size: var(--font-size-lg);
}

/* Pagination */
.contests-list .pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: var(--spacing-xs);
    margin-top: var(--spacing-3xl);
}

.contests-list .pagination__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 0 var(--spacing-sm);
    border-radius: var(--radius-md);
    font-size: var(--font-size-sm);
    text-decoration: none;
    color: var(--color-text);
    background: #fff;
    border: 1px solid var(--color-border);
    transition: all var(--transition-fast);
}

.contests-list .pagination__link:hover {
    background: var(--color-bg-light);
    border-color: var(--color-primary);
    color: var(--color-primary);
}

.contests-list .pagination__link--active {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: #fff;
    cursor: default;
}

/* Navigation sections (contests index page) */
.contests-nav {
    padding: 0 var(--page-padding) 80px;
}

.contests-nav__block {
    margin-bottom: 54px;
}

.contests-nav__block:last-child {
    margin-bottom: 0;
}

/* Nav cards: same style as competition-card but smaller */
.competition-cards--nav {
    flex-wrap: wrap;
}

.competition-card--nav {
    min-height: auto;
    padding: 24px 32px;
    text-decoration: none;
    transition: box-shadow 0.2s, transform 0.2s;
}

.competition-card--nav:hover {
    box-shadow: var(--shadow-card-hover);
    transform: translateY(-2px);
}

.card-title--nav {
    font-size: 20px;
}

/* Tablet landscape (1024-1199): 3 cols, slightly smaller */
@media (max-width: 1199px) {
    .contests-list {
        padding-bottom: 96px;
    }

    .competition-card {
        padding: 28px;
        min-height: auto;
    }

    .card-title {
        font-size: 32px;
        letter-spacing: -1.5px;
    }

    .section-heading {
        font-size: 32px;
        letter-spacing: -1.5px;
    }
}

/* Tablet portrait (768-1023): 2 cols */
@media (max-width: 1023px) {
    .competition-cards--main {
        grid-template-columns: repeat(2, 1fr);
        gap: 24px;
    }

    .competition-cards--main > .competition-card:nth-child(3):last-child {
        grid-column: 1 / -1;
    }
}

/* Mobile (≤767, Figma 390) */
@media (max-width: 767px) {
    .contests-list {
        padding: 64px var(--page-padding) 64px;
    }

    .contests-list__container {
        gap: 32px;
    }

    .section-heading {
        font-size: 32px;
        letter-spacing: -0.96px;
    }

    /* Hide button in section-header on mobile */
    .section-header__btn {
        display: none;
    }

    /* Show full-width button below cards */
    .btn-full {
        display: inline-flex;
        width: 100%;
        justify-content: center;
    }

    .competition-cards--main {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .competition-cards--main > .competition-card:nth-child(3):last-child {
        grid-column: auto;
    }

    .competition-card {
        padding: 20px;
        border-radius: 24px;
        gap: 20px;
    }

    .card-top {
        gap: 12px;
    }

    .card-info {
        gap: 8px;
    }

    .card-title {
        font-size: 32px;
        line-height: 1.2;
        letter-spacing: -0.96px;
    }

    .card-period {
        font-size: 16px;
    }

    .program-name {
        font-size: 16px;
    }

    .program-desc {
        font-size: 13px;
    }

    .card-meta {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }

    .card-date {
        font-size: 16px;
    }

    .card-footer {
        justify-content: stretch;
    }

    .card-footer .btn-outline {
        width: 100%;
        justify-content: center;
    }

    .btn-outline {
        justify-content: center;
    }

    .contests-nav {
        padding: 0 20px 48px;
    }

    .contests-nav__block {
        margin-bottom: 32px;
    }

    .competition-card--nav {
        padding: 20px;
    }

    .card-title--nav {
        font-size: 18px;
    }

    /* main-теасер картки уже не trogаем тут — они выше в этом блоке */
}

/* ===== Contest rows tablet/mobile (≤1199): column layout =====
   Figma не описывает tablet, mobile — нет своего фрейма для E.8/E.9/E.11.
   Стратегия плана: 768-1023 = «компоновка mobile, но с большими шрифтами».
   Выделяем правила в отдельный @media чтобы не дублировать код 768/390. */
@media (max-width: 1199px) {
    .contest-row {
        grid-template-columns: 1fr;
        gap: 20px;
        padding: 24px;
    }

    .contest-row__body {
        gap: 20px;
    }

    .contest-row__head {
        display: flex;
        grid-template-columns: none;
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }

    .contest-row__head .status-badge {
        min-width: 0;
    }

    .contest-row__title {
        font-size: 24px;
        line-height: 1.2;
        letter-spacing: -0.32px;
    }

    .contest-row__actions {
        min-width: 0;
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: flex-end;
        align-items: center;
        gap: 12px;
    }

    .contest-row__btn {
        flex: 0 0 auto;
    }
}

@media (max-width: 767px) {
    .contests-list--open,
    .contests-list--archive,
    .contests-list--announcements {
        padding-top: 32px;
    }

    .contest-rows {
        gap: 24px;
    }

    .contest-row {
        padding: 20px;
        border-radius: 24px;
    }

    .contest-row__title {
        font-size: 22px;
    }

    .contest-row__meta-label,
    .contest-row__meta-value {
        font-size: 14px;
        line-height: 20px;
    }

    .contest-row__docs {
        flex-direction: column;
        gap: 8px;
    }

    .contest-row__doc {
        font-size: 14px;
        line-height: 20px;
    }

    .contest-row__doc svg {
        width: 20px;
        height: 20px;
    }

    .contest-row__actions {
        flex-direction: column;
        gap: 8px;
    }

    .contest-row__btn {
        width: 100%;
        flex: none;
    }

    /* Mobile: показываем mobile-строку (badge + дата) сверху body, desktop-копию прячем */
    .contest-row__status--desktop {
        display: none !important;
    }
    .contest-row__status-row {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
    }
    .contest-row__status-date {
        color: var(--color-text);
        font-size: 16px;
        font-weight: 400;
        line-height: 1.2;
    }
}

/* End */
/* /local/components/rsf/contests.list/templates/.default/style.css?178530702818196 */
