 /* Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,100..900;1,100..900&family=Noto+Serif:ital,wght@0,100..900;1,100..900&family=Playfair:ital,opsz,wght@0,5..1200,300..900;1,5..1200,300..900&display=swap');

/* Variáveis de Fonts */
:root {
    --fonte-menu: "Noto Sans", sans-serif;
    --fonte-titulo: "Playfair", serif;
    --fonte-sub: "Noto Serif", serif;
}

/* Variaveis Cores */
/* Tema Dark */
:root, 
:root[data-theme='dark'] {

    --cor-fundo: #1e1320;
    --cor-fundo-secundaria: #141318;
    --cor-menu: #5b247e;
    --cor-titulo: #eae3eb;
    --cor-txt: #d5bbe4;
    --cor-icones: #7c08e2;
    --cor-borda: #746f6f;
    --cor-destaque: #fc6601;
    --hover-icon: #fc6601;
    --hover: #fc6601;
    --sombra: #5f2072;
    --cor-formulario: #e7d1f5;
    --icon-theme: #EFBF04;

}   

/* Tema Light */

:root[data-theme='light'] {

    --cor-fundo: #fcfaff;
    --cor-fundo-secundaria: #f0ebf5;
    --cor-menu: #7a36a1;
    --cor-titulo: rgb(27, 15, 37); 
    --cor-txt: #8b1ca7;
    --cor-icones: #4a0675;
    --cor-borda: #d1cedb;
    --cor-destaque: #e65c00;
    --hover: #fc6601;
    --hover-icon: #ff751a;
    --sombra: #5b247e;
    --cor-formulario: #d1cedb;

    --icon-theme: #010029;

}

/* Filtro Cor do Logo */
html[data-theme='dark'] .logo {
    filter: invert(1);
}

/* Fontes utilizadas */

/* Conversão REM - PX */

html {
    font-size: 62.5%;
}

/* Reset CSS - Padronizar os navegadores */

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    scrollbar-width: thin;
    scrollbar-color: transparent;
}

/* Body */
body {
    background-color: var(--cor-fundo-secundaria);
}
/* Header */
header {
    display: flex;
    background-color: var(--cor-fundo);
    width: 100%;
    justify-content: space-between;
    align-items: center;
    position: fixed;
    z-index: 200;
    padding: 0.5rem 1rem;
    border-bottom: solid 1px var(--cor-borda);
}
/* Nav */

.menu-desktop {
    display: none;
    justify-content: center;
    align-items: center;
}

/* .menu = UL */
.menu {
    display: flex;
    list-style: none;
    gap: 16px;
}

/* HRef */

.menu-link {
    text-decoration: none;
}

.menu-texto {
    color: var(--cor-menu);
    text-transform: capitalize;
    font-size: 2rem;
    font-family: var(--fonte-menu);
    font-weight: 500;
}

/* Herança */

.menu-link.active .menu-texto,
.menu-link:hover .menu-texto{
    color: var(--hover);
}

.btn-menu-mobile {
    background: transparent;
    color: var(--cor-destaque);
    border: none;
    font-size: 2.2rem;
    padding: 1rem;
    margin-left: 1rem;
}

/* Menu mobile - Estilo e animação */

.menu-mobile {
    position: fixed;
    top: 0;
    right: 0;
    background: var(--cor-fundo-secundaria);
    z-index: 100;
    transform: translateX(100%);
    display: flex;
    flex-direction: column;
    padding-top: 6.5rem;
    border-left: 1px solid var(--cor-destaque);
    height: 100vh;
    width: 35%;
    transition: ease-in-out 0.3s;
}

.menu-mobile.active {
    transform: translateX(0%);
}

.menu-mobile .menu-lista {
    width: 100%;
    margin: 0;
    text-align: center;
    list-style: none;
    padding: 1rem 0;
}

.menu-mobile li:hover {
    background-color: var(--cor-formulario);
    width: 100%;
    padding: 0;
}


.logo img {
    width: 5rem;
    height: 5rem;
}

.header-toggle {
    cursor: pointer;
    font-size: 1.8rem;
    color: var(--icon-theme);
}

/* Hero - home */

h1 {
    color: var(--cor-titulo);
    font-size: 2.5rem;
    font-family: var(--fonte-titulo);
    font-weight: lighter;
    letter-spacing: -0.2rem
}

strong {
    color: var(--cor-destaque);
    font-family: var(--fonte-titulo);
    font-weight: bold;
}

p {
    color: var(--cor-txt);
    font-size: 1.8rem;
    font-family: var(--fonte-menu);
}
/* Redes sociais */

.menu-social {
    display: flex;
    list-style: none;
    gap: 1.2rem;
    padding: 0;
}

.menu-social .social-icon {
    color: var(--cor-icones);
    font-size: 3rem;
}
.menu-social .social-icon:hover {
    color: var(--hover-icon);
    transition: ease-in-out .5s;
}

/* Carrossel */

/* Estrutura dos 3 slides */
/* Altura hero tela cheia */
.carousel .carousel-item {
    height: 40vh;
    min-height: 600px;
}

/* Tamanho das imagens */

.carousel .carousel-item img, 
.carousel .carousel-item .ratio {
    height: 100%;
    object-fit: cover;
    object-position: center;
    pointer-events: none;
}

/* Filtro ou Overlay escuro sutil acima dos slides */
/* Pseudo elemento */

.carousel .carousel-item::before {
    content: "";
    background: #0000007a;
    position: absolute;
    inset: 0;

}

.carousel .carousel-caption {
    position: absolute;
    inset: 250px;
    display: flex;
    flex-direction: column;  
    justify-content: center;
    align-items: center;
}   

.carousel h5 {
    font-size: 5rem;
}
.carousel p {
    font-size: 2.2rem;
}

.carousel h5,
.carousel p {
    text-shadow: 0 2px 14px rgb(153, 0, 255);
    color: white;
}

/* Vídeo */

.video {
    display: flex;
    justify-content: center;
    align-items: center;
}

.video iframe {
    aspect-ratio: 16/9;
    width: 70vw;
    box-shadow: 0 10px 15px -2px var(--sombra);
}

.complemento {
    display: flex;
    background: var(--cor-fundo);
    padding: 6rem 1rem 2rem;
    margin-top: -5rem;
    justify-content: center;
}

.complemento h2 {
    font-size: 2rem;
    color: var(--cor-titulo);
    text-transform: none;
    letter-spacing: 2px;
    font-weight: bold;
    font-family: var(--fonte-sub);
}

/* Seção Geral */

#home, 
.projetos,
.contato {
    padding: 4rem 2rem;
}

.main-content {
    display: flex;
    flex-direction: column;
    gap: 2rem;
    margin-top: 2rem;
    margin-bottom: 5rem;
}

/* Projetos */

.projetos {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  /* Voltar */
  
}

.projetos h2 {
  text-align: center;
  font-size: 2.5rem;
  font-family: var(--fonte-sub);
  color: var(--cor-titulo);
  font-weight: 400;
  text-transform: uppercase;
  font-weight: bold;
}

.projeto-container {
    display: flex;
    flex-direction: column;
    gap: 4rem;
}
.projeto-card {
    display: flex;
    flex-direction: column;
    gap: 4rem;
}

.card-cover {
    width: 100%;
    object-fit: cover;
    border-radius: 5rem 5rem;
}

.card-body {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 2rem;
    margin-top: 2rem;
    text-align: justify;
}

.card-body .card-title {
    color: var(--cor-titulo);
    font-weight: bold;
    font-size: 3rem;
    font-family: var(--fonte-sub);
}

.card-body .card-description {
    color: var(--cor-txt);
    font-family: var(--fonte-menu);
    font-size: 1.8rem;
    font-weight: 500;
}

.card-lista {
    list-style: none;
    padding-left: 0;
}

.card-item {
    color: var(--cor-txt);
    font-size: 1.8rem;
    font-family: var(--fonte-menu);
    margin-bottom: 1rem;
    font-weight: 500;
}

.card-item i {
    color: var(--cor-icones);
    font-size: 2.2rem;
    margin-right: 1rem;
}

.card-item i:hover {
    color: var(--hover-icon);
    transition: ease-in-out .3s;
}


/* Contato */

.contato {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 1.8rem;
    border-top: 1px solid var(--hover);
    border-bottom: 1px solid var(--hover);
}

.contato h2 {
    color: var(--cor-destaque);
    font-size: 3rem;
    font-weight: 600;
    font-family: var(--fonte-sub);
}

.contato .menu-social li{
    justify-content: center;
    align-items: center;
    display: flex;
    margin-right: 5px;
}

.contato span {
    color: var(--cor-txt);
    font-size: 1.8rem;
    margin-left: 5px;
    font-family: var(--fonte-menu);
}

/* Grid CSS */

.contato-grid {
    display: grid;
    grid-template-columns: 50% 50%;
    gap: 2rem;
    width: 100%;
    margin-top: 5rem;
}
.contato-formulario,
.contato-mapa {
    width: 100%;
}

.contato-mapa iframe {
    width: 100%;
    height: 100%;
    border: none;
    border-radius: 0.5rem;
}

.form-contato {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.form-contato input,
.form-contato textarea {
    width: 100%;
    font-size: 1.8rem;
    padding: 0.75 1rem;
    background-color: var(--cor-formulario);
    border: 0;
    border-radius: 0.5rem;
}

.form-contato input::placeholder,
.form-contato textarea::placeholder {
    color: rgba(76, 64, 87, 0.404);
    font-size: 1.8rem;
}

.form-contato button {
    border: 0;
    border-radius: 0.5rem;
    align-items: center;
    background-color: var(--cor-formulario);
    align-self: flex-start;
    gap: 2rem;
    display: flex;
    padding: 0.5rem 1.5rem;
}

.form-contato button i,
.form-contato button span {
    color: black;
}

.form-contato button:hover {
    filter: brightness(1.5);
    background: var(--hover);
    transition: ease-in-out 0.3s;
    transform: scale(1.1);
}

.form-contato button {
    font-size: 2rem;
}   

/* Footer */

footer {
    display: flex;
    justify-content: center;
}

footer p {
    padding: 2rem 0;
    text-align: center;
    font-size: 1.6rem;
}

footer a {
    text-decoration: none;
    color: var(--cor-txt);
    margin-left: 10px;
}

footer a:hover {
    color: var(--hover);
    transition: ease-in-out 0.3s;
}


@media (max-width: 1200px) {
    .contato-grid {
        grid-template-columns: 1fr  ;
    }
    .contato-mapa {
        height: 60vh;
    }
}

/* Responsivo */
/* Largura até  */
@media (max-width: 768px) {
    .carousel .carousel-inner {
        margin-top: -2rem;
    }
    #home {
        padding-top: 6rem;
    }
}

/* A partir de telas grandes */
@media (min-width:768px) {

    header {
        padding: 1rem 10rem;
        justify-content: flex-start;
        gap: 2rem;
    }

    .menu-desktop {
        display: flex;
        justify-content: flex-end;
        align-items: center;
    }
    .logo {
        margin-right: auto;
    }

    .carousel .carousel-inner {
        margin-top: -4.2rem;
        padding-top: 7rem;
    }

    /* Voltar Aqui */
    #home,
    .projetos,
    .contato {
        padding: 4rem 10rem;
    }

    .main-content {
        display: flex;
        flex-direction: column;
        align-items: flex-start;        
    }
    
    .main-content h1 {
        font-size: 5rem;
    }

    .card-body {
        justify-content: flex-start;
        align-items: flex-start;
    }
    .projetos h2,
    .contato h2{
        font-size: 3.5rem;
    }
    .btn-menu-mobile {
        display: none;
    }
}

@media (min-width: 992px) {
    
    .projeto-card {
        flex-direction: row;
    }

    .card-cover {
        width: 55%;
    }

    .card-reverse {
        flex-direction: row-reverse;
    }
}

/* Telas maiores que 1200px */

@media (min-width: 1200px) {
    h1 {
        font-size: 5rem;
    }
    .projetos h2,
    .contato h2{
        font-size: 4.5rem;
    }
}

/* Telas maiores que 1400px */

@media (min-width: 1400px) {
    .main-content h1 {
        font-size: 8.5rem;
    }

    /* Voltar aqui */

    .complemento {
        padding: 5rem 7rem 4rem;
        margin-top: -7rem;
    }

    .complemento h2 {
        font-size: 4.5rem;
    }

    /* Voltar aqui */

    .projetos {
        padding: 10rem 7rem 4rem;
    }

    .complemento h2 {
        font-size: 4.5rem;
    }

    .projetos h2,
    .contato h2 {
        font-size: 6rem;
    }
}
