/* ===================================
   ZARMIQUO — Typography
   zm-typography.css
   =================================== */

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,600;0,700;0,800;1,400;1,600&family=Source+Serif+4:ital,wght@0,300;0,400;0,600;1,300;1,400&family=DM+Sans:wght@300;400;500;600;700&family=DM+Mono:wght@400;500&display=swap');

/* ─── Typographic Scale ───────────────── */

.zm-display-xl {
  font-family: var(--zm-font-display);
  font-size: clamp(3rem, 7vw, 5rem);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -0.03em;
}

.zm-display-lg {
  font-family: var(--zm-font-display);
  font-size: clamp(2.2rem, 5vw, 3.5rem);
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -0.02em;
}

.zm-display-md {
  font-family: var(--zm-font-display);
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  font-weight: 700;
  line-height: 1.2;
}

.zm-title-lg {
  font-family: var(--zm-font-display);
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.3;
}

.zm-title-md {
  font-family: var(--zm-font-display);
  font-size: 1.2rem;
  font-weight: 600;
  line-height: 1.4;
}

/* ─── Body Text ────────────────────────── */

.zm-body-lg {
  font-family: var(--zm-font-body);
  font-size: 1.1rem;
  line-height: 1.75;
  color: var(--zm-text-body);
}

.zm-body-md {
  font-family: var(--zm-font-body);
  font-size: 0.97rem;
  line-height: 1.7;
  color: var(--zm-text-body);
}

.zm-body-sm {
  font-family: var(--zm-font-body);
  font-size: 0.88rem;
  line-height: 1.65;
  color: var(--zm-text-muted);
}

/* ─── UI Text ──────────────────────────── */

.zm-ui-label {
  font-family: var(--zm-font-ui);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.zm-ui-caption {
  font-family: var(--zm-font-ui);
  font-size: 0.78rem;
  color: var(--zm-text-muted);
}

.zm-ui-sm {
  font-family: var(--zm-font-ui);
  font-size: 0.85rem;
  color: var(--zm-text-body);
}

/* ─── Special Text Styles ──────────────── */

.zm-dropcap::first-letter {
  font-family: var(--zm-font-display);
  font-size: 4.2em;
  font-weight: 700;
  float: left;
  line-height: 0.75;
  margin: 0.1em 0.12em 0 0;
  color: var(--zm-navy);
}

.zm-lead {
  font-size: 1.2rem;
  line-height: 1.7;
  color: var(--zm-text-body);
  font-weight: 300;
}

.zm-pullquote {
  font-family: var(--zm-font-display);
  font-size: 1.4rem;
  font-style: italic;
  line-height: 1.5;
  color: var(--zm-navy);
  padding: 24px 32px;
  border-left: 4px solid var(--zm-gold);
  background: var(--zm-gold-pale);
  border-radius: 0 var(--zm-radius) var(--zm-radius) 0;
  margin: 32px 0;
}

/* ─── Article Typography ───────────────── */

.zm-article-meta-line {
  display: flex;
  align-items: center;
  gap: 16px;
  font-family: var(--zm-font-ui);
  font-size: 0.82rem;
  color: var(--zm-text-muted);
  margin-bottom: 32px;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--zm-border);
  flex-wrap: wrap;
}

.zm-article-meta-line .zm-sep {
  width: 4px;
  height: 4px;
  background: var(--zm-border);
  border-radius: 50%;
}

.zm-reading-time {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

/* ─── Numbered Section Headings ────────── */

.zm-numbered-heading {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  margin: 48px 0 20px;
}

.zm-numbered-heading .zm-num {
  font-family: var(--zm-font-display);
  font-size: 2.5rem;
  font-weight: 800;
  color: var(--zm-gold);
  line-height: 1;
  opacity: 0.5;
  flex-shrink: 0;
}

.zm-numbered-heading h2 {
  border: none;
  padding: 0;
  margin: 0;
}

/* ─── Section Title Block ──────────────── */

.zm-section-title-block {
  margin-bottom: 48px;
}

.zm-section-title-block .zm-label {
  display: block;
  margin-bottom: 10px;
}

.zm-section-title-block p {
  color: var(--zm-text-muted);
  font-size: 1.05rem;
  max-width: 540px;
}

/* ─── Inline Highlights ────────────────── */

.zm-highlight {
  background: linear-gradient(180deg, transparent 55%, rgba(200,169,110,0.3) 55%);
  padding: 0 2px;
}

.zm-text-gold { color: var(--zm-gold); }
.zm-text-teal { color: var(--zm-teal); }
.zm-text-navy { color: var(--zm-navy); }
.zm-text-white { color: #fff; }

/* ─── Code / Mono ──────────────────────── */

code {
  font-family: var(--zm-font-mono);
  font-size: 0.88em;
  background: rgba(15,31,61,0.06);
  padding: 2px 6px;
  border-radius: 4px;
  color: var(--zm-navy);
}

/* ─── Links in Content ─────────────────── */

.zm-article-content a {
  color: var(--zm-teal);
  border-bottom: 1px solid rgba(42,124,138,0.3);
  transition: border-color var(--zm-transition);
}

.zm-article-content a:hover {
  color: var(--zm-teal);
  border-color: var(--zm-teal);
}

/* ─── About Page Bio ───────────────────── */

.zm-bio-intro {
  font-size: 1.25rem;
  font-weight: 300;
  line-height: 1.75;
  color: var(--zm-text-body);
  border-left: 4px solid var(--zm-gold);
  padding-left: 24px;
  margin-bottom: 32px;
}

.zm-value-item {
  display: flex;
  gap: 16px;
  margin-bottom: 24px;
}

.zm-value-icon {
  width: 44px;
  height: 44px;
  background: var(--zm-navy);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--zm-gold);
  font-size: 1.1rem;
  flex-shrink: 0;
}

.zm-value-content h4 {
  font-size: 1rem;
  margin-bottom: 4px;
}

.zm-value-content p {
  font-size: 0.9rem;
  color: var(--zm-text-muted);
  margin: 0;
}

/* ─── Timeline ──────────────────────────── */

.zm-timeline {
  position: relative;
  padding-left: 40px;
}

.zm-timeline::before {
  content: '';
  position: absolute;
  left: 12px;
  top: 8px;
  bottom: 8px;
  width: 2px;
  background: var(--zm-border);
}

.zm-timeline-item {
  position: relative;
  margin-bottom: 36px;
}

.zm-timeline-item::before {
  content: '';
  position: absolute;
  left: -34px;
  top: 6px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--zm-gold);
  border: 2px solid #fff;
  box-shadow: 0 0 0 3px var(--zm-gold-pale);
}

.zm-timeline-year {
  font-family: var(--zm-font-ui);
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--zm-teal);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: 4px;
}

.zm-timeline-title {
  font-size: 1rem;
  font-weight: 700;
  margin-bottom: 6px;
}

.zm-timeline-text {
  font-size: 0.9rem;
  color: var(--zm-text-muted);
  margin: 0;
}
