/* ==================================== */
/* 1. SETTINGS: DESIGN TOKENS (CSS Custom Properties) */
/* ==================================== */
*, *::before, *::after {
    box-sizing: border-box;
}

:root {
    /* ------------------------------ */
    /* KLEUREN (Clean Minimal / Mint Accent) */
    /* ------------------------------ */
    --color-base-light: #F4F4F4;     /* Primaire Achtergrond (Licht Beige) */
    --color-secondary-light: #FFFFFF;  /* Wit (Voor Kaarten/Vlakken) */
    --color-base-dark: #232325;      /* Donkere Achtergrond (Bijv. Header/Footer) */
    /* Tekst Kleuren */
    --color-text-primary: #232325;   /* Donker Zwart/Paars (Primaire Tekst) */
    --color-text-secondary: #4A4A4A; /* Donkergrijs (Secundaire Tekst) */
    --color-text-on-accent: #FFFFFF; /* Witte Tekst op Accentkleur */
    /* Button Kleuren */
    --color-accent-green: #43A363;     /* Fris Groen/Lime (Nieuwe Hoofd Accentkleur) */
    --color-accent-green-hover: #33864f; /* Donkerder Groen voor Hover */
    --color-accent-blue: #5C82B7;      /* Blauw (Subtiele Accentkleur) */
    --color-accent-blue-hover: #4f6fa6;      /* Donkerder Blauw voor Hover */
    --color-accent-yellow: #F8D57D;    /* Geel (Secundaire Accentkleur) */
    --color-accent-pink: #E58A73; /* Licht Roze (Voor Highlights) */
    /* Button Kleuren (BENAMINGEN) */
    --color-primary: var(--color-accent-green); /* Primary Button Base: Fris Groen */
    --color-primary-hover: var(--color-accent-green-hover); /* Donker Groen Hover */    
    --color-secondary: var(--color-accent-green); /* Secondary Button Base: Donkergrijs */
    --color-secondary-hover: var(--color-accent-green-hover); /* Zwart voor hover */

    /* ------------------------------ */
    /* TYPOGRAFIE */
    /* ------------------------------ */
    --font-family-base: 'Karla';
    --font-family-heading: 'Montserrat', sans-serif;
    --font-weight-regular: 400;
    --font-weight-semibold: 550;
    --font-weight-bold: 700;
/* ... Typografie groottes ... */
    --font-size-title: 2.5rem;   /* Was 3rem */
    --font-size-subtitle: 1.25rem;
    --font-size-h1: 2.25rem;     /* Was 2.7rem */
    --font-size-h2: 2rem;        /* Was 2.5rem */
    --font-size-h3: 1.75rem;     /* Was 2rem */
    --font-size-h4: 1.35rem;     /* Was 1.5rem */
    --font-size-h5: 1.15rem;     /* Was 1.25rem */
    --font-size-h6: 1rem;
    --font-size-body: 1rem;
    --font-size-small: 0.9rem;
    --line-height-heading: 1.2;
    --line-height-body: 1.6;
    --line-height-small: 1.5;

    /* Spacing & Borders */
    --layout-max-width: 1000px;
    --spacing-page-padding: 32px;
    --spacing-section-vertical: 40px;
    --spacing-large: 40px;
    --border-radius-small: 16px;
    --border-radius-medium: 36px;
    --border-radius-full: 100px;
}

/* ==================================== */
/* 2. TOEPASSING DESIGN TOKENS: BASIS & GLOBALE STIJL */
/* ==================================== */
body {
    font-family: var(--font-family-base);
    font-weight: var(--font-weight-regular);
    font-size: var(--font-size-body);
    line-height: var(--line-height-body);
    /* Gebruik de donkere basiskleuren */
    color: var(--color-text-primary);
    background-color: var(--color-base-light);
    
    /* FIX 2: Vangnet om horizontale scroll op body te voorkomen */
    overflow-x: hidden;
}

/* FIX: Voorkom body scroll wanneer menu open is (vereist JS) */
body.no-scroll {
    overflow: hidden;
}

/* Globale responsiviteit voor alle afbeeldingen */
img {
    max-width: 100%;
    height: auto;
    display: block;
}

main {
    margin-top: 40px; /* Ruimte onder de sticky header */
}
/* De container zorgt ervoor dat de content in het midden staat en niet te breed wordt */
.container {
    max-width: var(--layout-max-width);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--spacing-page-padding); 
    padding-right: var(--spacing-page-padding);
    margin-bottom: none;
}
/* Kopteksten Stijlen */
h1, h2, h3 {
    font-family: var(--font-family-heading);
    font-weight: var(--font-weight-bold);
    line-height: var(--line-height-heading);
    color: var(--color-text-primary); 
}

h4, h5, h6 {
    font-family: var(--font-family-heading);
    font-weight: var(--font-weight-bold);
    line-height: 1px;
}

h1 {font-size: var(--font-size-h1);}
h2 {font-size: var(--font-size-h2);}
h3 {font-size: var(--font-size-h3);}   
h4 {font-size: var(--font-size-h4);}
h5 {font-size: var(--font-size-h5);}
h6 {font-size: var(--font-size-h6);}
figcaption {font-size: var(--font-size-small);}
a {color: var(--color-accent-green);}
blockquote {
    border-left: 4px solid var(--color-accent-pink);
    font-size: var(--font-size-subtitle);
    padding-left: 16px;
    font-style: italic;
    margin: 20px 0;
}

.hero-title {
    font-size: var(--font-size-title);
    font-weight: var(--font-weight-regular);
    margin-bottom: 16px;
    color: var(--color-text-primary);
}

.hero-subtitle {
    font-size: var(--font-size-regular);
    margin-top: 0%;
}

/* Algemene Sectie Padding */
section {
    padding-top: var(--spacing-page-padding);
    padding-bottom: var(--spacing-page-padding);
    width: 100%;
}

/* Tag Button (Voor in project cards en skills) */
.tag-button {
    font-size: var(--font-size-small);
    line-height: var(--line-height-small);
    border-radius: var(--border-radius-full);
    padding: 8px 16px;
    border: 2px solid var(--color-accent-pink);
}
.tag-button-2 {
    font-size: var(--font-size-small);
    line-height: var(--line-height-small);
    border-radius: var(--border-radius-full);
    padding: 8px 16px;
    border: 2px solid var(--color-accent-blue);
    color: var(--color-base-dark);
}

/* Filter Bar Stijlen */
.filter-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
    margin-bottom: 50px;
    justify-content: center; 
}
.filter-button {
    font-size: var(--font-size-body);
    line-height: var(--line-height-small);
    border: 2px solid var(--color-accent-blue); /* Lichte rand */
    background-color: transparent; 
    border-radius: var(--border-radius-full);
    padding: 8px 16px;
    transition: background-color 0.2s, color 0.2s, border-color 0.2s;
    cursor: pointer;
    color: var(--color-accent-blue); /* Blauwe tekst */
}

/* Hover & Active Staat (Groen Accent) */
.filter-button:hover, .filter-button.active {
    /* ACTIEF: Gebruik de Fris Groene Accentkleur */
    background-color: var(--color-accent-blue); 
    color: var(--color-text-on-accent); /* Witte tekst op de Groene knop */
    border-color: var(--color-accent-blue);
}

/* ==================================== */
/* 3. FUNKY BUTTONS (Aangepast) */
/* ==================================== */

.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 24px;
    font-size: var(--font-size-body);
    font-weight: var(--font-weight-semibold);
    border-radius: 30px;
    cursor: pointer;
    text-decoration: none;
    transition: background-color 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
    border: 2px solid transparent;
    color: var(--color-text-on-accent);
    gap: 8px;
}
.button-primary {
    background: var(--color-accent-green);
    border-color: var(--color-accent-green); 
    padding: 8px 16px; 
    transition: 0.3s ease;
}
.button-primary:hover {
    background-color: var(--color-accent-green-hover);
    transform: translateY(-2px); /* Subtiele lift */
    border-color: var(--color-accent-green-hover);
}
.button-secondary {
    background: none;
    color: var(--color-base-dark); /* Witte/Lichte tekst */
    border: 2px solid var(--color-base-dark);
    padding: 8px 16px; 
    gap: 8px;
    transition: 0.3s ease;
}
.button-secondary:hover {
    background-color: #e6e6e7;
    border-color: var(--color-base-dark);
    color: var(--color-base-dark); /* Wit */
    transform: translateY(-2px); /* Subtiele lift */
}

/* ==================================== */
/* 4. COMPONENTS: STICKY HEADER (Liquid Glass Effect) */
/* ==================================== */

/* De wrapper beheert de sticky positie en de marge vanaf de bovenkant */
.sticky-header-wrapper {
    position: fixed;
    top: 20px; /* Zweeft 20px vanaf de bovenkant */
    z-index: 1000;
    width: 100%;
    /* Zorgt ervoor dat de gecentreerde header de juiste marge heeft t.o.v. de container randen */
    padding: 0 var(--spacing-page-padding); 
}

/* De header is nu de glazen pil */
.main-header {
    width: fit-content; /* Past zich aan aan de content */
    margin: 0 auto; /* CENTREERT de nav bar binnen de wrapper */
    padding: 14px 30px; 
    background-color: var(--color-base-dark); 
    border-radius: var(--border-radius-full); /* Volledig afgeronde pil */
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5);  
}

/* De content binnen de pil */
.header-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 40px; /* Ruimte tussen logo, nav en knop */
}

/* Logo Stijl (Grootte & Kleur) */
@keyframes spin {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}
.logo-image {
    height: 30px; /* Consistente grootte */
    width: auto; 
    display: block; 
    
    /* ANIMATIE TOEVOEGEN */
    animation-name: spin;       /* Naam van de keyframe: 'spin' */
    animation-duration: 12s;     /* De rotatie duurt 4 seconden */
    animation-timing-function: linear; /* Constante snelheid (geen vertraging aan begin/eind) */
    animation-iteration-count: infinite; /* Blijft constant herhalen */
}

/* Navigatie Links */
.main-nav ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    gap: 30px;
}

.main-nav a {
    color: var(--color-text-on-accent); /* Paars Grijs */
    font-size: var(--font-size-body);
    transition: color 0.2s ease, transform 0.2s ease;
    display: inline-block; 
    text-decoration: none;
}

.main-nav a:hover,
.main-nav a.active {
    /* Gebruik een felle accentkleur (bijv. Neon Roze/Groen) voor de hover */
    color: var(--color-base-light); 
    transform: translateX(4px); /* Schuif-effect */
}

.main-nav a.active {
    text-decoration: underline; /* Onderstreep actieve link */
    font-weight: var(--font-weight-semibold);
}

/* CTA Knop (Header CTA) */
.header-cta {
    /* De knop (<a>) moet de animated-button/button-primary stijlen krijgen */
    margin-left: 20px;
    padding: 8px 18px; /* Iets aangepaste padding voor de header grootte */
    font-size: var(--font-size-small);
}

/* Icoon binnen de CTA knop */
.header-cta img {
    width: 18px; 
    height: 18px;
    margin-left: 8px;
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.header-cta:hover img {
    transform: translateX(5px);
    background-color: var(--color-secondary-hover);
}

/* HAMBURGER BUTTON STIJL (VERBERGEN OP DESKTOP) */
.hamburger-menu-toggle {
    display: none; /* Standaard verborgen op desktop */
    background: none;
    border: none;
    color: var(--color-text-on-accent); /* Wit icoon (omdat de header donker is) */
    font-size: 30px; 
    cursor: pointer;
    padding: 0;
    /* Zorg dat de knop helemaal rechts staat op mobiel */
    order: 2; 
}

/* MOBIELE NAVIGATIE OVERLAY STIJL (Standaard verborgen, wacht op JS) */
.mobile-nav-menu {
    /* Standaard verborgen totdat JS de klasse .is-open toevoegt */
    position: fixed;
    top: 0; 
    left: 0;
    width: 100%;
    height: 100vh;
    z-index: 999; 
    
    /* Animatie / Verbergen */
    opacity: 0;
    visibility: hidden;
    pointer-events: none; /* Blokkeert klikken op de verborgen overlay */
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

/* DE ACTIEVE STAAT (toegevoegd door JavaScript) */
.mobile-nav-menu.is-open {
    /* Overschrijft alle fade-out regels */
    opacity: 1 !important; 
    visibility: visible !important;
    display: block !important;
    pointer-events: all; /* Maakt klikken mogelijk */
    background-color: var(--color-base-dark) !important; 
    width: 100vw !important;
    height: 100vh !important;
    z-index: 9999 !important;
}

.mobile-close-button {
    position: absolute;
    top: 25px; /* Ruimte vanaf de bovenkant */
    right: 20px; /* Ruimte vanaf de rechterkant */
    z-index: 1001; /* Zorg dat deze boven de rest van de overlay staat */
    background: none;
    border: none;
    color: var(--color-text-on-accent); /* Wit icoon */
    font-size: 30px; 
    cursor: pointer;
    padding: 0;
    line-height: 1; /* Zorgt dat het icoon gecentreerd blijft */
}

/* ==================================== */
/* FOOTER STIJLEN */
/* ==================================== */

.main-footer {
    background-color: var(--color-secondary-dark); 
    color: var(--color-text-secondary);
    padding-top: var(--spacing-section-vertical); 
    padding-bottom: 20px; 
    border-top: 2px solid var(--color-accent-green); 
    margin-top: var(--spacing-section-vertical);
}

/* De kolommen structuur (Desktop Stijl) */
.footer-content-grid {
    display: grid;
    /* Desktop: 2/5 voor intro, 1/5 voor socials, 1/5 voor navigatie (bijv.) */
    grid-template-columns: 4fr 1fr 2fr;
    gap: 40px;
    margin-bottom: 40px;
}

/* Titels in de footer */
.footer-heading {
    color: var(--color-text-primary); 
    font-size: var(--font-size-h5); 
    font-weight: var(--font-weight-bold);
    margin-bottom: 20px;
}

/* Intro sectie */
.footer-intro p {
    color: var(--color-text-secondary);
    margin-bottom: 30px;
}

/* Copyright en subtekst */
.footer-subtext {
    border-top: 1px solid var(--color-border-subtle);
    padding-top: 20px;
    font-size: var(--font-size-small);
    color: var(--color-text-secondary);
    text-align: center;
}

.socials ul.social {
    list-style: none;
    padding: 0;
    margin: 0;
}

/* De li-tag bevat alle knoppen en moet ze horizontaal uitlijnen */
.socials ul.social {
    display: flex; /* Activeert horizontale uitlijning */
    align-items: center;
    gap: 8px; /* Ruimte tussen de knoppen/iconen */
    margin-bottom: 20px; /* Ruimte onder de rij */
}

.socials .fa {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 40px; /* Vaste breedte */
    height: 40px; /* Vaste hoogte */
    border-radius: 50%; /* Maakt het perfect rond */
    background-color: none; /* Donkergrijs */
    border: 2px solid var(--color-base-dark);
    color: var(--color-base-dark); /* Licht van binnen */
    font-size: 18px; /* Grootte van het Icoon */
    text-decoration: none;
    transition: all 0.3s ease;
}

/* Hover effect voor de Icon Buttons (Maak ze Mint Groen) */
.socials .fa:hover {
    background-color: #e6e6e7;
    border-color: var(--color-base-dark);
    color: var(--color-base-dark); /* Wit */
    transform: translateY(-2px); /* Subtiele lift */
}

.socials .button.button-secondary:hover {
    transform: translateY(-2px);
}

/* ==================================== */
/* PAGE OVERRIDES
/* ==================================== */

.contact-intro {
    padding-bottom: var(--spacing-large);
    border-bottom: 2px solid var(--color-accent-blue);
}

.aboutme-intro {
    padding-bottom: none;
    border-bottom: 2px solid var(--color-accent-blue);
}

/* Hoofd Grid */
.skills-ervaring-grid {
    display: grid;
    grid-template-columns: 2fr 3fr; /* Skills (smal) | Ervaring (breed) */
    gap: 60px;
}

/* Linker Kolom (Skills) */
.skills-tags-list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 48px; /* 48px ruimte tussen Soft/Hard skills */
}

/* Stijl voor de tags binnen deze sectie (past de kleur aan naar het donkere thema) */
.skills-kolom .tag-button {
    /* Tags moeten oranje tekst en oranje rand hebben */
    border-color: var(--color-accent-blue);
    color: var(--color-accent-blue);
    /* De donkere afbeelding heeft dikkere tags, dus pas de padding/border aan */
    padding: 0.6rem 1.2rem;
    border-width: 2px;
    font-weight: var(--font-weight-semibold);
}

/* Styling voor de Hero Sectie */
.hero-grid {
    /* Maak een grid met twee kolommen (tekst en visual) */
    display: grid;
    grid-template-columns: 2fr 1fr; /* Verdeel de ruimte gelijk */
    gap: 40px; /* Ruimte tussen de tekst en de animatie */
    align-items: center; /* Centreer verticaal */
    padding-top: 80px; /* Voldoende ruimte bovenaan */
    padding-bottom: var(--spacing-page-padding); /* Voldoende ruimte onderaan */
}

.projecten {
    padding-top: 80px; /* Voldoende ruimte bovenaan */
    padding-bottom: var(--spacing-page-padding); /* Voldoende ruimte onderaan */
}

/* Foto Container Stijl */
.profile-picture {
    width: 100%;
    border-radius: var(--border-radius-small); /* Afgeronde hoeken */
    height: auto;
    object-fit: cover;
    border: 2px solid var(--color-accent-darkpink);
}

/* Container voor de 'Uitgelicht Werk' sectie titel en knop */
.section-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
/* PROJECT KAARTEN */
.project-grid {
    /* FIX: minmax(240px, 1fr) om 3 kaarten op desktop te forceren */
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 24px;
}

.project-preview {
    display: flex;
    flex-direction: column;
    text-decoration: none;
    font: var(--font-size-small);
    color: var(--color-text-primary);
    background-color: var(--color-secondary-light);
    border-radius: 20px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4); /* Zwaardere schaduw op donkere BG */
    overflow: hidden;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.project-preview:hover {
    transform: translateY(-5px); /* Lift effect */
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.6); 
    border: 1px solid var(--color-accent-darkpink); /* High-tech randje op hover */
}

.project-preview-media {
    aspect-ratio: 1.6 / 1;
    background-color: var(--color-base-dark); /* Nog donkerder placeholder */
    width: 100%;
    aspect-ratio: 1.6 / 1; /* Breedte/hoogte verhouding voor je afbeelding */
    background-color: var(--color-background-secondary); /* Lichte grijze placeholder */
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden; /* Zorgt dat de afbeelding in de media div blijft */
}

.project-preview-media img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* Afbeelding vult de ruimte zonder vervorming */
    display: block; /* Verwijdert extra ruimte onder img */
}

.project-preview-content {
    padding: 24px; /* Padding rondom de tekstinhoud */
    display: flex;
    flex-direction: column;
    flex-grow: 1; /* Zorgt dat de content de resterende hoogte vult */
}

.project-preview-content h3 {
    font-size: var(--font-size-h4); /* 24px */
    margin-bottom: 8px; /* Ruimte onder de projectnaam */
    color: var(--color-text-primary);
}

.project-preview-content p {
    font-size: var(--font-size-body); /* 16px */
    color: var(--color-text-secondary);
    margin-bottom: 16px; /* Ruimte boven de tags */
    flex-grow: 1; /* Zorgt dat de paragraaf de resterende ruimte inneemt */
}

.case-page-title {
    margin-bottom: 16px; 
}

.case-page-subtitle {
    margin: 0 auto 0 auto; /* Verwijder de grote standaard marge onder de paragraaf */
}

/* ==================================== */
/* CASE STUDY PAGINA - HERO STIJL */
/* ==================================== */

.case-hero {
    display: grid;
    grid-template-columns: 2fr 2fr;
    gap: 60px;
    align-items: start;
    margin-top: 80px;
}

.case-hero > div:first-child {
    display: flex;
    flex-direction: column;
}

.case-hero-visual {
    height: 100%;
    width: auto;
    position: relative; 
}

.case-image {
    width: 100%;
    display: block;
    border-radius: var(--border-radius-small); 
}

.case-aanpak {
    display: grid;
    grid-template-columns: 2fr 4fr;
    gap: 60px;
}

.case-aanpak img {
    max-width: 100%;
    height: auto;
    display: block;
    border-radius: var(--border-radius-small);
    margin-top: 80px;
}

/* Reset voor afbeeldingen */
.bento-grid img {
    /* FIX: zorgt dat de afbeelding de hele container vult */
    width: 100%;
    height: 100%;
    object-fit: cover; 
    display: block;
    border-radius: 8px;
}

/* De Grid Container */
.bento-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: repeat(3, 1fr);
    gap: 10px; /* Ruimte tussen de items */
    height: 600px; /* Bepaal de hoogte van de grid */
    margin: 20px auto; /* Centreer de grid op de pagina */
    margin-bottom: 0%;
}

/* De Grid Items */
.bento-item {
    /* Basale styling (optioneel, helpt bij debuggen) */
    background-color: #f0f0f0;
    overflow: hidden; /* Zorgt dat de afbeelding netjes binnen de border-radius blijft */
    border-radius: 8px;
}

/* De speciale layout voor het grote item (Foto 1) */
.item-large {
    /* Laat dit item 2 kolommen en 2 rijen beslaan */
    grid-column: span 2;
    grid-row: span 2;
}

.video-responsive-wrapper {
    /* De breedte moet 100% van de ouder container zijn (bij jou: .case-section .container) */
    width: 100%; 
    /* De padding 'hack': 9 / 16 = 56.25%. Dit creëert de correcte 16:9 hoogte */
    padding-bottom: 56.25%; 
    position: relative; 
    overflow: hidden; 
    margin-top: 20px; /* Optioneel: voeg wat ruimte toe onder de tekst */
    border-radius: var(--border-radius-small);
}

/* Zorgt ervoor dat de iframe de wrapper volledig vult */
.video-responsive-wrapper iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

/* ==================================== */
/* 5. MEDIA QUERIES (RESPONSIVE STIJLEN) */
/* ==================================== */

@media (max-width: 768px) {
    /* ------------------------------ */
    /* OVERWRITE: TYPOGRAFIE MOBILE */
    /* ------------------------------ */
    :root {
        --font-size-title: 2rem;    /* Titel van 2.5rem naar 2.0rem */
        --font-size-subtitle: 1.15rem; /* Subtitel van 1.25rem naar 1.15rem */
        --font-size-h1: 1.8rem;     /* H1 van 2.25rem naar 1.8rem */
        --font-size-h2: 1.4rem;     /* H2 van 2rem naar 1.6rem */
        --font-size-h3: 1.3rem;     /* H3 van 1.75rem naar 1.4rem */
        --font-size-h4: 1.3rem;    /* H4 van 1.35rem naar 1.25rem */
        --font-size-h5: 1.3rem;     /* H5 van 1.15rem naar 1.1rem */
        --font-size-h6: 1rem;       /* H6 blijft 1rem */
        --font-size-body: 1rem;     /* Body blijft 1rem voor goede leesbaarheid */
        --font-size-small: 1rem; /* Kleine tekst van 0.9rem naar 0.85rem */
        
        /* FIX: verminder de pagina padding op mobiel om meer ruimte te creëren */
        --spacing-page-padding: 20px; 
    }
    
    /* --- HEADER LAYOUT AANPASSING --- */
    
    /* Zorgt dat de header full-width is op mobiel */
    .main-header {
        width: fit-content;
        border-radius: var(--border-radius-full);
        top: 0;
        padding: 15px 20px;
    }
    
    /* FIX: Verwijder de horizontale padding op de wrapper op mobiel om overscroll te voorkomen */
    .sticky-header-wrapper {
        top: 20px;
        padding: 0 var(--spacing-page-padding); 
    }
    
    /* Zorg voor ruimte tussen logo en hamburgerknop */
    .header-content {
        justify-content: space-between; 
    }
    
    /* Verberg desktop navigatie en CTA */
    .main-nav,
    .header-cta {
        display: none; 
    }
    
    /* Toon de Hamburger Knop */
    .hamburger-menu-toggle {
        display: block; 
    }
    
    /* --- MOBIELE OVERLAY MENU INHOUD STIJL --- */
    
    .mobile-nav-menu {
        padding-top: 100px; /* Ruimte onder de sticky header */
    }
    
    .mobile-menu-content {
        padding: 0 var(--spacing-page-padding); /* Gebruik de mobiele padding */
        text-align: center; /* Centreer de tekst binnen de content wrapper */
    }
    
    .mobile-nav-menu ul {
        list-style: none;
        padding: 0;
        margin: 0;
    }
    
    .mobile-nav-menu li {
        margin-bottom: 25px; 
    }
    
    .mobile-nav-menu a {
        color: var(--color-text-on-accent); 
        font-size: 1.5rem; /* Grotere letters voor mobiele links */
        display: block;
        text-decoration: none;
        font-weight: var(--font-weight-bold);
        transition: color 0.2s ease;
    }
    
    .mobile-nav-menu a:hover {
        color: var(--color-accent-green);
    }


    
    /* --- FOOTER RESPONSIVE --- */
    
    /* De kolommen worden onder elkaar geplaatst */
    .footer-content-grid {
        grid-template-columns: 1fr; /* Één kolom op mobiel */
        gap: 30px;
        margin-bottom: 30px;
    }
    
    /* Verminder de verticale padding van de hele footer */
    .main-footer {
        padding-top: 40px; /* Kleinere padding bovenaan */
        margin-top: 40px; /* Kleinere marge boven de footer */
    }
    
    /* Zorg voor wat ademruimte onder de CTA's */
    .footer-intro {
        padding-bottom: 15px;
        border-bottom: 1px solid var(--color-border-subtle); /* Scheiding tussen intro en nav */
        margin-bottom: 20px;
    }
    .footer-heading {
        margin-top: 15px; /* Ruimte boven de kopjes (Connect, Navigatie) */
    }
    
    /* Verwijder de scheiding tussen de laatste twee kolommen (die nu onder elkaar staan) */
    .footer-nav, .footer-socials {
        border: 2px solid var(--color-accent-green);
    }
    
    /* --- PAGE OVERRIDES RESPONSIVE --- */
    
    .case-hero {
        /* De kolommen worden 1 rij op mobiel/tablet */
        grid-template-columns: 1fr;
        gap: 40px;
        padding-top: 100px;
    }
    .case-hero-visual {
        /* Plaats de afbeelding onder de tekst (standaard volgorde) */
        order: 1; 
    }
    .case-hero > div:first-child {
        /* Plaats de tekst bovenaan */
        order: 0;
    }

    .bento-grid {
        /* FIX: Stapel de items op elkaar */
        grid-template-columns: 1fr; /* Eén kolom, full width */
        height: auto; /* Verwijder de vaste hoogte voor verticale flow */
        gap: 10px;
    }
    
    .bento-grid .item-large {
        grid-column: span 1; /* Terug naar normale breedte */
        grid-row: span 1; 
    }

    .bento-item {
        /* FIX: Geef de item een vaste hoogte nu de grid hoogte is verdwenen */
        min-height: 200px;
    }
    
    .hero-grid {
        grid-template-columns: 1fr; /* Eén kolom op mobiel */
        gap: 30px;
    }

    .skills-ervaring-grid {
        grid-template-columns: 1fr; /* Stapel de kolommen op elkaar */
        gap: var(--spacing-md);
    } 

    /* FIX: AANPAK SECTIE: Stapel de kolommen op elkaar op mobiel */
    .case-aanpak {
        grid-template-columns: 1fr; /* Eén kolom, full width */
        gap: 30px; 
    }

    /* Zorg dat de afbeelding marge heeft als deze onder de tekst staat (indien nodig) */
    .case-aanpak img {
        margin-top: 30px;
    }
}