/* ==========================================================================
   TYPOGRAPHY.CSS — Type System
   Option 3: Modern Tech / Neo-Corporate Dark Theme
   SRS Management Website
   ========================================================================== */

/* ---- Headings: Display (h1, h2) ---- */
h1,
.h1 {
  font-family: var(--font-display);
  font-size: var(--text-h1);
  font-weight: 600;
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-tight);
  color: var(--color-text);
}

h2,
.h2 {
  font-family: var(--font-display);
  font-size: var(--text-h2);
  font-weight: 600;
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-tight);
  color: var(--color-text);
}

/* ---- Headings: UI (h3–h6) ---- */
h3,
.h3 {
  font-family: var(--font-body);
  font-size: var(--text-h3);
  font-weight: 600;
  line-height: var(--leading-snug);
  color: var(--color-text);
}

h4,
.h4 {
  font-family: var(--font-body);
  font-size: 1.125rem;
  font-weight: 600;
  line-height: var(--leading-snug);
  color: var(--color-text);
}

h5,
.h5 {
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 600;
  line-height: var(--leading-snug);
  color: var(--color-text);
}

h6,
.h6 {
  font-family: var(--font-body);
  font-size: var(--text-small);
  font-weight: 600;
  line-height: var(--leading-snug);
  color: var(--color-text);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* ---- Body Text ---- */
p,
.body-text {
  font-family: var(--font-body);
  font-size: var(--text-body);
  font-weight: 400;
  line-height: var(--leading-relaxed);
  color: var(--color-muted);
}

.text-lg {
  font-size: 1.125rem;
  line-height: var(--leading-relaxed);
}

.text-sm {
  font-size: var(--text-small);
  line-height: var(--leading-normal);
}

.text-xs {
  font-size: var(--text-caption);
  line-height: var(--leading-normal);
}

/* ---- Section Number ---- */
.section-number {
  font-family: var(--font-mono);
  font-size: clamp(5rem, 8vw, 10rem);
  font-weight: 700;
  line-height: 1;
  color: var(--color-accent);
  opacity: 0.08;
  position: absolute;
  top: -0.15em;
  left: -0.05em;
  pointer-events: none;
  user-select: none;
}

/* ---- Section Label ---- */
.section-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-mono);
  font-size: var(--text-caption);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: var(--tracking-wide);
  color: var(--color-accent);
  margin-bottom: var(--space-md);
}

.section-label::before {
  content: '\2014';  /* em dash */
  color: var(--color-accent);
}

/* ---- Monospace / Code ---- */
code,
kbd,
samp,
.mono {
  font-family: var(--font-mono);
  font-size: 0.875em;
}

code {
  padding: 2px 6px;
  background-color: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  color: var(--color-accent);
}

pre {
  padding: var(--space-md);
  background-color: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  overflow-x: auto;
}

pre code {
  padding: 0;
  background: none;
  border: none;
  border-radius: 0;
  font-size: var(--text-small);
  color: var(--color-text);
}

/* ---- Text Gradient ---- */
.text-gradient {
  background: linear-gradient(135deg, var(--color-accent) 0%, #0066FF 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* ---- Blockquote ---- */
blockquote {
  position: relative;
  padding: var(--space-md) var(--space-lg);
  border-left: 3px solid var(--color-accent);
  font-style: italic;
  color: var(--color-text);
  opacity: 0.85;
}

blockquote p {
  color: var(--color-text);
  opacity: 0.85;
}

blockquote cite {
  display: block;
  margin-top: var(--space-sm);
  font-family: var(--font-mono);
  font-size: var(--text-small);
  font-style: normal;
  color: var(--color-muted);
}

/* ---- Utility Classes ---- */
.text-accent {
  color: var(--color-accent);
}

.text-muted {
  color: var(--color-muted);
}

.text-light {
  color: var(--color-text);
}

.text-center {
  text-align: center;
}

.text-right {
  text-align: right;
}

.text-uppercase {
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.text-balance {
  text-wrap: balance;
}

.font-display {
  font-family: var(--font-display);
}

.font-mono {
  font-family: var(--font-mono);
}

.font-semibold {
  font-weight: 600;
}

.font-bold {
  font-weight: 700;
}

/* ---- Lead Paragraph ---- */
.lead {
  font-size: 1.125rem;
  line-height: var(--leading-relaxed);
  color: var(--color-muted);
  max-width: 600px;
}

/* ---- Inline Link (when underline needed) ---- */
.link-inline {
  color: var(--color-accent);
  text-decoration: underline;
  text-decoration-color: rgba(0, 212, 255, 0.3);
  text-underline-offset: 3px;
  transition: text-decoration-color var(--duration-fast) var(--ease-out);
}

.link-inline:hover {
  text-decoration-color: var(--color-accent);
}
