/*
Theme Name: Wux Theme
Author: Wux
Author URI: https://wux.nl/
Description: Wux is het custom wordpress thema van Wux - Internetbureau
Version: 2.0
Requires PHP: 8.3.0
Text Domain: wuxnl-theme
*/


:root {
    --fs: 1.6rem;
    --lh: 1.6;
    
    /* Custom beziers */
    --cb--smooth: cubic-bezier(.58,.22,.2,.96);

    /* Color variables */
    --clr-primary: #DA231C;
    --clr-primary-120: #CC2019;
    --clr-primary-140: #b3130d;

    --clr-heading: #ffff;
    --clr-text: #ffff;
    --clr-text-grey: #CDCDCD;

    --clr-dark: #191313;
    --clr-dark-80: #232323;
    --clr-dark-60: #363434;
    --clr-dark-50: #3D3D3D;
    --clr-dark-40: #4e4e4e;
    --clr-body: #191313;

    --clr-light: #EEEEEE;

    --clr-border: rgb(222, 226, 230); 
    
    --clr-danger: #e2401c;
    --clr-info: #3d9cd2;
    --clr-success: #1CB435;

    /* Font variables */
    --font-primary: "Red Hat Display", sans-serif;

    /* Container max-width variables */
    --container-width: 100%;
    --container-width--sm: 540px;
    --container-width--md: 740px;
    --container-width--lg: 1040px;
    --container-width--xl: 1240px;
    --container-width--xxl: 1400px;
    --container-width--xxxl: 1520px;

    --ts-duration: var(--ts-25);
    --ts-function: var(--cb--smooth);

}

@media (min-width: 768px) {
    :root {
        --fs: 1.8rem;
    }
}

body { font-family: var(--font-primary); background-color: var(--clr-body); }

/*** ---------- Typography ---------- ***/
h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 { font-weight: 900; text-transform: uppercase; }
h1, .h1 { --fs: clamp(3rem, 5vw, 7rem); --lh: 1.2; }
h2, .h2 { --fs: clamp(2.6rem, 4vw, 5rem); --lh: 1.2; }
h3, .h3 { --fs: clamp(2.2rem, 3vw, 3.2rem); --lh: 1.2; }
h4, .h4 { --fs: clamp(1.8rem, 2vw, 2.4rem); }

.wpb-text p:has(+ :is(h1, h2, h3)) em{ --fs: clamp(1.8rem, 2vw, 2rem); font-size: var(--fs); font-style: normal; font-weight: 600; line-height: 1; }
.wpb-text p:has(+ :is(h1)) em{ --fs: clamp(1.4rem, 1.5vw, 2rem); }
.wpb-text p:has(em) + :is(h1, h2, h3) { --mt: .8rem; }

.wpb-text :is(h1, h2, h3):has(strong){ font-weight: 400; }
.wpb-text :is(h1, h2, h3):has(strong) strong{ font-weight: 900; }

:is(h1, h2, h3) .wpb-person{ --img-size: var(--fs); position: relative; display: inline-block; left: 1rem; top: .3rem; }

.wpb-text .wpb-card.wpb-card--cta{ --mt: 3.2rem; }

/*** ---------- Whitespace ---------- ***/
[class*="wpb-wst"] { --pt: 0; padding-top: var(--pt); }
[class*="wpb-wsb"] { --pb: 0; padding-bottom: var(--pb); }

.wpb-wst--none { --pt: 0; }
.wpb-wst--small { --pt: 1.8rem; }
.wpb-wst--medium { --pt: 2.5rem; }
.wpb-wst--large { --pt: 4rem; }

.wpb-wsb--none { --pb: 0; }
.wpb-wsb--small { --pb: 1.8rem; }
.wpb-wsb--medium { --pb: 2.5rem; }
.wpb-wsb--large { --pb: 4rem; }

@media (min-width: 992px) {
    .wpb-wst--small { --pt: 6.4rem; }
    .wpb-wst--medium { --pt: 8rem; }
    .wpb-wst--large { --pt: 12rem; }
    
    .wpb-wsb--small { --pb: 6.4rem; }
    .wpb-wsb--medium { --pb: 8rem; }
    .wpb-wsb--large { --pb: 12rem; }
}

/*** ---------- Background colors ---------- ***/
.wpb-bg-clr--primary { background-color: var(--clr-primary-120); }

.wpb-bg-clr--transparent { background-color: transparent; }
.wpb-bg-clr--dark { background-color: var(--clr-dark); }
.wpb-bg-clr--grey { background-color: var(--clr-dark-50); }
.wpb-bg-clr--white { background-color: #fff; }

/*** ---------- Background assets ---------- ***/
:is(section, footer):has(.wpb-bg-assets){ position: relative; }
:is(section, footer):has(.wpb-bg-assets) .container{ z-index: 2; }
.wpb-bg-assets{ position: absolute; top: 0; right: 0; bottom: 0; left: 0; overflow: hidden; pointer-events: none; z-index: 1; }
.wpb-bg-assets .wpb-bg-style{ --w: 100%; --src: url('/app/themes/wuxnl-theme/assets/img/lucassen-block-asset.svg'); position: absolute; top: 0; right: 0; bottom: 0; left: 0; background: var(--src) no-repeat center right/cover; opacity: .05; }
.wpb-bg-clr--primary .wpb-bg-assets .wpb-bg-style{ --src: url('/app/themes/wuxnl-theme/assets/img/lucassen-block-asset--primary.svg'); opacity: 1; }

/*** ---------- Header ---------- ***/
.wpb-header { --gc: 1; --gap: 3.2rem; display: grid; }
.wpb-header :is(h1, h2, h3){ text-shadow: #0005 0 0 10px; }
.wpb-header .container--main{ display: grid; justify-content: end; padding-top: 6rem; z-index: 1; }
.wpb-header .wpb-text{ text-align: end; max-width: 100rem; }
.wpb-header .wpb-text p{ text-wrap: balance; }
.wpb-header .wpb-text .btn-group{ --mt: 3.2rem; justify-content: end; }
.wpb-header .wpb-text .btn-group >*:last-child:is(.btn--link){ padding-right: 0; }
.wpb-header .wpb-header__bottom{ position: relative; padding-top: 2.5rem; margin-top: 7.5rem; }
.wpb-header .wpb-header__bottom::before{ content: ''; position: absolute; top: 0; right: 0; bottom: -1px; left: 0; background-color: var(--clr-dark); clip-path: polygon(0 0, 100% 20%, 100% 100%, 0% 100%); z-index: 1; }
.wpb-header .wpb-header__bottom .btn--scroll-below-the-fold{ --p: 0; --clr: rgba(255, 255, 255, 0.6); --hover-clr: #fff; }
.wpb-header .wpb-header__bottom .container{ z-index: 1; }

.wpb-header:has(+ .wpb-bg-clr--primary) .wpb-header__bottom::before{ background-color: var(--clr-primary-120); }
.wpb-header:has(+ .wpb-bg-clr--grey) .wpb-header__bottom::before{ background-color: var(--clr-dark-50); }

.wpb-header.wpb-header--home h1{ --fs: clamp(3rem, 5vw, 8rem); word-break: break-word; hyphens: auto; }

@media (min-width: 768px) {
    .wpb-header .wpb-header__bottom{ padding-top: 5rem; margin-top: 10rem; }
    .wpb-header .wpb-header__bottom::before{ clip-path: polygon(0 0, 100% 60%, 100% 100%, 0% 100%);  }
}

@media (min-width: 992px) {
    .wpb-header.wpb-header--home { --gc: 2; }
    .wpb-header .container--main{ padding-top: 10rem; }
    .wpb-header .wpb-text p{ padding-left: 30rem; }
}

/*** ---------- Footer ---------- ***/
.wpb-footer h2{ --fs: clamp(2.4rem, 2.75vw, 4rem); }

.wpb-footer .wpb-bg-assets .wpb-bg-style{ background-position: -37.5vw; }
.wpb-footer .btn .btn__text{ display: flex; align-items: center; gap: 1rem; line-height: 1; }
.wpb-footer .btn .btn__text i{ font-size: 1.4rem; }

.wpb-certificate-logos{ display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.wpb-certificate-logos img{ width: 4rem; }

@media (max-width: 576px){
    .wpb-footer .wpb-bg-assets .wpb-bg-style{ background-position: -50rem; }
}

.by-wux { display: flex; align-items: center; gap: .4rem; text-decoration: none; opacity: .7; transition: opacity var(--ts-duration) ease; }
.by-wux span { font-size: 1.4rem; line-height: 1; }
.by-wux img { width: 1.6rem; height: 1.6rem; }
.by-wux:hover { opacity: 1; }

.grecaptcha-badge { opacity: 0!important; pointer-events: none; }