  /* -----------------------------
   Font faces: Carnero (OTF)
   NOTE: Consider converting to WOFF2 for better web performance.
-------------------------------- */

@font-face {
  font-family: "Carnero";
  src: url("/_resources/fonts/carnero/Monotype-CarneroLight.otf") format("opentype");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Carnero";
  src: url("/_resources/fonts/carnero/Monotype-CarneroLightItalic.otf")
    format("opentype");
  font-weight: 300;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: "Carnero";
  src: url("/_resources/fonts/carnero/Monotype-Carnero.otf") format("opentype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Carnero";
  src: url("/_resources/fonts/carnero/Monotype-CarneroItalic.otf") format("opentype");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: "Carnero";
  src: url("/_resources/fonts/carnero/Monotype-CarneroBook.otf") format("opentype");
  font-weight: 450;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Carnero";
  src: url("/_resources/fonts/carnero/Monotype-CarneroBookItalic.otf")
    format("opentype");
  font-weight: 450;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: "Carnero";
  src: url("/_resources/fonts/carnero/Monotype-CarneroSemibold.otf")
    format("opentype");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Carnero";
  src: url("/_resources/fonts/carnero/Monotype-CarneroSemiboldItalic.otf")
    format("opentype");
  font-weight: 600;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: "Carnero";
  src: url("/_resources/fonts/carnero/Monotype-CarneroBold.otf") format("opentype");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Carnero";
  src: url("/_resources/fonts/carnero/Monotype-CarneroBoldItalic.otf")
    format("opentype");
  font-weight: 700;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: "Carnero";
  src: url("/_resources/fonts/carnero/Monotype-CarneroBlack.otf") format("opentype");
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Carnero";
  src: url("/_resources/fonts/carnero/Monotype-CarneroBlackItalic.otf")
    format("opentype");
  font-weight: 900;
  font-style: italic;
  font-display: swap;
}

/* -----------------------------
   Font faces: Inter (Variable)
-------------------------------- */

@font-face {
  font-family: "Inter";
  src: url("/_resources/fonts/inter/Inter-VariableFont_opsz,wght.ttf") format("truetype");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Inter";
  src: url("/_resources/fonts/inter/Inter-Italic-VariableFont_opsz,wght.ttf")
    format("truetype");
  font-weight: 100 900;
  font-style: italic;
  font-display: swap;
}

/* -----------------------------
   Tokens
-------------------------------- */

:root {
  --font-family-heading: "Carnero", serif;
  --font-family-body: "Inter", sans-serif;

  --body-font-size: 16px;
  --body-line-height: 1.6;
}

/* -----------------------------
   Base text styles
-------------------------------- */

body {
  font-family: var(--font-family-body);
  font-size: var(--body-font-size);
  line-height: var(--body-line-height);
  font-weight: 400;

  font-optical-sizing: auto;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Utility helpers */
.font-family-heading {
  font-family: var(--font-family-heading);
}

.font-family-body {
  font-family: var(--font-family-body);
}

/* -----------------------------
   Headings
-------------------------------- */

/* Shared heading defaults */
h1,
.h1,
h2,
.h2,
h3,
.h3,
h4,
.h4,
h5,
.h5,
h6,
.h6 {
  margin: 0;
}

/* Carnero for top-level headings */
h1,
.h1,
h2,
.h2,
h3,
.h3 {
  font-family: var(--font-family-heading);
  font-optical-sizing: auto;
}

/* Body font for smaller headings (as you intended) */
h4,
.h4,
h5,
.h5,
h6,
.h6 {
  font-family: var(--font-family-body);
  font-weight: 700;
  line-height: 1.25;
}

/* Sizes + weights */
h1,
.h1 {
  font-size: 70px;
  font-weight: 900; /* Black */
  line-height: 1.05;
  letter-spacing: -0.01em;
}

h2,
.h2 {
  font-size: 50px;
  font-weight: 700; /* Bold */
  line-height: 1.1;
  letter-spacing: -0.005em;
}

h3,
.h3 {
  font-size: 40px;
  font-weight: 600; /* Semibold */
  line-height: 1.2;
  text-transform: uppercase;
}

h4,
.h4 {
  font-size: 24px;
}

h5,
.h5 {
  font-size: 22px;
}

h6,
.h6 {
  font-size: 20px;
}

/* Keep emphasis from becoming heavier than intended */
h1 em,
h2 em,
h3 em {
  font-weight: inherit;
}

/* Sub-heading style */
.sub-heading {
  font-family: var(--font-family-body);
  font-size: 20px;
  font-weight: 500;
  line-height: 1.35;
}

/* -----------------------------
   Responsive
-------------------------------- */

@media (max-width: 767px) {
  h1,
  .h1 {
    font-size: 56px;
    font-weight: 900;
  }

  h2,
  .h2 {
    font-size: 44px;
    font-weight: 700;
  }

  h3,
  .h3 {
    font-size: 32px;
    font-weight: 600;
  }

  h4,
  .h4 {
    font-size: 22px;
  }

  h5,
  .h5 {
    font-size: 20px;
  }

  h6,
  .h6 {
    font-size: 18px;
  }

  .sub-heading {
    font-size: 18px;
    font-weight: 600;
  }
}
