body:has(.festival-archive) #all-cont {
    width: 100% !important;
    min-width: 0 !important;
}

body:has(.festival-archive) :is(#top, #main_board, #footer) > .container {
    width: 100% !important;
    max-width: 1200px !important;
    min-width: 0 !important;
}

.festival-catalog {
    min-height: calc(100vh - 249px);
    padding: 20px 0 45px;
}

.festival-catalog-tabs {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 18px;
    height: 44px;
    margin: 0 0 20px;
    padding: 12px;
    border-radius: 8px;
    background: #19171d;
    color: #fff;
    font-size: 14px;
    font-weight: 400;
    text-align: center;
}

.festival-catalog-tabs a {
    color: #fff;
    text-decoration: none;
}

.festival-catalog-tabs a.active,
.festival-catalog-tabs a:hover {
    color: #c1ac82;
}

.festival-catalog-tabs a:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 3px;
}

.festival-catalog-empty {
    margin: 64px 0 0;
    color: #1c1920;
    font-size: 36px;
    font-weight: 600;
    line-height: 1.3;
    text-align: center;
    overflow-wrap: break-word;
}

.festival-catalog-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
}

.festival-catalog-card {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    min-width: 0;
    padding: 10px;
    border-radius: 8px;
    background: rgb(0 0 0 / 35%);
    color: #d7d7d7;
    text-decoration: none;
    transition: none;
}

.festival-catalog-card:hover,
.festival-catalog-card:focus-visible {
    background: rgb(0 0 0 / 55%);
    color: #d7d7d7;
}

.festival-catalog-card:focus-visible,
.festival-archive .advertisement-time:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 3px;
}

.festival-catalog-card img {
    display: block;
    flex: 0 0 236px;
    width: 236px;
    height: 157px;
    border-radius: 7px;
    object-fit: contain;
}

.festival-catalog-copy {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.festival-catalog-title {
    color: #a17c84;
    font-size: 22px;
    font-weight: 600;
    line-height: 1.3;
    text-align: center;
}

.festival-catalog-description {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 6;
    overflow: hidden;
    color: #d7d7d7;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.3;
}

.festival-archive .description-poster {
    white-space: pre-line;
}

.festival-archive .content-game-cards {
    min-height: 320px;
}

body:has(.festival-archive) #footer {
    margin-top: 0 !important;
}

.festival-archive .festival-archive-empty {
    grid-column: 1 / -1;
    color: #d7d7d7;
    text-align: center;
}

.festival-archive .advertisement-time {
    border: 1px solid #49434c;
    font-family: inherit;
}

.festival-archive .social-media a span {
    display: block;
}

.festival-archive--snowdice-ii .content-game-cards .dice_card_front::before {
    background: url('/games/images/diceTimeLogo-c15f14246fa8981f0b0fa67a7cecf4a0.png') no-repeat center,
                url('/games/images/new_gradient-0e53a0c7d790269998cf803d1ae83e18.png') no-repeat top left;
    background-size: auto, contain;
}

.festival-archive--role-playing-sabbath-2026 .content-game-cards .dice_card_front::before {
    background: url('/games/images/sabbathLogo-3846afe83ab731b1a5cf080fbba45315.png') no-repeat center,
                url('/games/images/new_gradient-0e53a0c7d790269998cf803d1ae83e18.png') no-repeat top left;
    background-size: auto, contain;
}

.festival-archive--na-stolki-gulliver .content-game-cards .dice_card_front::before {
    background: url('/games/images/na-stolki-805073fc0f032ead6c1fdad7784dae36.png') no-repeat center,
                url('/games/images/new_gradient-0e53a0c7d790269998cf803d1ae83e18.png') no-repeat top left;
    background-size: auto, contain;
}

.festival-archive--sword-coast-2026 .content-game-cards .dice_card_front::before {
    background: url('/games/images/swordCoastLogo-bc581efb9e28f623d60c7ea91ea67dee.png') no-repeat center,
                url('/games/images/new_gradient-0e53a0c7d790269998cf803d1ae83e18.png') no-repeat top left;
    background-size: auto, contain;
}

@media (min-width: 602px) {
    #main_board:has(.festival-catalog) .main_board_container {
        width: 1152px;
    }
}

@media (max-width: 768px) {
    body:has(.festival-archive) :is(#top, #main_board, #footer) > .container {
        max-width: 100% !important;
    }

    body:has(:is(.festival-catalog, .festival-archive)) #footer {
        height: auto;
    }

    body:has(:is(.festival-catalog, .festival-archive)) #footer .row {
        margin: 0;
    }

    body:has(:is(.festival-catalog, .festival-archive)) #footer .row .col-3 {
        position: static;
        width: 100% !important;
        max-width: 100%;
        flex: 0 0 100%;
        padding: 12px 20px !important;
    }

    body:has(:is(.festival-catalog, .festival-archive)) :is(.footer_soc, .copyright) {
        position: static;
    }

    .festival-archive .cards-container,
    .festival-archive .content-game-cards--fest .cards-container {
        grid-template-columns: 1fr;
        width: 100% !important;
    }
}

@media (max-width: 601px) {
    #main_board:has(.festival-catalog) .main_board_container {
        margin-top: 0;
    }

    .festival-catalog-grid {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .festival-catalog-tabs {
        gap: 10px;
    }

    .festival-catalog-empty {
        margin-top: 40px;
        font-size: 24px;
    }

    .festival-catalog-card img {
        flex-basis: min(42%, 236px);
        width: min(42%, 236px);
        height: auto;
        aspect-ratio: 236 / 157;
    }

    .festival-catalog-title {
        font-size: 18px;
    }
}

@media (max-width: 480px) {
    .festival-catalog-card {
        flex-direction: column;
        align-items: center;
    }

    .festival-catalog-card img {
        width: min(100%, 236px);
    }
}
