/* GENERAL STYLES */

* {
margin: 0;
padding: 0;
box-sizing: border-box;
}

:root {
    /* Fonts */

    --font-menu: 'Roboto', sans-serif;
    --font-headline: 'Roboto', sans-serif;
    --font-headline: 'Baloo Thambi 2', cursive;
    --font-paragraph: 'Roboto', sans-serif;

    /* Colors */
    --body-clr: #fafafa;
    --main-clr: #172a52;
    --menu-clr: #181818;
    --secondary-clr: #274c9d;
    --highlight-clr: #ffbb00;

    --light-clr: #ffff;
    --dark-clr: #3e3e3e;

    /* Animations */
    --animation-speed: 500ms;
}


body {
    min-height: 100vh;
    background-color: var(--body-clr);
    overflow: hidden auto;
}
    body > * {
        padding: 0 30px;
        
    }

img {
    width: 100%;
    object-fit: cover;
}

h1 {
    font-family: var(--font-headline);
    opacity: 0;
}

h2 {
    font-family: var(--font-headline);
}

p {
    font-family: var(--font-paragraph);
}

::-webkit-scrollbar {
    width: 0.5rem;
}

::-webkit-scrollbar-track {
    background: var(--body-clr);
}

::-webkit-scrollbar-thumb {
    
    background: var(--highlight-clr);
    border-radius: 0.5rem;
}


.top-menu {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 50px;

    padding: 15px;    

    color: var(--menu-clr);
    font-family: var(--font-menu);
    font-weight: bolder;
}
    .top-menu a {
        text-decoration: none;
        color: inherit;
    }


.hero {
    position: relative;
    height: 100vh;

    display: flex;
    flex-direction: column;
    align-items: center;    
    gap: 50px;

}


.flex-section {
    /* min-height: 100vh; */

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 50px;
}


.text-block {
    display: flex;
    flex-direction: column;
    gap: 10px;
}


.between-sections {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 50px;

    padding: 50px;
}


/* Animated Classes */

@keyframes fade-up {
    0% {
        transform: translateY(50%);
        opacity: 0;
    }

    100% {
        transform: translateY(0);
        opacity: 1;
    }
}

@keyframes arrow-up-down {
    0% {
        transform: translateY(50%);
        opacity: 0.5;
    }

    100% {
        transform: translateY(0);
        opacity: 1;
    }
}

@keyframes animated-opacity {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes fade-right-left {
    0% {
        transform: translateX(100%);
        opacity: 0;
    }

    100% {
        transform: translateX(0);
        opacity: 1;
    }
}

.fadeUp {
    animation: fade-up 1s forwards;
}


/* SPECIFIC STYLES */

/* Hero Section */

.hero {
    position: relative;

    /* background-image: url(../src/hero-4k.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    background-blend-mode: color;    
    background-color: rgb(0, 0, 0, .4);
    background-position: center 20%;
    background-attachment: fixed; */

    background: black;

    display: grid;
    grid-template-columns: repeat(8, 1fr);
    grid-template-rows: 3vw 1fr 3vw 3vw;
}

#hero-bg {
    position: absolute;
    object-fit: cover;
    width: 100%;
    height: 100%;

    opacity: 0.7;
    
}


#logo {
    width: 15vw;
    margin-top: 5vw;
    grid-column: 1;

    z-index: 10;

    cursor: pointer;
}

.compact-menu {
    display: none;
}

.top-menu {
    position: absolute;
    top: 0;
    left: 30%;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 5rem;
    
    font-size: 1vw;
    
    z-index: 1;
}

.top-menu.sticky {
    position: sticky;
    top: 0;
    height: fit-content;

    padding: 0.5rem;
    color: var(--light-clr);
    background: linear-gradient(to right, var(--secondary-clr), var(--main-clr) 80%, var(--secondary-clr));

    animation: animated-opacity 1s;
}

.top-menu .menu-items:hover {
    color: var(--highlight-clr);
}

    .menu-items.highlight {
        border: 1px solid;
        padding: 5px 10px;
    }

    .top-menu.sticky .menu-items.highlight {
        border: none;
        padding: 0;
    }

    .menu-items.highlight:hover {
        border-color: var(--highlight-clr);                              
        color: var(--highlight-clr);
    }

.hero .text-block {
    position: absolute;
    width: 30vw;
    margin: 12vw 0 0 6vw;        
    
    grid-column: 1 / 9;
    
}        
    .hero .text-block h1 {
        color: var(--highlight-clr);
        font-size: clamp(2rem, 2vw, 6rem);
        font-weight: bolder;
        text-shadow: 0 0 5px var(--dark-clr);
        line-height: 100%;
    }
    .hero .text-block p {
        color: var(--light-clr);
        font-size: clamp(1rem, 1.2vw, 3rem);
        line-height: 100%;
        text-shadow: 0 0 5px var(--dark-clr);
    }
    .hero .text-block .highlight {
        font-size: clamp(2.5rem, 2.5vw, 5rem);
    }
    .hero .text-block .call-to-action {
        width: fit-content;
        margin-top: 1.7vw;

        padding: 0.7rem;
        background: transparent;
        border: 0.2rem solid var(--highlight-clr);
        border-radius: 0.3rem;

        color: var(--highlight-clr);
        font-size: clamp(1.2rem, 1.2vw, 3rem);
        font-weight: bolder;
        text-shadow: 0 0 5px var(--dark-clr);

        cursor: pointer;
    }

    .hero .text-block .call-to-action.secondary {
        background: var(--highlight-clr);        

        color: var(--dark-clr);
        text-shadow: none;
    }

        .hero .text-block .call-to-action:hover {
            background: var(--highlight-clr);
            box-shadow: 0 0 10px rgb(0, 0, 0, 0.7);
            
            color: var(--dark-clr);
            text-shadow: none;

            transition: 200ms ease-in-out;
        }

        .hero .text-block .call-to-action:active {
            
            box-shadow: inset 0 0 10px rgb(0, 0, 0, 0.7);
            transition: 0;
        }


.medals {
    grid-column: 1 / 9;
    grid-row: 3 / 4;
    display: flex;
    justify-content: center;        
    gap: 50px;

    color: var(--light-clr);
    opacity: 0.8;

    font-size: 1vw;
    text-align: center;
}
    .medals img {
        max-width: 3vw;
        margin-bottom: 10px;
    }


.sign {
    width: 2vw;
    margin-left: 2vw;
    grid-column: 1 / 9;
    grid-row: 4 / 5;
    justify-self: center;       
    
    animation: arrow-up-down 1s infinite;
}


/* Testimony - Between Setions */

.between-sections.testimonials {
    background: var(--main-clr);
    
    justify-content: space-evenly;
    gap: 30px;
    
}

.testimony {
    max-width: 30ch;

    color: var(--light-clr);
    text-align: center;
}
    .testimony img {
        width: 80px;
    }



/* Why to Use */

#why-to-use {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5rem;
    
    padding: 50px;

    overflow-x: hidden;
}
    
    #why-to-use h1 {
        margin: 100px;
        
        text-align: center;
        color: var(--secondary-clr);
        font-size: 4rem;
        line-height: 1;
    }

    #why-to-use img {
        max-width: 300px;
    }

    #why-to-use figure {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: center;
        gap: 30px;

        transform: translateX(50%);
        opacity: 0;
    }

    #why-to-use figure:nth-of-type(2) {
        flex-direction: row-reverse;
        transform: translateX(-50%);
        
    }

    #why-to-use figure.show {
        transform: translateX(0);
        opacity: 1;

        transition: calc(var(--animation-speed) * 2) 1s ease-in-out;
    }

    #why-to-use figcaption {
        max-width: 30ch;

        font-family: Arial, Helvetica, sans-serif;
        font-size: 2rem;
    }

#why-to-use::after {
    content: "";
    height: 10px;
    width: 30%;

    margin-top: 50px;
    display: block;

    border-radius: 0.2rem;
    background: var(--secondary-clr);
}


/* Back to Top */

#back-to-top {
    display: none;
}

/* Where to Use */

#where-to-use {
    width: 100%;
    margin-top: 100px;

    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;

}

#where-to-use .cards-block {
    width: 80%;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 30px;

}

    #where-to-use .cards-block > .cards:hover {
        transform: scale(1.1);
        transition: 300ms !important;

    }

    #where-to-use h1 {
        width: 100%;
                
        font-size: clamp(2rem, 4vw, 5rem);
        color: var(--dark-clr);
    }
        #where-to-use .highlight {
            color: var(--secondary-clr);
            font-weight: bolder;
        }

    #where-to-use .cards {

        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 50px;

        background-color: var(--body-clr);
        border: 0.1rem solid rgb(0, 0, 0, 0.2);
        border-radius: 1rem;
        padding: 20px;

        transform: translateY(50%);
        opacity: 0;
    }

    #where-to-use .cards:hover {
        box-shadow: none;
    }

        #where-to-use .cards .highlight {
            color: var(--secondary-clr);
        }

    #where-to-use .cards.show {
        transform: translateY(0);
        opacity: 1;
    }
        #where-to-use .cards.first.show {
            transition: calc(var(--animation-speed) * 2.5);
        }
        #where-to-use .cards.second.show {
            transition: calc(var(--animation-speed) * 2); 
        }
        #where-to-use .cards.third.show {
            transition: calc(var(--animation-speed) * 1.5);
        }
        #where-to-use .cards.fourth.show {
            transition: calc(var(--animation-speed) * 1);
        }
    
    .cards .text-block {
        
        display: flex;
        flex-direction: column;

        color: var(--dark-clr);
        text-align: center;
    }
        .cards .text-block h2 {
            font-size: clamp(1.5rem, 1.8vw, 4rem);
        }
        .cards .text-block p {
            font-size: clamp(1rem, 1vw, 2rem);
        }
        

/* Between Sections - Serviços */

#services {
    --pseudo-width: 0%;

    margin-top: 200px;
    
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0;
    
}
    #services > p {
        font-family: 'Baloo Thambi 2', cursive;
    }

    #services::before, #services::after {
        content: "";
        height: 0.5rem;
        width: var(--pseudo-width);

        border-radius: 0.5rem;
        background-color: var(--secondary-clr);

        transition: var(--animation-speed) ease-in-out;
    }

    #services::after {
        margin-left: 70%;
    }

    #services::before {
        margin-right: 70%;
    }

    #services > p {
        align-self: start;
        font-weight: bolder;
        color: var(--dark-clr);
        font-size: 3rem;
        transform: translateY(10%) scale(0.5);
        opacity: 0;
    }

    #services p:nth-of-type(2) {
        align-self: center;
        
        color: var(--secondary-clr);
        font-size: 5rem;
    }
    #services p:nth-of-type(3) {
        align-self: end;
    }

    #services .show {
        transform: translateY(0) scale(1);
        opacity: 1;
        transition: calc(var(--animation-speed) * 3);
    }


    /* Vertical Carousel */

.carousel-wrapper {
    position: relative;
    /* margin-top: 100px; */
    display: grid;
    grid-template-columns: 1fr 1fr;
    padding: 0 100px;
}

.carousel-wrapper::after {
    content: url(../src/icons/curved-arrow.png);
    position: absolute;
    min-width: 20rem;
    bottom: -100px;
    left: 45%;
}

.texts {    

    display: flex;
    flex-direction: column;
    align-items: center;
}

.texts .text-block {

    height: 100vh;
    margin-right: 20px;

    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 10px;

    font-family: 'Taviraj', serif;

}

.texts .text-block h1 {
    font-weight: bolder;
    font-size: clamp(2rem, 3vw, 6rem);
    color: var(--secondary-clr);
    line-height: 3.5vw;
}

.texts .text-block p {

    font-family: Tahoma, Geneva, Verdana, sans-serif;
    font-size: clamp(1.3rem, 1.7vw, 4rem);
    color: var(--dark-clr);
    
}

.texts .text-block .call-to-action {    
    padding: 1rem;
    margin-top: 100px;
    width: fit-content;
    
    background: var(--highlight-clr);
    box-shadow: 0 0 10px rgb(0, 0, 0, 0.7);
    border: 0;
    border-radius: 0.5rem;
    
    cursor: pointer;

    font-size: 1.5rem;
    font-family: Tahoma, Geneva, Verdana, sans-serif;
    font-weight: 700;
    color: var(--dark-clr);
}

.texts .text-block .call-to-action:active {
    box-shadow: inset 0 0 5px rgb(0, 0, 0, 0.7);
    transition: 200ms ease-out;
}

.carousel {
    position: relative;    
}

.img-wrapper {
    position: relative;
    height: 100vh;
    position: sticky;
    top: 0;
    
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;

}

.img-wrapper img {
    width: 20vw;
    position: absolute;        

    opacity: 0.2;
    border-radius: 1rem; 
    padding: 2rem;

    /* background: linear-gradient(to bottom right, #fff891, #ffbb00) */
}

.img-wrapper .top-position {
    transform: translateY(-80%) scale(0.5);

    transition: 1s ease-in-out;
}

.img-wrapper .standard-position {
    opacity: 1;
    /* box-shadow: 10px 10px 10px rgb(0, 0, 0, 0.3); */
    transform: translateY(0) scale(1);
    transition: 1s ease-in-out;
}

.img-wrapper .bottom-position {
    transform: translateY(80%) scale(0.5);
    transition: 1s ease-in-out;
}

.img-wrapper .hidden-position {
    transform: translateY(160%) scale(0);
    opacity: 0;
    transition: 1s ease-in-out;
}

.mobile-carousel {
    display: none;
}


/* PROJECTS */

#projects {
    padding: 0;
    margin: 200px 0 0 0;
}

#projects::after {
    content: "";
    height: 0.7rem;
    width: 30%;
    margin-top: 100px;

    border-radius: 0.5rem;
    background: var(--secondary-clr);
}

#projects h1 {
    color: var(--secondary-clr);
    font-size: 4rem;
    text-align: center;
    line-height: 3rem;
}

#projects-preview {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 0.5rem;
}
#projects-preview > img {
    width: 300px;
    border-radius: 0.2rem;
}

.img-container {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 30px;

}
    .img-block {
        height: 600px;
        width: 350px;        

        display: flex;
        flex-direction: column;
        justify-content: end;   
        
        border-radius: 0.7rem;
        box-shadow: 5px 5px 5px rgb(0, 0, 0, .4);
      
        color: var(--light-clr);
    }
    .img-block .text-block {
        width: 100%;

        padding: 30px 10px;
        background-color: rgb(0, 0, 0, 0.7);
        border-radius: 0 0 .7rem .7rem;
    }
    .img-block .text-block :nth-child(1) {
        font-size: 2rem;
        font-weight: bolder;
        line-height: 1rem;
    }
    .img-block .text-block :nth-child(2) {
        font-size: 1.5rem;        
    }
    .img-container .img-block:nth-of-type(1) {
        background-image: url(../src/main-projects/project-01.jpg);        
        background-size: cover;
    }
    .img-container .img-block:nth-of-type(2) {
        background-image: url(../src/main-projects/project-01.jpg);
        background-size: cover;
    }
    .img-container .img-block:nth-of-type(3) {
        background-image: url(../src/main-projects/project-01.jpg);
        background-size: cover;
    }
    .img-container .img-block:hover {
        background-position: center;
        transition: 1s ease-in-out;
    }


#projects .call-to-action {
    width: 200px;    

    padding: 10px;
    background: transparent;
    border: 0.3rem solid var(--dark-clr);
    border-radius: 0.3rem;

    color: var(--dark-clr);
    font-size: 1.2rem;
    font-weight: bolder;    
}
    #projects .call-to-action:hover {
        background: var(--highlight-clr);
        border-color: var(--dark-clr);
        
        color: var(--dark-clr);
        text-shadow: none;

        transition: 200ms ease-in-out;

        cursor: pointer;
    }


/* ABOUT */

#about {    
    height: 100vh;
    margin-top: 100px;
}

#about .video-block{
    width: 80%;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-evenly;
}
    #about .text-block, video {
        max-width: 700px;
        flex: 1 300px;
    }
    #about img {
        width: 300px;
    }

    #about .text-block h1 {
        font-size: 4rem;
        color: var(--secondary-clr);
    }
    #about .text-block p {
        color: var(--dark-clr);
    }


/* CONTACT */

footer {
    display: grid;
    grid-template-columns: repeat(auto-fit, 50%);

    padding-top: 50px;
    background: var(--dark-clr);

    font-family: var(--font-paragraph);
    color: var(--light-clr);
}

footer img {
    max-width: 30px;
}

    .contacts {
        display: flex;
        flex-direction: column;
        gap: 30px;

    }

        .contacts .text-block a {
            margin-right: 0.3rem;
        }
    
    .address, .contacts {
        justify-self: center;   
        align-self: center;     
    }

    .address p {
        max-width: 50ch;
    }

    .copyright {
        margin: 30px 0;
        display: flex;
        align-items: flex-end;
        justify-content: center;

        grid-column: 1 / 3;
    
    }

    .contacts .text-block p {
        display: flex;
        align-items: center;
        gap: 10px;
    }

    
.azume-box {
    width: 100%;
    height: 100vh;
    
    display: flex;
    align-items: center;
    justify-content: center;
    
    background: white;
        
    
}

#azume {

    width: 80%;
    height: 80%;

    border: none;
    border-radius: 1rem;

    overflow-x: hidden;
}

.in-simulate > img {
    margin: 10px;
    width: 250px;
}


/* MEDIA QUERY */

@media only screen and (max-width: 600px){

    .hero {
        --_vh-fix: 100vh;
        
        height: calc(var(--_vh-fix) * 0.90);
        position: relative;
        padding: 0;
        margin: 0;
        grid-template-columns: repeat(4, 1fr);
        grid-template-rows: 100px 1fr 30px 30px;


    }


    #logo {
        display: none;
    }
    

    .top-menu {
        display: none;
        grid-column: 2 / 5;
    }


    .compact-menu {        
        height: 100px;

        display: flex;
        align-items: center;
        justify-content: space-around;
        grid-column: 1 / 5;
        
        background: var(--main-clr);
        box-shadow: 0 5px 5px rgb(0, 0, 0, 0.3);

        z-index: 3;
    }
        .compact-menu img {
            max-width: 200px;
        }


    #mobile-toogle-menu:active{
        transform: rotateZ(90deg);
    }

    .top-menu.mobile-actived {
        position: absolute;
        top: 100px;
        right: 0;

        min-height: 50vh;

        display: flex;
        flex-direction: column;
        justify-content: space-around;
        gap: 0;
        
        padding: 30px;
        border-bottom-left-radius: 3rem;
        background: linear-gradient(var(--main-clr), var(--secondary-clr));

        color: var(--light-clr);
        font-size: 1.2rem;
        
        animation: fade-right-left 500ms;

        z-index: 2;
    }


    .hero .text-block, .medals, .sign {
        grid-column: 1 / 5;

    }

    .hero .text-block {
       min-width: 30ch;        

    }
        .hero .text-block h1 {
            font-size: 2.5rem;
            line-height: 3rem;

        }
        .hero .text-block .highlight {
            font-size: 4rem;

        }
        .hero .text-block p {            
            font-size: 1rem;
            line-height: 1rem;

        }
        .hero .text-block .call-to-action {
            font-size: 1rem;
            margin-top: 30px;
        }
        .hero .text-block .call-to-action:active {
            border-color: var(--dark-clr);
            color: var(--dark-clr);
        }


    .medals {
        margin-right: 15px;

        font-size: 0.7rem;
        gap: 0;
    }
        .medals img {
            min-width: 30px;
        }


    .sign {
        width: 20px;
    }


    #back-to-top.show {        
        display: block;

        position: fixed;
        right: 0.2rem;
        bottom: 3rem;
        width: fit-content;
    
        margin-left: auto;
        opacity: 0.7;

        z-index: 10;
    }

    #back-to-top.show img {
        width: 40px;
    }

    #why-to-use h1 {
        margin: 10px;
    }

    #where-to-use .cards {
        width: 100%;
    }

    #services {
        padding: 50px;
    }

    #services .text-slide {
        font-size: 2rem;
        max-width: 10ch;
    }

    .carousel-wrapper {
        display: none;
    }

    .mobile-carousel {
        margin-top: 50px;
        display: flex;
        flex-wrap: wrap;
        gap: 50px;
        
        text-align: center;
    }
        .mobile-carousel figure {
            padding: 30px;

        }

        .mobile-carousel img {
            padding: 2rem;
        }

            .mobile-carousel figure h1 {
                color: var(--secondary-clr);
                line-height: 1.2;
            }

            .mobile-carousel figure p {
                color: var(--dark-clr);
                font-size: 1.2rem;
            }

        .mobile-carousel img {
            border-radius: 1rem;
        }

    .mobile-carousel .call-to-action {
        width: fit-content;
        margin: 50px auto 0;

        padding: 1rem;
        border: 2px solid;
        border-radius: 0.5rem;
        background: transparent;
        
        cursor: pointer;

        font-size: 1rem;
        font-family: Tahoma, Geneva, Verdana, sans-serif;
        font-weight: 700;
        color: var(--dark-clr);

    }
        .mobile-carousel .call-to-action:hover {
            background: var(--highlight-clr);
            color: var(--dark-clr);
        
            transition: 200ms ease-in-out;
        }
    
    .fig-container {
        transform: translateY(50%);
        opacity: 0;
    }

    .fig-container.show {
        transform: translateY(0);
        opacity: 1;

        transition: var(--animation-speed) ease-in-out;
    }

    #projects h1 {
        font-size: 3rem;
    }

    #projects-preview {
        padding: 0.5rem;
        grid-template-columns: 1fr;
    }
    #projects-preview > img {
        width: 100%;
    }

    #about .video-block {
        width: 100%;
    }

    #about .text-block h1 {
        font-size: 3rem;
    }

    #about img {
        display: none;
    }

    #about .text-block {
        text-align: left;
        line-height: 3rem;
    }

    #about .text-block p {
        text-align: left;
        line-height: 1.2rem;
    }

    footer {
        grid-template-columns: 1fr;
        gap: 50px;
    }

    footer h2 {
        font-size: 1.3rem;
    }

    .copyright {
        grid-column: revert;
        text-align: center;
        font-size: 0.6rem;
    }

    #azume {
        height: 90%;
        width: 100%;
    }
}