/* =========================================================
   NUVORA TYPOGRAPHY
   Brand fonts only (as on the approved landing page):
   Larken for headings, Plus Jakarta Sans for body and UI.
   No italics anywhere on the site.
========================================================= */

@font-face {
    font-family: "Larken";
    src: url("../fonts/Larken/larken-regular.woff2") format("woff2");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Larken";
    src: url("../fonts/Larken/larken-medium.woff2") format("woff2");
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Larken";
    src: url("../fonts/Larken/larken-bold.woff2") format("woff2");
    font-weight: 600 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Plus Jakarta Sans";
    src: url("../fonts/Plus_Jakarta_Sans/PlusJakartaSans-Variable.woff2") format("woff2-variations");
    font-weight: 200 800;
    font-style: normal;
    font-display: swap;
}

/* No italics: the brand uses upright Larken accents in colour instead */
*,
*::before,
*::after {
    font-style: normal !important;
    font-synthesis: none;
}


/* =========================================================
   TYPE SCALE (2026-10-17): one size for every section H2 across the site.
   46px desktop · 40px ≤1199 · 36px ≤991 · 30px ≤575.
   Hero titles, the banner H1 and card/form titles keep their own sizes.
========================================================= */
body section:not(.nuvora-hero):not(.page-title):not(.story-section):not(.services-section-six) h2:not(.npc-form-title):not(.nuvora-hero-h) {
    font-family: "Larken", Georgia, "Times New Roman", serif;
    font-size: 46px !important;
    line-height: 1.12 !important;
    font-weight: 400 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
}
@media (max-width: 1199px) {
    body section:not(.nuvora-hero):not(.page-title):not(.story-section):not(.services-section-six) h2:not(.npc-form-title):not(.nuvora-hero-h) { font-size: 40px !important; }
}
@media (max-width: 991px) {
    body section:not(.nuvora-hero):not(.page-title):not(.story-section):not(.services-section-six) h2:not(.npc-form-title):not(.nuvora-hero-h) { font-size: 36px !important; }
}
@media (max-width: 575px) {
    body section:not(.nuvora-hero):not(.page-title):not(.story-section):not(.services-section-six) h2:not(.npc-form-title):not(.nuvora-hero-h) { font-size: 30px !important; }
}

/* Footer column titles are H3 (they are not page sections); same look as before */
.main-footer .footer-widget h3 {
    position: relative;
    font-family: "Larken", Georgia, "Times New Roman", serif;
    font-weight: 600;
    color: #ffffff;
    font-size: 16px;
    line-height: 1.2em;
    letter-spacing: 0;
    margin-top: 0;
    margin-bottom: 24px;
    padding-bottom: 14px;
    text-transform: uppercase;
}
.main-footer .footer-widget h3:before {
    position: absolute;
    content: '';
    left: 0px;
    bottom: 0px;
    height: 2px;
    width: 50px;
    background-color: #e9c37a;
}


/* ============================================================
   Shared UI standards (buttons and tap targets)
   One size for every primary button; text links get a 44px tap area.
============================================================ */
.nuvora-hero-btn, .nva-about-btn, .nvk-cta, .theme-btn.btn-style-one, .nvm-btn, .nxc-btn,
.nvc-submit, .footer-cta, .tk2-btn, .pg-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    min-height: 54px !important;
    padding: 0 30px !important;
    margin-top: 0;
    box-sizing: border-box !important;
    font-family: "Plus Jakarta Sans", Arial, sans-serif !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: 1.5px !important;
    line-height: 1.2 !important;
    text-transform: uppercase !important;
    text-align: center !important;
    border-radius: 4px !important;
}
.footer-cta { margin-top: 22px !important; }
.nxc-link, .nvp-all-btn { display: inline-flex; align-items: center; min-height: 44px; }

@media (max-width: 575px) {
    .nuvora-hero-btn, .nva-about-btn, .nvk-cta, .theme-btn.btn-style-one, .nvm-btn, .nxc-btn,
    .nvc-submit, .footer-cta, .tk2-btn, .pg-btn {
        padding: 0 22px !important;
        font-size: 12.5px !important;
        letter-spacing: 1.2px !important;
    }
    .nvc-submit { width: 100%; }
}
@media (max-width: 360px) {
    .nuvora-hero-btn, .nva-about-btn, .nvk-cta, .theme-btn.btn-style-one, .nvm-btn, .nxc-btn,
    .nvc-submit, .footer-cta, .tk2-btn, .pg-btn {
        padding: 0 16px !important;
        font-size: 12px !important;
        letter-spacing: 1px !important;
    }
}

/* ============================================================
   Type scale: three paragraph sizes (16 lead, 15 body, 13.5 small)
   and one card-title size (24 desktop, 22 phones).
============================================================ */
.nva-about-lead, .nvk-lead, .nvf-lead { font-size: 16px !important; }
.ab-jr p, .ab-fam p, .tm-mm p, .tm-rel p, .tk2-sc p, .nfx-resp-grid p, .nfx-ship2-steps p,
.nfx-truth p, .ct-card p, .nvp-side p, .nvw-col p, .nvb-sr, .tm-always span { font-size: 15px !important; }
@media (min-width: 576px) { .tk2-wy p { font-size: 15px !important; } }

.tm-rel h3, .tm-trio h3, .ab-pillars h3, .tk2-card h3, .tk2-st h3, .nfx-steps2 h3, .nfx-ship2-steps h3,
.nfx-ship3-body h3, .nfx-detail-list h3, .bk-next h3, .pj-card h3, .pj-cap h3, .nab-panel-body h3,
.nab-card-body h3, .nfx-stage h3, .nfx-card h3, .tm-mm h3 { font-size: 24px !important; }
@media (max-width: 767px) {
    .tm-rel h3, .tm-trio h3, .ab-pillars h3, .tk2-card h3, .tk2-st h3, .nfx-steps2 h3, .nfx-ship2-steps h3,
    .nfx-ship3-body h3, .nfx-detail-list h3, .bk-next h3, .pj-card h3, .pj-cap h3, .nab-panel-body h3,
    .nab-card-body h3, .nfx-stage h3, .nfx-card h3 { font-size: 22px !important; }
    .tm-mm h3 { font-size: 20px !important; }
}
