/* ---------------------------- */
/* RESET & BASIS               */
/* ---------------------------- */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}




body {
 margin: 0;
  padding: 0;
font-family: 'Quicksand', Arial, sans-serif;
  background-color: #354a4a;
  color: #d4d3cb;
  min-width: 320px;
  opacity: 0;
  transition: opacity 1s ease-in-out;
}

body.fade-in {
  opacity: 1;
}



/* ---------------------------- */
/* HEADER & PARALLAX           */
/* ---------------------------- */
.parallax-header {
  position: relative;
  overflow: hidden;
  width: calc(100% - 40px);  /* 20px links + 20px rechts */
  margin: 20px;              /* overal 20px */
  max-width: 1920px;
  height: 92vh;
}

.parallax-header img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  transform: translateY(0);
  transition: transform 0.1s linear;
  will-change: transform;
}

@media (max-width: 900px) {
  .parallax-header img {
    position: static;
    height: auto;
    transform: none;
  }
}

/* Header content */
.header-content {
  position: fixed;
  top: 0;
  left: 20px;
  right: 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  z-index: 1000;
  transition: opacity 0.5s ease, transform 0.5s ease;
}

.header-content .logo {
  margin-left: 20px;
  height: clamp(80px, 8vw, 170px);
  width: auto;
  object-fit: contain;
  transition: opacity 0.5s ease, transform 0.5s ease;
}

.header-content nav {
  margin-right: 20px;
  margin-top: -10px;
  transition: opacity 0.5s ease, transform 0.5s ease;
}

.logo-hidden {
  opacity: 0;
  transform: translateY(-10px);
  pointer-events: none;
}

.nav-hidden {
  opacity: 0.2;
  transform: translateY(0);
  pointer-events: none;
}

.header-content:hover nav {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.header-content nav .menu {
  font-size: clamp(12px, 1.5vw, 17px);
  text-decoration: none;
  color: #f37043;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  transition: color 0.3s ease, opacity 0.3s ease;
}

.header-content nav .menu:hover {
  color: #f37043;
  opacity: 1;
  transform: scale(1.1); /* Dit laat de items een beetje groter lijken */
}





/* ---------------------------- */
/* HERO (grote heading)          */
/* ---------------------------- */

.hero-word {
  max-width: 1920px;
  margin: 0 auto;           /* center horizontaal */
  padding-left: 53px;       /* vaste linkerafstand voor alles binnen */
  padding-top: clamp(60px, 10vw, 120px);
  position: relative;
}

.hero-word h1 {
  font-family: 'Raleway', sans-serif, Arial, sans-serif;
  font-weight: 100;
  font-size: clamp(3rem, 13vw + 1rem, 24rem);
  line-height: 1;
  letter-spacing: 0;
  text-transform: uppercase;

  display: block;
  width: 100%;
  padding-left: 0;  /* vaste linkerafstand voor gradient en tekst */

  position: relative;
  z-index: 1;

background: linear-gradient(
  90deg,
  #1c2a2a 0%,   /* Donkerste tint van #354a4a */
  #2e3d3d 30%,  /* Iets lichter */
  #4c5c5c 60%,  /* Midden tint */
  #7a8a8a 90%   /* Lichtste tint */
);
background-size: 300% 100%; /* groter dan het woord zelf */
background-position: 0% 0;  /* startpositie helemaal links */
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
color: transparent;

animation: moveGradient 15s ease-in-out infinite alternate;
}

@keyframes moveGradient {
  0% {
    background-position: 0% 0;   /* helemaal links */
  }
  50% {
    background-position: 100% 0; /* helemaal rechts */
  }
  100% {
    background-position: 0% 0;   /* terug naar links */
  }
}






/* ========================================
   HEADER / LOGO / MENU
======================================== */

.header-content {
  position: fixed;
  top: 0;
  left: 0;      /* helemaal aan de linkerkant van het scherm */
  right: 0;     /* helemaal aan de rechterkant */
  
  display: flex;
  justify-content: space-between; /* logo links, menu rechts */
  align-items: center;            /* verticaal centeren menu t.o.v. logo */

  padding: 0 40px; /* alleen horizontale padding, geen top */
  z-index: 1000;

  transition: opacity 0.5s ease, transform 0.5s ease;
}


/* ----------------------------
   LOGO
---------------------------- */

.header-content .logo {
  margin-left: 0px;
height: clamp(100px,160px);
  width: auto;
  object-fit: contain;

  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.5s ease, transform 0.5s ease;
}

.header-content:hover .logo {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
  transition-delay: 0s;
}

.header-content .logo.logo-hidden {
  opacity: 0;
  transform: translateY(-10px);
  pointer-events: none;
  transition-delay: 1s;
}



/* ----------------------------
   NAVIGATION
---------------------------- */

.header-content nav {
  margin-top: 25px;
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.5s ease, transform 0.5s ease;
}

.header-content nav.nav-hidden {
  opacity: 0.2;
  pointer-events: none;
  transition-delay: 1s;
}

.header-content:hover nav {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
  transition-delay: 0s;
}


/* ----------------------------
   HEADER STRUCTURE
---------------------------- */
.header-content {
  display: flex;
  justify-content: space-between; /* logo links, menu rechts */
  align-items: flex-start;        /* menu items starten bij top */
}

/* Logo helemaal bovenaan */
.header-content .logo {
  flex-shrink: 0;
  margin-top: 0; /* geen extra ruimte boven logo */
}



/* ----------------------------
   MENU STRUCTURE
---------------------------- */
.main-nav {
  display: flex;
  flex-direction: column;
  align-items: flex-end; /* rechtslijnend */
  margin-top: 0;         /* menu direct onder logo starten */
}

/* Rijen naast elkaar op desktop */
.main-nav .menu-row {
  display: flex;
  gap: 5px;
  flex-wrap: nowrap;
  margin: 0; /* geen extra interlinie */
}



/* ----------------------------
   MENU LINKS
---------------------------- */
.header-content nav .menu {
font-size: clamp(12px, 2vw, 18px);
  text-decoration: none;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  text-align: right;
  white-space: nowrap;

  /* verwijder vaste kleur zodat auto-contrast werkt */
  color: inherit;  
  transition: color 0.3s ease;
  position: relative;
}

/* Desktop: slashes via pseudo-element */
.header-content nav .menu::after {
  content: " /";
}

.header-content nav .menu:last-child::after {
  content: "";
}


.menu:hover {
  color: #f37043;
}
.header-content nav .menu:hover {
  color: #f37043;
}

.menu.active {
  font-weight: 700;
  color: #dbff70;;
}






/* ----------------------------
   DESKTOP MENU POSITION
---------------------------- */

  .header-content {
    align-items: flex-start;
padding-right: 20px; /* kleiner maken */
  }

  .main-nav {
    margin-top: 35px !important;
  }
}



/* ----------------------------
   LIGHT VERSION (dark background)
---------------------------- */

.header-content.menu-light nav .menu {
  color: #d4d3cb;
}

.header-content.menu-light nav .menu:hover {
  color: #f37043;
}






/* ========================================
   SLIDESHOW
======================================== */
.visual.slideshow {
  width: calc(100% - 40px);
  margin: 20px;
  height: 92vh;
  position: relative;
  overflow: hidden;
  z-index: 1;
}

.visual.slideshow .slide {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 2s ease-in-out;
  display: block;
}

.visual.slideshow .slide img {
  object-fit: cover;
  width: 100%;
  height: 100%;
}

.visual.slideshow .slide img {
  object-fit: contain; /* Fallback voor oudere browsers */
}

.visual.slideshow .slide.active {
  opacity: 1;
  z-index: 1;
}

.slideshow-dots {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 10px;
  z-index: 50;
}

.slideshow-dots .dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.7);
  cursor: pointer;
  transition: background-color 0.3s;
}

.slideshow-dots .dot.active {
  background-color: rgba(243, 112, 67, 1);
}




/* ---------------------------- */
/* CONTENT SECTIONS            */
/* ---------------------------- */

/* ----------------------------
   Titel van de sectie
   - Regelt grootte, gewicht, regelafstand en padding van de titel
---------------------------- */
.section-title {
  font-weight: 600;        /* dikte van de letters */
  line-height: 1.3;        /* regelhoogte relatief aan font-size */
  text-transform: none;    /* geen hoofdletters etc */
  font-size: 50px;         /* uiteindelijk gebruikt font-size */
  padding-bottom: 8px;     /* ruimte onder de titel */
}


/* ----------------------------
   Basis stijl voor grotere schermen
   - Voor tekstkolommen die één kolom zijn op desktop
---------------------------- */
.text-columns2.single-column {
  display: block;          /* blok weergave */
  max-width: 75%;          /* maximaal 75% van de breedte */
  margin: 0 auto;          /* centreren */
  padding: 80px 70px 70px; /* ruimte rondom tekst */
  color: #d4d3cb;          /* tekstkleur */
  font-weight: 600;        /* dikte van de letters */
}


/* ----------------------------
   Tekstblok binnen de linker kolom
   - Regelt font-size, regelafstand en transform voor de paragrafen
---------------------------- */
.text-columns2.single-column .left-column2 p {
  text-transform: none;                       /* geen hoofdletters etc */
  font-size: clamp(20px, 2.8vw, 31px);       /* responsive font-size */
  line-height: 1.5;                           /* regelhoogte */
  margin-bottom: 40px; /* ruimte tussen linker en rechter kolom */
}


/* ----------------------------
   Specifiek tekstblok voor .two-line-text sectie
   - Neemt prioriteit door !important
---------------------------- */
.text-columns-section .two-line-text p {
  line-height: 25px !important;              /* vaste regelhoogte voor deze specifieke tekst */
}













/* ---------------------------- */
/* PROCES         */
/* ---------------------------- */



.text-columns-section {
  max-width: 1500px;
  margin: 0 auto 40px;
  padding: 60px;


}



.two-line-text {
  font-size: clamp(21px, 3vw, 32px);
  line-height: 1.5;
  margin-bottom: 10px;
  color: #d4d3cb;
}

.fancy-line {
  border: none;           /* standaard lijn verwijderen */
  height: 1px;            /* hoogte van de lijn */
  background-color: #f37043;  /* koperkleur of gewenste kleur */
  margin: 60px 0;         /* ruimte boven en onder */
}

.fancy-line:first-of-type {
  display: none;
}

.text-columns {
  display: flex;
  gap: 40px;
  margin: 40px 0;
  max-width: 100%;
}

.text-column {
  font-size: clamp(22px, 3vw, 32px);
  line-height: 1.4;
}

.right-column {
  font-size: clamp(16px, 1.4vw, 20px);
  color: #354a4a;
}


.left-column {
  flex: 1 1 40%;
  text-align: left;
  font-weight: 600;
  display: flex;
  align-items: center;
}

.right-column {
  flex: 1 1 60%;
  text-align: left;
}

.tweede-tekst {
     color: #f37043; /* kies hier je gewenste kleur */

  font-family: 'Quicksand', serif; /* vervang 'Georgia' door elk gewenst lettertype */
  font-weight: 400;   /* 👈 lichter */
  font-size: clamp(20px, 2.8vw, 31px);
  line-height: 1.6;            /* optioneel: betere leesbaarheid */
}







.process-number {
  position: absolute;
display: flex;
  align-items: center;

  font-size: clamp(120px, 15vw, 200px);
  font-weight: bold;
  line-height: 0.8;
  color: #a19a91;
  opacity: 0.25;
  pointer-events: none;
}

.gekleurd-vlak .left-column p {
      font-weight: 800;     
  font-size: clamp(28px, 2.8vw, 36px); /* minimum 25px, maximum 36px */
  line-height: 1.5;   

  color: #f37043;
}

.gekleurd-vlak .right-column p {
  color: #354a4a;
    font-weight: 600;
  font-size: clamp(18px, 2.8vw, 31px); /* responsive fractie kleiner */
  line-height: 1.5; /* optioneel voor betere leesbaarheid */
}


@media (min-width: 1200px) {
  .text-columns {
    gap: 20px; /* verminder gap voor bredere schermen */
  }
}

.gekleurd-vlak {
  background: #d4d3cb !important;
}


.claim {
  padding-left: 20px;
text-align: center;
margin-bottom: 10px; /* ruimte onder het blok */

}

.claim p {
  font-size: 0.7rem;
  line-height: 1.4;
  color: #ffffff;
  opacity: 0.3; /* optioneel: extra “disclaimer feel” */
}

/* ---------------------------- */
/* Algemene box-sizing en padding */
/* ---------------------------- */
*, *::before, *::after {
  box-sizing: border-box; /* zorgt dat padding binnen de breedte valt */
}

/* ---------------------------- */
/* CONTAINER STANDAARD PADDING */
/* ---------------------------- */
.static-image-container,
.vertical-image-row,
.image-block.mini-layout {
  width: 100%;          /* container vult volledige breedte van parent */
  max-width: 1920px;    /* maximale breedte */
  margin: 20px auto;    /* verticale afstand en centreren */
  padding-inline: clamp(20px, 5vw, 80px);

}

/* ---------------------------- */
/* STILSTAANDE BEELDEN */
.static-image {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}

/* ---------------------------- */
/* VERTICALE FOTOSECTIE */
.vertical-image-row {
  display: flex;
  gap: 20px; /* ruimte tussen de kolommen */
}

.vertical-image-row .column {
  flex: 1;
  min-width: 200px;
}

.vertical-image-row .small-image {
  aspect-ratio: 690 / 800;
  overflow: hidden;
}

.vertical-image-row img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.vertical-image-row .popup {
  display: none;
}

@media (max-width: 768px) {
  .vertical-image-row {
    flex-direction: column; /* Stapelen van afbeeldingen op kleine schermen */
  }
}

@media (max-width: 768px) {
  .vertical-image-row {
    flex-direction: column; /* Zet afbeeldingen onder elkaar */
    gap: 10px; /* Kleinere ruimte tussen afbeeldingen */
  }
  
  .vertical-image-row .column {
    min-width: 100%; /* Kolommen nemen de volledige breedte in beslag */
  }
}

/* ---------------------------- */
/* MINI-LAYOUT */
/* ---------------------------- */

.image-block.mini-layout {
  display: flex;
  gap: 20px;           /* Ruimte tussen kolommen */
  flex-direction: row; /* Standaard horizontale volgorde */
}

@media (max-width: 768px) {
  /* Op mobiele apparaten de kolommen onder elkaar plaatsen */
  .image-block.mini-layout {
    flex-direction: column; /* Stapel de kolommen */
    gap: 15px;              /* Verminder de ruimte tussen afbeeldingen */
  }
  
  /* Verminder ruimte tussen afbeeldingen in een kolom op mobiel */
  .image-block.mini-layout .column {
    gap: 15px; 
  }
}

.image-block.mini-layout .column {
  display: flex;
  flex-direction: column;
  gap: 20px;             /* Ruimte tussen afbeeldingen binnen kolom */
  flex: 1;               /* Kolommen delen ruimte eerlijk */
  min-width: 0;          /* Voorkomt dat kolommen oprekken */
}

.large-image, .small-image {
  width: 100%;
  overflow: hidden;
}

.large-image {
  aspect-ratio: 690 / 800; /* Aspect-ratio voor grote afbeeldingen */
}

.small-image {
  aspect-ratio: 690 / 390; /* Aspect-ratio voor kleinere afbeeldingen */
}

.image-block.mini-layout img {
  width: 100%;
  height: 100%;
  object-fit: cover;       /* Zorgt dat de afbeelding de container vult */
  display: block;
  max-width: 100%;
}

/* Reverse variant voor omgekeerde volgorde */
.image-block.mini-layout.reverse {
  flex-direction: row-reverse;
}




/* ---------------------------- */
/* Drie Beelden Naast Elkaar */
/* ---------------------------- */

.vertical-image-row.three-columns {
  display: grid;
  grid-template-columns: repeat(3, 1fr); /* Drie gelijke kolommen */
  gap: 20px; /* Ruimte tussen de afbeeldingen */
}

.vertical-image-row.three-columns img {
  width: 100%;
  height: 100%;
  object-fit: cover; /* Zorgt ervoor dat de afbeeldingen de container vullen zonder vervorming */
  display: block; /* Verwijdert eventuele ongewenste ruimte onder de afbeelding */
}

/* Responsieve aanpassing voor kleinere schermen */
@media (max-width: 768px) {
  .vertical-image-row.three-columns {
    grid-template-columns: 1fr; /* Zet de kolommen onder elkaar op kleinere schermen */
    gap: 15px; /* Verminder de ruimte tussen de afbeeldingen op mobiele schermen */
  }
}





/* ----------------------------
   Dikke Letters Slideshow – Links uitgelijnd, meeschalend
---------------------------- */

.text-columns-section6 {
  display: flex;
  align-items: flex-start;
  width: 100%;
  margin-bottom: 80px;
  padding-right: 20px;
  position: relative;   /* belangrijk */
}

/* Geel blok */
.text-columns6 {
  position: absolute;
  top: 85vh;
  right: 7vw;


  width: 290px;
  max-width: 90vw;
  height: 290px;
  max-height: 90vw;
  padding: 20px;
  background-color: #dbff70;

  clip-path: polygon(
    0 0, 
    100% 0, 
    100% calc(100% - 20px), 
    calc(100% - 20px) 100%, 
    0 100%
  );

  display: flex;
  align-items: flex-start;
  justify-content: flex-start;

  perspective: 800px;
  overflow: hidden;

  cursor: grab;

  /* 👇 HIER toevoegen */
  user-select: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;

  z-index: 10;
}



/* Slideshow container */
.text-columns6 .slideshow {
  position: relative;
  width: 100%;
  height: 100%;
}

/* Slides */
.text-columns6 .slide {
  position: absolute;
  top: 15px;               
  left: 15px;              
  transform-origin: left center;

  font-size: clamp(16px, 3.6vw, 40px);  /* meeschalend, max 45px */
  font-weight: 700;
  line-height: 1;
  text-align: left;

  word-break: break-word;     
  overflow-wrap: break-word;  

  opacity: 0;
  animation: horizontal-tilt 12s infinite;
}

.text-columns6 .slide:nth-child(1) { animation-delay: 0s; opacity: 1; }
.text-columns6 .slide:nth-child(2) { animation-delay: 4s; }
.text-columns6 .slide:nth-child(3) { animation-delay: 8s; }

/* Animatie */
@keyframes horizontal-tilt {
  0%   { opacity: 0; transform: translate(0, 0) rotateY(-60deg); }
  10%  { opacity: 1; transform: translate(0, 0) rotateY(0deg); }
  30%  { opacity: 1; transform: translate(0, 0) rotateY(0deg); }
  40%  { opacity: 0; transform: translate(0, 0) rotateY(60deg); }
  100% { opacity: 0; transform: translate(0, 0) rotateY(60deg); }
}



.text-columns6 .close-btn {
  position: absolute;
  bottom: 10px;      /* afstand van onderkant */
  left: 15px;        /* afstand van linkerkant */
  font-size: 20px;  /* grootte van de X */
  font-weight: bold;
  cursor: pointer;
  user-select: none;  /* voorkomt selecteren */
  z-index: 20;
  color: #5f58a8;;       /* kleur van de X */
  transition: color 0.2s;
}

.text-columns6 .close-btn:hover {
  color: #f37043;       /* effect bij hover */
}



/* TABLET (iPad) */
@media (max-width: 1024px) {
  .text-columns6 {
    width: 300px;      /* blok kleiner */
    height: 300px;
    padding: 20px;
  }

  .text-columns6 .slide {
    font-size: 24px;   /* tekst blijft hetzelfde */
    top: 20px;
    left: 20px;
  }
}

/* SMARTPHONE */
@media (max-width: 600px) {
  .text-columns6 {
    width: 180px;      /* blok nog kleiner */
    height: 180px;
    padding: 15px;
  }

  .text-columns6 .slide {
    font-size: 24px;   /* tekst nog steeds desktop grootte */
    top: 15px;
    left: 15px;
  }
}











/* ---------------------------- */
/* MOBILE RESPONSIVENESS */
/* ---------------------------- */

@media (max-width: 768px) {
  .image-block.mini-layout {
    flex-direction: column; /* stapeling op mobiel */
  }

  .image-block.mini-layout.reverse {
    flex-direction: column-reverse; /* reverse werkt ook mobiel */
  }
}











/* ---------------------------- */
/* TEXT OVERLAY                */
/* ---------------------------- */

.text-overlay-section {
  display: flex;
  justify-content: center;  /* Centraal plaatsen van de inhoud */
  align-items: flex-start;  /* Text bovenin uitlijnen (kan 'center' zijn voor middenuitlijning) */
  padding: 60px 20px 80px;  /* Boven kleiner, onder gelijk */
  min-height: 300px;        /* Minimale hoogte voor de container */
}

.text-overlay {
  padding: 20px;
  max-width: 800px;
  text-align: center;
  border-radius: 12px;
  color: #d4d3cb;           /* Kies een geschikte kleur die contrasteert met de achtergrond */
  font-family: 'quicksand', serif; /* Elegant serif lettertype */
font-weight: 700;
  font-size: clamp(22px, 4vw, 40px);  /* Dynamische tekstgrootte die reageert op de viewport */
  line-height: 1.2;         /* Regelhoogte voor betere leesbaarheid */
}





/* ========================================
   DISCIPLINES SECTION #33384f
======================================== */
.disciplines-section {
  width: 100%;          /* container vult volledige breedte van parent */
  max-width: 1920px;    /* maximale breedte */
  margin: 50px auto;    /* verticale afstand en centreren */
  padding-inline: clamp(20px, 5vw, 80px);
}

.disciplines-inner {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 20px;
  width: 100%;
  max-width: 1500px;
  margin: 0 auto;
}

.discipline-box {
  background-size: 200% 200%;
  background-position: 100% 50%;
  background: #e4e8df;
  padding: 40px;
  min-height: 700px;
  position: relative;
  overflow: hidden;
}

.discipline-number {
  position: absolute;
  bottom: 20px;
  left: 30px;
  font-size: clamp(140px, 10vw, 160px);
  font-weight: bold;
  color: #a19a91;
  opacity: 0.25;
}

.discipline-box h3 {/* heading oranje */
  font-size: 30px;
    color: #f37043;
  margin-bottom: 16px;

}

.discipline-box p {/* bodytekst groen */
  font-size: 20px;
    color: #354a4a;
  line-height: 1.25;
}



/* Animatie voor bewegend achtergrondverloop */
@keyframes moveBackground {
  0% {
    background-position: 100% 50%;
  }
  50% {
    background-position: 0% 50%;
  }
  100% {
    background-position: 100% 50%;
  }
}


.discipline-box {
  background: #d4d3cb !important;
  animation: none !important;
}



/* ---------------------------- */
/* CONTACT SECTION             */
/* ---------------------------- */
.contact-wrapper {
  display: flex;
  gap: 60px;
  justify-content: space-between;
  flex-wrap: wrap;
  margin-top: -100px; /* Pas dit aan naar wens, overweeg aanpassing in media queries */
}

.contact-form,
.contact-info {
  flex: 1 1 400px;
  background: #fff;
  padding: 30px;
  box-shadow: 0 4px 15px rgba(0,0,0,0.05);
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 20px), calc(100% - 20px) 100%, 0 100%);
}

.contact-form h2,
.contact-info h2 {
  margin-bottom: 20px;
  font-family: 'Quicksand', sans-serif;
  font-weight: 700;
}

.contact-form label {
  font-weight: 600;
  margin-top: 15px;
  display: block;
  color: #d4d3cb;

}

.contact-form input,
.contact-form textarea {
  width: 100%;
  padding: 12px;
  margin-top: 5px;
  font-size: 16px;
  border: 1px solid #ccc;
  border-radius: 6px;
  font-family: 'Raleway', sans-serif;
}

.contact-form button {
  margin-top: 20px;
  padding: 18px 35px;
  font-size: 18px;
  background-color: #f37043;
  color: white;
  border: none;
  cursor: pointer;
  font-weight: 700;
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 14px), calc(100% - 14px) 100%, 0 100%);
}

.contact-form button:hover {
  background-color: #26272b;
}








/* ---------------------------- */
/* LOGO'S OP EEN RIJTJE                    */
/* ---------------------------- */

.visuals-row {
  text-align: center;
  margin-top: -50px; /* Duwt het geheel 40px dichter naar de tekst erboven */
  padding: 80px 0;
    opacity: 0.3;
}

.visuals-text p {
  font-family: 'Quicksand', sans-serif;
  font-weight: 400;
  font-size: clamp(16px, 1.5vw, 20px);
  letter-spacing: 1px;
  color: #ffffff; /* Pas aan naar je sitekleur */
  margin-bottom: 10px;

}

.visuals-images {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap; /* Flex-wrap voor mobiel */
  gap: 10px;
}

.visuals-images img {
  width: 120px;
  height: 120px;
  max-width: 100%; /* Zorgt ervoor dat de logo's schalen bij kleinere schermen */
  transition: transform 0.3s ease;
}

.visuals-images img:hover {
  transform: scale(1.2);
}










/* Alleen het hoekje op de rechterkolom / afbeelding */
.right-corner {
  --corner-size: 16px;
  background-color: transparent; /* Zorgt ervoor dat er geen kleur achter het element zit */
  clip-path: polygon(
    0 0,
    100% 0,
    100% calc(100% - var(--corner-size)),
    calc(100% - var(--corner-size)) 100%,
    0 100%
  );
}





/* ---------------------------- */
/* FOOTER                      */
/* ---------------------------- */
.dark-three-section {
background: linear-gradient(
  90deg,
  #5a2a1b 0%,
  #f37043 50%,
  #a94f30 100%
);
  background-size: 300% 100%;       /* groter voor vloeiende beweging */
  background-position: 0% 0;        /* start helemaal links */
  color: #e4e8df;
  padding: 130px;
  line-height: 1.8;

  animation: moveGradient 20s ease-in-out infinite alternate;
}

.dark-three-section .container {
  max-width: 1440px;
  margin: 0 auto;
}

.dark-three-content {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 20px;
  flex-wrap: wrap;
}

.footer-links,
.footer-info,
.footer-logo-container {
  flex: 1 1 30%;
}

.footer-links a,
.footer-info a {
  color: #e4e8df;
  text-decoration: none;
}

.footer-links a:hover,
.footer-info a:hover {
  opacity: 0.7;
}

.footer-logo {
  height: 200px;
  width: auto;
  display: block;
  margin-left: auto;
  margin-top: 0; /* Verwijder de negatieve marge voor consistentie */
      opacity: 0.2;
}

/* Responsief voor max-width 900px */
@media (max-width: 900px) {
  .dark-three-content {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 30px;
  }

  .footer-links,
  .footer-info,
  .footer-logo-container {
    flex: 0 0 auto;
    width: 100%;
  }

  .footer-logo {
    margin: 0 auto;
    width: 100%;
  }
}





/* ---------------------------- */
/* MOTION & ANIMATIONS         */
/* ---------------------------- */
.motion-on-scroll {
  opacity: 0;
  transform: translateY(50px);
  transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.motion-on-scroll.visible {
  opacity: 1;
  transform: translateY(0);
}

/* ---------------------------- */
/* HOVER POPUPS                */
/* ---------------------------- */
.image-popup {
  position: relative;
  display: inline-block;
  overflow: hidden; /* nodig voor zoom */
}

/* ---------------------------- */
/* AFBEELDING (standaard)      */
/* ---------------------------- */
.image-popup img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
  transition: transform 0.4s ease; /* animatie */
}

/* ---------------------------- */
/* ZOOM ALLEEN ALS GEEN .no-zoom */
/* ---------------------------- */
.image-popup:not(.no-zoom):hover img {
  transform: scale(1.03);
}

/* ---------------------------- */
/* POPUP                       */
/* ---------------------------- */
.image-popup .popup {
  position: absolute;
  top: 1%;
  left: 1%;
  padding: clamp(0.5rem, 2vw, 1rem);
  width: 80%;
  max-width: 40vw; /* Dynamisch voor grotere schermen */
  background-color: #e4e8df;
  color: #26272b;
  box-sizing: border-box;
  z-index: 10;
  font-size: clamp(0.75rem, 2.5vw, 1rem);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}

/* ---------------------------- */
/* POPUP ZICHTBAAR BIJ HOVER   */
/* ---------------------------- */
.image-popup:hover .popup {
  opacity: 1;
}






/* ---------------------------- */
/* IMAGE HOVER EFFECT + OVERLAY  */
/* ---------------------------- */
/* .image-hover {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.image-hover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: opacity 0.3s ease;
}

Overlay
.image-hover .overlay {
  position: absolute;
  inset: 0;
  background: #d4d3cb;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 20px;
  opacity: 0;
  transition: opacity 0.3s ease;
} */

/* Tekst styling
.overlay-content h4 {
  font-size: clamp(14px, 1.5vw, 20px);
  font-weight: 600;
  text-transform: none;
  letter-spacing: 0.04em;
  color: #354a4a;
}

.overlay-content p {
  font-size: clamp(14px, 1.4vw, 18px);
  opacity: 0.85;
  color: #d4d3cb;
} */

Hover gedrag
.image-hover:hover img {
  opacity: 0;  /* Maakt de afbeelding transparant bij hover */
}

.image-hover:hover .overlay {
  opacity: 1;  /* Toont de overlay bij hover */
}








/* ---------------------------- */
/* FAQ – SCHONE DEFINITIEVE VERSIE */
/* ---------------------------- */

.faq-section {
  max-width: 1200px;
  margin: 0 auto 40px;
  padding: 80px 70px 0; /* 70px horizontaal zoals andere secties */
}


/* Groep spacing */
.faq-group {
  margin-bottom: 60px;
}

/* FAQ item */
.faq-item {
  padding: 25px 0;
}

/* Alleen lijn tussen items */
.faq-item + .faq-item {
  border-top: 1px solid black;
}

.faq-question {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  cursor: pointer;
  gap: 30px;
}

.faq-question h3 {
  font-size: clamp(20px, 2.4vw, 28px);
  line-height: 1.5;
  font-weight: 500;
  margin: 0;
}

/* Antwoord */
.faq-answer {
  max-height: 0;
  overflow: hidden;
  transition: all 0.45s ease;
}

.faq-answer p {
  font-size: clamp(18px, 2.2vw, 24px);
  line-height: 1.6;
  margin-top: 15px;
  font-weight: 400;
  color: #f37043;
}

/* Plus icoon */
.faq-icon {
  position: relative;
  min-width: 22px;
  height: 22px;
  transition: transform 0.4s ease;
  margin-top: 6px;
}

.faq-icon::before,
.faq-icon::after {
  content: "";
  position: absolute;
  background-color: #f37043;
}

.faq-icon::before {
  width: 22px;
  height: 2px;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}

.faq-icon::after {
  width: 2px;
  height: 22px;
  left: 50%;
  top: 0;
  transform: translateX(-50%);
}

.faq-item.active .faq-icon {
  transform: rotate(45deg);
}

.faq-item.active .faq-answer {
  max-height: 400px;
}







/* Header */
.faq-header h2 {
  font-family: 'Quicksand', sans-serif;
  font-size: clamp(28px, 3vw, 36px);
  font-weight: 600;
  margin-top: 20px;
  margin-bottom: 20px;
  line-height: 1.4;
  color: #f37043;
}



.gekleurd-vlak {
  background-color: #f4f1ed;
  max-width: 1920px;
  margin: 80px;
}







.floating-contact {
  position: fixed;
  right: 20px;
  bottom: 55px;             /* afstand vanaf onderkant */
  
  background-color: transparent;
  border-radius: 50%;
  padding: 12px 16px;
  text-align: center;
  text-decoration: none;
  cursor: pointer;

  opacity: 1;
  transition: opacity 0.9s ease;
  z-index: 9999;
}

/* Hover-effect */
.floating-contact:hover {
  opacity: 1; /* zorg ervoor dat de knop zichtbaar blijft tijdens hover */
}

/* Responsief ontwerp voor mobiele schermen */
@media (max-width: 768px) {
  .floating-contact {
    bottom: 20px; /* meer ruimte boven de onderkant op kleine schermen */
    right: 15px;  /* misschien iets dichter bij de rechterkant */
    padding: 10px 12px; /* kleinere padding */
  }
}

/* Wanneer de knop verborgen moet zijn */
.floating-contact.hidden {
  opacity: 0;
  pointer-events: none; /* maakt de knop niet klikbaar wanneer verborgen */
}



/* ---------------------------- */
/* RESPONSIVE / MOBILE CLEAN    */
/* ---------------------------- */

@media (max-width: 768px) {

  :root {
    --container-padding: 15px;
  }

  /* Containers */
  .header-content,
  .contact-wrapper,
  .text-columns-section,
  .text-columns-section2,
  .hero-word,
  .text-overlay-section,
  .visuals-row,
  .visual.slideshow,
  .vertical-image-row,
  .image-block.mini-layout,
  .faq-section,
  .claim {
    padding-left: var(--container-padding);
    padding-right: var(--container-padding);
    box-sizing: border-box;
    max-width: 100%;
  }

  /* Header */
  .header-content {
    align-items: flex-start;
    padding-left: 10px;
  }

  /* Hero */
  .hero-word {
    padding-top: 10px;
    padding-bottom: 10px;
  }

  .hero h1 {
    font-size: 70px;
    line-height: 1;
    word-break: break-word;
    padding-top: 20px;
    margin: 0 0 5px 0;
    padding-left: 0;

    font-weight: 700;
    background: linear-gradient(90deg, #ff4500, #8b0000, #00ced1, #ff4500);
    background-size: 400% 100%;
    animation: moveGradient 10s ease-in-out infinite alternate;
  }

  .hero-extra-top .hero-word {
    margin-top: 80px;
  }

  /* Columns */
  .text-columns,
  .text-columns2.single-column,
  .text-column,
  .text-column2.left-column2 {
    flex-direction: column;
    width: 100%;
    gap: 10px;
    padding-top: 5px;
  }

  /* Process numbers */
@media (max-width: 768px) {

  .text-columns {
    flex-direction: column;
    position: relative;
  }





  /* Images */
  .visual.slideshow .slide img,
  .vertical-image-row img,
  .image-block.mini-layout img {
    width: 100%;
    height: auto;
    display: block;
  }

  .vertical-image-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .vertical-image-row.three-columns {
    grid-template-columns: 1fr;
  }

  .image-block.mini-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: 21px;
  }

  .image-block.mini-layout.reverse {
    grid-template-columns: 1fr;
  }

  /* Contact */
  .contact-wrapper {
    padding: 0;
    margin-top: 0;
  }

  .contact-wrapper .contact-form {
    width: 100%;
    padding: 10px;
  }

  /* Footer / Blocks */
  .dark-three-section {
    padding: 60px 20px;
  }

  .discipline-box {
    min-height: 650px;
  }

  .section-title {
    font-size: 32px;
  }

  .gekleurd-vlak {
    margin: 20px;
    padding: 20px;
  }

  /* Claim */
  .claim {
    text-align: center;
  }

  .claim p {
    font-size: 0.65rem;
    line-height: 1.3;
    opacity: 0.3;
  }

  /* Text overlay */
  .text-overlay-section {
    padding: 40px 0;
  }

  /* Visual icons */
  .visuals-images {
    flex-direction: column;
    align-items: center;
    gap: 8px;
  }

  .visuals-images img {
    width: 80px;
  }

  .visuals-text p {
    font-size: 0.9rem;
  }

  /* FAQ */
  .faq-section {
    padding: 40px 15px 20px 15px;
  }

  /* Remove menu slashes */
  .header-content nav .menu::after,
  .main-nav .menu::after {
    content: "" !important;
  }

  /* Corner size */
  .right-corner {
    --corner-size: 10px;
  }

}


/* ----------------------------
   MOBILE MENU (max 600px)
---------------------------- */

@media (max-width: 600px) {

  .main-nav .menu-row {
    display: block;
    margin: 0;
  }

  .header-content nav .menu {
    display: block;
    font-size: 18px;
    font-weight: 600;
    margin: 1px 0;
    white-space: normal;
    text-align: right;
    line-height: 1.2;
  }

  .header-content nav .menu::after {
    content: "";
  }

  .main-nav {
    position: absolute;
    top: -10px;
    right: 6px;
  }

}


/* ----------------------------
   EXTRA SMALL (480px)
---------------------------- */

@media (max-width: 480px) {

  .text-columns2.single-column {
    max-width: 100%;
    padding: 20px 5px;
  }

  .text-columns2.single-column .left-column2 p {
    font-size: clamp(18px, 3vw, 24px);
  }

  .text-columns-section {
    max-width: 100%;
    padding: 20px 5px;
  }



@media (max-width: 768px) {

  .parallax-header {
    height: auto;        /* verwijdert 92vh */
    aspect-ratio: auto;  /* voorkomt vaste hoogte verhouding */
    margin-bottom: 40;    /* geen extra ruimte onder */
  }


@media (max-width: 768px) {
  .parallax-header {
    margin-top: 105px;
  }

@media (max-width: 768px) {

  /* Alleen wanneer hero direct na parallax-header komt */
  .parallax-header + .hero-extra-top .hero-word {
    padding-top: 0px; /* pas aan naar wens */
  }


  @media (max-width: 768px) {

  .text-columns-section {
    padding-left: 25px;
    padding-right: 25px;
  }

  .right-column {
    max-width: 85%;
  }

  .process-number {
  text-align: center;
  width: 0%;
}

}











