:root{--pink:#f02d98;--dark:#09090c;--text:#fff}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#0b0b0e;color:#fff;font:400 15px/1.65 Poppins,Arial,sans-serif}
a{color:inherit;text-decoration:none}
button,input{font:inherit}
button{cursor:pointer}
.container{width:min(1200px,calc(100% - 48px));margin-inline:auto}
.sing-header{position:fixed;top:0;left:0;right:0;z-index:1000;background:transparent;transition:background .25s ease,box-shadow .25s ease}
.sing-header.scrolled,.sing-header.menu-open{background:rgba(7,7,10,.95);box-shadow:0 6px 20px #0006;backdrop-filter:blur(10px)}
.header-inner{min-height:82px;display:flex;align-items:center;gap:20px}
.brand{display:block;flex:none;width:0;opacity:0;overflow:hidden;transition:width .25s ease,opacity .25s ease}
.brand img{display:block;width:120px;height:auto}
.scrolled .brand,.menu-open .brand{width:120px;opacity:1}
.site-nav{display:flex;align-items:center;justify-content:flex-end;gap:23px;flex:1}
.site-nav-link{font-size:.86rem;font-weight:600;position:relative;white-space:nowrap;padding:12px 0}
.site-nav-link::after{content:"";position:absolute;bottom:4px;left:0;height:3px;width:0;background:var(--pink);border-radius:2px;transition:width .25s ease}
.site-nav-link:hover::after,.site-nav-link.active::after,.site-nav-link:focus-visible::after{width:100%}
.site-nav-link:hover,.site-nav-link.active{color:#fff}
.site-cta,.btn-pink,.btn-outline{display:inline-flex;align-items:center;justify-content:center;border-radius:4px;padding:11px 18px;font-weight:700;font-size:.9rem;transition:background .2s ease,transform .2s ease}
.site-cta,.btn-pink{background:var(--pink);color:#fff}
.site-cta:hover,.btn-pink:hover{background:#cf217e;transform:translateY(-2px)}
.btn-outline{border:1px solid #ffffffa0;color:#fff}
.btn-outline:hover{background:#ffffff1c}
.language-flag{display:grid;place-items:center;flex:0 0 31px;width:31px;height:28px;border-radius:4px;transition:background .2s}
.language-flag:hover{background:#ffffff18}
.flag{width:23px;height:16px;border-radius:1px;border:1px solid #ffffff55;box-shadow:0 1px 4px #0004;display:block}
.flag-de{background:linear-gradient(to bottom,#111 0 33.33%,#dd1f26 33.33% 66.66%,#ffc400 66.66%)}
.flag-nl{background:linear-gradient(to bottom,#ae1c28 0 33.33%,#fff 33.33% 66.66%,#21468b 66.66%)}
.nav-toggle{display:none;background:transparent;border:1px solid #ffffff55;border-radius:5px;padding:10px}
.nav-toggle span{display:block;width:22px;height:2px;background:#fff;margin:4px 0}
.hero2{min-height:720px;min-height:max(700px,95svh);display:flex;align-items:stretch;position:relative;overflow:hidden;background:#100d14;background-image:linear-gradient(90deg,rgba(3,2,5,var(--overlay-opacity,.65)),rgba(3,2,5,var(--overlay-opacity,.65))),var(--hero-image,var(--section-image,url('/data/hero-bg.webp')));background-size:cover;background-position:center center}
.hero2:before{content:"";pointer-events:none;position:absolute;inset:0;background:linear-gradient(0deg,#0d0a0f 0%,transparent 24%)}
.hero-container{position:relative;display:flex;align-items:center;min-height:inherit}
.hero-inner{position:relative;z-index:2;max-width:690px;padding:120px 0 85px}
.hero-logo{display:block;width:clamp(150px,20vw,245px);height:auto;margin-bottom:20px}
.hero2 h1{font-size:clamp(2rem,3.55vw,3.5rem);font-weight:800;line-height:1.16;letter-spacing:-.035em;margin:0}
.hero2 p{font-size:clamp(1rem,1.35vw,1.14rem);line-height:1.8;max-width:600px;margin:24px 0}
.hero-buttons{display:flex;gap:13px;flex-wrap:wrap}
.hero-people{position:absolute;right:-35px;bottom:-5px;width:min(49vw,630px);max-height:87%;object-fit:contain;object-position:right bottom;z-index:1;transform-origin:55% 95%;animation:singSwing 5.5s ease-in-out infinite alternate}
@keyframes singSwing{0%{transform:rotate(-1.15deg) translateY(2px)}50%{transform:rotate(.5deg) translateY(-5px)}100%{transform:rotate(1.5deg) translateY(0)}}
.module-section{color:var(--section-text,#fff);background-color:var(--section-bg,transparent);background-image:var(--section-image,none);background-size:cover;background-position:center}
.module-section h1,.module-section h2,.module-section h3{color:var(--section-heading,inherit)}
.content-section{padding:85px 0}
.content-narrow{max-width:900px}
.content-section h2{font-size:clamp(1.8rem,3.3vw,2.9rem);font-weight:800;line-height:1.2;margin:0 0 26px}
.richtext{line-height:1.85}.richtext p{margin:0 0 1em}
.section-dark{background-color:var(--section-bg,#151216)}
.cards-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.sing-card{display:block;background:#1a171d;border:1px solid #37303a;border-radius:7px;color:#fff;padding:30px}
.sing-card h3{font-size:1.2rem;font-weight:700;margin:0 0 12px}
.sing-card p{margin:0}
.image-text-grid{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:55px}
.section-image{display:block;max-width:100%;height:auto;border-radius:8px}
.text-center{text-align:center}
.site-footer{background:#050507;border-top:1px solid #201b24;padding:38px 0}
.footer-layout{display:flex;align-items:center;justify-content:space-between;gap:35px;flex-wrap:wrap}
.footer-brand{display:flex;align-items:center;gap:22px;color:#a8a2aa;font-size:13px}
.footer-brand img{width:105px;height:auto}
.footer-menu{display:flex;gap:10px 24px;align-items:center;flex-wrap:wrap}
.footer-menu a,.footer-cookie-settings{font-size:13px;color:#beb8c0;transition:color .2s}
.footer-menu a:hover,.footer-cookie-settings:hover{color:var(--pink)}
.footer-cookie-settings{border:0;background:transparent;padding:0}
.cookie-wall[hidden]{display:none}
.cookie-wall{position:fixed;inset:0;z-index:4000;display:grid;place-items:center;padding:16px}
.cookie-backdrop{position:absolute;inset:0;background:#000b}
.cookie-panel{position:relative;max-width:550px;width:100%;padding:30px;background:#1b1920;border:1px solid #4b3b4a;border-radius:10px;box-shadow:0 20px 70px #000a}
.cookie-panel h2{font-size:1.5rem;margin:0 0 10px}
.cookie-panel p{color:#ddd}
.cookie-option{display:flex;align-items:center;gap:10px;margin:18px 0}
.cookie-buttons{display:flex;gap:10px;flex-wrap:wrap}
.cookie-buttons button{padding:10px 14px;border:1px solid #6b5b68;border-radius:4px;background:#28232d;color:#fff}
.cookie-buttons .btn-pink{background:var(--pink);border-color:var(--pink)}
@media(max-width:1050px){.site-nav{gap:12px}.site-nav-link{font-size:.8rem}.hero-people{width:48vw;opacity:.88}.hero-inner{max-width:60%}}
@media(max-width:850px){
 .header-inner{min-height:70px}.brand,.scrolled .brand,.menu-open .brand{width:110px;opacity:1}.brand img{width:110px}
 .nav-toggle{display:block;margin-left:auto;order:2}.language-flag{order:3}
 .site-nav{display:none;position:absolute;top:70px;left:0;right:0;background:#0a0a0ef7;padding:16px 24px 25px;flex-direction:column;align-items:stretch;gap:3px;box-shadow:0 15px 30px #0006}
 .menu-open .site-nav{display:flex}.site-nav-link{font-size:1rem;padding:12px 5px}
 .site-cta{margin-top:10px}
 .hero2{min-height:660px}.hero-inner{max-width:75%;padding:125px 0 100px}
 .hero-people{width:53vw;opacity:.57}
 .cards-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.image-text-grid{grid-template-columns:1fr;gap:32px}
}
@media(max-width:600px){
 .container{width:min(100% - 32px,1200px)}
 .hero2{min-height:680px;align-items:flex-start}.hero-container{align-items:flex-start}
 .hero-inner{max-width:100%;padding:125px 0 260px}
 .hero-logo{width:170px}.hero2 h1{font-size:2.1rem}.hero2 p{font-size:1rem;margin:15px 0}
 .hero-people{width:72vw;max-height:43%;right:-5%;opacity:.75}
 .content-section{padding:55px 0}.cards-grid{grid-template-columns:1fr}
 .footer-layout{flex-direction:column;align-items:flex-start}
}
@media(prefers-reduced-motion:reduce){.hero-people{animation:none}*,*:before,*:after{scroll-behavior:auto!important}}

/* Hero: deze regel moet ná .module-section staan zodat de achtergrond niet wordt overschreven. */
.hero2.module-section{
  min-height:var(--hero-height,720px);
  background-color:var(--section-bg,#100d14);
  background-image:
    linear-gradient(90deg,rgba(3,2,5,var(--overlay-opacity,.55)),rgba(3,2,5,var(--overlay-opacity,.55))),
    var(--hero-image,var(--section-image,url('/data/hero-bg.webp')));
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
}
/* Full-width navigatie met logo links en alle controls rechts */
.sing-header .header-inner{width:calc(100% - 64px);max-width:none;margin-inline:auto}
.sing-header .site-nav{justify-content:flex-end;margin-left:auto}
.sing-header .language-flag{margin-left:7px;overflow:hidden}
.sing-header .flag{box-sizing:border-box;background-clip:border-box}
.sing-header .flag-de{background:linear-gradient(to bottom,#101010 0%,#101010 33.333%,#dd1f26 33.333%,#dd1f26 66.666%,#ffce00 66.666%,#ffce00 100%);border:0;outline:1px solid #ffffff50}
.sing-header .flag-nl{background:linear-gradient(to bottom,#ae1c28 0%,#ae1c28 33.333%,#fff 33.333%,#fff 66.666%,#21468b 66.666%,#21468b 100%);border:0;outline:1px solid #ffffff50}
@media(max-width:850px){.sing-header .header-inner{width:calc(100% - 32px)}}
@media(max-width:600px){
  .hero2.module-section{min-height:var(--hero-height-mobile,680px)}
  .hero2 .hero-inner{padding-bottom:245px}
}

/* Hero: meer ruimte voor de mensen rechts, compactere kop en rondere CTA's. */
.site-cta,.btn-pink,.btn-outline{border-radius:9px}
.hero2 .hero-inner{max-width:735px}
.hero2 h1{font-size:clamp(1.95rem,3.15vw,3.12rem);line-height:1.15}
.hero2 .hero-people{
  width:min(59vw,780px);
  max-height:99%;
  right:-25px;
  bottom:-5px;
  object-fit:contain;
  object-position:right bottom;
}
.hero2 .hero-copy p{margin:23px 0;line-height:1.8;max-width:615px}
.hero2 .hero-copy .hero-action-links,
.hero2 .hero-buttons{display:flex;flex-wrap:wrap;gap:12px;margin:25px 0 0;max-width:none}
.hero2 .hero-copy .hero-action-links a,
.hero2 .hero-buttons a{margin:0}
.hero2 .hero-copy a.btn-pink,.hero2 .hero-copy a.btn-outline{display:inline-flex;text-decoration:none}
@media(max-width:1050px){
 .hero2 .hero-inner{max-width:67%}
 .hero2 .hero-people{width:57vw;right:-25px;max-height:96%;opacity:.9}
}
@media(max-width:850px){
 .hero2 .hero-inner{max-width:78%}
 .hero2 .hero-people{width:61vw;max-height:87%;opacity:.65}
}
@media(max-width:600px){
 .hero2 .hero-inner{max-width:100%}
 .hero2 h1{font-size:clamp(1.95rem,7.5vw,2.25rem)}
 .hero2 .hero-people{width:83vw;max-height:45%;right:-5%;opacity:.75}
 .hero2 .hero-copy .hero-action-links{gap:9px}
}

/* Lange briefingteksten: leesbare opmaak en links naar advies en modellen. */
.content-section .richtext h3{
 font-size:clamp(1.12rem,1.85vw,1.45rem);font-weight:700;
 line-height:1.35;margin:30px 0 11px;
}
.content-section .richtext ul{padding-left:1.35em;margin:16px 0 25px}
.content-section .richtext li{padding-left:4px;margin:6px 0}
.content-section .richtext p{margin:0 0 18px}
.content-section .richtext strong{font-weight:700}
.content-section .richtext a.btn-pink,.content-section .richtext a.btn-outline{
 display:inline-flex;margin:10px 0 4px;text-decoration:none;
}

/* Hoofdmenu: parentitems met dropdown; met muis, toetsenbord en touch te bedienen */
.site-nav-group{position:relative;display:flex;align-items:center;gap:4px}
.site-nav-group .site-nav-link{display:block}
.submenu-toggle{display:grid;place-items:center;border:0;background:none;color:#fff;padding:6px 3px;font-size:18px;line-height:1}
.submenu-toggle:hover,.submenu-open .submenu-toggle{color:var(--pink)}
.site-submenu{
 display:none;position:absolute;z-index:1200;left:0;top:100%;
 min-width:210px;max-width:290px;padding:9px 0;
 border:1px solid #3f303c;border-radius:7px;
 background:rgba(14,12,18,.97);box-shadow:0 12px 30px #0008;
}
.site-nav-group:hover>.site-submenu,
.site-nav-group:focus-within>.site-submenu,
.site-nav-group.submenu-open>.site-submenu{display:grid}
.site-submenu-link{display:block;padding:9px 17px;color:#f5edf5;font-size:.85rem;line-height:1.45}
.site-submenu-link:hover,.site-submenu-link:focus-visible,.site-submenu-link.active{color:#fff;background:#f02d982b}
@media(max-width:850px){
 .site-nav-group{display:flex;flex-wrap:wrap;justify-content:space-between}
 .site-nav-group .site-nav-link{flex:1}
 .site-submenu{position:static;display:none;flex:0 0 100%;min-width:0;max-width:none;box-shadow:none;margin:0 0 10px;padding:4px 0;border-color:#413243}
 .site-nav-group:hover:not(.submenu-open)>.site-submenu{display:none}
 .site-nav-group:focus-within:not(.submenu-open)>.site-submenu{display:none}
 .site-nav-group.submenu-open>.site-submenu{display:grid}
 .submenu-toggle{width:40px;min-height:36px}
}

/* Uitlijning zingende mensen: tegen rechter schermrand of rechter containerrand.
   De hero-container blijft de positioneringscontext; screen gebruikt de halve
   extra viewportbreedte buiten de gecentreerde container. */
.hero2 .hero-people--container{right:0}
.hero2 .hero-people--screen{right:min(0px,calc((min(1200px,100vw - 48px) - 100vw) / 2))}
@media(max-width:600px){
 .hero2 .hero-people--container{right:0}
 .hero2 .hero-people--screen{right:min(0px,calc((100vw - 32px - 100vw) / 2))}
}

/* Iedere module heeft een eigen contentbreedte en tekstuitlijning.
   De sectie-achtergrond loopt altijd over de schermbreedte;
   'Volledige breedte' vergroot de inhoud tot aan de zijmarges. */
.module-section.module-layout--full > .container{
  width:calc(100% - 48px);
  max-width:none;
}
.module-section.module-layout--full > .container.content-narrow{max-width:none}
.module-section.module-align--left{text-align:left}
.module-section.module-align--center{text-align:center}
.module-section.module-align--right{text-align:right}
.module-section.module-align--left .hero-inner{margin-right:auto;margin-left:0}
.module-section.module-align--center .hero-inner{margin-inline:auto}
.module-section.module-align--right .hero-inner{margin-left:auto;margin-right:0}
.module-section.module-align--left .hero-logo{margin-left:0;margin-right:auto}
.module-section.module-align--center .hero-logo{margin-left:auto;margin-right:auto}
.module-section.module-align--right .hero-logo{margin-left:auto;margin-right:0}
.module-section.module-align--left .hero-buttons,
.module-section.module-align--left .hero-action-links{justify-content:flex-start}
.module-section.module-align--center .hero-buttons,
.module-section.module-align--center .hero-action-links{justify-content:center}
.module-section.module-align--right .hero-buttons,
.module-section.module-align--right .hero-action-links{justify-content:flex-end}
@media(max-width:600px){
  .module-section.module-layout--full > .container{width:calc(100% - 32px)}
}

/* Foto-module: full bleed of contentcontainer, verticale positie en optionele parallax */
.photo-module{padding:0;overflow:clip}
.photo-module .photo-wrap{position:relative}
.photo-module.module-layout--full > .photo-wrap{
  width:100%;max-width:none;margin-inline:0;
}
.photo-module .photo-visual{
  width:100%;height:var(--photo-height,500px);
  background-position:center var(--photo-position,center);
  background-repeat:no-repeat;
  background-size:cover;
}
/* Parallax beweegt rustig mee met de scroll, in plaats van fixed te blijven. */
.photo-module.photo-module--parallax .photo-visual{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  background-size:0 0;
}
.photo-module.photo-module--parallax .photo-visual::before{
  content:"";
  position:absolute;
  inset:-48px 0;
  background-image:inherit;
  background-position:center var(--photo-position,center);
  background-repeat:no-repeat;
  background-size:cover;
  transform:translate3d(0,var(--photo-parallax-offset,0px),0);
  pointer-events:none;
  will-change:transform;
}
@media(prefers-reduced-motion:reduce){
  .photo-module.photo-module--parallax .photo-visual::before{
    transform:none;
    will-change:auto;
  }
}

/* Cards-module: losse kaarten als groep links, midden of rechts uitlijnen.
   De breedte per kaart blijft gelijk bij 1, 2 of 3 kaarten. */
.cards-intro{margin-bottom:28px}
.cards-grid[class*="cards-grid--align-"]{
 display:flex;
 flex-wrap:wrap;
 gap:24px;
}
.cards-grid[class*="cards-grid--align-"]>.sing-card{
 flex:0 1 calc((100% - 48px)/3);
 min-width:0;
}
.cards-grid--align-left{justify-content:flex-start}
.cards-grid--align-center{justify-content:center}
.cards-grid--align-right{justify-content:flex-end}
@media(max-width:850px){
 .cards-grid[class*="cards-grid--align-"]>.sing-card{flex-basis:calc((100% - 24px)/2)}
}
@media(max-width:600px){
 .cards-grid[class*="cards-grid--align-"]>.sing-card{flex-basis:100%}
}

/* Extra containerbreedtes voor alle modules, ook Hero en Foto.
   Bestaande container (1200px) en full width blijven ongewijzigd. */
.module-section.module-layout--small > .container{
  width:min(720px,calc(100% - 48px));
  max-width:720px;
}
.module-section.module-layout--mid > .container{
  width:min(960px,calc(100% - 48px));
  max-width:960px;
}
@media(max-width:600px){
 .module-section.module-layout--small > .container,
 .module-section.module-layout--mid > .container{
   width:calc(100% - 32px);
 }
}
