/* JNippak — Responsivo (todos os @media aqui)
   Gazeta nipo-brasileira: breakpoints 1024 / 768 / 480 */

@media (max-width: 1024px) {

    .masthead { padding: 22px 96px 14px 0; }

    .front-grid { grid-template-columns: 1fr; }

    .front-head { padding-right: 0; }

    .front-side {
        border-left: none;
        border-top: 1px solid var(--fio);
        padding-left: 0;
        padding-top: 26px;
    }

    .hero-frame { max-width: 640px; }

    .redaction-copy { column-count: 1; }

    .weekly-text { column-count: 1; }

    .footer-grid { grid-template-columns: 1fr 1fr; }

    .footer-authority {
        grid-column: 1 / -1;
        border-left: none;
        border-top: 1px solid rgba(247, 241, 232, 0.22);
        padding-left: 0;
        padding-top: 24px;
    }
}

@media (max-width: 768px) {

    /* Masthead vira barra compacta com menu */
    .masthead-bar-wrap {
        justify-content: space-between;
        padding: 8px 0;
        border-top: 1px solid var(--fio);
    }

    .menu-toggle { display: flex; }

    .nav {
        position: fixed;
        top: 0;
        right: 0;
        flex-direction: column;
        justify-content: flex-start;
        align-items: stretch;
        width: min(300px, 84vw);
        height: 100vh;
        background: var(--washi);
        border-left: 3px solid var(--torii);
        padding: 5rem 1.6rem 2rem;
        gap: 0;
        transform: translateX(100%);
        transition: transform 0.3s ease;
        box-shadow: -14px 0 34px rgba(29, 26, 26, 0.2);
        z-index: 70;
    }

    .nav.open { transform: translateX(0); }

    .nav a { padding: 14px 4px; }

    .nav a + a::before { display: none; }

    .nav a:not(:last-child) { border-bottom: 1px dashed var(--fio); }

    .masthead { padding: 18px 92px 12px 0; }

    .brand-name { font-size: 2.2rem; }

    .brand-sub { letter-spacing: 0.24em; }

    .hanko-cta { padding: 7px 9px; }
    .hanko-seal { font-size: 1.4rem; }

    .edition-line span:last-child { display: none; }

    .redaction-grid { grid-template-columns: 1fr; gap: 26px; }
    .redaction-photo { position: static; max-width: 460px; }

    .weekly-grid { grid-template-columns: 1fr; }

    .desks-grid { grid-template-columns: 1fr; }
    .desk-card { padding: 0; }
    .desk-card + .desk-card {
        border-left: none;
        border-top: 1px solid var(--fio);
        margin-top: 30px;
        padding-top: 30px;
    }

    .columns-grid { grid-template-columns: 1fr; }

    .voices-grid { grid-template-columns: 1fr; }
    .voice:nth-child(2) { transform: rotate(0.5deg) translateY(0); }

    .reach-grid { grid-template-columns: 1fr; gap: 30px; }

    .tab-panels { padding: 24px 22px; }

    .agenda-item { grid-template-columns: 78px 1fr; gap: 18px; }

    .footer-grid { grid-template-columns: 1fr; gap: 26px; }
    .footer-nav,
    .footer-authority {
        border-left: none;
        padding-left: 0;
        border-top: 1px solid rgba(247, 241, 232, 0.22);
        padding-top: 22px;
    }

    main > section { scroll-margin-top: 96px; }
}

@media (max-width: 480px) {

    h1 { font-size: 2rem; }

    .masthead { padding: 14px 74px 10px 0; }
    .brand-name { font-size: 1.72rem; }
    .brand-sub { display: none; }

    .hanko-cta { padding: 5px 7px; }
    .hanko-seal { font-size: 1.15rem; }
    .hanko-text { font-size: 0.52rem; }

    .hero-actions { flex-direction: column; align-items: stretch; }

    .btn { width: 100%; text-align: center; }

    .hero-badges { columns: 1; }

    .caderno-head { gap: 12px; }
    .caderno-head .kanji { font-size: 0.78rem; padding: 9px 5px; }

    .tab-panels { padding: 18px 16px; }

    .tab { padding: 9px 12px 7px; font-size: 0.62rem; letter-spacing: 0.12em; }

    .accordion-panel { padding-right: 12px; }

    .heritage-counter {
        grid-template-columns: 1fr;
        text-align: center;
        gap: 12px;
        padding: 22px 20px;
    }

    .heritage-counter p { border-left: none; padding-left: 0; }

    .agenda-item { grid-template-columns: 64px 1fr; gap: 14px; }
    .agenda-date strong { font-size: 1.45rem; }
    .agenda-date small { letter-spacing: 0.18em; }

    .reach-list { columns: 1; }

    .card-media img { aspect-ratio: 16 / 10; }
}
