/* ================================================================
   TYPOGRAPHY — Semantic classes for the design system
   Depends on: base.css
================================================================ */

/* ── Section label / heading pattern ────────────────────────── */

.section-label {
  display: block;
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semibold);
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
  color: var(--text-label);
  margin-bottom: var(--space-4);
}

.section-title {
  font-family: var(--font-display);
  font-size: var(--text-2xl);
  font-weight: var(--weight-regular);
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-display);
  color: var(--text-heading);
  margin-bottom: var(--space-3);
}

.section-sub {
  font-family: var(--font-body);
  font-size: var(--text-base);
  font-weight: var(--weight-light);
  line-height: var(--leading-relaxed);
  color: var(--text-subtle);
  margin-bottom: var(--space-12);
}

/* ── Chapter pattern (homepage sticky panels) ────────────────── */

.chapter-label {
  display: block;
  font-family: var(--font-body);
  font-size: 0.95rem;
  font-weight: var(--weight-semibold);
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
  color: var(--text-label);
  margin-bottom: var(--space-4);
}

.chapter-title {
  font-family: var(--font-display);
  font-size: var(--text-3xl);
  font-weight: var(--weight-regular);
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-display);
  color: var(--text-on-dark);
  margin-bottom: var(--space-6);
  /* Restore subpixel antialiasing: body sets antialiased (thinner),
     but Bodoni Moda SC at display sizes needs full stroke weight */
  -webkit-font-smoothing: subpixel-antialiased;
  -moz-osx-font-smoothing: auto;
}

.chapter-subtitle {
  font-family: var(--font-body);
  font-size: var(--text-xl);
  font-weight: var(--weight-light);
  line-height: var(--leading-relaxed);
  color: var(--text-on-dark-muted);
  margin-bottom: var(--space-10);
}

/* ── Stat block ──────────────────────────────────────────────── */

.stat-number {
  font-family: var(--font-display);
  font-size: var(--text-stat);
  font-weight: var(--weight-regular);
  line-height: 1;
  color: var(--accent);
}

.stat-unit {
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-medium);
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  color: var(--accent-muted);
  margin-top: var(--space-1);
}

.stat-place {
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: var(--weight-medium);
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  color: var(--text-subtle);
  margin-top: var(--space-1);
}

/* ── Buttons ─────────────────────────────────────────────────── */

.btn {
  display: inline-block;
  font-family: var(--font-body);
  font-weight: var(--weight-semibold);
  letter-spacing: var(--tracking-wider);
  text-transform: uppercase;
  border: var(--border-width) solid transparent;
  border-radius: var(--radius-none);
  cursor: pointer;
  transition:
    background-color var(--duration-base) var(--ease-default),
    color            var(--duration-base) var(--ease-default),
    border-color     var(--duration-base) var(--ease-default);
  text-decoration: none;
  line-height: 1;
}

/* Primary — gold fill */
.btn--primary {
  background-color: var(--accent);
  color: var(--color-navy);
  border-color: var(--accent);
}
.btn--primary:hover {
  background-color: transparent;
  color: var(--accent);
}

/* Outline — gold border */
.btn--outline {
  background-color: transparent;
  color: var(--accent);
  border-color: var(--accent);
}
.btn--outline:hover {
  background-color: var(--accent);
  color: var(--color-navy);
}

/* Outline navy — on light sections */
.btn--outline-navy {
  background-color: transparent;
  color: var(--color-blue-deep);
  border-color: var(--color-blue-deep);
}
.btn--outline-navy:hover {
  background-color: var(--color-blue-deep);
  color: var(--color-white);
}

/* Sizes */
.btn--sm  { font-size: var(--text-xs);  padding: 10px 22px; }
.btn--md  { font-size: var(--text-sm);  padding: 12px 28px; }
.btn--lg  { font-size: var(--text-base); padding: 16px 40px; }
.btn--hero { font-size: var(--text-base); padding: 18px 48px; }

/* Text link button */
.btn-text {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-family: var(--font-body);
  font-size: var(--text-md);
  font-weight: var(--weight-semibold);
  letter-spacing: var(--tracking-wider);
  text-transform: uppercase;
  color: var(--accent);
  border-bottom: var(--border-width) solid var(--border-gold-strong);
  padding-bottom: 2px;
  text-decoration: none;
  transition:
    gap              var(--duration-fast) var(--ease-default),
    border-color     var(--duration-fast) var(--ease-default);
}
.btn-text:hover {
  color: var(--accent);
  gap: var(--space-4);
  border-color: var(--accent);
}

/* ── Brand statement ──────────────────────────────────────────── */

.brand-statement {
  font-family: var(--font-display);
  font-size: var(--text-hero);
  font-weight: var(--weight-regular);
  font-style: italic;
  line-height: var(--leading-normal);
  color: var(--text-heading);
  text-align: center;
}

/* ── Contact block ───────────────────────────────────────────── */

.contact-label {
  display: block;
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semibold);
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: var(--space-1);
}

.contact-value {
  font-family: var(--font-body);
  font-size: var(--text-base);
  font-weight: var(--weight-light);
  color: var(--text-primary);
}
