.wpb-block {
    &.wpb-columns--1,
    &.wpb-columns--2,
    &.wpb-columns--3,
    &.wpb-columns--4,
    &.wpb-columns--5,
    &.wpb-columns--6 { --grid-columns: 1; }

    @media (min-width: 768px) {
        &.wpb-columns--2,
        &.wpb-columns--3,
        &.wpb-columns--4,
        &.wpb-columns--5,
        &.wpb-columns--6 { --grid-columns: 2; }
    }

    @media (min-width: 992px) {
        &.wpb-columns--3 { --grid-columns: 3; }
    }

    @media (min-width: 1200px) {
        &.wpb-columns--4 { --grid-columns: 4; }
        &.wpb-columns--5 { --grid-columns: 5; }
        &.wpb-columns--6 { --grid-columns: 6; }
    }

}

/*** ---------- Kolomindeling (ACF 'column_layout') ---------- ***/
[class*="wpb-cols--"] {
    .wpb-row { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2rem; }
    .wpb-row > .wpb-col--full { grid-column: 1 / -1; }

    @media (min-width: 768px) {
        &.wpb-cols--50-50 .wpb-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
        &.wpb-cols--33-66 .wpb-row { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }
        &.wpb-cols--66-33 .wpb-row { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
        &.wpb-cols--40-60 .wpb-row { grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); }
        &.wpb-cols--60-40 .wpb-row { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); }
        &.wpb-cols--25-75 .wpb-row { grid-template-columns: minmax(0, 1fr) minmax(0, 3fr); }
        &.wpb-cols--75-25 .wpb-row { grid-template-columns: minmax(0, 3fr) minmax(0, 1fr); }

        /* Media links: wisselt de kolommen om, de breedtes blijven staan. */
        &.wpb-cols--reverse .wpb-row > *:first-child { order: 1; }
    }

    @media (min-width: 992px) {
        .wpb-row { column-gap: 4.8rem; }
    }
}

/*** ---------- Block: Header home --------- ***/
.wpb-header.wpb-header--home { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.6rem; padding-block: 1.6rem; margin-bottom: 3.2rem; background-color: #fff;
    .wpb-header__body {
        .container { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
        
        .wpb-card { background-color: var(--clr-dark); 
            .wpb-card__header img { transition: transform var(--ts-35) ease; border-radius: var(--border-radius); }
            .wpb-card__body { display: flex; flex-direction: column; justify-content: space-between; align-items: start; 
                > p { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;}
            }
            .btn::after { content: ''; position: absolute; top: 0; right: 0; bottom: 0; left: 0; }
            &:hover .wpb-card__header img { transform: scale(1.2); }
            &:nth-child(1), &:nth-child(2) { grid-column: span 2; justify-content: end;
                .wpb-card__body { padding: 0; }
            }
            &:nth-child(3), &:nth-child(4) {
                .wpb-card__body { padding: 0;
                    h3 { --fs: clamp(1.5rem, 2.5vw, 2rem); }
                    > p { display: none; }
                }
            }
        }
    }

    .wpb-usps { font-size: 1.3rem; display: grid; grid-template-columns: minmax(0, 1fr); white-space: inherit; row-gap: 1rem; 
        li + li { margin-left: 0; }
    }

    @media (min-width: 768px) {
        padding-top: 4.8rem; margin-bottom: 4.8rem;

    }

    @media (min-width: 992px) {
        margin-bottom: 6.4rem; padding-bottom: 3.2rem; gap: 3.2rem;
        .wpb-header__body {
            .container { grid-template-columns: repeat(4, minmax(0, 1fr)) minmax(0, 35rem); column-gap: 1.8rem; row-gap: 1.2rem; }

            .wpb-card {
                .wpb-card__body {justify-content: end;}
                &:nth-child(1), &:nth-child(2) {grid-row: span 2; }
            }
        }

        .wpb-usps { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 2.8rem; }
    }

    @media (min-width: 1200px) { 
        .wpb-usps { padding-left: 3.2rem; padding-right: 3.2rem; grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: 3.2rem; }
    }

    @media (min-width: 1400px) {
        .wpb-usps { padding-left: 4.8rem; padding-right: 4.8rem; column-gap: 4.8rem; }
    }
}

/*** ---------- Block: Product categories --------- ***/
.wpb-block--product-categories {
    .wpb-block__header { padding-bottom: 1.6rem; }
    .wpb-block__body { overflow: hidden;
        .container { display: grid; grid-template-columns: repeat(var(--gc, 2), minmax(0, 1fr)); gap: var(--gap, .8rem); }
    }

    &.blaze-slider { --mask-offset: 2.4rem;
        .wpb-block__body { mask-image: linear-gradient(to right, transparent 0%, rgba(0,0,0,1) var(--mask-offset), rgba(0,0,0,1) calc(100% - var(--mask-offset)), rgba(0,0,0,0) 100%); -webkit-mask-image: linear-gradient(to right, transparent 0%, rgba(0,0,0,1) var(--mask-offset), rgba(0,0,0,1) calc(100% - var(--mask-offset)), rgba(0,0,0,0) 100%);
            .container { display: block; }
        }
        .blaze-track { --slides-to-show: 1.1!important; }
    
        &.start, &.static {
            .blaze-nav-container {
                .blaze-prev { --bg-color: transparent; --border: 1px solid var(--clr-border); --focus-bg-color: transparent; opacity: .5; pointer-events: none; }
            }
        }

        &.end, &.static {
            .blaze-nav-container {
                .blaze-next { --bg-color: transparent; --border: 1px solid var(--clr-border); --focus-bg-color: transparent; opacity: .5; pointer-events: none; }
            }
        }

        .blaze-track-container { overflow: visible; }
    }

    @media (max-width: 767.98px) {
        &.blaze-slider { 
            .blaze-nav-container .btn { --padding: 0; width: var(--button-mh); justify-content: center;
                .btn__text { display: none; }
            }
        }
    }

    @media (min-width: 768px) {
        --gap: 1.6rem;

        &.wpb-columns--3,
        &.wpb-columns--4 { --gc: 3; }

        .wpb-block__header { padding-bottom: 3.2rem; }

        &.blaze-slider {
            .blaze-track { --slides-to-show: 2!important; }
        }
    }

    @media (min-width: 992px) {
        --gap: 2.4rem;

        &.wpb-columns--4 { --gc: 4; }

        .wpb-block__header { padding-bottom: 4.4rem; }

        &.blaze-slider {
            .blaze-track { --slides-to-show: 3!important; }
        }
    }

    @media (min-width: 1200px) {
        &.blaze-slider { --mask-offset: 6.4rem;
            .blaze-track { --slides-to-show: 4!important; }
        }
    }

    @media (min-width: 1400px) {
        &.blaze-slider { --mask-offset: 14rem; }
    }

    @media (min-width: 1600px) {
        &.blaze-slider { --mask-offset: 24rem; }
    }
}

/*** ---------- Block: Text media --------- ***/
.wpb-block--text-media {
    .wpb-block__title { padding-bottom: 1.6rem; }

    @media (min-width: 768px) {
        .wpb-block__title { padding-bottom: 3.2rem; }
    }

    @media (min-width: 992px) {
        .wpb-block__title { padding-bottom: 4.4rem; 
            .wpb-text { max-width: 50%; }
        }
    }
}

/*** ---------- Block: Featured ---------- ***/
.wpb-block--featured {
    .wpb-block__header { padding-bottom: 2.8rem; }
    .wpb-block__body { --gc: 1; --gap: 0 3.2rem; 
        .container { display: grid; grid-template-columns: repeat(var(--gc), minmax(0, 1fr)); gap: var(--gap); }
    }
    .wpb-block__footer {padding-top: 2.4rem;}

    .wpb-card {
        &:nth-child(1) .card-title { --fs: clamp(1.8rem, 2.5vw, 2.8rem); }
        
        &.wpb-card--article-secondary { border-top: 1px solid var(--clr-border); border-bottom: 1px solid var(--clr-border); padding-block: 2rem;
            + .wpb-card.wpb-card--article-secondary { border-top: 0; }
        }

        &.wpb-card--article { min-height: 25rem; margin-top: 1.8rem; }
        &.wpb-card--article-tertiary + .wpb-card--article-secondary { margin-top: 2.4rem; }  
    }

    @media(min-width: 768px) {
        .wpb-block__header { padding-bottom: 3.2rem; }
        .wpb-block__body { --gc: 2; --gap: 0 3.2rem; }

        .wpb-card {
            &:nth-child(1) { grid-row: span 3; 
                .wpb-card__header { flex-grow: 1; position: relative; min-height: 36rem;
                    img { position: absolute; top: 0; right: 0; bottom: 0; left: 0; width: 100%; height: 100%; }
                }
                .wpb-card__body { flex-grow: 0; }
            }

            &.wpb-card--article { margin-top: 4.8rem; min-height: 30rem; 
                .wpb-card__body { padding: 3.2rem; }
            }
        }
    } 
    
    @media(min-width: 1200px) { 
        .wpb-block__body { --gap: 0 4.8rem; }

        .wpb-card {
            &.wpb-card--article-secondary { padding-block: 2.9rem; }

            &.wpb-card--article { margin-top: 6.4rem; min-height: 40rem;
                .wpb-card__body { padding: 4rem; }
            }
        }
    }
}

/*** TEXT & CATEGORIES ***/
.wpb-block--lp-text-categories {
    .wpb-block__body .container { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.6rem;
        > div {order: 5;}
    }

    .block-content {background-color: var(--clr-light); padding: 4rem; border-radius: 1.2rem; display: flex; flex-direction: column; justify-content: center;}

    .block-categories { display: flex; gap: .8rem;
        .category-card {display: grid; width: 100%; grid-template-rows: 20rem auto; text-decoration: none; background-color: #fff; border: 1px solid var(--clr-border); border-radius: 1.2rem; overflow: hidden; transition: border .12s ease;
            &:hover {border-color: var(--clr-blue);}
            .category-card-body {padding: 2rem; display: flex; row-gap: 1rem; justify-content: space-between; flex-direction: column;
                *:not(h1, h2, h3, h4, h5, h6) {font-size: 1.4rem;}
                *:is(h1, h2, h3, h4, h5, h6) {font-size: clamp(1.5rem, 3vw, 1.8rem);}
                *:is(h1, h2, h3, h4, h5, h6) * {font: inherit;}
                > * + * {margin-top: .5rem;}
            }
            > img {object-fit: cover; height: 100%; border-bottom: 1px solid var(--clr-border);}
        }
    }

    @media (max-width: 1200px) {
        .wpb-block__body .container { display: flex; flex-direction: column; }
        .block-image {order: 0;}
    }
    
    @media (max-width: 768px) {
        .wpb-block__body .container { gap: 1.2rem; }
        .block-content {padding: 2rem;}
        .block-categories {display: flex; flex-direction: column;
            .category-card {grid-template-rows: 16rem auto;
                > img {object-fit: contain;}
            }
        }
    }
}

/*** FAQ ***/
.wpb-block--lp-faq {
    .wpb-block__header { padding-bottom: 2.8rem; }

    .wpb-block__inner { --p: 1.8rem 1.4rem; --color: var(--clr-contrast-blue); background-color: var(--clr-light); padding: var(--p); border-radius: .8rem; }

    .wpb-accordion { --bg-color: #FFFF; --gap: .8rem; background-color: transparent; height: fit-content; display: flex; flex-wrap: wrap; gap: var(--gap);
        .wpb-icon-wrapper.wpb-icon-wrapper--outline{ border: 1px solid var(--color);
            i { color: var(--clr-contrast-blue); }
        }

        .accordion__item { background-color: #FFFF; border-radius: .5rem; overflow: hidden;
            .accordion__button { background-color: var(--bg-color); transition-duration: var(--ts-50); 
                span { font-size: clamp(1.4rem, 1.5vw, 1.6rem); color: var(--color); font-weight: 600; line-height: 1.2; }
            }
            .accordion__body{ border-top: 1px solid rgba(var(--clr-border-rgb), .5); padding-top: 1.8rem; 
            }
        }
        > .accordion__item + .accordion__item{ border: none; }
        > * { width: 100%; }
    }

    @media (min-width: 768px) {
        .wpb-block__inner { --p: 2.4rem; }
    }
    
    @media (min-width: 992px) {
        .wpb-block__header { padding-bottom: 3.2rem; }

        &.wpb-block--lp-faq--100 {
            .container { max-width: 90rem; }
        }
        &.wpb-block--lp-faq--50-50 {
            .wpb-accordion {
                > * { width: calc(50% - (var(--gap) / 2)); }
                .accordion__item{ height: fit-content; }
            }
        }
    }
        
    @media (min-width: 1200px) {
        .wpb-block__inner { --p: 2.8rem 3.2rem; }
    }
}
