/*** ---------- Block: Media ---------- ***/
.wpb-block--media .wpb-text { margin-bottom: 2rem; }

/*** ---------- Block: FAQ ---------- ***/
.wpb-block--faq { --gc: 1; }
.wpb-block--faq .container { display: grid; grid-template-columns: repeat(var(--gc), minmax(0, 1fr)); column-gap: 2rem;  }
/* .wpb-block--faq .container > .wpb-text { padding: 2.6rem 5rem;  } */
.wpb-block--faq .container > .wpb-text {position: relative;}
.wpb-block--faq .container > .wpb-text h2 { font-family: var(--font-secondary); line-height: 1.2;}
.wpb-block--faq .container > .wpb-text * { color: #FFF; }
.wpb-block--faq.wpb-bg-clr--transparent .container:not(.wpb-inner-clr--secondary) > .wpb-text * { color: var(--clr-text); }
.wpb-block--faq-primary .container, .wpb-block--faq-secondary .container { column-gap: 3.2rem; }

.wpb-block--faq.wpb-block--faq-secondary {overflow: hidden;}

.wpb-block--faq .container:has(.item--primary) > .wpb-text { background-color: var(--clr-primary); padding: 2.8rem 5.6rem;}
.wpb-block--faq .container:has(.item--primary) > .wpb-text h2 {font-family: var(--font-primary); font-size: 2rem; text-transform: uppercase; color: #FFF !important;}


@media (min-width: 992px) {
    .wpb-block--faq-primary, .wpb-block--faq-secondary { --gc: 2; align-items: start; }
    .wpb-block--faq-primary .container, .wpb-block--faq-secondary .container { column-gap: 6.4rem; }
    .wpb-block--faq-primary .container .wpb-accordion { order: -1; }

    .wpb-block--faq.wpb-block--faq-secondary .wpb-text.has-assets::after { content: ''; background: url(/app/themes/wuxnl-theme/assets/img/owl-styleelement.svg) no-repeat center bottom; background-size: contain;; height: 100%; width: 100%; pointer-events: none; position: absolute; bottom: -60%; left: 0; }
}


@media (min-width: 1200px) {
    .wpb-block--faq-primary .container, .wpb-block--faq-secondary .container { column-gap: 12.8rem; }
    .wpb-block--faq.wpb-block--faq-secondary .wpb-text.has-assets::after {bottom: -70%;}
}
@media (min-width: 1400px) {
    .wpb-block--faq.wpb-block--faq-secondary .wpb-text.has-assets::after {bottom: -60%;}
}
@media (min-width: 1600px) {
    .wpb-block--faq.wpb-block--faq-secondary .wpb-text.has-assets::after {bottom: -50%;}
}


/*** ---------- Block: Blurb ---------- ***/
.wpb-block--blurb .wpb-text { margin-bottom: 2rem; }
.wpb-block--blurb .wpb-card.wpb-card--blurb .wpb-card__header img { aspect-ratio: 16/9; object-fit: cover; }


/*** ---------- Block: Carousel ---------- ***/
.wpb-block--carousel.is-overflow-visible { overflow-x: clip; }
.wpb-block--carousel.is-overflow-visible .blaze-track-container { overflow: visible; }
.wpb-block--carousel .wpb-block__header .container .wpb-text { margin-bottom: 2rem; }
.wpb-block--carousel .wpb-image { position: relative; }
.wpb-block--carousel .wpb-image img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; }
.wpb-block--carousel .wpb-image::after { content: ''; display: block; width: 100%; padding-top: 75%; }


/*** ---------- Block: Header ---------- ***/
.wpb-header.wpb-header--search form { position: relative; }


.wpb-header .wpb-header__toolbar { display: flex; align-items: center; gap: 1.6rem; padding-bottom: 2.8rem; }
.wpb-header .wpb-header__toolbar .btn { white-space: nowrap; }
.wpb-header .wpb-header__toolbar .wpb-breadcrumbs { margin: 0; --excerpt-line-clamp: 1; display: -webkit-box; -webkit-line-clamp: var(--excerpt-line-clamp); -webkit-box-orient: vertical; overflow: hidden; }
.wpb-header .wpb-header__toolbar .wpb-breadcrumbs > span > span:not(.breadcrumb_last) { opacity: .65; }

.wpb-header--subpage {
    .container-fluid .wpb-image { min-height: 25rem; }
    .wpb-text { text-align: center; display: grid; place-items: center;
        * { max-width: 100rem; }
    }
}

@media(min-width: 992px) {
    .wpb-header--subpage .container-fluid .wpb-image { min-height: 56rem; }

}

/*** ---------- Block: Text media tabs ---------- ***/
.wpb-block--media-tabs .container > .wpb-text { margin-bottom: 2rem; }
.wpb-block--media-tabs .inner { gap: 3.2rem; align-items: center; }
.wpb-block--media-tabs .tab__images { display: grid; overflow: hidden; } 
.wpb-block--media-tabs .tab__images > figure { grid-row: 1/-1; grid-column: 1/-1; opacity: 0; transition: opacity var(--ts-15) ease; transition-delay: var(--ts-35); }
.wpb-block--media-tabs .tab__images figure.active { opacity: 1; transform: scale(1); }
.wpb-block--media-tabs .tab__images figure img { height: 100%; width: 100%; object-fit: contain; }
.wpb-block--media-tabs .tab__content { display: grid; position: relative; gap: 2rem; }
.wpb-block--media-tabs .tab__item { display: grid; align-items: center; }
.wpb-block--media-tabs .tab__item.has-icon { grid-template-columns: 6.4rem 1fr; -ms-grid-columns: 6.4rem 1fr; gap: 1.6rem; }
.wpb-block--media-tabs .tab__item .icon { background-color: var(--wpb-primary); border-radius: 50%; width: 6.4rem; height: 6.4rem; padding: 1.4rem; transition: box-shadow var(--ts-15) ease; }
.wpb-block--media-tabs .tab__item .icon img { width: 100%; height: 100%; object-fit: contain; }

@media (min-width: 992px) {
    .wpb-block--media-tabs .inner { gap: 8.2rem; }
}


/*** ---------- Block: Text & table ---------- ***/
.wpb-block--text-table .wpb-inner {position: relative; z-index: 2;}
.wpb-block--text-table .wpb-inner::after { content: ''; clip-path: polygon(0% 0%, 100% 0%, 50% 100%); width: 100%; height: 5vw; background: inherit; position: absolute; top: 99.9%; }
.wpb-block--text-table .images {display: flex; flex-wrap: wrap; }
.wpb-block--text-table .images .wpb-image {flex-basis: 18rem; flex-grow: 1; aspect-ratio: 1/1;}
.wpb-block--text-table .images .wpb-image img {width: 100%; height: 100%; object-fit: cover;}

.wpb-block--text-table .wpb-style-element { position: absolute; left: 50%; transform: translateX(-50%); z-index: 2; width: 26vw; max-width: 20rem;}

.wpb-block--text-table .wpb-inner .wpb-table {}
.wpb-block--text-table .wpb-inner .wpb-table .table__header {border-bottom: 1px solid #fff;}
.wpb-block--text-table .wpb-inner .wpb-table .table__header i {font-size: clamp(2.4rem, 3.2vw, 3.2rem);}
.wpb-block--text-table .wpb-inner .wpb-table .table_row.labels { font-weight: 600;}
.wpb-block--text-table .wpb-inner .wpb-table .table_row { display: grid; grid-template-columns: repeat(5, 1fr); font-weight: 300;}
.wpb-block--text-table .wpb-inner .wpb-table .table_row .destination {grid-column: span 2; padding-left: 0;}
.wpb-block--text-table .wpb-inner .wpb-table .table_row :is(span, i) {padding: 1.2rem 12%;}
.wpb-block--text-table .wpb-inner .wpb-table .table_row span:not(:first-child) { border-left: 1px solid #fff;}

/*** ---------- Block: Tabs ---------- ***/
.wpb-block--tabs .wpb-text { margin-bottom: 2rem; }


/*** ---------- Block: Footer afbeelding ---------- ***/
.wpb-block--footer-image .wpb-image {clip-path: polygon(50% 15%, 100% 0%, 100% 100%, 0% 100%, 0% 0%); max-height: 56rem; overflow: hidden; position: relative;}


/*** ---------- Block: Featured ---------- ***/
.wpb-block--featured .wpb-section__body { --gc: 1; }
.wpb-block--featured .wpb-section__body .container { display: grid; grid-template-columns: repeat(var(--gc), minmax(0, 1fr)); gap: 2rem; }
.wpb-block--featured .wpb-section__body li { list-style: none; }

@media (min-width: 768px) {
    .wpb-block--featured .wpb-section__body { --gc: 2; }
}

@media (min-width: 992px) {
    .wpb-block--featured .wpb-section__body { --gc: 3; }
}

@media (min-width: 1200px) {
    .wpb-block--featured .wpb-section__body { --gc: 4; }
}


/*** ---------- Block: Text Shortcode ---------- ***/
.wpb-block--text-shortcode .container { column-gap: 2rem; row-gap: 2rem; }

@media (min-width: 992px) {
    .wpb-block--text-shortcode .container { column-gap: 3.2rem; }
    .wpb-block--text-shortcode-primary .wpb-card { order: -1; }
}

@media (min-width: 1200px) {
    .wpb-block--text-shortcode .container { column-gap: 6.4rem; }
}

@media (min-width: 1200px) {
    .wpb-block--text-shortcode .container { column-gap: 9.8rem; }
}



/*** ---------- Block: Youtube embed ---------- ***/
.wpb-block--youtube .container { column-gap: 2rem; row-gap: 2rem; }
.wpb-block--youtube .wpb-ratio :is(iframe, img) { border-radius: .5rem; }
.wpb-block--youtube .wpb-ratio .youtube-play { position: absolute; top: 0; right: 0; bottom: 0; left: 0; z-index: 5; cursor: pointer; transition: opacity var(--ts-35) ease; }
.wpb-block--youtube .wpb-ratio .youtube-play img { object-fit: cover; width: 100%; height: 100%; }
.wpb-block--youtube .wpb-ratio .youtube-play .play-icon { position: absolute; top: calc(50% - 3.2rem); left: calc(50% - 3.2rem); display: grid; place-items: center; z-index: 2; background-color: var(--clr-primary); border-radius: 50%; width: 6.4rem; height: 6.4rem; transition: .25s ease; }
.wpb-block--youtube .wpb-ratio .youtube-play .play-icon i { color: rgb(255,255,255); }
.wpb-block--youtube .wpb-ratio:hover .youtube-play .play-icon { transform: scale(1.065); }

@media (min-width: 992px) {
    .wpb-block--youtube .container { column-gap: 3.2rem; }
    .wpb-block--youtube.wpb-block--youtube-primary .wpb-ratio { order: -1; }
}

@media (min-width: 1200px) {
    .wpb-block--youtube .container { column-gap: 6.4rem; }
}

@media (min-width: 1400px) {
    .wpb-block--youtube .container { column-gap: 9.8rem; }
}


/*** ---------- Block: Text en maps ---------- ***/
.wpb-block--maps .wpb-text{ max-width: 100.5rem; }
.wpb-block--maps .container.align-center{ display: flex; flex-direction: column; justify-content: center; gap: 4.2rem; }
.wpb-map{ width: 100%; height: 59.4rem; }
.wpb-map > *{ height: 100%; object-fit: cover; }


/*** ---------- Block: Text media ---------- ***/
.wpb-block--text-media { --image-size: 52rem;
    .wpb-image {position: relative; }
    .wpb-image img { border-radius: 50%; width: var(--image-size); height: auto; max-width: 100%; object-fit: cover; margin: auto; aspect-ratio: 1/1; }
    .wpb-label { position: absolute; bottom: 0; right: 0; width: 15rem; height: 15rem; border-radius: 50%; background-color: var(--clr-primary); display: flex; flex-direction: column; justify-content: center; text-align: center; color: #FFF; text-decoration: none; padding: 2.2rem;
        transform: rotate(4deg); transition: transform 250ms ease;
        &:hover { transform: scale(1.05);}
        .label-title {font-size: clamp(1.8rem, 3.2vw, 3rem); font-weight: 600; text-transform: uppercase;}
        .label-subtitle {font-size: clamp(1.6rem, 2.8vw, 2.2rem);}
    }
}

@media(min-width: 768px) {
    .wpb-block--text-media { --image-size: 40rem; 
        .wpb-label { width: 25rem; height: 25rem; padding: 3.4rem; }
    }
}

@media(min-width: 1200px) {
    .wpb-block--text-media .row { --inline-spacing: 6rem; }
}

@media(min-width: 1400px) {
    .wpb-block--text-media { --image-size: 62rem; }

}

/*** ---------- Block: Text image ---------- ***/
.wpb-block--text-image { position: relative; }
.wpb-block--text-image .inner { position: relative; display: flex; justify-content: end; align-items: center; z-index: 2; }
.wpb-block--text-image .inner .wpb-text { max-width: 55rem; }
.wpb-block--text-image .inner .wpb-text *:not(.btn) { color: #FFF; }
.wpb-block--text-image .is-background-image::after {  content: ''; width: 100%; height: 100%; position: absolute; transform: rotate(180deg); top: 0; right: 0; bottom: 0; background: linear-gradient(270deg, rgba(156, 171, 176, 0) -15.46%, var(--clr-gray) 62.17%); z-index: 1; }
.wpb-block--text-image .container .inner { min-height: 40rem; }
@media(min-width: 992px) {
    .wpb-block--text-image .is-background-image::after {  content: ''; width: 80%; height: 100%; position: absolute; transform: rotate(180deg); background: linear-gradient(270deg, rgba(156, 171, 176, 0) 11.54%, var(--clr-gray) 83.17%); }
}

@media(min-width: 1200px) {
    .wpb-block--text-image .container .inner { min-height: 68rem; }
}
/*** ---------- Block: Impression ---------- ***/
.wpb-block--impression { --inner-p: 4rem 0; --inner-gap: 0; overflow: hidden;
    .wpb-block__inner { position: relative; 
        .container { display: grid; grid-template-columns: repeat(var(--gc, 1), minmax(0,1fr)); position: relative; gap: var(--inner-gap); 
            .wpb-text { padding: var(--inner-p); }
        }
        .wpb-image img {aspect-ratio: 16 / 9; object-fit: cover;}
    }
}

@media(min-width: 992px) {
    .wpb-block--impression { --inner-p: 8rem 0; --inner-gap: 4.8rem;
        .wpb-block__inner { 
            .container { --gc: 2; position: relative; }
            .wpb-iframe, .wpb-image { position: absolute; top: 0; left: 0; right: 0; bottom: 0; margin-left: auto; width: 50%; height: 100%; 
                iframe { height: 100%; }
                img { height: 100%; object-fit: cover; }
            }   
        }
        .wpb-align-left {
            .wpb-text { grid-column: 2; }
            .wpb-iframe, .wpb-image { margin-left: 0; margin-right: auto; margin-left: 0; }
        }
    }
}

@media(min-width: 1200px) {
    .wpb-block--impression { --inner-p: 12rem 0; --inner-gap: 6.4rem; }
}


@media(min-width: 1600px) {
    .wpb-block--impression { --inner-p: 16rem 0 14.4rem 0; --inner-gap: 21rem;}
}

/*** ---------- Block: Schedule ---------- ***/
.wpb-block--schedule .row { row-gap: 4.8rem; }
.wpb-block--schedule .wpb-schedule { overflow-y: hidden; overflow-x: scroll;}
.wpb-block--schedule .wpb-schedule .inner { display: flex; position: relative; min-height: 300px; width: 100%; min-width: 140rem; align-items: center; padding: 4rem 0; }
.wpb-block--schedule .wpb-schedule .inner::before { content: ""; position: absolute; top: calc(50% - 1px); left: 1.6rem; right: 1.6rem; width: 100%; height: 2px; background: repeating-linear-gradient(90deg, currentColor 0, currentColor 8px, transparent 8px, transparent 16px); z-index: 0; }
.wpb-block--schedule .wpb-timeline-markers { display: flex; position: absolute; left: 0; right: 0; top: 0; height: 50%; }
.wpb-block--schedule .wpb-timeline-marker { position: absolute; bottom: 0; display: flex; flex-direction: column; align-items: center; transform: translateX(-1px); }
.wpb-block--schedule .wpb-timeline-marker__year { margin-bottom: 12px; white-space: nowrap; }
.wpb-block--schedule .wpb-timeline-marker__line { width: 2px; height: 3.6rem; background: repeating-linear-gradient(0deg, currentColor 0, currentColor 4px, transparent 4px, transparent 8px); }
.wpb-block--schedule .wpb-schedule-items { display: flex; position: relative; width: 100%; align-items: center; z-index: 1; }
.wpb-block--schedule .wpb-card--schedule-item { position: absolute; top: -5rem; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: 1rem; }
.wpb-block--schedule .wpb-card--schedule-item .wpb-card__header { margin-bottom: -50%; }
.wpb-block--schedule .wpb-card--schedule-item .wpb-card__body { margin-top: 50%; padding-top: 1rem; }

.wpb-block--schedule .wpb-schedule .inner .wpb-image { background-color: #FFF; padding: 0 0.6rem; }


@media(min-width: 992px) {
    .wpb-block--schedule .wpb-schedule { overflow-x: visible; }
}

/*** --------- Block: Image and legend ---------- ***/
.wpb-block--image-legend .wpb-image { margin-left: calc(-1 * var(--inline-spacing)); margin-right: calc(-1 * var(--inline-spacing)); }
.wpb-block--image-legend .col { --inline-spacing: 0; height: 100%;}
.wpb-block--image-legend .row { row-gap: 0; }
.wpb-block--image-legend .inner { padding: 3rem 2rem; height: 100%; }

@media(min-width: 992px) {
    .wpb-block--image-legend .inner { padding: 8rem 4rem; }
}

@media(min-width: 1400px) {
    .wpb-block--image-legend .inner { padding: 8rem;}   
}

/*** ---------- Block: Map ---------- ***/
.wpb-block--map .row > * { position: relative; }
.wpb-block--map .col--12 { position: relative; }
.wpb-block--map .overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; width: 100%; height: 100%; background-color: rgba(255, 255, 255, 0.2);}
.wpb-block--map .overlay svg { position: relative; width: 100%; height: 100%; object-fit: contain; }
.wpb-block--map .cls-1, .wpb-block--map .cls-2, .wpb-block--map .cls-3 { fill: transparent; transition: fill 200ms ease; cursor: pointer;stroke: #FFF; stroke-miterlimit: 10; stroke-width: 3.36px;}

.wpb-block--map .el-1.is-active, .wpb-block--map .el-2.is-active { fill: transparent !important; }

.wpb-block--map .popup { position: absolute; bottom: 4.4rem; right: 4.4rem; z-index: 999; pointer-events: none; }
.wpb-block--map .popup-item { background: #fff;  padding: 4rem; box-shadow: 0 4px 12px rgba(0,0,0,0.15);  max-width: 47rem;  pointer-events: auto;  z-index: 1000;  opacity: 0; transform: translateY(10px) scale(0.95); transition: opacity 0.3s ease, transform 0.3s ease;}
.wpb-block--map .popup-item[style*="block"] { opacity: 1; transform: translateY(0) scale(1); }
.wpb-block--map .popup-item .wpb-text p { font-size: 1.4rem; }
.wpb-block--map .popup-item .wpb-text .btn { margin-top: 2rem; font-size: 1.4rem; }
.wpb-block--map .popup-item .wpb-text em { font-size: 3rem; }

.wpb-block--map .popup-close { border: none; position: absolute; top: 4rem; right: 4rem; background: none; font-size: 2.4rem; cursor: pointer; color: #000; width: 2.4rem; height: 2.4rem; display: flex; align-items: center; justify-content: center; border-radius: 50%; transition: background-color 0.2s ease; }
.wpb-block--map .popup-close:hover { background-color: #f0f0f0; color: #333; }

@media (max-width: 767.98px) {
    .wpb-block--map .popup { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: transparent; display: flex; align-items: center; justify-content: center; padding: 2rem; transform: none; z-index: 1000; pointer-events: none; transition: background-color 0.3s ease, opacity 0.3s ease; visibility: hidden; opacity: 0; }
    .wpb-block--map .popup.is-visible { background: rgba(0, 0, 0, 0.5); pointer-events: auto; visibility: visible; opacity: 1; }
    .wpb-block--map .popup-item { background: white;  box-shadow: 0 10px 30px rgba(0,0,0,0.3); max-width: 90vw; max-height: 80vh; overflow-y: auto; margin: 0; position: relative; pointer-events: auto; animation: modalSlideIn 0.3s ease-out; }
}

@keyframes modalSlideIn { from { opacity: 0; transform: translateY(30px) scale(0.95); } to { opacity: 1; transform: translateY(0) scale(1); } }


/*** ---------- Block: Text, Map & Image  ---------- ***/
.wpb-block--text-map-image { position: relative; overflow-x: clip; }
.wpb-block--text-map-image .container .row { --inline-spacing: 4rem; min-height: 43.4rem; }
.wpb-block--text-map-image .wpb-map { max-height: 30rem; max-width: fit-content; }
.wpb-block--text-map-image .wpb-image { height: 100%; } 
.wpb-block--text-map-image .wpb-image img { object-fit: contain; height: 100%; }
.wpb-block--text-map-image .container { padding-top: 4rem; padding-bottom: 4rem; }

@media(min-width: 992px) {
    .wpb-block--text-map-image .container .row { --inline-spacing: 6rem; }
}

/***---------- Block: Images ---------- ***/
.wpb-block--images { position: relative; 
    & .row { --inline-spacing: 0; gap: 0; }
}
