@import url('https://fonts.googleapis.com/css2?family=Alumni+Sans:ital,wght@0,100..900;1,100..900&family=Chivo:ital,wght@0,100..900;1,100..900&family=Poppins:ital,wght@0,200..800;1,200..800&family=Sansation:ital,wght@0,300;0,400;0,700;1,300;1,400;1,700&family=Tenor+Sans&family=Tinos:ital,wght@0,400;0,700;1,400;1,700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');

*{
    margin: 0px;
    padding: 0px;
    box-sizing: border-box;
    scroll-behavior: smooth;
}
body{
    background-color: white;
}

nav{
    position: fixed;
    top: 0px;    
    width: 100vw;
    z-index: 10;
    background-color: rgba(0, 0, 0, 0.7);
    transition: transform 0.3s ease;
}
nav.hidden{
    transform: translateY(-100%);
}
.navdiv{
    padding: 10px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 0px auto;
    max-width: 1200px;
}
.navdiv img{
    height: 60px;
}
.navdiv .menu{
    display: flex;
    gap: 25px;
    align-items: center;
}
.menu a{
    text-decoration: none;
    color: ivory;
    text-transform: uppercase;
    font-family: "Poppins", sans-serif;
    font-weight: 300;
}
.menu a:hover{
    font-weight: 500;
    border-bottom: 0.5px solid white;
}

.container{
    height: 100vh;    
    overflow-x: hidden;
    overflow-y: scroll; 
    scroll-snap-type: y mandatory;
    scrollbar-width: thin;
}


section{
    width: 100vw;
    height: 100vh;
    position: relative;
    scroll-snap-align: start;
}


.home{   
   text-align: center;  
   background-image: url(siteimg/home.webp);
   background-size: cover;
   height: 100vh;
}
.home::before{ 
    content: ""; 
    position: absolute; 
    inset: 0; /* shorthand for top/right/bottom/left:0 */ 
    background: rgba(0, 0, 0, 0.75); /* black overlay, 50% opacity */ 
}

.commingsoon{
   position: absolute;
   top: 50%;
   left: 50%;
   transform: translate(-50%, -50%);
   text-align: center;
   width: 0%;
   overflow: hidden;
   
}
.commingsoon.in-view{
    animation: showlogo 2s linear forwards;
}
@keyframes showlogo {
    0%{
        width: 0%;
    }
    100%{
        width: 100%;
    }
}

.commingsoon .logo{
    width: 45vw;
}
.commingsoon p{
    color: white;
    font-size: 2rem;
    opacity: 0;    
    font-family: "Poppins", sans-serif;
    font-weight: 400;
}
.commingsoon p.in-view{
    animation: appear 1s linear forwards 1s;
}
@keyframes appear {
    0%{
        opacity: 0;
        transform: translateY(-15px);
    }
    50%{
        opacity: 0;
        transform: translateY(-15px);
    }
    100%{
        opacity: 1;
        transform: translateY(0px);
    }
}
.scrolldown{
    position: absolute;
    bottom: 3%;
    left: 50%;
    width: 40px;
    padding: 5px;
    animation: scrolldown 2s 5s linear infinite;
}
.scrolldown:hover{
    background-color: rgba(255, 255, 255, 0.301);
    border-radius: 50%;
}

@keyframes scrolldown{
    0%{
        bottom: 5%;
    }
    100%{
        bottom: 1%;
    }
}


.about{
    display: grid;
    grid-template-columns: 50% 50%;
    z-index: 2;
    height: 100vh;
}
.about div{
    position: relative;
    overflow: hidden;
}
.about div .abscenter{
    width: 65%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
}
.abscenter .smllogo{
    width: 45%;
    margin-bottom: 20px;
}
.abscenter img{
    width: 70%;
    margin-bottom: 20px;
}
.abscenter p{
    font-family: "Poppins", sans-serif;
    font-weight: 300;
    text-align: center;
    font-size: 1rem;
}
.about div img{
    height: 100%;
}




.service{
    overflow: hidden;
}
.service h3{
    font-family: "Poppins", sans-serif;
    font-weight: 500;
    font-size: 4rem;
    line-height: 3.5rem;
    margin: 20px;
    position: absolute;
    top: 5%;
    left: 5%;
    width: 300px;
}
.service .servhold{
    display: flex;
    gap: 30px;
    margin-left: 120px;
    grid-template-columns: 24% 24% 24% 24%;
    width: 90%;
    position: absolute;
    top: 0px;
    left: 0px;
}
.serv{
    width: 100%;
    overflow: hidden;
    height: 100vh;
    position: relative;
    box-shadow: 0 0 5px black;
}
.serv img{
    height: 100%;
    transform: translateX(-230px);
}
.serv div{
    position: absolute;
    background-color: rgba(0, 0, 0, 0.75);
    color: white;
    padding: 20px;
}
.serv div h3{
    font-family: "Poppins", sans-serif;
    font-weight: 500;
    margin: 0px;
    margin-bottom: 20px;
    left: 0%;
    font-size: 2rem;
    position: relative;
    width: 100%;
}
.serv div p{
    font-family: "Poppins", sans-serif;
    font-weight: 300;
    font-size: 1rem;
}
.bot{
    transform: translateY(98%);
    border-top-left-radius: 20px;
    border-top-right-radius: 20px;    
}
.bot.in-view{
    animation: moveup 1s ease-in-out forwards;
}
.top{
    transform: translateY(-100%);
    border-bottom-left-radius: 20px;
    border-bottom-right-radius: 20px;    
}
.top.in-view{
    animation: movedown 1s ease-in-out forwards;
}
.bot div{
    top: 0px;
}
.top div{
    bottom: 0px;
}
@keyframes moveup {
    0%{
        transform: translateY(98%);
    }
    100%{
        transform: translateY(25%);
    }
}
@keyframes movedown {
    0%{
        transform: translateY(-100%);
    }
    100%{
        transform: translateY(-25%);
    }
}



.altserv{
    margin: 0px auto;
    padding: 50px 20px;
    max-width: 100%;
}
.altserv h3{
    font-family: "Poppins", sans-serif;
    font-weight: 900;
    font-size: 4rem;
    margin: 35px;
}
.altserv .content{
    padding: 25px;
    margin-top: 50px;
    text-align: center;
    width: 100%;
}
.altserv .imghold{
    width: 100%;
    height: 35vh;
    margin-bottom: 15px;
    overflow: hidden;
}
.altserv img{
    width: 100%;
    margin-bottom: 25px;
}
.altserv .miniserv{
    width: 100%;
    display: grid;
    grid-template-columns: 24% 24% 24% 24%;
    justify-content: space-evenly;
    gap: 15px;
}
.miniserv .serv{
    width: 100%;
    height: auto;
    box-shadow: none;
    text-align: left;
    opacity: 0;    
}
.miniserv .serv.in-view{
    animation: slightmove 0.5s linear calc(var(--pos) * 0.05) forwards;
}
.miniserv .serv h3{
    font-family: "Poppins", sans-serif;
    font-weight: bold;
    font-size: 2rem;
    margin-bottom: 5px;
    margin-left: 0px;
}
.miniserv .serv p{
    font-family: "Poppins", sans-serif;
    font-weight: 400;
    font-size: 1rem;
}
@keyframes slightmove {
    0%{
        opacity: 0;
        transform: translateY(50px);
    }
    100%{
        opacity: 1;
        transform: translateY(0px);
    }
}


.mobaltserv{
    margin: 0px auto;
    padding: 50px 20px;
    max-width: 100%;
    display: none;
}
.mobaltserv h3{
    font-family: "Poppins", sans-serif;
    font-weight: 900;
    font-size: 2.5rem;
    margin: 20px;
}
.mobaltserv .content{
    padding: 25px;
    margin-top: 50px;
    text-align: center;
    margin: 0px auto;
    max-width: 100%;
    display: grid;
    grid-template-columns: 30% 65%;
    gap: 20px;
}
.mobaltserv .imghold{    
    margin-bottom: 15px;
    overflow: hidden;
    height: 100vh;
}
.mobaltserv img{
    /* width: 100%; */
    height: 100%;
    margin-bottom: 25px;
}
.mobaltserv .miniserv{
    width: 100%;
    display: flex;
    flex-direction: column; 
    justify-content: space-around;
    gap: 0px;
}
.mobaltserv .miniserv .serv{
    width: 100%;
    height: auto;
    box-shadow: none;
    text-align: left;
    opacity: 0;    
}
.mobaltserv .miniserv .serv.in-view{
    animation: slightmove 0.5s linear calc(var(--pos) * 0.05) forwards;
}
.mobaltserv .miniserv .serv h3{
    font-family: "Poppins", sans-serif;
    font-weight: bold;
    font-size: 2rem;
    margin-bottom: 5px;
    margin-left: 0px;
    font-weight: 200;
}
.mobaltserv .miniserv .serv p{
    font-size: 1.1rem;
}
/* @keyframes slightmove {
    0%{
        opacity: 0;
        transform: translateY(50px);
    }
    100%{
        opacity: 1;
        transform: translateY(0px);
    }
} */

.project{
    margin: 0px auto;
    padding: 50px 20px;
    max-width: 100%;
}
.project h3{
    font-family: "Poppins", sans-serif;
    font-weight: 500;
    font-size: 4rem;
    margin: 18px;
}
.projhold{
    padding: 40px;
    margin-top: 50px;
    display: flex;
    flex-wrap: wrap;
    grid-template-columns: 30% 30% 30%;
    gap: 10px;
    justify-content: space-evenly;
    height: 75vh;
    align-content: center;
}
.projhold a{
    text-decoration: none;
    color: black;
    display: block;    
    width: 30%;
}
.projhold .proj{
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 0 5px lightgrey;
    opacity: 0;    
    height: max-content;
    position: relative;
}
.projhold .proj.in-view{
    animation: slightmove 0.5s linear calc(var(--pos) * 0.1) forwards;
}
.projhold .proj img{
    width: 100%;
    margin-bottom: 15px;
}
.projhold .proj p{
    font-family: "Poppins", sans-serif;
    font-weight: 300;
    margin: 10px;
    font-size: 1.1rem;
    margin-top: 0px;
}
.projhold .proj p:first-of-type{
    font-family: "Chivo", sans-serif;
    font-weight: 500;
    font-size: 1.25rem;
    margin-bottom: 0px;
}
.projhold .proj .linkbtn{
    position: absolute;
    top: 10px;
    right: 10px;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    margin-bottom: 5px;
    opacity: 0.4;
}
.projhold .proj .linkbtn:hover{
    box-shadow:  0 0 5px black;
}
.projhold .proj:hover{
    box-shadow: 0 0 10px grey;
}
.projhold .proj:hover .linkbtn{
    width: 36px;
    height: 36px;
}


.diaproject{
    margin: 0px auto;
    padding-top: 50px;
    max-width: 85%;
}
.diaproject h3{
    font-family: "Poppins", sans-serif;
    font-size: 4rem;
    margin: 25px;
}
.diagonalgrid{
    position: absolute;
    top: 30%;
    right: 0%;
    display: grid;
    grid-template-columns: 50% 50%;
    transform: rotate(45deg);
    overflow: hidden;    
}
.dia{
    background-color: grey;
    border-radius: 10px;
    width: 250px;
    height: 250px;
    margin: 10px;    
    overflow: hidden;
    position: relative;
    box-shadow: 0 0 5px grey;
}
.dia:hover{
    box-shadow: 0 0 5px black;
}
.dia img{
    width: 200%;
    transform: rotate(-45deg) translateY(-100px);
}
.dia p{
    font-size: 1.2rem;
    position: absolute;
    bottom: 50%;
    right: -35%;
    color: white;
    background-color: rgba(0, 0, 0, 0.856);
    padding: 5px;
    margin: 5px;
    border-radius: 5px;
    transform: rotate(-90deg);
}


.contact{
    margin: 0px auto;
    padding: 50px 20px;
    max-width: 100%;
}
.contact h3{
    font-family: "Poppins", sans-serif;
    font-size: 4rem;
    font-weight: 500;
    margin: 18px;
}
.contact .contcontent{
    padding: 25px;
    display: grid;
    grid-template-columns: 50% 50%;
    margin: 0px auto;
    max-width: 65%;  
    height: 65vh;
}
.contcontent div{
    align-content: center;
    align-content: center;
}
.contgrid{
    display: block;
}
.contpair{
    margin: 8px;
    padding: 8px;
}
.contpair p{
    margin: 5px;
    font-size: 1.1rem;
    font-family: "Poppins", sans-serif;
    font-weight: 300;
}
.contpair p:first-of-type{
    font-family: "Poppins", sans-serif;    
    font-size: 1.5rem;
    font-weight: 500;
}
.contpair a{
    text-decoration: none;
    margin: 5px;
    color: black;
}
.contpair a img{
    width: 25px;
}
.contcontent form{
    text-align: center;
}
.contcontent form h3{
    font-family: "Poppins", sans-serif;
    font-size: 1.5rem;
    margin: 0px;
}
.contcontent form p{
    font-family: "Poppins", sans-serif;
}
.contcontent form input{
    padding: 10px;
    margin: 10px;
    border-radius: 15px;
    box-shadow: inset 0 0 5px grey;
    border: none;
    width: 300px;
    outline: none;
    font-family: "Poppins", sans-serif;
}
.contcontent form textarea{
    padding: 10px;
    margin: 10px;
    border-radius: 15px;
    box-shadow: inset 0 0 5px grey;
    border: none;
    width: 300px;
    height: 100px;
    outline: none;
    font-family: "Poppins", sans-serif;
}
.contcontent form button{
    margin: 10px;
    padding: 10px;
    font-weight: bold;
    box-shadow: 0 0 5px grey;
    border: none;
    border-radius: 20px;
    width: 120px;
    font-family: "Poppins", sans-serif;
}



.projectview *{
    font-family: "Poppins", sans-serif;
}
.projectview .coverimg{
    width: 100vw;
    overflow: hidden;
    text-align: center;    
    max-height: 50vh;
}
.projectview .coverimg img{
    width: 100%;    
    box-shadow: 0 0 5px black;
    border-bottom-left-radius: 30px;
    border-bottom-right-radius: 30px;
    transform: translateY(-35%);
}
.txtcontent{
    text-align: center;
    margin: 50px auto;
    max-width: 60%;
}
.txtcontent h3{
    font-family: "Poppins", sans-serif;
    font-size: 2.5rem;
    margin: 20px;
    font-weight: 500;
}
.txtcontent p{
    width: 100%;
    font-size: 1.15rem;
    font-weight: 300;
}
.typegrid{
    margin: 50px auto;
    max-width: 75%;
    display: flex;
    justify-content: space-between;
    gap: 20px;
}
.typegrid .typepair{
    text-align: center;
    width: 60%;
}
.typepair p:first-of-type{
    font-size: 1.5rem;
    font-weight: 500;
}
.typepair p{
    font-size: 1.1rem;
    font-weight: 300;
}
/* .photogrid1{
    display: grid;
    grid-template-columns: 69% 30%;
    gap: 20px;    
    height: 40vh;
    margin: 20px auto;
    max-width: 90%;
}
.photogrid2{
    display: grid;
    grid-template-columns: 29% 70%;
    gap: 20px;    
    height: 40vh;
    margin: 20px auto;
    max-width: 90%;
}
.imgdiv{    
    border-radius: 10px;
    overflow: hidden;
    position: relative;
}
.imgdiv img{
    width: 100%;
}
.imgdiv img.short{
    height: 100%;
    width: auto;
}
.imgdiv p{
    position: absolute;
    bottom: 10px;
    left: 10px;
    color: white;
    font-size: 1rem;
}
.photogrid3{
    display: grid;
    grid-template-areas: 
        "long long side"
        "small1 small2 side"
    ;
    gap: 20px;    
    height: 60vh;
    margin: 20px auto;
    max-width: 90%;
}
.photogrid3 .long{
    grid-area: long;
}
.photogrid3 .small1{
    grid-area: small1;
}
.photogrid3 .small2{
    grid-area: small2;
}
.photogrid3 .side{
    grid-area: side;
}
.imgdiv img.small{
    width: auto;
    height: 100%;
}
.imgdiv img.side{
    width: auto;
    height: 100%;
} */


.imglayout{
    display: grid;    
    justify-content: space-evenly;
    gap: 15px;
    margin: 30px auto;
    max-width: 75%;
}
.imglayout div{
    display: flex;
    flex-direction: column;
    gap: 15px;
}
.imglayout .layimg{
    position: relative;   
    overflow: hidden;
    border-radius: 8px;
}
.layimg::before{ 
    content: ""; 
    inset: 0; /* shorthand for top/right/bottom/left:0 */ 
    background: rgba(0, 0, 0, 0.75); /* black overlay, 50% opacity */ 
    position: absolute;
    top: 90%;
    left: -25px;
    width: 120px;
    height: 100px;
    filter: blur(25px);
}
.imglayout .layimg img{
    width: 100%;
}
.imglayout .layimg p{
    position: absolute;
    bottom: 10px;
    left: 10px;
    color: white;
    font-weight: 300;
}

.triple{
    display: grid;
    grid-template-columns: 31% 31% 31%;
}
.double{
    display: none;
}







@media only screen and (max-width: 1500px){
    .altserv .imghold{
        height: auto;
    }
    .imglayout{
        max-width: 85%;
    }
    .typegrid{
        max-width: 85%;
    }
}



@media only screen and (max-width: 1350px){
    .altserv{
        padding: 50px 20px;
        max-width: 100%;
    }
    .imglayout{
        max-width: 90%;
    }
    .typegrid{
        max-width: 90%;
    }
}




@media only screen and (max-width: 1200px){
    .commingsoon .logo{
        width: 60vw;
    }    
    .about div .abscenter{
        width: 75%;
    }
    .service{
        overflow: hidden;
        height: auto;
    }
    .service h3{
        font-size: 4rem;
        margin: 10px; 
        position: relative;   
        top: 0%;    
        left: 0%;
        width: 100%;
    }
    .service .servhold{
        display: flex;
        flex-direction: column;
        gap: 15px;
        margin-left: 0px;
        grid-template-columns: 24% 24% 24% 24%;
        width:100vw;
        position: relative;
        top: 0px;
        left: 0px;
    }
    .serv{
        width: 100vw;
        overflow: hidden;
        height: 40vh;
        position: relative;
        box-shadow: 0 0 5px black;
    }
    .serv img{
        width: 100%;
        height: auto;
        transform: translateY(-120px);
    }
    .serv div{
        position: absolute;
        background-color: rgba(0, 0, 0, 0.75);
        color: white;
        padding: 15px;
    }
    .serv div h3{
        margin: 0px;
        margin-bottom: 5px;
        margin-top: 0px;
        font-size: 1.5rem;
        position: relative;
    }
    .serv div p{
        font-size: 1rem;
        line-height: 1rem;
    }
    .bot{
        transform: translateX(90%);
        border-top-left-radius: 20px;
        border-bottom-left-radius: 20px;    
    }
    .bot.in-view{
        animation: moveup 1s ease-in-out forwards;
    }
    .top{
        transform: translateX(-90%);
        border-top-right-radius: 20px;
        border-bottom-right-radius: 20px;    
    }
    .top.in-view{
        animation: movedown 1s ease-in-out forwards;
    }
    .bot div{
        top: 0px;
        left: 0px;
        height: 100%;
        width: 50%;
        align-content: center;
    }
    .top div{
        top: 0px;
        right: 0px;
        height: 100%;
        width: 50%;
        text-align: right;
        align-content: center;
    }
    @keyframes moveup {
        0%{
            transform: translateX(90%);
        }
        100%{
            transform: translateX(5%);
        }
    }
    @keyframes movedown {
        0%{
            transform: translateX(-90%);
        }
        100%{
            transform: translateX(-5%);
        }
    }
    
    .altserv .imghold{
        height: auto;
    }
    .altserv .miniserv .serv h3{
        font-size: 1.25rem;
        font-weight: bold;
    }
     .altserv .miniserv .serv p{
        font-size: 1rem;
    }
    .imglayout{
        max-width: 95%;
    }
    .typegrid{
        max-width: 95%;
    }
}




@media only screen and (max-width: 1000px){
    .project{
        height: auto;
    }
    .projhold{
        padding: 20px 20px;
        height: auto;
        margin-top: 20px;
        gap: 25px;
    }
    .projhold a{
        width: 45%;
    }
    .projectview .coverimg{
        max-height: max-content;
    }
    .projectview .coverimg img{
        transform: none;
    }
}




@media only screen and (max-width: 900px){
    .altserv{
        display: none;
    }
    .mobaltserv{
        display: block;
    }
    section{
        height: auto;
        scroll-snap-align: none;
        margin-bottom: 30px;
    }
    .contact .contcontent{
        max-width: 100%;
        height: auto;
    }


    .txtcontent{
        max-width: 85%;
    }
    .typegrid{
        max-width: 85%;
    }
    .triple{
        display: none;
    }
    .double{
        display: grid;
        grid-template-columns: 48% 48%;
        max-width: 95%;
    }

    
}





@media only screen and (max-width: 750px){
    .commingsoon .logo{
        width: 80vw;
    }
    .commingsoon p{
        font-size: 1.5rem;
    }
    .navdiv{
        justify-content: center;
    }
    .navdiv .menu{
        display: none;
    }
    .about{
        display: flex;
        flex-direction: column;
        height: auto;
    }
    .about .smllogo{
        display: none;
    }
    .about div .abscenter{
        width: auto;
        max-width: 85%;
        margin: 135px auto;
        position: relative;
        top: 0%;
        left: 0%;
        transform: translate(0%, 0%);
    }
   .abscenter p{
    line-height: 1.3rem;
   }
    .about div img{
        height: auto;
        width: 100%;
    }
    .projhold a{
        width: 80vw;
    }
    .contact .contcontent{
        display: flex;
        flex-direction: column;
        padding: 25px 0px;
    }
    .contgrid{
        display: flex;
        grid-template-columns: 50% 50%;
        margin-bottom: 35px;
        justify-content: space-around;
        align-items: flex-start;
    }
    .contgrid .contpair{
        margin: 0px;
        padding: 5px;
    }
    .service h3{
        font-size: 2.5rem;
        margin: 15px;
    }
    .serv img{
        height: 100%;
        transform: translateY(0px);
    }
    .bot div{
        width: 60%;
    }
    .top div{
        width: 60%;
    }
    .project h3{
        font-size: 2.5rem;
        margin: 15px;
    }
    .contact h3{
        font-size: 2.5rem;
        margin: 15px;
    }
    .typegrid{
        flex-direction: column;
    }
    .typegrid .typepair{
        text-align: left;
    }
}

@media only screen and (max-width: 700px){
    
    .txtcontent h3{
        margin: 20px 0px;
        font-size: 1.75rem;
    }
    .txtcontent p{
        font-size: 1.1rem;
    }
    .imglayout .layimg{
        border-radius: 10px;
    }
}


@media only screen and (max-width: 550px){
    .contgrid{
        display: block;
    }
}



@media only screen and (max-width: 500px){
    nav{
        background-color: black;
    }
    .coverimg{
        margin-top: 60px;
    }
    .contgrid{
        display: block;
    }
    .imglayout .layimg p{
        font-size: 0.9rem;
        bottom: 5px;
        left: 5px;
    }
    .imglayout .layimg{
        border-radius: 8px;
    }
}



@media only screen and (max-width: 320px){
    .contcontent form input{
        width: 100%;
        margin: 10px 0px;
    }
    .contcontent form textarea{
        width: 100%;
        margin: 10px 0px;
    }
}