/* ── TABLET (≤ 960px) ───────────────────────────────────────────── */
@media (max-width: 960px) {
  .news-grid       { grid-template-columns: repeat(2, 1fr); }
  .rankings-grid   { grid-template-columns: repeat(2, 1fr); }
  .athletes-grid   { grid-template-columns: repeat(2, 1fr); }
  .apoiador-item   { flex-basis: calc(50% - 12px); max-width: calc(50% - 12px); }
  .sobre-grid      { grid-template-columns: 1fr; gap: 40px; }
  .sobre-img       { height: 320px; }
  .footer-grid     { grid-template-columns: 1fr 1fr; gap: 40px; }
  .contact-grid    { grid-template-columns: 1fr; gap: 40px; }
  .values-grid { grid-template-columns: repeat(2, 1fr); }
  .board-grid  { grid-template-columns: repeat(3, 1fr); }
  .competitions-table th:nth-child(2),
  .competitions-table td:nth-child(2) { max-width: 200px; }
  .competitions-grid { grid-template-columns: 1fr; }
}

/* ── MOBILE (≤ 640px) ───────────────────────────────────────────── */
@media (max-width: 640px) {

  /* Header */
  .menu-toggle { display: flex; }
  .nav-menu {
    display: none;
    flex-direction: column; align-items: stretch;
    position: absolute; top: 68px; left: 0; right: 0;
    background: var(--green-dark);
    padding: 12px 16px 20px;
    box-shadow: 0 8px 24px rgba(0,0,0,0.3);
    gap: 2px;
  }
  .nav-menu.is-open { display: flex; }
  .nav-menu a { padding: 12px 16px; font-size: 15px; border-radius: 4px; }

  /* Submenu mobile — exibe inline dentro do menu aberto */
  .nav-menu .sub-menu {
    position: static;
    box-shadow: none;
    border-radius: 0;
    padding: 0 0 4px 16px;
    background: transparent;
  }
  .nav-menu .menu-item-has-children.is-open > .sub-menu { display: flex; flex-direction: column; }
  .nav-menu .sub-menu a { padding: 8px 12px; font-size: 13.5px; }
  .nav-menu .menu-item-has-children > a::after { content: ' ›'; }
  .nav-menu .feep-portal > a,
  .nav-menu .feep-btn-cta > a {
    display: block; text-align: center; margin-top: 8px; padding: 12px 16px;
  }
  .site-header { position: sticky; }

  /* Sections */
  section { padding: 56px 0; }
  .section-header-row { flex-direction: column; align-items: flex-start; }
  .news-footer, .comp-footer { text-align: left; }

  /* Grids → 1 column */
  .news-grid     { grid-template-columns: 1fr; }
  .rankings-grid { grid-template-columns: 1fr; }
  .athletes-grid { grid-template-columns: repeat(2, 1fr); }
  .apoiador-item { flex-basis: calc(50% - 12px); max-width: calc(50% - 12px); }
  .filiacao-cards { flex-direction: column; align-items: center; }
  .filiacao-card  { max-width: 100%; width: 100%; }

  /* Hero */
  .hero { min-height: 520px; }
  .hero-content { padding-bottom: 48px; }
  .hero-actions { flex-direction: column; }
  .hero-actions a { text-align: center; }

  /* Stats */
  .stats-inner { gap: 24px; justify-content: center; }

  /* Competitions table — scroll horizontal */
  .competitions-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .competitions-table { min-width: 580px; }

  /* Valores e Diretoria — 1 coluna no mobile */
  .values-grid { grid-template-columns: 1fr; }
  .board-grid  { grid-template-columns: repeat(2, 1fr); }

  /* Competition cards — imagem em cima ao invés de na lateral */
  .cc-main { flex-direction: column; }
  .cc-image { flex: none; width: 100%; height: 160px; }

  /* Footer */
  .footer-grid { grid-template-columns: 1fr; gap: 32px; }
  .footer-bottom { flex-direction: column; text-align: center; }

  /* Athletes */
  .athletes-grid { grid-template-columns: 1fr; }

  /* Sobre */
  .sobre-img { height: 260px; }
}

/* ── EXTRA SMALL (≤ 400px) ──────────────────────────────────────── */
@media (max-width: 400px) {
  .athletes-grid { grid-template-columns: 1fr; }
  .apoiador-item { flex-basis: 100%; max-width: 100%; }
  .hero h1 { font-size: 38px; }
}
