/* BLACK BAR TEXT BLOK */
.cef-block {
    display: flex;
    align-items: stretch; /* Zorg dat de balk en content even hoog zijn */
    padding: 40px 0px;
}

.cef-block-bar {
    width: 15px;
    background: #000;
    flex-shrink: 0;
}

.cef-block-content {
    margin-left: 50px;
    width: 100%;
}
.cef-block-content p {
    margin:0px;
}

.cef-block .cef-block-content > *:not(:last-child) {
    margin-bottom: 1em; /* tussenruimte tussen titel, tekst en bold */
}

.cef-block-bold {
    font-size: 23px;
    font-weight: 400;
    margin-top: 20px;
    display: flex;
    align-items: center;
    gap: 8px;
}

/* OPSOMMING ANIMATIE BLOK */
.cef-anim-list-wrap { 
    display: flex; 
    flex-direction: column; 
    gap: 18px; 
    padding: 40px 0px;
}
.cef-anim-row {
    margin-bottom: 18px;
    position: relative;
}
.cef-anim-row.cef-anim-inview {
    opacity: 1;
    transform: translateX(0);
}
.cef-anim-bar {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%; /* AANGEPAST: begint nu breed */
    max-width: 100%;
    box-sizing: border-box;
    background: #000;
    z-index: 0;
    transition: width 0.6s ease;
}
.cef-anim-row.cef-anim-inview .cef-anim-bar {
    width: 15px; /* AANGEPAST: wordt smal in viewport */
}

.cef-anim-list-item-border {
    position: relative; /* Voor absolute positie balk */
    border: 1px solid #111;
    background: transparent; /* Box achtergrond verwijderen */
    padding: 0px 24px; /* padding overal zodat tekst ruimte heeft */
    display: flex;
    align-items: center;
    box-sizing: border-box;
    min-height: 40px;
    color: white; /* Tekst wit ivm zwarte balk */
    z-index: 1; /* Zorg dat content boven balk staat */
    overflow: hidden;
}
.cef-anim-list-nr {
    font-size: 2rem;
    font-weight: 700;
    font-family: serif;
    margin-right: 30px;
    margin-left: 39px;
    color: #000;
    display: flex;
    align-items: center;
    z-index: 2;
}
.cef-anim-list-content {
    flex: 1;
    color: #000;
    z-index: 2;
}
.cef-anim-list-content p b{
    flex: 1;
    color: #000;
    z-index: 2;
}
.cef-anim-list-title {
    font-size: 1.05rem;
    font-weight: 600;
    margin-bottom: 6px;
}
.cef-anim-list-description {
    font-size: 1rem;
}

/* NO BLACK BAR TEXT BLOK */
.cef-noblackbar-block {
    padding-left: 0; /* Geen linkse balk */
}

#main .cef-button {
    position: relative;
    background-color: #000;
    color: #fff !important;
    padding: 16px 30px;
    margin-left: 8px;
    border-radius: 0;
    border: 1px solid #000;
    text-decoration: none;
    font-weight: 700;
    display: inline-block;
    transition: color 0.3s ease, border-color 0.3s ease;
    overflow: hidden;
    z-index: 1;
	text-decoration: underline;
    font-size: 19px;
}

#main .cef-button::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 0;
    height: 100%;
    background: #fff;
    z-index: -1;
    transition: width 0.6s ease-in-out;
}

#main .cef-button:hover::before {
    width: 100%;
}

body #main .cef-button:hover {
    color: #000 !important;
    border-color: #000;
}


/* Blok zonder zwarte balk: elementen onder elkaar */
.cef-noblackbartxt-block .cef-block-content {
    display: block; /* geen flex */
}

.cef-noblackbartxt-block .cef-block-bold {
    margin-bottom: 0; /* laatste element geen marge */
}


.cef-noblackbartxt-block .cef-block-content {
    margin-left: 65px;
}

/*SLIDER EN STAPPEN*/
.video-process-slider .container,
.video-process-slider .container.av-section-cont-open,
.video-process-slider .entry-content-wrapper {
  max-width: 100vw !important;
  width: 100vw !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.video-process-slider .entry-content-wrapper {
  display: flex;
  flex-direction: row;
  gap: 24px;
  overflow-x: hidden;
  overflow-y: hidden;
  /* overflow-x: auto; */
  /* overflow-y: visible; */
  scroll-behavior: smooth;
}


.cef-video-process-step {
  flex: 0 0 auto; /* zodat elke stap zijn eigen breedte houdt */
}


.cef-video-process-step {
  width: 500px;
  height: auto;
  border: 2px solid #222;
  background: #fff;
  margin: 12px;
  box-sizing: border-box;
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.cef-step-img-holder {
  position: relative;
  overflow: hidden;
  flex-shrink: 0;
}

.cef-step-img-holder img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.cef-step-title-overlay {
  position: absolute;
  bottom: 0px;
  left: 15px;
  width: 100%;
  background: #fff;
  color: #111;
  font-weight: bold;
  font-size: 32px;
  padding: 8px 32px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.07);
  box-sizing: border-box;
}

.cef-step-text-holder {
  width: 100%;
  height: 100%;
  display: flex;
  flex-shrink: 0;
}

.cef-step-blackbar {
  width: 15px;
  height: 100%;
  background: #000;
  flex-shrink: 0;
}

.cef-step-text {
	padding: 22px 18px 18px 32px;
	letter-spacing: 0.03rem;
	word-spacing: 0.03em;
	font-weight: 400;
}
.cef-step-text p {
	color: #222;
	font-size: 0.95rem !important;
	line-height: 1.5;
	box-sizing: border-box;
	background: transparent;
	overflow-y: auto; 
}

/* Responsiveness optioneel */
@media (max-width: 480px) {
  .cef-video-process-step,
  .cef-step-img-holder,
  .cef-step-text-holder {
    width: 100vw !important;
    min-width: 0 !important;
    max-width: 100vw !important;
    height: auto;
  }
  .cef-step-img-holder { height: 200px; }
  .cef-step-text-holder { height: auto; }
}

@media (max-width: 800px) {
  .video-process-slider .entry-content-wrapper {
    gap: 12px;
    padding-bottom: 12px;
  }
  .cef-video-process-step {
    width: 90vw !important;   /* Laat een stap bijna volledig scherm pakken */
    height: auto;
    min-width: 280px;
    max-width: 98vw;
    font-size: 0.93rem;
  }
  .cef-step-img-holder {
    height: 180px;
  }
  .cef-step-title-overlay {
    font-size: 0.95rem;
    padding: 6px 12px;
    bottom: 6px;
  }
  .cef-step-text-holder {
    width: 100%;
    height: auto;
    min-height: 100px;
    flex-direction: row;
  }
  .cef-step-blackbar {
    width: 10px;
  }
  .cef-step-text {
    padding: 14px 6px 14px 20px;
    font-size: 0.93rem;
  }
}

/* SCROLL BAR */
.cef-slider-scrollbar {
  width: 60vw;
  max-width: 90vw;
  position: relative;
  display: flex;
  align-items: center;
  margin: 24px auto 0 27px;
  height: 16px;
}

.cef-slider-scrollbar-bar {
  min-width: 130px;	
  width: 130px; /* breedte van de indicator (pas aan) */
  height: 9px;
  background: #111;
  border-radius: 0;
  position: absolute;
  top: 6px;
  left: 0;
  transition: left 0.6s cubic-bezier(0.4, 0, 0.2, 1);
  cursor: grab;
  z-index: 10;
  user-select: none;
}

.cef-slider-scrollbar-dots {
  border-bottom: 2px dashed #888;
  width: 100%;
  height: 8px;
  position: relative;
  top: 0;
  left: 0;
  z-index: 1;
}

/* Responsiveness */
@media (max-width: 800px) {
  .cef-slider-scrollbar,
  .cef-slider-scrollbar-bar,
  .cef-slider-scrollbar-dots {
    width: 98vw !important;
    max-width: 98vw !important;
  }
  .cef-slider-scrollbar-bar {
    width: 80px; /* kleinere indicator op mobiel */
  }
}

.no-select {
  user-select: none !important;
  -webkit-user-select: none !important;
  -moz-user-select: none !important;
  -ms-user-select: none !important;
}


.cef-slider-scrollbar-bar:active {
  cursor: grabbing;
}

.no-select {
  user-select: none !important;
  -webkit-user-select: none !important;
  -moz-user-select: none !important;
  -ms-user-select: none !important;
}


/* HERO BLOK */
.cef-hero-block {
    position: relative;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    display: flex;
    align-items: end;
    /* align-items: center; */
    justify-content: flex-start;
    overflow: hidden;
}

.cef-hero-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    /* Let op: background-position aangestuurd door inline-style! */
    background-repeat: no-repeat;
    z-index: 1;
}

/* De rest unchanged */
.cef-hero-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.4);
    z-index: 2;
}

.cef-hero-content {
    position: relative;
    z-index: 3;
    text-align: left;
    color: #fff;
    max-width: 1000px;
    padding: 100px 40px 100px 80px;
/*     padding: 40px 60px; */
    margin-left: 0;
}

.cef-hero-title {
    font-size: 3.5rem;
    font-weight: 700;
    margin-bottom: 24px;
    line-height: 1.2;
    color: #fff !important;
}

.cef-hero-text {
    font-size: 1.25rem;
    line-height: 1.6;
    margin-bottom: 32px;
    color: #fff;
}

.cef-hero-button {
    position: relative;
    background-color: #F4F4F41A;
    color: #fff !important;
    padding: 18px 40px;
    border: 1px solid;
    border-radius: 0;
    text-decoration: none;
    font-weight: 700;
    font-size: 1.1rem;
    display: inline-block;
    transition: color 0.3s ease;
    overflow: hidden;
    z-index: 1;
    text-decoration: underline !important;
}

.cef-hero-button::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 0;
    height: 100%;
    background: #fff;
    z-index: -1;
    transition: width 0.6s ease-in-out;
}

.cef-hero-button:hover::before {
    width: 100%;
}

.main_color .cef-hero-button:hover,
.main_color a.cef-hero-button:hover {
    color: #000 !important;
    text-decoration: none  !important;
}

/* Responsive aanpassingen */
@media (max-width: 800px) {
    .cef-hero-content {
        padding: 40px 30px;
    }
    
    .cef-hero-title {
        font-size: 2.5rem;
    }
    
    .cef-hero-text {
        font-size: 1.1rem;
    }
    
    .cef-hero-button {
        padding: 14px 30px;
        font-size: 1rem;
    }
}

@media (max-width: 480px) {
    .cef-hero-content {
        padding: 30px 20px;
    }
    
    .cef-hero-title {
        font-size: 2rem;
    }
    
    .cef-hero-text {
        font-size: 1rem;
    }
}

/* MEDIA BLOK */
.cef-media-block {
    position: relative;
    box-sizing: border-box;
    margin-left: 0 !important;
    margin-right: 0 !important;
    background: #000;
    padding: 0 !important;
    border: none !important;
    overflow: hidden;
    left: auto;
    right: auto;
    transform: none;
    width: 100vw;
    max-width: 100vw;
}

/* Gecentreerd bij custom breedtes als 90vw, 70vw, etc */
.cef-media-block.cef-media-block-customwidth {
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    margin-left: 0 !important;
    margin-right: 0 !important;
    background: #000;
    padding: 0 !important;
    border: none !important;
}

/* Zorg dat de inhoud altijd breed vult, geen extra ruimte binnen het blok */
.cef-media-block video,
.cef-media-block img,
.cef-media-block iframe,
.cef-media-block > .wp-block-presto-player-reusable-edit,
.cef-media-block > div,
.cef-media-block > figure {
    display: block;
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
}

.cef-media-block-placeholder {
    color: #fff;
    background: #111;
    text-align: center;
    padding: 60px;
    font-size: 1.2rem;
}

/* QUOTE BLOK */
.cef-quote-block {
    position: relative;
    box-sizing: border-box;
    margin-left: 0 !important;
    margin-right: 0 !important;
    background: #000;
    padding: 0 !important;
    border: none !important;
    overflow: hidden;
    min-height: 400px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100vw;
    max-width: 100vw;
}

/* Transparante achtergrond als er geen afbeelding is */
.cef-quote-block.cef-quote-block-no-bg {
    background: transparent !important;
}

/* Gecentreerd bij custom breedtes */
.cef-quote-block.cef-quote-block-customwidth {
    position: relative;
    left: 50%;
    transform: translateX(-50%);
}

.cef-quote-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    z-index: 1;
}

.cef-quote-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    z-index: 2;
}

.cef-quote-content {
    position: relative;
    z-index: 3;
    text-align: center;
    max-width: 1200px;
    padding: 60px 40px;
}

.cef-quote-mark {
    font-size: 5rem;
    font-weight: 400;
    line-height: 1;
    margin-bottom: 16px;
}

.cef-quote-text {
    /* font-size: 2rem; */
    font-size: 3.5rem;
    font-weight: 500;
    line-height: 1.5;
    font-style: normal;
    margin: 0 0 24px 0;
    border: 0px !important;
    padding: 0px !important;
}

/* Witte tekst (standaard) */
.cef-quote-text-white .cef-quote-mark,
.cef-quote-text-white .cef-quote-text,
.cef-quote-text-white .cef-quote-author {
    color: #fff !important;
}

/* Zwarte tekst */
.cef-quote-text-black .cef-quote-mark,
.cef-quote-text-black .cef-quote-text,
.cef-quote-text-black .cef-quote-author {
    color: #000 !important;
}

.cef-quote-author {
    font-size: 1rem !important;
    font-weight: 300 !important;
    margin: 0;
}

/* Quote author wrapper - logo + naam naast elkaar */
.cef-quote-author-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    margin-top: 24px;
}

.cef-company-logo {
    height: 40px;
    width: auto;
    max-width: 120px;
    object-fit: contain;
}

/* Wit filter voor logo */
.cef-company-logo-white {
    filter: brightness(0) invert(1);
}

/* Zwart filter voor logo */
.cef-company-logo-black {
    filter: brightness(0);
}

/* Responsive aanpassingen */
@media (max-width: 800px) {
    .cef-quote-block {
        min-height: 300px;
    }
    
    .cef-quote-content {
        padding: 40px 30px;
    }
    
    .cef-quote-mark {
        font-size: 3rem;
    }
    
    .cef-quote-text {
        font-size: 1.5rem;
    }
    
    .cef-quote-author {
        font-size: 1rem;
    }
}

@media (max-width: 480px) {
    .cef-quote-block {
        min-height: 250px;
    }
    
    .cef-quote-content {
        padding: 30px 20px;
    }
    
    .cef-quote-mark {
        font-size: 2rem;
    }
    
    .cef-quote-text {
        font-size: 1.25rem;
    }
    
    .cef-quote-author-wrapper {
        flex-direction: column;
        gap: 12px;
    }
    
    .cef-company-logo {
        height: 32px;
    }
}

/* CENTERED TEXT BLOCK */
.cef-centered-text-block {
    text-align: center;
/*     max-width: 800px;
    margin: 60px auto;
    padding: 40px 20px; */
}

.cef-centered-title {
    font-size: 2.5rem;
    font-weight: 700;
    margin-bottom: 24px;
    line-height: 1.2;
}

.cef-centered-text {
    font-size: 1.5rem;
    font-weight: 400;
    line-height: 1.6;
    margin-bottom: 32px;
    color: #222;
}

.cef-centered-button {
    position: relative;
    background-color: #000;
    color: #fff !important;
    padding: 18px 40px;
    border: 1px solid;
    border-radius: 0;
    text-decoration: underline !important;
    font-weight: 700;
    font-size: 1.1rem;
    display: inline-block;
    transition: color 0.3s ease;
    overflow: hidden;
    z-index: 1;
}

.cef-centered-button::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 0;
    height: 100%;
    background: #fff;
    z-index: -1;
    transition: width 0.6s ease-in-out;
}

.cef-centered-button:hover::before {
    width: 100%;
}

.cef-centered-button:hover, a.cef-centered-button:hover {
    color: #000 !important;
    text-decoration: none !important;
}

/* Responsive aanpassingen */
@media (max-width: 800px) {
    .cef-centered-text-block {
        margin: 40px auto;
        padding: 30px 20px;
    }
    
    .cef-centered-title {
        font-size: 2rem;
    }
    
    .cef-centered-text {
        font-size: 1rem;
    }
    
    .cef-centered-button {
        padding: 14px 30px;
        font-size: 1rem;
    }
}

@media (max-width: 480px) {
    .cef-centered-text-block {
        margin: 30px auto;
        padding: 20px 15px;
    }
    
    .cef-centered-title {
        font-size: 1.75rem;
    }
}

/* CATEGORY FLEX SYSTEM */
.category-grid-parent {
    width: 100% !important;
}

.category-grid-parent .container.av-section-cont-open {
    max-width: 100vw !important;
   /*  width: 100vw !important; */
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* Flexbox layout - simpel en betrouwbaar */
.category-grid-parent .entry-content-wrapper {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 20px !important;
    max-width: 91vw !important;
    margin: 0 auto !important;
    /* padding: 0 20px !important; */
    padding: 0px !important;
    width: 100% !important;
    box-sizing: border-box !important;
    justify-content: flex-start !important;
}

/* Category items - exact 3 per row */
.category-grid-parent .entry-content-wrapper .cef-category-item {
    flex: 0 0 calc((100% - 60px) / 3) !important;
    max-width: calc((100% - 60px) / 3) !important;
    width: calc((100% - 60px) / 3) !important;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    display: flex !important;
    flex-direction: column !important;
    border: 1px solid #e0e0e0;
}

/* CATEGORY ITEM */
.cef-category-item {
    display: flex;
    flex-direction: column;
    width: 100%;
    box-sizing: border-box;
}
.category-grid-parent .entry-content-wrapper .cef-category-item:first-child {
margin-left: -10px !important;
}

.cef-category-image-wrap {
    width: 100%;
    aspect-ratio: 9 / 16;
    overflow: hidden;
    background: #f5f5f5;
    margin-bottom: 0px;
    border-radius: 0px;
    max-height: 666px;
}

/* Image link - full size clickable */
.cef-category-image-link {
    display: block;
    width: 100%;
    height: 100%;
}

.cef-category-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.cef-category-item:hover .cef-category-image {
    transform: scale(1.05);
}

/* Category button met zwarte balk en animatie */
.cef-category-button {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 16px 24px 16px 40px; /* Extra padding links voor de bar */
    background: #fff;
    /* border: 1px solid #e0e0e0; */
    border-radius: 0px;
    text-decoration: none !important;
    font-weight: 600;
    font-size: 1rem;
    color: #000 !important;
    transition: all 0.3s ease;
    box-sizing: border-box;
    overflow: hidden;
    z-index: 1;
}

/* Zwarte balk aan de linkerkant */
.cef-category-bar {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 15px;
    background: #000;
    z-index: 2;
    transition: width 0.6s ease;
}

/* Zwarte achtergrond animatie (zoals andere buttons) */
.cef-category-button::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 0;
    height: 100%;
    background: #000;
    z-index: 0;
    transition: width 0.6s ease-in-out;
}

/* Button text wrapper - zorg dat tekst boven animatie blijft */
.cef-category-button-text {
    position: relative;
    z-index: 3;
    transition: color 0.3s ease;
}

.cef-category-arrow {
    position: relative;
    z-index: 3;
    font-size: 1.2rem;
    transition: transform 0.3s ease, color 0.3s ease;
}

/* Hover effecten op button zelf */
.cef-category-button:hover::before {
    width: 100%;
}

.cef-category-button:hover .cef-category-bar {
    width: 100%;
}

.cef-category-button:hover .cef-category-button-text,
.cef-category-button:hover .cef-category-arrow {
    color: #fff !important;
}

.cef-category-button:hover .cef-category-arrow {
    transform: translateX(5px);
}

/* Hover op hele item triggert button animatie */
.cef-category-item:hover .cef-category-button::before {
    width: 100%;
}

.cef-category-item:hover .cef-category-bar {
    width: 100%;
}

.cef-category-item:hover .cef-category-button-text,
.cef-category-item:hover .cef-category-arrow {
    color: #fff !important;
}

.cef-category-item:hover .cef-category-arrow {
    transform: translateX(5px);
}

/* Enfold override */
.main_color .cef-category-button:hover,
.main_color a.cef-category-button:hover,
.main_color .cef-category-item:hover .cef-category-button,
.main_color .cef-category-item:hover a.cef-category-button {
    color: #fff !important;
    text-decoration: none !important;
}

/* Verberg Enfold image overlay in category items */
.cef-category-item .image-overlay,
.cef-category-item .image-overlay-inside {
    display: none !important;
}

/* Reset Enfold inline styles op image link */
.cef-category-image-link {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    position: static !important;
    overflow: visible !important;
}

/* Responsive aanpassingen */
@media (max-width: 768px) {
    .category-grid-parent .entry-content-wrapper {
        gap: 24px !important;
    }
    
    .category-grid-parent .entry-content-wrapper .cef-category-item {
        flex: 0 0 calc((100% - 20px) / 1) !important;
        max-width: calc((100% - 20px) / 1) !important;
        width: calc((100% - 20px) / 1) !important;
    }
}

@media (max-width: 480px) {
    .category-grid-parent .entry-content-wrapper {
        gap: 24px !important;
    }
    
    .category-grid-parent .entry-content-wrapper .cef-category-item {
        flex: 0 0 100% !important;
        max-width: 100% !important;
        width: 100% !important;
    }
    
    .cef-category-button {
        padding: 14px 20px 14px 36px; /* Behoud extra padding links op mobiel */
        font-size: 0.9rem;
    }
}

/* CONTACT BLOCK */
.contact-parent .container.av-section-cont-open {
    max-width: 100vw !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.cef-contact-block {
    width: 100%;
    padding: 60px 0;
}

.cef-contact-container {
    display: flex;
    gap: 40px;
    max-width: 90vw;
    margin: 0 auto;
}

/* Left column */
.cef-contact-left {
    flex: 0 0 calc(50% - 20px);
    display: flex;
    flex-direction: column;
    gap: 0px;
}

.cef-contact-image-wrap {
    width: 100%;
    aspect-ratio: 4 / 5;
    overflow: hidden;
    background: #000;
    max-height: 600px;
}

.cef-contact-image {
    width: 100%;
    max-height: 600px;
    object-fit: scale-down;
    background: #000;
}

.cef-contact-info-box {
    background: #fff;
    padding: 0;
    border: 0px solid #e0e0e0;
    display: flex;
}

.cef-contact-blackbar {
    width: 15px;
    min-width: 15px;
    background: #000;
    flex-shrink: 0;
}

.cef-contact-info-content {
    flex: 1;
    padding: 30px;
}

.cef-contact-info-title {
    font-size: 1.5rem;
    font-weight: 700;
    margin-bottom: 16px;
}

.cef-contact-info-text {
    font-size: 1rem;
    line-height: 1.6;
    margin-bottom: 24px;
}

/* Buttons in horizontal flex layout */
.cef-contact-buttons-flex {
    display: flex;
    gap: 20px;
    align-items: stretch;
}

/* Main button (2/3 width) met animatie */
.cef-contact-btn-main {
    position: relative;
    flex: 0 0 calc(50% - 10px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 14px 24px;
    background: #000;
    color: #fff !important;
    text-decoration: none !important;
    font-weight: 600;
    font-size: 0.95rem;
    transition: color 0.3s ease;
    border: 1px solid #000;
    min-width: 0;
    overflow: hidden;
    z-index: 1;
}

.cef-contact-btn-main::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 0;
    height: 100%;
    background: #fff;
    z-index: -1;
    transition: width 0.6s ease-in-out;
}

.cef-contact-btn-main:hover::before {
    width: 100%;
}

.cef-contact-btn-main:hover {
    color: #000 !important;
}

/* Icon buttons container (1/3 width) */
.cef-contact-icon-buttons {
    flex: 0 0 calc(30% - 10px);
    display: flex;
    flex-direction: row;
    gap: 13px;
    min-width: 0;
}

/* Icon buttons met animatie */
.cef-contact-btn-icon {
    position: relative;
    flex: 0.25;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 14px;
    background: #000;
    color: #fff !important;
    text-decoration: none !important;
    font-weight: 600;
    font-size: 1.5rem;
    transition: color 0.3s ease;
    border: 1px solid #000;
    min-width: 0;
    overflow: hidden;
    z-index: 1;
}

.cef-contact-btn-icon::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 0;
    height: 100%;
    background: #fff;
    z-index: -1;
    transition: width 0.6s ease-in-out;
}

.cef-contact-btn-icon:hover::before {
    width: 100%;
}

.cef-contact-btn-icon:hover {
    color: #000 !important;
}

/* Dashicons styling */
.cef-contact-btn-icon .dashicons {
    font-size: 24px;
    width: 24px;
    height: 24px;
    position: relative;
    z-index: 2;
}

/* Enfold overrides */
.main_color .cef-contact-btn-main:hover,
.main_color a.cef-contact-btn-main:hover,
.main_color .cef-contact-btn-icon:hover,
.main_color a.cef-contact-btn-icon:hover {
    color: #000 !important;
    text-decoration: none !important;
}

/* Right column */
.cef-contact-right {
    flex: 0 0 calc(50% - 20px);
}

.cef-contact-form-title {
    font-size: 2rem;
    font-weight: 700;
    margin-bottom: 16px;
}

.cef-contact-form-text {
    font-size: 1rem;
    line-height: 1.6;
    margin-bottom: 24px;
	font-style: italic;
	font-weight: 300 !important;
}

.cef-contact-details {
    margin-bottom: 30px;
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0px 15px;
    align-items: center;
}

.cef-contact-details p {
    display: contents; /* zorgt dat de grid direct op de children werkt */
    margin: 0;
}

.cef-contact-phone,
.cef-contact-email {
    font-size: 1.2rem !important;
    margin-bottom: 0px !important;
}

.cef-contact-phone a {
    color: inherit;
    text-decoration: underline !important;
}

.cef-contact-email a {
    color: inherit;
    text-decoration: underline !important;
}

.cef-contact-form {
    width: 100%;
}

/* Tekstkleur switcher voor rechterkolom - ZWART */
.cef-contact-right-black {
    color: #000;
}

.cef-contact-right-black .cef-contact-form-title,
.cef-contact-right-black .cef-contact-form-text,
.cef-contact-right-black .cef-contact-phone,
.cef-contact-right-black .cef-contact-email,
.cef-contact-right-black label {
    color: #000 !important;
}

.cef-contact-right-black input,
.cef-contact-right-black textarea,
.cef-contact-right-black select {
    color: #000 !important;
    background: #fff !important;
}

/* Tekstkleur switcher voor rechterkolom - WIT */
.cef-contact-right-white {
    color: #fff !important;
}

.cef-contact-right-white .cef-contact-form-title,
.cef-contact-right-white .cef-contact-form-text,
.cef-contact-right-white .cef-contact-phone,
.cef-contact-right-white .cef-contact-email,
.cef-contact-right-white label,
.cef-contact-right-white p,
.cef-contact-right-white strong,
.cef-contact-right-white b {
    color: #fff !important;
}

/* Links in witte variant */
.main_color .cef-contact-right-white a,
.cef-contact-right-white a,
.cef-contact-right-white .cef-contact-email a,
.cef-contact-right-white a:hover,
.cef-contact-right-white a:visited {
    color: #fff !important;
    text-decoration: underline;
}

/* Form inputs in witte variant */
.cef-contact-right-white input,
.cef-contact-right-white textarea,
.cef-contact-right-white select {
    color: #fff !important;
    background: #333 !important;
    border-color: #666 !important;
}

.cef-contact-right-white input::placeholder,
.cef-contact-right-white textarea::placeholder {
    color: #ccc !important;
}


/* Responsive */
@media (max-width: 1024px) {
    .cef-contact-container {
        flex-direction: column;
    }
    
    .cef-contact-left,
    .cef-contact-right {
        flex: 1 1 100%;
    }
}

@media (max-width: 768px) {
    .cef-contact-block {
        padding: 40px 0;
    }
    
    .cef-contact-container {
        gap: 30px;
    }
    
    .cef-contact-info-box {
        padding: 20px;
    }
	
	.cef-contact-info-content {
        padding: 20px;
    }
    
    .cef-contact-form-title {
        font-size: 1.75rem;
    }
    
    /* Buttons stapelen op mobiel */
    .cef-contact-buttons-flex {
        flex-direction: column;
        gap: 12px;
    }
    
    .cef-contact-btn-main,
    .cef-contact-icon-buttons {
        flex: 0 0 100%;
    }
    
    .cef-contact-icon-buttons {
        flex-direction: row;
        gap: 12px;
    }
}

/* CONTACT FORM 7 STYLING */
.cef-contact-form .wpcf7-form {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
}

/* Verberg de hidden fieldset */
.cef-contact-form .hidden-fields-container {
    display: none;
}

/* Target alleen de p tags met labels (niet response/spinner) */
.cef-contact-form .wpcf7-form > p:has(label) {
    margin: 0;
}

/* Eerste 4 labels (naam, bedrijf, tel, email) - elk 1 kolom */
.cef-contact-form .wpcf7-form > p:has(label):nth-of-type(1),
.cef-contact-form .wpcf7-form > p:has(label):nth-of-type(2),
.cef-contact-form .wpcf7-form > p:has(label):nth-of-type(3),
.cef-contact-form .wpcf7-form > p:has(label):nth-of-type(4) {
    grid-column: span 1;
}

/* Textarea (5e label) over volle breedte */
.cef-contact-form .wpcf7-form > p:has(textarea) {
    grid-column: span 2;
}

/* Submit button over volle breedte */
.cef-contact-form .wpcf7-form > p:has(input[type="submit"]) {
    grid-column: span 2;
    margin: 0;
}

/* Label styling */
.cef-contact-form label {
    display: block;
    font-weight: 300 !important;
    font-size: 0.7em !important;
}

.cef-contact-form input {
padding: 20px !important;
} 


/* Input en textarea styling - WIT met ZWARTE tekst */
.cef-contact-form input[type="text"],
.cef-contact-form input[type="email"],
.cef-contact-form input[type="tel"],
.cef-contact-form textarea {
    width: 100%;
    padding: 12px 16px;
    border: 1px solid #e0e0e0;
    background: #fff !important;
    color: #000 !important;
    font-size: 1rem;
    font-family: inherit;
    transition: border-color 0.3s ease;
    box-sizing: border-box;
}

.cef-contact-form input[type="text"]:focus,
.cef-contact-form input[type="email"]:focus,
.cef-contact-form input[type="tel"]:focus,
.cef-contact-form textarea:focus {
    outline: none;
    border-color: #000;
}

.cef-contact-form input[type="text"]::placeholder,
.cef-contact-form input[type="email"]::placeholder,
.cef-contact-form input[type="tel"]::placeholder,
.cef-contact-form textarea::placeholder {
    color: #666 !important;
}

.cef-contact-form textarea {
    min-height: 120px;
    resize: vertical;
}

/* CF7 spinner naast button */
.cef-contact-form .wpcf7-spinner {
    margin-left: 10px;
}

/* Error messages */
.cef-contact-form .wpcf7-not-valid-tip {
    color: #d00;
    font-size: 0.85rem;
    margin-top: 4px;
}

.cef-contact-form .wpcf7-response-output {
    grid-column: span 2;
    padding: 12px;
    margin: 10px 0 0 0;
    border: 1px solid;
}

.cef-contact-form .wpcf7-validation-errors {
    border-color: #d00;
    background: #ffe0e0;
    color: #d00;
}

.cef-contact-form .wpcf7-mail-sent-ok {
    border-color: #0a0;
    background: #e0ffe0;
    color: #0a0;
}

/* Responsive - 1 kolom op mobiel */
@media (max-width: 768px) {
    .cef-contact-form .wpcf7-form {
        grid-template-columns: 1fr;
    }
    
    .cef-contact-form .wpcf7-form > p:has(label):nth-of-type(1),
    .cef-contact-form .wpcf7-form > p:has(label):nth-of-type(2),
    .cef-contact-form .wpcf7-form > p:has(label):nth-of-type(3),
    .cef-contact-form .wpcf7-form > p:has(label):nth-of-type(4),
    .cef-contact-form .wpcf7-form > p:has(textarea),
    .cef-contact-form .wpcf7-form > p:has(input[type="submit"]) {
        grid-column: span 1;
    }
}

/* Witte variant overrides (voor rechterkolom wit) */
.cef-contact-right-white .cef-contact-form input[type="text"],
.cef-contact-right-white .cef-contact-form input[type="email"],
.cef-contact-right-white .cef-contact-form input[type="tel"],
.cef-contact-right-white .cef-contact-form textarea {
    background: #fff !important;
    border-color: #e0e0e0 !important;
    color: #000 !important;
}

.cef-contact-right-white .cef-contact-form input[type="text"]:focus,
.cef-contact-right-white .cef-contact-form input[type="email"]:focus,
.cef-contact-right-white .cef-contact-form input[type="tel"]:focus,
.cef-contact-right-white .cef-contact-form textarea:focus {
    border-color: #fff !important;
}

.cef-contact-right-white .cef-contact-form input[type="text"]::placeholder,
.cef-contact-right-white .cef-contact-form input[type="email"]::placeholder,
.cef-contact-right-white .cef-contact-form input[type="tel"]::placeholder,
.cef-contact-right-white .cef-contact-form textarea::placeholder {
    color: #666 !important;
}


/* ===== SUBMIT BUTTON MET WRAPPER ===== */

/* Submit button wrapper met balk */
.cef-submit-wrapper {
    position: relative;
    width: 100%;
    overflow: hidden;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.cef-submit-bar {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 15px;
    background: #fff;
    z-index: 2;
    transition: width 0.6s ease;
    pointer-events: none;
}

/* Text span - zichtbaar bovenop button */
.cef-submit-text {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: #fff;
    font-weight: 600;
    font-size: 0.95rem;
    z-index: 3;
    transition: color 0.3s ease;
    pointer-events: none;
    white-space: nowrap;
}

.cef-contact-form input[type="submit"],
.cef-contact-form button[type="submit"] {
    position: relative;
    width: 100%;
    padding: 14px 24px 14px 40px;
    background: #000;
    color: transparent !important;
    border: 1px solid #000;
    font-weight: 600;
    font-size: 0.95rem;
    cursor: pointer;
    transition: all 0.3s ease;
    font-family: inherit;
    text-align: center;
    z-index: 1;
}

/* Witte achtergrond animatie */
.cef-submit-wrapper::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 0;
    height: 100%;
    background: #fff;
    z-index: 0;
    transition: width 0.6s ease-in-out;
    pointer-events: none;
}

/* Hover effecten - NORMALE VARIANT */
.cef-submit-wrapper:hover::before {
    width: 100%;
}

.cef-submit-wrapper:hover .cef-submit-bar {
    width: 100%;
}

.cef-submit-wrapper:hover .cef-submit-text {
    color: #000 !important;
}

/* Witte variant - OMGEKEERDE KLEUREN */
.cef-contact-right-white .cef-submit-bar {
    background: #000 !important;
}

.cef-contact-right-white .cef-submit-text {
    color: #000 !important;
}

.cef-contact-right-white .cef-contact-form input[type="submit"],
.cef-contact-right-white .cef-contact-form button[type="submit"] {
    background: #fff !important;
    border: 1px solid #fff !important;
}

.cef-contact-right-white .cef-submit-wrapper::before {
    background: #000 !important;
}

/* Hover witte variant - tekst wordt WIT */
.cef-contact-right-white .cef-submit-wrapper:hover .cef-submit-text {
    color: #fff !important;
}

/* Enfold overrides */
.main_color .cef-submit-wrapper:hover .cef-submit-text {
    color: #000 !important;
}

.main_color .cef-contact-right-white .cef-submit-wrapper:hover .cef-submit-text {
    color: #fff !important;
}

.cef-contact-block .dashicons, .cef-contact-block .dashicons-before:before {
	transition: color 0s ease-in !important;
}

/* Input wrapper met zwarte balk (geen animatie) */
.cef-input-wrapper {
    position: relative;
    width: 100%;
}

.cef-input-bar {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 15px;
    background: #000;
    z-index: 1;
    pointer-events: none;
}

/* Pas input padding aan voor de balk */
.cef-input-wrapper input[type="text"],
.cef-input-wrapper input[type="email"],
.cef-input-wrapper input[type="tel"],
.cef-input-wrapper textarea {
    padding-left: 28px !important; /* 15px balk + 13px extra ruimte */
}