@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap');

/* RESET */

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* GLOBAL */

body {
    background: white;
    color: black;
    font-family: "DM Sans", sans-serif;
}

a {
    color: black;
    text-decoration: none;
}

/* HOMEPAGE */

.start-page {
    position: relative;
    height: 100vh;
    width: 100%;
    overflow: hidden;

    display: flex;
    justify-content: center;
    align-items: center;
}

/* BACKGROUND GALLERY */

.background-gallery {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.bg-image {
    position: absolute;
    inset: 0;

    width: 100%;
    height: 100%;

    object-fit: cover;

    opacity: 0;

    transition: opacity 1s ease-in-out;
}

.bg-image.active {
    opacity: 1;
}

/* LOGO + TEXT */

.home-inner {
    position: relative;
    z-index: 2;
    text-align: center;
}

.logo {
    display: inline-block;
    font-size: 8rem;
    line-height: 1;
    font-weight: 600;
    white-space: nowrap;
    color: #ffffff;
}

.logo .logo-full {
    display: none;
}

.logo:hover .logo-short {
    display: none;
}

.logo:hover .logo-full {
    display: inline;
}

.intro-text {
    margin-top: 1rem;
     font-size: 2rem;
     color: #ffffff;
}

/* PROJECT PAGE */

.projects-page {
    min-height: 100vh;
    background: rgba(255, 255, 255, 0);
    color: black;
}

/* TOP NAV */

.site-header {
    position: fixed;
    top: 4rem;
    left: 0;
    width: 100%;

    display: flex;
    justify-content: space-between;
    align-items: center;

    padding: 0 4rem;
    z-index: 100;

    background: transparent;
}

.site-header a {
    font-size: 1.4rem;
    font-weight: 400;
    letter-spacing: 0;

    color: #aaa;
    transition: color 0.2s ease;
}

.site-header a:hover,
.site-header a.active {
    color: #000;
}

/* RIGHT MENU */

.site-menu {
    display: flex;
    gap: 2rem;
}

/* LOGO */

.site-logo {
    display: inline-flex;
    align-items: center;

    white-space: nowrap;
    text-align: left;
}

.site-logo .logo-full {
    display: none;
 font-weight: 700;
}

.site-logo:hover .logo-short {
    display: none;
    font-weight: 700;
}

.site-logo:hover .logo-full {
    display: inline;
}

/* PROJECT GRID */

.projects-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);

    column-gap: 4vw;
    row-gap: 7rem;

    padding: 10rem 16vw 8rem;

    align-items: center;
}

/* PROJECT */

.project {
    display: block;
    width: 100%;
}

.project img {
    display: block;
    width: 100%;
    height: auto;
}

/* TITLE */

.project-title {
    margin-top: 1rem;

    font-size: 1.2rem;
    font-weight: 400;
    line-height: 1.2;

    opacity: 1;
    transition: opacity 0.15s ease;
}


/* DIFFERENT IMAGE SIZES */

.project:nth-child(3n + 1) {
    width: 80%;
}

.project:nth-child(3n + 2) {
    width: 80%;
    justify-self: center;
}

.project:nth-child(3n + 3) {
    width: 80%;
    justify-self: end;
}

/* MOBILE */

@media (max-width: 700px) {

    .logo {
        font-size: 10vw;
    }

    .intro-text {
        font-size: 1.2rem;
        padding: 0 2rem;
    }

    .site-header {
        top: 1.2rem;
        padding: 0 1.2rem;
    }

    .site-header a {
        font-size: 0.9rem;
    }

    .projects-grid {
        grid-template-columns: 1fr;
        gap: 4rem;
        padding: 7rem 1.2rem 4rem;
    }

    .project,
    .project:nth-child(3n + 1),
    .project:nth-child(3n + 2),
    .project:nth-child(3n + 3) {
        width: 100%;
        justify-self: start;
    }

    .project-title {
        opacity: 1;
        font-size: 0.85rem;
    }
}

/* INFO PAGE */

.info-page {
    min-height: 100vh;
    padding: 11rem 4rem 4rem;
}


/* MAIN LAYOUT */

.info-layout {
    width: 100%;

    display: grid;
    grid-template-columns: 1fr 1fr;

    align-items: start;
}


/* LEFT TEXT */

.info-text {
    width: 75%;
    max-width: 720px;

    font-size: 1.2rem;
    font-weight: 400;
    line-height: 1.25;
}

.info-text p {
    margin-bottom: 2.2rem;
}


/* RIGHT CONTACT */

.info-contact {
    margin-left: 6rem;

    display: grid;
    grid-template-columns: 7rem 1fr;

    column-gap: 2rem;
    row-gap: 1.0rem;

    font-size: 1rem;
    font-weight: 400;
    line-height: 1.25;
}

.contact-label,
.contact-value {
    font-weight: 400;
}


/* MOBILE */

@media (max-width: 700px) {

    .info-page {
        padding: 7rem 1.2rem 3rem;
    }

    .info-layout {
        display: block;
    }

    .info-text {
        width: 100%;
        max-width: none;

        font-size: 0.9rem;
        margin-bottom: 4rem;
    }

    .info-contact {
        grid-template-columns: 5rem 1fr;

        column-gap: 1rem;
        row-gap: 1.4rem;

        font-size: 0.9rem;
    }
}

.project-detail-page {
    overflow: hidden;
}


/* MAIN LAYOUT */

.project-detail {
    height: 100vh;

    display: grid;
    grid-template-columns: 38% 62%;

    padding-top: 18vh;
    padding-bottom: 5vh;
}


/* ========================================
   LEFT SIDE
======================================== */

.project-info {
    padding: 8vh 5vw 0 5vw;

    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}


.project-info h1 {
    font-size: 1.6rem;
    line-height: 1;

    font-weight: 700;

    margin-bottom: 3rem;
}


/* TEXT */

.project-text {
    max-width: 420px;

    font-size: 1rem;
    line-height: 1.4;
}


.project-text p + p {
    margin-top: 1.2rem;
}


/* PROJECT INFORMATION */

.project-meta {
    margin-top: 3rem;

    font-size: 1rem;
    line-height: 1.5;
}



/* ========================================
   RIGHT SIDE
======================================== */

.project-visual {
    padding-right: 5vw;

    display: flex;
    flex-direction: column;

    min-width: 0;
}


/* IMAGE AREA */

.project-gallery {
    position: relative;

    width: 100%;
    height: 68vh;

    overflow: hidden;

    cursor: pointer;
}


/* SLIDES */

.project-slide {
    position: absolute;

    inset: 0;

    opacity: 0;

    transition: opacity 0.6s ease;
}


.project-slide.active {
    opacity: 1;
}


/* IMAGES */

.project-slide img {
    width: 100%;
    height: 100%;

    object-fit: cover;

    display: block;
}



/* ========================================
   GALLERY ARROWS
======================================== */

.gallery-controls {

    height: 55px;

    display: flex;

    justify-content: flex-end;
    align-items: center;

    gap: 18px;
}


.gallery-prev,
.gallery-next {

    background: none;
    border: none;

    padding: 0;

    font-family: "DM Sans", sans-serif;

    font-size: 27px;
    font-weight: 400;

    line-height: 1;

    color: black;

    cursor: pointer;
}


.gallery-prev:hover,
.gallery-next:hover {
    opacity: 0.45;
}



/* ========================================
   MOBILE
======================================== */

@media (max-width: 800px) {

    .project-detail-page {
        overflow: auto;
    }


    .project-detail {

        height: auto;

        display: block;

        padding-top: 70px;
    }


    .project-info {

        padding: 50px 25px 60px 25px;

        display: block;
    }


    .project-info h1 {

        font-size: 28px;

        margin-bottom: 35px;
    }


    .project-text {

        max-width: 100%;

        font-size: 14px;
    }


    .project-meta {

        margin-top: 35px;
    }


    .project-visual {

        padding: 0 25px 30px 25px;
    }


    .project-gallery {

        height: 65vh;
    }


    .gallery-controls {

        height: 50px;
    }

}