/* ============================================================
   HUBIS v2 — Typography
   Heading, body, tabular numbers, link.
   ============================================================ */

h1, h2, h3, h4, h5, h6 {
    font-family: var(--ff-display);
    font-weight: var(--fw-semibold);
    line-height: var(--lh-tight);
    letter-spacing: var(--ls-heading);
    color: var(--text-primary);
    margin: 0 0 var(--space-3) 0;
}

h1, .v2-h1 {
    font-size: var(--fs-display);
    letter-spacing: var(--ls-display);
    font-weight: var(--fw-bold);
}

h2, .v2-h2 {
    font-size: var(--fs-3xl);
    font-weight: var(--fw-semibold);
}

h3, .v2-h3 {
    font-size: var(--fs-2xl);
    font-weight: var(--fw-semibold);
}

h4, .v2-h4 {
    font-size: var(--fs-xl);
    font-weight: var(--fw-semibold);
}

h5, .v2-h5 {
    font-size: var(--fs-lg);
    font-weight: var(--fw-semibold);
}

h6, .v2-h6 {
    font-size: var(--fs-md);
    font-weight: var(--fw-semibold);
    text-transform: uppercase;
    letter-spacing: var(--ls-caps);
    color: var(--text-tertiary);
}

p {
    margin: 0 0 var(--space-3) 0;
    line-height: var(--lh-normal);
    color: var(--text-secondary);
}

/* Page heading + eyebrow */
.v2-page-heading {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    margin-bottom: var(--space-5);
}

.v2-page-heading__eyebrow {
    font-size: var(--fs-xs);
    font-weight: var(--fw-medium);
    text-transform: uppercase;
    letter-spacing: var(--ls-caps);
    color: var(--text-tertiary);
}

.v2-page-heading__title {
    font-family: var(--ff-display);
    font-size: var(--fs-2xl);
    font-weight: var(--fw-semibold);
    letter-spacing: var(--ls-heading);
    color: var(--text-primary);
    margin: 0;
}

.v2-page-heading__subtitle {
    font-size: var(--fs-md);
    color: var(--text-tertiary);
    margin: 0;
}

/* Text utilities */
.v2-text-display {
    font-family: var(--ff-display);
    font-size: var(--fs-display);
    font-weight: var(--fw-bold);
    line-height: var(--lh-tight);
    letter-spacing: var(--ls-display);
}

.v2-text-lead {
    font-size: var(--fs-lg);
    line-height: var(--lh-snug);
    color: var(--text-secondary);
}

.v2-text-body { font-size: var(--fs-base); line-height: var(--lh-normal); }
.v2-text-sm   { font-size: var(--fs-sm);   line-height: var(--lh-snug); }
.v2-text-xs   { font-size: var(--fs-xs);   line-height: var(--lh-snug); }

.v2-text-muted { color: var(--text-tertiary); }
.v2-text-secondary { color: var(--text-secondary); }
.v2-text-brand { color: var(--text-brand); }
.v2-text-success { color: var(--success-700); }
.v2-text-warning { color: var(--warning-700); }
.v2-text-danger  { color: var(--danger-700); }

.v2-text-eyebrow {
    font-size: var(--fs-xs);
    font-weight: var(--fw-semibold);
    text-transform: uppercase;
    letter-spacing: var(--ls-caps);
    color: var(--text-tertiary);
}

/* Sayisal hucreler — KPI, DataTable, finansal alanlar */
.v2-tabular,
.v2-tabular td,
.v2-tabular th {
    font-variant-numeric: tabular-nums lining-nums;
    font-feature-settings: 'tnum';
}

/* Mono */
.v2-mono { font-family: var(--ff-mono); }

/* Truncate */
.v2-truncate {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.v2-clamp-2 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.v2-clamp-3 {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
