/* =========================================================================
   MAIN — última camada da cascata
   Utilitários, ajustes de compatibilidade entre navegadores e regras de
   impressão. Carregado por último para poder sobrescrever qualquer seção.
   ====================================================================== */

/* -------------------------------------------------------------------------
   Utilitários
   ---------------------------------------------------------------------- */
.u-text-center { text-align: center; }
.u-no-scroll   { overflow: hidden; }

/* -------------------------------------------------------------------------
   Compatibilidade entre navegadores
   ---------------------------------------------------------------------- */

/* Safari/iOS: elementos com backdrop-filter dentro de contêiner com
   overflow: hidden podem perder o efeito sem uma camada de composição.
   `will-change` promove a camada sem tocar em `transform` — usar
   `translateZ(0)` aqui sobrescreveria o deslocamento do menu mobile e das
   animações de entrada. */
.header.is-stuck,
.mobile-menu,
.megamenu__surface,
.hero__aside,
.hero__orbit,
.course-card__badge,
.handbook-card__edition,
.about__chip {
    will-change: transform;
}

/* Firefox: `overflow-x: clip` no body só chegou na versão 90+;
   `hidden` é o fallback seguro sem quebrar o sticky do header. */
@supports not (overflow: clip) {
    body {
        overflow-x: hidden;
    }
}

/* Windows/Linux: sem SF Pro, o kerning fechado do título fica apertado. */
@supports not (font: -apple-system-body) {
    .hero__title {
        letter-spacing: -0.035em;
    }
}

/* -------------------------------------------------------------------------
   Alvos de toque — mínimo de 44px em qualquer dispositivo apontador grosso
   ---------------------------------------------------------------------- */
@media (pointer: coarse) {
    .nav__link,
    .mobile-menu__sublink,
    .topbar__link,
    .consulting-card__link,
    .footer-channel {
        min-height: 44px;
    }

    /* Nas colunas do rodapé o alvo é a linha inteira: no celular os links ficam
       empilhados e um alvo de 44px por item afastaria demais a lista. */
    .footer-link {
        padding-block: var(--space-2);
    }

    /* Rolagem por gesto: no toque a inércia do carrossel precisa da suavização
       nativa do WebKit para não parecer "presa". */
    .courses__grid,
    .handbooks__grid,
    .handbooks__filters {
        -webkit-overflow-scrolling: touch;
    }
}

/* -------------------------------------------------------------------------
   Impressão
   ---------------------------------------------------------------------- */
@media print {
    .topbar,
    .burger,
    .whatsapp-fab,
    .mobile-menu,
    .menu-scrim,
    .hero__backdrop,
    .hero__orbit,
    .courses__filters {
        display: none !important;
    }

    /* No papel o carrossel não existe: os cards viram uma lista completa. */
    .courses__grid,
    .handbooks__grid {
        grid-auto-flow: row;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        margin-inline: 0;
        padding: 0;
        overflow: visible;
    }

    /* Fundos decorativos só gastariam tinta. */
    .handbooks__backdrop,
    .about__backdrop,
    .site-footer__backdrop,
    .footer-top {
        display: none !important;
    }

    /* No papel o rodapé é a folha de contato: o grafite vira branco, e o que
       importa (endereço, telefone, e-mail) fica legível em tinta preta. */
    .site-footer {
        padding-block: var(--space-6);
        color: #000;
        background: #fff;
        border-top: 1px solid #000;
        border-radius: 0;
    }

    .site-footer__contact-title,
    .site-footer__copy,
    .site-footer__text,
    .footer-col__title,
    .footer-link,
    .footer-channel__text strong,
    .footer-channel__text small {
        color: #000;
    }

    .footer-brand__plate,
    .footer-channel,
    .footer-served__item {
        background: #fff;
        border-color: #000;
        box-shadow: none;
    }

    /* Ícone vermelho chapado num ladrilho de 40px é tinta jogada fora. */
    .footer-channel__icon,
    .footer-channel__arrow,
    .footer-social {
        display: none;
    }

    /* No papel a banda cinza da seção Sobre viraria uma folha inteira
       chapada — e o painel girado atrás do retrato, uma sombra sem sentido. */
    .about {
        background: #fff;
    }

    .about__stage::before {
        display: none;
    }

    .header {
        position: static;
    }

    .hero {
        padding-block: var(--space-8);
    }

    /* No papel as superfícies escuras viram tinta desperdiçada: os dois cards
       de formato imprimem como os demais, só com a borda mais marcada. */
    .consulting-card--brand,
    .consulting-card--dark {
        color: #000;
        background: #fff;
        border-color: #000;
        box-shadow: none;
    }

    .consulting-card--brand .consulting-card__title,
    .consulting-card--dark .consulting-card__title,
    .consulting-card--brand .consulting-card__text,
    .consulting-card--dark .consulting-card__text,
    .consulting-card--brand .consulting-card__list li,
    .consulting-card--dark .consulting-card__link {
        color: #000;
    }

    body {
        color: #000;
        background: #fff;
    }
}
