*,
*::before,
*::after {
    box-sizing: border-box;
}

* {
    margin: 0;
    line-height: calc(1em + 0.5rem);
}


img,
picture,
video,
canvas,
svg {
    display: block;
    max-width: 100%;
}

input,
button,
textarea,
select {
    font: inherit;
}

p,
h1,
h2,
h3,
h4,
h5,
h6 {
    overflow-wrap: break-word;
}

p {
    text-wrap: pretty;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    text-wrap: balance;
}

#root,
#__next {
    isolation: isolate;
}

body {
    font-family: 'Lato', sans-serif;
    font-weight: 400;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.container {
    width: 100%;
    max-width: 100%;
}

@media (min-width: 576px) {
    .container {
        max-width: 540px;
    }
}

@media (min-width: 768px) {
    .container {
        max-width: 720px;
    }
}

@media (min-width: 992px) {
    .container {
        max-width: 960px;
    }
}

@media (min-width: 1200px) {
    .container {
        max-width: 1140px;
    }
}

@media (min-width: 1400px) {
    .container {
        max-width: 1320px;
    }
}

.home {
    min-width: 100vw;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2rem;
    background-color: black;
    background-image: url('https://assets-nka.ckx.be/DSC08257-fix2.jpg');
    background-size: cover;
    background-position: 30% center;
    background-repeat: no-repeat;
    position: relative;
    overflow: hidden;
}

@media (min-aspect-ratio: 8/10) {
    .home {
        background-size: 200% auto;
        background-position: 10% 60%;
    }
  }

.home::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.2);
}

.home > * {
    z-index: 1;
}

.home .logo img {
    width: 80vw;
    max-width: 380px;
}

.home nav ul, header nav ul {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    list-style: none;
    padding: 0;
    text-transform: uppercase;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.home nav ul li a, header nav ul li a {
    color: white;
    text-decoration: none;
    font-size: 1rem;
    font-weight: 300;
}

header nav ul li a {
    color: #181818;
    font-weight: 100;
}

header nav ul li a.active {
    font-weight: 300;
}

@media (min-width: 576px) {
    .home .logo img {
        max-width: min(550px, 40vw);
    }
    .home nav ul, header nav ul {
        flex-direction: row;
        gap: min(5vw, 5rem);
    }
    header .container {
        gap: 4rem;
    }
}

header {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 30px 60px;
}

header .container {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 3rem;
}

header .logo img {
    width: min(80vw, 300px);
}

footer {
    background-color: #181818;
    color: #FFFFFF99;
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    font-size: 0.9rem;
    font-weight: 300;
    gap: 2rem;
    padding: 60px 30px;
}

footer a {
    color: #FFFFFFDD;
    text-decoration: none;
}

footer .logo {
    width: 200px;
}

footer .contact-info {
    display: flex;
    flex-direction: column;
    width: 100%;
    align-items: center;
    gap: 2rem;
    padding-right: 4rem;
}

footer .contact-info .column {
    display: flex;
    gap: 1rem;
    flex-direction: column;
}

footer .contact-info .stylised-name {
    line-height: 80%;
}

footer .contact-info address {
    font-style: normal;
}

footer .contact-info .big-text {
    font-size: 2rem;
    font-weight: 400;
}

footer .contact-info .small-text {
    font-size: 1.2rem;
    font-weight: 400;
}

.contact-info__block {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.contact-info__socials {
    display: flex;
    gap: 1rem;
}

.contact-info__socials a {
    display: inline-block;
    width: 15px;
    height: 15px;
    background-size: contain;
    background-repeat: no-repeat;
    text-decoration: none;
}

.contact-info__socials a.facebook {
    background-image: url('data:image/svg+xml;utf8,%3Csvg fill="%23bebdbd" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="15px" height="15px" viewBox="0 0 512 512" xml:space="preserve"%3E %3Cg id="7935ec95c421cee6d86eb22ecd11b7e3"%3E %3Cpath style="display: inline;" d="M283.122%2C122.174c0%2C5.24%2C0%2C22.319%2C0%2C46.583h83.424l-9.045%2C74.367h-74.379 c0%2C114.688%2C0%2C268.375%2C0%2C268.375h-98.726c0%2C0%2C0-151.653%2C0-268.375h-51.443v-74.367h51.443c0-29.492%2C0-50.463%2C0-56.302 c0-27.82-2.096-41.02%2C9.725-62.578C205.948%2C28.32%2C239.308-0.174%2C297.007%2C0.512c57.713%2C0.711%2C82.04%2C6.263%2C82.04%2C6.263 l-12.501%2C79.257c0%2C0-36.853-9.731-54.942-6.263C293.539%2C83.238%2C283.122%2C94.366%2C283.122%2C122.174z"%3E %3C/path%3E %3C/g%3E %3C/svg%3E');
}

.contact-info__socials a.instagram {
    background-image: url('data:image/svg+xml;utf8,%3Csvg width="15px" height="15px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"%3E%3Cpath fill-rule="evenodd" clip-rule="evenodd" d="M12 18C15.3137 18 18 15.3137 18 12C18 8.68629 15.3137 6 12 6C8.68629 6 6 8.68629 6 12C6 15.3137 8.68629 18 12 18ZM12 16C14.2091 16 16 14.2091 16 12C16 9.79086 14.2091 8 12 8C9.79086 8 8 9.79086 8 12C8 14.2091 9.79086 16 12 16Z" fill="%23bebdbd"%2F%3E%3Cpath d="M18 5C17.4477 5 17 5.44772 17 6C17 6.55228 17.4477 7 18 7C18.5523 7 19 6.55228 19 6C19 5.44772 18.5523 5 18 5Z" fill="%23bebdbd"%2F%3E%3Cpath fill-rule="evenodd" clip-rule="evenodd" d="M1.65396 4.27606C1 5.55953 1 7.23969 1 10.6V13.4C1 16.7603 1 18.4405 1.65396 19.7239C2.2292 20.8529 3.14708 21.7708 4.27606 22.346C5.55953 23 7.23969 23 10.6 23H13.4C16.7603 23 18.4405 23 19.7239 22.346C20.8529 21.7708 21.7708 20.8529 22.346 19.7239C23 18.4405 23 16.7603 23 13.4V10.6C23 7.23969 23 5.55953 22.346 4.27606C21.7708 3.14708 20.8529 2.2292 19.7239 1.65396C18.4405 1 16.7603 1 13.4 1H10.6C7.23969 1 5.55953 1 4.27606 1.65396C3.14708 2.2292 2.2292 3.14708 1.65396 4.27606ZM13.4 3H10.6C8.88684 3 7.72225 3.00156 6.82208 3.0751C5.94524 3.14674 5.49684 3.27659 5.18404 3.43597C4.43139 3.81947 3.81947 4.43139 3.43597 5.18404C3.27659 5.49684 3.14674 5.94524 3.0751 6.82208C3.00156 7.72225 3 8.88684 3 10.6V13.4C3 15.1132 3.00156 16.2777 3.0751 17.1779C3.14674 18.0548 3.27659 18.5032 3.43597 18.816C3.81947 19.5686 4.43139 20.1805 5.18404 20.564C5.49684 20.7234 5.94524 20.8533 6.82208 20.9249C7.72225 20.9984 8.88684 21 10.6 21H13.4C15.1132 21 16.2777 20.9984 17.1779 20.9249C18.0548 20.8533 18.5032 20.7234 18.816 20.564C19.5686 20.1805 20.1805 19.5686 20.564 18.816C20.7234 18.5032 20.8533 18.0548 20.9249 17.1779C20.9984 16.2777 21 15.1132 21 13.4V10.6C21 8.88684 20.9984 7.72225 20.9249 6.82208C20.8533 5.94524 20.7234 5.49684 20.564 5.18404C20.1805 4.43139 19.5686 3.81947 18.816 3.43597C18.5032 3.27659 18.0548 3.14674 17.1779 3.0751C16.2777 3.00156 15.1132 3 13.4 3Z" fill="%23bebdbd"%2F%3E%3C%2Fsvg%3E');
}

.contact-info__socials a.linkedin {
    background-image: url('data:image/svg+xml;utf8,%3Csvg width="15px" height="15px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"%3E%3Cg id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"%3E%3Cg id="Dribbble-Light-Preview" transform="translate(-180.000000%2C -7479.000000)" fill="%23bebdbd"%3E%3Cg id="icons" transform="translate(56.000000%2C 160.000000)"%3E%3Cpath d="M144%2C7339 L140%2C7339 L140%2C7332.001 C140%2C7330.081 139.153%2C7329.01 137.634%2C7329.01 C135.981%2C7329.01 135%2C7330.126 135%2C7332.001 L135%2C7339 L131%2C7339 L131%2C7326 L135%2C7326 L135%2C7327.462 C135%2C7327.462 136.255%2C7325.26 139.083%2C7325.26 C141.912%2C7325.26 144%2C7326.986 144%2C7330.558 L144%2C7339 L144%2C7339 Z M126.442%2C7323.921 C125.093%2C7323.921 124%2C7322.819 124%2C7321.46 C124%2C7320.102 125.093%2C7319 126.442%2C7319 C127.79%2C7319 128.883%2C7320.102 128.883%2C7321.46 C128.884%2C7322.819 127.79%2C7323.921 126.442%2C7323.921 L126.442%2C7323.921 Z M124%2C7339 L129%2C7339 L129%2C7326 L124%2C7326 L124%2C7339 Z" id="linkedin- %5B%23161%5D"%3E%3C/path%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E');
}

footer .container:first-child {
    display: flex;
    justify-content: center;
    align-items: center;
}

footer .container:last-child {
    border-top: 1px solid #3a3a3a;
    padding-top: 2rem;
    width: 100%;
    text-align: center;
    font-size: 80%;
}

main {
    padding: 60px 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 60px;
}

main .about {
    display: flex;
    gap: 4rem;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

main .about .headshot {
    width: 60vw;
}

@media (min-width: 768px) {

    .contact-info__block {
        flex-direction: column;
        gap: 0;
    }

    footer .contact-info {
        flex-direction: row;
        justify-content: space-evenly;
    }
    main .about {
        gap: 2rem;
    }
    main .about .headshot {
        min-width: 250px;
        max-width: 400px;
    }
}

@media (min-width: 1000px) {
    .contact-info__block {
        flex-direction: row;
        gap: 1rem;
    }
}

main .about .headshot img {
    width: 100%;
    filter: grayscale(100%);
}

main .about section {
    padding: 0 20px;
}

main .about h1 {
    font-size: 2rem;
    color: #212934;
    font-weight: 300;
    margin-bottom: 30px;
}

main .about p {
    font-size: 1.2rem;
    color: #4A4E57;
    font-weight: 300;
    line-height: 1.8;
    margin-bottom: 20px;
}

@media (min-width: 768px) {
    main .about {
        flex-direction: row;
        align-items: flex-start;
    }
    main .about p {
        font-size: 1rem;
    }
}

@media (min-width: 992px) {
    main .about section {
        max-width: 650px;
    }
}

.projects {
    display: grid;
    grid-template-columns: 1fr;
    gap: 60px;
    padding: 0 30px;
}

@media (min-width: 768px) {
    .projects {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: 220px 220px 220px;
        gap: 30px;
    }

    .appartementen-je-maasmechelen { grid-area: 1 / 1 / 2 / 2; }
    .woning-je-hasselt { grid-area: 1 / 2 / 2 / 3; }
    .vakantiewoning-de-grenspaal-ic-riemst { grid-area: 2 / 2 / 3 / 3;}
    .woning-je-tongeren { grid-area: 2 / 1 / 4 / 2; }
    .woning-met-praktijkruimte-sw-genk { grid-area: 3 / 2 / 4 / 3; }
}

@media (min-width: 992px) {
    .projects {
        grid-template-columns: 1fr 1fr 1fr;
        grid-template-rows: 250px 250px;
    }

    .appartementen-je-maasmechelen { grid-area: 1 / 1 / 2 / 2; }
    .woning-je-hasselt { grid-area: 1 / 2 / 2 / 3; }
    .vakantiewoning-de-grenspaal-ic-riemst { grid-area: 2 / 2 / 3 / 3;}
    .woning-je-tongeren { grid-area: 1 / 3 / 3 / 4; }
    .woning-met-praktijkruimte-sw-genk { grid-area: 2 / 1 / 3 / 2; }
}

.projects .project, .projects .project a, .projects .project figure {
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: #212934;
    font-weight: 400;
    width: 100%;
    height: 100%;
}

.projects .project figure img {
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.projects .project.woning-je-tongeren figure img {
    object-position: bottom;
}

.projects:not(:has(.project:hover)):hover .project figure img {
    filter: grayscale(100%);
    opacity: 0.5;
}

.projects:has(.project:hover) .project:not(:hover) figure img {
    filter: grayscale(100%);
    opacity: 0.5;
}

.projects .project figure {
    position: relative;
}

.projects .project figure figcaption {
    position: absolute;
    color: white;
    bottom: 10px;
    left: 0;
    right: 0;
    text-shadow: 
        2px 2px 4px rgba(0, 0, 0, 0.7),
        -2px -2px 4px rgba(0, 0, 0, 0.7);
    text-align: center;
    font-weight: 300;
}

.projects .project .location {
    font-size: 0.8rem;
}

.single-project {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2rem;
}

.single-project h1 {
    font-weight: 300;
    text-align: center;
}

.single-project h2 {
    font-size: 1rem;
    font-weight: 300;
    text-align: center;
}

.single-project .photos {
    display: flex;
    flex-direction: column;
    gap: 4rem;
}

.single-project .photos img {
    width: 100%;
}

.credits {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    list-style: none;
    padding: 0;
    font-weight: 300;
    font-style: italic;
    color: #a3a3a3;
    align-items: center;
}

.credits .credit a {
    text-decoration: none;
    color: #212934;
}

.contact-page {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 4rem;
    margin-bottom: 6rem;
}

.contact-page .contact-info {
    font-weight: 300;
}

.contact-page .contact-info h1 {
    text-transform: uppercase;
    font-size: 2rem;
    font-weight: 300;
    margin-bottom: 1rem;
}

.contact-page .contact-info ul {
    list-style: none;
    font-size: 1rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 0;
}

.contact-page .contact-info ul li {
    list-style-type: none;
    padding-left: 10px;
    margin-left: 30px;
}

.contact-page .contact-info ul li.address {
    list-style-image: url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="20px" height="20px" viewBox="0 0 16 16"%3E%3Cpath fill-rule="evenodd" clip-rule="evenodd" d="M3.37892 10.2236L8 16L12.6211 10.2236C13.5137 9.10788 14 7.72154 14 6.29266V6C14 2.68629 11.3137 0 8 0C4.68629 0 2 2.68629 2 6V6.29266C2 7.72154 2.4863 9.10788 3.37892 10.2236ZM8 8C9.10457 8 10 7.10457 10 6C10 4.89543 9.10457 4 8 4C6.89543 4 6 4.89543 6 6C6 7.10457 6.89543 8 8 8Z" fill="%23000000"%3E%3C/path%3E%3C/svg%3E');
}

.contact-page .contact-info ul li.phone {
    list-style-image: url('data:image/svg+xml;utf8,%3Csvg viewBox="0 0 24 24" width="20px" height="20px" fill="none" xmlns="http://www.w3.org/2000/svg"%3E%3Cg id="SVGRepo_bgCarrier" stroke-width="0"%3E%3C/g%3E%3Cg id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"%3E%3C/g%3E%3Cg id="SVGRepo_iconCarrier"%3E %3Cpath d="M16.5562 12.9062L16.1007 13.359C16.1007 13.359 15.0181 14.4355 12.0631 11.4972C9.10812 8.55901 10.1907 7.48257 10.1907 7.48257L10.4775 7.19738C11.1841 6.49484 11.2507 5.36691 10.6342 4.54348L9.37326 2.85908C8.61028 1.83992 7.13596 1.70529 6.26145 2.57483L4.69185 4.13552C4.25823 4.56668 3.96765 5.12559 4.00289 5.74561C4.09304 7.33182 4.81071 10.7447 8.81536 14.7266C13.0621 18.9492 17.0468 19.117 18.6763 18.9651C19.1917 18.9171 19.6399 18.6546 20.0011 18.2954L21.4217 16.883C22.3806 15.9295 22.1102 14.2949 20.8833 13.628L18.9728 12.5894C18.1672 12.1515 17.1858 12.2801 16.5562 12.9062Z" fill="%23000000"%3E%3C/path%3E %3C/g%3E%3C/svg%3E');
}

.contact-page .contact-info ul li.mail {
    list-style-image: url('data:image/svg+xml;utf8,%3Csvg version="1.0" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20px" height="20px" viewBox="0 0 64 64" enable-background="new 0 0 64 64" xml:space="preserve"%3E%3Cg%3E %3Cpath fill="%23231F20" d="M32%2C34.934L63.617%2C10.34C62.984%2C8.965%2C61.613%2C8%2C60%2C8H4c-1.613%2C0-2.984%2C0.965-3.617%2C2.34L32%2C34.934z"%2F%3E %3Cpath fill="%23231F20" d="M34.457%2C43.156C33.734%2C43.719%2C32.867%2C44%2C32%2C44s-1.734-0.281-2.457-0.844L0%2C20.18V52c0%2C2.211%2C1.789%2C4%2C4%2C4h56c2.211%2C0%2C4-1.789%2C4-4V20.18L34.457%2C43.156z"%2F%3E %3C%2Fg%3E%3C%2Fsvg%3E');
}

.contact-page .contact-info ul li a {
    text-decoration: none;
    color: #212934;
}

.contact-page .contact-form {
    width: 100%;
    padding: 0 20px;
}

.contact-page .contact-form .contact-feedback {
    display: none;
    padding: 10px 20px;
    border-radius: 6px;
    background-color: #cfeac2;
    color: #275510;
    font-weight: 300;
    font-size: 1rem;
}

.contact-page .contact-form .contact-feedback.error {
    background-color: #f8d7da;
    color: #801f23;
}

.contact-page .contact-form form {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.contact-page .contact-form form .row {
    display: flex;
    gap: 1rem;
}

.contact-page .contact-form form input::placeholder, .contact-page .contact-form form textarea::placeholder, .contact-page .contact-form form select::placeholder {
    color: #9ea0a4;
}

.contact-page .contact-form form input, .contact-page .contact-form form textarea, .contact-page .contact-form form select {
    border-radius: 6px;
    padding: 10px 20px;
    width: 100%;
    border: none;
    box-shadow: none;
    outline: none;
    border-bottom: 1px solid lightgrey;
    font-size: 1rem;
    font-weight: 300;
}

.contact-page .contact-form form textarea {
    resize: vertical;
    border: 1px solid whitesmoke;
    border-bottom: 1px solid lightgrey;
}

.contact-page .contact-form button {
    background-color: #181818;
    color: white;
    font-weight: 400;
    padding: 10px 30px;
    width: fit-content;
    border: none;
    box-shadow: none;
    cursor: pointer;
}

.contact-page .contact-form button:disabled {
    cursor: not-allowed;
    opacity: 0.5;
}

@media (min-width: 768px) {
    .contact-page {
        flex-direction: row-reverse;
        align-items: flex-start;
    }
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.text-page {
    display: flex;
    flex-direction: column;
    gap: 2rem;
    max-width: 600px;
    margin: 0 auto;
    margin-bottom: 6rem;
    padding: 0 20px;
}

.text-page h1, .text-page h2, .text-page h3, .text-page h4, .text-page h5, .text-page h6 {
    font-weight: 400;
}

.text-page p, .text-page li {
    font-weight: 300;
}

.text-page li {
    margin-bottom: 1rem;
}

.text-page a {
    color: inherit;
}