/*
Theme Name: Hello Elementor Child
Template: hello-elementor
*/

:root {
    --denhil-red:   #DC0E2A;
    --denhil-black: #1A1A1A;
    --denhil-white: #FFFFFF;
}

body {
    font-family: 'Montserrat', sans-serif;
    color: var(--denhil-black);
    margin: 0;
}

/* === Header laag === */
.layer-header {
    position: relative;
    overflow: hidden;
}

.layer-header__bg {
    width: 100%;
    height: 232px;          /* mobile: vaste hoogte zoals Figma */
    object-fit: cover;
    object-position: center;
    display: block;
}

/* Mobile: hele content-area heeft de rode achtergrond */
.layer-header__content {
    background: var(--denhil-red);
    color: var(--denhil-white);
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

/* Mobile: box is gewoon de tekst-wrapper, geen eigen background */
.layer-header__box {
    background: transparent;
    padding: 0;
    text-align: center;
}

.layer-header__title {
    font-size: 32px;
    line-height: 1.3;
    margin: 0;
    color: var(--denhil-white);
}
.layer-header__title-top  { display: block; font-weight: 400; }
.layer-header__title-bold { display: block; font-weight: 700; }

/* Knoppen */
.layer-header__buttons {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.layer-header__buttons .btn {
    width: 100%;
}

/* === Knoppen === */
.btn {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    padding: 12px 24px;
    border-radius: 10px;
    font-family: 'Montserrat', sans-serif;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.5;
    text-decoration: none !important;
    border: 1px solid transparent;
    transition: 0.2s;
    cursor: pointer;
    min-height: 48px;
    box-sizing: border-box;
}

/* Donkere knop — meerdere mogelijke veld-waardes ondersteund */
.btn--donker,
.btn--dark,
.btn--zwart {
    background: var(--denhil-black) !important;
    color: var(--denhil-white) !important;
    border-color: var(--denhil-black);
}
.btn--donker:hover,
.btn--dark:hover,
.btn--zwart:hover { background: #000 !important; }

/* Lichte knop */
.btn--light,
.btn--licht,
.btn--wit {
    background: var(--denhil-white) !important;
    color: var(--denhil-red) !important;
    border-color: var(--denhil-white);
}
.btn--light:hover,
.btn--licht:hover,
.btn--wit:hover {
    background: var(--denhil-red) !important;
    color: var(--denhil-white) !important;
}

/* === Diensten blokken laag === */
.layer-dienstenblokken {
    padding: 32px 24px;
    background: var(--denhil-white);
}
.layer-dienstenblokken__inner {
    max-width: 1408px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 32px;
    align-items: center;
}
.layer-dienstenblokken__header {
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 16px;
    width: 100%;
}
.layer-dienstenblokken__title {
    font-size: 32px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--denhil-black);
    margin: 0;
}
.layer-dienstenblokken__subtitle {
    font-size: 18px;
    color: #4a5565;
    margin: 0;
    line-height: 1.5;
}

.layer-dienstenblokken__grid {
    display: flex;
    flex-direction: column;
    gap: 32px;
    width: 100%;
}

/* Individueel blok */
.dblok {
    display: flex;
    flex-direction: column;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 0 10px rgba(0,0,0,0.15);
    background: var(--denhil-white);
}
.dblok--rood .dblok__body {
    background: var(--denhil-red);
    color: var(--denhil-white);
}
.dblok__image {
    height: 192px;
    overflow: hidden;
}
.dblok__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.dblok__body {
    padding: 24px 24px 16px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    flex: 1;
    background: var(--denhil-white);
    color: var(--denhil-black);
}
.dblok__title {
    font-size: 18px;
    font-weight: 700;
    line-height: 1.5;
    margin: 0;
    color: inherit;
}
.dblok__text {
    font-size: 14px;
    line-height: 1.5;
    margin: 0;
    color: inherit;
    flex: 1;
}
.dblok__link {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: var(--denhil-red);
    font-size: 14px;
    font-weight: 500;
    text-decoration: none;
    padding: 12px 0;
    align-self: flex-start;
}
.dblok--rood .dblok__link {
    color: var(--denhil-white);
}
.dblok__arrow {
    transition: transform 0.2s;
    display: inline-block;
    width: 24px;
    height: 24px;
    object-fit: contain;
}
.dblok__link:hover .dblok__arrow {
    transform: translateX(4px);
}

.layer-dienstenblokken__cta {
    display: flex;
    justify-content: center;
}

/* Diensten blokken — Desktop: 4 kolommen */
@media (min-width: 992px) {
    .layer-dienstenblokken {
        padding: 64px 24px;
    }
    .layer-dienstenblokken__inner {
        gap: 48px;
    }
    .layer-dienstenblokken__grid {
        flex-direction: row;
        gap: 32px;
        align-items: stretch;
    }
    .dblok {
        flex: 1 1 0;
        min-width: 0;
    }
}

/* === Review laag === */
.layer-reviewlaag {
    background: #F2F2F2;
    padding: 32px 24px;
}
.layer-reviewlaag__inner {
    max-width: 1408px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 32px;
    align-items: center;
}
.layer-reviewlaag__header {
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 16px;
    align-items: center;
}
.layer-reviewlaag__rating {
    display: flex;
    align-items: center;
    gap: 8px;
}
.layer-reviewlaag__rating .stars__icon {
    width: 24px;
    height: 24px;
}
.layer-reviewlaag__rating-text {
    font-size: 20px;
    font-weight: 700;
    color: var(--denhil-black);
}
.layer-reviewlaag__title {
    font-size: 32px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--denhil-black);
    margin: 0;
}
.layer-reviewlaag__subtitle {
    font-size: 18px;
    color: #4a5565;
    margin: 0;
    line-height: 1.5;
}

.layer-reviewlaag__grid {
    display: flex;
    flex-direction: column;
    gap: 16px;
    width: 100%;
}

/* Sterren block */
.stars {
    display: inline-flex;
    gap: 4px;
    align-items: center;
}
.stars__icon {
    display: block;
    width: 16px;
    height: 16px;
    object-fit: contain;
}

/* Review card */
.review {
    background: var(--denhil-white);
    padding: 24px;
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    box-sizing: border-box;
}
.review .stars__icon {
    width: 16px;
    height: 16px;
}
.review__quote {
    font-style: italic;
    font-size: 16px;
    line-height: 1.5;
    color: #364153;
    margin: 0;
}
.review__name {
    font-size: 16px;
    font-weight: 700;
    color: var(--denhil-black);
    margin: 0;
    margin-top: auto;          /* duwt naam naar onderkant card */
}

/* Review laag — Desktop: 4 kolommen */
@media (min-width: 992px) {
    .layer-reviewlaag {
        padding: 64px 24px;
    }
    .layer-reviewlaag__inner {
        gap: 40px;
    }
    .layer-reviewlaag__grid {
        flex-direction: row;
        gap: 24px;
        align-items: stretch;
    }
    .review {
        flex: 1 1 0;
        min-width: 0;
    }
}

/* === Pluspunten laag === */
.layer-pluspunten {
    background: var(--denhil-white);
    padding: 32px 24px;
}
.layer-pluspunten__inner {
    max-width: 1408px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 32px;
    align-items: center;
}
.layer-pluspunten__header {
    width: 100%;
    text-align: center;
}
.layer-pluspunten__title {
    font-size: 32px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--denhil-black);
    margin: 0;
}
.layer-pluspunten__grid {
    display: flex;
    flex-direction: column;
    gap: 16px;
    width: 100%;
}

/* Individueel pluspunt */
.pluspunt {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    padding: 24px;
    border-radius: 8px;
    background: var(--denhil-white);
    text-align: center;
}
.pluspunt__icon {
    width: 64px;
    height: 64px;
    background: var(--denhil-red);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.pluspunt__icon img {
    width: 32px;
    height: 32px;
    object-fit: contain;
    display: block;
}
.pluspunt__body {
    display: flex;
    flex-direction: column;
    gap: 8px;
    width: 100%;
}
.pluspunt__title {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.4;
    color: var(--denhil-black);
    margin: 0;
}
.pluspunt__text {
    font-size: 16px;
    line-height: 1.5;
    color: #364153;
    margin: 0;
}

/* Pluspunten — Desktop: 4 kolommen */
@media (min-width: 992px) {
    .layer-pluspunten {
        padding: 64px 24px;
    }
    .layer-pluspunten__inner {
        gap: 40px;
    }
    .layer-pluspunten__grid {
        flex-direction: row;
        gap: 24px;
        align-items: stretch;
    }
    .pluspunt {
        flex: 1 1 0;
        min-width: 0;
    }
}

/* === Recente projecten laag === */
.layer-recentprojecten {
    background: #F2F2F2;
    padding: 32px 24px;
}
.layer-recentprojecten__inner {
    max-width: 1408px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 32px;
    align-items: center;
}
.layer-recentprojecten__header {
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 16px;
    width: 100%;
}
.layer-recentprojecten__title {
    font-size: 32px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--denhil-black);
    margin: 0;
}
.layer-recentprojecten__subtitle {
    font-size: 18px;
    color: #4a5565;
    margin: 0;
    line-height: 1.5;
}
.layer-recentprojecten__grid {
    display: flex;
    flex-direction: column;
    gap: 32px;
    width: 100%;
}

/* Project blok (zelfde stijl als dienstenblok) */
.pblok {
    display: flex;
    flex-direction: column;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 0 10px rgba(0,0,0,0.15);
    background: var(--denhil-white);
}
.pblok__image {
    height: 192px;
    overflow: hidden;
}
.pblok__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.pblok__body {
    padding: 24px 24px 16px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    flex: 1;
    background: var(--denhil-white);
    color: var(--denhil-black);
}
.pblok__title {
    font-size: 18px;
    font-weight: 700;
    line-height: 1.5;
    margin: 0;
    color: inherit;
}
.pblok__text {
    font-size: 14px;
    line-height: 1.5;
    margin: 0;
    color: inherit;
    flex: 1;
}
.pblok__link {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: var(--denhil-red);
    font-size: 14px;
    font-weight: 500;
    text-decoration: none;
    padding: 12px 0;
    align-self: flex-start;
}
.pblok__arrow {
    transition: transform 0.2s;
    display: inline-block;
    width: 24px;
    height: 24px;
    object-fit: contain;
}
.pblok__link:hover .pblok__arrow {
    transform: translateX(4px);
}
.layer-recentprojecten__cta {
    display: flex;
    justify-content: center;
}

/* Recente projecten — Desktop: 4 kolommen */
@media (min-width: 992px) {
    .layer-recentprojecten {
        padding: 64px 24px;
    }
    .layer-recentprojecten__inner {
        gap: 48px;
    }
    .layer-recentprojecten__grid {
        flex-direction: row;
        gap: 32px;
        align-items: stretch;
    }
    .pblok {
        flex: 1 1 0;
        min-width: 0;
    }
}

/* === Onze projecten laag === */
.layer-onzeprojecten {
    background: var(--denhil-white);
}
.layer-onzeprojecten__header {
    background: #F9F9F9;
    text-align: center;
    padding: 48px 24px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.layer-onzeprojecten__title {
    font-size: 32px;
    font-weight: 700;
    line-height: 1.2;
    color: var(--denhil-black);
    margin: 0;
}
.layer-onzeprojecten__subtitle {
    font-size: 18px;
    color: #4a5565;
    margin: 0;
    line-height: 1.5;
}
.layer-onzeprojecten__inner {
    max-width: 1408px;
    margin: 0 auto;
    padding: 32px 24px;
}
.layer-onzeprojecten__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 32px;
}

/* Project card met label badge */
.ozblok {
    display: flex;
    flex-direction: column;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 0 10px rgba(0,0,0,0.15);
    background: var(--denhil-white);
}
.ozblok__image {
    height: 255px;
    overflow: hidden;
    position: relative;
}
.ozblok__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.ozblok__label {
    position: absolute;
    top: 24px;
    left: 24px;
    background: var(--denhil-red);
    color: var(--denhil-white);
    padding: 4px 8px;
    font-size: 14px;
    line-height: 20px;
    z-index: 2;
}
.ozblok__body {
    padding: 24px 24px 16px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    flex: 1;
}
.ozblok__title {
    font-size: 18px;
    font-weight: 700;
    line-height: 1.5;
    margin: 0;
    color: var(--denhil-black);
}
.ozblok__meta {
    display: flex;
    justify-content: space-between;
    font-size: 14px;
    color: var(--denhil-black);
    line-height: 1.5;
}
.ozblok__link {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: var(--denhil-red);
    font-size: 14px;
    font-weight: 500;
    text-decoration: none;
    padding: 12px 0;
    align-self: flex-start;
}
.ozblok__arrow {
    transition: transform 0.2s;
    display: inline-block;
    width: 24px;
    height: 24px;
    object-fit: contain;
}
.ozblok__link:hover .ozblok__arrow {
    transform: translateX(4px);
}

/* Onze projecten — Desktop: 4 kolommen */
@media (min-width: 992px) {
    .layer-onzeprojecten__header {
        padding: 120px 24px 72px;
    }
    .layer-onzeprojecten__title {
        font-size: 40px;
    }
    .layer-onzeprojecten__grid {
        grid-template-columns: repeat(4, 1fr);
        gap: 32px;
    }
}

/* === Project detail page === */
.project-detail {
    background: var(--denhil-white);
    padding-bottom: 64px;
}

/* Hero — mobile: gestapeld (image, titlebox, topbar) */
.project-detail__hero {
    position: relative;
    background-color: #f9f9f9;
    display: flex;
    flex-direction: column;
}
.project-detail__hero-img {
    order: 1;
    width: 100%;
    height: 232px;
    object-fit: cover;
    object-position: center;
    display: block;
}
.project-detail__hero-inner {
    order: 2;
}
.project-detail__titlebox {
    background: var(--denhil-red);
    color: var(--denhil-white);
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.project-detail__title {
    font-size: 24px;
    font-weight: 700;
    line-height: 1.4;
    margin: 0;
}
.project-detail__meta {
    font-size: 14px;
    font-weight: 500;
    margin: 0;
    line-height: 1.5;
}
.project-detail__topbar {
    order: 3;
    background: var(--denhil-white);
    padding: 12px 24px;
    width: 100%;
    box-sizing: border-box;
    border-bottom: 1px solid #e5e7eb;
}
.project-detail__back {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--denhil-red);
    font-size: 14px;
    font-weight: 500;
    text-decoration: none;
}

/* Content */
.project-detail__content {
    padding: 0 24px;
}
.project-detail__inner {
    max-width: 1408px;
    margin: 0 auto;
    padding-top: 32px;
    display: flex;
    flex-direction: column;
    gap: 40px;
}
.project-detail__gallery {
    display: flex;
    flex-direction: column;
    gap: 24px;
}
.project-detail__gallery img {
    width: 100%;
    height: 389px;
    object-fit: cover;
    display: block;
}
.project-detail__info {
    display: flex;
    flex-direction: column;
    gap: 40px;
}
.project-detail__about-title {
    font-size: 32px;
    font-weight: 700;
    line-height: 1.3;
    margin: 0 0 16px;
    color: var(--denhil-black);
}
.project-detail__about-text {
    font-size: 16px;
    line-height: 1.5;
    color: #364153;
}
.project-detail__about-text p {
    margin: 0 0 1em;
}
.project-detail__details-title {
    font-size: 24px;
    font-weight: 700;
    line-height: 1.4;
    margin: 0 0 16px;
    color: var(--denhil-black);
}
.project-detail__details-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.project-detail__details-list li {
    position: relative;
    padding-left: 16px;
    font-size: 16px;
    line-height: 1.5;
    color: #364153;
}
.project-detail__details-list li::before {
    content: "•";
    color: var(--denhil-red);
    position: absolute;
    left: 0;
    font-weight: 700;
}

/* Project detail — Desktop: 2 kolommen + sticky info */
@media (min-width: 992px) {
    .project-detail__hero {
        height: 331px;
        padding-bottom: 40px;
        overflow: hidden;
    }
    .project-detail__hero-img {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
    }
    .project-detail__topbar {
        order: 1;
        position: relative;
        z-index: 2;
        border-bottom: none;
    }
    .project-detail__hero-inner {
        order: 2;
        position: relative;
        z-index: 2;
        padding: 0 clamp(24px, 5vw, 160px);
        margin-top: auto;
    }
    .project-detail__titlebox {
        display: inline-flex;
        max-width: fit-content;
        padding: 32px 40px;
        gap: 16px;
    }
    .project-detail__title {
        font-size: 40px;
        line-height: 1.2;
    }
    .project-detail__meta {
        font-size: 18px;
        font-weight: 400;
    }
    .project-detail__inner {
        flex-direction: row;
        gap: 77px;
        align-items: flex-start;
    }
    .project-detail__gallery {
        flex: 1;
        min-width: 0;
        order: 1;            /* desktop: galerij links */
    }
    .project-detail__info {
        flex: 1;
        min-width: 0;
        order: 2;            /* desktop: info rechts */
        position: sticky;
        top: 180px;          /* clear de site header + WP admin bar */
    }
}

/* === Header laag — Desktop === */
@media (min-width: 992px) {
    .layer-header {
        width: calc(100% - 32px);          /* 16px side breathing op kleinere desktops */
        max-width: 1408px;                 /* max breedte zoals Figma */
        height: 504px;                     /* vaste hoogte zoals Figma */
        margin: 32px auto 0;               /* horizontaal gecentreerd */
        border-radius: 8px;
    }
    .layer-header__bg {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
    }
    /* Desktop: content geen background, vertikaal gecentreerd */
    .layer-header__content {
        position: relative;
        background: transparent;
        height: 100%;
        padding: 0;
        gap: 0;
        display: flex;
        flex-direction: column;
        justify-content: center;           /* vertikaal centreren */
        align-items: flex-start;           /* horizontaal links */
    }
    .layer-header__box {
        background: var(--denhil-red);
        width: 595px;
        max-width: calc(100% - 32px);
        padding: 32px 104px 56px;
        border-radius: 0 16px 16px 0;
        margin: 0 0 -22px 0;
        text-align: left;
    }
    .layer-header__title { font-size: 56px; line-height: 1.2; }

    .layer-header__buttons {
        flex-direction: row;
        gap: 16px;
        padding-left: 104px;
    }
    .layer-header__buttons .btn {
        width: auto;
    }
}
