:root {
    --dm-yellow: #e2d810;
    --dm-blue: #7a9cb3;
    --text-dark: #333;
}

/* Algemeen */
body { 
    font-family: Arial, sans-serif; 
    margin: 0; 
    color: var(--text-dark); 
    line-height: 1.6; 
    overflow-x: hidden; 
}

/* Header */
header { 
    display: flex; 
    justify-content: space-between; 
    align-items: center; 
    padding: 20px 8%; 
    background: #fff; 
    border-bottom: 1px solid #eee; 
}

.logo img { height: 50px; }

nav a { 
    text-decoration: none; 
    color: var(--text-dark); 
    margin: 0 15px; 
    font-size: 15px; 
}

nav a.active { text-decoration: underline; }

.nav-contact-btn { 
    background: var(--dm-yellow); 
    padding: 12px 25px; 
    font-weight: bold; 
    color: #000; 
    text-decoration: none;
}

/* --- PAGINA HEADERS --- */
.page-header-simple { padding: 60px 10% 20px; text-align: left; }
.page-header-simple h1 { font-size: 60px; margin: 0; }

/* --- CONTENT BLOKKEN --- */
.tarieven-section, .content-block {
    display: flex;
    padding: 80px 10%;
    gap: 80px;
    align-items: flex-start;
    text-align: left;
}

.tarieven-section.reverse, .content-block.reverse { 
    flex-direction: row-reverse; 
}

.tarieven-image, .block-image { 
    flex: 6; 
    display: block;
}

.tarieven-image img, .block-image img { 
    width: 100%; 
    height: auto; 
    display: block; 
    border-radius: 4px; 
}

.tarieven-text, .block-text { 
    flex: 4; 
    padding-top: 10px; 
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.text-inner-container { 
    width: 100%;
    max-width: 420px;
}

/* Labels en blobs */
.tarieven-text h2, .sub-header-blob {
    font-size: 14px;
    font-family: monospace;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 25px;
    color: #333;
    display: flex;
    align-items: center;
    gap: 10px;
}

.tarieven-text h2::before, .tiny-blob {
    content: "";
    width: 15px;
    height: 15px;
    background: var(--dm-yellow);
    border-radius: 40% 60% 70% 30%;
    display: inline-block;
    flex-shrink: 0;
}

.tarieven-text p, .block-text p {
    font-size: 14px;
    line-height: 1.7;
    margin-bottom: 15px;
    color: #444;
}

/* --- KEEP IN TOUCH --- */
.keep-in-touch { 
    background: var(--dm-blue); 
    color: #fff;                
    padding: 60px 10%;          
    text-align: center; 
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 25px;
}

.keep-in-touch h2 { 
    font-size: 42px; 
    margin: 0; 
    font-weight: normal; 
    color: #fff;
}

.btn-yellow-large { 
    background: var(--dm-yellow); 
    color: #000; 
    padding: 15px 40px; 
    text-decoration: none; 
    font-weight: bold; 
    display: inline-block; 
    letter-spacing: 1px;
}

/* --- INDEX SPECIFIEK --- */
.hero-index {
    position: relative;
    height: 500px;
    background: linear-gradient(to right, rgba(0,0,0,0.5), rgba(0,0,0,0.2)), url('images/bg-hero.avif');
    background-size: cover; 
    background-position: center;
    display: flex; 
    align-items: center; 
    padding: 0 10%; 
    color: white; 
    overflow: hidden;
}

.hero-content h1 { font-size: 70px; margin: 0; font-weight: bold; }

.hero-blob {
    position: absolute; 
    right: 8%; 
    top: 50%; 
    transform: translateY(-50%) rotate(-15deg); 
    width: 160px; 
    height: 160px; 
    background: var(--dm-yellow);
    border-radius: 40% 60% 80% 20% / 50% 60% 40% 50%; 
    z-index: 1;
}

.hero-cta { text-decoration: none; color: white; display: flex; align-items: center; }
.cta-icon { 
    background: var(--dm-yellow); 
    color: #000; 
    width: 35px; 
    height: 35px; 
    display: flex; 
    justify-content: center; 
    align-items: center; 
    margin-right: 15px; 
    font-weight: bold; 
}
.cta-text { text-decoration: underline; }

.kandidaten-sectie { padding: 80px 10%; background: #fff; }
.kandidaten-grid { 
    display: grid; 
    grid-template-columns: repeat(3, 1fr); 
    gap: 30px; 
}

.schuifmaat-sectie {
    position: relative; 
    height: 450px;
    background: url('images/vakmanschap.avif') no-repeat center center/cover;
    display: flex; 
    align-items: center; 
    padding: 0 10%; 
    color: white;
}

/* --- FOOTER --- */
.site-footer { 
    padding: 80px 8% 40px; 
    background-color: #fff; 
    border-top: 1px solid #eee; 
}

.footer-main-row { 
    display: flex; 
    justify-content: space-between; 
    align-items: flex-start;
    gap: 40px; 
    padding-bottom: 60px; 
}

.footer-column { flex: 1; text-align: left; }

.footer-brand { 
    font-weight: bold; 
    text-decoration: underline; 
    font-size: 18px; 
    color: #000; 
}

.footer-column h3 { font-size: 16px; margin-bottom: 20px; color: #000; }

.footer-column p, .footer-column ul { font-size: 14px; color: #666; line-height: 1.8; list-style: none; padding: 0; margin: 0; }

.footer-nav-list li { margin-bottom: 8px; }
.footer-nav-list a { text-decoration: underline; color: #333; }

.footer-blob-container { display: flex; justify-content: flex-end; align-items: center; }

.footer-yellow-blob { 
    width: 100px; 
    height: 90px; 
    background: var(--dm-yellow); 
    border-radius: 40% 60% 80% 20% / 50% 60% 40% 50%; 
    transform: rotate(-10deg);
}

.footer-bottom-row { 
    border-top: 1px solid #eee; 
    padding-top: 30px; 
    display: flex; 
    justify-content: space-between; 
    color: #666; 
    font-size: 14px; 
}

.legal-links a { margin-right: 25px; color: #666; text-decoration: underline; }

/* --- VERBETERDE RESPONSIVE WEERGAVE --- */
@media (max-width: 768px) {
    header {
        flex-direction: column;
        align-items: flex-start;
        padding: 15px 8%;
    }

    nav {
        margin-top: 20px;
        display: flex;
        flex-wrap: wrap;
        justify-content: flex-start;
        gap: 10px;
        width: 100%; /* Zorgt dat het menu de ruimte krijgt */
    }

    nav a { margin: 5px 15px 5px 0; font-size: 14px; }

    .nav-contact-btn { 
        margin-top: 15px; 
        width: 100%; 
        text-align: center; 
        box-sizing: border-box; /* Zorgt dat padding binnen de 100% valt */
        display: block;
    }

    .hero-index { height: auto; padding: 60px 8%; text-align: left; }
    .hero-content h1 { font-size: 38px; line-height: 1.2; text-align: left; }
    .hero-blob { display: none; }
    .hero-cta { justify-content: flex-start; }

    .tarieven-section, .content-block, .kandidaten-sectie {
        flex-direction: column !important;
        padding: 40px 8%;
        gap: 30px;
        text-align: left;
        align-items: flex-start;
    }

    .tarieven-image, .block-image, .tarieven-text, .block-text { width: 100%; flex: none; align-items: flex-start; }
    
    .kandidaten-grid { grid-template-columns: 1fr; } 
    
    .footer-main-row { flex-direction: column; text-align: left; gap: 40px; }
    .footer-column { align-items: flex-start; display: flex; flex-direction: column; }
    .footer-blob-container { justify-content: flex-start; }
    .footer-bottom-row { flex-direction: column; gap: 15px; text-align: left; }
    .legal-links a { margin-right: 15px; margin-bottom: 5px; display: inline-block; }
}