*,
*::before,
*::after 
{
    box-sizing: border-box;
}

body 
{
    margin: 0;
    display: flex;
    flex-direction: column;
    background-color: var(--bg-main);
}



:root {
    /* neutraal */
    --bg-main: oklch(0.97 0.01 260);
    --bg-card: oklch(0.99 0 0);
    --text-main: oklch(0.18 0.02 260);
    --text-muted: oklch(0.45 0.03 260);

    /* Primiry*/
    --primary: oklch(0.37 0.13 250);
    --primary-dark: oklch(0.28 0.12 250);
    --primary-light: oklch(0.55 0.12 250);

    /* Accent */
    --accent: oklch(0.75 0.12 85);

    /* shaduw */
    --shadow: oklch(0.2 0.02 260 / 25%);

    font-family: 'fredoka', sans-serif;
    line-height: 1.6;
    scroll-behavior:smooth;
    font-size: 1rem;

}

.container 
{
    margin-inline: auto;
    max-width: 80rem;
}
.nav-container
{
    max-width: 100%;
    background-color: var(--primary-dark);

}
nav
{
    display: flex;
    align-items: center;
    padding: 0.2rem 1.5rem;
    margin-inline: auto;
    flex-wrap: wrap;

    .logo 
    {
        height: 5rem;
        width: auto;
    }


    ul 
    {
        display: flex;
        list-style: none;
        gap: 1rem;
        margin: 0;
        padding: 0;
        flex-wrap: wrap;
        flex-direction: column;


        a 
        {
            color: var(--bg-main);
            text-decoration: none;
            font-size: 1.4rem;
            font-weight: 700;
            border-bottom: none;
            display: inline-block;
            padding: 0.4rem 1rem;
            transition: 0.3s;
            overflow: hidden;

            &:not(.logo):hover
            {
                background-color: var(--primary);
                border-radius: 0.6rem;
            }

        }
    
 
    }


}

h1, h2, h3 {
    line-height: 1.2;
    margin-block-start: 0;
    margin-block-end: 1rem;
    color: var(--text-main);
    text-align: center;
}

h1 
    {
    font-size: 2.5rem;
    margin-inline-start: 1rem;
    }

.info 
{
    display: flex;
    gap: 2rem;
    justify-content:space-between;
    align-items: flex-start;
    flex-direction: row;
    flex-wrap: wrap;

    .tekstblok 
    {
        display: flex;
        flex-direction: column;
        gap: 1rem;
        margin-inline: 1rem;
        text-align: center;

        .knop 
        {
            display: inline-block;
            align-self: flex-start;
            background-color: var(--primary);
            border-radius: 0.6rem;
            font-size: 1.1rem;
            padding: 0.5rem 0.9rem;
            text-decoration: none;
            color: var(--bg-main);
            transition: 0.3s;
            margin-inline: auto;


            &:hover 
            {
                background-color: var(--primary-light);
            }
        }
    }

    .foto 
    {
        display: block;
        max-width: 30%;
        height: auto;
        border: 0.2rem solid var(--zwart);
        border-radius: 90%;
        margin-inline: auto;
    }
}

.teasers 
{
    display: flex;
    gap: 2rem;
    list-style: none;
    padding: 0;
    justify-content: center;
    flex-wrap: wrap;
    margin-block-end: 3rem;

    li 
    {
        position: relative;
        display: flex;
        flex-direction: column;
        padding: 1rem;
        border-radius: 0.8rem;
        max-width: 20rem;
        width: 100%;
        text-align: center;
        background-color: var(--bg-card);
        box-shadow: 0 0.4rem 0.8rem var(--shadow);
        transition: transform 0.3s, box-shadow 0.3s, background-color 0.3s;

        &:hover {
            transform: translateY(-0.5rem);
            background-color: oklch(0.94 0.04 250);
            box-shadow: 0 0.6rem 1.2rem var(--shadow);
        }
        h3
        {
            color: var(--primary-dark);
            margin-block-start: 0.5rem;
            margin-block-end: 0.5rem;
        }
        p
        {
            flex-grow: 1;
        }

        img 
        {
            max-width: 100%;
            height: auto;
            border-radius: 0.4rem;
            margin-block-end: 1rem;
            order:-1;
        }
    }
}

.overlay-link 
{
    position: absolute;
    inset: 0;
    z-index: 10;
    text-indent: 100%;
    white-space: nowrap;
    overflow: hidden;
}

h2 
{
    font-size: 2rem;
    margin-block-end: 0.8rem;
    text-align: center;
    margin-inline-start: 0;
}


.footer-container
{
    width: 100%;
    background-color: var(--primary-dark);
    footer
    {
        margin: 0 auto;
        padding: 1rem;
        color: var(--bg-main);
        text-align: center;
    }
}



.socials 
{
    padding: 2rem;

    h2
    {
        margin-block-end: 1.5rem;
        display: block;
    }
    ul 
    {
        gap: 2rem;
        margin: 0; 

        li
        {
            margin: 0;
            display: flex;
            justify-content: center;
            align-items: center;
            padding: 0.5rem; 

            a
            {
                display: flex;
                align-items: center;
                gap: 0.5rem;
                text-decoration: none;
                color: var(--primary-dark);
                font-weight: 600;
                transition: color 0.3s;
                &:hover
                {
                    color: var(--primary);

                }
                img
                {
                    height: 3rem;
                    width: auto;
                    border-radius: 50%;
                    box-shadow: 0 0.4rem 0.6rem var(--shadow);
                }
            }
        }
    }
}


.intro-mezelf
{
    display: flex;
    flex-direction: column;
    gap: 2rem;
    padding-inline: 1rem;
    margin-block-end: 3rem;

    .persoonlijk
    {
        display: flex;
        flex-direction: column;
        gap: 1.5rem;
        align-items: center;
        text-align: center;

    }

    img
    {
        max-width: 12rem;
        width: 100%;
        height: auto;
        border-radius: 50%;
        box-shadow: 0 0.4rem 0.8rem var(--shadow);
    }

    p
    {
        font-size: 1.1rem;
        margin: 0; 
        color: var(--text-muted);
    }

    .schoolloopbaan
    {
        display: flex;
        flex-direction: column;
        gap: 1rem;

        ol
        {
            padding: 0;
            margin: 0;
            list-style:none;
            display: flex;
            flex-direction: column;
            gap: 0.8rem;

            li
            {
                background-color: var(--bg-card);
                padding: 0.8rem 1rem;
                border-radius: 0.6rem;
                box-shadow: 0 0.2rem 0.4rem var(--shadow);
                color: var(--text-main);
            }
        }
    }

    .werkervaring
    {
        margin-block-start: 1rem;
        color: var(--text-muted);
        font-size: 1.05rem;
        text-align: center;
    }

}


.titel-about
{
    text-align: center;
}


.lab-detail {
    padding-block: 2rem;
    text-align: center;

    h1 {
        margin-block-end: 2rem;
        color: var(--text-main);
    }

    section {
        margin-block-end: 2rem;
    }

    .lab-block {
        display: flex;
        flex-direction: column;
        gap: 1rem;
        background-color: var(--bg-card);
        padding: 1.5rem;
        border-radius: 0.8rem;
        box-shadow: 0 0.3rem 0.6rem var(--shadow);
        margin-inline: 1rem;

        img {
            max-width: 100%;
            height: auto;
            border-radius: 0.5rem;
        }

        a {
            align-self: flex-start;
            text-decoration: none;
            background-color: var(--primary);
            color: var(--bg-main);
            padding: 0.5rem 1rem;
            border-radius: 0.6rem;
            font-weight: 600;
            transition: background-color 0.3s;

            &:hover {
                background-color: var(--primary-light);
                padding: 0.5rem;
            }
        }

        ul {
            list-style: none;
            padding: 0;
            display: flex;
            flex-direction: column;
            gap: 0.5rem;

            a {
                background: none;
                color: var(--primary-dark);
                padding: 0;
                font-weight: 600;
                text-decoration: underline;
            
                &:hover {
                    color: var(--primary);
                }
            }
        }
    }

    .reflection {
        display: flex;
        flex-direction: column;
        gap: 1rem;

        h3 {
            font-size: 1.2rem;
            color: var(--primary-dark);
        }
    }
}



form {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin: 1rem;
    padding: 1rem;
    background-color: var(--bg-card);
    border-radius: 0.8rem;
    box-shadow: 0 0.3rem 0.6rem var(--shadow);

    label {
        font-weight: 600;
        color: var(--text-main);
    }

    input[type="text"],
    input[type="email"],
    textarea {
        width: 100%;
        padding: 0.6rem;
        border-radius: 0.5rem;
        border: 0.1rem solid var(--text-muted);
        font-size: 1rem;
    }

    input[type="submit"] {
        width: 100%;
        background-color: var(--primary);
        color: var(--bg-main);
        padding: 0.7rem;
        border: none;
        border-radius: 0.6rem;
        font-size: 1.1rem;
        transition: background-color 0.3s;

        &:hover {
            background-color: var(--primary-light);
        }
    }

    .error {
        color: oklch(62.793% 0.25768 29.223);
        font-size: 0.9rem;
    }

    input[type="checkbox"] {
        margin-inline-end: 0.4rem;
    }
}








.thankyou {
    min-height: 70vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 1.5rem;
    text-align: center;
    padding: 2rem 1rem;
}

.thankyou h1 {
    color: var(--primary-dark);
}

.thankyou-text {
    font-size: 1.1rem;
    color: var(--text-muted);
    max-width: 38rem;
}

.thankyou .knop {
    margin-block-start: 1rem;
}

.thankyou-image {
    width: 100%;
    max-width: 16rem;
    height: auto;
    margin-block-start: 2rem;
    border-radius: 50%;
    box-shadow: 0 0.4rem 0.8rem var(--shadow);
}


/* overgenomen van cusus*/
.visually-hidden {
border: 0;
clip-path: inset(50%);
height: 1px;
margin: 0;
overflow: hidden;
position: absolute;
white-space: nowrap;
width: 1px;
}





.messages-list {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    margin: 1.5rem 0.75rem; 
    padding: 0;
    list-style: none;
    align-items: stretch; 
}

.messages-list li {
    background-color: var(--bg-card);
    padding: 1.25rem;
    border-radius: 0.8rem;
    box-shadow: 0 0.4rem 0.8rem var(--shadow);
    border-left: 0.4rem solid var(--primary);
    
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    
    width: 100%;
    box-sizing: border-box;
    transition: transform 0.2s ease;
}

.messages-list li:hover {
    transform: translateY(-0.2rem);
    box-shadow: 0 0.6rem 1.2rem var(--shadow);
}

.messages-list strong {
    color: var(--primary-dark);
    font-size: 1.15rem;
    display: block;
}

.messages-list span {
    color: var(--text-muted);
    font-size: 0.9rem;
}

.messages-list p {
    margin: 0.75rem 0;
    line-height: 1.5;
    color: var(--text-main);
    background: oklch(0.97 0.01 260); 
    padding: 0.8rem;
    border-radius: 0.4rem;
    white-space: pre-wrap; 
}

.messages-list em {
    font-size: 0.85rem;
    color: var(--primary);
    font-weight: 600;
}

.messages-list small {
    display: block;
    margin-top: 0.5rem;
    text-align: right;
    color: var(--text-muted);
    font-size: 0.8rem;
    border-top: 0.1rem solid oklch(0.9 0.01 260);
    padding-top: 0.5rem;
}



@media (min-width: 64em) {

    body {
        font-size: 1.15rem;

        
    }

    h1 {
        font-size: 3.2rem;
    }

    h2 {
        font-size: 2.4rem;
    }

    h3 {
        font-size: 1.5rem;
    }

    p {
        font-size: 1.15rem;
    }

    .nav-container {
        padding-inline: 3rem;
    }

    nav {
        max-width: 90rem;
        justify-content: space-between;
        flex-wrap: nowrap;
        padding: 0.8rem 0;
    }

    nav ul {
        flex-direction: row;
        gap: 2.5rem;
    }

    nav ul a {
        font-size: 1.6rem;
        padding: 0.6rem 1.4rem;
        border-radius: 0.6rem;
    }

    .info {
        flex-wrap: nowrap;
        align-items: center;
        gap: 4rem;
        max-width: 90rem;
        margin-inline: auto;
    }


    .info .tekstblok {
        flex: 1;
        gap: 1.5rem;
        text-align: start;
    }

    .info .tekstblok .knop {
        font-size: 1.2rem;
        padding: 0.7rem 1.4rem;
        margin-inline-start: 0rem;
    }

    .info .foto {
        max-width: 20rem;
    }

    .teasers {
        gap: 3.5rem;
    }

    .teasers li {
        max-width: 24rem;
        padding: 2rem;
    }

    .teasers li h3 {
        font-size: 1.4rem;
    }

   


    .intro-mezelf img {
        max-width: 16rem;
    }

    .intro-mezelf p, li{
        font-size: 1.2rem;
        text-align: center;
    }
    

    .intro-mezelf .schoolloopbaan {
        flex: 2;
    }

    .intro-mezelf .schoolloopbaan ol li {
        padding: 1.2rem 1.6rem;
        font-size: 1.15rem;
        text-align: left;
    }

    .lab-detail .lab-block {
        max-width: 60rem;
        margin-inline: auto;
        padding: 2.5rem;
        gap: 1.5rem;
    }

    .lab-detail a {
        font-size: 1.1rem;
    }

    form {
        max-width: 45rem;
        margin-inline: auto;
        padding-block: 5rem;
    }

    input[type="text"],
    input[type="email"],
    textarea {
        font-size: 1.1rem;
        padding: 0.8rem;
    }

    input[type="submit"] {
        font-size: 1.2rem;
        padding: 0.9rem;
    }

    .footer-container footer {
        font-size: 1rem;
        padding: 1.5rem;
    }

    .p-oef{
        text-align: center;
    }


    .thankyou {
        min-height: 75vh;
        gap: 2rem;
    }

    .thankyou-text {
        font-size: 1.2rem;
    }


        .messages-list {
        margin: 3rem auto;
        max-width: 90rem;    
        
        flex-direction: row; 
        flex-wrap: wrap;  
        justify-content: center;
        align-items: stretch; 
        gap: 2rem; 
    }
    
    .messages-list li {
        padding: 2rem;
        flex: 1 1 calc(33.333% - 2rem);      /* gevonden online */
        max-width: 30rem;
        margin-inline: 0;
    }

    .messages-list p {
        flex-grow: 1;
    }
}


