html {
  font-size: 16px;
}

@media (max-width: 768px) {
  html {
    font-size: 14px;
  }
}

@media (max-width: 480px) {
  html {
    font-size: 12px;
  }
}

@media (max-width: 900px) {
  #navegacao {
    display: none;
  }
}

@media (min-width: 901px) {
  #navegacaoMobile {
    display: none;
  }
}

/* Header*/
#nav {
  padding: 0.8rem 2rem;
}

@media (max-width: 900px) {
  #Logo-div {
    padding-left: 3.4rem;
  }

  #Logo-div {
    width: 10.5rem;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 0.7rem;
  }
}

@media (max-width: 600px) {
  .logo img {
    height: 40px;
    max-height: 80px;
  }
}

/* -------------------------- */
/* Personalize */
/* -------------------------- */

@media (max-width: 1500px) {
  #personalize .image-content img {
    bottom: -9.5rem;
  }
}

@media (max-width: 1100px) {
  #personalize {
    padding: 40px 30px;
    min-height: 640px;
  }

  #personalize .container {
    width: 100%;
    max-width: 1100px;
  }

  #personalize .image-content img {
    width: 520px;
    left: -4%;
    bottom: -7.2rem;
  }

  #personalize .text-content {
    padding-top: 44px;
  }
}

@media (max-width: 820px) {
  /* layout em coluna: texto em cima, imagem abaixo (não cortada) */
  #personalize {
    padding-top: 4rem;
    min-height: auto;
  }

  #personalize .container {
    flex-direction: column;
    align-items: center;
    gap: 0px;
  }

  #personalize .image-content {
    order: 2;
    flex: none;
    width: 100%;
    height: auto;
    display: flex;
    align-items: center;
    left: 3.7rem;
    justify-content: center;
  }

  #personalize .image-content img {
    position: relative;
    left: 0;
    bottom: -3rem;
    width: 68%;
    max-width: 480px;
    margin: 0;
  }

  #personalize .text-content {
    order: 1;
    width: 70%;
    padding: 10px 6px 20px 6px;
    text-align: center;
    align-items: center;
  }

  #personalize .text-content p {
    max-width: 100%;
  }

  #personalize .text-content h2 {
    font-size: 2rem;
  }
}

@media (max-width: 610px) {
  #personalize .image-content img {
    position: relative;
    left: 0;
    bottom: -4rem;
    width: 100%;
    max-width: 480px;
    margin: 0;
  }

  #personalize .text-content {
    order: 1;
    width: 70%;
    padding: 0;
    text-align: center;
    align-items: center;
  }

  #personalize .text-content p {
    max-width: 100%;
  }

  #personalize .text-content h2 {
    font-size: 2rem;
  }
}

@media (max-width: 400px) {
  #personalize .image-content {
    left: 3rem;
  }

  #personalize .image-content img {
    position: relative;
    left: 0;
    bottom: -3.2rem;
    width: 100%;
    max-width: 480px;
    margin: 0;
  }

  #personalize .text-content {
    order: 1;
    width: 70%;
    padding: 0;
    text-align: center;
    align-items: center;
  }

  #personalize .text-content p {
    max-width: 100%;
  }

  #personalize .text-content h2 {
    font-size: 2rem;
  }
}

@media (max-width: 340px) {
  #personalize .image-content {
    left: 2.6rem;
  }

  #personalize .image-content img {
    position: relative;
    left: 0;
    bottom: -3.8rem;
    width: 100%;
    max-width: 480px;
    margin: 0;
  }

  #personalize .text-content {
    order: 1;
    width: 80%;
    padding: 0;
    text-align: center;
    align-items: center;
  }

  #personalize .text-content p {
    max-width: 100%;
  }

  #personalize .text-content h2 {
    font-size: 2rem;
  }
}

/* -------------------------- */
/* Footer */
/* -------------------------- */

@media (max-width: 980px) {
  #contato {
    padding: 0 3rem;
  }

  .footer-geral {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 28px;
    padding: 0;
  }

  .footer-texto {
    max-width: 720px;
  }

  .footer-form {
    width: 100%;
    max-width: 420px;
  }

  .footer-divider {
    width: 60%;
    margin-top: 30px;
  }

  .rodape {
    padding-top: 6px;
    gap: 12px;
  }

  .nomeLogo {
    justify-content: center;
  }

  .icones-rodape {
    justify-content: center;
  }
}

@media (max-width: 520px) {
  .contact-form .two-cols {
    grid-template-columns: 1fr;
  }

  .footer-title {
    font-size: clamp(26px, 9vw, 40px);
  }

  .footer-desc {
    font-size: 14px;
  }

  .footer-divider {
    width: 72%;
  }
}

/* -------------------------- */
/* home */
/* -------------------------- */

/* Até 1200px - Ajuste para telas grandes menores */
@media (max-width: 2000px) {
  .geralhome {
    margin-top: 7rem;
  }
}

@media (max-width: 1600px) {
  .geralhome {
    margin-top: 3rem;
    padding-top: 3rem;
  }
}

@media (max-width: 1440px) {
  .geralhome {
    margin-bottom: 3rem;
    margin-top: 3rem;
  }

  .suaMarca {
    font-size: 3rem;
  }

  .textoHome {
    width: 50%;
    margin-bottom: 1rem;
  }
}

@media (max-width: 1300px) {
  #home {
    height: 100vh;
    padding-right: 0.2rem;
    padding-left: 1.5rem;

    background-image: url(../img/Fundo\ home\ Mobile.png);
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
  }

  .geralhome {
    margin-bottom: 3rem;
    margin-top: 3rem;
  }

  .textoHome {
    width: 50%;
    margin-bottom: 1rem;
  }

  .suaMarca {
    font-size: 3rem;
  }

  .tituloCamisa {
    font-size: 2.6rem;
  }

  .imgCamisaHome img {
    max-width: 700px;
  }

  .divImgcamisa {
    margin-bottom: 6.5rem;
  }

  .btn-home-home {
    gap: 0.75rem;
    padding: 0.6rem 2.3rem;
    font-size: 1.1rem;
  }

  .btn-home-home1 {
    gap: 0.75rem;
    padding: 0.6rem 2.3rem;
    font-size: 1.1rem;
  }
}

/* Até 992px - Tablets em landscape */
@media (max-width: 992px) {
  #home {
    flex-direction: column;
    padding: 3rem 2rem;
    height: auto;
    text-align: center;
  }

  .geralhome {
    flex-direction: column;
    margin-top: 2rem;
    gap: 2.5rem;
  }

  .textoHome {
    width: 75%;
    margin-bottom: 2rem;
    align-items: center;
    text-align: center;
  }

  .suaMarca {
    font-size: 2.8rem;
  }

  .Maisdoque {
    width: 100%;
    font-size: 1.2rem;
  }

  .beneficios {
    grid-template-columns: repeat(2, 1fr);
    font-size: 1.2rem;
    text-align: center;
  }

  .btn-home {
    justify-content: center;
  }

  .divImgcamisa {
    width: 100%;
  }

  .imgCamisaHome img {
    max-width: 600px;
  }

  .tituloCamisa {
    font-size: 2.4rem;
    text-align: center;
    margin-bottom: 1rem;
  }
}

/* Até 768px - Tablets em portrait */
@media (max-width: 768px) {
  #home {
    padding: 6rem 1.5rem 2.5rem;
  }

  .suaMarca {
    font-size: 3rem;
  }

  .geralhome {
    margin-bottom: 0rem;
  }

  .Maisdoque {
    font-size: 1.2rem;
  }

  .btn-home-home,
  .btn-home-home1 {
    font-size: 1rem;
    padding: 0.7rem 2rem;
  }

  .imgCamisaHome img {
    max-width: 500px;
  }
}

/* Até 576px - Celulares grandes */
@media (max-width: 576px) {
  #home {
    padding: 6rem 1rem 2rem;
  }

  .suaMarca {
    font-size: 3.3rem;
  }

  .Maisdoque {
    font-size: 0.95rem;
  }

  .beneficios {
    grid-template-columns: 1fr;
    font-size: 0.95rem;
    gap: 0.5rem;
  }

  .tituloCamisa {
    font-size: 1.8rem;
  }

  .imgCamisaHome img {
    max-width: 100%;
  }

  .btn-home {
    flex-direction: column;
    gap: 0.8rem;
  }

  .btn-home-home,
  .btn-home-home1 {
    width: 100%;
  }
}

/* Até 400px - Celulares menores */
@media (max-width: 400px) {
  #home {
    padding: 6.5rem 1rem 2rem;
  }

  .suaMarca {
    font-size: 2.8rem;
  }

  .Maisdoque {
    font-size: 0.9rem;
  }

  .beneficios {
    font-size: 0.85rem;
  }

  .tituloCamisa {
    font-size: 1.5rem;
  }
}

@media (max-width: 350px) {
  .suaMarca {
    font-size: 2.4rem;
  }
}

/* =================================================================== */
/* ============= Dialog ============= */
/* =================================================================== */

/* === TABLETS (<= 900px) === */
/* Ajusta para 2 itens por página e melhora a usabilidade em toque. */
@media (max-width: 900px) {
  .modal-carrossel {
    /* Aumenta a largura do modal para aproveitar melhor a tela */
    width: 90%;
    padding: 2rem; /* Adiciona um respiro interno */
  }

  .modal-header h2 {
    font-size: 2rem;
  }

  .carrossel-track {
    gap: 20px; /* Mantém um bom espaçamento */
  }

  .carrossel-item {
    /* Lógica correta e robusta para 2 itens por tela */
    flex-basis: calc(50% - 10px);
    flex-shrink: 0;
  }

  .item-nome {
    font-size: 1.1rem;
  }

  /* Em telas de toque, as setas são menos necessárias. Priorizamos o swipe. */
}

/* === CELULARES (<= 600px) === */
/* Layout de tela cheia, 100% flexível, sem overflow e sem "vazamentos". */
/* === CELULARES (<= 600px) === */
/* Layout de tela cheia, com descrição do produto e respiro lateral. */
@media (max-width: 600px) {

  body.modal-aberto {
      overflow: hidden;
  }

  /* O 'MOLDE' PRINCIPAL */
  .modal-carrossel[open] {
      width: 100%;
      position: fixed;
      inset: 0;
      margin: 0;
      padding: 0;
      border-radius: 0;
      background-color: transparent;
      box-sizing: border-box;
      height: 100dvh; /* FIX 1: Trava a altura na maior tela possível */
      overflow: hidden; /* Impede o modal INTEIRO de rolar */
      display: flex;
      flex-direction: column;
  }
  
  /* CABEÇALHO E RODAPÉ (NÃO ENCOLHEM) */
  .modal-header,
  .container-botao-global,
  .carrossel-paginacao {
      flex-shrink: 0;
      padding-left: 1rem;
      padding-right: 1rem;
  }
  .modal-header {
      padding-top: 1.5rem;
      padding-bottom: 1rem;
      text-align: center;
  }
  .modal-fechar {
      position: fixed;
      top: 1rem;
      right: 1rem;
      z-index: 999;
  }
  .container-botao-global {
      padding-top: 1.5rem;
  }
  .carrossel-paginacao {
      padding-top: 1.5rem;
      padding-bottom: 2rem;
  }

  /* A ÁREA CENTRAL (ÚNICA PARTE QUE PODE ROLAR) */
  .carrossel-container {
      flex-grow: 1; /* FIX 2: Ocupa todo o espaço que sobra */
      overflow-y: auto; /* FIX 3: Adiciona scroll SÓ AQUI se o conteúdo for muito alto */
      min-height: 0;
      display: flex;
      align-items: center;

      padding-left: 2rem;
      flex-shrink: 0;
  }

  /* LAYOUT INTERNO DO CARROSSEL (1 IMAGEM POR VEZ) */
  .carrossel-wrapper {
      width: 100%;
      overflow-x: auto;
      scroll-snap-type: x mandatory;
      -ms-overflow-style: none;
      scrollbar-width: none;


  }
  .carrossel-wrapper::-webkit-scrollbar { display: none; }
  .carrossel-track { display: flex; }
  
  .carrossel-item {
      flex: 0 0 100%;
      scroll-snap-align: start;
      padding: 0 20px;
      box-sizing: border-box;
      display: flex;
      justify-content: center;
      align-items: center;
      flex-direction: column;
      flex-shrink: 0;
  }
  .card-content {
      width: 100%;
      background-color: #ffffff;
      border-radius: 16px;
      box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
      overflow: hidden;
      display: flex;
      flex-direction: column;
      align-items: center;
      padding: 1.5rem 1rem;
  }

  .item-imagem img {
    aspect-ratio: 30/36; /* Proporção mais widescreen e moderna */
    object-fit: contain;
  }

  /* Botões de navegação mais elegantes e sobrepostos */
  .carrossel-btn {
    top: 50%;
    transform: translateY(-50%) scale(0.9); /* Um pouco menor para mobile */
    background-color: rgba(255, 255, 255, 0.9); /* Leve transparência */
    backdrop-filter: blur(4px); /* Efeito de vidro fosco */
  }

  .carrossel-btn.prev {
    left: 8px; /* Mais próximo da borda, mas dentro do respiro */
  }
  .carrossel-btn.next {
    right: 8px; /* Mais próximo da borda, mas dentro do respiro */
  }


  /* Paginação mais próxima e integrada */
  .carrossel-paginacao {
    margin: 0; /* Removemos a margem de cima */
    padding-bottom: 8rem; /* Adiciona um respiro na parte de baixo */
    flex-shrink: 0;
  }
}

/* -------------------------- */
/* catalogo */
/* -------------------------- */
@media (min-width: 1390px) {
  .grid-produtos {
    max-width: 1000px;
    /* controla até onde a grade cresce */
  }
}

@media (max-width: 1406px) {
  .card-imagem {
    height: 300px;
    background-color: #f0f0f0;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
  }

  .card-imagem img {
    width: 100%;
    height: 100%;
    object-fit: cover;

    display: block;
  }
}

@media (max-width: 1208px) {
  .card-imagem {
    height: 250px;
    background-color: #f0f0f0;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
  }

  .card-imagem img {
    width: 100%;
    height: 100%;
    object-fit: cover;

    display: block;
  }
}
@media (max-width: 1074px) {
  .card-imagem {
    height: 350px;
    background-color: #f0f0f0;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
  }

  .card-imagem img {
    width: 100%;
    height: 100%;
    object-fit: cover;

    display: block;
  }
}
@media (max-width: 850px) {
  .card-imagem {
    height: 250px;
    background-color: #f0f0f0;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
  }

  .card-imagem img {
    width: 100%;
    height: 100%;
    object-fit: cover;

    display: block;
  }
}

/* Media query para telas menores */
@media (max-width: 768px) {
  .grid-produtos {
    grid-template-columns: 1fr 1fr;
    /* duas colunas no tablet */
    max-width: 600px;
    /* largura máxima */
  }
  .produto-titulo {
    font-size: 1.3rem;
  }
}

@media (max-width: 480px) {
  .grid-produtos {
    grid-template-columns: 1fr;
    /* uma coluna no celular */
    max-width: 350px;
  }
  .produto-titulo {
    font-size: 2rem;
  }
}

/* ======================================================== */
/*       SEÇÃO SOBRE NÓS RESPONSIVO (BASEADO NO NOVO CSS)    */
/* ======================================================== */

/* ----- Telas de Desktop Largas (até 1440px) ----- */
@media (max-width: 1440px) {
  #sobre-nos .cards {
    flex-wrap: wrap;
    gap: 2rem;
    max-width: 1300px;
  }
}

/* ----- Telas Médias (Tablets - até 992px) ----- */
@media (max-width: 992px) {
  #sobre-nos .sobre-nos-intro {
    flex-direction: column;
    gap: 1.5rem;
    max-width: 90%;
  }

  .nossaMissao {
    margin-bottom: 2rem;
  }

  /* Empilha os cards de Missão, Visão e Valores */
  #sobre-nos .cards {
    flex-direction: column;
    align-items: center;
    width: 100%;
    max-width: 90%; /* Controla a largura da coluna de cards */
  }

  /* Garante que os cards ocupem um bom espaço quando empilhados */
  #sobre-nos .card {
    max-width: 550px;
    width: 100%;
  }
}

/* ----- Telas de Tablet Menor/Celular Grande (até 768px) ----- */
@media (max-width: 768px) {
  /* Diminui o espaçamento lateral da seção */
  #sobre-nos {
    padding: 2.5rem 5%;
  }

  /* Ajusta o tamanho do título principal */
  #sobre-nos .sobreNos-titulo {
    font-size: 2.4rem;
  }

  /* Ajusta o parágrafo da introdução */
  #sobre-nos .sobre-nos-intro p {
    font-size: 1.1rem;
  }

  /* Ajusta as fontes dentro dos cards */
  #sobre-nos .card h3 {
    font-size: 1.3rem;
  }
  #sobre-nos .card p,
  #sobre-nos .card li {
    font-size: 1.1rem;
  }

  #sobre-nos .img-logo {
    max-width: 300px;
  }
}

/* ----- Telas Pequenas (Celulares - até 480px) ----- */
@media (max-width: 480px) {
  #sobre-nos .sobreNos-titulo {
    font-size: 2rem; /* Título ainda menor */
  }

  /* Diminui o tamanho da logo para não dominar a tela */
  #sobre-nos .img-logo {
    display: inline-block;
    width: auto;
    height: auto;
  }
  #sobre-nos .img-logo img {
    display: block; /* evita espaçamento estranho */
    max-width: 100%;
    height: auto;
  }

  #sobre-nos .sobre-nos-intro p {
    font-size: 1rem;
  }

  /* Diminui o padding dos cards para caber mais texto */
  #sobre-nos .card {
    padding: 2rem 1.5rem;
  }

  /* Diminui o botão para não ficar desproporcional */
  #sobre-nos .btn-sobrenos {
    padding: 0.8rem 2.5rem;
    font-size: 1rem;
  }
}
