/* =============================================================================
   Roeland Interieur type system (source of truth)
   Logo:   NeutraText Bold Alt  →  --font-logo
   UI:     NeutraText Book/Demi  →  --font-ui
   Titles: NeutraText Demi/Bold  →  --font-title  (.project-title, display h1)
   Years:  NeutraText TF         →  --font-num    (.ref-year)
   Body:   Paperback 9           →  --font-body   (.body-copy, .lede, prose)
   No Condensed for UI/titles.

   Figma “auto small caps” (Neutra): OpenType smcp + c2sc
   Use class .type-smcp or mixin via --font-feature-smcp
   ============================================================================= */

:root {
  /* OpenType small caps — Figma Neutra “auto small caps” */
  --font-feature-smcp: "smcp" 1, "c2sc" 1;
}

.type-smcp,
.logo-text,
.section-bar__kicker,
.section-bar h2,
.nav-sidebar__nav > a,
.project-title,
.card__title,
.archive__title,
.lang-btn__label {
  font-variant-caps: all-small-caps;
  -webkit-font-feature-settings: var(--font-feature-smcp);
  font-feature-settings: var(--font-feature-smcp);
}

/* Absolute from site root — works on every page depth */
@font-face {
  font-family: "NeutraText";
  src: url("/assets/fonts/neutra/NeutraText-Light.otf") format("opentype");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "NeutraText";
  src: url("/assets/fonts/neutra/NeutraText-Book.otf") format("opentype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "NeutraText";
  src: url("/assets/fonts/neutra/NeutraText-Book.otf") format("opentype");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "NeutraText";
  src: url("/assets/fonts/neutra/NeutraText-Demi.otf") format("opentype");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "NeutraText";
  src: url("/assets/fonts/neutra/NeutraText-Bold.otf") format("opentype");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "NeutraText Logo";
  src: url("/assets/fonts/neutra/NeutraText-BoldAlt.otf") format("opentype");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "NeutraText TF";
  src: url("/assets/fonts/neutra/NeutraTextTF-Book.otf") format("opentype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "NeutraText TF";
  src: url("/assets/fonts/neutra/NeutraTextTF-Book.otf") format("opentype");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "NeutraText TF";
  src: url("/assets/fonts/neutra/NeutraTextTF-Demi.otf") format("opentype");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "NeutraText TF";
  src: url("/assets/fonts/neutra/NeutraTextTF-Bold.otf") format("opentype");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Paperback";
  src: url("/assets/fonts/paperback/Paperback9-Roman.otf") format("opentype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Paperback";
  src: url("/assets/fonts/paperback/Paperback9-Italic.otf") format("opentype");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "Paperback";
  src: url("/assets/fonts/paperback/Paperback9-Bold.otf") format("opentype");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

:root {
  --font-logo: "NeutraText Logo", "NeutraText", system-ui, sans-serif;
  --font-title: "NeutraText", system-ui, sans-serif;
  --font-ui: "NeutraText", system-ui, sans-serif;
  --font-num: "NeutraText TF", "NeutraText", system-ui, sans-serif;
  --font-body: "Paperback", Georgia, "Times New Roman", serif;
  --logo-weight: 700;
  --logo-h: 1.28rem;
  --logo-size: calc(var(--logo-h) * 0.76);
  --logo-size-hero: calc(var(--logo-h) * 0.7);
  --logo-size-nav: calc(var(--logo-h) * 0.66);
  --chrome-pad-x: clamp(22px, 4vw, 40px);
  --track-title: 0.08em;
  --track-ui: 0.06em;
  --track-body: 0.01em;
}

/* —— Roles —— */

.logo-type,
.logo-text {
  font-family: var(--font-logo);
  font-weight: var(--logo-weight);
  font-size: var(--logo-size);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  line-height: 1.15;
  font-synthesis: none;
}

/* Display titles only — not every h1/h2/h3 on the site */
.project-title,
.h-block.project-title,
.section-title {
  font-family: var(--font-title);
  font-weight: 600;
  letter-spacing: var(--track-title);
  text-transform: uppercase;
  line-height: 1.2;
  font-synthesis: none;
}

/* Years / counts */
.ref-year,
.num,
[data-num],
.card__year,
.case-row__year,
.lb__year,
.hero-tools__count,
.proj-fs__count {
  font-family: var(--font-num);
  font-weight: 600;
  font-style: normal;
  font-synthesis: none;
  letter-spacing: 0.06em;
}

/* Reading text */
.body-copy,
.lede,
.card__sub,
.voice blockquote,
.case-row__copy p,
.lb__desc,
.hero-slide-label,
.page-hero__note,
.page-hero__lede,
.material-note,
.project__meta {
  font-family: var(--font-body);
  font-weight: 400;
  font-style: normal;
  letter-spacing: var(--track-body);
  text-transform: none;
  font-synthesis: none;
  line-height: 1.65;
}

.body-copy em,
.lede em,
.voice blockquote em,
.card__sub em {
  font-family: var(--font-body);
  font-style: italic;
  font-weight: 400;
}
.body-copy strong,
.lede strong,
.voice blockquote strong {
  font-family: var(--font-body);
  font-style: normal;
  font-weight: 700;
}

/* Chrome / nav / buttons (Neutra, not body) */
.chrome,
.nav-sidebar,
.lang-btn,
.menu-toggle {
  font-family: var(--font-ui);
  font-synthesis: none;
}
