/*
Theme Name: Marlei

Author: Marlei Grolli

Version: 1.1
Tags: tres paginas, uma coluna, azul
*/

/************** GENERAL *****************/

/************** VARIAVEIS CSS *****************/
:root {
    /* Cores */
    --purple-main: #834ED2;
    --purple-light: #AB99C7;
    --pink-gradient-start: #F25CCA;
    --purple-gradient-end: #834ED2;
    --orange-highlight: #F7C46B;
    --blue-gradient-start: rgba(55, 219, 255, 0.80);
    --blue-gradient-end: rgba(52, 152, 250, 0.80);
    --yellow-gradient-start: rgba(252, 213, 76, 0.80);
    --yellow-gradient-end: rgba(244, 180, 70, 0.80);
    --green-gradient-start: rgba(45, 214, 69, 0.80);
    --green-gradient-end: rgba(48, 197, 115, 0.80);
    --light-gray: #f2f2f2;
    --dark-gray: #717171;
    --medium-gray: #bbb;

    /* Fontes */
    --font-open-sans: 'Open Sans', sans-serif;
    --font-nunito: 'Nunito';
    --font-montserrat: 'Montserrat', sans-serif;
    --font-righteous: 'Righteous', sans-serif;
	--base-font-size: 16px; /* Tamanho base para telas pequenas */
    --fator-reducao:0.8; /* 80% menor que o tamanho base*/

    /* Gradientes Comuns */
    --gradient-primary: linear-gradient(to right, var(--pink-gradient-start), var(--purple-gradient-end));
    --gradient-primary-hover: linear-gradient(to left, var(--pink-gradient-start), var(--purple-gradient-end));
    --gradient-portfolio: linear-gradient(to right, rgba(242, 92, 202, 0.3), rgba(131, 78, 210, 0.3));
    --gradient-portfolio-left: linear-gradient(to left, rgba(242, 92, 202, 0.3), rgba(131, 78, 210, 0.3));

    /* Espaçamento Padrão */
    --spacing-sm: 10px;
    --spacing-md: 15px;
    --spacing-lg: 20px;
    --spacing-xl: 5%; /* 5% é comum, mas considere px para mais controle */
}

@font-face {
	font-family: 'Open Sans'sans-serif;
	src: url(./fonts/open-sans-v43-latin-regular.woff2) format("woff2");
	font-weight: normal; /* Para a versão regular da fonte */
    font-style: normal;
    font-display: swap; 
}
@font-face {
    font-family: 'Nunito';
    src: url(./fonts/nunito-v31-latin-regular.woff2) format("woff2");
    font-style: normal;
    font-weight: normal;
    font-display: swap;
}

@font-face {
	font-family: 'Montserrat'sans-serif;
	src: url(./fonts/montserrat-v30-latin-regular.woff2) format("woff2");
	font-weight: normal; /* Para a versão regular da fonte */
    font-style: normal;
    font-display: swap; 
}
@font-face {
	font-family: 'Righteous'sans-serif;
	src: url(./fonts/righteous-v18-latin-regular.woff2) format("woff");
	font-weight: normal; /* Para a versão regular da fonte */
    font-style: normal;
    font-display: swap; 
}

/* Reset básico */

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

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

html{
  scroll-behavior: smooth;
  box-sizing: border-box;
  overflow-x: hidden;
}


body, p {
	padding: 0;
	margin: 0;
    font-family: var(--font-open-sans);
}

.logo img{
    height: 80px;
    width: auto;
}

.width-container{
	max-width: 1200px;
	margin: auto;
}

.botao-topo{
	position: absolute;
	right: 0;
	top: 20px;
	z-index: 99999;
}

/* Estilos de Botão Comum */
button {
    background-image: var(--gradient-primary);
    color: #ffffff;
    padding: var(--spacing-sm) var(--spacing-md); /* 10px 15px */
    text-transform: uppercase;
    border-radius: 40px;
    border: none;
    margin: 20px;
    cursor: pointer;
    transition: background-image 0.3s ease; /* Adiciona transição suave no hover */
}

button:hover {
    background-image: var(--gradient-primary-hover);
}

a{
    text-decoration: none;
    color: #fff;
    cursor: pointer;
	margin:20px;
	font-size: var(--base-font-size);
}


/* Títulos */
h1, h2, h3 {
    font-family: var(--font-nunito);
    font-weight: 600;
    font-style: normal;
}

h1 {
    color: var(--purple-main);
    font-optical-sizing: auto; /* Pode não ser amplamente suportado ou necessário */
    font-variation-settings: "wdth" 100, "YTLC" 500; /* Para fontes variáveis */
    text-align: center;
   margin: 5%;
    text-transform: uppercase;
    /* Tamanho da fonte e line-height serão definidos nas Media Queries para mobile-first */
}

/* H2 e H3 terão seus tamanhos definidos via media queries */

/************** CABEÇALHO (HEADER) *****************/

header {
    width: 100%;
    margin: 0 auto;
    grid-area: cabecalho; /* Usado em layout Grid, mas pode coexistir com Flexbox */
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    padding: 20px;
    
}



.main-nav ul li{
    display: inline-block;
}
.main-nav ul li{
	font-family: var(--font-open-sans);
    padding: var(--spacing-sm) var(--spacing-md); /* 10px 15px */
    border-radius: 40px;
    border: none; /* Desnecessário se não há border para remover */
    color: var(--dark-gray);
    transition: background-image 0.3s ease, color 0.3s ease; /* Transição para hover */
    list-style: none;
}
.main-nav ul li:hover{
	background-image: var(--gradient-primary-hover);
    color: #ffffff; /* Mudar a cor do texto no hover para contraste */
}
.main-nav ul li a{
	text-decoration: none;
    color: inherit; /* Herda a cor do pai para evitar repetição */
}
.main-nav ul li a:active{
    background-image: var(--gradient-primary-hover);
    color: #fff;
}

#fixo{
    position: absolute;
    right: 0;
    
}


/* Mobile menu*/
.mobile-menu .main-nav ul li{
    margin-top: 0;
    padding: 0;
    transition: none;
    color: var(--purple-light);
}
.sidebar {
  height: 100%;
  width: 0;
  position: fixed;
  z-index: 1;
  top: 0;
  left: 0;
  background-color: var(--purple-main);
  overflow-x: hidden;
  transition: 0.5s;
  padding-top: 60px;
}

.sidebar a {
  padding: 8px 8px 8px 32px;
  text-decoration: none;
  font-size: 25px;
  color: #fff;
  display: block;
  transition: 0.3s;
}

.sidebar a:hover {
  color: #f1f1f1;
}

.sidebar .closebtn {
  position: absolute;
  top: 0;
  right: 25px;
  font-size: 36px;
  margin-left: 50px;
}
button.openbtn{
   background-image: none;
   color: var(--purple-main);
   padding: 0;
   background-color: transparent;
   border-radius: none;
   font-size: 36px;
}

.openbtn:hover {
  background-color: var(--orange-highlight);
}

#main {
  transition: margin-left .5s;
}

.mobile-menu ul{
    display: flex;
    flex-direction: column;
}

/* contact form*/
.contato{
  background-color: var(--background-color);
  padding: 5%;
}
.contato .container{
  display: flex;
  justify-content: center;
 background-color: var(--branco);
 width: 100%;
}
.contato h2{
    text-align: center;
    margin-bottom: 5%;
}
.contato input[type="text"],
input[type="email"],
input[type="tel"]{
  padding: 10px;
  margin-bottom: 15px;
  border: 1px solid #ccc;
  border-radius: 5px;
}
textarea{
   padding: 10px;
  margin-bottom: 15px;
  border: 1px solid #ccc;
  border-radius: 5px;
}

.contato input[type="submit"]{
  background-image: var(--gradient-primary);
    color: #ffffff;
    padding: var(--spacing-sm) var(--spacing-md);
    text-transform: uppercase;
    border-radius: 40px;
    border: none;
    cursor: pointer;
    transition: background-image 0.3s ease;
}

/* On smaller screens, where height is less than 450px, change the style of the sidenav (less padding and a smaller font size) */
@media screen and (max-height: 450px) {
  .sidebar {padding-top: 15px;}
  .sidebar a {font-size: 18px;}
  .button{margin-top: 0;}
}


/************** SEÇÃO TOPO *****************/

/*topo*/

.topo{
	background-image: url(./assets/images/topo-vetorial.svg);
  background-position:right;
  background-repeat: no-repeat;
  height: 666px;
  background-size: contain;
}

.topo{
	display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
}

.topo-texto h1{
	font-family: var(--font-righteous);
	text-transform: uppercase;
	margin: 0;
	padding: 0;
	
}

.topo h2{
	margin: 0;
}

.topo-texto{
	width: 40%;
	text-align: center;
}

.topo-texto p{
    font-family: var(--font-open-sans);
    font-weight: 200;
    color: var(--dark-gray);
}

/************** HABILIDADES (HAB) *****************/

.hab{
	background-color: var(--light-gray);
    padding: 5% 0;
    
}

.habilidades{
	display: flex;
	flex-direction: row;
	justify-content: center;
	gap: 5%;
	 margin: 0 5%; /* Combina margin-left e margin-right */
}

.habilidades > div{
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
}
.icone {
    background-color: var(--orange-highlight);
    display: flex;
    flex-direction: column; /* Necessário se os filhos do icone tiverem flex */
    border-radius: 50%;
    align-items: center;
    justify-content: center; /* Centraliza verticalmente o SVG */
    padding: 20%; /* Padding proporcional, mas pode ser problemático. Considere um tamanho fixo + padding em px/rem. */
    aspect-ratio: 1 / 1; /* Garante que o círculo seja perfeito */
}
.icone svg{
max-width: 50%;
height: auto;
}
/************** SERVIÇOS *****************/

.servicos{
	 grid-area: serv;
    display: grid;
    grid-template-columns: 1fr 1fr; /* Padrão para telas maiores */
    gap: var(--spacing-lg); /* 20px */
    max-width: 90%;
    margin: 0 auto;
    padding-bottom: 5%; /* Adicionado padding ao final da seção */
}

.servicos h2,
.servicos p,
.servicos ul li {
    color: white;
}

.servicos ul {
    margin-bottom: 10%;
    list-style: none; /* Remove bullet points padrão */
    padding: 0; /* Remove padding padrão da lista */
}

.card {
    max-width: 80%; /* Considere um valor em PX ou REM para maior consistência */
    margin: 10% auto; /* Centraliza o card horizontalmente com margem vertical */
    border-radius: var(--spacing-sm); /* 10px */
    height: auto; /* Garante que a altura se ajuste ao conteúdo */
    /* Remove width: 100% que é redundante com grid-template-columns: 1fr */
}

/* Estilos de Background para Cards (combine com uma variável) */
.card1{
	width: 100%;
	height: auto;
	background: linear-gradient(to left, rgba(55, 219,255, 0.80), rgba(52, 152, 250, 0.80)), url(./assets/images/Illustration.png) no-repeat center right;
	border-radius: 10px;
}

.card2{
	width: 100%;
	height: auto;
	background: linear-gradient(to left, rgba(252, 213,76, 0.80), rgba(244, 180, 70, 0.80)), url(./assets/images/Illustration.png) no-repeat center right;
	border-radius: 10px;
}
.card3{
	width: 100%;
	height: auto;
	background: linear-gradient(to left, rgba(242, 92,202, 0.80), rgba(131, 78, 210, 0.80)), url(./assets/images/Illustration.png) no-repeat center right;
	border-radius: 10px;
}
.card4{
	width: 100%;
	height: auto;
	background: linear-gradient(to left, rgba(45, 214,69, 0.80), rgba(48, 197, 115, 0.80)), url(./assets/images/Illustration.png) no-repeat center right;
	border-radius: 10px;
}

/* animação do slide*/
/* Animação dos Slides */
.card1, .card3, .card2, .card4 {
    position: relative;
    overflow: hidden; /* Mantido para cortar o conteúdo da animação inicial */
}

.card1, .card3 { animation: slidein-right 2s forwards; } /* Adicionado 'forwards' para manter o estado final */
.card3 { animation-duration: 3s; } /* Sobrescreve a duração apenas para o card3 */

@keyframes slidein-right {
    from { left: -100%; opacity: 0; } /* Adicionado opacidade para um efeito mais suave */
    to { left: 0%; opacity: 1; }
}

.card2, .card4 { animation: slidein-left 2s forwards; }
.card4 { animation-duration: 3s; }

@keyframes slidein-left {
    from { right: -100%; opacity: 0; }
    to { right: 0%; opacity: 1; }
}


/************** PORTFÓLIO *****************/
.portfolio h1 {
    padding-bottom: 0; /* Sobrescreve o padding global do h1 */
}

.portfolio > div {
    padding-bottom: var(--spacing-xl); /* 5% */
}

.portfolio h2 {
    color: var(--purple-main);
    margin-bottom: 20px; /* Ajustado de 510 para um valor mais realista, ou defina como 0 se não quiser margem */
}

.traco {
    background-image: var(--gradient-portfolio);
    height: 3px;
    width: 40%;
    margin-bottom: var(--spacing-xl); /* 5% */
}
.card-portfolio1, .card-portfolio2 {
    border-radius: var(--spacing-lg); /* 20px */
    max-width: 100%;
    padding: var(--spacing-xl); /* 5% */
    margin-bottom: var(--spacing-xl); /* 5% para card-portfolio1 */
}

.card-portfolio1 {
    background-image: var(--gradient-portfolio);
}

.card-portfolio2 {
    background-image: var(--gradient-portfolio-left);
}
/* Remover margin-bottom redundante para card-portfolio2 se houver */
 .card-portfolio2 { margin-bottom: var(--spacing-xl); } 


 /************** SLIDESHOW *****************/


/* Slideshow container */
.slides-container {
	background-color: var(--light-gray); 
    padding: 5% 0; 
	
  }
  .slides-container .width-container{
	position: relative;
  }
 .slide-item{
	display: flex;
	flex-direction: row;
	justify-content: space-evenly;
	padding: var(--spacing-xl) 0; /* 5% 0 */
     margin: 0 auto; /* Centraliza o slide-item */
	
 }
 

/* Botões de Navegação */
  .prev, .next {
	 position: absolute;
    cursor: pointer;
    top: 50%;
    width: auto;
    margin-top: -30px; /* Ajuste para alinhar verticalmente */
    padding: var(--spacing-md); /* 16px */
    color: var(--purple-main);
    font-weight: bold;
    font-size: 20px;
    user-select: none;
    transition: background-color 0.3s ease, color 0.3s ease;
  }
  
  
.prev {
    left: 0; /* Posiciona o botão "prev" na esquerda */
    border-radius: 0 3px 3px 0;
}

.next {
    right: 0;
    border-radius: 3px 0 0 3px;
}

.prev:hover, .next:hover {
    background-color: var(--purple-main); /* Usando a variável */
    color: white;
}

/* Indicadores (dots) */
.dot-container {
    text-align: center;
    padding: var(--spacing-lg); /* 20px */
    background: #ddd; /* Pode ser uma variável se for recorrente */
}

.dot {
    cursor: pointer;
    height: var(--spacing-md); /* 15px */
    width: var(--spacing-md); /* 15px */
    margin: 0 2px;
    background-color: var(--medium-gray); /* #bbb */
    border-radius: 50%;
    display: inline-block;
    transition: background-color 0.6s ease;
}

.active, .dot:hover {
    background-color: var(--dark-gray); /* #717171 */
}

/* animação dos slides */


/* footer*/
footer{
	 background-color: var(--purple-main);
    padding-bottom: var(--spacing-xl); /* Adicionado padding para a seção */
}

footer > div{
	margin: auto;
	grid-area: rodape;
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	padding-top: var(--spacing-xl); /* 5% */
    padding-left: var(--spacing-xl); /* 5%, ou usar padding lateral do .width-container */
    padding-right: var(--spacing-xl); /* Adicionado padding direito */
	
}


footer .conteudo{
	color: #ffffff;
	display: flex;
	flex-direction: column;
	justify-content: space-evenly;
	
	
}

footer .logo{
	
	text-transform: uppercase;
	 font-family: var(--font-open-sans);
	padding-bottom: 10%;

}

.orcamento{
	 background-color: #ffffff;
    color: var(--purple-main);
    border-radius: 50px;
    text-align: center;
    text-transform: uppercase;
    font-family: var(--font-open-sans);
    padding: var(--spacing-sm) var(--spacing-lg); /* 10px 20px */
    display: inline-block; /* Garante que o padding funcione como em um botão */
    text-decoration: none; /* Se for um link */
}


.contatos{
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: var(--spacing-lg); /* 20px */
	
}
.contatos svg{
	width: auto;
	height: 40px; /* Garante proporção */
}
.contatos p{
	display: none;
}

.direitos {
    color: white; /* Adicionado cor para o texto */
    text-align: center; /* Centralizado para mobile */
    margin-top: var(--spacing-lg); /* Espaçamento do conteúdo acima */
    margin-bottom: var(--spacing-xl); /* 5% */
    padding: 0 var(--spacing-lg); /* Padding lateral */
}


/* Regras específicas de responsividade*/

/************** RESPONSIVIDADE (MOBILE-FIRST) *****************/

/* Mobile-First: Estilos base para telas pequenas (até 480px) */

/* Tamanhos de Fonte Base Mobile */

html { font-size: 100%; /* Define 1rem como 16px por padrão */ }

h1 { font-size: 2.25rem; line-height: 1.2; } /* 36px */
h2 { font-size: 1.75rem; line-height: 1.3; } /* 28px */
h3 { font-size: 1.375rem; line-height: 1.4; } /* 22px */
h4 { font-size: 1.125rem; line-height: 1.5; } /* 18px */
body { font-size: 1rem; line-height: 1.5; } /* 16px */

/* Ajustes Específicos para Mobile */
    .logo img{
        height: 60px;
        width: auto;
    }
.topo {
    height: 500px; /* Considere min-height: 80vh; para mais flexibilidade */
    background-position: center bottom;
    justify-content: center;
    align-items: flex-start;
   
    background-size: 100%; /* Ajustado para mobile */
}

.topo-texto {
    text-align: center;
    width: 100%; /* Ocupa toda a largura */
    padding: 0 5%; /* Padding lateral */
    box-sizing: border-box; /* Inclui padding na largura total */
    padding-top: 5%;
}

.topo-texto h1 {
    font-size: 3rem; /* Específico para o h1 do topo no mobile */
}

.habilidades > div {
    margin-bottom: 20px; /* Espaçamento entre as seções de habilidade */
}

.habilidades > div h2{
    font-size: 1rem;
}

.icone {
    padding: 10%; /* Ajusta padding do círculo para mobile */
}

.servicos {
    grid-template-columns: 1fr; /* Uma coluna em mobile */
}

.card {
    margin: 5% auto; /* Ajusta margem para mobile */
}

.slide-item {
    flex-direction: column;
    align-items: center;
    padding: 5% 2%; /* Adicionado padding lateral */
}

.slide-item > div {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    margin-bottom: var(--spacing-xl); /* 5% */
}

.slide-item img {
    margin-top: var(--spacing-xl); /* 5% */
    max-width: 100%;
    height: auto;
}

footer img {
    display: none; /* Esconde a imagem do rodapé no mobile */
}

footer > div {
    flex-direction: column; /* Colunas no rodapé para mobile */
    align-items: center;
    justify-content: center;
    text-align: center; /* Centraliza o texto no rodapé */
    padding-left: 0; /* Remove padding lateral do footer div */
    padding-right: 0;
}

footer .conteudo {
    align-items: center;
}

.contatos {
    margin: var(--spacing-xl) 0; /* 5% de margem vertical */
    flex-wrap: wrap; /* Permite que os ícones de contato quebrem a linha */
    justify-content: center;
}



/* Esconde o .desktop-menu em telas menores que 768px */
@media screen and (max-width: 767px) {
    .desktop-menu {
        display: none;
    }
}

/* Esconde o .mobile-menu em telas maiores ou iguais a 768px */
@media screen and (min-width: 768px) {
    .mobile-menu {
        display: none;
    }
}


/* --- Media Queries (Ascendente) --- */



/* 481px - 768px: iPads, tablets */
@media (min-width: 481px) {
    h1 { font-size: 2.5rem; } /* 40px */
    h2 { font-size: 2rem; } /* 32px */
    h3 { font-size: 1.5rem; } /* 24px */
    h4 { font-size: 1.25rem; } /* 20px */
    body { font-size: 1rem; line-height: 1.375; }

    .topo {
        height: 600px; /* Ajuste de altura */
        background-size: 90%; /* Ajuste de tamanho da imagem */
    }


.topo-texto {
    text-align: center;
    width: 40%; /* Ocupa toda a largura */
    padding: 0 5%; /* Padding lateral */
    box-sizing: border-box; /* Inclui padding na largura total */
}

    .logo img{
        height: 60px;
        width: auto;
    }
   .habilidades > div h2{
    font-size: 2rem;
}
      
    footer .width-container{
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 30px;
    }
    .contatos{
        justify-content: center;
        padding-top: 5%;
    }
  
}

/* 769px - 1024px: Telas pequenas, laptops */
@media (min-width: 769px) {
    h1 { font-size: 3rem; } /* 48px */
    h2 { font-size: 2.25rem; } /* 36px */
    h3 { font-size: 1.75rem; } /* 28px */
    h4 { font-size: 1.12rem; } /* 18px */
    body { font-size: 1rem; line-height: 1.375; }


    .topo {
        background-position: right center; /* Retorna ao alinhamento original */
        justify-content: left;
        align-items: center;
        height: 400px;
        background-size: 80%;
    }

    .servicos {
        grid-template-columns: 1fr 1fr; /* Duas colunas */
    }

    .habilidades {
        flex-direction: row; /* Volta para linha */
    }

    .slide-item {
        flex-direction: row;
        justify-content: space-evenly;
    }

    footer .width-container {
        flex-direction: row;
        align-items: flex-start;
        justify-content: space-between;
    }

    footer img {
        display: block; /* Mostra a imagem do rodapé */
    }
}

/* Acima de 1025px: Desktops, telas grandes */
@media (min-width: 1025px) {
    h1 { font-size: 3.5rem; line-height: 1.05; } /* 56px */
    h2 { font-size: 2.5rem; line-height: 1.25; } /* 40px */
    h3 { font-size: 2rem; line-height: 1.25; } /* 32px */
    h4 { font-size: 1.25rem; line-height: 1.25; } /* 20px */
    body { font-size: 1.125rem; line-height: 1.375; } /* 18px */

  header{
    display: flex;
    flex-direction: row;
    align-items: center;
  }

	.topo {
  background-position: right;
  background-repeat: no-repeat;
  height: 600px;
  background-size: 70%;
}
.topo h1{
    font-size: 5rem;
}

}

/* Acima de 1200px: Telas Ultra-Grandes */
@media (min-width: 1201px) {
    h1 { font-size: 4rem; } /* 64px */
    h2 { font-size: 2.75rem; } /* 44px */
    h3 { font-size: 2.25rem; } /* 36px */
    h4 { font-size: 1.5rem; } /* 24px */
    
}