/*
 * Armeiro Airsoft — layout público unificado
 * Versão: 20260704-2
 *
 * Este arquivo fica por último nas páginas públicas e centraliza:
 * - largura padrão dos blocos públicos;
 * - alinhamento do footer/newsletter;
 * - comportamento mobile dos títulos com botão lateral;
 * - correções responsivas gerais sem mexer nos CSS base.
 */
:root {
  --armeiros-public-max: 1180px;
  --armeiros-public-gutter: 48px;
}

html,
body.page-public {
  overflow-x: hidden;
}

/* Container único das páginas públicas */
body.page-public .public-main,
body.page-public .public-footer {
  width: min(var(--armeiros-public-max), calc(100% - var(--armeiros-public-gutter))) !important;
  max-width: var(--armeiros-public-max) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box !important;
}

body.page-public .public-main {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Tudo que for bloco direto do main acompanha o mesmo container */
body.page-public .public-main > .hero,
body.page-public .public-main > .front-section,
body.page-public .public-main > .page-title-row,
body.page-public .public-main > .cards-grid,
body.page-public .public-main > .detail-layout,
body.page-public .public-main > .public-grid,
body.page-public .public-main > .post-grid,
body.page-public .public-main > .post-grid-home,
body.page-public .public-main > .armeiros-grid,
body.page-public .public-main > .empty-public-card,
body.page-public .public-main > .form-panel,
body.page-public .public-main > article.form-panel,
body.page-public .public-main > section.form-panel {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box !important;
}

body.page-public .hero-card-wide,
body.page-public .trial-card,
body.page-public .resource-card,
body.page-public .content-card,
body.page-public .post-card,
body.page-public .armeiro-card,
body.page-public .form-panel {
  box-sizing: border-box !important;
}

body.page-public .hero-card-wide,
body.page-public .trial-card {
  width: 100% !important;
  max-width: 100% !important;
}

/* Títulos de seção com botão lateral */
body.page-public .section-head,
body.page-public .page-title-row,
body.page-public .public-keepers-title,
body.page-public .public-listing-heading {
  min-width: 0;
}

body.page-public .section-head > div,
body.page-public .page-title-row > div,
body.page-public .public-keepers-title > div,
body.page-public .public-listing-heading > div {
  min-width: 0;
}

body.page-public .section-head .small-btn,
body.page-public .page-title-row .small-btn,
body.page-public .page-title-row .primary-btn,
body.page-public .page-title-row .secondary-btn,
body.page-public .public-keepers-title .primary-btn,
body.page-public .public-keepers-title .secondary-btn {
  white-space: nowrap;
  flex: 0 0 auto;
}

/* Footer e newsletter passam a usar o mesmo container do main */
body.page-public .public-footer {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  justify-content: flex-start !important;
  gap: 0 !important;
  margin-top: 52px !important;
  margin-bottom: 28px !important;
  padding: 22px 0 0 !important;
  border-top: 1px solid var(--line, #ead9bf) !important;
}

body.page-public .newsletter-footer,
body.page-public .public-footer-bottom,
body.page-public .public-newsletter-wrap,
body.page-public .public-newsletter,
body.page-public .public-footer-inner {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box !important;
}

body.page-public .newsletter-footer {
  margin-bottom: 26px !important;
}

body.page-public .public-footer-bottom {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 20px !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Cards e grids públicos */
body.page-public .cards-grid,
body.page-public .public-grid,
body.page-public .post-grid,
body.page-public .post-grid-home,
body.page-public .armeiros-grid {
  box-sizing: border-box !important;
}

@media (max-width: 980px) {
  body.page-public .public-grid,
  body.page-public .post-grid,
  body.page-public .post-grid-home,
  body.page-public .cards-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  :root {
    --armeiros-public-gutter: 32px;
  }

  body.page-public .public-main {
    padding-top: 32px !important;
  }

  /* Corrige os botões pequenos que ficavam espremidos à direita no celular */
  body.page-public .front-section .section-head,
  body.page-public .section-head,
  body.page-public .page-title-row,
  body.page-public .public-keepers-title,
  body.page-public .public-listing-heading {
    display: grid !important;
    grid-template-columns: 1fr !important;
    align-items: start !important;
    justify-content: start !important;
    gap: 12px !important;
  }

  body.page-public .section-head .small-btn,
  body.page-public .page-title-row .small-btn,
  body.page-public .page-title-row .primary-btn,
  body.page-public .page-title-row .secondary-btn,
  body.page-public .public-keepers-title .primary-btn,
  body.page-public .public-keepers-title .secondary-btn {
    width: auto !important;
    max-width: 100% !important;
    justify-self: start !important;
    align-self: start !important;
    margin: 0 !important;
    padding-inline: 14px !important;
    line-height: 1.15 !important;
    white-space: nowrap !important;
  }

  body.page-public .hero-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
  }

  body.page-public .hero-actions .primary-btn,
  body.page-public .hero-actions .secondary-btn {
    width: 100% !important;
    justify-content: center !important;
  }

  body.page-public .cards-grid,
  body.page-public .public-grid,
  body.page-public .post-grid,
  body.page-public .post-grid-home,
  body.page-public .armeiros-grid,
  body.page-public .detail-layout {
    grid-template-columns: 1fr !important;
  }

  body.page-public .trial-card {
    grid-template-columns: 1fr !important;
  }

  body.page-public .trial-action .primary-btn {
    width: 100% !important;
    justify-content: center !important;
  }

  body.page-public .newsletter-footer {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
    padding: 18px !important;
    border-radius: 22px !important;
  }

  body.page-public .newsletter-copy p {
    white-space: normal !important;
  }

  body.page-public .newsletter-form {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  body.page-public .newsletter-form button {
    width: 100% !important;
    min-height: 46px !important;
  }

  body.page-public .public-footer-bottom {
    align-items: flex-start !important;
    flex-direction: column !important;
  }

  body.page-public .public-footer-links {
    justify-content: flex-start !important;
  }
}

@media (max-width: 420px) {
  :root {
    --armeiros-public-gutter: 24px;
  }

  body.page-public .hero-card-wide,
  body.page-public .trial-card {
    border-radius: 24px !important;
  }

  body.page-public .section-head .small-btn,
  body.page-public .page-title-row .small-btn,
  body.page-public .page-title-row .primary-btn,
  body.page-public .page-title-row .secondary-btn,
  body.page-public .public-keepers-title .primary-btn,
  body.page-public .public-keepers-title .secondary-btn {
    font-size: .82rem !important;
    min-height: 38px !important;
  }
}
