/* K-Digital typography controller (single place for font size / weight by level). ASCII only.
   Weights follow k-digital/aioffice: headings 700, titles/labels/buttons 600, body 400 (no 800).
   Sizes are fixed per level (same role = same size on every section/page).
   Selectors are scoped to .kd-page. !important is used on purpose so this file always wins over page CSS. */

:root {
    --kd-fs-h1: 50px;
    --kd-fs-h2: 42px;
    --kd-fs-title-lg: 32px;
    --kd-fs-h3: 22px;
    --kd-fs-h4: 18px;
    --kd-fs-lead: 18px;
    --kd-fs-body: 16px;
    --kd-fs-small: 14px;
    --kd-fs-num: 24px;
    --kd-fs-emph: 22px;
    --kd-fw-bold: 700;
    --kd-fw-semibold: 600;
    --kd-fw-medium: 500;
    --kd-fw-regular: 400;
    --kd-lh-title: 1.28;
    --kd-lh-text: 1.6;
}
@media (max-width: 767px) {
    :root {
        --kd-fs-h1: 32px;
        --kd-fs-h2: 28px;
        --kd-fs-title-lg: 24px;
        --kd-fs-h3: 19px;
        --kd-fs-h4: 16px;
        --kd-fs-lead: 16px;
        --kd-fs-body: 15px;
        --kd-fs-small: 13px;
        --kd-fs-num: 20px;
        --kd-fs-emph: 18px;
    }
}

/* ---- Level 1: page title (h1) ---- */
.kd-page .hero-title {
    font-size: var(--kd-fs-h1) !important;
    font-weight: var(--kd-fw-bold) !important;
    line-height: var(--kd-lh-title) !important;
}
.kd-page .hero-title em { font-size: inherit !important; font-weight: inherit !important; }

/* ---- Level 2: section title (h2) ---- */
.kd-page section .text-container h2,
.kd-page .section-final-cta h2 {
    font-size: var(--kd-fs-h2) !important;
    font-weight: var(--kd-fw-bold) !important;
    line-height: var(--kd-lh-title) !important;
}

.kd-page .section-final-cta h2 {
    text-align: center;
}

/* ---- Level 2b: large feature title inside a card/panel ---- */
.kd-page .summary-title,
.kd-page .benefit-banner h2,
.kd-page .band-text h2,
.kd-page .ae-panel h3,
.kd-page .outcome-card h3 {
    font-size: var(--kd-fs-title-lg) !important;
    font-weight: var(--kd-fw-bold) !important;
    line-height: var(--kd-lh-title) !important;
}

/* ---- Level 3: card title (h3) ---- */
.kd-page .problem-card h3,
.kd-page .ba-card h3,
.kd-page .tool-card h3,
.kd-page .why-card h3,
.kd-page .benefit-card h3,
.kd-page .rec-card h3,
.kd-page .cur-title h3,
.kd-page .info-title {
    font-size: var(--kd-fs-h3) !important;
    font-weight: var(--kd-fw-semibold) !important;
    line-height: 1.35 !important;
}

/* ---- Level 4: small title (h4) ---- */
.kd-page .ae-steps h4,
.kd-page .why-support h4,
.kd-page .faq-q-text {
    font-size: var(--kd-fs-h4) !important;
    font-weight: var(--kd-fw-semibold) !important;
    line-height: 1.4 !important;
}

/* ---- Emphasis lines (one-line highlights) ---- */
.kd-page .callout-main strong,
.kd-page .tool-bar strong,
.kd-page .wf-final strong,
.kd-page .ae-result strong,
.kd-page .ba-result,
.kd-page .benefit-days > span:last-child {
    font-size: var(--kd-fs-emph) !important;
    font-weight: var(--kd-fw-bold) !important;
}

/* ---- Lead text (section description / panel intro) ---- */
.kd-page section .text-container > p,
.kd-page .hero-desc,
.kd-page .section-final-cta .desc,
.kd-page .ae-panel > p,
.kd-page .outcome-card p,
.kd-page .benefit-text p,
.kd-page .band-text p,
.kd-page .callout-main span {
    font-size: var(--kd-fs-lead) !important;
    font-weight: var(--kd-fw-regular) !important;
    line-height: var(--kd-lh-text) !important;
}

.kd-page .section-final-cta .desc { text-align: center; }

.kd-page .callout-quote { font-size: var(--kd-fs-body) !important; font-weight: var(--kd-fw-regular) !important; }
.kd-page .callout-quote strong { font-weight: var(--kd-fw-semibold) !important; }

/* ---- Body text (card / list) ---- */
.kd-page .summary-desc,
.kd-page .problem-card p,
.kd-page .tool-card p,
.kd-page .why-card p,
.kd-page .why-support p,
.kd-page .benefit-card p,
.kd-page .rec-card p,
.kd-page .cur-title p,
.kd-page .ae-steps p,
.kd-page .ba-card li,
.kd-page .cur-lessons li,
.kd-page .faq-a p,
.kd-page .info-list,
.kd-page .info-list dt {
    font-size: var(--kd-fs-body) !important;
    font-weight: var(--kd-fw-regular) !important;
    line-height: var(--kd-lh-text) !important;
}
.kd-page .info-list dd { font-size: var(--kd-fs-body) !important; font-weight: var(--kd-fw-semibold) !important; }
.kd-page .cur-lessons li { line-height: 1.4 !important; }

/* ---- Small / meta text ---- */
.kd-page .summary-metrics span,
.kd-page .ba-steps span,
.kd-page .wf-text span,
.kd-page .benefit-note,
.kd-page .cur-tools li,
.kd-page .tool-bar li,
.kd-page .section-final-cta .meta,
.kd-page .rec-user {
    font-size: var(--kd-fs-small) !important;
    font-weight: var(--kd-fw-regular) !important;
}
.kd-page .rec-user,
.kd-page .tool-name,
.kd-page .why-metrics li,
.kd-page .info-badges span,
.kd-page .wf-final-flow,
.kd-page .cur-test,
.kd-page .band-list li,
.kd-page .ba-steps strong,
.kd-page .ae-result .lbl,
.kd-page .ae-result ul {
    font-size: var(--kd-fs-small) !important;
    font-weight: var(--kd-fw-semibold) !important;
}
.kd-page .wf-text strong { font-size: var(--kd-fs-h4) !important; font-weight: var(--kd-fw-semibold) !important; line-height: 1.35 !important; }
.kd-page .wf-no { font-size: var(--kd-fs-num) !important; font-weight: var(--kd-fw-bold) !important; }
.kd-page .ba-steps strong { font-size: var(--kd-fs-body) !important; }

/* ---- Labels, eyebrows, chips ---- */
.kd-page .kd-pill,
.kd-page .hero-eyebrow,
.kd-page .eyebrow,
.kd-page .eyebrow-slash,
.kd-page .eyebrow-line,
.kd-page .summary-chip,
.kd-page .benefit-chip,
.kd-page .benefit-days-chip,
.kd-page .ba-tag,
.kd-page .ae-label,
.kd-page .tag-opt,
.kd-page .tag-must,
.kd-page .tool-card .opt {
    font-size: var(--kd-fs-small) !important;
    font-weight: var(--kd-fw-semibold) !important;
}
.kd-page .tag-opt, .kd-page .tag-must, .kd-page .tool-card .opt { font-size: 12px !important; }
.kd-page .eyebrow-slash, .kd-page .eyebrow-line, .kd-page .eyebrow { letter-spacing: 0.06em !important; }

/* ---- Numbers ---- */
.kd-page .tool-card .no,
.kd-page .why-card .n,
.kd-page .oc-no,
.kd-page .summary-metrics strong,
.kd-page .cur-lessons b {
    font-weight: var(--kd-fw-bold) !important;
}
.kd-page .tool-card .no, .kd-page .why-card .n, .kd-page .summary-metrics strong { font-size: var(--kd-fs-num) !important; }
.kd-page .oc-no { font-size: var(--kd-fs-h4) !important; }
.kd-page .cur-lessons b { font-size: var(--kd-fs-small) !important; }
.kd-page .problem-card .num, .kd-page .ae-steps .n { font-size: var(--kd-fs-small) !important; font-weight: var(--kd-fw-bold) !important; }
.kd-page .info-pay strong { font-size: 30px !important; font-weight: var(--kd-fw-bold) !important; }
.kd-page .info-pay span { font-size: var(--kd-fs-body) !important; font-weight: var(--kd-fw-semibold) !important; }
.kd-page .benefit-days strong { font-size: 84px !important; font-weight: var(--kd-fw-bold) !important; }
.kd-page .cur-badge strong { font-size: 36px !important; font-weight: var(--kd-fw-bold) !important; }
.kd-page .cur-badge span, .kd-page .cur-badge em { font-size: 12px !important; font-weight: var(--kd-fw-semibold) !important; }

/* ---- Buttons / tabs ---- */
.kd-page .kd-btn,
.kd-page .info-apply,
.kd-page .info-call {
    font-size: var(--kd-fs-body) !important;
    font-weight: var(--kd-fw-semibold) !important;
}
.kd-page .info-apply, .kd-page .info-call, .kd-page .section-final-cta .kd-btn { font-size: var(--kd-fs-h4) !important; }
.kd-page .ae-tab { font-size: var(--kd-fs-body) !important; font-weight: var(--kd-fw-semibold) !important; }
.kd-page .tabbar-link,
.kd-page .tabbar-course-trigger,
.kd-page .tabbar-course-option {
    font-size: var(--kd-fs-small) !important;
    font-weight: var(--kd-fw-semibold) !important;
}

/* ---- Emphasis inside text keeps the parent size ---- */
.kd-page em { font-weight: inherit; }
