/* ---------------------------- Responsivo -------------------------------- */

@media (max-width: 1320px) {
    /* Menu com muitos itens: a busca do topo sai e o link "Buscar" assume. */
    .busca-topo { display: none; }
    .nav-desktop ul { gap: 2px 15px; }
    .nav-desktop a { font-size: 0.84rem; }
}

@media (max-width: 1080px) {
    .grade-4 { grid-template-columns: repeat(3, 1fr); }
    .verbete-corpo { grid-template-columns: minmax(0, 1fr) 280px; gap: 32px; }
    .hero h1 { font-size: 2.6rem; }
}

@media (max-width: 960px) {
    .nav-desktop, .busca-topo { display: none; }
    .menu-botao { display: inline-block; }
    .topo-int { justify-content: space-between; }
    .menu-lateral { display: block; }
    .menu-check:checked ~ .menu-lateral { transform: translateX(0); }
    .menu-check:checked ~ .menu-fundo {
        display: block; position: fixed; inset: 0;
        background: rgba(15,42,61,.55); z-index: 45; cursor: pointer;
    }
    .hero { padding: 40px 0; }
    .hero-int { grid-template-columns: 1fr; gap: 32px; }
    .hero h1 { font-size: 2.2rem; }
    .verbete-corpo { grid-template-columns: 1fr; }
    .verbete-lado { border-top: 1px solid var(--linha); padding-top: 24px; }
    .grade-4, .grade-3 { grid-template-columns: repeat(2, 1fr); }
    .news { grid-template-columns: 1fr; gap: 24px; padding: 26px; }
    .pe-grade { grid-template-columns: 1fr 1fr; gap: 28px; }
    .linha { grid-template-columns: 1fr; gap: 4px; }
    .linha-cat { text-align: left; }
}

@media (max-width: 620px) {
    body { font-size: 16px; }
    .caixa { padding: 0 16px; }
    h1 { font-size: 1.9rem; }
    .hero h1 { font-size: 1.9rem; }
    .grade-4, .grade-3 { grid-template-columns: 1fr; }
    .hero-dados dl { grid-template-columns: 1fr 1fr; }
    .busca-grande { flex-wrap: wrap; }
    .busca-grande input {
        border-right: 1px solid var(--linha-forte);
        border-radius: var(--raio); flex-basis: 100%;
    }
    .busca-grande button { border-radius: var(--raio); margin-top: 10px; width: 100%; }
    .vizinhos-int { grid-template-columns: 1fr; }
    .vizinho-prox { text-align: left; align-items: flex-start; }
    .pe-grade { grid-template-columns: 1fr; }
    .topo-faixa-dir { display: none; }
    .secao { padding: 34px 0; }
    .secao-topo { flex-wrap: wrap; }
}

