/* =====================================================
   NEWCASTLE IDIOMAS — SISTEMA TIPOGRÁFICO v2.0.1

   Este é o único arquivo responsável por pesos, ritmo,
   hierarquia e legibilidade das fontes. Ele deve ser
   carregado por último em todas as páginas.
===================================================== */

:root {
    --nci-font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
    --nci-font-regular: 400;
    --nci-font-medium: 500;
    --nci-font-semibold: 600;
    --nci-font-bold: 700;
    --nci-leading-body: 1.65;
    --nci-leading-title: 1.08;
    --nci-leading-card: 1.22;
}

html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

body,
button,
input,
select,
textarea {
    font-family: var(--nci-font-sans);
}

body {
    font-weight: var(--nci-font-regular);
    line-height: var(--nci-leading-body);
    letter-spacing: 0;
}

p,
li,
dd,
dt,
input,
select,
textarea,
option {
    font-weight: var(--nci-font-regular);
}

input::placeholder,
textarea::placeholder {
    font-weight: var(--nci-font-regular);
}

strong,
b {
    font-weight: var(--nci-font-semibold);
}

h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2 {
    margin-top: 0;
    font-family: var(--nci-font-sans);
    text-wrap: balance;
}

h1,
.h1,
.hero-copy h1,
.page-hero h1,
.page-title {
    font-weight: var(--nci-font-bold);
    letter-spacing: -0.012em;
    line-height: 1.08;
}

h2,
.h2,
.section-heading h2,
.page-section h2,
.method-copy h2,
.exam-band h2,
.cta-panel h2,
.faq-intro h2,
.franchise-copy h2,
.lead-form-card h2,
.lead-panel h2,
.modal-card h2,
.modal-box h2,
.legal-modal h2,
.cookie-modal h2,
.coffee-break-content h2,
.nci-promo-content h2 {
    font-weight: var(--nci-font-bold);
    letter-spacing: -0.008em;
    line-height: 1.12;
}

h3,
h4,
h5,
h6,
.course-card h3,
.course-card-body h3,
.course-detail-text h3,
.course-showcase-body h3,
.advantage-card h3,
.exam-card h3,
.exam-choice-body h3,
.feature-card h3,
.timeline-card h3,
.timeline-modern h3,
.module-card h3,
.unit-card h3,
.unit-card-top h3,
.unit-mini-card h3,
.benefit-strip h3,
.info-pill-grid h3,
.partner-card h3,
.franchise-support-grid h3,
.footer h3,
.modal-box h3,
.video-card-caption strong,
.faq-question span {
    font-weight: var(--nci-font-semibold);
    letter-spacing: -0.002em;
    line-height: 1.28;
}

.section-heading p,
.lead,
.hero-copy p,
.page-hero p,
.course-card p,
.feature-card p,
.timeline-card p,
.partner-card p,
.modal-box p,
.coffee-break-translation,
.coffee-break-example,
.nci-promo-text {
    font-weight: var(--nci-font-regular);
}

.main-nav a,
.main-nav > a,
.nav-dropdown-toggle,
.btn,
.btn-pill,
button[type="submit"],
summary,
.faq-list summary,
.info-accordion-item summary,
.unit-mini-actions a,
.unit-socials a,
.cookie-link,
.cookie-accept,
.whatsapp-fab,
.coffee-break-actions button,
.nci-promo-actions a {
    font-weight: var(--nci-font-semibold);
}

.btn,
.btn-pill,
.coffee-break-actions button,
.nci-promo-actions a {
    letter-spacing: 0.055em;
}

label,
.form-field label,
.units-filter-field label,
.whatsapp-panel label,
.partners-page .form-field label:not(.form-consent),
.topbar-whatsapp-label {
    font-weight: var(--nci-font-medium);
}

.section-kicker,
.kicker,
.mini-label,
.modal-eyebrow,
.coffee-break-kicker,
.nci-promo-eyebrow,
.module-card span,
.badge-row span,
.timeline-modern span,
.unit-city,
.whatsapp-panel-kicker,
.video-label,
.online-popup-heading span,
.brand-logo-slot,
.partner-logo-slot,
.form-status-icon,
.inline-policy-link,
.footer-legal-link {
    font-weight: var(--nci-font-semibold);
}

.feature-number,
.timeline-year,
.testimonial-avatar,
.google-g,
.partners-pagination button,
.quiz-progress strong,
.result-level,
.score-number {
    font-weight: var(--nci-font-bold);
}

/* O desktop recebe mais respiro, sem alterar a composição mobile. */
@media (min-width: 992px) {
    /*
       Mantém a família tipográfica original do site e aplica uma
       hierarquia intermediária no desktop: mais presença do que a
       primeira revisão da v2.0.1, sem retornar ao peso excessivo.
    */
    body,
    p,
    li,
    dd,
    dt,
    input,
    select,
    textarea,
    option {
        font-weight: 400;
    }

    strong,
    b {
        font-weight: 600;
    }

    h1,
    h2,
    .h1,
    .h2,
    .hero-copy h1,
    .page-hero h1,
    .page-title,
    .section-heading h2,
    .page-section h2,
    .method-copy h2,
    .exam-band h2,
    .cta-panel h2,
    .faq-intro h2,
    .franchise-copy h2,
    .lead-form-card h2,
    .lead-panel h2,
    .modal-card h2,
    .modal-box h2,
    .legal-modal h2,
    .cookie-modal h2,
    .coffee-break-content h2,
    .nci-promo-content h2 {
        font-weight: 700;
    }

    h3,
    h4,
    h5,
    h6,
    .course-card h3,
    .course-card-body h3,
    .course-detail-text h3,
    .course-showcase-body h3,
    .advantage-card h3,
    .exam-card h3,
    .exam-choice-body h3,
    .feature-card h3,
    .timeline-card h3,
    .timeline-modern h3,
    .module-card h3,
    .unit-card h3,
    .unit-card-top h3,
    .unit-mini-card h3,
    .benefit-strip h3,
    .info-pill-grid h3,
    .partner-card h3,
    .franchise-support-grid h3,
    .footer h3,
    .modal-box h3,
    .faq-question span {
        font-weight: 600;
    }

    .main-nav a,
    .main-nav > a,
    .nav-dropdown-toggle,
    .btn,
    .btn-pill,
    button[type="submit"],
    summary,
    .faq-list summary,
    .info-accordion-item summary,
    .unit-mini-actions a,
    .unit-socials a,
    .cookie-link,
    .cookie-accept,
    .coffee-break-actions button,
    .nci-promo-actions a {
        font-weight: 600;
    }

    label,
    .form-field label,
    .units-filter-field label,
    .whatsapp-panel label,
    .partners-page .form-field label:not(.form-consent),
    .topbar-whatsapp-label {
        font-weight: 500;
    }

    body {
        line-height: 1.68;
    }

    /*
       No desktop, títulos grandes precisam de espaço suficiente entre
       letras e linhas. Os valores anteriores comprimiam palavras longas,
       sobretudo nas chamadas institucionais da home e das páginas internas.
    */
    h1,
    .h1,
    .hero-copy h1,
    .page-hero h1,
    .page-title {
        line-height: 1.11 !important;
        letter-spacing: -0.004em !important;
    }

    h2,
    .h2,
    .section-heading h2,
    .page-section h2,
    .method-copy h2,
    .exam-band h2,
    .cta-panel h2,
    .faq-intro h2,
    .franchise-copy h2,
    .lead-form-card h2,
    .lead-panel h2,
    .modal-card h2,
    .modal-box h2,
    .legal-modal h2,
    .cookie-modal h2,
    .coffee-break-content h2,
    .nci-promo-content h2 {
        line-height: 1.16 !important;
        letter-spacing: -0.002em !important;
    }

    /* Chamadas longas recebem um pouco mais de ritmo vertical. */
    .franchise-copy h2,
    .method-copy h2,
    .exam-band h2,
    .cta-panel h2,
    .lead-panel h2,
    .lead-form-card h2 {
        line-height: 1.18 !important;
        letter-spacing: 0 !important;
    }

    h3,
    h4,
    h5,
    h6,
    .course-card h3,
    .course-card-body h3,
    .course-detail-text h3,
    .course-showcase-body h3,
    .advantage-card h3,
    .exam-card h3,
    .exam-choice-body h3,
    .feature-card h3,
    .timeline-card h3,
    .timeline-modern h3,
    .module-card h3,
    .unit-card h3,
    .unit-card-top h3,
    .unit-mini-card h3,
    .benefit-strip h3,
    .info-pill-grid h3,
    .partner-card h3,
    .franchise-support-grid h3,
    .footer h3,
    .modal-box h3,
    .faq-question span {
        line-height: 1.32 !important;
        letter-spacing: 0 !important;
    }

    .hero-copy p,
    .page-hero p,
    .section-heading p,
    .lead,
    .franchise-copy p,
    .method-copy p,
    .cta-panel p,
    .course-card p,
    .feature-card p,
    .partner-card p {
        line-height: 1.70;
    }

    .footer p,
    .footer li,
    .footer a {
        line-height: 1.64;
    }

    /*
       Títulos muito grandes, especialmente nos heróis das páginas,
       recebem ainda mais respiro para evitar que letras largas se
       encostem visualmente em monitores desktop.
    */
    .page-hero h1,
    .partner-hero h1,
    .hero-copy h1,
    .franchise-hero h1 {
        line-height: 1.12 !important;
        letter-spacing: 0 !important;
    }
}

@media (max-width: 991px) {
    h1,
    .hero-copy h1,
    .page-hero h1,
    .page-title {
        letter-spacing: -0.032em;
    }

    h2,
    .section-heading h2,
    .page-section h2 {
        letter-spacing: -0.022em;
    }
}
