/* ================================================================
   melhorias.css — Qualymesa
   ✦ Header glassmorphism gradiente fogo
   ✦ Link ativo por página
   ✦ Seção "A Qualymesa" — layout organizado
   ✦ Transição gradiente suave para o jogo
   ✦ Jogo — melhorias visuais
   ================================================================ */

@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;600;700&display=swap');

:root {
  --qm-red:      #c22400;
  --qm-orange:   #e06900;
  --qm-amber:    #ecb902;
  --qm-muted:    #5a5a5a;
  --ease-out:    cubic-bezier(0.16, 1, 0.3, 1);
  --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
}

body {
  font-family: 'Montserrat', sans-serif !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}
html { overflow-x: hidden; }
h1, h2, h3, h4 {
  font-family: 'Montserrat', sans-serif !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em !important;
}

/* ── HEADER ── */
header#header, header { background: transparent !important; border-bottom: none !important; box-shadow: none !important; padding: 0 !important; }
.navbar {
  background: linear-gradient(270deg, rgba(255, 255, 255, 0.62), rgba(240, 160, 31, 0.68), rgba(255, 255, 255, 0.72)) !important;
  backdrop-filter: blur(24px) saturate(1.8) !important;
  -webkit-backdrop-filter: blur(24px) saturate(1.8) !important;
  border-bottom: 1px solid rgba(255,255,255,0.22) !important;
  box-shadow: 0 2px 20px rgba(194,36,0,0.12), inset 0 1px 0 rgba(255,255,255,0.28) !important;
  padding: 0 5% !important; height: 58px !important; align-items: center !important; display: flex !important;
}
.nav-left a, .nav-right a {
  font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; font-size: 0.90rem !important;
  color: rgba(255,255,255,0.82) !important; text-decoration: none; padding: 5px 13px;
  border-radius: 999px; transition: all 0.2s var(--ease-out) !important; position: relative;
}
.nav-left a:hover, .nav-right a:hover { color: #fff !important; background: rgba(255,255,255,0.18) !important; }
.nav-left a.pagina-ativa, .nav-right a.pagina-ativa {
  color: #fff !important; font-weight: 700 !important;
  background: rgba(255,255,255,0.22) !important; box-shadow: inset 0 0 0 1.5px rgba(255,255,255,0.30) !important;
  border-bottom: none !important; text-decoration: none !important;
}
.nav-left a.pagina-ativa::after, .nav-right a.pagina-ativa::after { display: none !important; content: none !important; }
.nav-right a svg { color: rgba(255,255,255,0.82); transition: color 0.2s; }
.nav-right a:hover svg, .nav-right a.pagina-ativa svg { color: #fff; }
.logo-sobreposta img { filter: drop-shadow(0 4px 14px rgba(0,0,0,0.15)); transition: transform 0.35s var(--ease-spring); }
.logo-sobreposta:hover img { transform: scale(1.04); }
.logo-mobile img { filter: drop-shadow(0 2px 8px rgba(0,0,0,0.15)); }
.hamburger { color: rgba(255,255,255,0.90) !important; }

@media (max-width: 1120px) {
  .nav-menu {
    justify-content: space-between !important;
    gap: 1.5rem !important;
  }
  .nav-left, .nav-right {
    gap: clamp(1rem, 2.5vw, 2rem) !important;
  }
  .nav-left { margin-right: 0 !important; }
  .nav-right { margin-left: 0 !important; }
  .logo-sobreposta {
    top: -18px !important;
  }
  .logo-sobreposta img {
    height: clamp(110px, 12vw, 145px) !important;
  }
}

@media (max-width: 768px) {
  header#header,
  header {
    background: transparent !important;
    box-shadow: none !important;
    border: none !important;
  }
  .navbar {
    background: transparent !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    border-bottom: none !important;
    box-shadow: none !important;
    justify-content: space-between !important;
    flex-wrap: nowrap !important;
    min-height: auto !important;
    height: auto !important;
    padding: 12px 5% 0 !important;
  }
  .logo-mobile {
    display: block !important;
    flex: 0 0 auto !important;
  }
  .hamburger {
    display: block !important;
    margin-left: auto !important;
    flex: 0 0 auto !important;
    z-index: 1001 !important;
  }
  .nav-menu {
    display: none !important;
    flex-direction: column;
    background: linear-gradient(160deg, rgba(194,36,0,0.92), rgba(224,105,0,0.92)) !important;
    backdrop-filter: blur(20px) !important; -webkit-backdrop-filter: blur(20px) !important;
    border-top: 1px solid rgba(255,255,255,0.14) !important; box-shadow: 0 8px 28px rgba(0,0,0,0.16) !important;
    width: 100% !important;
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
  }
  .nav-menu.active {
    display: flex !important;
  }
  .nav-left a, .nav-right a { border-bottom: 1px solid rgba(255,255,255,0.09) !important; border-radius: 0 !important; padding: 12px 22px !important; color: rgba(255,255,255,0.82) !important; }
  .nav-left a.pagina-ativa, .nav-right a.pagina-ativa { background: rgba(255,255,255,0.12) !important; border-left: 3px solid rgba(255,255,255,0.80) !important; padding-left: 19px !important; }
  .nav-left a.pagina-ativa::after, .nav-right a.pagina-ativa::after { display: none; }
}

/* ── SEÇÃO A QUALYMESA ── */
.section-qualymesa { padding-bottom: 4.5rem !important; }
.section-qualymesa h2 { font-family: 'Montserrat', sans-serif !important; text-align: center !important; font-size: clamp(1.8rem,3vw,2.2rem) !important; color: var(--qm-orange) !important; margin-bottom: 3rem !important; margin-top: 0 !important; }
.section-qualymesa .content { display: flex !important; flex-wrap: wrap !important; align-items: flex-start !important; gap: 3rem !important; max-width: 1000px !important; margin: 0 auto !important; }
.imagem-sobre-wrap { isolation: isolate; display: inline-block; flex-shrink: 0; }
.section-qualymesa .content img,
.section-qualymesa .content .imagem-sobre {
  width: 420px !important; max-width: 100% !important; border-radius: 0 !important; box-shadow: none !important; display: block;
  mix-blend-mode: multiply !important;
  filter: drop-shadow(-9px 0px 0px var(--qm-orange)) drop-shadow(-9px 1px 0px var(--qm-orange)) drop-shadow(-9px -1px 0px var(--qm-orange)) !important;
}
.section-qualymesa .text { flex: 1 !important; font-family: 'Montserrat', sans-serif !important; font-size: 1rem !important; line-height: 1.8 !important; color: var(--qm-muted) !important; padding-top: 0.25rem; }
.section-qualymesa .text p { margin: 0 0 1.125rem !important; text-align: left !important; }
.section-qualymesa .text p:last-child { margin-bottom: 0 !important; }
.botao-centro1 { text-align: center !important; margin: 2rem auto 0 !important; padding: 0 !important; }
.botao-centro1 .btn2, .btn2 {
  font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; font-size: 0.95rem !important;
  color: #c22400 !important; border: 2px solid #c22400 !important; border-radius: 50px !important;
  padding: 0.75rem 2rem !important; background: transparent !important; text-decoration: none !important;
  backdrop-filter: none !important; -webkit-backdrop-filter: none !important;
  letter-spacing: 0.05em !important;
  display: inline-flex !important; align-items: center !important; transition: all 0.25s var(--ease-out) !important; cursor: pointer;
}
.botao-centro1 .btn2:hover, .btn2:hover { 
  background: #c22400 !important; 
  color: #fff !important;
  transform: translateY(-2px) !important; 
  box-shadow: none !important; 
}

@media (max-width: 768px) {
  .section-qualymesa .content { flex-direction: column !important; gap: 28px !important; align-items: center !important; }
  .section-qualymesa .content img, .section-qualymesa .content .imagem-sobre { width: 100% !important; }
  .section-qualymesa .text { padding-top: 0 !important; }
}

/* ── TRANSIÇÃO PARA O JOGO ── */
.jogo-background { position: relative !important; border: none !important; }
.jogo-background::before {
  content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 80px;
  background: linear-gradient(to bottom, #ffffff 0%, rgba(255,255,255,0.70) 30%, rgba(255,255,255,0.30) 65%, rgba(255,255,255,0) 100%);
  pointer-events: none; z-index: 5;
}

/* ── JOGO — melhorias visuais ── */
#placar {
  position: absolute !important; top: 14px !important; right: 16px !important;
  background: rgba(0,0,0,0.45) !important; backdrop-filter: blur(10px) !important; -webkit-backdrop-filter: blur(10px) !important;
  border: 1px solid rgba(255,255,255,0.15) !important; border-radius: 999px !important; padding: 5px 16px !important;
  color: #fff !important; font-family: 'Montserrat', sans-serif !important; font-size: 0.78rem !important;
  font-weight: 700 !important; letter-spacing: 0.06em !important; z-index: 100 !important; box-shadow: none !important;
  /* Oculto até o jogo iniciar — o script.js irá mostrar via classList */
  display: none !important;
}
.jogo-conteudo {
  padding: 22px 28px 20px !important;
  max-width: 360px !important;
  width: 76% !important;
  /* Centraliza verticalmente um pouco mais alto */
  top: 42% !important;
}
.jogo-logo-img {
  width: 140px !important;
  margin: 0 auto 10px !important;
  display: block !important;
}
.jogo-descricao { font-family: 'Montserrat', sans-serif !important; font-size: 0.84rem !important; line-height: 1.55 !important; color: rgba(255,255,255,0.92) !important; margin-bottom: 14px !important; }
.jogo-cta {
  font-family: 'Montserrat', sans-serif !important; font-size: 1rem !important; font-weight: 800 !important;
  letter-spacing: 0.06em !important; padding: 12px 32px !important; border-radius: 50px !important;
  background: linear-gradient(135deg, #e06900, #c22400) !important; 
  border: 2px solid #000 !important;
  color: #fff !important; 
  text-shadow: 1px 1px 2px rgba(0,0,0,0.3) !important;
  cursor: pointer !important; 
  box-shadow: 0 4px 0px #8b0000 !important;
  transition: all 0.15s var(--ease-out) !important;
}
.jogo-cta:hover { 
  transform: translateY(2px) !important; 
  box-shadow: 0 2px 0px #8b0000 !important;
}
@keyframes ctaPulse {
  0%,100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(194,36,0,0.4); }
  70% { transform: scale(1.03); box-shadow: 0 0 0 12px rgba(194,36,0,0); }
}
.jogo-instrucao {
  position: absolute !important; bottom: 14px !important; left: 50% !important; transform: translateX(-50%) !important; right: auto !important;
  background: rgba(0,0,0,0.25) !important; backdrop-filter: blur(8px) !important; -webkit-backdrop-filter: blur(8px) !important;
  border: 1px solid rgba(255,255,255,0.12) !important; border-radius: 999px !important; padding: 5px 16px !important;
  white-space: nowrap !important; z-index: 10 !important;
}
.jogo-instrucao p { font-family: 'Montserrat', sans-serif !important; font-size: 0.78rem !important; color: rgba(255,255,255,0.82) !important; margin: 0 !important; }
.tecla { background: rgba(255,255,255,0.18) !important; border: 1px solid rgba(255,255,255,0.30) !important; color: white !important; padding: 1px 7px !important; border-radius: 4px !important; font-weight: 700 !important; font-size: 0.80em !important; }
.jogo-personagem { animation: personagemEntrada 0.8s var(--ease-spring) both !important; }
@keyframes personagemEntrada {
  from { opacity: 0; transform: translateX(-50%) translateY(20px); }
  to   { opacity: 1; transform: translateX(-50%) translateY(0); }
}
.jogo-ativo { border-bottom: none !important; }

/* ── Caixa de papelão ── */
.obstaculo.caixa {
  position: absolute !important;
  bottom: 5px !important;
  width: 58px !important;
  height: 52px !important;
  background: none !important;
  filter: drop-shadow(0 4px 8px rgba(0,0,0,0.25)) !important;
  z-index: 5 !important;
}
.obstaculo.caixa svg { display: block !important; }

/* ── Caixa de papelão ── */
.obstaculo {
  position: absolute !important;
  bottom: 5px !important;
  width: 58px !important;
  height: 50px !important;
  background-image: none !important;
  background: none !important;
  filter: drop-shadow(0 4px 8px rgba(0,0,0,0.25)) !important;
}
.obstaculo svg { display: block !important; }

/* ── Caixa de papelão ── */
.obstaculo.caixa {
  background: none !important;
  background-image: none !important;
  width: 58px !important;
  height: 50px !important;
  bottom: 5px !important;
}
.obstaculo.caixa svg { display: block !important; }

/* Botão jogar — branco sobre gradiente fogo */
.jogo-background .jogo-cta {
  background: linear-gradient(135deg, #e06900, #c22400) !important;
  color: #fff !important;
  font-family: 'Montserrat', sans-serif !important;
  font-weight: 800 !important;
  font-size: 1rem !important;
  border: 2px solid #000 !important;
  padding: 12px 36px !important;
  border-radius: 50px !important;
  box-shadow: 0 4px 0px #8b0000 !important;
  text-shadow: 1px 1px 2px rgba(0,0,0,0.3) !important;
  letter-spacing: 0.05em !important;
}
.jogo-background .jogo-cta:hover {
  transform: translateY(2px) !important;
  box-shadow: 0 2px 0px #8b0000 !important;
}

/* Footer abaixo do jogo — sem sobreposição */
.site-footer {
  position: relative !important;
  z-index: 1 !important;
  margin-top: 0 !important;
}
.jogo-background {
  z-index: 2 !important;
  overflow: hidden !important;
  display: block !important;
  height: 420px !important;
  min-height: 420px !important;
  margin-bottom: 0 !important;
  position: relative !important;
}

/* Garante que o footer nunca sobe sobre o jogo */
.jogo-background + *,
.jogo-background ~ footer,
.site-footer {
  position: relative !important;
  z-index: 1 !important;
  clear: both !important;
  margin-top: 0 !important;
}

/* ================================================================
   JOGO — tela inicial sem painel (só logo + botão)
   ================================================================ */

/* Esconde elementos antigos que não são mais usados */
.jogo-instrucao { display: none !important; }
#placar { display: none !important; }

/* Container da tela inicial */
.jogo-inicio {
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
  text-align: center !important;
  z-index: 20 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 16px !important;
}

/* Logo grande e com presença */
.jogo-logo-img {
  width: 220px !important;
  display: block !important;
  filter: drop-shadow(0 4px 16px rgba(0,0,0,0.35)) !important;
  animation: logoEntrada 0.7s var(--ease-spring) both !important;
}
@keyframes logoEntrada {
  from { opacity: 0; transform: translateY(-16px) scale(0.9); }
  to   { opacity: 1; transform: translateY(0)     scale(1);   }
}

/* Botão jogar — gradiente fogo, sem painel ao redor */
.jogo-cta {
  font-family: 'Montserrat', sans-serif !important;
  font-size: 1rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.06em !important;
  padding: 12px 36px !important;
  border-radius: 50px !important;
  background: linear-gradient(135deg, #e06900, #c22400) !important;
  border: 2px solid #000 !important;
  color: #fff !important;
  text-shadow: 1px 1px 2px rgba(0,0,0,0.3) !important;
  box-shadow: 0 4px 0px #8b0000 !important;
  cursor: pointer !important;
  box-shadow: none !important;
  animation: none !important;
  transition: all 0.25s var(--ease-out) !important;
}
.jogo-cta:hover {
  transform: translateY(2px) !important;
  box-shadow: 0 2px 0px #8b0000 !important;
}

/* Hint do Space — pequeno e discreto */
.jogo-hint {
  font-family: 'Montserrat', sans-serif !important;
  font-size: 0.75rem !important;
  color: rgba(255,255,255,0.65) !important;
  margin: 0 !important;
}
.jogo-hint .tecla {
  background: rgba(255,255,255,0.20) !important;
  border: 1px solid rgba(255,255,255,0.35) !important;
  color: white !important;
  padding: 1px 7px !important;
  border-radius: 4px !important;
  font-weight: 700 !important;
  font-size: 0.80em !important;
}

/* Placar aparece só quando jogo inicia — via JS */

/* ================================================================
   GAME OVER — sem painel, estilo limpo igual à tela inicial
   ================================================================ */
#modal-game-over {
  background: rgba(0,0,0,0) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

.vidro-modal {
  background: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 12px !important;
  animation: modalEntrada 0.5s var(--ease-spring) both !important;
}
@keyframes modalEntrada {
  from { opacity: 0; transform: translateY(-20px) scale(0.92); }
  to   { opacity: 1; transform: translateY(0)     scale(1);    }
}

.titulo-game-over {
  font-family: 'Montserrat', sans-serif !important;
  font-size: 2.6rem !important;
  font-weight: 800 !important;
  color: #ffffff !important;
  text-shadow: 0 4px 20px rgba(0,0,0,0.5) !important;
  margin: 0 !important;
  letter-spacing: -0.02em !important;
}

.pontuacao-final {
  font-family: 'Montserrat', sans-serif !important;
  font-size: 1.1rem !important;
  color: rgba(255,255,255,0.90) !important;
  text-shadow: 0 2px 8px rgba(0,0,0,0.4) !important;
  margin: 0 !important;
}

#pontos-finais {
  font-family: 'Montserrat', sans-serif !important;
  font-weight: 800 !important;
  color: var(--qm-amber) !important;
  font-size: 1.3rem !important;
}

.recorde-modal {
  font-family: 'Montserrat', sans-serif !important;
  font-size: 0.85rem !important;
  color: rgba(255,255,255,0.65) !important;
  text-shadow: 0 2px 8px rgba(0,0,0,0.4) !important;
  margin: 0 !important;
  border-top: none !important;
  padding-top: 0 !important;
}

#recorde-final {
  color: rgba(255,255,255,0.85) !important;
  font-weight: 600 !important;
}

.btn-reiniciar {
  margin-top: 8px !important;
  background: linear-gradient(135deg, #e06900, #c22400) !important;
  color: #fff !important;
  border: 2px solid #000 !important;
  padding: 12px 36px !important;
  border-radius: 50px !important;
  font-family: 'Montserrat', sans-serif !important;
  font-weight: 800 !important;
  font-size: 0.96rem !important;
  text-shadow: 1px 1px 2px rgba(0,0,0,0.3) !important;
  box-shadow: 0 4px 0px #8b0000 !important;
  cursor: pointer !important;
  box-shadow: none !important;
  transition: all 0.25s var(--ease-out) !important;
  letter-spacing: 0.06em !important;
}
.btn-reiniciar:hover {
  transform: translateY(2px) !important;
  box-shadow: 0 2px 0px #8b0000 !important;
}

/* ================================================================
   BANNERS — responsivo em todas as páginas
   ================================================================ */

/* Garante que o banner toca o topo (header é fixed, não empurra conteúdo) */
body {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

/* Banner fixo nas páginas internas (produtos, sobre, contato) */
.banner-fixo,
.banner-principal {
  width: 100% !important;
  margin-top: 0 !important;
  display: block !important;
  overflow: hidden !important;
}
.banner-fixo img,
.banner-principal img {
  width: 100% !important;
  height: 100% !important;
  display: block !important;
  object-fit: cover !important;
  object-position: right center !important;
  max-height: 320px !important;
}

/* Banner rotativo da home */
.banner-container {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

@media (max-width: 768px) {
  .banner-fixo img,
  .banner-principal img {
    max-height: 180px !important;
  }
}

@media (max-width: 480px) {
  .banner-fixo img,
  .banner-principal img {
    max-height: 120px !important;
  }
}

/* Ajustes responsivos globais */
@media (max-width: 1120px) {
  .nav-menu {
    justify-content: space-between !important;
    gap: 1.5rem !important;
  }
  .nav-left,
  .nav-right {
    gap: clamp(1rem, 2.5vw, 2rem) !important;
  }
  .nav-left {
    margin-right: 0 !important;
  }
  .nav-right {
    margin-left: 0 !important;
  }
  .logo-sobreposta {
    top: -18px !important;
  }
  .logo-sobreposta img {
    height: clamp(110px, 12vw, 145px) !important;
  }
}

@media (max-width: 900px) {
  .section-historia {
    padding: 3rem 1.25rem !important;
    gap: 2rem !important;
  }
  .section-historia h1 {
    font-size: clamp(2rem, 6vw, 2.4rem) !important;
  }
  .section-historia p {
    font-size: 1.05rem !important;
    line-height: 1.7 !important;
    text-align: left !important;
  }
  .section-historia img {
    width: min(100%, 420px) !important;
  }
  .box-mvv {
    margin: 0 1rem !important;
    padding: 2rem 1.5rem !important;
  }
  .sabor-section {
    padding: 3rem 1.25rem 4rem !important;
  }
  .sabor-section h2 {
    font-size: clamp(2rem, 7vw, 2.4rem) !important;
  }
  .sabor-section p {
    font-size: 1.05rem !important;
    line-height: 1.7 !important;
  }
  .process-container {
    gap: 2.5rem !important;
    padding: 0 1.25rem !important;
  }
  .process-step {
    padding: 0 !important;
  }
  .container-form {
    max-width: 100% !important;
  }
}

@media (max-width: 768px) {
  .navbar {
    padding: 12px 5% 0 !important;
  }
  .banner-principal {
    height: clamp(200px, 52vw, 300px) !important;
  }
  .contato-qualymesa {
    padding: 2.5rem 1rem !important;
  }
  .container-form {
    text-align: left !important;
  }
  .container-form h2,
  .container-form .linha,
  .telefone-topo {
    text-align: center !important;
  }
  .produtos-container {
    margin: 3rem auto !important;
    padding: 0 1rem !important;
  }
  .conteudo {
    gap: 1rem !important;
  }
  .footer-top {
    gap: 1.5rem !important;
  }
}

@media (max-width: 480px) {
  .navbar {
    padding: 10px 5% 0 !important;
  }
  .logo-mobile img {
    height: 52px !important;
  }
  .section-historia {
    padding: 2.5rem 1rem !important;
  }
  .section-historia h1 {
    font-size: 1.8rem !important;
  }
  .section-historia p,
  .sabor-section p,
  .telefone-topo {
    font-size: 1rem !important;
  }
  .box-mvv {
    margin: 0 0.75rem !important;
    padding: 1.5rem 1rem !important;
  }
  .icon-box {
    width: 82px !important;
    height: 82px !important;
    font-size: 1.8rem !important;
    margin-bottom: 1rem !important;
  }
  input,
  select,
  textarea {
    padding: 14px 18px !important;
  }
}
