/* ============================================================
   Fortuna Luna — Premium typography
   Display (Cormorant) ≠ Body (Inter) — clear visual separation
   ============================================================ */

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

body {
  background-color: var(--fl-bg-base);
  color: var(--fl-text-primary);
  font-family: var(--fl-font-sans);
  font-size: var(--fl-text-base);
  line-height: var(--fl-lh-normal);
  font-weight: 400;
  letter-spacing: 0.01em;
}

/* ---- DISPLAY: headlines (serif, light, bright, tight) ---- */
h1,
h2,
h3,
h4,
.fl-display {
  font-family: var(--fl-font-serif);
  font-weight: 300;
  line-height: var(--fl-lh-tight);
  letter-spacing: var(--fl-ls-tight);
  color: var(--fl-text-primary);
  text-wrap: balance;
}

h1 {
  font-size: var(--fl-text-hero);
  font-weight: 300;
  letter-spacing: -0.025em;
  line-height: 1.12;
  margin: 0 0 var(--fl-space-4);
}

h2 {
  font-size: var(--fl-text-3xl);
  font-weight: 300;
  letter-spacing: -0.02em;
  line-height: 1.18;
  margin-top: var(--fl-space-8);
  margin-bottom: var(--fl-space-3);
}

h3 {
  font-size: var(--fl-text-2xl);
  font-weight: 400;
  letter-spacing: -0.015em;
  line-height: 1.22;
  margin: 0 0 var(--fl-space-2);
}

h4 {
  font-size: var(--fl-text-xl);
  font-weight: 400;
  letter-spacing: -0.01em;
  line-height: 1.25;
  margin: 0 0 var(--fl-space-2);
}

/* ---- BODY: supporting copy (sans, secondary, open) ---- */
p,
.fl-body,
.seo-lead,
.fl-hero__subtitle {
  font-family: var(--fl-font-sans);
  font-size: var(--fl-text-base);
  font-weight: 400;
  letter-spacing: 0.01em;
  line-height: var(--fl-lh-relaxed);
  color: var(--fl-text-secondary);
}

.fl-container p,
.seo-main p,
.fl-hero__subtitle {
  max-width: 68ch;
}

li {
  font-family: var(--fl-font-sans);
  color: var(--fl-text-secondary);
  line-height: var(--fl-lh-normal);
  letter-spacing: 0.01em;
}

/* Bright body when emphasis is intentional */
strong,
b {
  font-weight: 600;
  color: var(--fl-text-primary);
  letter-spacing: 0;
}

/* ---- LABELS / EYEBROWS (sans caps, gold) ---- */
.fl-label,
.fl-hero__eyebrow,
.eyebrow {
  font-family: var(--fl-font-sans);
  font-size: var(--fl-text-xs);
  font-weight: 500;
  letter-spacing: var(--fl-ls-caps);
  text-transform: uppercase;
  color: var(--fl-gold);
  line-height: 1.3;
}

/* ---- NUMERALS (display serif) ---- */
.fl-numeral {
  font-family: var(--fl-font-serif);
  font-weight: 300;
  font-size: var(--fl-text-4xl);
  color: var(--fl-text-primary);
  letter-spacing: var(--fl-ls-tight);
  line-height: 1.15;
}

/* ---- QUOTES ---- */
blockquote {
  font-family: var(--fl-font-serif);
  font-style: italic;
  font-size: var(--fl-text-xl);
  font-weight: 300;
  color: var(--fl-gold);
  border-left: 1px solid var(--fl-gold-border);
  padding-left: var(--fl-space-4);
  margin: var(--fl-space-6) 0;
  line-height: var(--fl-lh-snug);
}

/* ---- LINKS ---- */
a {
  color: var(--fl-gold);
  text-decoration: none;
  transition: color var(--fl-duration-fast) var(--fl-ease);
}
a:not(.pg-btn):not(.btn-gold):not(.fl-btn):not(.ghost):not(.btn-ghost):not(.chrome-ctrl):hover {
  color: var(--fl-gold-bright);
}

/* ---- BUSINESS MODE: sans display, still distinct from body ---- */
[data-mode="business"] h1,
[data-mode="business"] h2,
[data-mode="business"] h3,
[data-mode="business"] h4 {
  font-family: var(--fl-font-sans);
  font-weight: 500;
  letter-spacing: -0.02em;
  color: var(--fl-text-primary);
}
[data-mode="business"] .fl-label {
  color: var(--fl-silver);
}
