/* Arquivo: assets/css/site-mobile.css
   Regras críticas para responsividade mobile e padronização de header/footer.
   Usa !important em regras necessárias para prevalecer sobre estilos inline existentes. */

/* Reset útil */
img, picture, video {
  max-width: 100% !important;
  height: auto;
  display: block !important;
}

html, body {
  -webkit-text-size-adjust: 100% !important;
  max-width: 100vw !important;
  overflow-x: hidden !important;
  background: transparent !important;
}

/* Topbar e container */
.topbar {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 60 !important;
  background: rgba(255,255,255,0.98) !important;
  padding: 8px 0 !important;
}

.container {
  max-width: 1100px !important;
  padding-left: 16px !important;
  padding-right: 16px !important;
}

.topbar-container {
  max-width: 1100px !important;
  padding-left: 16px !important;
  padding-right: 16px !important;
}

.logo img {
  height: 48px !important;
  width: auto !important;
}

/* Navegação principal - comportamentos móveis */
.main-nav {
  gap: 18px !important;
  align-items: center !important;
}

.menu-toggle {
  display: none !important;
  background: none !important;
  border: none !important;
  font-size: 26px !important;
  cursor: pointer !important;
}

@media (max-width: 960px) {
  .menu-toggle { display: block !important; }
  .main-nav {
    display: none !important;
    position: absolute !important;
    top: 60px !important;
    right: 16px !important;
    left: auto !important;
    min-width: 180px !important;
    background: #fff !important;
    box-shadow: 0 8px 32px rgba(0,0,0,0.18) !important;
    border-radius: 14px !important;
    padding: 18px 12px !important;
    z-index: 9999 !important;
    flex-direction: column !important;
    gap: 10px !important;
    align-items: flex-start !important;
    animation: fadeInMenu .25s;
  }
  header, .topbar, .topbar-container {
    overflow: visible !important;
  }
  header .container .main-nav.open,
  .main-nav.open {
    display: flex !important;
    position: fixed !important;
    top: 60px !important;
    right: 16px !important;
    left: auto !important;
    min-width: 180px !important;
    background: #fff !important;
    box-shadow: 0 8px 32px rgba(0,0,0,0.18) !important;
    border-radius: 14px !important;
    padding: 18px 12px !important;
    z-index: 2147483647 !important;
    flex-direction: column !important;
    gap: 10px !important;
    align-items: flex-start !important;
    animation: fadeInMenu .25s !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    border: none !important;
  }
  @keyframes fadeInMenu {
    from { opacity: 0; transform: translateY(-10px); }
    to { opacity: 1; transform: translateY(0); }
  }
}

/* Espaçamento entre CTA e ícone do menu para evitar sobreposição no mobile */
@media (max-width: 960px) {
  /* Aumenta margem direita para evitar overlap com o botão de menu absoluto */
  .cta-perdigao { margin-right: 64px !important; }
  .menu-toggle { margin-left: 8px !important; padding: 8px 10px !important; }
  /* garante toque confortável e z-index adequado */
  .menu-toggle { z-index: 80 !important; }
  .cta-perdigao { z-index: 70 !important; }
}

/* Estilo do CTA quando estiver dentro do menu (aplicado dinamicamente via JS) */
@media (max-width: 960px) {
  .main-nav .cta-perdigao.in-nav {
    display: block !important;
    width: calc(100% - 32px) !important;
    margin: 8px 16px !important;
    padding: 12px 16px !important;
    text-align: center !important;
    border-radius: 8px !important;
    background: #fff !important;
    color: #00bccf !important;
    border: 2px solid #00bccf !important;
  }
}

/* Espaço para o conteúdo (compensar topbar fixa) */
.page-offset { padding-top: 76px !important; }

/* Força visual do CTA no topbar para consistência entre páginas */
.topbar .cta-perdigao {
  display: inline-block !important;
  font-weight: 700 !important;
  font-size: 15px !important;
  color: #00bccf !important;
  background: #fff !important;
  border: 2px solid #00bccf !important;
  padding: 8px 16px !important;
  border-radius: 6px !important;
  text-decoration: none !important;
  box-shadow: none !important;
  line-height: 1 !important;
}

/* remove contornos estranhos aplicados por estilos locais */
.topbar .cta-perdigao * { all: unset; }

/* Tipografia e tamanhos touch-friendly */
button, .btn, .cta-perdigao, a[role="button"] {
  min-height: 44px !important;
  padding: 10px 16px !important;
  font-size: 1rem !important;
}

/* Footer padronizado */
footer {
  padding: 32px 16px !important;
  background: #142d6c !important;
  color: #fff !important;
  font-size: 14px !important;
  border-top: 1px solid #eee !important;
}

footer a { color: #fff !important; text-decoration: none !important; }

/* Conteúdo principal responsivo */
main, .wrap, .recipe-content, .related-section, .related-grid { width: 100% !important; max-width: 100% !important; }

@media (max-width: 768px) {
  h1 { font-size: 1.4rem !important; }
  h2 { font-size: 1.1rem !important; }
  .card { width: 96vw !important; }
  .recipe-hero { height: auto !important; padding: 12px 0 !important; }
  .recipe-hero img { max-height: 48vh !important; object-fit: cover !important; }
  .container { padding-left: 12px !important; padding-right: 12px !important; }
  .topbar-container { padding-left: 12px !important; padding-right: 12px !important; }
}

/* Força o comportamento touch-friendly em inputs e selects */
input, select, textarea { font-size: 16px !important; }

/* melhora visibilidade de links no footer */
.footer-grid { display: grid !important; grid-template-columns: 1fr !important; gap: 16px !important; text-align: left !important; }

/* helpers */
.hide-mobile { display: none !important; }
.show-mobile { display: block !important; }

/* garante que elementos com position:fixed não fiquem sobrepostos sem espaço */
@supports (position: sticky) {
  body { padding-top: 0 !important; }
}
