.jumbotron.header_home{
    display: grid;
    align-items: end;
    min-height: calc(100svh - var(--body-padding));
    padding-block: var(--spacing_3) var(--spacing_8);
    background: var(--zwart);
    color: var(--beige);
}

#content > .header_home:first-child{
    min-height: calc(100svh - var(--body-padding) + var(--header_overlap, var(--body-padding)));
    padding-top: calc(var(--header_overlap, var(--body-padding)) + var(--spacing_3));
}

.header_home .header_home_afbeelding{
    position: absolute;
    inset: 0;
}

.header_home .header_home_afbeelding::after{
    content: "";
    position: absolute;
    inset: 0;
    /* The supplied home design shades the original photo by 11% at the top. */
    background: linear-gradient(180deg, rgb(0 0 0 / 11%) 23%, transparent);
}

.header_home .header_home_afbeelding picture{
    display: flex;
    width: 100%;
    height: 100%;
}

.header_home .header_home_afbeelding img,
.header_home .header_home_afbeelding video{
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: var(--header_focus_point, center bottom);
}

.header_home .header_home_content{
    position: relative;
    display: grid;
    gap: var(--spacing_3);
}

.jumbotron.header_home h1{
    /* Figma big title: 130px; fluid between the shared 360–1320px endpoints. */
    font-size: clamp(5rem, 2rem + 8.333333vw, 13rem);
    color: var(--beige);
    hyphens: auto;
    font-weight: 400;
}

.header_home .header_home_acties{
    display: grid;
    grid-template-columns: minmax(0, 740fr) auto minmax(0, 415fr);
    align-items: stretch;
    gap: var(--spacing_3);
}

.header_home .header_home_of{
    align-self: center;
    text-align: center;
}

.header_home .header_home_links{
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: calc(var(--spacing_3) / 3);
}

.header_home .header_home_links:not(:has(a:nth-child(2))){
    grid-template-columns: minmax(0, 1fr);
}

.header_home .header_home_link{
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: calc(var(--spacing_3) / 6);
    padding: calc(var(--spacing_3) * 2 / 3);
    border-radius: calc(var(--spacing_3) * 2 / 3);
    text-align: center;
    text-decoration: none;
    hyphens: auto;
}

.header_home .header_home_wellness{
    background: var(--bruin);
    color: var(--zwart);
}

.header_home .header_home_link .h4{
    font-weight: 400;
}

.header_home .header_home_wellness .h4{
    /* Two-line label in the 201px design tile, without a hardcoded line break. */
    max-inline-size: 7ch;
}

.header_home .header_home_bistro{
    background: var(--zwart);
    color: var(--beige);
}

.header_home .header_home_bistro .kleine_tekst{
    max-inline-size: 15ch;
    line-height: 1.15;
}

.header_home .header_home_link:is(:hover, :focus-visible){
    outline: 0.2rem solid currentColor;
    outline-offset: 0.2rem;
}

@media (max-width:767px){
    .jumbotron.header_home h1{
        /* Mobile Figma title and pill labels deliberately retain their 30/22px sizes. */
        font-size: 3rem;
    }

    .header_home .header_home_content{
        gap: 3rem;
    }

    .header_home .header_home_acties{
        grid-template-columns: minmax(0, 1fr);
        gap: 1rem;
    }

    .header_home .header_home_of,
    .header_home .boekingsformulier:has(.boeking_uitklappen[aria-expanded="false"]) .boeking_keuzes,
    .header_home .header_home_bistro .kleine_tekst,
    .header_home .boekingsformulier:has(.boeking_uitklappen:not([hidden])) .boeking_titel,
    .header_home .boeking_zoeken_desktop{
        display: none;
    }

    .header_home .header_home_links{
        grid-template-columns: minmax(0, 1fr);
        gap: 1rem;
    }

    .header_home .header_home_link,
    .header_home .boekingsformulier .boeking_balk{
        /* Figma mobile pills: 30px radius, 11px vertical and 20px horizontal inset. */
        border-radius: 3rem;
        padding: 1.1rem 2rem;
    }

    .header_home .header_home_link .h4,
    .header_home .boeking_uitklappen{
        font-size: 2.2rem;
    }

    .header_home .header_home_wellness .h4{
        max-inline-size: none;
    }

    .header_home .header_home_bistro{
        color: var(--wit);
    }

    .header_home .boekingsformulier .boeking_balk{
        background: var(--beige);
        gap: 1rem;
    }

    .header_home .boekingsformulier:has(.boeking_uitklappen:not([hidden])){
        /* Reserve the closed 22px label + twice 11px inset; expand upwards over the H1. */
        min-block-size: 4.4rem;
    }

    .header_home .boekingsformulier:has(.boeking_uitklappen:not([hidden])) .boeking_balk{
        position: absolute;
        inset-inline: 0;
        bottom: 0;
        height: auto;
        max-block-size: calc(100svh - var(--spacing_3) * 2);
        overflow: auto;
        z-index: 1;
    }

    .header_home .boekingsformulier:has(.boeking_uitklappen[aria-expanded="true"]) .boeking_balk{
        /* Figma's centered 213px widget leaves 18px above and below its controls. */
        padding-block: 1.8rem;
    }

    .header_home .boekingsformulier .boeking_uitklappen{
        position: relative;
        display: block;
        padding: 0;
        border: 0;
        background: transparent;
        color: var(--zwart);
        text-align: center;
        font-weight: 400;
    }

    .header_home .boekingsformulier .boeking_uitklappen[aria-expanded="true"]{
        padding-inline: 2rem;
    }

    .header_home .boeking_sluiten{
        display: none;
        position: absolute;
        right: 0;
        top: 50%;
        inline-size: calc(var(--spacing_3) * 4 / 5);
    }

    .header_home .boeking_uitklappen[aria-expanded="true"] .boeking_sluiten{
        display: block;
    }

    .header_home .boeking_sluiten::before,
    .header_home .boeking_sluiten::after{
        content: "";
        position: absolute;
        inset-inline: 0;
        height: 0.1rem;
        background: currentColor;
        transform: rotate(45deg);
    }

    .header_home .boeking_sluiten::after{
        transform: rotate(-45deg);
    }

    .header_home .boekingsformulier .boeking_keuzes{
        flex-direction: column;
        flex-wrap: nowrap;
        gap: 1rem;
        border: 0;
        border-radius: 0;
    }

    .header_home .boekingsformulier .boeking_keuzes > :is(.boeking_trigger, .button){
        flex-basis: auto;
    }

    .header_home .boekingsformulier .boeking_trigger{
        /* The compact inputs use the design's 12px label and 8px corner radius. */
        padding: 1.1rem 1.2rem;
        border: 0.1rem solid color-mix(in srgb, var(--zwart) 20%, transparent);
        border-radius: 0.8rem;
        font-size: 1.2rem;
        gap: 1rem;
    }

    .header_home .boeking_trigger i{
        font-size: 1.6rem;
        line-height: 1;
    }

    .header_home .boekingsformulier .boeking_zoeken_mobiel{
        display: inline;
    }
}

@media (min-width:768px) and (max-width:991px){
    .header_home .header_home_acties{
        grid-template-columns: auto minmax(0, 1fr);
    }

    .header_home .boekingsformulier{
        grid-column: 1 / -1;
    }
}

@media (min-width:992px) and (max-width:1199px){
    .header_home .header_home_acties{
        grid-template-columns: auto minmax(0, 1fr);
    }

    .header_home .boekingsformulier{
        grid-column: 1 / -1;
    }
}
