﻿/* Responsive overrides (mÃ­nimo para testar) */
@media (max-width: 991px) {
  html, body { overflow-x: hidden !important; }
  .horizontal-scroll-section { display:block !important; width:100% !important; height:auto !important; transform:none !important; }
  .panel { height:auto !important; min-height:0vh !important; position:relative !important; overflow:visible !important; }
  .panel-hero-logo { width:160px; left:16px; bottom:24px; }
  .panel-hero-title { font-size:2.4rem; }
}

@media (max-width: 768px) {
  .oqf-grid { grid-template-columns: 1fr; }
}

/* === Pacote 2 (ver acima) === */
@media (min-width: 1200px){ 
  .oqf-grid { grid-template-columns: repeat(3, 1fr); } 
}

@media (max-width: 991px){ 
  .oqf-grid { grid-template-columns: repeat(2, 1fr); } 
}

@media (max-width: 768px){ 
  .oqf-grid { grid-template-columns: 1fr; } 
}

/*.oqf-card-container { 
  width: min(240px, 45vw); 
  height: auto; 
  aspect-ratio: 1 / 1; 
}*/

:root{
  --step-3: clamp(1.8rem, 1.1rem + 2.2vw, 3rem); 
  --step-4: clamp(2.2rem, 1.2rem + 3vw, 3.6rem); 
}

.diferenciais-title, .contato-title { 
  font-size: var(--step-4); 
}

img, video { 
  max-width: 100%; height: auto; 
}

.menu-trigger, .menu-close { 
  width: 56px; height: 56px; 
}

body { 
  overflow-x: hidden; 
}

/* === Fix Pack A === */
@media (max-width: 991px){
  .panel-content-white, .panel-image-parallax-container, .panel-content-orange { width: 100%; box-sizing: border-box; height: auto; padding: 2rem 1rem; }
  .vertical-section-diferenciais, .diferenciais-container { height: auto !important; }
  .diferenciais-section { position: static !important; height: auto !important; transform: none !important; }
  .diferenciais-text { max-width: 90vw !important; font-size: 1.2rem; }
  .minimizando-title, .riscos-title { font-size: clamp(3.8rem, 8vw, 4.4rem); letter-spacing: -2px; }
  /* Minimizando Riscos: reduzir afastamentos no mobile */
  .minimizando-riscos-container { padding: 2.5rem 1rem; margin-top: 1rem; }
  .minimizando-wrapper { width: 100%; padding-right: 5%; }
  .sobre-primary-text { font-size: clamp(1.4rem, 1rem + 1.6vw, 1.9rem); line-height: 1.3; text-align: left; margin-bottom: 0.75rem; }
  .sobre-secondary-text { font-size: clamp(1.05rem, 0.9rem + 1vw, 1.35rem); line-height: 1.35; text-align: left; padding-right: 0; }
  /* O Que Fazemos: padronizar textos como em 'Sobre' (mobile) */
  #o-que-fazemos .oqf-primary-text { font-size: clamp(1.4rem, 1rem + 1.6vw, 1.9rem); line-height: 1.3; text-align: left; margin-bottom: 0.75rem; }
  #o-que-fazemos .oqf-secondary-text { font-size: clamp(1.05rem, 0.9rem + 1vw, 1.35rem); line-height: 1.35; text-align: left; padding-right: 0; }
  /* O Que Fazemos: ampliar largura Ãºtil como em 'Sobre' */
  #o-que-fazemos .oqf-content { max-width: 100%; padding: 1rem 1rem; margin: 0 auto; align-self: stretch; }
  /* O Que Fazemos: ajustar legibilidade dos cards no mobile */
  #o-que-fazemos .oqf-question { font-size: clamp(1.1rem, 0.95rem + 1vw, 1.35rem); line-height: 1.3; }
  /* Ajuste: manter a face de trÃ¡s preenchendo o card sem sobrepor a frente */
  #o-que-fazemos .oqf-card-back { position: relative; inset: auto; height: 100%; min-height: 100%; width: 100%; box-sizing: border-box; display: flex; flex-direction: column; }
  #o-que-fazemos .oqf-card-face { height: 100%; }
  /* Neutraliza padding genérico 480px que encurta a face no mobile */
  #o-que-fazemos .oqf-card-face { padding: 12px !important; }
  #o-que-fazemos .oqf-card-back { padding: 16px 16px calc(16px + 2.6rem + 8px) 16px !important; }
  #o-que-fazemos .oqf-card-back .oqf-answer { font-size: clamp(0.95rem, 0.85rem + 0.8vw, 1.15rem); line-height: 1.4; }
  #o-que-fazemos .oqf-back-title { font-size: clamp(1.25rem, 1rem + 1vw, 1.6rem); }
  /* O Que Fazemos: cards com dimensão fixa no mobile */
  #o-que-fazemos .oqf-card-container,
  #o-que-fazemos .oqf-card { width: 300px !important; height: 250px !important; }
  #o-que-fazemos .oqf-grid { justify-items: center; }
  /* Sobre: ampliar largura Ãºtil do texto e reduzir padding no mobile */
  .sobre-content { max-width: 100%; padding: 1rem 1rem; margin: 0 auto; align-self: stretch; }
  /* Sobre: remover afastamento vertical apenas no mobile */
  .sobre-section { padding: 0 !important; }
  /* Hero: garantir enquadramento do background no mobile/tablet */
  .panel-hero { overflow: hidden !important; }
  .panel.panel-hero { min-height: 100vh !important; }
  /* Hero image: ampliar ~80% e alinhar ao topo, deixando fundo visÃ­vel abaixo */
  .panel-hero-background-image { top: 0 !important; left: -40% !important; width: 180% !important; height: auto !important; object-fit: unset !important; }
  /* Panel 4: garantir que o conteÃºdo permaneÃ§a contido visualmente */
  .panel.panel-content-orange { overflow: hidden; }
  /* Panel 3: dar Ã¡rea para o parallax no mobile */
  .panel.panel-image-parallax-container { min-height: 50vh !important; }
  .panel-image-parallax-image { will-change: transform; }
  /* Panel 2 (Lottie): centralizaÃ§Ã£o e responsividade no mobile */
  .panel-02-logo {
    width: min(320px, 80vw);
    height: auto !important;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 1rem auto 0;
    padding-bottom: 0;
  }
  .panel-02-logo svg,
  .panel-02-logo canvas {
    width: 100% !important;
    height: auto !important;
    display: block;
  }
  /* Diferenciais: tornar slides estáticos até 991px (sem pin) */
  .vertical-section-diferenciais,
  .diferenciais-container { height: auto !important; min-height: unset !important; max-height: unset !important; }
  .diferenciais-section { position: static !important; width: 100vw !important; height: auto !important; transform: none !important; opacity: 1 !important; margin-bottom: 3rem; overflow: visible !important; }
  /* Minimizando Riscos: separar os grupos em fluxo vertical (mobile) */
  .image-text-slider-section { padding: 0.75rem 0; }
  .image-text-slider-section .its-container { flex-direction: column; align-items: stretch; gap: 0.25rem; }
  .its-image-frame { flex: none; max-width: 100%; width: 92vw; margin: 0 auto; aspect-ratio: 4/3; }
  .its-content-slider { position: static; left: auto; bottom: auto; transform: none; width: 92vw; max-width: 92vw; margin: 0.25rem auto 0; padding: 12px 14px; border-radius: 12px; z-index: auto; min-height: 0 !important; height: auto !important; }
  .its-slider-navigation { position: static; padding-left: 16px; padding-right: 16px; }
  /* MantÃ©m apenas o slide ativo no fluxo; os demais continuam absolutos (nÃ£o ocupam altura) */
  .its-slide { position: absolute; padding: 16px; }
  .its-slide.active { position: relative; }
  .its-slide-text { font-size: 1.05rem; line-height: 1.4; }
  /* Reduz espaÃ§amento apÃ³s o tÃ­tulo "Riscos" para aproximar do slider */
  .riscos-title { margin-bottom: 1rem; }
  /* Sobre: empilhar logo e tÃ­tulo (antes lado a lado no desktop) */
  .sobre-header-elements { flex-direction: column; }
  .sobre-left-column, .sobre-right-column { width: 100%; padding: 32px 0 0 0; }
  .sobre-right-column { border-left: none; border-top: 1px solid #99b381; margin-top: 2rem; }

  /* Diferenciais: empilhar logo e título (mobile) */
  .diferenciais-header-elements { flex-direction: column; }
  .diferenciais-left-column, .diferenciais-right-column { width: 100%; padding: 32px 0 0 0; border-right: none; }
  .diferenciais-right-column { border-left: none; border-top: 1px solid #ffffff; margin-top: 2rem; }
  .diferenciais-logo-container { margin: 0 auto; display: flex; justify-content: center; }
  .diferenciais-title { padding: 0 16px; text-align: left; font-size: clamp(3.5rem, 6vw, 3.5rem); letter-spacing: -.02rem; }
  .diferenciais-title { padding: 0 16px; text-align: left; font-size: clamp(3.5rem, 6vw, 3.5rem); letter-spacing: -.02rem; }
  /* Força tamanho do título mesmo contra @media menores em CSS base */
  #diferenciais-topo h2.diferenciais-title { font-size: clamp(3.5rem, 6vw, 3.5rem); }
  /* Diferenciais: padronizar textos como nas outras seções (mobile) */
  .diferenciais-content { max-width: 100%; padding: 1rem 1rem 0; margin: 0 auto; text-align: left; }
  .diferenciais-primary-text { font-size: clamp(1.4rem, 1rem + 1.6vw, 1.9rem); line-height: 1.3; margin-bottom: 0.75rem; }
  .diferenciais-secondary-text { font-size: clamp(1.05rem, 0.9rem + 1vw, 1.35rem); line-height: 1.35; }
  .sobre-logo { height: clamp(100px, 22vw, 120px); }
  .sobre-title { padding: 0 16px; text-align: left; font-size: clamp(3.5rem, 6vw, 3.5rem); letter-spacing: -.02rem; }
}

/* O Que Fazemos: empilhar logo e tÃ­tulo (mobile) */
@media (max-width: 991px){
  .oqf-header-elements { flex-direction: column; }
  .oqf-left-column, .oqf-right-column { width: 100%; padding: 32px 0 0 0; }
  .oqf-right-column { border-left: none; border-top: 1px solid #99b381; margin-top: 2rem; }
  .oqf-logo-container { margin: 0 auto; display: flex; justify-content: center; }
  .oqf-title { padding: 0 16px; text-align: left; font-size: clamp(3.5rem, 6vw, 3.5rem); letter-spacing: -.02rem; }
  /* ForÃ§a o tamanho correto mesmo contra regras com #id no CSS base */
  #o-que-fazemos h2.oqf-title { padding: 0 16px; text-align: left; font-size: clamp(3.5rem, 6vw, 3.5rem); letter-spacing: -.02rem; }
}

.menu-close-trigger { 
  width: 56px; height: 56px; 
}

@media (max-width: 767px){ 
  .footer-desc { max-width: 90vw; } 
}

/* Footer (mobile): reorder, enlarge logo, center privacy link */
@media (max-width: 991px) {
  /* Stack top row and place the button above the icons */
  .footer-top { flex-direction: column; align-items: stretch !important; padding-left: 0; padding-right: 0; }
  .footer-top-btn { order: 1; align-self: center; margin: 0.5rem auto 0; }
  .footer-divider-top { order: 2; margin: 0.6rem 0; }
  .footer-social { order: 3; justify-content: center; }

  /* Enlarge footer logo ~180% on mobile/tablet */
  .footer-logo { width: min(270px, 80vw); max-width: 80vw; }

  /* Center the privacy link in the viewport */
  .footer-bottom-row { text-align: center; }
  .footer-privacy-link { align-self: center; margin-left: 0; }
}

/* Fine-tune smallest screens */
@media (max-width: 767px) {
  .footer-logo { width: min(198px, 80vw); }
}

/* Hero: tÃ­tulo somente no mobile (â‰¤767px) */
@media (max-width: 767px) {
  .panel-hero-title { font-size: clamp(3.2rem, 1.2rem + 3vw, 3.6rem); }
  /* Hero: alinhar tÃ­tulo Ã  esquerda no mobile */
  .panel-hero-content-wrapper { align-items: flex-start; padding: 240px 16px 72px; }
  .hero-heading-wrapper { justify-content: flex-start; right: auto; left: 0; }
  .panel-hero-title { text-align: left; max-width: 100%; }
  /* Hero: subtexto mais largo e alinhado ao tÃ­tulo (mobile) */
  .hero-subtext-wrapper { justify-content: flex-start; right: auto; margin-bottom: 0.72rem; }
  .panel-hero-secondary-text { max-width: 92vw; text-align: left; font-size: 1.35rem; line-height: 1.15; }
  /* Reposiciona a imagem para favorecer leitura (mostrar mais a parte inferior) */
  .panel-hero-background-image {
    object-position: 35% 75% !important;
    left: 50% !important;
    top: 0 !important;
    width: 100% !important;
    height: auto !important;
    transform-origin: top center;
    transform: translateX(-23%) scale(3.2);
  }
}
/* Panel 4: tÃ­tulo responsivo e espaÃ§amento do texto (mobile) */
@media (max-width: 767px) {
  .panel-content-orange-text-container h2.panel-content-orange-title {
    font-size: clamp(3.5rem, 7vw, 4.5rem);
    line-height: 1.05;
    margin-top: 2rem;
    padding-right: 0.5rem;
    overflow-wrap: break-word;
    word-break: break-word;
    hyphens: auto;
    text-align: left;
  }
}
@media (max-width: 991px) and (orientation: portrait) {
  .panel-hero-logo { top: 35px; bottom: auto; left: 16px; }
}

/* Hero: leve overlay de gradiente no mobile para melhorar legibilidade */
@media (max-width: 767px) {
  .panel-hero-background-image-wrap::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(0,0,0,0) 35%, rgba(28, 37, 24, 0.80) 60%);
    pointer-events: none;
  }
}

/* Sobre: ajustes extras para telas muito pequenas */
@media (max-width: 767px) {
  .sobre-content { max-width: 92vw; padding: 0.75rem 1rem; }
  /* O Que Fazemos: largura para telas muito pequenas */
  #o-que-fazemos .oqf-content { max-width: 92vw; padding: 0.75rem 1rem; }
}

/* O Que Fazemos (mobile): padding nos elementos internos, não no container */
@media (max-width: 991px) {
  #o-que-fazemos .oqf-card-face { padding: 1.5 !important; height: 100%; }
  #o-que-fazemos .oqf-card-back { padding: 0 !important; height: 100%; min-height: 100%; width: 100%; box-sizing: border-box; display: flex; flex-direction: column; }
  #o-que-fazemos .oqf-card-back .oqf-answer { padding: 12px 12px 8px !important; }
  #o-que-fazemos .oqf-back-title { margin-top: auto; padding: 8px 12px 12px !important; }
}


/* O Que Fazemos (mobile): ajustes finais de empilhamento/altura do verso */
@media (max-width: 991px) {
  #o-que-fazemos .oqf-back-title { position: static !important; }
  /* Não forçar position absolute no verso para não quebrar o flip */
}

