@font-face {
    font-family: "SpaceGrotesk";
    src: url('/app/themes/wuxnl-theme/assets/fonts/SpaceGrotesk-Bold.ttf') format('truetype');
    font-weight: 700;
    font-display: swap;
}

@font-face {
    font-family: "SpaceGrotesk";
    src: url('/app/themes/wuxnl-theme/assets/fonts/SpaceGrotesk-Medium.ttf') format('truetype');
    font-weight: 500;
    font-display: swap;
}

@font-face {
    font-family: "SpaceGrotesk";
    src: url('/app/themes/wuxnl-theme/assets/fonts/SpaceGrotesk-Regular.ttf') format('truetype');
    font-weight: 400;
    font-display: swap;
}

:root {
    --clr-primary: #0D9652;
    --clr-primary-dark: #1d3629;
    --clr-secondary: #FED012;
    --clr-tertiary: #0d9652;

    --clr-dark: #303030;
    --clr-dark-80: #3F4C58;
    --clr-dark-60: #8c949b;
    --clr-text: #2C2C2C;
    --clr-text-rgb: 44, 44, 44;
    --clr-text-light: #777777;
    --clr-border: #DEDEDE;
    --clr-light: #F0F0F0;

    --clr-success: #0D9652;
    --clr-warning: #F5A623;
    --clr-error: #D0021B;
    --clr-info: #007BFF;

    --font-primary: 'SpaceGrotesk', sans-serif;

    /* Container max-width variables */
    --container-width: 100%;
    --container-width--sm: 540px;
    --container-width--md: 720px;
    --container-width--lg: 960px;
    --container-width--xl: 1140px;
    --container-width--xxl: 1320px;
    --container-width--xxxl: 1320px;
    --inline-spacing: 2rem;

    --font-size: 1.4rem;

    --ts-duration: 250ms;
    --ts-function: cubic-bezier(.58,.22,.2,.96);
}

@media (min-width: 768px) {
    :root {
        --font-size: 1.6rem;
    }
}

*, *::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-family: var(--font-primary); font-size: var(--font-size); color: var(--clr-text); }
.screen-reader-text { clip: rect(1px,1px,1px,1px); word-wrap: normal!important; border: 0; -webkit-clip-path: inset(50%); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute!important; width: 1px } 

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

h1, .h1 { color: var(--clr-text); font-size: clamp(3.2rem, 4vw, 6.4rem); line-height: 1.1; text-wrap: pretty; }

.container { --wpb-width: var(--container-width); width: 100%; max-width: var(--wpb-width); margin-left: auto; margin-right: auto; padding-left: var(--inline-spacing); padding-right: var(--inline-spacing); position: relative; }

@media (min-width: 576px) { .container { --wpb-width: var(--container-width--sm); } }
@media (min-width: 768px) { .container { --wpb-width: var(--container-width--md); } }
@media (min-width: 992px) { .container { --wpb-width: var(--container-width--lg); } }
@media (min-width: 1200px) { .container { --wpb-width: var(--container-width--xl); } }
@media (min-width: 1400px) { .container { --wpb-width: var(--container-width--xxl); } }
@media (min-width: 1600px) { .container { --wpb-width: var(--container-width--xxxl); } }

.btn, .gform_button, .gform_next_button, .gform_previous_button, .button, .gform_button .button { 
    --fs: 1.5rem; 
    --lh: 1; 
    --p: 0 2rem; 
    --br: 0; 
    --gap: 1.6rem;

    --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.6rem; gap: var(--gap); font-size: var(--fs); font-weight: 700; 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(--ts-duration);
    transition-timing-function: var(--ts-function);

    font-family: var(--font-primary); 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 i, .gform_button i, .gform_next_button i, .gform_previous_button i { --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 i, .gform_button:hover i, .gform_next_button:hover i, .gform_previous_button:hover i { --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 i, .gform_button:focus i, .gform_next_button:focus i, .gform_previous_button:focus i, .gform_button:focus i { --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 i, .gform_next_button:active i, .gform_previous_button:active i { --clr: var(--active-clr); }

.btn.btn--white { --bg-clr: #fff; --clr: var(--clr-text); --border: none; }
.btn.btn--secondary { --bg-clr: var(--clr-secondary); --clr: var(--clr-text); --border: none; }
.btn.btn--outline { --bg-clr: transparent; --border: .2rem solid var(--clr-dark); --clr: var(--clr-dark); --hover-clr: #fff; --hover-bg-clr: var(--clr-dark); }
.btn.btn--pay { min-height: 5.5rem; width: 100%; font-size: 1.8rem; }
.btn.btn--large { --p: 0 2.4rem;--fs: 2.2rem; min-height: 6rem; }
label { display: block; width: 100%; font-size: var(--font-size); font-weight: 700; margin-bottom: 1rem; line-height: 1.2; }
label .optional { display: none; }
label.checkbox { cursor: pointer; font-size: 1.4rem; position: relative; padding-left: 2.3rem; font-weight: 400; color: var(--clr-text-light); }
label.checkbox::before { content: ''; display: inline-block; position: absolute; left: 0; top: 0; width: 1.7rem; height: 1.7rem; border: 1px solid var(--clr-border); outline: .2rem solid #fff; outline-offset: -.3rem; background-color: #fff; transition-property: background-color, outline; transition-duration: var(--ts-duration); transition-timing-function: var(--ts-function); }
label.checkbox input { opacity: 0; position: absolute; }
label.checkbox:has(input:checked)::before { background-color: var(--clr-primary); }
label.checkbox a { font-weight: 400; color: var(--clr-text-light); text-decoration: underline; }
[type="text"], [type="tel"], [type="password"], [type="email"], textarea { padding: 1rem 1.6rem; display: block; width: 100%; min-height: 4.8rem; border: 1px solid var(--clr-border); font-family: var(--font-primary); font-size: var(--font-size); line-height: 1.2; outline: none; }  
:is([type="text"], [type="tel"], [type="password"], [type="email"])::placeholder, textarea::placeholder { color: var(--clr-dark-60); }  
textarea { min-height: 10.4rem; resize: vertical; }
.select2-container--default .select2-selection--single { min-height: 4.8rem; border: .1rem solid var(--clr-border); border-radius: 0; }
.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 44px; height: 100%; padding-left: 1.6rem; }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 100%; }  
.select2-dropdown { border-color: var(--clr-border); }
.select2-container--default .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-results__option--highlighted[data-selected] { background-color: var(--clr-primary); }
.select2-container--focus * { outline: none!important; }

.woocommerce-payment-icons { display: flex; justify-content: center; flex-wrap: wrap; gap: 0.5rem; margin-top: 1.6rem; }
.woocommerce-payment-icons figure { display: grid; place-items: center; padding: 0 .5rem; height: 2.8rem; border: .1rem solid var(--clr-border); border-radius: .4rem; }
.woocommerce-payment-icons figure img { height: 1.7rem; }

.wpb-reviewscore { --br: 0; display: inline-flex; align-items: center; justify-content: center; padding: 1.4rem 1.6rem; font-size: 1.3rem; white-space: nowrap; column-gap: .8rem; border-radius: var(--br); }
.wpb-reviewscore .wpb-reviewscore__stars { color: var(--clr-primary); }
.wpb-reviewscore .wpb-reviewscore__value { display: inline-flex; align-items: center; column-gap: .6rem; line-height: 1; }
.wpb-reviewscore .wpb-reviewscore__count { border-left: 1px solid var(--clr-border); padding-left: .8rem; line-height: 1; }

.woocommerce-message,.woocommerce-info,.woocommerce-error,.woocommerce-noreviews,p.no-comments { background-color:var(--clr-success); color:#fff; clear: both; padding: 1em 2em!important; position: relative; list-style: none outside; outline: none; }
.woocommerce-message a,.woocommerce-info a,.woocommerce-error a,.woocommerce-noreviews a,p.no-comments a { color:#fff; }
.woocommerce-message a:hover,.woocommerce-info a:hover,.woocommerce-error a:hover,.woocommerce-noreviews a:hover,p.no-comments a:hover { color: #fff; opacity:.7; }
.woocommerce-message a.button:hover,.woocommerce-info a.button:hover,.woocommerce-error a.button:hover,.woocommerce-noreviews a.button:hover,p.no-comments a.button:hover { opacity: 1; border-left: 1px solid rgba(255,255,255,.25) !important; }
.woocommerce-message .button,.woocommerce-info .button,.woocommerce-error .button,.woocommerce-noreviews .button,p.no-comments .button { --p: 0!important; --bg-clr: transparent!important; --border: none!important; --hover-bg-clr: transparent; --br: 0!important; min-height: 0rem; padding-left: 1em!important; border-width: 0; border-left: 1px solid rgba(255,255,255,.25) !important; }
.woocommerce-message .button:hover,.woocommerce-info .button:hover,.woocommerce-error .button:hover,.woocommerce-noreviews .button:hover,p.no-comments .button:hover { background: none; color: #fff; opacity: .7; }
.woocommerce-message + p { margin-top: 1em; }

.site-content>.col-full>.woocommerce>.woocommerce-message:first-child,.site-content>.col-full>.woocommerce>.woocommerce-info:first-child,.site-content>.col-full>.woocommerce>.woocommerce-error:first-child { margin-top: 2.617924em; }
.woocommerce-error { list-style: none; }
.woocommerce-info,.woocommerce-noreviews,p.no-comments { background-color: var(--clr-info); }
.woocommerce-info.woocommerce-no-products-found { background-color: rgba(0,0,0,0); border: none; color: inherit; padding: 1em 0; }
.woocommerce-error { background-color: var(--clr-error); }
.woocommerce-error p, .woocommerce-error li { color: #fff; }
ul.woocommerce-error { flex-direction: column; align-items: start; }

.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 .6rem; --clr: #fff; --bg-clr: var(--clr-dark); --br: 0; --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); font-weight: 500; 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(--ts-duration); transition-timing-function: var(--ts-function); transition-property: color, background-color, border-color, box-shadow; }
.badge i { font-size: .8em; }
.badge.badge--primary { --clr: #fff; --bg-clr: var(--clr-primary); }
.badge.badge--primary-light { --clr: var(--clr-primary); --bg-clr: var(--clr-primary-20); }
.badge.badge--primary{ --bg-clr: var(--clr-tertiary); }

.wpb-contact-cta { font-size: 1.4rem; width: 100%; color: #fff; text-decoration: none; display: grid; grid-template-columns: auto 1fr auto; column-gap: .6rem; }
.wpb-contact-cta i { font-size: 1.3rem; line-height: 1.5; } 
.wpb-contact-cta .wpb-contact-cta__text strong { display: block; width: 100%; font-weight: 500; }
.wpb-contact-cta .wpb-contact-cta__phone { display: none; }
.wpb-contact-cta i.fa-chevron-right { margin-left: auto; align-self: center; }  

@media (min-width: 768px) {
    .wpb-contact-cta .wpb-contact-cta__text strong { width: auto; display: inline-block; }
    .wpb-contact-cta .wpb-contact-cta__text strong::after { content: ' · '; margin-right: .25rem; }
    .wpb-contact-cta i.fa-chevron-right { display: none; }
    .wpb-contact-cta .wpb-contact-cta__phone { display: inline-block; }
}

@media (min-width: 992px) {
    .wpb-contact-cta { font-size: 1.5rem; }
}

/*** ---------- Modal ---------- ***/
.modal { --br: 0; --p: 2rem; --backdrop-clr: rgba(0,0,0,.45); position: fixed; top: 0; right: 0; bottom: 0; left: 0; opacity: 0; pointer-events: none; padding: 2rem; background-color: var(--backdrop-clr); display: none; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; -webkit-box-align: center; -ms-flex-align: center; align-items: center; transition: opacity var(--ts-duration) ease-in-out; z-index: 1090; }
.modal.show { display: flex; opacity: 1; pointer-events: all; }
.modal.show .modal-dialog { transform: translateY(0); }
.modal .modal-dialog { display: flex; flex-direction: column; border-radius: var(--br); width: 100%; max-width: 74rem; height: auto; max-height: 80vh; transform: translateY(5rem); transition: transform var(--ts-25) ease; background-color: #fff; overflow: hidden; }
.modal.modal--small .modal-dialog { max-width: 60rem; max-height: 60rem; }
.modal.modal--large .modal-dialog { max-width: 100rem; max-height: 60rem; }
.modal.modal--fullscreen { padding: 0; }
.modal.modal--fullscreen .modal-dialog { height: 100%; max-height: 100%; max-width: 100%; border-radius: 0; }
.modal .modal-dialog .modal-dialog__header { display: flex; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; align-items: center; padding: var(--p); padding-bottom: 0; background-color: #fff; font-family: inherit; }
.modal .modal-dialog .modal-dialog__header .modal-title { font-size: clamp(2.4rem, 5vw, 3.2rem); margin: 0; }
.modal .modal-dialog .modal-dialog__header .btn-close { cursor: pointer; background-color: transparent; width: 3.2rem; height: 3.2rem; border-radius: 50%; border: 1px solid var(--clr-border); display: inline-grid; place-items: center; transition: background-color var(--ts-duration) ease-in-out, border-color var(--ts-duration) ease-in-out; }
.modal .modal-dialog .modal-dialog__header .btn-close i { --w: 1.4rem; --h: 1.4rem; }
.modal .modal-dialog .modal-dialog__header .btn-close:hover { border-color: var(--clr-primary); background-color: var(--clr-primary); }
.modal .modal-dialog .modal-dialog__header .btn-close:hover i { --clr: #fff; } 
.modal .modal-dialog .modal-dialog__header p { margin: 0; font-size: 1.6rem; line-height: 1.6rem; }
.modal .modal-dialog .modal-dialog__body { background-color: #fff; padding: var(--p); overflow-y: auto; overflow-x: hidden; }
.modal .modal-dialog .modal-dialog__footer { display: flex; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; border-top: 1px solid #E4E9EA; background-color: #fff; padding: var(--p); z-index: 2; margin-top: auto; }
.modal .modal-dialog .password-input .show-password-input { display: none; }

@media (min-width: 576px) {
    .modal.modal--fullscreen { --p: 2rem calc((100% - 540px) / 2 + 2rem); }
}
@media (min-width: 768px) {
    .modal.modal--fullscreen { --p: 2rem; }
    .modal.modal--fullscreen .modal-dialog { max-width: 74rem; height: auto; max-height: 80vh; border-radius: var(--br); }
}
@media (min-width: 992px) {
    .modal { --p: 3.2rem; }
    .modal.modal--fullscreen { --p: 3.2rem; }
}

.wpb-subscription-cta { display: flex; justify-content: space-between; flex-direction: column; gap: 2.4rem; --bg-clr: #F0F0F0; background-color: var(--bg-clr); padding: 2.4rem 1.8rem; }
.wpb-subscription-cta.is-checkout {background-color: transparent; padding: 0; margin-top: 1.2rem; }


@media (min-width: 992px){
    .wpb-subscription-cta { grid-column: span 3; flex-direction: row; padding: 1.8rem;}
}

/*** ---------- User ---------- ***/
.wpb-user{ --size: 5.4rem; display: flex; align-items: center; gap: 1.8rem; }
.wpb-user .wpb-user__text{ line-height: 1; color: var(--contrast-clr); }
.wpb-user img{ width: var(--size); height: var(--size); min-width: var(--size); object-fit: cover; }
.wpb-user strong{ display: block; font-size: clamp(1.5rem, 1.5vw, 1.8rem); line-height: 1.2; }
.wpb-user span{ font-size: 1.4rem; opacity: .8; line-height: 1.2; }
.wpb-user a{ text-decoration: underline; text-underline-offset: 2px; }

/*** ---------- Simple page ---------- ***/
.wpb-simple-page { padding: 4.8rem 0; }
.wpb-simple-page ul { padding-left: 2rem; list-style: disc; }
.wpb-simple-page h1 { margin-bottom: 2.4rem; }
.wpb-simple-page p + p { margin-top: 1.2rem; word-break: break-all; }