/* Breakpoints Responsivos */

/* ===== TV: 2560px+ ===== */
@media (min-width: 2560px) {
  .header-container,
  .hero-container,
  .products-section,
  .footer-container,
  .checkout-container,
  .admin-container {
    max-width: 1920px;
  }
}

/* ===== DESKTOP: 1280â€“2559px ===== */
@media (min-width: 1280px) and (max-width: 2559px) {
  /* Layout padrao */
}

/* ===== NOTEBOOK: 1024â€“1279px ===== */
@media (min-width: 1024px) and (max-width: 1279px) {
  .header-container {
    padding: 12px 24px;
  }
  
  .hero-container {
    padding: 0 24px;
  }
  
  .footer-container {
    grid-template-columns: 1fr 1fr 1fr 1fr;
    padding: 50px 24px 24px;
  }
  
  .footer-col:last-child {
    grid-column: span 4;
  }
}

/* ===== TABLET: 768â€“1023px ===== */
@media (min-width: 768px) and (max-width: 1023px) {
  .nav-menu {
    gap: 16px;
  }

  .header-search {
    --header-search-largura: 400px;
  }

  #featuredGrid .product-card {
    flex: 1 1 calc(33.333% - 14px);
    max-width: none;
  }

  .hero-container {
    grid-template-columns: 1fr;
    text-align: center;
    padding: 30px 24px;
  }

  /* A section abriu mao do padding direito para a arte encostar na
     borda no desktop; aqui ele volta para o texto nao chegar na borda. */
  .hero-section {
    padding-right: 32px;
  }
  
  .hero-buttons {
    justify-content: center;
  }
  
  .hero-image {
    display: none;
  }
  
  .footer-container {
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    padding: 40px 24px 20px;
  }
  
  .footer-col:last-child {
    grid-column: span 2;
  }
  
  .checkout-grid,
  .cart-grid {
    grid-template-columns: 1fr !important;
  }
  
  .catalog-layout {
    grid-template-columns: 1fr !important;
  }
}

/* ===== MOBILE: 320â€“767px ===== */
@media (max-width: 767px) {
  .admin-login-screen {
    padding: 24px 16px;
  }

  .admin-login-card {
    padding: 26px 20px 22px;
  }

  .header-container {
    padding: 10px 16px;
  }
  
  .nav-menu.desktop-nav {
    display: none;
  }

  .mobile-menu-toggle {
    display: block;
  }
  
  .hero-section {
    padding: 44px 16px 52px;
    min-height: auto;
  }
  
  .hero-container {
    grid-template-columns: 1fr;
    min-height: auto;
  }
  
  .hero-content {
    padding: 16px 0;
    text-align: center;
  }
  
  .hero-content h1 {
    font-size: 26px;
    line-height: 1.15;
  }
  
  .hero-buttons {
    flex-direction: column;
    width: 100%;
    gap: 10px;
  }
  
  .hero-buttons .btn,
  .hero-buttons .btn-hero-primary,
  .hero-buttons .btn-hero-secondary {
    width: 100%;
    justify-content: center;
  }
  
  .hero-image-wrap {
    height: auto;
    margin-top: 16px;
  }
  
  .category-round-circle {
    width: 70px;
    height: 70px;
    font-size: 24px;
  }
  
  .category-round-card {
    width: 88px;
  }
  
  .services-container {
    grid-template-columns: 1fr !important;
    gap: 12px;
  }
  
  .products-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 10px !important;
  }

  #featuredGrid .product-card {
    flex: 1 1 calc(50% - 5px);
    max-width: none;
  }

  .products-grid .empty-catalog-state {
    grid-column: 1 / -1 !important;
    width: 100% !important;
  }
  
  .catalog-layout {
    grid-template-columns: 1fr !important;
  }
  
  .checkout-grid,
  .cart-grid {
    grid-template-columns: 1fr !important;
  }
  
  .footer-container {
    grid-template-columns: 1fr;
    gap: 24px;
    padding: 30px 16px 20px;
  }
  
  .footer-bottom {
    flex-direction: column;
    gap: 10px;
    text-align: center;
    padding: 16px;
  }
  
  .admin-topbar {
    padding: 14px 16px;
  }

  .admin-container {
    padding: 18px 14px 40px;
  }

  .admin-metrics-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .admin-grid-layout {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .admin-footer-content {
    flex-direction: column;
    gap: 8px;
    text-align: center;
  }

  .recaptcha-emoji-grid {
    gap: 6px;
  }

  .emoji-option-btn {
    height: 54px;
    font-size: 24px;
  }

  .admin-login-back {
    font-size: 11px;
    padding: 8px 13px;
  }
}

/* Banner ao lado do texto: a arte so divide a tela com o texto enquanto
   existe largura de sobra. O arquivo ja colapsa o hero em 1023px, entao o
   split precisa quebrar no mesmo ponto senao sobra uma faixa de 901px a
   1023px com duas colunas espremidas. Sem largura, a arte sobe para o
   topo (centralizada, no maximo 880px) e o texto continua alinhado a
   esquerda, com espaco a direita para nao encostar na borda. */
@media (max-width: 1023px) {
  .hero-container.split {
    grid-template-columns: 1fr;
    max-width: 880px;
    margin: 0 auto;
    gap: 32px;
    text-align: left;
  }

  .hero-container.split .hero-content {
    align-items: flex-start;
    text-align: left;
  }

  .hero-container.split .hero-buttons {
    justify-content: flex-start;
  }

  .hero-container.split .hero-content p {
    max-width: 520px;
  }

  .hero-container.split .hero-image-wrap {
    order: -1;
    justify-self: stretch;
    max-width: 880px;
    margin: 0 auto;
    height: auto;
    border-radius: var(--radius-lg);
  }
}


/* Botao flutuante de WhatsApp no celular: 16px de cada borda, com as
   areas seguras do iPhone somadas ao deslocamento. */
@media (max-width: 767px) {
  .whatsapp-float {
    right: calc(16px + env(safe-area-inset-right, 0px));
    bottom: calc(16px + env(safe-area-inset-bottom, 0px));
    width: 54px;
    height: 54px;
    font-size: 27px;
  }
}

/* Busca no cabecalho no celular: nao cabe na mesma linha, entao a barra cai
   como segunda linha do header, sempre visivel. */
@media (max-width: 767px) {
  .header-container {
    flex-wrap: wrap;
  }

  .header-search {
    position: relative;
    order: 5;
    flex: 1 0 100%;
    max-width: none;
    margin: 10px 0 0;
  }
}

/* ==========================================================================
   PAINEL ADMINISTRATIVO NO CELULAR
   Tudo dentro da tela: menos padding, cabecalho que quebra, busca/filtros
   ocupando a largura e colunas secundarias escondidas para a tabela caber
   sem rolagem lateral.
   ========================================================================== */
@media (max-width: 767px) {
  .admin-container {
    padding: 14px 12px 40px;
  }

  .admin-card {
    padding: 16px 14px;
  }

  .admin-card-title {
    font-size: 15px;
    margin-bottom: 16px;
  }

  .admin-topbar {
    flex-wrap: wrap;
    gap: 10px;
    padding: 12px 14px;
  }

  .admin-page-title {
    font-size: 16px;
  }

  .admin-card-header-flex {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }

  .admin-filtros-wrap,
  .admin-search-wrap {
    width: 100%;
    min-width: 0;
  }

  .admin-search-wrap .admin-input,
  .admin-filtros-wrap .admin-select,
  .admin-filter-select {
    width: 100%;
    min-width: 0;
    flex: 1 1 auto;
  }

  .admin-selects-wrap {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    width: 100%;
  }

  .admin-table th,
  .admin-table td {
    padding: 10px;
    font-size: 12px;
  }

  /* Produtos: esconde Codigo, Frete, Estoque e Destaque. */
  #panelProductList .admin-table th:nth-child(3),
  #adminProductsTbody td:nth-child(3),
  #panelProductList .admin-table th:nth-child(5),
  #adminProductsTbody td:nth-child(5),
  #panelProductList .admin-table th:nth-child(6),
  #adminProductsTbody td:nth-child(6),
  #panelProductList .admin-table th:nth-child(7),
  #adminProductsTbody td:nth-child(7) {
    display: none;
  }

  /* Pedidos em aberto (7 colunas): guarda Pedido, Cliente, Total e
     Situacao. WhatsApp, Produtos e Pagamento somem tambem pelas classes
     col-* do admin.css; aqui fica a garantia por posicao no celular. */
  #panelOrders .admin-table th:nth-child(3),
  #adminOrdersTbody td:nth-child(3),
  #panelOrders .admin-table th:nth-child(4),
  #adminOrdersTbody td:nth-child(4),
  #panelOrders .admin-table th:nth-child(5),
  #adminOrdersTbody td:nth-child(5) {
    display: none;
  }

  /* Concluidos (7 colunas): guarda Pedido, Cliente, Total e Situacao.
     Produtos e Pagamento somem pelas classes col-*; Data some aqui para
     nao forcar rolagem no celular (Data+hora aparecem na ficha do pedido
     e na versao para computador). */
  #panelOrdersDone .admin-table th:nth-child(3),
  #adminOrdersDoneTbody td:nth-child(3),
  #panelOrdersDone .admin-table th:nth-child(4),
  #adminOrdersDoneTbody td:nth-child(4),
  #panelOrdersDone .admin-table th:nth-child(6),
  #adminOrdersDoneTbody td:nth-child(6) {
    display: none;
  }

  /* Clientes: Nome, WhatsApp, Total e Historico. */
  #panelClients .admin-table th:nth-child(2),
  #adminClientsTbody td:nth-child(2),
  #panelClients .admin-table th:nth-child(4),
  #adminClientsTbody td:nth-child(4),
  #panelClients .admin-table th:nth-child(6),
  #adminClientsTbody td:nth-child(6) {
    display: none;
  }

  /* Carrinhos: Cliente, Carrinhos, Abandonados e Historico. */
  #panelCarts .admin-table th:nth-child(2),
  #adminCartsTbody td:nth-child(2),
  #panelCarts .admin-table th:nth-child(5),
  #adminCartsTbody td:nth-child(5),
  #panelCarts .admin-table th:nth-child(6),
  #adminCartsTbody td:nth-child(6) {
    display: none;
  }

  /* Lixeira: guarda Tipo, Item e Acoes. */
  #panelTrash .admin-table th:nth-child(4),
  #adminTrashTbody td:nth-child(4) {
    display: none;
  }

  .admin-status-select {
    max-width: 100%;
    min-width: 0;
  }

  /* Formulario de produto no celular: nada estoura a tela. */
  #adminProductForm {
    max-width: none;
  }

  .admin-input,
  .admin-select,
  .admin-textarea {
    width: 100%;
    min-width: 0;
  }

  .admin-image-preview {
    flex-wrap: wrap;
    align-items: flex-start;
  }

  .admin-gallery-item {
    width: 88px;
    height: 88px;
  }

  .admin-checkbox-row {
    align-items: flex-start;
  }

  .admin-checkbox-row label {
    white-space: normal;
  }

  .product-form-buttons {
    display: flex;
    flex-direction: column;
    gap: 10px;
  }

  .product-form-buttons .btn {
    width: 100%;
  }
}