/* Global Typography Stacks */
:root {
  --site-serif: "Times New Roman", Times, "Times Roman", Georgia, serif;
  --site-sans: "Plus Jakarta Sans", "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;

  /* Nudge Bootstrap base defaults */
  --bs-font-sans-serif: var(--site-sans);
  --bs-body-font-family: var(--site-serif); /* Base body reading text defaults to serif */
}

/* 1. SERIF ELEMENTS - Mainly reading text blocks that look great justified */
html, body, p, li, .card-text, .lead, small {
  font-family: var(--site-serif) !important;
}

/* 2. SANS-SERIF ELEMENTS - Headings and UI elements for a crisp, modern look */
h1, h2, h3, h4, h5, h6,
.display-1, .display-2, .display-3, .display-4, .display-5, .display-6,
.navbar, .dropdown-menu, .offcanvas, .modal,
.card-header, .card-title, .list-group, .breadcrumb,
.btn, .form-control, .form-select, .form-check-label,
.table, .badge, .alert, .pagination,
a, span:not(.serif-text) {
  font-family: var(--site-sans) !important;
}

/* --- TEXT ALIGNMENT & JUSTIFICATION RULES --- */

/* Justify standard paragraphs, list items, and text blocks */
p, li, .lead, .card-text {
  text-align: justify !important;
}

/* Explicit left-alignment helper to override global justification */
.p_left, .p-left {
  text-align: left !important;
}

/* Optional helper: If you have multi-line titles or content blocks you want justified */
.text-justify {
  text-align: justify !important;
}

/* If you truly want *everything* serif (including code) uncomment: */
/*
pre, code, kbd, samp { font-family: var(--site-serif) !important; }
*/

/* Adjustments: Sans-serif headings look cleaner with slightly tighter tracking */
h1, h2, h3, .display-1, .display-2, .display-3 {
  letter-spacing: -0.02em;
  font-weight: 700;
}
