/* === Typography — Flama Slab + Inter === */

/* Flama Slab Font Family */
@font-face { font-family: 'Flama Slab'; src: url('../fonts/FlamaSlab-Thin.otf') format('opentype'); font-weight: 100; font-style: normal; font-display: swap; }
@font-face { font-family: 'Flama Slab'; src: url('../fonts/FlamaSlab-Ultralight.otf') format('opentype'); font-weight: 200; font-style: normal; font-display: swap; }
@font-face { font-family: 'Flama Slab'; src: url('../fonts/FlamaSlab-Light.otf') format('opentype'); font-weight: 300; font-style: normal; font-display: swap; }
@font-face { font-family: 'Flama Slab'; src: url('../fonts/FlamaSlab-Book.otf') format('opentype'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Flama Slab'; src: url('../fonts/FlamaSlab-Basic.otf') format('opentype'); font-weight: 450; font-style: normal; font-display: swap; }
@font-face { font-family: 'Flama Slab'; src: url('../fonts/FlamaSlab-Medium.otf') format('opentype'); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: 'Flama Slab'; src: url('../fonts/FlamaSlab-Semibold.otf') format('opentype'); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: 'Flama Slab'; src: url('../fonts/FlamaSlab-Bold.otf') format('opentype'); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: 'Flama Slab'; src: url('../fonts/FlamaSlab-Extrabold.otf') format('opentype'); font-weight: 800; font-style: normal; font-display: swap; }
@font-face { font-family: 'Flama Slab'; src: url('../fonts/Flama-SlabBlack.otf') format('opentype'); font-weight: 900; font-style: normal; font-display: swap; }

/* Type System */
body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  font-size: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
  color: var(--text-body);
  line-height: 1.75;
  letter-spacing: -0.01em;
}

/* Heading hierarchy using Flama Slab */
.heading-hero {
  font-family: 'Flama Slab', Georgia, 'Times New Roman', serif;
  font-weight: 300;
  font-size: clamp(2.8rem, 2rem + 4vw, 5.5rem);
  line-height: 1.05;
  letter-spacing: -0.03em;
  color: var(--text-on-dark);
  text-shadow: 0 2px 40px rgba(15,46,26,0.2);
}

.heading-display {
  font-family: 'Flama Slab', Georgia, serif;
  font-weight: 400;
  font-size: clamp(2.2rem, 1.5rem + 3.5vw, 4rem);
  line-height: 1.1;
  letter-spacing: -0.02em;
}

h1, .heading-1 {
  font-family: 'Flama Slab', Georgia, serif;
  font-weight: 500;
  font-size: clamp(2rem, 1.3rem + 3vw, 3.5rem);
  line-height: 1.12;
  letter-spacing: -0.02em;
  color: var(--brand-green);
}

h2, .heading-2 {
  font-family: 'Flama Slab', Georgia, serif;
  font-weight: 500;
  font-size: clamp(1.6rem, 1.1rem + 2.2vw, 2.8rem);
  line-height: 1.15;
  letter-spacing: -0.015em;
  color: var(--brand-green);
}

h3, .heading-3 {
  font-family: 'Flama Slab', Georgia, serif;
  font-weight: 400;
  font-size: clamp(1.3rem, 1rem + 1.2vw, 2rem);
  line-height: 1.25;
  letter-spacing: -0.01em;
  color: var(--text-dark);
}

h4, .heading-4 {
  font-family: 'Flama Slab', Georgia, serif;
  font-weight: 600;
  font-size: clamp(1.05rem, 0.95rem + 0.5vw, 1.35rem);
  line-height: 1.35;
  color: var(--text-dark);
}

/* Label / overline */
.label {
  font-family: 'Inter', sans-serif;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--text-muted);
}

.label--light {
  color: var(--stone);
}

.label--accent {
  color: var(--cta-warm);
}

/* Body variants */
.body-large {
  font-size: clamp(1.1rem, 1rem + 0.4vw, 1.3rem);
  line-height: 1.8;
  color: var(--text-body);
}

.body-small {
  font-size: 0.9rem;
  line-height: 1.65;
  color: var(--text-muted);
}

/* Pull quote */
.pull-quote {
  font-family: 'Flama Slab', Georgia, serif;
  font-weight: 300;
  font-size: clamp(1.4rem, 1rem + 1.8vw, 2.4rem);
  line-height: 1.35;
  letter-spacing: -0.015em;
  color: var(--brand-green);
  font-style: italic;
}

.pull-quote::before {
  content: '«';
  display: inline;
}

.pull-quote::after {
  content: '»';
  display: inline;
}

/* Link styling */
.text-link {
  color: var(--brand-green);
  border-bottom: 1px solid var(--stone);
  transition: border-color var(--duration-fast) var(--ease-out);
}
.text-link:hover {
  border-color: var(--brand-green);
}

/* Premium utilities */
.price-display {
  font-family: 'Flama Slab', Georgia, serif;
  font-weight: 600;
  color: var(--brand-green);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.01em;
}

.text-editorial {
  max-width: 65ch;
  line-height: 1.8;
  color: var(--text-body);
}
