/* Final Premium Noir typography layer: Prata for short semantic display text, Onest for UI. */
:root {
  --font-display: "Prata", Georgia, "Times New Roman", serif;
  --font-ui: "Onest", Inter, "Segoe UI", Arial, sans-serif;
  --serif: var(--font-display);
  --sans: var(--font-ui);
  --font-heading: var(--font-display);
  --font-body: var(--font-ui);
  --font-size-body: 16px;
  --font-size-reading: 17px;
  --font-size-control: 16px;
  --font-size-button: 15px;
  --font-size-label: 14px;
  --font-size-caption: 13.5px;
}

html {
  font-synthesis: none;
  text-rendering: optimizeLegibility;
}

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

body {
  font-size: var(--font-size-body);
  line-height: 1.6;
}

/* Display type is reserved for short, high-salience headings and results. */
.brand-title,
.page-title h1,
.route-copy h2,
.level-hero h1,
.practice-card h2,
.practice-section > summary::after,
.big-number,
.ring-inner strong,
.metric-value,
.funnel-row strong,
.funnel-total strong {
  font-family: var(--font-display);
  font-weight: 400;
}

h1,
h2,
.page-title h1 {
  font-family: var(--font-display);
  font-weight: 400;
}

h1 {
  font-size: clamp(36px, 4vw, 48px);
  line-height: 1.12;
  letter-spacing: -0.025em;
}

h2 {
  font-size: clamp(30px, 3vw, 38px);
  line-height: 1.18;
  letter-spacing: -0.02em;
}

/* Long chapter names remain readable in the UI face. */
.level-mini h4,
.level-main h3,
.level-row-title,
.card-title,
.card-subtitle,
.level-hero .level-title,
.level-meta-block,
.tabs,
.step,
.nav-label,
.mentor-section,
.mentor-card,
.training-lesson,
.training-content,
.message-text,
.ai-agent,
.analytics,
.dossier,
.legal-page {
  font-family: var(--font-ui);
}

.level-mini h4,
.level-main h3,
.card-title {
  font-weight: 600;
  line-height: 1.35;
}

.main p,
.card p,
.card li,
.card dd,
.training-lesson,
.training-content,
.message-text,
.mentor-section p,
.mentor-section li {
  font-size: var(--font-size-body);
  line-height: 1.65;
  max-width: 76ch;
}

.training-lesson,
.training-content,
.message-text {
  font-size: var(--font-size-reading);
}

.nav-label { font-size: 15px; font-weight: 600; }
.btn, button, [role="button"], input[type="submit"], input[type="button"] { font-size: var(--font-size-button); font-weight: 700; }
.btn-sm, .btn-ghost, .btn-icon, .icon-btn { font-size: 14px; }
input, textarea, select, option { font-family: var(--font-ui); font-size: var(--font-size-control); line-height: 1.45; }
input::placeholder, textarea::placeholder { font-family: var(--font-ui); font-size: 15px; opacity: 1; }
label, .form-label { font-size: var(--font-size-label); font-weight: 500; line-height: 1.4; }
[role="tab"], .tab, .step { font-size: 14px; font-weight: 600; }
.status, .badge, .chip { font-size: var(--font-size-caption); font-weight: 600; }
.legal-page, .legal-page * { font-family: var(--font-ui); }
.legal-page { font-size: var(--font-size-body); line-height: 1.7; }
.legal-page h1 { font-family: var(--font-ui); font-size: clamp(30px, 4vw, 42px); font-weight: 700; line-height: 1.2; }
.legal-page h2 { font-family: var(--font-ui); font-size: clamp(22px, 3vw, 28px); font-weight: 600; line-height: 1.3; }
.legal-page h3, .legal-page h4, .legal-page h5, .legal-page h6 { font-family: var(--font-ui); font-size: 19px; font-weight: 600; line-height: 1.4; }
.legal-document, .legal-document * { font-family: var(--font-ui); }
.legal-document h1 { font: 700 clamp(30px, 4vw, 42px)/1.2 var(--font-ui); letter-spacing: 0; }
.legal-document h2 { font: 600 clamp(22px, 3vw, 28px)/1.3 var(--font-ui); }
.legal-document h3, .legal-document h4, .legal-document h5, .legal-document h6 { font: 600 19px/1.4 var(--font-ui); }
.legal-document p, .legal-document li, .legal-document dd { font-size: 16px; line-height: 1.7; }
.auth-form input, .onboarding-form input, .onboarding-form textarea, .form-grid input, .form-grid textarea, .form-grid select { font-size: 16px; line-height: 1.45; }
.auth-form button, .onboarding-form button, .form-grid button { font-size: 15px; }
.auth-link, .auth-password-toggle { min-height: 44px; font-size: 15px; }
.form-hint, .field-error, .validation-error, .error-message { font-size: 14px; line-height: 1.5; }
.service-label, .meta, .metadata, .status-text, .progress-meta, .progress-note { font-size: 14px; }

@media (max-width: 680px) {
  body { font-size: var(--font-size-body); }
  .btn, button, [role="button"] { min-height: 44px; font-size: 15px; }
  .nav-label { font-size: 15px; }
  .level-mini h4, .level-main h3, .card-title { font-size: 18px; }
  .training-lesson, .training-content, .message-text { font-size: var(--font-size-reading); }
}

/* Final acceptance: meaningful status and support controls */
.status-pill,.type-badge,.file-size{font-size:14px;line-height:1.35}
.support-widget__button{font-family:var(--font-ui);font-size:14px;line-height:1.2;min-height:44px}

