/* ==========================================================================
   Адаптивность
   Макет свёрстан под 1600 px. Ниже — плавное масштабирование и перестроение.
   ========================================================================== */

/* --------------------------------------------------------------------------
   До 1280: hero пересчитывается от ширины окна
   -------------------------------------------------------------------------- */

@media (max-width: 1599px) {
    /* Hero сохраняет композицию макета и масштабируется от ширины окна */

    .hero {
        height: 42.22vw;
    }

    .hero__ribbon {
        width: 62.69vw;
        height: 40.75vw;
    }

    .hero__logo {
        top: 2.3vw;
        width: clamp(46px, 4.06vw, 65px);
        height: clamp(41px, 3.65vw, 58.35px);
    }

    .hero__content {
        top: 10.06vw;
        width: 52%;
    }

    .hero__title {
        font-size: clamp(32px, 3.088vw, 49.411px);
        line-height: clamp(35px, 3.346vw, 53.529px);
        letter-spacing: -.103vw;
        top: -.19vw;
    }

    .hero__actions {
        margin-top: 1.31vw;
        gap: 1.25vw;
    }

    .hero__actions .btn {
        width: clamp(148px, 13.75vw, 220px);
        height: clamp(46px, 3.69vw, 59px);
        border-radius: .5vw;
        font-size: clamp(13px, 1.0625vw, 17px);
        line-height: 2vw;
        letter-spacing: -.0375vw;
    }

    .hero__dots {
        left: 25.99%;
        top: 28.63vw;
        width: 14.66vw;
        height: 6.81vw;
    }

    .hero__photo {
        left: 39.94%;
        top: 17.87vw;
        width: 24.05vw;
        height: 24.05vw;
    }

    .hero__brand {
        left: 74.32%;
        top: 13.11vw;
        width: 21.75vw;
        height: 9.84vw;
    }
}

@media (max-width: 1279px) {
    :root {
        --gutter: 32px;
    }

    /* этапы и FAQ: убираем избыточные боковые поля */
    .stages__box {
        padding: 56px 40px 50px;
    }

    .faq__box {
        padding: 46px 40px;
    }

    .badge--countdown {
        left: 50%;
        transform: translateX(-50%);
    }

    .badge--now,
    .badge--link {
        left: auto;
        right: 0;
    }
}

/* --------------------------------------------------------------------------
   Планшет: 1024–1279
   -------------------------------------------------------------------------- */

@media (max-width: 1349px) and (min-width: 1150px) {
    .nomination__prize {
        white-space: normal;
    }

    .prize__row--first,
    .prize__row--rest {
        font-size: 34px;
    }

    .prize__unit {
        font-size: 23px;
    }

    .prize__row {
        height: auto;
    }
}

/* --------------------------------------------------------------------------
   До 1400: карточки в ряду выравниваются по кнопкам
   -------------------------------------------------------------------------- */

@media (max-width: 1400px) {
    .card--topic,
    .card--topic-own {
        height: auto;
        min-height: 432px;
    }

    .card--topic .card__title,
    .card--topic-own .card__title {
        display: flex;
        align-items: center;
        justify-content: center;
        min-height: 60px;
    }

    .card--topic-own .card__image {
        height: 220px;
    }

    .card--topic-own .card__title,
    .card--topic-own .btn {
        margin-top: 32px;
    }

    .card--doc {
        height: auto;
        min-height: 195px;
    }

    .card--doc .card__title {
        display: flex;
        align-items: center;
        justify-content: center;
        min-height: 75px;
        top: 0;
    }
}

/* --------------------------------------------------------------------------
   До 1150: номинации перестраиваются в две колонки
   -------------------------------------------------------------------------- */

@media (max-width: 1149px) {
    .nomination__grid {
        grid-template-columns: minmax(0, 320px) minmax(0, 1fr);
        gap: 28px;
        align-items: start;
    }

    .nomination--individual,
    .nomination--team {
        padding-top: 40px;
        padding-bottom: 40px;
    }

    .nomination__text {
        grid-column: 1 / -1;
        padding-top: 0;
        margin-left: 0;
    }

    .nomination__desc {
        height: auto;
        margin-top: 10px;
    }

    .nomination__hint {
        width: 100%;
        max-width: 460px;
    }

    .nomination__media {
        margin-top: 24px;
    }

    .nomination__media img {
        height: auto;
        max-height: 460px;
        aspect-ratio: 350 / 492;
    }

    .nomination__prize {
        margin-top: 24px;
        padding-top: 0;
        margin-left: 0;
        white-space: normal;
    }

    .prize__row {
        height: auto;
    }

    .prize__label--second {
        margin-top: 24px;
    }

    .prize__label--second + .prize__row--rest {
        margin-top: 4px;
    }

    .prize__place {
        white-space: nowrap;
    }

    .nomination__btn {
        margin-top: 28px;
        margin-left: 0;
    }
}

/* --------------------------------------------------------------------------
   Планшет: до 1023
   -------------------------------------------------------------------------- */

@media (max-width: 1023px) {
    :root {
        --gutter: 24px;
    }

    /* Hero ---------------------------------------------------------------- */

    .hero {
        height: auto;
        padding: 32px 0 40px;
    }

    .hero__ribbon {
        top: -2vw;
        width: 66vw;
        height: 42.9vw;
    }

    .hero__inner {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
    }

    .hero__logo,
    .hero__content,
    .hero__photo {
        position: static;
        transform: none;
    }

    .hero__logo {
        width: 58px;
        height: 52px;
    }

    .hero__content {
        width: 100%;
        max-width: 520px;
        margin-top: 32px;
    }

    .hero__title {
        font-size: 40px;
        line-height: 44px;
        letter-spacing: -1.2px;
        top: 0;
    }

    .hero__actions {
        margin-top: 24px;
        gap: 16px;
    }

    .hero__actions .btn {
        width: 210px;
        height: 56px;
        border-radius: 8px;
        font-size: 16px;
        line-height: 24px;
        letter-spacing: -.4px;
    }

    .hero__dots {
        left: 0;
        top: auto;
        bottom: 9vw;
        width: 28vw;
        max-width: 235px;
        height: auto;
    }

    .hero__brand {
        position: absolute;
        left: auto;
        right: 0;
        top: 9vw;
        width: 27vw;
        max-width: 260px;
        height: auto;
        margin: 0;
    }

    .hero__photo {
        width: 30vw;
        max-width: 268px;
        height: auto;
        aspect-ratio: 1;
        margin: 4vw 0 0 auto;
    }

    /* О конкурсе ---------------------------------------------------------- */

    .about {
        padding-top: 56px;
    }

    .about__title {
        font-size: 28px;
        line-height: 38px;
        letter-spacing: -.8px;
    }

    .about__text {
        margin-top: 20px;
        font-size: 17px;
        line-height: 28px;
    }

    .about__dots {
        display: none;
    }

    /* Номинации ------------------------------------------------------------ */

    .nominations__head {
        padding-top: 64px;
        width: 100%;
    }

    .nominations__title {
        font-size: 36px;
        line-height: 44px;
        letter-spacing: 1px;
        top: 0;
    }

    .nominations__note {
        height: auto;
        margin-top: 16px;
        font-size: 16px;
        line-height: 26px;
    }

    .nomination__grid {
        grid-template-columns: minmax(0, 320px) minmax(0, 1fr);
        gap: 28px;
        align-items: start;
    }

    .nomination--individual {
        padding-top: 40px;
        padding-bottom: 40px;
    }

    .nomination--team {
        padding-top: 40px;
        padding-bottom: 40px;
    }

    .nomination__text {
        grid-column: 1 / -1;
        padding-top: 0;
        margin-left: 0;
    }

    .nomination__name {
        font-size: 26px;
        line-height: 34px;
        letter-spacing: -.6px;
        top: 0;
    }

    .nomination__desc {
        height: auto;
        margin-top: 10px;
        font-size: 16px;
        line-height: 26px;
    }

    .nomination__hint {
        width: 100%;
        max-width: 420px;
    }

    .nomination__media {
        margin-top: 24px;
    }

    .nomination__media img {
        height: 100%;
        max-height: 420px;
        aspect-ratio: 350 / 492;
    }

    .nomination__prize {
        margin-top: 24px;
        padding-top: 0;
        margin-left: 0;
        white-space: normal;
    }

    .prize__title {
        font-size: 24px;
        line-height: 32px;
        letter-spacing: -.6px;
        top: 0;
    }

    .prize__label {
        margin-top: 16px;
        font-size: 16px;
        line-height: 24px;
    }

    .prize__label--second {
        margin-top: 24px;
    }

    .prize__row {
        height: auto;
        line-height: 38px;
        top: 0;
    }

    .prize__row--first {
        margin-top: 4px;
        gap: 10px;
        font-size: 30px;
    }

    .prize__row--rest {
        margin-top: 10px;
        font-size: 30px;
    }

    .prize__label--second + .prize__row--rest {
        margin-top: 4px;
    }

    .prize__unit {
        font-size: 21px;
    }

    .nomination__btn {
        margin-top: 28px;
        margin-left: 0;
    }

    /* Этапы ---------------------------------------------------------------- */

    .stages {
        padding-top: 56px;
    }

    .section-title {
        font-size: 26px;
        line-height: 34px;
        letter-spacing: -.6px;
        top: 0;
    }

    .stages__box {
        margin-top: 44px;
        padding: 44px 24px 32px;
    }

    .stages__list {
        gap: 12px;
    }

    .stage {
        grid-template-columns: 96px minmax(0, 1fr);
        gap: 10px;
        height: auto;
    }

    .stage__date {
        height: auto;
        min-height: 96px;
        padding: 12px 6px;
        border-radius: 12px;
    }

    .stage__day {
        font-size: 26px;
        line-height: 30px;
    }

    .stage__month,
    .stage__pre {
        font-size: 14px;
        line-height: 16px;
        top: 0;
    }

    .stage__weekday {
        font-size: 15px;
        line-height: 20px;
    }

    .stage__body {
        height: auto;
        min-height: 96px;
        padding: 14px 16px;
    }

    .stage__title {
        font-size: 16px;
    }

    .stage__title br {
        display: none;
    }

    .stage__note {
        font-size: 13px;
    }

    .stage__note br {
        display: none;
    }

    .badge {
        font-size: 14px;
        height: 34px;
    }

    .badge::after {
        top: 33.4px;
        height: 11px;
    }

    .badge--countdown {
        top: -17px;
        width: auto;
        padding: 0 14px 0 6px;
    }

    .badge--countdown::after {
        left: auto;
        right: 24px;
    }

    .badge--now {
        width: auto;
        padding: 0 12px;
        top: -14px;
        right: 8px;
    }

    .badge--now::after {
        left: auto;
        right: 20px;
        clip-path: polygon(100% 100%, 100% 0, 0 0);
    }

    .badge--link {
        width: auto;
        padding: 0 12px;
        top: -14px;
        right: 8px;
    }

    .badge--link::after {
        left: auto;
        right: 20px;
        clip-path: polygon(100% 100%, 100% 0, 0 0);
    }

    .badge--link-low {
        top: auto;
        bottom: -14px;
    }

    .badge--link-low::after {
        top: auto;
        bottom: 33.4px;
        clip-path: polygon(100% 0, 100% 100%, 0 100%);
    }

    /* Темы, документы ------------------------------------------------------ */

    .topics {
        padding-top: 56px;
    }

    .topics__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 24px;
    }

    .documents {
        padding-top: 56px;
    }

    .documents__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 24px;
        margin-top: 28px;
    }

    .card {
        padding: 28px 24px;
    }

    .card--topic,
    .card--topic-own {
        height: auto;
        margin-top: 28px;
    }

    .card--doc {
        height: auto;
        padding: 24px;
    }

    .card--doc .card__title {
        min-height: 0;
    }

    .card--doc .btn {
        margin-top: 24px;
    }

    /* FAQ ------------------------------------------------------------------ */

    .faq {
        padding-top: 56px;
    }

    .faq__box {
        margin-top: 24px;
        padding: 28px 20px;
    }

    .faq__question {
        min-height: 52px;
        padding: 12px 16px;
        font-size: 17px;
        line-height: 22px;
    }

    .faq__question-text br {
        display: none;
    }

    /* Эксперты ------------------------------------------------------------- */

    .experts {
        padding-top: 56px;
    }

    .experts__band {
        margin-top: 100px;
        padding-top: 90px;
        padding-bottom: 32px;
    }

    .experts__grid {
        gap: 20px;
    }

    .expert__name {
        font-size: 18px;
        top: 0;
    }

    .expert__role {
        font-size: 14px;
    }

    /* Футер ---------------------------------------------------------------- */

    .footer {
        margin-top: 40px;
        padding: 40px 0 24px;
    }

    .footer__top {
        flex-direction: column;
        align-items: flex-start;
        gap: 40px;
    }

    .footer__col {
        width: 100%;
    }

    .footer__title {
        margin-top: 28px;
        font-size: 26px;
        line-height: 34px;
        letter-spacing: -.6px;
        top: 0;
    }

    .footer__contacts {
        margin-top: 28px;
    }

    .footer__link {
        font-size: 18px;
        white-space: normal;
    }

    .footer__brand {
        width: 280px;
        height: auto;
    }

    .footer__copy {
        margin-top: 36px;
        font-size: 16px;
    }
}

/* --------------------------------------------------------------------------
   Мобильные: до 767
   -------------------------------------------------------------------------- */

@media (max-width: 767px) {
    :root {
        --gutter: 16px;
    }

    /* Hero ---------------------------------------------------------------- */

    .hero {
        padding: 20px 0 32px;
    }

    .hero__pattern::before {
        top: 0;
        height: 100%;
        background-size: cover;
    }

    .hero__ribbon {
        top: -12vw;
        right: -34vw;
        width: 140vw;
        height: 91vw;
    }

    .hero__logo {
        width: 52px;
        height: 47px;
    }

    .hero__content {
        margin-top: 140px;
        max-width: 100%;
    }

    .hero__title {
        font-size: 30px;
        line-height: 34px;
        letter-spacing: -.6px;
    }

    .hero__actions {
        flex-wrap: wrap;
        margin-top: 20px;
        gap: 12px;
    }

    .hero .hero__actions .btn {
        width: calc(50% - 6px);
        min-width: 148px;
        max-width: none;
        height: 52px;
        font-size: 15px;
    }

    .hero__brand {
        top: 40px;
        width: 150px;
        margin: 0;
    }

    .hero__dots {
        display: none;
    }

    .hero__photo {
        width: 200px;
        height: 200px;
        margin: 28px auto 0;
    }

    /* Секции --------------------------------------------------------------- */

    .about {
        padding-top: 40px;
    }

    .section-label {
        font-size: 15px;
        letter-spacing: 1.2px;
    }

    .about__title {
        margin-top: 12px;
        font-size: 22px;
        line-height: 30px;
        letter-spacing: -.4px;
    }

    .about__text {
        margin-top: 16px;
        font-size: 15px;
        line-height: 25px;
    }

    .about__btn {
        margin-top: 24px;
    }

    .btn {
        width: 100%;
        max-width: 320px;
        height: 52px;
        font-size: 15px;
    }

    .nominations__head {
        padding-top: 44px;
    }

    .nominations__title {
        font-size: 26px;
        line-height: 32px;
        letter-spacing: .6px;
    }

    .nominations__note {
        font-size: 15px;
        line-height: 24px;
    }

    .nomination__grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 20px;
    }

    .nomination--individual,
    .nomination--team {
        padding-top: 32px;
        padding-bottom: 32px;
    }

    .nomination__name {
        font-size: 22px;
        line-height: 30px;
    }

    .nomination__name br {
        display: none;
    }

    .nomination__media {
        margin-top: 4px;
    }

    .nomination__media img {
        max-height: 340px;
    }

    .nomination__prize {
        margin-top: 4px;
    }

    .prize__title {
        font-size: 20px;
        line-height: 28px;
    }

    .prize__row--first,
    .prize__row--rest {
        font-size: 24px;
        line-height: 32px;
    }

    .prize__unit {
        font-size: 17px;
    }

    .nomination__btn {
        margin-top: 24px;
    }

    /* Этапы ---------------------------------------------------------------- */

    .stages {
        padding-top: 40px;
    }

    .section-title {
        font-size: 22px;
        line-height: 30px;
    }

    .stages__box {
        margin-top: 40px;
        padding: 34px 12px 20px;
        border-radius: 12px;
    }

    .stage {
        grid-template-columns: minmax(0, 1fr);
        gap: 8px;
    }

    .stage__date {
        flex-direction: row;
        align-items: baseline;
        justify-content: flex-start;
        gap: 6px;
        min-height: 0;
        padding: 10px 14px;
    }

    .stage__day {
        font-size: 20px;
        line-height: 24px;
    }

    .stage__month,
    .stage__pre {
        font-size: 15px;
        line-height: 20px;
    }

    .stage__weekday {
        margin-left: auto;
        font-size: 14px;
    }

    .stage__body {
        min-height: 0;
        padding: 14px;
    }

    .badge {
        font-size: 13px;
        height: 30px;
    }

    .badge::after {
        top: 29.4px;
        height: 9px;
        width: 10px;
    }

    .badge--countdown {
        top: -15px;
        padding: 0 12px 0 4px;
    }

    .badge--countdown .badge__icon {
        width: 18px;
    }

    .badge--now,
    .badge--link,
    .badge--link-low {
        position: static;
        align-self: flex-end;
        margin: -4px 4px 0 0;
        padding: 0 12px;
        gap: 8px;
    }

    .badge--now::after,
    .badge--link::after,
    .badge--link-low::after {
        display: none;
    }

    .stage {
        display: flex;
        flex-direction: column;
    }

    /* Карточки -------------------------------------------------------------- */

    .topics,
    .documents,
    .faq,
    .experts {
        padding-top: 40px;
    }

    .topics__grid,
    .documents__grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 16px;
    }

    .card--topic,
    .card--topic-own {
        margin-top: 20px;
    }

    .documents__grid {
        margin-top: 20px;
    }

    .card__title {
        font-size: 18px;
    }

    .card__title br {
        display: none;
    }

    /* FAQ ------------------------------------------------------------------- */

    .faq__box {
        padding: 20px 12px;
        border-radius: 12px;
    }

    .faq__question {
        min-height: 48px;
        padding: 10px 14px;
        font-size: 15px;
        line-height: 20px;
    }

    .faq__chevron {
        width: 20px;
        height: 20px;
    }

    .faq__answer > p {
        padding: 0 14px;
        font-size: 15px;
        line-height: 24px;
    }

    /* Эксперты --------------------------------------------------------------- */

    .experts__band {
        margin-top: 120px;
        padding-top: 110px;
        padding-bottom: 28px;
    }

    .experts__grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 130px;
        max-width: 320px;
        margin: 0 auto;
    }

    .expert__name {
        font-size: 20px;
    }

    .expert__role {
        font-size: 15px;
    }

    /* Футер ------------------------------------------------------------------ */

    .footer {
        margin-top: 32px;
        padding: 32px 0 20px;
    }

    .footer__top {
        gap: 32px;
    }

    .footer__title {
        margin-top: 24px;
        font-size: 22px;
        line-height: 30px;
    }

    .footer__contacts {
        margin-top: 24px;
        gap: 16px;
    }

    .footer__link {
        align-items: flex-start;
        gap: 12px;
        font-size: 16px;
    }

    .footer__icon {
        width: 20px;
        height: 20px;
        margin-top: 2px;
    }

    .footer__brand {
        width: 220px;
    }

    .footer__copy {
        margin-top: 28px;
        font-size: 14px;
    }
}

/* --------------------------------------------------------------------------
   Компактные телефоны: до 479
   -------------------------------------------------------------------------- */

@media (max-width: 479px) {
    .hero__title {
        font-size: 26px;
        line-height: 30px;
    }

    .hero__actions .btn {
        width: 100%;
        max-width: none;
    }

    .hero__photo {
        width: 170px;
        height: 170px;
    }

    .hero__brand {
        width: 165px;
    }

    .prize__row--first {
        flex-wrap: wrap;
        gap: 4px;
    }

    .prize__row--first,
    .prize__row--rest {
        font-size: 21px;
        line-height: 28px;
    }

    .prize__unit {
        font-size: 15px;
    }

    .badge--countdown {
        font-size: 12px;
    }

    .badge--now,
    .badge--link {
        font-size: 12px;
    }
}
