/* ================================================================
   TYPOGRAPHY — All fonts served locally from /fonts/
   Load order: woff2 (modern) → woff → otf
   ================================================================ */

/* ── PP Editorial New ───────────────────────────────────────── */
@font-face {
  font-family: 'PP Editorial New';
  src: url('../fonts/Editorial New/PPEditorialNew-Regular.woff2') format('woff2'),
       url('../fonts/Editorial New/PPEditorialNew-Regular.woff')  format('woff'),
       url('../fonts/Editorial New/PPEditorialNew-Regular.otf')   format('opentype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'PP Editorial New';
  src: url('../fonts/Editorial New/PPEditorialNew-Italic.woff2') format('woff2'),
       url('../fonts/Editorial New/PPEditorialNew-Italic.woff')  format('woff'),
       url('../fonts/Editorial New/PPEditorialNew-Italic.otf')   format('opentype');
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'PP Editorial New';
  src: url('../fonts/Editorial New/PPEditorialNew-Ultralight.woff2') format('woff2'),
       url('../fonts/Editorial New/PPEditorialNew-Ultralight.woff')  format('woff'),
       url('../fonts/Editorial New/PPEditorialNew-Ultralight.otf')   format('opentype');
  font-weight: 200;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'PP Editorial New';
  src: url('../fonts/Editorial New/PPEditorialNew-UltralightItalic.woff2') format('woff2'),
       url('../fonts/Editorial New/PPEditorialNew-UltralightItalic.woff')  format('woff'),
       url('../fonts/Editorial New/PPEditorialNew-UltralightItalic.otf')   format('opentype');
  font-weight: 200;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'PP Editorial New';
  src: url('../fonts/Editorial New/PPEditorialNew-Thin.woff2') format('woff2'),
       url('../fonts/Editorial New/PPEditorialNew-Thin.woff')  format('woff'),
       url('../fonts/Editorial New/PPEditorialNew-Thin.otf')   format('opentype');
  font-weight: 100;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'PP Editorial New';
  src: url('../fonts/Editorial New/PPEditorialNew-ThinItalic.woff2') format('woff2'),
       url('../fonts/Editorial New/PPEditorialNew-ThinItalic.woff')  format('woff'),
       url('../fonts/Editorial New/PPEditorialNew-ThinItalic.otf')   format('opentype');
  font-weight: 100;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'PP Editorial New';
  src: url('../fonts/Editorial New/PPEditorialNew-Bold.woff2') format('woff2'),
       url('../fonts/Editorial New/PPEditorialNew-Bold.woff')  format('woff'),
       url('../fonts/Editorial New/PPEditorialNew-Bold.otf')   format('opentype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'PP Editorial New';
  src: url('../fonts/Editorial New/PPEditorialNew-BoldItalic.woff2') format('woff2'),
       url('../fonts/Editorial New/PPEditorialNew-BoldItalic.woff')  format('woff'),
       url('../fonts/Editorial New/PPEditorialNew-BoldItalic.otf')   format('opentype');
  font-weight: 700;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'PP Editorial New';
  src: url('../fonts/Editorial New/PPEditorialNew-Heavy.woff2') format('woff2'),
       url('../fonts/Editorial New/PPEditorialNew-Heavy.woff')  format('woff'),
       url('../fonts/Editorial New/PPEditorialNew-Heavy.otf')   format('opentype');
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'PP Editorial New';
  src: url('../fonts/Editorial New/PPEditorialNew-HeavyItalic.woff2') format('woff2'),
       url('../fonts/Editorial New/PPEditorialNew-HeavyItalic.woff')  format('woff'),
       url('../fonts/Editorial New/PPEditorialNew-HeavyItalic.otf')   format('opentype');
  font-weight: 900;
  font-style: italic;
  font-display: swap;
}

/* ── PP Neue Montreal ───────────────────────────────────────── */
@font-face {
  font-family: 'PP Neue Montreal';
  src: url('../fonts/Neue Montreal/PPNeueMontreal-Thin.woff2') format('woff2'),
       url('../fonts/Neue Montreal/PPNeueMontreal-Thin.woff')  format('woff'),
       url('../fonts/Neue Montreal/PPNeueMontreal-Thin.otf')   format('opentype');
  font-weight: 100;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'PP Neue Montreal';
  src: url('../fonts/Neue Montreal/PPNeueMontreal-ThinItalic.woff2') format('woff2'),
       url('../fonts/Neue Montreal/PPNeueMontreal-ThinItalic.woff')  format('woff'),
       url('../fonts/Neue Montreal/PPNeueMontreal-ThinItalic.otf')   format('opentype');
  font-weight: 100;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'PP Neue Montreal';
  src: url('../fonts/Neue Montreal/PPNeueMontreal-Light.woff2') format('woff2'),
       url('../fonts/Neue Montreal/PPNeueMontreal-Light.woff')  format('woff'),
       url('../fonts/Neue Montreal/PPNeueMontreal-Light.otf')   format('opentype');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'PP Neue Montreal';
  src: url('../fonts/Neue Montreal/PPNeueMontreal-Book.woff2') format('woff2'),
       url('../fonts/Neue Montreal/PPNeueMontreal-Book.woff')  format('woff'),
       url('../fonts/Neue Montreal/PPNeueMontreal-Book.otf')   format('opentype');
  font-weight: 350;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'PP Neue Montreal';
  src: url('../fonts/Neue Montreal/PPNeueMontreal-Regular.woff2') format('woff2'),
       url('../fonts/Neue Montreal/PPNeueMontreal-Regular.woff')  format('woff'),
       url('../fonts/Neue Montreal/PPNeueMontreal-Regular.otf')   format('opentype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'PP Neue Montreal';
  src: url('../fonts/Neue Montreal/PPNeueMontreal-Italic.woff2') format('woff2'),
       url('../fonts/Neue Montreal/PPNeueMontreal-Italic.woff')  format('woff'),
       url('../fonts/Neue Montreal/PPNeueMontreal-Italic.otf')   format('opentype');
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'PP Neue Montreal';
  src: url('../fonts/Neue Montreal/PPNeueMontreal-Medium.woff2') format('woff2'),
       url('../fonts/Neue Montreal/PPNeueMontreal-Medium.woff')  format('woff'),
       url('../fonts/Neue Montreal/PPNeueMontreal-Medium.otf')   format('opentype');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'PP Neue Montreal';
  src: url('../fonts/Neue Montreal/PPNeueMontreal-Bold.woff2') format('woff2'),
       url('../fonts/Neue Montreal/PPNeueMontreal-Bold.woff')  format('woff'),
       url('../fonts/Neue Montreal/PPNeueMontreal-Bold.otf')   format('opentype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'PP Neue Montreal';
  src: url('../fonts/Neue Montreal/PPNeueMontreal-BoldItalic.woff2') format('woff2'),
       url('../fonts/Neue Montreal/PPNeueMontreal-BoldItalic.woff')  format('woff'),
       url('../fonts/Neue Montreal/PPNeueMontreal-BoldItalic.otf')   format('opentype');
  font-weight: 700;
  font-style: italic;
  font-display: swap;
}

/* ── Neue Montreal Mono ─────────────────────────────────────── */
@font-face {
  font-family: 'Neue Montreal Mono';
  src: url('../fonts/Neue Montreal Mono/web/PPNeueMontrealMono-Thin.woff2') format('woff2'),
       url('../fonts/Neue Montreal Mono/web/PPNeueMontrealMono-Thin.woff')  format('woff'),
       url('../fonts/Neue Montreal Mono/otf/PPNeueMontrealMono-Thin.otf')   format('opentype');
  font-weight: 100;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Neue Montreal Mono';
  src: url('../fonts/Neue Montreal Mono/web/PPNeueMontrealMono-ThinItalic.woff2') format('woff2'),
       url('../fonts/Neue Montreal Mono/web/PPNeueMontrealMono-ThinItalic.woff')  format('woff'),
       url('../fonts/Neue Montreal Mono/otf/PPNeueMontrealMono-ThinItalic.otf')   format('opentype');
  font-weight: 100;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'Neue Montreal Mono';
  src: url('../fonts/Neue Montreal Mono/web/PPNeueMontrealMono-Light.woff2') format('woff2'),
       url('../fonts/Neue Montreal Mono/web/PPNeueMontrealMono-Light.woff')  format('woff'),
       url('../fonts/Neue Montreal Mono/otf/PPNeueMontrealMono-Light.otf')   format('opentype');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Neue Montreal Mono';
  src: url('../fonts/Neue Montreal Mono/web/PPNeueMontrealMono-Book.woff2') format('woff2'),
       url('../fonts/Neue Montreal Mono/web/PPNeueMontrealMono-Book.woff')  format('woff'),
       url('../fonts/Neue Montreal Mono/otf/PPNeueMontrealMono-Book.otf')   format('opentype');
  font-weight: 350;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Neue Montreal Mono';
  src: url('../fonts/Neue Montreal Mono/web/PPNeueMontrealMono-Regular.woff2') format('woff2'),
       url('../fonts/Neue Montreal Mono/web/PPNeueMontrealMono-Regular.woff')  format('woff'),
       url('../fonts/Neue Montreal Mono/otf/PPNeueMontrealMono-Regular.otf')   format('opentype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Neue Montreal Mono';
  src: url('../fonts/Neue Montreal Mono/web/PPNeueMontrealMono-RegularItalic.woff2') format('woff2'),
       url('../fonts/Neue Montreal Mono/web/PPNeueMontrealMono-RegularItalic.woff')  format('woff'),
       url('../fonts/Neue Montreal Mono/otf/PPNeueMontrealMono-RegularItalic.otf')   format('opentype');
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'Neue Montreal Mono';
  src: url('../fonts/Neue Montreal Mono/web/PPNeueMontrealMono-Medium.woff2') format('woff2'),
       url('../fonts/Neue Montreal Mono/web/PPNeueMontrealMono-Medium.woff')  format('woff'),
       url('../fonts/Neue Montreal Mono/otf/PPNeueMontrealMono-Medium.otf')   format('opentype');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Neue Montreal Mono';
  src: url('../fonts/Neue Montreal Mono/web/PPNeueMontrealMono-Bold.woff2') format('woff2'),
       url('../fonts/Neue Montreal Mono/web/PPNeueMontrealMono-Bold.woff')  format('woff'),
       url('../fonts/Neue Montreal Mono/otf/PPNeueMontrealMono-Bold.otf')   format('opentype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Neue Montreal Mono';
  src: url('../fonts/Neue Montreal Mono/web/PPNeueMontrealMono-BoldItalic.woff2') format('woff2'),
       url('../fonts/Neue Montreal Mono/web/PPNeueMontrealMono-BoldItalic.woff')  format('woff'),
       url('../fonts/Neue Montreal Mono/otf/PPNeueMontrealMono-BoldItalic.otf')   format('opentype');
  font-weight: 700;
  font-style: italic;
  font-display: swap;
}

/* ── Font system utility classes ────────────────────────────── */
.type-h1 {
  font-family: var(--type-h1-font);
  font-size: var(--type-h1-size);
  line-height: var(--type-h1-line);
  font-weight: var(--weight-regular);
  letter-spacing: var(--tracking-tight);
}

.type-h2 {
  font-family: var(--type-h2-font);
  font-size: var(--type-h2-size);
  line-height: var(--type-h2-line);
  font-weight: var(--weight-regular);
  letter-spacing: var(--tracking-tight);
}

.type-h3 {
  font-family: var(--type-h3-font);
  font-size: var(--type-h3-size);
  line-height: var(--type-h3-line);
  font-weight: var(--weight-regular);
  letter-spacing: var(--tracking-tight);
}

.type-h4 {
  font-family: var(--type-h4-font);
  font-size: var(--type-h4-size);
  line-height: var(--type-h4-line);
  font-weight: var(--weight-regular);
  letter-spacing: var(--tracking-tight);
}

.type-body-1 {
  font-family: var(--type-body1-font);
  font-size: var(--type-body1-size);
  line-height: var(--type-body1-line);
  font-weight: var(--weight-book);
}

.type-body-2 {
  font-family: var(--type-body2-font);
  font-size: var(--type-body2-size);
  line-height: var(--type-body2-line);
  font-weight: var(--weight-book);
}

.type-display {
  font-family: var(--type-display-font);
  font-size: var(--type-display-size);
  line-height: var(--type-display-line);
  font-weight: var(--weight-book);
  letter-spacing: var(--tracking-tight);
}

.type-caption {
  font-family: var(--type-caption-font);
  font-size: var(--type-caption-size);
  line-height: var(--type-caption-line);
  font-weight: var(--weight-book);
}

/* Legacy aliases */
.type-body {
  font-family: var(--font-body);
  font-size: var(--type-body1-size);
  line-height: var(--type-body1-line);
  font-weight: var(--weight-book);
}

.type-ui {
  font-family: var(--font-ui);
  font-weight: var(--weight-book);
}

.type-label {
  font-family: var(--type-caption-font);
  font-size: var(--type-caption-size);
  line-height: var(--type-caption-line);
  font-weight: var(--weight-medium);
  letter-spacing: var(--tracking-wider);
  text-transform: uppercase;
}
