/* @group static-load
------------------------------------ */

.dynamic-load {
    min-height: 30vh;
}

.dynamic-load .loader {
    position: absolute;
    left: 50%;
    top: 50%;
    translate: -50% -50%;
}

.dynamic-load .load-more>* {
    pointer-events: none;
}

.dynamic-load[data-loaded="true"] .load-more {
    display: none !important;
    opacity: 0;
    pointer-events: none;
}

/* @end */




/* @group news-items STATE
------------------------------------ */

.dynamic-load :where(.items, .status, .loader, .notification, .load-more) {
    opacity: 0;
    pointer-events: none;
}

.dynamic-load[data-state="loaded-all"] :is(.items),
.dynamic-load[data-state="ready"] :is(.items, .load-more),
.dynamic-load[data-state="loading"] :is(.status, .loader),
.dynamic-load[data-state="empty"] :is(.status, .notification),
.dynamic-load[data-state="error"] :is(.status, .notification) {
    opacity: 1;
    pointer-events: all;
}



/* @end */

/* @group news-items
------------------------------------ */

.news-items {}

.news-items :is(h3, p) {
    text-wrap: balance;
}

.load-more {}

.news-items article {
    position: relative;
    min-height: 40vh;
}

.news-items .status {
    position: absolute;
    inset: 0;
}

.news-items .item .title {
    position: absolute;
    z-index: 1;
}

@media only screen and (min-width : 961px) {
    .news-items {
        padding-block: 8rem;
    }


    .news-items article {
        margin-top: 10rem;
    }

    .news-items h2 {
        padding-bottom: 7rem;
    }

    .news-items .items {
        gap: 6rem 12.5rem;
        max-width: 150.4rem;
    }

    .news-items .item {
        display: flex;
        flex-direction: column;
        gap: 4rem;
        align-items: flex-start;
    }

    .news-items .item figure {
        padding-left: 6.4rem;
        height: 23.5rem;
        margin: 0;
        margin-top: 9.5rem;
    }



    .news-items .bttn-wrapper {
        margin-top: 11rem;
        display: flex;
        justify-content: center;
    }
}

@media only screen and (min-width : 0) and (max-width : 960px) {

    .news-items {
        padding-block: 8rem;
    }

    .news-items .items {
        gap: 5rem;
    }

    .news-items header {
        margin-bottom: 7.5rem;
        text-align: center;
    }

    .news-items h2 {
        padding-bottom: 2rem;
    }

    .news-items .items h3 {
        max-width: 28.7rem;
        font-size: 4.7rem;
    }

    .news-items .item figure {
        margin-top: 7.7rem;
        padding-left: 4.5rem;
    }

    .news-items .item :is(.content, .bttn) {
        margin-left: 4.5rem;
    }

    .news-items .item .bttn {
        margin-top: 4rem;
    }

    .news-items .bttn-wrapper {
        text-align: center;
        margin-top: 5rem;
    }

}

/* @end */

/* ANIMATIONS */
.news-items :is(h2, p, .item) {
    opacity: 0;
    --duration: 1s;
}

.news-items:where(.animateActive) :is(h2, p, .item) {
    animation: fade var(--duration) forwards;
    animation-delay: var(--delay, 0);
}

.news-items:where(.animateActive) p {
    --delay: 0.5s;
}

.news-items:where(.animateActive) .item:nth-of-type(1) {
    --delay: 0.75s;
}

.news-items:where(.animateActive) .item:nth-of-type(2) {
    --delay: 1s;
}

.news-items:where(.animateActive) .item:nth-of-type(3) {
    --delay: 1.25s;
}

.news-items:where(.animateActive) .item:nth-of-type(4) {
    --delay: 1.5s;
}

.news-items:where(.animateActive) .item:nth-of-type(5) {
    --delay: 1.75s;
}

.news-items:where(.animateActive) .item:nth-of-type(n+6) {
    --delay: 2s;
}