/* ── Self-hosted: Sen ─────────────────────────────────────── */
@font-face {
  font-family: "Sen";
  src: url("fonts/sen/Sen-Medium.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Sen";
  src: url("fonts/sen/Sen-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

:root {
  /* ── Fluid type scale (375px → 1728px) ───────────────────── */
  --text-xl: clamp(2.563rem, 1.61rem + 4.065vw, 6rem); /* 41px → 96px */
  --text-lg: clamp(2.125rem, 1.675rem + 1.922vw, 3.75rem); /* 34px → 60px */
  --text-md: clamp(1.813rem, 1.483rem + 1.404vw, 3rem); /* 29px → 48px */
  --text-sm: clamp(1.5rem, 1.24rem + 1.109vw, 2.438rem); /* 24px → 39px */
  --text-sub-md: clamp(1.25rem, 1.094rem + 0.665vw, 1.813rem); /* 20px → 29px */
  --text-sub-sm: clamp(0.938rem, 0.92rem + 0.074vw, 1rem); /* 15px → 16px */
  --text-body-lg: clamp(1.125rem, 0.882rem + 1.035vw, 2rem); /* 18px → 32px */
  --text-body-md: clamp(
    0.875rem,
    0.806rem + 0.296vw,
    1.125rem
  ); /* 14px → 18px */
  --text-body-sm: clamp(0.75rem, 0.681rem + 0.296vw, 1rem); /* 12px → 16px */
}

h1,
h2,
h3,
h4,
h5,
h6 {
  padding-bottom: 0;
  color: inherit;
  font-weight: inherit;
}

/* ── Font weight ──────────────────────────────────────────── */
.font-thin {
  font-weight: 100 !important;
}
.font-extralight {
  font-weight: 200 !important;
}
.font-light {
  font-weight: 300 !important;
}
.font-normal {
  font-weight: 400 !important;
}
.font-medium {
  font-weight: 500 !important;
}
.font-semibold {
  font-weight: 600 !important;
}
.font-bold {
  font-weight: 700 !important;
}
.font-extrabold {
  font-weight: 800 !important;
}
.font-black {
  font-weight: 900 !important;
}

/* ── Line height ──────────────────────────────────────────── */
.leading-none {
  line-height: 1;
}
.leading-tight {
  line-height: 1.1;
}
.leading-snug {
  line-height: 1.25;
}
.leading-normal {
  line-height: normal;
}
.leading-relaxed {
  line-height: 1.5;
}
.leading-loose {
  line-height: 1.75;
}

/* ── Type scale ───────────────────────────────────────────── */
/* line-height and letter-spacing come from Figma per token    */
/* Override line-height per instance using .leading-* classes  */
.heading-xl {
  font-size: var(--text-xl);
  font-family: var(--font-display);
  line-height: 1.132;
}
.heading-xl h1,
.heading-xl h2,
.heading-xl h3,
.heading-xl h4,
.heading-xl h5,
.heading-xl h6,
.heading-xl p {
  font-size: inherit;
  font-family: inherit;
  line-height: inherit;
}

.heading-lg {
  font-size: var(--text-lg);
  font-family: var(--font-display);
  line-height: normal;
}
.heading-lg h1,
.heading-lg h2,
.heading-lg h3,
.heading-lg h4,
.heading-lg h5,
.heading-lg h6,
.heading-lg p {
  font-size: inherit;
  font-family: inherit;
  line-height: inherit;
}

.heading-md {
  font-size: var(--text-md);
  font-family: var(--font-display);
  line-height: normal;
}
.heading-md h1,
.heading-md h2,
.heading-md h3,
.heading-md h4,
.heading-md h5,
.heading-md h6,
.heading-md p {
  font-size: inherit;
  font-family: inherit;
  line-height: inherit;
}

.heading-sm {
  font-size: var(--text-sm);
  font-family: var(--font-display);
  line-height: normal;
}
.heading-sm h1,
.heading-sm h2,
.heading-sm h3,
.heading-sm h4,
.heading-sm h5,
.heading-sm h6,
.heading-sm p {
  font-size: inherit;
  font-family: inherit;
  line-height: inherit;
}

.subheading-md {
  font-size: var(--text-sub-md);
  font-family: var(--font-body);
  line-height: normal;
  font-weight: 500;
}
.subheading-md h1,
.subheading-md h2,
.subheading-md h3,
.subheading-md h4,
.subheading-md h5,
.subheading-md h6,
.subheading-md p {
  font-size: inherit;
  font-family: inherit;
  line-height: inherit;
  font-weight: inherit;
}

.subheading-sm {
  font-size: var(--text-sub-sm);
  font-family: var(--font-body);
  line-height: normal;
  letter-spacing: 0.05em;
}
.subheading-sm h1,
.subheading-sm h2,
.subheading-sm h3,
.subheading-sm h4,
.subheading-sm h5,
.subheading-sm h6,
.subheading-sm p {
  font-size: inherit;
  font-family: inherit;
  line-height: inherit;
  letter-spacing: inherit;
}

.body-lg {
  font-size: var(--text-body-lg);
  font-family: var(--font-body);
  line-height: 1.0625;
  letter-spacing: 0.1em;
}
.body-lg p,
.body-lg li {
  font-size: inherit;
  font-family: inherit;
  line-height: inherit;
  letter-spacing: inherit;
}

.body-md {
  font-size: var(--text-body-md);
  font-family: var(--font-body);
  line-height: 1.333;
  letter-spacing: 0.05em;
  font-weight: 500;
}
.body-md p,
.body-md li {
  font-size: inherit;
  font-family: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  font-weight: inherit;
}

.body-sm {
  font-size: var(--text-body-sm);
  font-family: var(--font-body);
  line-height: normal;
  letter-spacing: 0.05em;
}
.body-sm p,
.body-sm li {
  font-size: inherit;
  font-family: inherit;
  line-height: inherit;
  letter-spacing: inherit;
}

/* ── Rich text accordion ──────────────────────────────────── */
.rich-text-accordion h2 {
  font-size: var(--text-body-lg);
  font-family: var(--font-body);
  line-height: 1.0625;
  letter-spacing: 0.1em;
  font-weight: 500;
}
.rich-text-accordion h3,
.rich-text-accordion h4,
.rich-text-accordion h5,
.rich-text-accordion h6 {
  font-size: var(--text-body-md);
  font-family: var(--font-body);
  line-height: 1.333;
  letter-spacing: 0.05em;
  font-weight: 500;
}
.rich-text-accordion p,
.rich-text-accordion li {
  font-size: var(--text-body-sm);
  font-family: var(--font-body);
  line-height: normal;
  letter-spacing: 0.05em;
  font-weight: 400;
}
.rich-text-accordion ol,
.rich-text-accordion ul {
  padding-left: 1.5em;
}
.rich-text-accordion a {
  text-decoration: underline;
  color: inherit;
}

/* ── Rich text ────────────────────────────────────────────── */
.rich-text h1 {
  font-size: var(--text-xl);
  font-family: var(--font-display);
  line-height: 1.132;
}
.rich-text h2 {
  font-size: var(--text-md);
  font-family: var(--font-display);
  line-height: normal;
}
.rich-text h3 {
  font-size: var(--text-sm);
  font-family: var(--font-display);
  line-height: normal;
}
.rich-text h4,
.rich-text h5,
.rich-text h6 {
  font-size: var(--text-sub-md);
  font-family: var(--font-display);
  line-height: normal;
}

.rich-text p,
.rich-text li {
  font-size: var(--text-body-md);
  font-family: var(--font-body);
  line-height: 1.0625;
  letter-spacing: 0.1em;
}

.rich-text ol,
.rich-text ul {
  padding-left: 1.5em;
}

.rich-text a {
  text-decoration: underline;
  color: inherit;
}
