.numbered-grid-section {
    position: relative;
}

.numbered-grid-wrapper {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    width: 100%;
}

.numbered-grid-cell {
    display: flex;
    flex-direction: column;
    transition: background-color 0.3s ease;
    border-right: 1px solid var(--border-color);
    border-bottom: 1px solid var(--border-color);
    min-height: 15rem;
}

.numbered-grid-cell:nth-child(3n) {
    border-right: none;
}

.numbered-grid-cell:hover {
    background-color: var(--border-color);
}

.numbered-grid-content {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
    height: 100%;
    padding: 2.5rem var(--container-space);
}

.numbered-grid-num,
.numbered-grid-desc {
    line-height: 140%;
}

.numbered-grid-more-plus {
    display: none;
}

.numbered-grid-headline {
    font-size: 1.75rem;
}

@media (max-width: 1300px) {
    .numbered-grid-content {
        grid-template-columns: repeat(3, 1fr);
    }

    .numbered-grid-desc {
        grid-column: span 2;
    }
}

@media (max-width: 992px) {
    .numbered-grid-content {
        display: flex;
        flex-direction: column;
        gap: 2rem;
    }

    .numbered-grid-desc {
        grid-column: span 1;
    }

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

    .numbered-grid-cell:nth-child(3n) {
        border-right: 1px solid var(--border-color);
    }

    .numbered-grid-cell:nth-child(2n) {
        border-right: none;
    }
}

@media (max-width: 768px) {
    .numbered-grid-wrapper {
        grid-template-columns: 1fr;
    }

    .numbered-grid-cell,
    .numbered-grid-cell:nth-child(3n) {
        border-right: none;
    }

    .numbered-grid-cell {
        min-height: auto;
    }

    .numbered-grid-cell.mobile-hidden {
        display: none;
    }

    .numbered-grid-wrapper.expanded .numbered-grid-cell.mobile-hidden {
        display: flex;
        animation: fadeIn 0.5s ease;
    }

    .numbered-grid-more-plus {
        position: relative;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        height: 3.5rem;
        border-bottom: 1px solid var(--border-color);
        border-top: none;
        cursor: pointer;
        margin-top: 0;
        transition: background-color 0.3s;
    }

    .numbered-grid-more-plus div {
        position: absolute;
        width: 1.5rem;
        height: 1px;
        background-color: #fff;
        transition: transform 0.3s ease;
    }

    .numbered-grid-more-plus div:nth-child(2) {
        transform: rotate(90deg);
    }

    .numbered-grid-more-plus.open div:nth-child(2) {
        transform: rotate(0deg);
    }
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}