/* === public_content.css — Shared typography system for all public pages ===
 *
 * 1. CSS custom properties in :root — single source of truth for all sizes.
 * 2. Reusable typography classes scoped under .lm-public (body class) to get
 *    specificity 0,2,0 — beats page-specific webpack-bundled CSS (0,1,0).
 */

/* ── Typography scale variables ──────────────────────────────────────────── */
:root {
    --font-size-hero-title:    clamp(2.8rem, 2vw + 2rem, 3.75rem);
    --font-size-hero-text:     clamp(1.1rem, .3vw + 1rem, 1.35rem);
    --font-size-section-title: clamp(1.8rem, .5vw + 1.5rem, 2.3rem);
    --font-size-card-title:    1.35rem;
    --font-size-body:          1rem;
    --font-size-meta:          .95rem;
    --line-height-body:        1.7;
}

/* ── Hero typography ─────────────────────────────────────────────────────── */
.lm-public .hero-title {
    font-size: var(--font-size-hero-title);
    font-weight: 700;
    line-height: 1.08;
    letter-spacing: -0.02em;
}

.lm-public .hero-text {
    font-size: var(--font-size-hero-text);
    line-height: var(--line-height-body);
    color: var(--text-mid, #4a5568);
    max-width: 40rem;
}

/* ── Section headings ────────────────────────────────────────────────────── */
.lm-public .section-title {
    font-size: var(--font-size-section-title);
    font-weight: 700;
    line-height: 1.25;
    color: var(--bs-dark);
    margin-bottom: 1.5rem;
}

.lm-public .section-subtitle {
    font-size: clamp(1rem, .3vw + 0.9rem, 1.15rem);
    line-height: var(--line-height-body);
    color: var(--bs-secondary-color);
}

/* ── Card titles ─────────────────────────────────────────────────────────── */
/* BS5 .card-title only sets margin-bottom — adding font-size/weight here is safe */
.lm-public .card-title {
    font-size: var(--font-size-card-title);
    font-weight: 700;
    line-height: 1.35;
}

/* ── Body / card text ────────────────────────────────────────────────────── */
.lm-public .content-text,
.lm-public .card-text,
.lm-public .section-text {
    font-size: var(--font-size-body);
    line-height: var(--line-height-body);
    color: var(--bs-secondary-color);
}

/* ── Form titles ─────────────────────────────────────────────────────────── */
.lm-public .form-title {
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.3;
    color: var(--bs-dark);
    margin-bottom: 1.25rem;
}

/* ── Metadata / secondary text ───────────────────────────────────────────── */
.lm-public .meta-text,
.lm-public .text-meta {
    font-size: var(--font-size-meta);
    line-height: 1.5;
}

/* ── Small text ──────────────────────────────────────────────────────────── */
.lm-public .small-text {
    font-size: 0.875rem;
    line-height: 1.5;
}

/* ── Bootstrap class overrides ───────────────────────────────────────────── */

/* font-size intentionally omitted — Bootstrap's 1rem default and btn-lg are correct */
.lm-public .btn {
    font-weight: 600;
}

.lm-public .btn-sm {
    font-size: var(--font-size-meta);
}

.lm-public .form-control,
.lm-public .form-select {
    font-size: var(--font-size-body);
    min-height: 2.9rem;
}

.lm-public .form-label {
    font-size: var(--font-size-meta);
    font-weight: 600;
}

/* ── Vacancy card font overrides (specificity 0,2,0 beats bundled 0,1,0) ── */
.lm-public .vac-card-title {
    font-size: 1.1rem;
    font-weight: 700;
    line-height: 1.35;
}

.lm-public .vac-card-meta {
    font-size: .875rem;
}

.lm-public .vac-card-desc {
    font-size: 1rem;
    line-height: 1.65;
    color: #4b5870;
}

/* ── Dept filter tab font overrides (+25%) ───────────────────────────────── */
.lm-public .vac-dept-tab-icon {
    font-size: 1.875rem;
}

.lm-public .vac-dept-tab-name {
    font-size: 1.1rem;
}

.lm-public .vac-dept-tab-cnt {
    font-size: .9rem;
}

