.front-page .banner {
    position: relative;
    overflow: hidden;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.front-page .banner::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to right,
        color-mix(in srgb, var(--color-primary-background) 90%, transparent),
        color-mix(in srgb, var(--color-primary-background) 70%, transparent),
        color-mix(in srgb, var(--color-primary-background) 30%, transparent),
        color-mix(in srgb, var(--color-primary-background) 10%, transparent)
    );
    z-index: 1;
    pointer-events: none;
}

.front-page .banner .wrapper {
    position: relative;
    z-index: 2;
}

.front-page .banner .content {
    display: flex;
    flex-direction: column;
    gap: var(--space-xl);
}

.front-page .banner .content h1 {
    width: 100%;
    max-width: 330px;
    font-size: var(--font-xxxl);
    font-weight: 700;
    color: var(--color-white);
}

.front-page .banner .content p {
    width: 100%;
    max-width: 330px;
    font-size: var(--font-sm);
    font-weight: 500;
    line-height: 1.6;
    color: var(--color-white-gray);
}

.front-page .banner .image img {
    width: 100%;
}

.front-page .posts .featured {
    display: flex;
    gap: var(--space-xl);
}

.front-page .posts .featured .left {
    flex: 1;
}

.front-page .posts .featured .left article {
    max-height: 600px;
}

.front-page .posts .featured .right {    
    display: flex;
    flex-direction: column;
    gap: var(--space-xl);
    flex: 1;
}

.front-page .posts .featured .right article {
    max-height: 290px;
}

.front-page .featured .left .post-card,
.front-page .featured .left .post-card .thumb,
.front-page .featured .left .post-card .image {
    height: 100%;
}

.front-page .posts .grid {
    display: flex;
    gap: var(--space-xl);
}

.front-page .posts .grid .post-card {
    width: 100%;
}

.front-page .icons .wrapper {
    flex-direction: row;
    gap: calc(var(--space-xl) * 2);
}

.front-page .icons {
    background-color: var(--color-primary-dark);
}

.front-page .icons .icon-card {
    flex: 1 1 calc(50% - var(--space-xl) * 2);
}

@media (max-width: 1024px) {
    .front-page .posts .grid {
        flex-wrap: wrap;
    }

    .front-page .posts .grid .post-card {
        width: calc(50% - var(--space-xl) / 2);
    }

    .front-page .icons .wrapper {
        flex-wrap: wrap;
    }

    .front-page .icon-card {
        width: calc(50% - var(--space-xl));
    }
}

@media (max-width: 768px) {
    .front-page .banner::before {
        background: linear-gradient(
            to right,
            color-mix(in srgb, var(--color-primary-background) 90%, transparent),
            color-mix(in srgb, var(--color-primary-background) 70%, transparent),
            color-mix(in srgb, var(--color-primary-background) 50%, transparent),
            color-mix(in srgb, var(--color-primary-background) 10%, transparent)
        );
    }

    .front-page .banner .content {
        gap: var(--space-lg);
    }

    .front-page .banner .content h1 {
        max-width: 320px;
        font-size: var(--font-xxl);
    }

    .front-page .posts .featured {
        flex-direction: column;
        gap: var(--space-lg);
    }

    .front-page .posts .featured .right {
        gap: var(--space-lg);
    }

    .front-page .posts .featured .left,
    .front-page .posts .featured .right {
        flex: unset;
        width: 100%;
    }

    .front-page .featured .left .post-card,
    .front-page .featured .left .post-card .thumb,
    .front-page .featured .left .post-card .image {
        height: 280px;
    }

    .front-page .posts .grid {
        gap: var(--space-lg);
    }

    .front-page .icons .wrapper {
        gap: calc(var(--space-lg) * 2);
    }
}

@media (max-width: 480px) {
    .front-page .posts .grid .post-card {
        width: 100%;
    }

    .front-page .posts .grid {
        flex-wrap: wrap;
    }

    .front-page .icons .icon-card {
        width: 100%;
        flex: 1 1 100%;
        padding-bottom: calc(var(--space-lg) * 2);
        border-bottom: 1px solid color-mix(in srgb, var(--color-background) 10%, transparent);
    }

    .front-page .icons .icon-card:last-child {
        border-bottom: none;
        padding-bottom: 0;
    }
}
