/* =========================================================
   1. RESET & GLOBAL SETTINGS
   ========================================================= */

*, *::before, *::after {
    box-sizing: border-box;
}

img {
    max-width: 100%;
    height: auto;
}

 @font-face { 
    font-family: 'Manrope'; 
    src: url('https://clements.nl/templates/shaper_helixultimate/fonts/manrope/manrope-regular.woff2') format('woff2'); 
    font-weight: 400; 
    font-style: normal; 
    font-display: swap; 
} 
@font-face { 
    font-family: 'Manrope'; 
    src: url('https://clements.nl/templates/shaper_helixultimate/fonts/manrope/manrope-medium.woff2') format('woff2'); 
    font-weight: 500; 
    font-style: normal; 
    font-display: swap; 
} 
@font-face { 
    font-family: 'Manrope'; 
        src: url('https://clements.nl/templates/shaper_helixultimate/fonts/manrope/manrope-bold.woff2') format('woff2'); 
        font-weight: 700; 
        font-style: normal; 
        font-display: swap; 
} 


body {
    margin: 0;
    font-family: 'Manrope', sans-serif;
    font-weight: 300;
    color: var(--color-dark);
}

/* Koppen */
h1, h2, h3, h4, h5, h6 {
    font-family: 'Manrope', sans-serif !important;
    font-weight: 700;
}

/* Paragrafen */
p {
    font-family: 'Manrope', sans-serif !important;
    font-weight: 400;
}

/* Links */
a {
    font-family: 'Manrope', sans-serif !important;
    font-weight: 500;
}

/* Formulieren, knoppen, menu’s, inputs */
button,
input,
select,
textarea,
.nav,
.sp-megamenu-parent,
.sp-megamenu-parent a {
    font-family: 'Manrope', sans-serif !important;
}

body .sppb-row {
    margin:0;
}

/* =========================================================
   2. DESIGN TOKENS (COLORS, SPACING, RADII, TYPOGRAPHY)
   ========================================================= */

:root {
    --color-primary: #ff6621;
    --color-primary-dark: #d9531c;
    --color-secondary: #ffe0d1;
    --color-dark: #121212;
    --color-light: #ffffff;
    --color-grey: #ebebeb;

/* Spacing scale */
    --space-xs: 10px;
    --space-sm: 20px;
    --space-md: 30px;
    --space-lg: 40px;
    --space-xl: 75px;

    --header-height: 115px;
    --max-width-content: 1120px;
    --col-max-width: 530px;


    /* Typography */
    --font-base: 'Poppins', sans-serif;
    --font-weight-light: 300;
    --font-weight-regular: 400;
    --font-weight-medium: 500;
    --font-weight-semibold: 550;
    --font-weight-bold: 600;

    --radius-md: 5px;
    --radius-lg: var(--space-xs);

}

@media (max-width:991.98px) {
    :root {
        --space-xl: --space-sm;
    }
}

/* =========================================================
   3. LAYOUT WRAPPERS
   ========================================================= */

/* Universele wrapper voor alle content binnen fluid sections */
.container-max {
    max-width: var(--max-width-content);
    margin: 0 auto;
    padding: 0 var(--space-sm);
}

/* Optioneel: standaard section spacing */
.section {
    padding: var(--space-lg) 0;
}

/* =========================================================
   4. UTILITIES
   ========================================================= */

   /* Hero height utilities */
.hero-xs {min-height: 350px;}
.hero-sm {min-height: 450px;}
.hero-md {min-height: 550px;}
.hero-lg {min-height: 650px;}

.text-center { text-align: center; }
.text-right { text-align: right; }

.mt-sm { margin-top: var(--space-sm); }
.mt-md { margin-top: var(--space-md); }
.mt-lg { margin-top: var(--space-lg); }

.pt-md { padding-top: var(--space-md); }
.pb-md { padding-bottom: var(--space-md); }
.pt-xl { padding-top: var(--space-lg); }
.pb-xl { padding-bottom: var(--space-lg); }


.bg-primary { background: var(--color-primary); color: var(--color-light); }
.bg-grey { background: var(--color-grey); }

.flex { display: flex; }
.flex-center { display: flex; justify-content: center; align-items: center; }
.flex-between { display: flex; justify-content: space-between; }

.rounded { border-radius: var(--radius-md); }

.divider-90px {
    margin: var(--space-md) 0;
    width: 90px;
    color:var(--color-primary);
}

/* =========================================================
   5. TYPOGRAPHY
   ========================================================= */

body h1 {
    font-size: 55px;
    font-weight: 600;
}

body h2 {
    font-size: 28px;
    font-weight: 500;
}

body p {
    line-height: 1.6;
}
body a {
    color:var(--color-primary);
}

@Media (max-width:767px) {
    body h1 {
        font-size: 35px;
    }
    body h2 {
        font-size: 28px;
    }
}

/* =========================================================
   6. BUTTONS
   ========================================================= */

body .sppb-btn {
    display: flex!important;
    justify-content: center;
    flex-wrap:nowrap;
    align-items: center;
    height: 50px;
    width:250px;
    padding: 0px 0px;
    margin: var(--space-lg) 0;
    border-radius: var(--radius-md);
    font-weight: 500;
}

body .sppb-btn-primary, .btn-nspro-subscribe {
    background: var(--color-primary);
    color: var(--color-light);
    border-color: var(--color-primary);
}

body .sppb-btn-primary:hover, body .sppb-btn:hover  {
    background: var(--color-dark);
    color:var(--color-primary)!important;
    border-color: var(--color-primary);
}

body .sppb-btn-secondary {
    background: transparent;
    color: var(--color-light);
    border-color: var(--color-primary);
}

body .sppb-btn-secondary:hover {
    background: var(--color-dark);
    border-color: var(--color-primary);
}

body .btn-lg {
    width:390px;
}
body .btn-xl {
    width:450px;
}
body .hero .sppb-btn-primary:hover, body .sp-megamenu-parent .sppb-btn-primary:hover {
    background: transparent;
}

body .hero .sppb-btn-secondary:hover {
    background: var(--color-dark);
}

@Media (max-width: 991.98px) {
    body .btn-lg {
        width: 250px;
    }
}

/* =========================================================
   7. HEADER / MENU (basis, uitbreidbaar)
   ========================================================= */
#sp-header {
    position: relative;
    z-index: 9990;
    background: transparent;
}

#sp-header.header-sticky {
    background: var(--color-dark);
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    animation: none ;
    margin-top: 0;
    position: fixed;
    z-index: 9990;
    height: var(--header-height-default);
}

#sp-header .logo img {
    height: 50px;
    width: auto;
    display: block;
}

#sp-header-topbar {
    height: var(--space-lg);
    background-color: var(--color-primary);
}

#sp-top2 {
    font-size: 130%;
}

.sp-contact-info {
    display: flex;
    justify-content: flex-end;
    gap: 15px;
}

.fa-phone,
.fa-envelope {
    font-family: none ;
    background-size: contain;
    background-repeat: no-repeat;
    display: inline-block;
    width: var(--space-sm);
    height: var(--space-sm);
}

.fa-phone {
    background-image: url('https://clements.nl/files/2023/06/phonewit.svg');
}

.fa-envelope {
    background-image: url('https://clements.nl/files/2023/06/mailsvg.svg');
}

.fa-phone::before,
.fa-envelope::before {
    content: "" ;
}

.sp-contact-info .fa-phone,
.sp-contact-info .fa-envelope,
.sp-contact-info-2 .fa-phone,
.sp-contact-info-2 .fa-envelope {
    display: inline-block;
    vertical-align: middle;
}

#second-header-row {
    max-width: var(--max-width-content);
}

#second-header-row .row {
    height: 85px ;
    padding-top: 0;
}

#sp-header .logo {
    display: flex;
    position: relative;
    height: 50px;
    border-bottom: none;
    transition: height 0.3s ease;
    margin: 0;
}

#sp-header .logo img.logo-image {
    display: flex;
    height: 49px;
    width: auto;
}

#sp-header .logo img {
    display: flex ;
}

#sp-logo,
#sp-logo .sp-column,
#sp-logo .logo {
    align-items: center;
}

#sp-logo .sp-column,
#sp-menu .sp-column {
    display: flex;
    align-items: flex-start;
    padding: 0;
}

#sp-header.header-sticky .logo {
    height: var(--header-height-sticky);
    padding-top:0px;
}

#sp-header.header-sticky .logo::after {
    background: unset;
}

#sp-menu {
    height:85px;
}
/* Zorg dat het dropdown-item dezelfde uitlijning krijgt als de rest */
.sp-megamenu-parent > li.sp-has-child > a,  .sp-menu-heading {
    color:var(--color-light);
    padding-right: 18px !important; /* ruimte voor het pijltje */
    position: relative;
    display: flex;
    align-items: center; /* tekst verticaal centreren */
}
/* Pijltje zichtbaar en perfect verticaal gecentreerd */
.sp-megamenu-parent > li.sp-has-child > a:after {
    content: "\f107"; /* Font Awesome down arrow */
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    font-size: 12px;
    color: inherit; /* zelfde kleur als tekst */
}
/* Basis: parent goed positioneren */
nav.sp-megamenu-wrapper .sp-megamenu-parent > li.sp-has-child {
    position: relative;
}
/* Zorg dat het dropdown-menu altijd aanwezig is, maar onzichtbaar */
.sp-megamenu-parent > li.sp-has-child .sp-dropdown {
    display: block !important;              /* altijd aanwezig */
    opacity: 0;
    visibility: hidden;
    transform: translateY(20px);
    pointer-events: none;
    transition: opacity 0.35s ease, transform 0.35s ease;
    z-index: 999;
}
/* Bij hover: zichtbaar en omhoog schuiven */
.sp-megamenu-parent > li.sp-has-child:hover .sp-dropdown {
    opacity: 1;
    visibility: visible;
    transform: translateY(-20px);
    pointer-events: auto;
}

/* Niet sticky → transparant */
#sp-header:not(.header-sticky) .sp-dropdown-inner,
.sp-megamenu-parent > li.sp-has-child .sp-dropdown-items > li > a {
    background: transparent;
}

/* Sticky → zwart */
#sp-header.header-sticky .sp-dropdown-inner {
    background: var(--color-dark);
}

/* Child items onder elkaar */
.sp-megamenu-parent > li.sp-has-child .sp-dropdown-items {
    display: block !important;
}
.sp-megamenu-parent > li.sp-has-child .sp-dropdown-items > li {
    display: block !important;
}
/* Styling van de links */
.sp-megamenu-parent > li.sp-has-child .sp-dropdown-items > li > a {
    display: block;
    padding: var(--space-xs) var(--space-sm);
    color: var(--color-light);
    border-bottom: 1px solid rgba(255,255,255,0.1);
    transition: background 0.25s ease;
}
/* Hover effect */
.sp-megamenu-parent > li.sp-has-child .sp-dropdown-items > li > a:hover {
    background: #222;
    color:var(--color-primary);
}
.sp-megamenu-parent > li.sp-menu-item.active>a, .sp-megamenu-parent .sp-dropdown li.sp-menu-item.active>a {
    color:var(--color-primary);
}

/* OFF-CANVAS MENU */
body.ltr.offcanvs-position-right.offcanvas-active .offcanvas-menu {
    Width: 100%;
}
.offcanvas-menu .offcanvas-inner {
    width: 400px;
    margin:auto;

    padding-left:45px;
}
#column-wrap-id-7c41c471-1b49-4436-8030-b080409d31a7 {
    margin-left: calc(40px)*-1;
}
.offcanvas-button {
    border-color: var(--color-primary);
}
.offcanvas-menu .offcanvas-inner ul.menu>li a:hover{
    color:#aaa!important;
}
.offcanvas-inner .sp-contact-info {
    justify-content:flex-start
}
.offcanvas-menu .offcanvas-inner ul.menu>li a:hover, 
.offcanvas-menu .offcanvas-inner ul.menu>li a:focus, 
.offcanvas-menu .offcanvas-inner ul.menu>li span:hover, 
.offcanvas-menu .offcanvas-inner ul.menu>li span:focus {
    color: var(--color-secondary);
}
.menu-toggler {
    margin-right: 170px;
}
ul.mod-menu__sub.menu-child {
    padding-top:5px!important;
    border-top:3px solid var(--color-secondary);
}

/* =========================================================
   8. SECTION CONFIG PER CLASS OR ID
   ========================================================= */
.content-row {
    --section-pt:var(--space-lg);
    --section-pb:var(--space-lg);

}

.fw-content-row {
    --section-min-height: 650px;
}
.two-column-text {
    --section-min-height: 560px;
}
.two-columns-text-orange, .two-columns-with-icons-orange, .contact-form {
    --section-bg:var(--color-secondary);
}
.two-columns-text-grey,.testimonials  {
    --section-bg:var(--color-grey);
}
.fw-text-image-overflow-grey {
    --section-bg:var(--color-grey);
    --section-height:590px;
    --section-min-height:590px;
    --section-pt:0px;
    --section-pb:0px;
}


.footer-banner {
        --section-height:525px;
        --section-pt:0px;
        --section-pb:var(--space-xl);
        --section-bg:var(--color-dark);
        --section-bi:url("https://clements.nl/files/2023/06/logofooter.png");
        background-position: 1000px -750px;
        background-size: cover;
        opacity:0.9;
}
.image-overflow {
    --section-min-height: clamp(
        590px,
        calc(590px + (665 - 590) * ((100vw - 1880px) / (2061 - 1880))),
        665px
    );
}

/* =========================================================
    SECTION ENGINE
   ========================================================= */

.section {
    width: 100%;
    height:100%;

    /* Spacing */


    padding-top: var(--section-pt);
    padding-bottom: var(--section-pb);

    min-height: var(--section-min-height, auto);
    height: var(--section-height, auto); 
    min-height: var(--section-min-height, auto);

    /* Nieuwe toevoeging */ 
    .section.no-fixed-height { --section-height: auto !important; }

    background-color: var(--section-bg, transparent);
    background-image: var(--section-bi);
}


.fw-content-row img { 
        min-height: var(--section-min-height); 
        height: 100%; 
        width: 100%; 
        object-fit: cover; 
}



@media (max-width: 1121.98px) { 
    .section { 
        --section-pt: var(--space-lg);
        --section-pb: var(--space-lg);
        --section-pl:var(--space-sm);
        --section-pr:var(--space-sm);
    } 
    .testimonials {
        --section-pt:0px;
    }
    .footer-banner {
        --section-pt:0px;
        --section-height:auto;
    }
}
@media (max-width: 991.98px) { 
    .section {
        padding-top: 0px;
        padding-bottom:0px;
    }

}



/* =========================================================
   9. HERO / BANNERS
   ========================================================= */
#sp-page-builder .page-content .sppb-section.hero.hero-section:first-child {
    margin-top:calc(var(--header-height)*-1);
    position: relative;
    overflow: hidden; /* optioneel */
    background-size: cover;
    background-repeat: no-repeat;
    padding:0px;
}

.hero {
    min-height: 650px;         
    display: flex;
    align-items: center;        
    --vp-max: 1122px;
    --vp-min: 375px;
}

.hero-overlay {
    max-width:1120px;
}
.hero .sppb-row-container {
    width: var(--max-width-content);
    max-width: var(--max-width-content);
    padding: 0px ;
}

.hero .inner-column-l {
    display: flex;
    flex-direction: column;
    justify-content: center;
    margin-top: 100px;
    gap: var(--space-sm);
    color: var(--color-light);
    max-width:610px;
}

.hero .sppb-addon-button-group .sppb-addon-content {
    display: flex;
    gap: 15px; /* ruimte tussen de knoppen */
    justify-content: flex-center; 
}

#fh-hero::before, #sh-hero::before, #waarom-hero::before,
#voordelen-hero::before, #kennismaking-hero::before,
#reviews-hero::before {
    content: "";
    position: absolute;
    overflow: hidden;
    background-size: cover;
    background-repeat: no-repeat;
    inset: 0;
    filter: brightness(50%);
    z-index: 0;
}

/* =========================================================
   HERO COMPONENT — TEXT COLORS
   ========================================================= */
.hero .inner-column-l,
.hero .inner-column-l h1,
.hero .inner-column-l h2,
.hero .inner-column-l p {
    color: var(--color-light);
}

/* =========================================================
  HERO CONFIG PER ID
   ========================================================= */

#home-hero {
    background-image: url("https://clements.nl/files/2023/07/headerfotoclements-2-–-1.jpg");
    --bg-x-start: -150px;
    --bg-x-end: -850px;
    --bg-y-start: 0px;
    --bg-y-end: 100px;
}

#fh-hero::before {
    background-image: url('https://clements.nl/files/2023/07/MartijnScholtens-Websize-37.jpg');
    transform: scaleX(-1); transform-origin: center; 
    background-position-y: -90px;
} 
#fh-hero > * { 
        position: relative; 
        z-index: 1; 
    }

#sh-hero::before, #waarom-hero::before,#reviews-hero::before, #reviews-hero::before, #kennismaking-hero::before  { 
    background-image: url('https://clements.nl/files/2023/07/MartijnScholtens-Websize-29.jpg');
}

#mb-hero {
    background-image: url("https://clements.nl/files/2023/07/headerfotoclements-3.png");
    --bg-x-start: -150px;
    --bg-x-end: -950px;
    --bg-y-start: 0px;
    --bg-y-end: 100px;
}
#voordelen-hero::before  {
    background-image: url('https://clements.nl/files/2023/07/MartijnScholtens-Websize-20.jpg');

}
#clements-hero {
    background-image: url("https://clements.nl/files/2023/07/headerfotoclements-2-–-2-1.jpg");
    min-height:550px;
    height:550px;
}
#contact-hero {
    background-image: url("https://clements.nl/files/2023/07/headerfotoclements-4.jpg");
    min-height:350px;
    height:350px;

    --bg-x-start: 0px;
    --bg-x-end: -80px;
    --bg-y-start: 0px;
    --bg-y-end: 60px;
}
#kennismaking-hero, #reviews-hero {
    min-height:550px;
    height:550px;
}
#kennismaking-hero::before  {
    min-height:550px;
    height:550px;
}
#voorwaarden-hero {
    background-image: url("https://clements.nl/files/2023/07/headerfotoclements-2-–-1.jpg");
        min-height:450px;
        height:450px;

    }
#cookie-hero {
    background-image: url("https://clements.nl/files/2023/07/headerfotoclements-4.jpg");
    min-height:450px;
    height:450px;
}
#privacy-hero {
    background-image: url("https://clements.nl/files/2023/07/headerfotoclements-3.png");
    min-height:450px;
    height:450px;
}

@media (max-width: 1121.98px) {
    .hero { 
        --t: calc((var(--vp-max) - 100vw) / (var(--vp-max) - var(--vp-min))); 
        --bg-x-current: calc(var(--bg-x-start) + (var(--bg-x-end) - var(--bg-x-start)) * var(--t)); 
        --bg-y-current: calc(var(--bg-y-start) + (var(--bg-y-end) - var(--bg-y-start)) * var(--t));

        background-position-x: var(--bg-x-current);
        background-position-y: var(--bg-y-current); 
    }

    .hero .sppb-row-container{
        margin:0;
    }

    #fh-hero::before {
        background-position: center;
    }
}
@media (max-width: 991.98px) {
    .hero-overlay {
        margin-top:100px;
    }
}

@media (max-width: 767px) {
    .hero-overlay {
        margin-top:100px;
    }
    .hero .sppb-addon-button-group .sppb-addon-content {
    display: block; 
    }
    .hero .inner-column-l {
        max-width: 90%;
    }
    #fh-hero::before {
        background-position: 60%;
    }
}

/* =========================================================
   USP COMPONENT 
   ========================================================= */
#usp-section{
    background: var(--color-dark);
}
.usp-bar-wrapper {
    max-width:var(--max-width-content);

    margin:0 auto;
}

#usp-bar .usp-inner-div { 
    display: flex; 
    align-items: center; 
    gap: var(--space-xs); 
} 
#usp-bar .usp-inner-div p { 
    margin: 0 !important; 
}

@media (max-width: 767.98px) {
       /* Outer container moet een vast frame zijn */ 
    #usp-bar .usp-outer-div { 
        position: relative; 
        height: 50px; 
        /* pas aan naar jouw hoogte */ 
        overflow: hidden; 
    } 
    /* Alle USP-wrappers bovenop elkaar leggen */ 
    #usp-bar .usp-outer-div > .sppb-addon-wrapper { 
        position: absolute !important; 
        top: 0; 
        left: 0; 
        width: 100% !important; 
        display: none !important; 
        justify-content: center !important; 
        align-items: center !important; 
        text-align: center !important; 
        /* BELANGRIJK: reset alle transforms van SP Pagebuilder */ 
        transform: translateX(0) !important; 
    } 
    /* Alleen de actieve wrapper tonen */ 
    #usp-bar .usp-outer-div > .sppb-addon-wrapper.active { 
        display: flex !important; 
    } 
    /* Animatieklassen */ 
    .slide-out-left { 
            animation: slideOutLeft 0.4s forwards ease; 
        } 
    .slide-in-right { 
            animation: slideInRight 0.4s forwards ease; 
        } 
        /* Van rechts naar binnen */ 
        @keyframes slideInRight { 
            from { 
                transform: translateX(100%); opacity: 0; } to { transform: translateX(0); opacity: 1; 
            } 
        } 
            /* Naar links naar buiten */ 
        @keyframes slideOutLeft { 
                from { transform: translateX(0); opacity: 1;} to { transform: translateX(-100%); opacity: 0; } 
            }
    /* Verticaal centreren van de USP in de zwarte balk */ 
    #usp-bar .usp-outer-div { 
            display: flex !important; 
            justify-content: center !important; 
            align-items: center !important;  /* DIT centreert verticaal */ 
            height: 50px; /* jouw bestaande hoogte */ 
        } 
    /* De USP-wrappers blijven absolute positioned */ 
    #usp-bar .usp-outer-div > .sppb-addon-wrapper { 
            top: 0; left: 0; height: 100% !important; /* vult nu de hele balk */ 
            display: none !important; justify-content: center !important; 
            align-items: center !important; /* extra zekerheid */ text-align: center !important; 
    } 
    #usp-bar .usp-outer-div > .sppb-addon-wrapper.active { 
            display: flex !important;
    }  
}

/* =========================================================
   USP BLOCK IN CONTACT FORM 
   ========================================================= */
.usp-block {
    Display:flex;
    flex-direction:column;
    justify-content:flex-start;
    align-items: left;
    padding-left:var(--space-sm);
    background:var(--color-grey);
    Max-width: 400px;
    margin-bottom:36px;
}
 .usp-block .usp-inner-div {
    display:flex;
    flex-direction:row;
    justify-content:flex-start;
    align-items: left;
 }
 .usp-block .sppb-addon-content  {
    color:var(--color-dark);
    padding-left: var(--space-xs);
 }
.usp-block-top-row {
    padding-top:var(--space-sm);
}

/* =========================================================
   9. GRID / FLEX LAYOUTS
   ========================================================= */
   body .sppb-row-column {
    padding:0px;    
}
.fw-column {
    max-width:var(--col-max-width);
}
.fw-column-l {
    margin-left: auto;
    padding-right: var(--space-md);
}
.fw-column-r {
    padding-left: var(--space-sm);
}

.content-row-2-columns {
    display: flex ;
    padding-top: 55px;
}

.fa-icon-text-div, .fw-fa-icon-text-div {
    display:flex;
    flex-direction: row;
    text-align:left;
    align-items: flex-start;
}
.two-columns-with-icons-orange .fa-solid {
    color: var(--color-primary);
    padding-top: var(--space-xs);
}

.two-columns-with-icons-orange .sppb-btn {
    margin-left:50px;
}
.single-col-fa-icon-text-div{
    max-width:var(--col-max-width);
}

.addon-root-raw-html {
    padding: 0 var(--space-sm);
}

/* Wrapper voor twee kolommen */
.inner-columns {
    display: flex;
    gap: var(--space-lg); /* ruimte tussen kolommen */
}

/* Linker- en rechterkolom */
.inner-column-l,
.inner-column-r {
    flex: 1;
    width: 50%;
}

.content-row-image-textblock .inner-content-row {
    display: flex ;
    padding-top: 55px;
}

.content-row-image-textblock .inner-content-row > * {
    width: 50%;
    margin: auto;
}

.content-row-image-textblock img {
    width: 100% ;
    max-width: 150px ;
    height: auto ;
    object-position: 50% 50%;
}

.content-row-image-textblock-img-l {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 530px;
    height: 150px;
}

.inner-content-row {
    max-width: var(--max-width-content);
    margin: 0 auto;
}

.footer-banner .sppb-button-wrapper {
    padding-bottom: var(--space-lg);
}

@media (max-width:1121.98px) {
    .fw-column {
        padding-left: var(--space-sm);
    }
}

/* Onder elkaar bij schermbreedte ≤ 991.98px */
@media (max-width: 991.98px) {
    .fw-content-row { 
        display: flex; 
        flex-direction: column; /* kolommen onder elkaar */
     }
    .fw-content-row .fw-column { 
        order: -1; /* altijd eerst */ 
    }
    .two-columns {
        flex-direction: column;
    }
    .fw-column-l, .pt-xl  {
    margin-left: 0px;
    padding-top: 0px;
    }
    .inner-columns {
        flex-direction: column;
    }

    .inner-column-l,
    .inner-column-r {
        width: 100%;
    }

    .inner-content-row {
        max-width: 990px ;
        width: 95%;
        margin: 0 var(--space-sm);
        padding: 0 var(--space-sm);
        flex-direction: column;
        align-items: flex-start;
    }
    .content-row-image-textblock .inner-content-row > * {
        width: 100%;
        margin: 0;
    }
    .content-row-image-textblock-img-l {
        justify-content: flex-start;
    }
    .inner-image-column {
        margin-bottom: var(--space-lg);
    }
    .content-row-2-columns {
        display: block;
    }
    .single-col-fa-icon-text-div {
        max-width: 100%;
        width:100%;
    }
}
@media (max-width: 767px) {
    .section {
        padding: 0px;
    }
}
/* ========================================================
/* Overflow image row 
===========================================================*/
.fw-text-image-overflow-grey {
    overflow: visible ;
}

.fw-text-image-overflow-grey .image-column-overflow {
    position: relative;
    overflow: visible;
}

.fw-text-image-overflow-grey .image-column-overflow img {
    display: block;
    width: 90%;
    margin-top: -160px;
    
}

.fw-text-image-overflow-grey .fw-column-l {
    max-width: 600px;
    width: 600px;
    margin-top:var(--space-md);
}

@media (min-width: 1857px) {
    .fw-text-image-overflow-grey .image-column-overflow img {
        width: 90%;
        height: auto;
        margin-top: -160px;
    }
}

@media (min-width: 1500px) and (max-width: 1856px) {
    .fw-text-image-overflow-grey .image-column-overflow img {
        width: auto;

        /* hoogte interpolatie 598px → 750px */
        --img-height: clamp(
            598px,
            calc(598px + (750 - 598) * ((100vw - 1500px) / (1856 - 1500))),
            750px
        );

        height: var(--img-height);

        /* onderkant gelijk houden met rij van 590px */
        margin-top: calc(-1 * (var(--img-height) - 590px));
    }
}

@media (max-width: 1499px) {
    .fw-text-image-overflow-grey { 
        --section-height: auto !important; }

    .fw-text-image-overflow-grey .image-column-overflow {
        display: flex;
        flex-direction: column;
        justify-content: flex-end;  /* duwt de afbeelding naar de onderkant */
       /* height: 665px;              /* rijhoogte */
        overflow: hidden;           /* bovenkant mag uitsteken als hij hoger is */
    }

    .fw-text-image-overflow-grey .image-column-overflow img {
        width: 100%;
        height: auto;               /* schaalt netjes mee */
        max-height: none;           /* geen harde cap meer */
        object-fit: contain;        /* of gewoon weglaten */
        margin: 0 0 calc(var(--space-xs))*-1 0;
    }

}
@media (max-width: 1121.98px) {
        .fw-text-image-overflow-grey {
            padding-top: 0;
            padding-bottom: 0;
        }
}


@media (max-width: 991px) {

    .fw-text-image-overflow-grey .fw-column-l {
        width: 90%;
    }
    /* 1. Kolommen onder elkaar */
    .fw-text-image-overflow-grey .fw-row {
        display: flex;
        flex-direction: column;
        overflow: visible; /* rij mag meegroeien */
    }

    /* 2. Afbeeldingskolom */
    .fw-text-image-overflow-grey .image-column-overflow {
        display: flex;
        flex-direction: column;
        justify-content: flex-end;   /* afbeelding naar onderkant */
       /* min-height: 665px;           /* onderkant blijft gelijk */
        overflow: visible;           /* bovenkant mag uitsteken */
        order: -1;                   /* afbeelding boven tekst */
        position: relative;
        z-index: 2;
    }

    /* 3. Afbeelding schaalt mee en blijft onderaan */
    .fw-text-image-overflow-grey .image-column-overflow img {
        width: 100%;
        height: auto;
        flex-shrink: 0;
        margin: 0 0 calc(var(--space-xs))*-1 0;
    }
}
/* =========================================================
   10. Over clements
   ========================================================= */
body .sppb-addon-timeline .sppb-addon-timeline-wrapper .timeline-movement .timeline-item .timeline-panel {
    border-radius: 10px;
    background-color: #ebebeb;
}
.over-mij .sppb-addon-wrapper, .over-mij .sppb-addon-timeline-text-wrap {
    display:flex;
    justify-content:center;
    margin-bottom: var(--space-sm);
}
.sppb-addon-timeline .sppb-addon-timeline-wrapper .timeline-badge:before, 
.sppb-addon-timeline .sppb-addon-timeline-wrapper .timeline-badge:after,
.sppb-addon-timeline .sppb-addon-timeline-wrapper:before  {
    border-color:var(--color-primary);
    background-color:var(--color-primary);

}

/* =========================================================
   11. Testimonial
   ========================================================= */
body .addon-root-testimonial-carousel {
    max-width: 90% ;
    padding-left:var(--space-lg);
    padding-right:var(--space-lg);
}

.testimonial-div {
    display:flex!important;
    Flex-direction:column;
    align-items:center;
    gap:var(--space-sm);
    width: 100%;
    margin-left: auto;
    margin-right:auto;
    padding-top: var(--space-sm);
}
.testimonial-div h2 {
    color:var(--color-primary)
}

.addon-root-heading {
    display:flex;
    justify-content: center;
}

.prev-control{
    margin-left:var(--space-sm);
}

.next-control{
    margin-right:var(--space-sm);
}


.fa-angle-left,
.fa-angle-right {
    font-family: "Font Awesome 6 Free" ;
    font-size:58px;
    background-size: cover;
    color:var(--color-primary);
    background-repeat: no-repeat;
    display: inline-block;
    width: var(--space-lg);
    height: var(--space-lg);
}
.fa-quote-left  {
    font-family: "Font Awesome 6 Free" ;
    font-size:58px;
    background-size: cover;
    color:var(--color-secondary);
}
.sppb-testimonial-carousel-rating::before, .sppb-testimonial-carousel-rating::after {
    color: #fcbb06;
}

/* =========================================================
   12. FOOTER banner
   ========================================================= */
.footer-banner {
    color:var(--color-grey)
}

/* =========================================================
   13. FORMS (basis)
   ========================================================= */

form input,
form textarea {
    width: 100%;
    padding: 12px;
    border: 1px solid #ccc;
    border-radius: var(--radius-sm);
}

/* Form grid container */
#rpx_contactform1 {
    max-width: 550px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-sm);
}

/* Textarea height */
#rpx_contactform1 textarea {
    height: 100px;
}

/* Labels */
#rpx_contactform1 .rpx_label label {
    display: block;
    font-weight: var(--font-weight-bold);
    margin-bottom: 6px;
}
 .rpx_field_input label { 
    display: flex; 
    align-items: center; 
    gap: 8px; /* ruimte tussen checkbox en tekst */ 
}

/* Inputs & textarea (excl. checkbox) */
#rpx_contactform1 input:not([type="checkbox"]),
#rpx_contactform1 textarea {

    padding: var(--space-xs) 12px;
    border: 1px solid #ccc;
    border-radius: 5px;
    font-size: 1rem;
}

/* Checkbox rows */
#rpx_contactform1 .rpx_field_input {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Checkbox input */
#rpx_contactform1 input[type="checkbox"] {
    width: auto;
    margin: 0;
}

/* Remove clearfix */
.rpx_clr {
    display: none;
}

/* Grid layout mapping */
.rpx_field_2 { grid-area: 1 / 1; } /* Naam contactpersoon */
.rpx_field_3 { grid-area: 2 / 1; } /* Telefoonnummer */
.rpx_field_8 { grid-area: 1 / 2; } /* Naam organisatie */
.rpx_field_1 { grid-area: 2 / 2; } /* E-mail */

/* Full-width fields */
.rpx_field_4,
.rpx_field_6,
.rpx_field_7,
.rpx_field_copy,
.rpx_field_button,
.rpx_field_captcha {
    grid-column: 1 / -1;
}

/* Wider labels for specific fields */
#rpx_contactform1 .rpx_field_2 .rpx_label label,
#rpx_contactform1 .rpx_field_8 .rpx_label label {
    width: 265x;
    display: inline-block;
}

/* Contact form block */

.contact-form a {
    color: #27B63B;
}

/* Submit button */
.contact-form .btn-primary,
.contact-page-form .btn-primary {
    background-color: #27B63B;
    border-color: #27B63B;
    color: var(--color-light);
    width: 150px;
    margin: 25px 0 35px;
}

.contact-form .btn-primary:hover {
    background-color: #3ad450;
    border-color: #3ad450;
}

/* Last block spacing */
.last-block {
    margin-bottom: 45px;
}

/* Column alignment for specific layout */
#column-id-66a1ade8-ed8b-4b5d-9107-0b4109b040c1 {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}

/* Contact page container */
.contact-page {
    padding-bottom:0px;
}
.contact-page .sppb-row-container {
    max-width: var(--max-width-content);
}



/* =========================================================
   13. FOOTER
   ========================================================= */

.footer-info {
    background: var(--color-dark);
    color: var(--color-light);
}

.footer-info a {
    color: var(--color-light);
    text-decoration: none;
}

.footer-info a:hover {
    color: var(--color-primary);
}

.footer-info p, .modnsprointro a, .footer-info .sppb-addon-title {
    font-weight:600;
    color:var(--color-primary);
}




/* Main footer layout 
.footer-info-row-1 {
    display: flex;
    align-items: flex-start;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: space-between;
    max-width: var(--max-width-content);
    margin: 80px auto 0 auto ;
}

.sppb-div-addon.footer-info-row-1 {
    justify-content: space-between ;
    align-items: flex-start ;
}

.sppb-div-addon.footer-info-row-1 .sppb-addon-wrapper {
    width: 250px;
}
*/
/* Standaard: 4 kolommen */
/* Basisgrid – 4 kolommen */
.footer-info-row-1 {
    padding-top: var(--space-md);
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-md);
}

/* Zorg dat elk kind zichzelf niet uitrekt */
.footer-info-row-1 > * {
    align-self: start;      /* voorkom verticale stretch */
    height: auto;           /* laat de eigen inhoud bepalen */
}
.footer-info-row-1 .sppb-addon-wrapper::before,
.footer-info-row-1 .sppb-addon-wrapper::after,
.footer-info-row-1 .clearfix::before,
.footer-info-row-1 .clearfix::after,
.footer-info-row-1 .sppb-addon-image-shape::before,
.footer-info-row-1 .sppb-addon-image-shape::after {
    display: none !important;
    content: none !important;
}

@media (min-width: 768px) and (max-width: 1122px) {

    .footer-info-row-1 {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        grid-template-rows: auto auto auto; /* 3 rijen */
        column-gap: var(--space-lg);
        row-gap: var(--space-sm);
    }

    /* Logo: links, rij 1 */
    .footer-info-row-1 .footer-info-logo {
        grid-column: 1;
        grid-row: 1;
    }

    /* Socials: rechts, rij 1 én 2 */
    .footer-info-row-1 .footer-info-socials {
        grid-column: 2;
        grid-row: 1 / span 2;
    }

    /* Menu: links, rij 2 */
    .footer-info-row-1 .footer-info-menu {
        grid-column: 1;
        grid-row: 2;
    }

    /* Nieuwsbrief: rechts, rij 3 */
    .footer-info-row-1 .footer-info-nieuwsbrief {
        grid-column: 2;
        grid-row: 3;
    }

    /* wrappers laten verdwijnen zodat inner addons grid-items zijn */
    .footer-info-row-1 .sppb-addon-wrapper {
        display: contents;
    }
    .mod_nspro.nieuwsbrief {
        margin-top:-250px;
    }
}

@media (max-width: 768px) {
    .footer-info-row-1 {
        grid-template-columns: 1fr;   /* één kolom */
        gap: 30px;
        grid-auto-rows: auto;
    }

    .footer-info-row-1 > * {
        align-self: start;
        height: auto;
    }

    .footer-info-row-1 .sppb-addon-wrapper { display: block; }
}


/* Contact info list */
.footer-info ul.sp-contact-info {
    display: block ;
    padding: 0;
    margin: 0;
    list-style: none;
}

.footer-info ul.sp-contact-info li {
    display: block ;
    margin-bottom: 8px;
}

ul.sp-contact-info li span,
ul.sp-contact-info li a {
    display: inline-block;
    vertical-align: middle;
    color: var(--color-light);
}

#contact-page ul.sp-contact-info li a {
    color: var(--color-dark) ;
}

/* Footer menu */
.footer-info ul.mod-menu.mod-list.menu {
    display: block ;
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-info ul.mod-menu.mod-list.menu li {
    display: block ;
    margin-bottom: 8px;
}

.footer-info ul.mod-menu.mod-list.menu li a {
    color: var(--color-light);
    text-decoration: none;
    display: block;
}

.footer-info ul.mod-menu.mod-list.menu li a:hover {
    color: var(--color-primary) ;
}

/* Social icons */
.socials-list {
    display: flex ;
}

.fa-youtube,
.social-icon-youtube a {
    color: #ff0000!important ;
}

.fa-linkedin,
.fa-custom {
    color: #0E76A8!important ;
}

.fa-whatsapp {
    color: #25D366!important ;
}

/* Newsletter form */
.modnsprointro {
    color: var(--color-primary);
}

.footer-info .nspro_field.mailing_lists_field {
    display: none ;
}

/* Partner logos */
.footer-partner-logos {
    display: flex ;
    justify-content: space-evenly;
    flex-wrap: wrap;
    max-width: var(--max-width-content);
    width: 100%;
    padding: 0 50px;
}

.footer-partner-logos img {
    max-width: 100%;
    height: auto;
}

#sp-footer1 {
    max-width: var(--max-width-content) ;
    display: flex;
    justify-content: center;
    margin: auto;
}

