/*** Basic style v1 ***/

/*** ---------- Global ---------- ***/
:root { --ts-100: 1000ms; --ts-95: 950ms; --ts-90: 900ms; --ts-85: 850ms; --ts-80: 800ms; --ts-75: 750ms; --ts-70: 700ms; --ts-65: 650ms; --ts-60: 600ms; --ts-55: 550ms; --ts-50: 500ms; --ts-45: 450ms; --ts-40: 400ms; --ts-35: 350ms; --ts-30: 300ms; --ts-25: 250ms; --ts-20: 200ms; --ts-15: 150ms; --ts-10: 100ms; }

/*** Disable animations & transitions ***/
@media (prefers-reduced-motion) {
    *, *::before, *::after { transition: 0s; animation: none; }
    :root { --ts-100: 0; --ts-95: 0; --ts-90: 0; --ts-85: 0; --ts-80: 0; --ts-75: 0; --ts-70: 0; --ts-65: 0; --ts-60: 0; --ts-55: 0; --ts-50: 0; --ts-45: 0; --ts-40: 0; --ts-35: 0; --ts-30: 0; --ts-25: 0; --ts-20: 0; --ts-15: 0; }
}

*, *::before, *::after { -moz-osx-font-smoothing: grayscale; -webkit-font-smoothing: antialiased; box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 10px; height: -webkit-fill-available; scroll-behavior: smooth; }
body { font-size: var(--fs); line-height: var(--lh); color: var(--clr-text); min-height: 100dvh; min-height: -webkit-fill-available; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column;
    &.--no-scroll { overflow: hidden; }
}
.wpb-pagewrapper { -webkit-box-flex: 1; -ms-flex-positive: 1; flex-grow: 1; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; }

/*** ---------- Main ---------- ***/
.wpb-main { display: flex; flex-direction: column; }

/*** ---------- Skip link ---------- ***/
.wpb-skip-link { position: fixed; top: 1.6rem; left: 1.6rem; z-index: 10000; padding: 1.2rem 2rem; background-color: var(--clr-primary); color: #fff; text-decoration: none; transform: translateY(-200%);
    &:focus { transform: none; }
}

/*** ---------- Accordion ---------- ***/
.wpb-accordion { --br: 1rem; --p: 0 2rem; --bg: #fff; --active-bg: var(--clr-primary-20); --active-clr: var(--clr-primary); --body-p: 2rem;
    .collapse:not(.show) { display: none; }
}
.accordion__item { color: var(--clr); border: .1rem solid var(--clr-border);
    &:first-of-type { border-top-left-radius: var(--br); border-top-right-radius: var(--br); }
    &:last-of-type { border-bottom-left-radius: var(--br); border-bottom-right-radius: var(--br); }
    &:not(:first-of-type) { border-top: 0; }
    .accordion__header { --fs: 1.8rem; margin: 0; }
    .accordion__button { min-height: 5.3rem; cursor: pointer; display: flex; column-gap: .8rem; align-items: center; width: 100%; font-size: 1.6rem; text-align: left; padding: var(--p); background-color: var(--bg); border: 0; overflow-anchor: none; border-radius: 0; transition: background-color var(--global-transition-duration) ease-in-out, color var(--global-transition-duration) ease-in-out, border-radius var(--global-transition-duration) ease-in-out;
        span { color: inherit; transition: color var(--global-transition-duration) ease-in-out; }
    }
    &:first-of-type .accordion__button { border-top-left-radius: var(--br); border-top-right-radius: var(--br); }
    &:last-of-type .accordion__button { border-bottom-left-radius: var(--br); border-bottom-right-radius: var(--br); }
    .accordion__button {
        i { --w: 1.4rem; --h: 1.4rem; margin: auto; transition: transform var(--ts-25) ease; }
        &.is-active { color: var(--active-clr); background-color: var(--active-bg); border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
        &.is-active i { transform: rotate(-180deg); }
    }
    .accordion__body { background-color: #fff; padding-bottom: var(--body-p); }
    &:last-of-type .accordion__body { border-bottom-left-radius: var(--br); border-bottom-right-radius: var(--br); }
    .collapse:not(.show) { display: none; }
    .collapsing { height: 0; overflow: hidden; transition: height .35s ease; }
}

/*** ---------- Images ---------- ***/
.wpb-image { --br: .5rem;
    img { border-radius: var(--br); }
    figcaption { display: block; padding-top: .5rem; font-size: 1.4rem; }
}
img { display: block; width: 100%; height: auto; }

/*** ---------- Containers ---------- ***/
.container, .container-fluid { --wpb-width: var(--container-width); --p: 1.8rem; width: 100%; max-width: var(--wpb-width); margin-left: auto; margin-right: auto; padding-left: var(--p); padding-right: var(--p); position: relative; }

@media (min-width: 576px) {
    body { --wp--style--global--content-size: var(--container-width--sm); }
    .container { --wpb-width: var(--container-width--sm); }
}

@media (min-width: 768px) {
    body { --wp--style--global--content-size: var(--container-width--md); }
    .container { --wpb-width: var(--container-width--md); }
}

@media (min-width: 992px) {
    body { --wp--style--global--content-size: var(--container-width--lg); }
    .container { --wpb-width: var(--container-width--lg); }
}

@media (min-width: 1200px) {
    body { --wp--style--global--content-size: var(--container-width--xl); }
    .container { --wpb-width: var(--container-width--xl);
        &.container--small { --wpb-width: 960px; }
        &.container--medium { --wpb-width: 1030px; }
    }
}

@media (min-width: 1400px) {
    body { --wp--style--global--content-size: var(--container-width--xxl); }
    .container { --wpb-width: var(--container-width--xxl);
        &.container--small { --wpb-width: 960px; }
        &.container--medium { --wpb-width: 1140px; }
    }
}

@media (min-width: 1600px) {
    body { --wp--style--global--content-size: var(--container-width--xxxl); }
    .container { --wpb-width: var(--container-width--xxxl);
        &.container--small { --wpb-width: 960px; }
        &.container--medium { --wpb-width: 1140px; }
        &.container--large { --wpb-width: 1500px; }
    }
}

/*** ----- Sections ----- ***/
section { position: relative; }
.has-background-image { position: relative;
    &::after { content: ''; position: absolute; top: 0; right: 0; bottom: 0; left: 0; background: rgba(0,0,0,.5); }
    .wpb-text {
        & :is(h1, h2, h3, h4, h5, p, ul, ul li, ol, ol li, .wpb-breadcrumbs, .wpb-breadcrumbs *, em) { color: #fff; }
        .wpb-breadcrumbs .wpb-icon { --clr: #fff; }
    }
    .container { z-index: 1; }
}

img.is-background-image { position: absolute; top: 0; right: 0; bottom: 0; left: 0; width: 100%; height: 100%!important; object-fit: cover; }
figure.is-background-image { position: absolute; top: 0; right: 0; bottom: 0; left: 0;
    img { width: 100%; height: 100%!important; object-fit: cover; }
}

/*** ---------- Background colors ---------- ***/
.wpb-bg-clr--transparent { background-color: transparent; }
.wpb-bg-clr--white { background-color: #fff; }
.wpb-bg-clr--grey { background-color: #f2f2f2; }

/*** ---------- Typography ---------- ***/
h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 { color: var(--clr-text); font-size: var(--fs); line-height: var(--lh); text-wrap: balance; }

h1, .h1 { --fs: clamp(0.32rem, 0.32rem + 0.40000vw, 6.4rem); --lh: 1.15; }
h2, .h2 { --fs: clamp(2.8rem, 2.8rem + 0.10526vw, 4.4rem); --lh: 1.15; }
h3, .h3 { --fs: clamp(2rem, 2rem + 0.05263vw, 2.8rem); --lh: 1.15; }
h4, .h4 { --fs: 1.8rem; --lh: 1.15; }
h5, .h5 { --fs: 1.6rem; --lh: 1.15; }
h6, .h6 { --fs: 1.4rem; --lh: 1.15; }

.wpb-text { --mt: 1em;
    > * + *:not(.btn .blockquote, .modal) { margin-top: var(--mt); }

    & {
        & :is(ul, ol) { padding-left: 3.8rem; }
        & :is(ul, ol) li { font: inherit; }
    }

    a:not(.btn) { font: inherit; text-underline-offset: .25rem; }
    blockquote { border-left: 4px solid #f2f2f2; padding-left: 1.6rem; }

    iframe { width: 100%; height: 100%; aspect-ratio: 16/9; border-radius: 1rem; }
}

strong, strong * { font: inherit; font-weight: 700; color: inherit; }
em, em * { color: inherit; }

.text-uppercase { text-transform: uppercase; }
.text-heading { font-family: var(--wpb-font-headings); }

/*** ---------- Buttons ---------- ***/
a { color: var(--clr-text); }

.btn, .gform_button, .gform_next_button, .gform_previous_button, .button {
    --fs: 1.6rem;
    --lh: 1;
    --p: 0 2rem;
    --br: .35rem;
    --gap: 2rem;
    --clr: #fff; --bg-clr: var(--clr-primary); --border: 1px solid var(--clr-primary); --box-shadow: none;
    --hover-clr: var(--clr); --hover-bg-clr: var(--bg-clr); --hover-border: var(--border); --hover-box-shadow: var(--box-shadow);
    --focus-clr: var(--hover-clr); --focus-bg-clr: var(--hover-bg-clr); --focus-border: var(--hover-border); --focus-box-shadow: 0 0 0 .5rem var(--clr-primary-20);
    --active-clr: var(--focus-clr); --active-bg-clr: var(--focus-bg-clr); --active-border: var(--focus-border); --active-box-shadow: var(--focus-box-shadow);
    display: inline-flex; justify-content: center; align-items: center; min-height: 4.3rem; gap: var(--gap); font-size: var(--fs); line-height: var(--lh); padding: var(--p); color: var(--clr); background-color: var(--bg-clr); border-radius: var(--br); border: var(--border); box-shadow: var(--box-shadow); text-align: center; text-decoration: none; vertical-align: middle; cursor: pointer; user-select: none;
    transition-duration: var(--global-transition-duration);
    transition-timing-function: var(--global-transition-function);
    font-family: var(--font-primary); webkit-transition-property: color, background-color, border-color, -webkit-box-shadow; transition-property: color, background-color, border-color, box-shadow, -webkit-box-shadow;
}
.btn span, .gform_button span, .gform_next_button span, .gform_previous_button span, .button span { font: inherit; color: inherit; }
.btn .wpb-icon, .gform_button .wpb-icon, .gform_next_button .wpb-icon, .gform_previous_button .wpb-icon { --clr: inherit; }
.btn:hover, .gform_button:hover, .gform_next_button:hover, .gform_previous_button:hover, .button:hover { color: var(--hover-clr)!important; background-color: var(--hover-bg-clr)!important; border: var(--hover-border)!important; box-shadow: var(--hover-box-shadow)!important; }
.btn:hover .wpb-icon, .gform_button:hover .wpb-icon, .gform_next_button:hover .wpb-icon, .gform_previous_button:hover .wpb-icon { --clr: var(--hover-clr); }
.btn:focus, .gform_button:focus, .gform_next_button:focus, .gform_previous_button:focus, .gform_button:focus { color: var(--focus-clr)!important; background-color: var(--focus-bg-clr)!important; border: var(--focus-border)!important; box-shadow: var(--focus-box-shadow)!important; }
.btn:focus .wpb-icon, .gform_button:focus .wpb-icon, .gform_next_button:focus .wpb-icon, .gform_previous_button:focus .wpb-icon, .gform_button:focus .wpb-icon { --clr: var(--focus-clr); }
.btn:active, .gform_next_button:active, .gform_previous_button:active, .button:active { color: var(--active-clr)!important; background-color: var(--active-bg-clr)!important; border: var(--active-border)!important; box-shadow: var(--active-box-shadow)!important; }
.btn:active .wpb-icon, .gform_next_button:active .wpb-icon, .gform_previous_button:active .wpb-icon { --clr: var(--active-clr); }

.btn.btn--small { --p: 0 1.5rem; --fs: 1.4rem; min-height: 3.3rem; }
.btn.btn--large { --p: 0 2.6rem; --fs: 1.8rem; min-height: 5.3rem; }

.btn.btn--square { --p: 0; aspect-ratio: 1/1; }

.btn.btn--white { --clr: var(--clr-dark); --bg-clr: #fff; --border: 1px solid #fff; --box-shadow: none; --hover-clr: #fff; --hover-bg-clr: var(--clr-dark); --hover-border: 1px solid var(--clr-dark); }
.btn.btn--outline { --clr: var(--clr-dark); --bg-clr: transparent; --border: 1px solid var(--clr-dark); --box-shadow: none; --hover-clr: #fff; --hover-bg-clr: var(--clr-dark); --hover-border: 1px solid var(--clr-dark); }
.btn.btn--outline-primary { --clr: var(--clr-primary); --bg-clr: transparent; --border: 1px solid var(--clr-primary); --box-shadow: none; --hover-clr: #fff; --hover-bg-clr: var(--clr-primary); --hover-border: 1px solid var(--clr-primary); }
.btn.btn--link { --clr: var(--clr-dark); --bg-clr: transparent; --border: 1px solid transparent; --box-shadow: none; }

.btn-group { --gap: 1rem; display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap; -webkit-box-align: center; -ms-flex-align: center; align-items: center; gap: var(--gap); }

/*** ---------- Cards ----------  ***/
.wpb-card { --br: 1rem; --p: 2rem; border-radius: var(--br); border: 1px solid var(--clr-border); background-color: #fff; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; position: relative; text-decoration: none;
    a { text-decoration: none; }
    .wpb-card__header { display: flex; overflow: hidden;
        img { width: 100%; height: auto; }
    }
    .wpb-card__body { padding: var(--p); -webkit-box-flex: 1; -ms-flex-positive: 1; flex-grow: 1; }
    .wpb-card__footer { padding: var(--p); padding-top: 0; }
    > *:first-child { border-top-left-radius: var(--br); border-top-right-radius: var(--br); }
    > *:first-child img { border-top-left-radius: var(--br); border-top-right-radius: var(--br); }
    > *:last-child { border-bottom-left-radius: var(--br); border-bottom-right-radius: var(--br); }
    &.wpb-card--article .wpb-card__title { margin-bottom: .8rem; }
}

/*** ---------- Alignment ---------- ***/
.wpb-align-y__top .inner { -webkit-box-align: start; -ms-flex-align: start; align-items: start; }
.wpb-align-y__center .inner { -webkit-box-align: center; -ms-flex-align: center; align-items: center; }
.wpb-align-y__bottom .inner { -webkit-box-align: end; -ms-flex-align: end; align-items: end; }

@media (min-width: 992px) {
    .wpb-align-left { order: -1; }
    .wpb-align-right { order: 999; }
}

/*** ---------- Badge ---------- ***/
.badge-group { display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap; gap: .5rem; -webkit-box-align: center; -ms-flex-align: center; align-items: center; }
.badge { --fs: 1.3rem; --lh: 1; --p: .5rem 1rem; --clr: #fff; --bg-clr: var(--clr-dark); --br: 2rem; --border: none; --box-shadow: none; --hover-clr: var(--clr); --hover-bg-clr: var(--bg-clr); --hover-border: var(--border); --hover-box-shadow: var(--box-shadow); display: inline-block; font-size: var(--fs); line-height: var(--lh); padding: var(--p); color: var(--clr); background-color: var(--bg-clr); border-radius: var(--br); border: var(--border); box-shadow: var(--box-shadow); text-align: center; text-decoration: none; vertical-align: middle; user-select: none; transition-duration: var(--global-transition-duration); transition-timing-function: var(--global-transition-function); transition-property: color, background-color, border-color, box-shadow;
    /* check if hover can be removed from core to fix badge hover bug*/
    /* .badge:hover { color: var(--hover-clr); background-color: var(--hover-bg-clr); border: var(--hover-border); box-shadow: var(--hover-box-shadow); } */
    &.badge--primary { --clr: #fff; --bg-clr: var(--clr-primary); }
    &.badge--primary-light { --clr: var(--clr-primary); --bg-clr: var(--clr-primary-20); }
}

/*** ---------- backdrop ---------- ***/
.wpb-backdrop { background-color: rgba(0,0,0,.35); position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 1010; opacity: 0; pointer-events: none; transition: opacity var(--ts-25) ease;
    &.active { opacity: 1; pointer-events: all; }
}

/*** ---------- Navigation ---------- ***/
.wpb-navigation { --nav-bg-clr: #fff; position: relative;
    .container { display: flex; align-items: center; justify-content: space-between; column-gap: 1rem; }
    .logo { display: inline-flex; margin-right: auto;
        img { width: 100px; height: auto; }
    }
}

.btn.btn--nav-toggle {
    svg { fill: var(--clr);
        rect { transition: y var(--ts-25) ease var(--ts-25), transform var(--ts-25) ease, opacity 0ms var(--ts-25); transform-origin: center; }
    }
    &:hover svg rect { fill: var(--hover-clr); }
    &:focus svg rect { fill: var(--focus-clr); }
    &:active svg rect { fill: var(--active-clr); }
    &[aria-expanded="true"] {
        svg rect { fill: var(--active-clr); transition: y var(--ts-25) ease, transform var(--ts-25) ease var(--ts-25), opacity 0ms var(--ts-25); }
        svg .top { y: 45; transform: rotate(45deg); }
        svg .middle { opacity: 0; }
        svg .bottom { y: 45; transform: rotate(-45deg); }
    }
}

.wpb-navigation__collapse { transform: translate3d(100%, 0, 0); width: 100%; display: none; flex-direction: column; position: fixed; top: 0; right: 0; bottom: 0; left: auto; background-color: #fff; z-index: 1030; overflow: hidden; transition: transform var(--ts-35) ease;
    &.active { pointer-events: all; transform: translate3d(0%, 0, 0);
        * { --clr-text: var(--clr-heading); }
        .wpb-menu { flex-direction: column; height: 100%; gap: 1rem; }
        .wpb-menu .menu-item:has(.menu-link.btn) { margin-top: auto; margin-left: 0; }
        .wpb-menu .menu-item:has(.menu-link.btn) .btn { justify-content: space-between; padding: 1.5rem 2rem; }
        .wpb-menu .menu-item .menu-link:not(.btn):hover { background-color: inherit !important; }
        .wpb-menu .menu-item.menu-item--current { background-color: transparent !important; }
        .wpb-collapse__header { background-color: var(--clr-light); color: var(--clr-text); }
        .wpb-collapse__header span { margin: auto 0; }
        .wpb-collapse__header .btn.btn--outline { --clr: var(--clr-text); --border: 1px solid var(--clr-text); --hover-bg-clr: var(--clr-text); --hover-clr: #fff; }
    }

    .wpb-collapse__header { padding: 2rem; display: flex; justify-content: space-between; align-items: center;
        span { font-size: 2rem; font-weight: bold; margin: auto; }
    }
    .wpb-collapse__body { padding: 2rem; flex-grow: 1; overflow-y: auto; overscroll-behavior: contain; }
}

.wpb-menu { list-style: none;
    .menu-item .menu-link { text-decoration: none; transition: color var(--global-transition-duration) var(--global-transition-function); }
}

.wpb-navigation {
    .menu-item .menu-link { --hover-color: var(--clr-primary); color: var(--clr-text); width: 100%; font-size: 2.2rem; padding: 1.5rem 0; font-weight: 500; display: inline-block; line-height: 1; }
    .wpb-navigation__top {
        .menu-item .menu-link:hover { color: var(--hover-color); }
        .menu-item .menu-link:hover i { --clr: var(--hover-color); }
    }

    &:not(:has( + .wpb-main > :is(.wpb-header--home, .wpb-header--archive):first-child)) .wpb-navigation__main .menu-item .menu-link:hover { background-color: var(--clr-light); }

    /* .wpb-navigation .menu-item.menu-item--current a { color: var(--clr-primary); } */

    /* Submenu */
    .menu-item-has-children { position: relative;
        .menu-link { padding-right: 3.2rem; -webkit-box-align: center; -ms-flex-align: center; align-items: center; position: relative; }
        .wpb-sub-menu { display: flex; flex-direction: column; height: 100%; overflow: hidden; list-style: none; position: fixed; top: 0; right: 0; bottom: 0; left: 0; background-color: #fff; z-index: 1; overflow-y: auto; transform: translate3d(100%, 0, 0); transition: transform var(--ts-35) ease; }
        .wpb-sub-menu.active { transform: translate3d(0, 0, 0); }
        .wpb-sub-menu .wpb-submenu__header { background-color: #fff; padding: 2rem; position: sticky; top: 0; order: -1; display: flex; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; -webkit-box-align: center; -ms-flex-align: center; align-items: center; }
        .wpb-sub-menu .wpb-submenu__header .btn--submenu-toggle { position: relative; transform: none; top: 0; }
        .wpb-sub-menu .wpb-submenu__header span { font-size: 2rem; font-weight: bold; margin: auto; }
        .wpb-sub-menu ul { padding: 2rem; list-style: none; }
        .wpb-sub-menu .menu-item .menu-link { font-size: 1.8rem; padding: 1rem 0; }

        .btn--submenu-toggle { position: absolute; right: 0; top: 50%; transform: translateY(-50%); }
    }
}

@media (min-width: 576px) {
    .wpb-navigation__collapse { max-width: 45rem; }
}

@media (min-width: 992px) {
    .wpb-navigation {
        .container { padding-top: 0; padding-bottom: 0; }
        .btn.btn--nav-toggle { display: none; }
        .wpb-menu { display: flex; align-items: center; }
        .menu-item .menu-link { font-size: 1.6rem; padding: 1.4rem 1.8rem; position: relative; border-radius: .5rem; }
    }
    .wpb-navigation__collapse { --p-left: 0; --p-right: 0; padding-top: 0; padding-bottom: 0; max-width: inherit; margin-top: 0; display: flex!important; justify-content: space-between; align-items: center; flex-direction: row; position: relative; opacity: 1; z-index: inherit; transform: none; width: 100%; overflow: inherit; background-color: transparent!important; }
    .wpb-navigation__collapse .wpb-collapse__header, .wpb-navigation .menu-item-has-children .wpb-sub-menu .wpb-submenu__header { display: none; }
    .wpb-navigation__collapse .wpb-collapse__body { overflow: inherit; padding: 0; }

    /* Submenu */
    .wpb-navigation {
        .menu-item-has-children .menu-link { padding-right: 2rem; }
        .wpb-menu > .menu-item-has-children > .menu-link .btn--submenu-toggle { transform: translateY(-50%) rotate(90deg); }

        .menu-item-has-children::after { display: none; }
        .menu-item-has-children:hover > .wpb-sub-menu { pointer-events: all; opacity: 1; }
        .menu-item-has-children {
            .btn--submenu-toggle { border: none; --hover-border: none!important; --hover-bg-clr: transparent!important; --hover-clr: var(--clr)!important; width: 1.5rem; height: 1.5rem; }
            .btn--submenu-toggle i { width: 1.5rem; height: 1.5rem; transform: rotate(0deg)!important; }
            .wpb-sub-menu { position: absolute; top: 100%; right: auto; bottom: auto; left: 50%; transform: translateX(-50%)!important; box-shadow: 0 .5rem .5rem rgba(21, 47, 51, .1); width: 100%; padding: 0; min-width: 20rem; height: auto!important; background-color: #fff; opacity: 0; overflow: visible; pointer-events: none; transition: opacity var(--ts-25) ease; }
            .wpb-sub-menu .wpb-sub-menu { transform: none!important; }
            .wpb-sub-menu .menu-item .menu-link { font-size: 1.6rem; padding: 1rem; }
            .wpb-sub-menu .menu-item-has-children .menu-link { padding-right: 2rem; }
            .wpb-sub-menu .menu-item-has-children .menu-link .btn--submenu-toggle { right: 1rem; }
            .wpb-sub-menu .wpb-sub-menu { left: 100%; top: 0; transform: none; }
            .wpb-sub-menu ul { padding: 0; }
        }
    }
}

/*** ---------- Breadcrumb ---------- ***/
.wpb-breadcrumbs { margin-bottom: .6rem;
    & :is(span, a) { display: flex; align-items: center; color: inherit; text-decoration: none; font-size: 1.4rem; }
    a:hover { text-decoration: underline }
    .breadcrumb_last { font-weight: 500; }
    > span { display: flex; column-gap: .8rem; line-height: 1; }
    .wpb-icon.wpb-icon--chevron-right { --w: .6rem; --h: 1rem; min-width: var(--w); }
}

/*** ---------- Social media ---------- ***/
.wpb-social-media {
    --br: 50%;
    --clr: var(--clr-primary);
    --bg-clr: var(--clr-primary-20);
    --border: none;
    --box-shadow: none;
    --hover-clr: var(--clr-primary-20);
    --hover-bg-clr: var(--clr-primary);
    --hover-border: var(--border);
    --hover-box-shadow: var(--box-shadow);
    --focus-clr: var(--hover-clr);
    --focus-bg-clr: var(--hover-bg-clr);
    --focus-border: var(--hover-border);
    --focus-box-shadow: var(--hover-box-shadow);
    --active-clr: var(--focus-clr);
    --active-bg-clr: var(--focus-bg-clr);
    --active-border: var(--focus-border);
    --active-box-shadow: var(--focus-box-shadow);
}

.wpb-social-media { display: flex; flex-wrap: wrap; column-gap: 1rem; row-gap: 1rem;
    a { background-color: var(--bg-clr); border-radius: var(--br); text-decoration: none; width: 3.8rem; height: 3.8rem; display: inline-grid; place-items: center; transition: background-color var(--global-transition-duration) ease-in-out;
        .wpb-icon { --clr: inherit;; --w: 1.6rem; --h: 1.6rem; }
        &:hover { background-color: var(--hover-bg-clr)!important; border: var(--hover-border)!important; box-shadow: var(--hover-box-shadow)!important; }
        &:hover .wpb-icon { --clr: var(--hover-clr); }
        &:focus { background-color: var(--focus-bg-clr)!important; border: var(--focus-border)!important; box-shadow: var(--focus-box-shadow)!important; }
        &:focus .wpb-icon { --clr: var(--focus-clr); }
        &:active { background-color: var(--active-bg-clr)!important; border: var(--active-border)!important; box-shadow: var(--active-box-shadow)!important; }
        &:hover .wpb-icon { --clr: var(--active-clr); }
    }
}

/*** ---------- Footer CTA ---------- ***/
.wpb-footer-cta { --clr-text: #fff; padding-top: 3.6rem; padding-bottom: 3.6rem; --gc: 1; margin-top: auto;
    .container { display: grid; grid-template-columns: repeat(var(--gc), minmax(0, 1fr)); column-gap: 2rem; row-gap: 2.4rem; }
}

/*** ---------- Footer ---------- ***/
.wpb-footer { position: relative;
    .wpb-footer__main { --p: 3.2rem; --gc: 1; padding: var(--p) 0;
        .container { display: grid; grid-template-columns: repeat(var(--gc), minmax(0, 1fr)); column-gap: 2rem; row-gap: 4rem; }
    }

    .logo img { width: 100px; height: auto; }

    .wpb-footer__menu { display: flex; flex-direction: column; gap: 1.6rem;
        ul { list-style: none; }
        ul li a { font-size: 1.4rem; text-decoration: none; transition: opacity var(--ts-15) ease; }
        ul li a:hover { opacity: .6; }
        .footer-menu__link { margin-top: auto; }
    }
    .footer-menu__title { display: block; font-size: 1.6rem; line-height: 1; color: inherit; text-decoration: none; text-decoration: none; font-weight: bold; }
    .menu-item { text-decoration: none; color: inherit; display: block; }

    .wpb-footer__bottom { --p: 2rem; padding: var(--p) 0; border-top: 1px solid rgba(255, 255, 255, 0.2);
        .container { display: flex; flex-direction: column; justify-content: space-between; align-items: center; column-gap: 2rem; row-gap: 2rem; }
        .wpb-footer__sub-links { --fs: 1.4rem; text-align: center;  display: flex; flex-wrap: wrap; column-gap: 2rem; }
        .wpb-footer__sub-links * { font-size: 1.4rem; display: flex; column-gap: 2.4rem; text-decoration: none; opacity: .75; }
        .wpb-footer__sub-links a:hover { opacity: 1; }
    }
}

@media (min-width: 576px) {
    .wpb-footer .wpb-footer__main { --gc: 2; }
    .wpb-footer-cta { --gc: 2; }
    .wpb-footer .wpb-footer__bottom .container { flex-direction: row; }
}

@media (min-width: 992px) {
    .wpb-footer {
        .wpb-footer__main { --gc: 3;
            .container { column-gap: 4rem; }
        }
    }
    .wpb-footer-cta { --gc: 3; padding-top: 4.8rem; padding-bottom: 4.8rem;
        .container { column-gap: 4rem; row-gap: 4rem; }
    }
    .wpb-footer .wpb-footer__bottom { --p: 3.2rem; }
}
@media (min-width: 1200px) {
    .wpb-footer-cta .container { column-gap: 6rem; }
    .wpb-footer .wpb-footer__main .container { column-gap: 6rem; }
}

/*** ---------- USP Snippet ---------- ***/
.wpb-usp { --gc: repeat(auto-fit, minmax(20rem, 1fr)); --gap: 2.2rem; --p: 2rem 4rem; --bg: none; --b: 1px solid var(--clr-border); --br: .5rem;
    .inner { display: grid; grid-template-columns: var(--gc); -ms-grid-columns: var(--gc); gap: var(--gap); }
    .wpb-usp-item .wpb-icon { --w: 5rem; --h: 5rem; --clr: var(); }
    .wpb-usp-item { display: flex; flex-direction: column; gap: 2rem; justify-content: center; align-items: center; text-align: center; background-color: var(--bg); padding: var(--p); border: var(--b); border-radius: var(--br); }
}

@media (min-width: 992px) {
    .wpb-usp.full-width { grid-column: span 2; }
}

/*** ---------- Tooltips ---------- ***/
.wpb-tooltip { --bg: rgb( 255,255,255); position: absolute; pointer-events: none; opacity: 0; background-color: var(--bg); color: inherit; font-size: 1.3rem; line-height: 2rem; padding: .5rem 1rem; border-radius: .5rem; z-index: 9999; box-shadow: 0 0 .75rem .25rem rgba(0,0,0,.1);
    &::after { content: ''; position: absolute; width: 0; height: 0; border-style: solid; border-width: 0 .5rem .5rem .5rem; border-color: transparent transparent var(--bg) transparent; bottom: 100%; transform: translateX(-50%); left: 50%; }
    &.wpb-tooltip--left::after { border-width: .7rem 0 .7rem .7rem; border-color: transparent transparent transparent var(--bg); top: 50%; transform: translateY(-50%); left: calc(100% - 1px); }
    &.wpb-tooltip--right::after { border-width: .7rem .7rem .7rem 0; border-color: transparent var(--bg) transparent transparent; top: 50%; transform: translateY(-50%); right: calc(100% - 1px); left: auto; }
    &.wpb-tooltip--top::after { border-width:  .5rem .5rem 0 .5rem; border-color: var(--bg) transparent transparent transparent; top: 100%; transform: translateX(-50%); left: 50%; }
    &.show { opacity: 1; }
}

/*** ---------- Dropdowns ---------- ***/
.wpb-dropdown { position: relative;
    .wpb-dropdown__menu { opacity: 0; pointer-events: none; min-width: 10rem; border-radius: .5rem; position: absolute; top: calc(100% + .5rem); left: 0; background-color: #fff; box-shadow: 0 0.5rem 0.5rem rgb(21, 47, 51, .1); border: 1px solid rgba(var(--clr-border)); padding: 1.25rem; transition: opacity var(--global-transition-duration) ease-in-out; }
    .wpb-dropdown__menu-right { left: auto; right: 0; }
    .wpb-dropdown__menu {
        ul { list-style: none; }
        ul .dropdown-item { white-space: nowrap; display: flex; gap: .5rem; text-decoration: none; }
    }
    &.wpb-dropdown__left {
        .wpb-dropdown__menu { top: 0; right: calc(100% + .5rem); left: auto; }
        button .wpb-icon { order: -1; transform: rotate(90deg); }
    }
    &.wpb-dropdown__right {
        .wpb-dropdown__menu { top: 0; left: calc(100% + .5rem); right: auto; }
        button .wpb-icon { order: 9999; transform: rotate(-90deg); }
    }
    button[aria-expanded="true"] + .wpb-dropdown__menu { opacity: 1; pointer-events: all; z-index: 850; }
}

/*** ---------- Tables ---------- ***/
.wpb-table { overflow-x: auto; }
table {
    --clr: var(--clr-text);
    --border-clr: var(--clr-border);
    --accent-bg-clr: transparent;
    --hover-clr: var(--clr-text);
    --hover-bg-clr: rgba(0, 0, 0, 0.075);
    --border-width: .1rem;
    border-collapse: collapse;
    width: 100%;
    color: var(--clr);
    vertical-align: top;
    border-color: var(--border-clr);
    border-spacing: 0;
    margin: 0 0 1.41575em;
    td, th { padding: 1em 1.41575em; text-align: left; vertical-align: top; border-color: inherit; border-style: solid; border-width: 0; border-bottom-width: var(--border-width); }
    thead { vertical-align: bottom; }
}

/*** ---------- Pagination ---------- ***/
.wpb-pagination {
    --p: 0; --clr: var(--clr-text); --bg-clr: #fff; --border: 1px solid rgba(231, 226, 204, 1); --br: .5rem; --hover-clr: var(--clr-heading); --hover-bg-clr: var(--bg-clr);
    --hover-border: 2px solid rgba(197, 191, 162, 1); --active-color: var(--hover-clr); --active-bg-clr: var(--hover-bg-clr); --active-border: var(--hover-border);  position: relative;
    .has-prev-next { padding-left: 3.8rem; padding-right: 3.8rem; }
    ul { --gap: .6rem; list-style: none; display: flex; justify-content: center; flex-wrap: wrap; gap: var(--gap); padding-top: 3.2rem; }
    li {
        span { width: 4.4rem; height: 4.4rem; display: inline-grid; place-items: center; font-weight: 600; font-size: 1.6rem; line-height: 1.6; color: var(--clr-text); color: inherit; padding: var(--p); color: var(--clr); background-color: var(--bg-clr); border-radius: var(--br); border-bottom: var(--border); text-align: center; text-decoration: none; vertical-align: middle; cursor: pointer; user-select: none; transition-property: color, background-color, border-color; transition-duration: var(--global-transition-duration); transition-timing-function: var(--global-transition-function); }
        span .wpb-icon { --w: 1.5rem; --h: 1.5rem; pointer-events: none; }
        span:hover .wpb-icon { --clr: var(--hover-clr) }
        & :is(span:hover, span:focus, span:active) { color: var(--hover-clr); background-color: var(--hover-bg-clr); border-bottom: var(--hover-border); }
        span.current { color: var(--active-color); background-color: var(--active-bg-clr); border-bottom: var(--active-border); }
        span:not(.current) { --hover-bg-clr: var(--clr-white-60); }
        .page-number__prev { position: absolute; left: 0; }
        .page-number__next { position: absolute; right: 0; }
        &:has([data-page="…"]) { pointer-events: none!important; }
    }
}

/*** ---------- Owl carousel ---------- ***/
.owl-carousel .owl-nav { display: flex; justify-content: end; column-gap: 1rem; margin-top: 2rem; }
.owl-carousel .owl-nav button.owl-next, .owl-carousel .owl-nav button.owl-prev {
    width: 4.4rem; height: 4.4rem; border-radius: .5rem; display: flex; align-items: center; justify-content: center; background: #fff !important; transition: background var(--ts-10) ease; border-bottom: 1px solid var(--clr-border);
    &.disabled { opacity: 0.5; pointer-events: none; cursor: not-allowed; }
}
.owl-carousel .owl-nav button.owl-next:hover, .owl-carousel .owl-nav button.owl-prev:hover { background-color: var(--clr-primary) !important; }
.owl-carousel .owl-nav button.owl-next span, .owl-carousel .owl-nav button.owl-prev span { color: var(--clr-dark); line-height: 0; }
.owl-carousel {
    .owl-nav {
        button:hover i { --clr: #fff; }
        button.owl-prev span { transform: scaleX(-1); }
    }
}

/*** ---------- Page: 404 ---------- ***/
body.error404 .wpb-header .wpb-text { text-align: center; }
.wpb-text--404 {
    .wpb-text { text-align: center;
        p { margin-bottom: 1.6rem; }
    }
    form { position: relative; margin-bottom: 1.6rem;
        [type="submit"] { display: inline-flex; cursor: pointer; user-select: none; padding: .25rem 1rem; border: none; background: none; position: absolute; right: 0; top: 50%; transform: translateY(-50%); }
        [type="submit"] img { width: 1.5rem; }
    }
}

/*** ---------- Archive ---------- ***/
.wpb-archive { --gc: 1; --gap: 2.2rem;
    .container.container--results { display: grid; grid-template-columns: repeat(var(--gc), minmax(0, 1fr)); gap: var(--gap); }
}

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

@media (min-width: 992px) {
    .wpb-archive { --gc: 4; }
}

/*** ---------- Page: Search ---------- ***/
.wpb-search-results { --gc: 1; --gap: 2.2rem;
    .wpb-text { margin-bottom: 3.2rem; }
    .inner { display: grid; gap: var(--gap); grid-template-columns: repeat(var(--gc), minmax(0, 1fr)); }
    .result { text-decoration: none; display: flex; gap: .5rem; padding: .75rem 1.25rem; margin-bottom: -.1rem; transition: background-color var(--global-transition-duration) ease-in-out;
        .info { display: flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; width: 100%; gap: .5rem; }
        .info i { margin-left: auto; }
    }
    .result { border: 1px solid var(--clr-border);
        &:hover { background-color: #f2f2f2; }
    }
    & :is(.result:first-child) { margin-top: 1.6rem; }
}

/*** ---------- Aspect ratio ---------- ***/
.wpb-ratio { --wpb-aspect-ratio: 100%; position: relative; width: 100%;
    &::before { display: block; padding-top: var(--wpb-aspect-ratio); content: ""; }
}
.wpb-ratio--21x9 { --wpb-aspect-ratio: 42.8571428571%; }
.wpb-ratio--16x9 { --wpb-aspect-ratio: 56.25%; }
.wpb-ratio--1x1 { --wpb-aspect-ratio: 100%; }
.wpb-ratio--4x3 { --wpb-aspect-ratio: 75%; }
.wpb-ratio {
    > * { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
    > img { object-fit: cover; }
}

/*** ---------- Alerts ---------- ***/
.wpb-alert { --clr: #fff; --bg: var(--clr-primary); --br: 1.6rem; display: block; padding: 1.6rem; color: var(--clr); background-color: var(--bg); border-radius: var(--br);
    *:not(.btn) { color: inherit; }

    &.wpb-alert--info { --border: 1px solid rgb(0, 143, 214); --bg: rgb(0, 143, 214); }
    &.wpb-alert--success { --border: 1px solid rgb(78, 168, 69); --bg: rgb(78, 168, 69); }
}

/*** ---------- Wux Advanced Search ---------- ***/
.wpb-search-results { display: grid; gap: 2.2rem; position: relative;
    h3 { --fs: 2rem; padding-bottom: .8rem; }
    &.--loading { min-height: 6.4rem; margin-top: 2.2rem;
        &::after { content: ''; --src: url('/app/themes/wuxnl-theme/assets/icons/default/icon_loading.svg'); --clr: var(--clr-text); --w: 2rem; --h: 2rem; -webkit-mask-image: var(--src); mask-image: var(--src); -webkit-mask-size: contain; mask-size: contain; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-position: center; mask-position: center; display: inline-block; width: var(--w); height: var(--h); background-color: var(--clr); position: absolute; top: calc(50% - (var(--h) / 2)); left: calc(50% - (var(--w) / 2)); animation: wux_rotate 0.5s linear infinite; }
    }
}

@keyframes wux_rotate {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/*** ---------- Block: Carousel ---------- ***/
.wpb-block--carousel {
    .wpb-text { margin-bottom: 2rem; }
    .wpb-image { position: relative;
        img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; }
        &::after { content: ''; display: block; width: 100%; padding-top: 75%; }
    }
}

/*** ---------- Block: Header ---------- ***/
.wpb-header.wpb-header--search {
    form { position: relative;
        [type="submit"] { display: inline-flex; cursor: pointer; user-select: none; padding: 0.25rem 1rem; border: none; background: none; position: absolute; right: 0; top: 50%; transform: translateY(-50%); }
        [type="submit"] img { width: 1.5rem; }
    }
}

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