/* ==========================================================
   HOME PAGE
   ========================================================== */

.home-page {
    padding:
        clamp(24px, 4vw, 42px)
        0
        34px;
}


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

.home-main-grid {
    display: grid;
    grid-template-columns:
        minmax(0, 2fr)
        minmax(280px, 0.95fr);

    gap: 18px;
    align-items: stretch;
}


/* ==========================================================
   HERO CONTENT CARD
   ========================================================== */

.home-welcome-card {
    min-height: 430px;

    display: grid;
    grid-template-columns:
        minmax(0, 1fr)
        minmax(300px, 1fr);

    align-items: center;

    overflow: hidden;

    background:
        linear-gradient(
            135deg,
            #ffffff 0%,
            #f8fbff 100%
        );
}

.home-welcome-copy {
    padding:
        clamp(28px, 4vw, 42px);
}

.home-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;

    margin-bottom: 18px;

    color: #0756bd;

    font-size: 0.9rem;
    font-weight: 800;

    text-transform: uppercase;
}

.home-title {
    margin-bottom: 18px;

    max-width: 560px;

    font-size:
        clamp(
            2rem,
            4.6vw,
            3.05rem
        );

    color: #092a55;
}

.home-title span {
    color: #0f66df;
}

.home-description {
    max-width: 530px;

    margin-bottom: 28px;

    color: #29415e;

    font-size:
        clamp(
            1rem,
            1.8vw,
            1.12rem
        );

    line-height: 1.65;
}

.home-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.home-primary-btn,
.home-secondary-btn {
    min-height: 50px;

    padding:
        13px 18px;

    border-radius: 12px;

    font-weight: 800;
}

.home-primary-btn {
    background: #0d63df;
    color: #ffffff;
}

.home-primary-btn:hover {
    background: #0955c0;
}

.home-secondary-btn {
    border:
        1px solid
        #c8d4e3;

    background: #ffffff;

    color: #0d63df;
}

.home-secondary-btn:hover {
    background: #f3f8ff;
}

.home-games-all-btn {
    flex-shrink: 0;

    padding: 12px 18px;

    border-radius: 999px;

    background: #075ca5;

    color: #ffffff;

    font-size: 0.9rem;
    font-weight: 900;

    box-shadow:
        0 5px 14px
        rgba(
            3,
            74,
            135,
            0.16
        );
}

.home-games-all-btn:hover {
    color: #ffffff;

    transform: translateY(-1px);
}
/* ==========================================================
   HOME ILLUSTRATION
   ========================================================== */

.home-welcome-visual {
    position: relative;

    min-height: 100%;

    display: flex;
    align-items: center;
    justify-content: center;

    padding:
        32px
        28px
        32px
        0;
}

.home-welcome-visual::before {
    content: "";

    position: absolute;

    width: 78%;
    aspect-ratio: 1;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(96, 183, 255, 0.33) 0%,
            rgba(96, 183, 255, 0.12) 46%,
            rgba(96, 183, 255, 0) 74%
        );
}

.home-welcome-visual img {
    position: relative;
    z-index: 1;

    width:
        min(
            100%,
            430px
        );

    margin-inline: auto;
}


/* ==========================================================
   RIGHT COLUMN
   ========================================================== */

.home-side-column {
    display: flex;
    flex-direction: column;
    gap: 16px;
}


/* ==========================================================
   NEXT GAME CARD
   ========================================================== */

.next-game-card .card-body {
    padding: 24px;
}

.home-section-label {
    margin-bottom: 18px;

    color: #0756bd;

    font-size: 0.88rem;
    font-weight: 900;

    text-transform: uppercase;
}

.next-game-title {
    margin-bottom: 14px;

    color: #102b50;

    font-size: 1rem;
    font-weight: 900;

    line-height: 1.35;
}

.countdown {
    display: grid;
    grid-template-columns:
        repeat(4, 1fr);

    margin-bottom: 18px;
}

.countdown-item {
    text-align: center;

    padding:
        0 8px;
}

.countdown-item + .countdown-item {
    border-left:
        1px solid
        #d5dce6;
}

.countdown-value {
    display: block;

    color: #0756bd;

    font-size:
        clamp(
            1.7rem,
            3.2vw,
            2.25rem
        );

    line-height: 1;

    font-weight: 900;
}

.countdown-label {
    display: block;

    margin-top: 6px;

    color: #475a73;

    font-size: 0.68rem;
    font-weight: 700;

    text-transform: uppercase;
}

.next-game-button {
    width: 100%;

    min-height: 44px;

    border: 0;
    border-radius: 999px;

    background: #0d63df;

    color: #ffffff;

    font-weight: 800;

    cursor: pointer;
}

.next-game-button:hover {
    background: #0955c0;
}

.next-game-empty {
    color: #6b7280;
    line-height: 1.6;
}


/* ==========================================================
   WHY PARTICIPATE
   ========================================================== */

.why-card .card-body {
    padding: 24px;
}

.why-list {
    display: flex;
    flex-direction: column;
    gap: 17px;
}

.why-item {
    display: grid;
    grid-template-columns:
        48px
        minmax(0, 1fr);

    align-items: center;

    gap: 12px;
}

.why-icon {
    width: 48px;
    height: 48px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;

    font-size: 1.35rem;
}

.why-icon-red {
    background: #ffe8e8;
}

.why-icon-green {
    background: #e6f8ee;
}

.why-icon-yellow {
    background: #fff3d8;
}

.why-copy strong {
    display: block;

    margin-bottom: 2px;

    color: #142b49;

    font-size: 0.95rem;
}

.why-copy span {
    display: block;

    color: #53667d;

    font-size: 0.85rem;

    line-height: 1.4;
}


/* ==========================================================
   BENEFITS STRIP
   ========================================================== */

.home-benefits {
    margin-top: 18px;

    display: grid;
    grid-template-columns:
        repeat(4, 1fr);

    background: #ffffff;

    border: 1px solid rgba(0, 0, 0, 0.04);

    border-radius: 16px;

    box-shadow: var(--shadow-sm);

    overflow: hidden;
}

.home-benefit {
    display: grid;
    grid-template-columns:
        54px
        minmax(0, 1fr);

    align-items: center;

    gap: 14px;

    padding:
        24px
        26px;
}

.home-benefit + .home-benefit {
    border-left:
        1px solid
        #e4e8ee;
}

.home-benefit-icon {
    width: 54px;
    height: 54px;

    display: flex;
    align-items: center;
    justify-content: center;

    color: #082c5c;

    font-size: 1.85rem;
}

.home-benefit strong {
    display: block;

    margin-bottom: 3px;

    color: #142b49;
}

.home-benefit span {
    display: block;

    color: #65758a;

    font-size: 0.84rem;

    line-height: 1.45;
}


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

@media (max-width: 1050px) {

    .home-main-grid {
        grid-template-columns: 1fr;
    }

    .home-side-column {
        display: grid;

        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .home-benefits {
        grid-template-columns:
            repeat(2, 1fr);
    }

    .home-benefit:nth-child(3) {
        border-left: 0;
        border-top:
            1px solid
            #e4e8ee;
    }

    .home-benefit:nth-child(4) {
        border-top:
            1px solid
            #e4e8ee;
    }
}


@media (max-width: 760px) {

    .home-welcome-card {
        grid-template-columns: 1fr;
    }

    .home-welcome-copy {
        padding-bottom: 10px;
    }

    .home-welcome-visual {
        padding:
            0 24px
            28px;
    }

    .home-side-column {
        grid-template-columns: 1fr;
    }
}


@media (max-width: 575px) {

    .home-page {
        padding-top: 18px;
    }

    .home-title {
        font-size: 2rem;
    }

    .home-actions {
        flex-direction: column;
    }

    .home-primary-btn,
    .home-secondary-btn,
    .home-games-all-btn {
        width: 100%;
    }

    .countdown {
        gap: 0;
    }

    .countdown-item {
        padding:
            0 4px;
    }

    .countdown-value {
        font-size: 1.55rem;
    }

    .countdown-label {
        font-size: 0.58rem;
    }

    .home-benefits {
        grid-template-columns: 1fr;
    }

    .home-benefit + .home-benefit,
    .home-benefit:nth-child(3),
    .home-benefit:nth-child(4) {
        border-left: 0;

        border-top:
            1px solid
            #e4e8ee;
    }
}

/* ==========================================================
   COMMUNITY GAMES
   ========================================================== */

.home-games-section {
    margin-top: 28px;
}

/* ==========================================================
   COMMUNITY GAMES - TITLE
   ========================================================== */

.home-games-title-wrap {
    margin-bottom: 18px;
}

.home-games-title-line {
    display: flex;
    align-items: center;

    gap: 18px;
}

.home-games-title-decoration {
    flex: 1;

    height: 2px;

    background:
        linear-gradient(
            90deg,
            transparent 0%,
            #d7e2ee 100%
        );
}

.home-games-title-decoration:last-child {
    background:
        linear-gradient(
            90deg,
            #d7e2ee 0%,
            transparent 100%
        );
}

.home-games-title {
    flex-shrink: 0;

    display: flex;
    align-items: center;

    gap: 12px;
}

.home-games-title-icons {
    font-size: 1.8rem;

    line-height: 1;
}

.home-games-title h2 {
    margin: 0;

    color: #092a55;

    font-size:
        clamp(
            1.75rem,
            3vw,
            2.35rem
        );

    font-weight: 900;
}


/* ==========================================================
   COMMUNITY GAMES - TOOLBAR
   ========================================================== */

.home-games-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 18px;

    margin-bottom: 20px;
}

.home-games-latest {
    color: #53667d;

    font-size: 0.95rem;
    font-weight: 800;
}

.home-games-all-btn {
    flex-shrink: 0;

    padding: 12px 18px;

    border-radius: 999px;

    background: #075ca5;

    color: #ffffff;

    font-size: 0.9rem;
    font-weight: 900;

    box-shadow:
        0 5px 14px
        rgba(
            3,
            74,
            135,
            0.16
        );
}

.home-games-all-btn:hover {
    color: #ffffff;

    transform: translateY(-1px);
}

.home-section-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;

    gap: 24px;

    margin-bottom: 18px;
}

.home-section-heading h2 {
    margin-bottom: 8px;

    color: #092a55;
}

.home-section-heading p {
    max-width: 650px;

    margin-bottom: 0;

    color: #5c6d82;

    line-height: 1.55;
}

.home-section-kicker {
    display: block;

    margin-bottom: 6px;

    color: #0756bd;

    font-size: 0.82rem;
    font-weight: 900;

    text-transform: uppercase;
}

.home-games-grid {
    display: grid;

    grid-template-columns:
        repeat(
            3,
            minmax(0, 1fr)
        );

    gap: 18px;
}

.home-game-card {
    display: flex;

    min-height: 100%;
}

.home-game-card .card-body {
    width: 100%;

    display: flex;
    flex-direction: column;
}

.home-game-top {
    margin-bottom: 14px;
}

.home-game-status {
    display: inline-flex;
    align-items: center;

    padding: 6px 10px;

    border-radius: 999px;

    font-size: 0.72rem;
    font-weight: 800;

    text-transform: uppercase;
}

.home-game-status-active {
    color: #14763c;
    background: #e8f8ee;
}

.home-game-status-upcoming {
    color: #8a5b00;
    background: #fff2d5;
}

.home-game-title {
    margin-bottom: 18px;

    color: #102b50;
}

.home-game-prize,
.home-game-date {
    display: flex;
    align-items: flex-start;

    gap: 8px;

    margin-bottom: 12px;

    color: #52667f;

    line-height: 1.45;
}

.home-game-actions {
    margin-top: auto;

    padding-top: 14px;
}

.home-games-empty {
    text-align: center;
}

.home-games-empty .card-body {
    padding:
        34px
        24px;
}

.home-games-empty-icon {
    margin-bottom: 10px;

    font-size: 2.4rem;
}

.home-games-empty h3 {
    margin-bottom: 8px;

    color: #102b50;
}

.home-games-empty p {
    max-width: 560px;

    margin:
        0 auto;

    color: #66768a;

    line-height: 1.55;
}

.home-game-prize-image {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 100%;
    margin: 14px 0 16px;

    padding: 10px;

    border-radius: 14px;

    background: #f8fafc;

    overflow: hidden;
}

.home-game-prize-image img {
    display: block;

    width: 100%;
    max-width: 220px;
    height: 180px;

    object-fit: contain;

    border-radius: 10px;
}


/* ==========================================================
   RESPONSIVE COMMUNITY GAMES
   ========================================================== */

@media (max-width: 900px) {

    .home-games-grid {
        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );
    }
}

@media (max-width: 650px) {

    .home-section-heading {
        align-items: stretch;
        flex-direction: column;
    }

    .home-section-heading .btn {
        width: 100%;
    }

    .home-games-grid {
        grid-template-columns: 1fr;
    }
}

.home-games-title-line {
    flex-direction: column;

    gap: 10px;
}

.home-games-title-decoration {
    width: 72px;
    flex: none;
}

.home-games-title {
    flex-direction: column;

    gap: 8px;

    text-align: center;
}

.home-games-title h2 {
    font-size: 1.8rem;
}

.home-games-toolbar {
    align-items: stretch;
    flex-direction: column;

    gap: 12px;
}

.home-games-latest {
    text-align: center;
}

.home-games-all-btn {
    width: 100%;
}

/* ==========================================================
   LATEST WINNERS
   ========================================================== */

.home-winners-section {
    margin-top: 34px;
}

.home-winners-grid {
    display: grid;

    grid-template-columns:
        repeat(
            3,
            minmax(0, 1fr)
        );

    gap: 18px;
}

.home-winner-card {
    display: flex;

    min-height: 100%;
}

.home-winner-card .card-body {
    width: 100%;

    display: flex;
    flex-direction: column;

    padding: 24px;
}

.home-winner-position {
    display: inline-flex;
    align-items: center;

    align-self: flex-start;

    margin-bottom: 12px;

    padding: 6px 11px;

    border-radius: 999px;

    color: #8a5b00;
    background: #fff2d5;

    font-size: 0.74rem;
    font-weight: 900;

    text-transform: uppercase;
}

.home-winner-name {
    margin-bottom: 18px;

    color: #102b50;

    font-size: 1.35rem;
}

.home-winner-game,
.home-winner-prize,
.home-winner-date {
    display: flex;
    align-items: flex-start;

    gap: 8px;

    margin-bottom: 11px;

    color: #52667f;

    line-height: 1.45;
}

.home-winner-prize strong {
    color: #243c5a;
}

.home-winner-actions {
    margin-top: auto;

    padding-top: 14px;
}


/* ==========================================================
   EMPTY WINNERS
   ========================================================== */

.home-winners-empty {
    text-align: center;
}

.home-winners-empty .card-body {
    padding:
        34px
        24px;
}

.home-winners-empty-icon {
    margin-bottom: 10px;

    font-size: 2.4rem;
}

.home-winners-empty h3 {
    margin-bottom: 8px;

    color: #102b50;
}

.home-winners-empty p {
    max-width: 560px;

    margin:
        0 auto;

    color: #66768a;

    line-height: 1.55;
}


/* ==========================================================
   RESPONSIVE LATEST WINNERS
   ========================================================== */

@media (max-width: 900px) {

    .home-winners-grid {
        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );
    }
}

@media (max-width: 650px) {

    .home-winners-grid {
        grid-template-columns: 1fr;
    }

    .home-winner-card .card-body {
        padding: 20px;
    }
}

/* ==========================================================
   DONATE STICKER CARD
   ========================================================== */

.home-donation-card {
    overflow: hidden;

    background:
        linear-gradient(
            135deg,
            #ffffff 0%,
            #f5f9ff 100%
        );
}

.home-donation-card .card-body {
    position: relative;

    padding: 24px;
}

.home-donation-icon {
    width: 54px;
    height: 54px;

    display: flex;
    align-items: center;
    justify-content: center;

    margin-bottom: 16px;

    border-radius: 16px;

    background: #fff3d8;

    font-size: 1.7rem;
}

.home-donation-card .home-section-label {
    margin-bottom: 6px;
}

.home-donation-title {
    margin:
        0
        0
        10px;

    color: #102b50;

    font-size: 1.35rem;
    font-weight: 900;
}

.home-donation-description {
    margin:
        0
        0
        18px;

    color: #53667d;

    font-size: 0.9rem;

    line-height: 1.55;
}

.home-donation-button {
    width: 100%;

    min-height: 44px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding:
        11px
        16px;

    border: 0;
    border-radius: 999px;

    background: #0d63df;

    color: #ffffff;

    font-weight: 800;

    text-align: center;
}

.home-donation-button:hover {
    background: #0955c0;

    color: #ffffff;

    transform: translateY(-1px);
}


/* ==========================================================
   DONATE STICKER CARD - MOBILE
   ========================================================== */

@media (max-width: 575px) {

    .home-donation-card .card-body {
        padding: 20px;
    }

    .home-donation-icon {
        width: 48px;
        height: 48px;

        margin-bottom: 14px;

        font-size: 1.5rem;
    }

    .home-donation-title {
        font-size: 1.2rem;
    }

}

@media (min-width: 761px) and (max-width: 1050px) {

    .home-donation-card {
        grid-column:
            1 / -1;
    }

}