/* Cores Primárias */
:root {
    --primary-p-25: #B3FF57;
    --primary-p-50: #10D356;
    --primary-p-100: #0A894C;
    --primary-p-200: #007733;
    --primary-p-300: #00481F;

    /* Cores Secundárias */
    --secondary-s-50: #FF8141;
    --secondary-s-100: #F0220B;
    --secondary-s-200: #BC0606;

    /* Cores Neutras */
    --neutral-n-25: #FFFFFF;
    --neutral-n-50: #F6F6F6;
    --neutral-n-100: #EEEEEE;
    --neutral-n-200: #E2E2E2;
    --neutral-n-300: #C2C2C2;
    --neutral-n-400: #8D8D8D;
    --neutral-n-500: #4B4B4B;
    --neutral-n-600: #0E0E0E;

    /* Tipografia - Nunito Sans */
    --font-display-large-ns: 96px Nunito Sans, sans-serif;
    --font-display-medium-ns: 64px Nunito Sans, sans-serif;
    --font-display-small-ns: 48px Nunito Sans, sans-serif;

    --font-headline-large-ns: 72px Nunito Sans, sans-serif;
    --font-headline-medium-ns: 56px Nunito Sans, sans-serif;
    --font-headline-small-ns: 48px Nunito Sans, sans-serif;

    --font-title-large-ns: 40px/normal Nunito Sans, sans-serif;
    --font-title-medium-ns: 32px/normal Nunito Sans, sans-serif;
    --font-title-small-ns: 24px/normal Nunito Sans, sans-serif;

    --font-body-ns: 18px/24px Nunito Sans, sans-serif;
    --font-label-ns: 14px Nunito Sans, sans-serif;

    /* Tipografia - IBM Plex Serif */
    --font-display-large-ips: 96px IBM Plex Serif, serif;
    --font-display-medium-ips: 64px IBM Plex Serif, serif;

    --font-title-bold-large-ips: 40px/normal IBM Plex Serif, serif;
    --font-title-bold-medium-ips: 32px/normal IBM Plex Serif, serif;

    --font-body-semibold-ips: 24px/normal IBM Plex Serif, serif;
    --font-body-semi-ips: 20px/normal IBM Plex Serif, serif;
    --font-body-medium-ips: 18px/normal IBM Plex Serif, serif;
}

/* Estilos gerais */
body {
    margin: 0;
    font-family: 'Nunito Sans', sans-serif;
    color: var(--neutral-n-600);
    box-sizing: border-box;
}

/* Estilo da barra superior */
.top-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background-color: var(--neutral-n-600);
    color: var(--neutral-n-50);
    padding: 10px 8.6%;
    font-family: var(--font-body-ns);
    font-size: 14px;
}

.top-bar a {
    color: var(--neutral-n-50);
    text-decoration: none;
    margin-left: 10px;
}

.top-bar a:hover {
    text-decoration: underline;
}

.top-bar .icons {
    display: flex;
    gap: 10px;
}

/* Ícones interativos da barra superior */
.top-bar .telefone a {
    display: flex;
    align-items: center;
    gap: 6px;
    transition: color 0.3s ease;
}

.top-bar .telefone a:hover {
    text-decoration: none;
    color: #10D356;
}

.top-bar .telefone a img {
    width: 20px;
    height: 20px;
    transition: filter 0.3s ease, transform 0.3s ease;
}

/* Hover no WhatsApp */
.top-bar .telefone a:hover img {
    content: url('./images/wpp_verde.png');
    transform: scale(1.1);
}

/* Ícones sociais - YouTube e Instagram */
.top-bar .icons a {
    display: flex;
    align-items: center;
    transition: transform 0.3s ease;
}

.top-bar .icons a:hover {
    transform: scale(1.1);
}

/* YouTube hover */
.top-bar .icons a[href*="youtube"]:hover img {
    content: url('./images/yt_laranja.png');
}

/* Instagram hover */
.top-bar .icons a[href*="instagram"]:hover img {
    content: url('./images/insta_laranja.png');
}

.top-bar .email,
.top-bar .telefone {
    font-size: 14px;
}

.top-bar .icons a {
    margin-left: 10px;
}

.top-bar img {
    width: auto;
    height: 20px;
}










/* Primeira Seção - Cabeçalho Principal */
.intro-section {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 8.6%;
    background-color: var(--secondary-s-100);
}

/* Logotipo */
.intro-section .logo img {
    width: 160px;
}

/* Menu */
.intro-section .menu ul {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
    gap: 70px; /* distância entre os itens */
}

/* Links do menu */
.intro-section .menu ul li a {
    position: relative;
    text-decoration: none;
    color: var(--neutral-n-25);
    font-family: 'Nunito Sans', sans-serif;
    font-weight: 700;
    font-size: 16px;
    letter-spacing: 0.5px;
    transition: color 0.3s ease;
}

/* Efeito sublinhado animado */
.intro-section .menu ul li a::after {
    content: '';
    position: absolute;
    bottom: -6px;
    left: 0;
    width: 0%;
    height: 2px;
    background-color: var(--neutral-n-25);
    transition: width 0.3s ease;
}

/* Hover com sublinhado branco */
.intro-section .menu ul li a:hover::after {
    width: 100%;
}

/* Hover muda a cor levemente para o verde primário */
.intro-section .menu ul li a:hover {
    color: var(--primary-p-25);
}

/* Esconde o ícone de menu em desktop */
.menu-icon {
    display: none;
}

/* Menu desktop */
.intro-section .menu ul {
    display: flex;
    list-style: none;
    gap: 70px;
}

/* Menu lateral mobile */
.mobile-menu {
    position: fixed;
    top: 0;
    right: -70%;      /* começa fora da tela à direita */
    width: 50%;
    height: 100%;
    background-color: var(--primary-p-100);
    padding: 40px 20px;
    z-index: 1002;
    transition: right 0.3s ease;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.mobile-menu.active {
    right: 0;         /* desliza para dentro da tela */
}

/* Botão fechar */
.menu-close {
    width: 30px;
    cursor: pointer;
    align-self: flex-end;
}

/* Overlay */
#overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    backdrop-filter: blur(4px);
    background-color: rgba(0,0,0,0.3);
    opacity: 0;
    visibility: hidden;
    z-index: 1000;
    transition: opacity 0.3s ease;
}

#overlay.active {
    opacity: 1;
    visibility: visible;
}

/* Topo do menu: logo e botão fechar */
.mobile-menu-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 40px;
}

.mobile-menu-header .logo img {
    width: 120px;
    height: auto;
}

.mobile-menu-header .close-btn {
    cursor: pointer;
    font-size: 24px;
    color: var(--neutral-n-25);
}

/* Lista de links */
.mobile-menu ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.mobile-menu ul li {
    border-bottom: 1px solid var(--primary-p-300); /* separa os links */
}

.mobile-menu ul li a {
    text-decoration: none;
    color: var(--neutral-n-25);
    font-family: var(--font-title-small-ns);
    font-weight: 600;
    padding: 10px 0;
    display: block;
    transition: color 0.3s ease;
    font-size: 14px;
}

.mobile-menu ul li a:hover {
    color: var(--primary-p-25);
}

/* Blur no conteúdo do site quando menu aberto */
body.menu-open .content {
    filter: blur(5px);
    pointer-events: none; /* impede interação com o conteúdo */
}

/* === Responsivo === */
@media (max-width: 768px) {

    .top-bar {
      display: none;
    }

    .intro-section {
      background-color: var(--primary-p-300);
    }

    /* Esconde menu desktop */
    .intro-section .menu {
        display: none;
    }

    .intro-section .logo img {
      height: 60px;
      width: auto;
    }

    /* Mostra ícone de menu */
    .menu-icon {
        display: block;
        width: 40px;
        cursor: pointer;
        z-index: 1001;
    }
}









/* ===== HERO SECTION ===== */
.hero-section {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background-color: var(--primary-p-300);
  height: 85vh;
  overflow: hidden;
  padding: 0;
  position: relative;
}

/* ===== LADO ESQUERDO ===== */
.hero-content {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  z-index: 2;
}

.hero-logo {
  width: 290px;
}

/* ===== HERO TEXT ===== */
.hero-text {
  font-family: var(--font-body-ns);
  color: #fff;
  font-size: 18px;
  line-height: 1.6;
  max-width: 500px;
  padding: 0 160px;
  min-height: 160px; /* garante espaço mesmo vazio */
  white-space: pre-wrap; /* respeita quebras de linha */
  overflow-wrap: break-word; /* evita estouro de texto */
  opacity: 0; /* começa invisível */
  transition: opacity 0.5s ease;
}

/* quando entra na tela */
.hero-text.show {
  opacity: 1;
}

.typing-cursor {
    display: inline-block;
    margin-left: 2px;
    width: 1px;
    /* background-color: #fff; */
    animation: blink 0.7s steps(1) infinite;
}

@keyframes blink {
    50% { opacity: 0; }
}

/* ===== BOTÃO ===== */
.hero-button {
  background-color: var(--secondary-s-200);
  color: #fff;
  padding: 15px 60px;
  margin: 20px 0;
  border-radius: 12px;
  font-weight: 700;
  font-family: IBM Plex Serif, serif !important;
  font-size: 24px;
  text-decoration: none;
  display: inline-block;
  opacity: 1;
}

.hero-button:hover {
  background-color: var(--secondary-s-100);
}

/* Botão entra conforme o scroll */
.hero-button.show {
  opacity: 1;
  transform: translateX(0);
}

/* ===== LADO DIREITO ===== */
.hero-image {
  flex: 1;
  height: 100%;
  overflow: hidden;
  animation: imageEnter 1.2s ease-out forwards;
}

.hero-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ===== ANIMAÇÕES ===== */
@keyframes imageEnter {
  from {
    transform: translateX(100%);
  }
  to {
    transform: translateX(0);
  }
}

@media (max-width: 768px) {
    @keyframes imageEnterMobile {
        from {
            transform: translateY(-50px); /* vem de cima */
            opacity: 0;
        }
        to {
            transform: translateY(0);
            opacity: 1;
        }
    }

    .hero-image {
        animation: imageEnterMobile 1s ease forwards;
    }
}

/* estado inicial invisível */
.hero-button {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.7s ease, transform 0.7s cubic-bezier(.22,.9,.35,1);
  will-change: opacity, transform;
}

/* quando entra na tela */
.hero-button.show {
  opacity: 1;
  transform: translateY(0);
}

@media (max-width: 768px) {
  .hero-section {
    flex-direction: column;
    height: auto; /* deixa altura automática */
    padding: 0;
    margin: 0;
    background-color: var(--primary-p-100);
  }

  .hero-content {
    margin: 0;           /* remove margem extra */
    padding: 20px 0 0 0; /* só padding superior */
    border-bottom-left-radius: 20px;
    border-bottom-right-radius: 20px;
    max-width: 100%;
    text-align: center;
    background-color: var(--secondary-s-200);
    order: 1;
    margin: 0px 0px 30px 0px;
  }

  .hero-logo {
    display: none;
  }

  .hero-text {
    margin: 0;  /* remove margem interna */
    padding: 0 30px 30px 30px;
    font-size: 16px;
  }

  .hero-image {
    margin: 0; /* remove margin-top que afasta do texto */
    width: 100%;
    height: auto;
    order: 0;
  }

  .hero-image img {
    content: url('images/mais_para_sua_vida_mb.png');
    display: block;  /* remove inline spacing */
    width: 100%;
    height: auto;
    object-fit: cover;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
  }

  .hero-button {
    display: none;
  }

  .separator-1 {
    display: none !important;
  }
}












.separator-1,
.separator-3 {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 250px;
    background-color: var(--primary-p-100);
}

.separator-2 {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    padding-top: 80px;
    height: 100px;
    background-color: var(--primary-p-100);
}

.separator-3 {
  padding: 30px 0;
}

.separator-1 img,
.separator-2 img {
    width: 60px;
    height: auto;
}

.separator-3 img {
  width: auto;
  height: 90px;
}










/* Seção principal */
#quem-somos {
    min-height: 100vh; /* ocupa a tela toda */
    background-color: var(--primary-p-300); /* cor de fundo suave */
    padding: 40px 20px;
    box-sizing: border-box;
}

/* Título */
.titulo {
    padding: 30px 8.6%;
    margin-bottom: 30px;
}

.titulo p {
    font-size: 64px;
    font-family: IBM Plex Serif, serif;
    font-weight: 600;
    color: var(--neutral-n-25);
    margin: 0;
}

.flex-video,
.flex-texto {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.flex-texto {
    margin-top: 80px;
}

/* Container do vídeo */
.video-container {
    position: relative;
    width: 80%;
    max-width: 800px; /* limita o tamanho máximo */
    aspect-ratio: 16 / 9; /* proporção perfeita sem precisar usar padding-bottom */
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.2);
    background: #000; /* evita bordas brancas */
}

/* Iframe do vídeo */
.video-container iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

.video-container::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,0.3), transparent 80%);
    pointer-events: none; /* permite clicar no vídeo */
}

/* Texto */
.texto-container {
    max-width: 900px;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.texto-curto {
    
    max-width: 600px;
}

.texto-container .autor {
    font-family: Nunito Sans, sans-serif;
    font-size: 24px;
    color: var(--neutral-n-200);
    margin: 0;
}

.texto-container .manifesto {
    font-family: Nunito Sans, sans-serif;
    font-size: 24px;
    margin: 8px 0 20px 0;
    color: var(--neutral-n-25);
}

.texto-container .orgulho {
    font-family: IBM Plex Serif, serif;;
    font-size: 32px;
    font-style: italic;
    color: var(--neutral-n-25);
}

.texto-container .assinatura {
    font-family: Nunito Sans, sans-serif;
    font-size: 24px;
    color: var(--neutral-n-200);
    margin-bottom: 40px;
}

.texto-container .descricao,
.texto-container .descricao-2 {
    font: var(--font-body-ns);
    color: var(--neutral-n-25);
    text-align: justify;
    line-height: 1.8;
    margin-bottom: 80px;
}

/* Cursor piscando */
.typing-cursor {
    display: inline-block;
    margin-left: 2px;
    width: 1px;
    /* background-color: var(--neutral-n-25); */
    animation: blink 0.7s steps(1) infinite;
}

@keyframes blink {
    50% { opacity: 0; }
}

/* Fade-in quando entra na tela */
.descricao.show {
    opacity: 1;
    transition: opacity 0.5s ease;
}

/* Mantém espaço mesmo quando vazio */
.descricao {
    min-height: 200px;
    white-space: pre-wrap;
    overflow-wrap: break-word;
    opacity: 0;
}

@media (max-width: 768px) {
    /* Ajusta o padding da seção */
    #quem-somos {
        padding: 20px 10px;
    }

    .titulo {
      padding: 30px 8.6% 0px 8.6%;
    }

    /* Título menor e centralizado */
    .titulo p {
        font-size: 34px;
        text-align: start;
        margin-bottom: 20px;
    }

    /* Flex do vídeo e texto vira coluna */
    .flex-video,
    .flex-texto {
        flex-direction: column;
        align-items: center;
        justify-content: center;
        margin-top: 40px;
    }

    /* Container do vídeo menor e responsivo */
    .video-container {
        width: 100%;
        max-width: 100%;
        aspect-ratio: 16 / 9;
        border-radius: 15px;
        box-shadow: 0 6px 15px rgba(0,0,0,0.2);
    }

    /* Texto centralizado e largura adaptada */
    .texto-container {
        max-width: 100%;
        padding: 0 10px;
        align-items: center;
    }

    .texto-curto {
        max-width: 100%;
        text-align: center;
    }

    .texto-container .autor,
    .texto-container .manifesto,
    .texto-container .orgulho,
    .texto-container .assinatura {
        font-size: 18px;
        text-align: start;
    }

    .texto-container .descricao {
        font-size: 16px;
        line-height: 1.6;
        text-align: justify;
        margin-bottom: 40px;
    }
}

@media (max-width: 768px) {
    .bl-2-contato .detalhes {
        transform: translateX(0) rotate(0); /* já na posição final */
        margin: 10px 0;
    }

    .separator-2 {
      background-color: var(--primary-p-300);
      padding-top: 0px;
    }

    .separator-2 img {
      content: url(images/detalhe_1.png);
      height: 50px;
      width: auto;
    }
}









#produtos-servicos-titulo {
    min-height: 100vh;
    background-color: var(--primary-p-100);
    padding: 40px 0 0 0;
    box-sizing: border-box;
}

/* Estrutura base */
#produtos-servicos {
  position: relative;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  /* garante contexto visual */
  background: transparent;
}

.conteudo {
  position: relative; /* mantém o conteúdo acima do ::before */
  z-index: 2;
  width: 100%;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  flex-wrap: nowrap;
}

/* Fundo vermelho animado */
#produtos-servicos::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 0%;
  background-color: var(--secondary-s-200);
  border-top-right-radius: 30px;
  border-bottom-right-radius: 30px;
  z-index: 1; /* fica atrás do conteúdo */
  transition: width 900ms cubic-bezier(.22,.9,.35,1);
  will-change: width;
}

/* estado ativo: expande para 53% */
#produtos-servicos.produtos-ativo::before {
  width: 53%;
}

/* Texto */
.texto {
  position: relative;
  z-index: 3; /* acima do pseudo */
  flex: 1 1 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--neutral-n-25);
  font: var(--font-body-semi-ips);
  line-height: 1.8;
  padding: 0 10px;
  max-width: 340px;
  height: 100%;
  margin-left: 120px;
}

/* Imagem */
.imagem { position: relative; z-index: 3; }
.imagem img {
  width: 650px;
  height: auto;
  object-fit: cover;
  display: block;
  border-top-left-radius: 30px;
  border-bottom-left-radius: 30px;
}

.processos {
    font: var(--font-title-medium-ns)
}

@media (max-width: 768px) {
    #produtos-servicos {
        border-top-right-radius: 0px !important;
        border-bottom-left-radius: 20px;
        border-bottom-right-radius: 20px;
        max-width: 100% !important;
    }

    .texto {
        width: 100%;
        font-size: 16px; /* reduz o tamanho da fonte para celular */
        line-height: 1.6;
        text-align: justify;
        margin-left: 0; /* remove margem lateral */
        padding: 0;
    }

    .texto p {
      padding: 10px 20px;
    }

    .processos {
        font-size: 20px;
        margin: 30px 0 15px 0;
    }

    .imagem img {
      display: none;
    }

    #produtos-servicos.produtos-ativo::before {
      width: 100%;
    }

    .descricao-2 {
      padding: 0px 10px;
      text-align: left !important;
      font-size: 22px;
    }

    .conteudo {
      justify-content: center !important;
    }
}










/* SEÇÃO ETAPAS DE PRODUÇÃO */
#etapas-producao {
  background: var(--primary-p-100);
  color: var(--neutral-n-25);
  padding: 0px 0px 80px 0px;
  text-align: center;
}

/* Container principal */
.etapas-flex {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 60px;
  max-width: 1100px;
  margin: 0 auto;
}

/* Linha */
.row {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: 40px;
  flex-wrap: wrap; /* ✅ permite quebrar em 4 em cima, 3 embaixo e centralizar */
}

/* Cada item (imagem + texto) */
.item {
  width: 220px;
  text-align: center;
  opacity: 0;                       /* invisível no início */
  transform: translateY(60px);      /* deslocado para baixo */
  transition: 
    opacity 0.7s ease-out,
    transform 0.7s cubic-bezier(.22,.9,.35,1);
  will-change: opacity, transform;
}

/* Quando aparece na tela */
.item.ativo {
  opacity: 1;
  transform: translateY(0);
}

/* PNG sem círculo */
.item img {
  width: 140px;
  height: auto;
  margin-bottom: 15px;
  display: block;
  margin-left: auto;
  margin-right: auto;
}

/* Texto */
.item p {
  font-family: 'Nunito Sans', sans-serif;
  font-size: 12px;
  line-height: 1.3;
  text-transform: uppercase;
  max-width: 210px;
  margin: 0 auto;
  color: var(--neutral-n-25);
}










#catalogo {
  position: relative;
  overflow: hidden;
  font-family: 'Nunito Sans', sans-serif;
}

/* Container geral */
.catalogo-container {
  display: flex;
  justify-content: space-between;
  overflow: hidden;
  position: relative;
  height: 100%;
  z-index: -1;
  flex: 1;
  background-color: var(--primary-p-25);
}

/* Lado vermelho fixo */
.catalogo-texto {
  background-color: var(--secondary-s-200);
  color: var(--neutral-n-25);
  flex: none;
  width: 0;
  transition: width 1s ease;
  display: flex;
  align-items: center;
  justify-content: start;
  text-align: left;
  padding: 20px 10%;
  font: var(--font-title-bold-medium-ips);
  z-index: 2;
  border-top-right-radius: 30px;
  border-bottom-right-radius: 30px;
  min-width: 35%;
  box-shadow: 10px 10px 50px #000;
}

.catalogo-texto.catalogo-ativo {
  width: 53%;
}

/* Lado verde animado */
.catalogo-download {
  background-color: var(--primary-p-25);
  color: var(--primary-p-300);
  font: var(--font-title-bold-medium-ips);
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  z-index: 1;
  width: 0;
  transition: width 1.2s ease-in-out;
  border-top-right-radius: 20px;
  border-bottom-right-radius: 20px;
  display: block;
}

/* Quando visível */
.catalogo-download.ativo {
  width: 50%;
}

/* Botão vermelho */
.botao-download {
  background-color: var(--secondary-s-200);
  color: var(--neutral-n-25);
  text-decoration: none;
  padding: 10px 52px;
  border-radius: 12px;
  margin-top: 10px;
  font: var(--font-medium-ns);
  transition: 0.3s;
}

.catalogo-download a:hover {
  background-color: var(--secondary-s-100);
}

/* ===== ANIMAÇÃO DO CATÁLOGO ===== */
.catalogo-download {
  background-color: var(--primary-p-25);
  color: var(--primary-p-300);
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  z-index: 1;
  width: 0;
  overflow: hidden;
  opacity: 0;
  transform: translateX(60px);
  transition: width 1.2s ease-in-out, opacity 1.2s ease, transform 1.2s ease;
  border-top-right-radius: 20px;
  border-bottom-right-radius: 20px;
}

.catalogo-download.ativo {
  width: 50%;
  opacity: 1;
  transform: translateX(0);
}

/* anima conteúdo interno */
.catalogo-download h2,
.catalogo-download .botao-download {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 1s ease, transform 1s ease;
}

.catalogo-download.ativo h2,
.catalogo-download.ativo .botao-download {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.4s;
}

.catalogo-download h2 {
  margin: 0;
}

.catalogo-download {
  position: relative;
  z-index: 1;
}

.catalogo-container {
  position: relative;
  z-index: 2;
  pointer-events: none; /* bloqueia cliques no container */
}

.catalogo-texto,
.catalogo-download {
  pointer-events: all; /* reativa cliques apenas nestas áreas */
}

.container-contato {
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  padding: 10px 8.6%;
  height: 500px;
}

.catalogo-texto,
.catalogo-download {
    box-sizing: border-box;
}

/* ===== MOBILE CATÁLOGO ===== */
@media (max-width: 768px) {

  /* Container em coluna */
  .catalogo-container {
    flex-direction: column;
  }

  /* Lado vermelho em cima com imagem de fundo */
  .catalogo-texto {
    padding: 30px 15px;
    text-align: start;
    font-size: 24px;
    border-bottom-left-radius: 20px;
    border-bottom-right-radius: 20px;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
    background: url('images/garfo_legumes.png') center/cover no-repeat;
    justify-content: center;
    align-items: center;
  }

  .catalogo-texto.catalogo-ativo {
    width: 100%;
  }

  .catalogo-texto h2 {
    font-size: 30px;
  }

  /* Lado verde do download abaixo, cantos arredondados no topo */
  .catalogo-download {
    padding: 45px 15px;
    border-top-left-radius: 20px;
    border-top-right-radius: 20px;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
    margin-top: 10px;
    width: 100%;
  }

  .catalogo-download h2 {
    font-size: 32px;
  }

  /* Quando visível */
  .catalogo-download.ativo {
    width: 100%;
  }

  /* Botão menor */
  .botao-download {
    padding: 10px 40px;
    font-size: 16px;
  }

  .separator-3 {
    display: none;
  }
}









#contato {
    min-height: 100vh; /* ocupa a tela toda */
    background-color: var(--primary-p-300); /* cor de fundo suave */
    padding: 40px 20px;
    box-sizing: border-box;
}

#contato .titulo {
  margin: 0;
  padding: 0px 0%;
}

.bl-1-contato {
  width: 100%;
  height: 100%;
}

.bl-2-contato {
  width: 20%;
  height: 100%;
}

.bl-3-contato {
  width: 100%;
  height: 100%;
}

.redes-sociais .icons {
    display: flex;
    gap: 10px;
}

/* Ícones sociais - YouTube e Instagram */
.redes-sociais .icons a {
    display: flex;
    align-items: center;
    transition: transform 0.3s ease;
}

.redes-sociais .icons a:hover {
    transform: scale(1.1);
}

/* YouTube hover */
.redes-sociais .icons a[href*="youtube"]:hover img {
    content: url('./images/yt_laranja.png');
}

/* Instagram hover */
.redes-sociais .icons a[href*="instagram"]:hover img {
    content: url('./images/insta_laranja.png');
}

.redes-sociais img {
    width: auto;
    height: 30px;
}

.redes-sociais .icons a:last-child {
  margin-left: 40px;
}

.contato-text-bl-1 {
  font: var(--font-body-semibold-ips);
  color: var(--neutral-n-25);
  padding: 20px 0px;
}

.contato-text-bl-1 .logo img {
  margin-top: 20px;
  width: 130px;
  height: auto;
}

.bl-2-contato {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  text-align: center;
}

.bl-2-contato .detalhes img{
  max-width: 40%;
  max-height: 90px;
}

.bl-3-contato p {
  padding: 0px 68px;
  font: var(--font-title-medium-ns);
  color: var(--neutral-n-25);
}

.formulario {
  position: relative;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  font: var(--font-title-small-ns);
  color: var(--neutral-n-25);
}

form {
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 100%;
}

form label {
  margin-bottom: 10px;
}

form input,
form textarea {
  text-decoration: none;
  outline-color: none;
  outline-style: none;
  color: var(--neutral-n-25);
  border: 2px solid var(--neutral-n-25);
  background-color: var(--primary-p-300);
  border-radius: 10px;
  padding: 10px 20px;
  font-size: 15px;
  margin-bottom: 20px;
}

form textarea {
  min-height: 100px;
}

form .button button {
  width: auto;
  text-decoration: none;
  outline: none;
  border: none;
  margin-top: 20px;
  padding: 5px 50px;
  font: var(--font-title-small-ns);
  border-radius: 10px;
  background-color: var(--secondary-s-100);
  color: var(--neutral-n-25);
  cursor: pointer;
}

form .button button:hover {
  background-color: var(--secondary-s-200);
}

#contato {
  padding-bottom: 150px;
}

.bl-2-contato .detalhes {
    opacity: 0;
    transform: translateX(-50px) rotate(-15deg); /* começa deslocado e girado */
    transition: transform 0.6s ease-out, opacity 0.6s ease-out;
}

.bl-2-contato .detalhes.show {
    opacity: 1;
    transform: translateX(0) rotate(0); /* posição final */
}

/* Hover extra para dar vida */
.bl-2-contato .detalhes:hover {
    transform: scale(1.1) rotate(5deg);
    transition: transform 0.3s ease;
}

.copyright {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 50px;
  background-color: var(--neutral-n-600);
  color: var(--neutral-n-25);
  font: var(--font-body-medium-ips);
}

.spinner {
  width: 22px;
  height: 22px;
  border: 3px solid var(--primary-p-50);
  border-top: 3px solid var(--secondary-s-200);
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
  display: none; /* 👈 começa invisível */
  vertical-align: middle;
  margin-left: 10px;
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

.feedback {
  display: none;
  margin-top: 20px;
  padding: 10px 20px;
  border-radius: 8px;
  font-family: var(--font-body-ns);
  font-weight: 600;
  text-align: center;
  transition: all 0.5s ease; /* 👈 transição suave */
  opacity: 0;
  transform: translateY(-10px);
}

.feedback.sucesso {
  background-color: var(--primary-p-200);
  color: #fff;
}

.feedback.erro {
  background-color: var(--secondary-s-50);
  color: #fff;
}

#feedback {
    position: absolute;
    top: -210px; /* ajusta conforme necessário */
    left: 17%;
    transform: translateX(-50%);
    max-width: 500px;
    width: auto;
    text-align: center;
    z-index: 10;
}

/* Container principal */
.container-contato {
  display: flex;
  flex-wrap: wrap; /* permite que o título ocupe uma linha inteira */
  gap: 20px;       /* espaço entre blocos */
}

/* Título ocupa 100% da largura e fica no topo */
.container-contato .titulo {
  flex: 1 1 100%;   /* ocupa toda a linha */
  text-align: left;
  margin-bottom: 20px; /* espaço entre título e blocos */
}

/* Blocos 1, 2 e 3 ficam lado a lado */
.bl-1-contato,
.bl-2-contato,
.bl-3-contato {
  flex: 1 1 calc(33.333% - 13.33px); /* 3 blocos iguais com espaço entre eles */
}

/* Ajustes do bloco 2 (detalhes) para desktop */
.bl-2-contato {
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
}

/* ===== MOBILE CONTATO ===== */
@media (max-width: 768px) {

  .container-contato {
    flex-direction: column;
    gap: 20px;
    height: 100% !important;
    padding: 0 !important;
  }

  /* Bloco 2 - detalhes em linha no topo */
  .bl-2-contato {
    flex-direction: row;
    justify-content: center;
    align-items: center;
    gap: 10px;
    width: 100%;
    order: 0;
    background-color: var(--primary-p-100);
  }

  #contato {
    padding: 0 !important;
  }

  #contato .titulo {
    order: 1;
  }

  #contato .titulo {
    margin-top: 20px !important;
    text-align: start;
  }

  .bl-2-contato .detalhes img {
    max-width: 60px; /* ajusta tamanho das imagens */
    max-height: 60px;
    transform: none;
    opacity: 1;
  }

  /* Bloco 1 - conteúdo principal sem logo */
  .bl-1-contato {
    width: 100%;
    order: 2;
  }

  .contato-text-bl-1 {
    padding: 0 !important;
  }

  .contato-text-bl-1 p {
    margin: 0px 0px 30px 0px !important;
  }

  .contato-text-bl-1 .logo {
    display: none; /* remove logo daqui */
  }

  /* Bloco 3 - formulário */
  .bl-3-contato {
    width: 100%;
    padding: 0 15px;
    order: 3;
  }

  .bl-3-contato p {
    text-align: start !important;
  }

  form {
    width: 100%;
  }

  form input,
  form textarea {
    font-size: 14px;
    padding: 10px 15px;
  }

  form .button button {
    width: 100%;
    padding: 12px 0;
  }

  /* Logo no final do formulário */
  .bl-3-contato::after {
    content: "";
    display: block;
    width: 130px;
    height: auto;
    margin: 20px auto 0 auto;
    background: url('images/logo.png') center/contain no-repeat;
  }

  .bl-1-contato {
    box-sizing: border-box;
    padding: 0px 30px;
  }

  .bl-1-contato p {
    font-size: 17px;
  }

  .bl-3-contato p {
    padding: 0;
  }

  .bl-3-contato {
    box-sizing: border-box;
    padding: 0px 30px 40px 30px;
  }

  .detalhes img {
    height: 45px;
    width: auto;
    padding: 0px 8px;
  }
}





/* ===== FULL HD (1920px) ===== */
@media (max-width: 480px) {
    .top-bar {
        flex-direction: column;
        align-items: flex-start;
        padding: 10px 5%;
        font-size: 12px;
    }

    .top-bar .telefone,
    .top-bar .email {
        margin-bottom: 5px;
    }

    .top-bar .icons {
        gap: 5px;
    }

    .top-bar img {
        height: 18px;
    }
}


@media (max-width: 1280px) {
    .catalogo-texto h2 {
        font-size: 40px;
      }

      .bl-3-contato p {
        padding: 0;
      }

      #contato {
        padding-bottom: 250px;
      }
}



































































/* ===== FULL HD (1920px) ===== */
@media screen and (min-width: 1920px) {

    /* Top bar */
    .top-bar {
        padding: 15px 12%; /* aumenta espaçamento lateral */
        font-size: 16px; /* fonte levemente maior */
    }

    .top-bar .telefone a img,
    .top-bar .icons img {
        width: 24px;
        height: 24px;
    }

    /* Ícones sociais da top bar */
    .top-bar .icons a {
        margin-left: 15px;
    }

    /* Hover no WhatsApp e redes sociais já tem escala, não precisa mexer */

    /* Tipografia geral - proporcional ao aumento da tela */
    body {
        font-size: 20px; /* aumenta corpo de texto para Full HD */
    }

    /* Ajuste de logo ou imagens na top-bar se houver */
    .top-bar img {
        height: 24px; /* proporcional ao aumento */
    }
}
/* ===== FULL HD (1920px) ===== */
@media screen and (min-width: 1920px) {

    /* Seção Intro */
    .intro-section {
        padding: 20px 12%; /* aumenta padding lateral e vertical */
    }

    /* Logotipo */
    .intro-section .logo img {
        width: 200px; /* proporcional ao aumento da tela */
    }

    /* Menu */
    .intro-section .menu ul {
        gap: 100px; /* aumenta espaço entre os itens do menu */
    }

    /* Links do menu */
    .intro-section .menu ul li a {
        font-size: 18px; /* aumenta a legibilidade em telas grandes */
        letter-spacing: 1px; /* levemente maior para o visual Full HD */
    }

    /* Efeito sublinhado */
    .intro-section .menu ul li a::after {
        bottom: -8px; /* ajusta para manter proporcionalidade com fonte maior */
        height: 3px; /* deixa sublinhado mais visível em telas grandes */
    }
}
/* ===== FULL HD HERO SECTION ===== */
@media screen and (min-width: 1920px) {

    .hero-section {
        height: 90vh; /* deixa hero maior em telas grandes */
    }

    .hero-logo {
        width: 380px; /* aumenta proporcionalmente */
    }

    /* Hero text */
    .hero-text {
        font-size: 24px; /* maior legibilidade */
        line-height: 2;
        max-width: 700px;
        padding: 0 260px;
        min-height: 200px;
    }

    /* Botão */
    .hero-button {
        font-size: 28px; /* aumenta o botão */
        padding: 20px 80px;
    }

    /* Lado direito (imagem) */
    .hero-image img {
        height: 100%;
        object-fit: cover; /* mantém a proporção da imagem */
    }
}
/* ===== FULL HD SEPARATORS ===== */
@media screen and (min-width: 1920px) {

    .separator-1,
    .separator-3 {
        height: 300px; /* maior destaque visual */
    }

    .separator-2 {
        padding-top: 120px; /* mais espaço acima */
        height: 150px; /* aumenta proporção vertical */
    }

    .separator-3 {
        padding: 50px 0; /* mais espaçamento */
    }

    /* Imagens */
    .separator-1 img,
    .separator-2 img {
        width: 80px; /* proporcionalmente maior */
        height: auto;
    }

    .separator-3 img {
        height: 120px; /* aumenta altura da imagem */
        width: auto;
    }
    .catalogo-texto h2 {
      font-size: 48px;
    }
}
/* ===== FULL HD SEÇÃO QUEM SOMOS ===== */
@media screen and (min-width: 1920px) {
    .video-container {
      min-width: 60vw;
    }

    .flex-texto {
        margin-top: 100px;
    }

    /* Texto */
    .texto-container {
        max-width: 1250px;
        align-items: center;
    }

    .texto-curto {
        max-width: 700px;
    }

    .texto-container .autor,
    .texto-container .manifesto,
    .texto-container .assinatura {
        font-size: 28px; /* maior leitura */
    }

    .texto-container .orgulho {
        font-size: 40px; /* destaca frase em Full HD */
    }

    .texto-container .descricao {
        font-size: 22px !important;
        line-height: 1.6;
        margin-bottom: 100px;
    }

    /* Cursor de digitação */
    .typing-cursor {
        width: 2px;
    }
}
/* ===== FULL HD PRODUTOS / SERVIÇOS ===== */
@media screen and (min-width: 1920px) {

    #produtos-servicos-titulo {
        padding: 60px 0 0 0;
        min-height: 120vh; /* aproveita mais da tela */
    }

    .conteudo {
        gap: 80px; /* aumenta distância entre texto e imagem */
    }

    /* Texto */
    .texto {
        max-width: 600px; /* mais espaço para leitura */
        padding: 0 20px;
        font-size: 30px; /* aumenta fonte para Full HD */
        /* line-height: 2; */
        margin-left: 200px; /* aumenta distância da borda / pseudo */
    }

    /* Imagem */
    .imagem img {
        width: 850px; /* aumenta proporcionalmente */
        border-top-left-radius: 40px;
        border-bottom-left-radius: 40px;
    }

    /* Fundo pseudo ::before */
    #produtos-servicos::before {
        border-top-right-radius: 40px;
        border-bottom-right-radius: 40px;
    }

    #produtos-servicos.produtos-ativo::before {
      width: 60%;
    }

    /* Processos */
    .processos {
        font-size: 36px; /* aumenta destaque do título */
    }
}
/* ===== FULL HD ETAPAS DE PRODUÇÃO ===== */
@media screen and (min-width: 1920px) {

    #etapas-producao {
        padding: 0 0 120px 0; /* mais espaçamento inferior */
    }

    .etapas-flex {
        gap: 80px; /* aumenta espaçamento vertical entre linhas */
        max-width: 1400px; /* maior container central */
    }

    .row {
        gap: 60px; /* aumenta espaço entre itens horizontalmente */
    }

    /* Cada item */
    .item {
        width: 280px; /* maior largura dos cards */
    }

    .item img {
        width: 180px; /* imagens maiores para Full HD */
        margin-bottom: 20px;
    }

    .item p {
        font-size: 18px; /* aumenta legibilidade */
        line-height: 1.5;
        max-width: 260px; /* aumenta largura do texto */
    }

    .texto-container p {
      font-size: 30px !important;
    }

    .processos {
      font-size: 40px !important;
    }
}

/* ===== FULL HD CONTATO ===== */
@media screen and (min-width: 1920px) {

    #contato {
        padding: 60px 8% 0px 8%;
    }

    .bl-1-contato {
        width: 100%;
    }

    .contato-text-bl-1 {
        font-size: 28px;
        padding: 30px 0px;
    }

    .contato-text-bl-1 .logo img {
        width: 180px;
    }

    .bl-2-contato {
        width: 25%;
        gap: 20px;
    }

    .bl-2-contato .detalhes img {
        max-height: 120px;
    }

    .bl-3-contato p {
        padding: 0;
        text-align: start;
        font-size: 32px;
    }

    .formulario {
        font-size: 24px;
    }

    form {
        width: 100%;
    }

    form input,
    form textarea {
        padding: 15px 25px;
        font-size: 18px;
        border-radius: 12px;
    }

    form .button button {
        padding: 10px 60px;
        font-size: 20px;
        border-radius: 12px;
    }

    .redes-sociais img {
        height: 40px;
    }

    .bl-2-contato .detalhes:hover {
        transform: scale(1.2) rotate(5deg);
    }
}
