/* F13-6 self-hosted fonts — generated by sync-fonts-to-tokens */
@font-face {
  font-family: 'Courier Prime';
  src: url('../fonts/u-450q2lgwslOqpF_6gQ8kELaw9pWs39pvnRPA_cb90cc94.woff2') format('woff2'),
       url('../fonts/u-450q2lgwslOqpF_6gQ8kELawFpWs39pvk_b927e421.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Courier Prime';
  src: url('../fonts/u-4k0q2lgwslOqpF_6gQ8kELY7pMT-7fq9PrNX2-Ag_8fb4a384.woff2') format('woff2'),
       url('../fonts/u-4k0q2lgwslOqpF_6gQ8kELY7pMT-Dfq9PrNX0_763f6b15.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Droid Serif';
  src: url('../fonts/tDbK2oqRg1oM3QBjjcaDkOr4nAfcHi6FRUI_2375fcff.woff2') format('woff2');
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: 'Droid Serif';
  src: url('../fonts/tDbI2oqRg1oM3QBjjcaDkOr9rAXWGQyH_97e0456c.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Droid Serif';
  src: url('../fonts/tDbX2oqRg1oM3QBjjcaDkOr4lLz5CwOnSGjW7BA_2fa29bda.woff2') format('woff2');
  font-weight: 700;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: 'Droid Serif';
  src: url('../fonts/tDbV2oqRg1oM3QBjjcaDkOJGiRD7OwGtT0rU_71a97482.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Fa Brands 400';
  src: url('../fonts/65dde282dff491820466b9f0_fa-brands-400_c7fd261b.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'FONT AWESOME';
  src: url('../fonts/64a42611fd3c8f9b27c4b6ef_fa-sharp-light-300_bd18d718.woff2') format('woff2');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Kalam';
  src: url('../fonts/YA9Qr0Wd4kDdMtD6GjLNkiQqtbGstvY_3d345d3f.woff2') format('woff2'),
       url('../fonts/YA9Qr0Wd4kDdMtD6GjLCkiQqtbGstvY_5131ad5b.woff2') format('woff2'),
       url('../fonts/YA9Qr0Wd4kDdMtD6GjLMkiQqtbGs_eb8aa670.woff2') format('woff2');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Kalam';
  src: url('../fonts/YA9dr0Wd4kDdMthQOCfhsCkAj7g_84c8e138.woff2') format('woff2'),
       url('../fonts/YA9dr0Wd4kDdMthfOCfhsCkAj7g_9048a290.woff2') format('woff2'),
       url('../fonts/YA9dr0Wd4kDdMthROCfhsCkA_794c168b.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Kalam';
  src: url('../fonts/YA9Qr0Wd4kDdMtDqHTLNkiQqtbGstvY_a96f2d97.woff2') format('woff2'),
       url('../fonts/YA9Qr0Wd4kDdMtDqHTLCkiQqtbGstvY_b85fae4c.woff2') format('woff2'),
       url('../fonts/YA9Qr0Wd4kDdMtDqHTLMkiQqtbGs_9c682bf4.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Plus Jakarta Sans';
  src: url('../fonts/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko70yygg_vbd-E_7146e4ff.woff2') format('woff2'),
       url('../fonts/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko50yygg_vbd-E_523ed8c5.woff2') format('woff2'),
       url('../fonts/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko40yygg_vbd-E_3c951162.woff2') format('woff2'),
       url('../fonts/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko20yygg_vb_e2e017e1.woff2') format('woff2');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Plusjakartasans';
  src: url('../fonts/65f4476eadaf1daf88fe956c_PlusJakartaSans-ExtraBold_f243739f.ttf') format('truetype');
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Plusjakartasans Variablefont Wght';
  src: url('../fonts/669d2c2266a45ab4106d571e_PlusJakartaSans-Italic-VariableFont_wght_e41c92f4.ttf') format('truetype');
  font-weight: 200 800;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: 'Poppins';
  src: url('../fonts/pxiEyp8kv8JHgFVrJJbecnFHGPezSQ_cd9ec846.woff2') format('woff2'),
       url('../fonts/pxiEyp8kv8JHgFVrJJnecnFHGPezSQ_050711b1.woff2') format('woff2'),
       url('../fonts/pxiEyp8kv8JHgFVrJJfecnFHGPc_350a5a7d.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Poppins';
  src: url('../fonts/pxiByp8kv8JHgFVrLGT9Z11lFd2JQEl8qw_6b540e72.woff2') format('woff2'),
       url('../fonts/pxiByp8kv8JHgFVrLGT9Z1JlFd2JQEl8qw_5a10bac7.woff2') format('woff2'),
       url('../fonts/pxiByp8kv8JHgFVrLGT9Z1xlFd2JQEk_789778bf.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Poppins';
  src: url('../fonts/pxiByp8kv8JHgFVrLEj6Z11lFd2JQEl8qw_2a3dd29a.woff2') format('woff2'),
       url('../fonts/pxiByp8kv8JHgFVrLEj6Z1JlFd2JQEl8qw_83dacd77.woff2') format('woff2'),
       url('../fonts/pxiByp8kv8JHgFVrLEj6Z1xlFd2JQEk_52afdaff.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'slick';
  src: url('../fonts/slick_8a365342.eot') format('embedded-opentype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Source Serif 4';
  src: url('../fonts/vEFF2_tTDB4M7-auWDN0ahZJW3IX2ih5nk3AucvUHf6kAHr4Y3qwzSEi_7c62ce7e.woff2') format('woff2'),
       url('../fonts/vEFF2_tTDB4M7-auWDN0ahZJW3IX2ih5nk3AucvUHf6kCXr4Y3qwzSEi_492a184b.woff2') format('woff2'),
       url('../fonts/vEFF2_tTDB4M7-auWDN0ahZJW3IX2ih5nk3AucvUHf6kDnr4Y3qwzSEi_0ea4fd48.woff2') format('woff2'),
       url('../fonts/vEFF2_tTDB4M7-auWDN0ahZJW3IX2ih5nk3AucvUHf6kAnr4Y3qwzSEi_57f910ae.woff2') format('woff2'),
       url('../fonts/vEFF2_tTDB4M7-auWDN0ahZJW3IX2ih5nk3AucvUHf6kA3r4Y3qwzSEi_52ec9f5d.woff2') format('woff2'),
       url('../fonts/vEFF2_tTDB4M7-auWDN0ahZJW3IX2ih5nk3AucvUHf6kDXr4Y3qwzQ_1be42419.woff2') format('woff2');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Zodiak Variable';
  src: url('../fonts/64708dc06201b89f5f4c51ef_Zodiak-Variable_64aed823.ttf') format('truetype');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
/* R10 nearest-weight alias: declared weight 500 has no local file — served by the weight-400 face (never a font-CDN fallback) */
@font-face {
  font-family: 'Courier Prime';
  src: url('../fonts/u-450q2lgwslOqpF_6gQ8kELaw9pWs39pvnRPA_cb90cc94.woff2') format('woff2'),
       url('../fonts/u-450q2lgwslOqpF_6gQ8kELawFpWs39pvk_b927e421.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
/* R10 nearest-weight alias: declared weight 600 has no local file — served by the weight-700 face (never a font-CDN fallback) */
@font-face {
  font-family: 'Courier Prime';
  src: url('../fonts/u-4k0q2lgwslOqpF_6gQ8kELY7pMT-7fq9PrNX2-Ag_8fb4a384.woff2') format('woff2'),
       url('../fonts/u-4k0q2lgwslOqpF_6gQ8kELY7pMT-Dfq9PrNX0_763f6b15.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
/* R10 nearest-weight alias: declared weight 500 has no local file — served by the weight-400 face (never a font-CDN fallback) */
@font-face {
  font-family: 'Droid Serif';
  src: url('../fonts/tDbI2oqRg1oM3QBjjcaDkOr9rAXWGQyH_97e0456c.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
/* R10 nearest-weight alias: declared weight 600 has no local file — served by the weight-700 face (never a font-CDN fallback) */
@font-face {
  font-family: 'Droid Serif';
  src: url('../fonts/tDbV2oqRg1oM3QBjjcaDkOJGiRD7OwGtT0rU_71a97482.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
/* R10 nearest-weight alias: declared weight 500 has no local file — served by the weight-400 face (never a font-CDN fallback) */
@font-face {
  font-family: 'Fa Brands 400';
  src: url('../fonts/65dde282dff491820466b9f0_fa-brands-400_c7fd261b.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
/* R10 nearest-weight alias: declared weight 600 has no local file — served by the weight-400 face (never a font-CDN fallback) */
@font-face {
  font-family: 'Fa Brands 400';
  src: url('../fonts/65dde282dff491820466b9f0_fa-brands-400_c7fd261b.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
/* R10 nearest-weight alias: declared weight 400 has no local file — served by the weight-300 face (never a font-CDN fallback) */
@font-face {
  font-family: 'FONT AWESOME';
  src: url('../fonts/64a42611fd3c8f9b27c4b6ef_fa-sharp-light-300_bd18d718.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
/* R10 nearest-weight alias: declared weight 500 has no local file — served by the weight-300 face (never a font-CDN fallback) */
@font-face {
  font-family: 'FONT AWESOME';
  src: url('../fonts/64a42611fd3c8f9b27c4b6ef_fa-sharp-light-300_bd18d718.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
/* R10 nearest-weight alias: declared weight 600 has no local file — served by the weight-300 face (never a font-CDN fallback) */
@font-face {
  font-family: 'FONT AWESOME';
  src: url('../fonts/64a42611fd3c8f9b27c4b6ef_fa-sharp-light-300_bd18d718.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
/* R10 nearest-weight alias: declared weight 500 has no local file — served by the weight-400 face (never a font-CDN fallback) */
@font-face {
  font-family: 'Kalam';
  src: url('../fonts/YA9dr0Wd4kDdMthQOCfhsCkAj7g_84c8e138.woff2') format('woff2'),
       url('../fonts/YA9dr0Wd4kDdMthfOCfhsCkAj7g_9048a290.woff2') format('woff2'),
       url('../fonts/YA9dr0Wd4kDdMthROCfhsCkA_794c168b.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
/* R10 nearest-weight alias: declared weight 600 has no local file — served by the weight-700 face (never a font-CDN fallback) */
@font-face {
  font-family: 'Kalam';
  src: url('../fonts/YA9Qr0Wd4kDdMtDqHTLNkiQqtbGstvY_a96f2d97.woff2') format('woff2'),
       url('../fonts/YA9Qr0Wd4kDdMtDqHTLCkiQqtbGstvY_b85fae4c.woff2') format('woff2'),
       url('../fonts/YA9Qr0Wd4kDdMtDqHTLMkiQqtbGs_9c682bf4.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
/* R10 nearest-weight alias: declared weight 400 has no local file — served by the weight-300 face (never a font-CDN fallback) */
@font-face {
  font-family: 'Plus Jakarta Sans';
  src: url('../fonts/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko70yygg_vbd-E_7146e4ff.woff2') format('woff2'),
       url('../fonts/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko50yygg_vbd-E_523ed8c5.woff2') format('woff2'),
       url('../fonts/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko40yygg_vbd-E_3c951162.woff2') format('woff2'),
       url('../fonts/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko20yygg_vb_e2e017e1.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
/* R10 nearest-weight alias: declared weight 500 has no local file — served by the weight-300 face (never a font-CDN fallback) */
@font-face {
  font-family: 'Plus Jakarta Sans';
  src: url('../fonts/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko70yygg_vbd-E_7146e4ff.woff2') format('woff2'),
       url('../fonts/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko50yygg_vbd-E_523ed8c5.woff2') format('woff2'),
       url('../fonts/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko40yygg_vbd-E_3c951162.woff2') format('woff2'),
       url('../fonts/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko20yygg_vb_e2e017e1.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
/* R10 nearest-weight alias: declared weight 600 has no local file — served by the weight-300 face (never a font-CDN fallback) */
@font-face {
  font-family: 'Plus Jakarta Sans';
  src: url('../fonts/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko70yygg_vbd-E_7146e4ff.woff2') format('woff2'),
       url('../fonts/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko50yygg_vbd-E_523ed8c5.woff2') format('woff2'),
       url('../fonts/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko40yygg_vbd-E_3c951162.woff2') format('woff2'),
       url('../fonts/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko20yygg_vb_e2e017e1.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
/* R10 nearest-weight alias: declared weight 400 has no local file — served by the weight-800 face (never a font-CDN fallback) */
@font-face {
  font-family: 'Plusjakartasans';
  src: url('../fonts/65f4476eadaf1daf88fe956c_PlusJakartaSans-ExtraBold_f243739f.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
/* R10 nearest-weight alias: declared weight 500 has no local file — served by the weight-800 face (never a font-CDN fallback) */
@font-face {
  font-family: 'Plusjakartasans';
  src: url('../fonts/65f4476eadaf1daf88fe956c_PlusJakartaSans-ExtraBold_f243739f.ttf') format('truetype');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
/* R10 nearest-weight alias: declared weight 600 has no local file — served by the weight-800 face (never a font-CDN fallback) */
@font-face {
  font-family: 'Plusjakartasans';
  src: url('../fonts/65f4476eadaf1daf88fe956c_PlusJakartaSans-ExtraBold_f243739f.ttf') format('truetype');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
/* R10 nearest-weight alias: declared weight 500 has no local file — served by the weight-400 face (never a font-CDN fallback) */
@font-face {
  font-family: 'slick';
  src: url('../fonts/slick_8a365342.eot') format('embedded-opentype');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
/* R10 nearest-weight alias: declared weight 600 has no local file — served by the weight-400 face (never a font-CDN fallback) */
@font-face {
  font-family: 'slick';
  src: url('../fonts/slick_8a365342.eot') format('embedded-opentype');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
/* R10 nearest-weight alias: declared weight 400 has no local file — served by the weight-300 face (never a font-CDN fallback) */
@font-face {
  font-family: 'Source Serif 4';
  src: url('../fonts/vEFF2_tTDB4M7-auWDN0ahZJW3IX2ih5nk3AucvUHf6kAHr4Y3qwzSEi_7c62ce7e.woff2') format('woff2'),
       url('../fonts/vEFF2_tTDB4M7-auWDN0ahZJW3IX2ih5nk3AucvUHf6kCXr4Y3qwzSEi_492a184b.woff2') format('woff2'),
       url('../fonts/vEFF2_tTDB4M7-auWDN0ahZJW3IX2ih5nk3AucvUHf6kDnr4Y3qwzSEi_0ea4fd48.woff2') format('woff2'),
       url('../fonts/vEFF2_tTDB4M7-auWDN0ahZJW3IX2ih5nk3AucvUHf6kAnr4Y3qwzSEi_57f910ae.woff2') format('woff2'),
       url('../fonts/vEFF2_tTDB4M7-auWDN0ahZJW3IX2ih5nk3AucvUHf6kA3r4Y3qwzSEi_52ec9f5d.woff2') format('woff2'),
       url('../fonts/vEFF2_tTDB4M7-auWDN0ahZJW3IX2ih5nk3AucvUHf6kDXr4Y3qwzQ_1be42419.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
/* R10 nearest-weight alias: declared weight 500 has no local file — served by the weight-300 face (never a font-CDN fallback) */
@font-face {
  font-family: 'Source Serif 4';
  src: url('../fonts/vEFF2_tTDB4M7-auWDN0ahZJW3IX2ih5nk3AucvUHf6kAHr4Y3qwzSEi_7c62ce7e.woff2') format('woff2'),
       url('../fonts/vEFF2_tTDB4M7-auWDN0ahZJW3IX2ih5nk3AucvUHf6kCXr4Y3qwzSEi_492a184b.woff2') format('woff2'),
       url('../fonts/vEFF2_tTDB4M7-auWDN0ahZJW3IX2ih5nk3AucvUHf6kDnr4Y3qwzSEi_0ea4fd48.woff2') format('woff2'),
       url('../fonts/vEFF2_tTDB4M7-auWDN0ahZJW3IX2ih5nk3AucvUHf6kAnr4Y3qwzSEi_57f910ae.woff2') format('woff2'),
       url('../fonts/vEFF2_tTDB4M7-auWDN0ahZJW3IX2ih5nk3AucvUHf6kA3r4Y3qwzSEi_52ec9f5d.woff2') format('woff2'),
       url('../fonts/vEFF2_tTDB4M7-auWDN0ahZJW3IX2ih5nk3AucvUHf6kDXr4Y3qwzQ_1be42419.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
/* R10 nearest-weight alias: declared weight 600 has no local file — served by the weight-300 face (never a font-CDN fallback) */
@font-face {
  font-family: 'Source Serif 4';
  src: url('../fonts/vEFF2_tTDB4M7-auWDN0ahZJW3IX2ih5nk3AucvUHf6kAHr4Y3qwzSEi_7c62ce7e.woff2') format('woff2'),
       url('../fonts/vEFF2_tTDB4M7-auWDN0ahZJW3IX2ih5nk3AucvUHf6kCXr4Y3qwzSEi_492a184b.woff2') format('woff2'),
       url('../fonts/vEFF2_tTDB4M7-auWDN0ahZJW3IX2ih5nk3AucvUHf6kDnr4Y3qwzSEi_0ea4fd48.woff2') format('woff2'),
       url('../fonts/vEFF2_tTDB4M7-auWDN0ahZJW3IX2ih5nk3AucvUHf6kAnr4Y3qwzSEi_57f910ae.woff2') format('woff2'),
       url('../fonts/vEFF2_tTDB4M7-auWDN0ahZJW3IX2ih5nk3AucvUHf6kA3r4Y3qwzSEi_52ec9f5d.woff2') format('woff2'),
       url('../fonts/vEFF2_tTDB4M7-auWDN0ahZJW3IX2ih5nk3AucvUHf6kDXr4Y3qwzQ_1be42419.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
/* end F13-6 fonts */

/* tokens.css — qed42.com run 20260702-093609 (generated from discovery/_token-harvest.json)
 * breakpoints: {991, 767, 479} (Webflow-canonical; verified/frozen by gate-b-breakpoints into responsive-breakpoints.json)
 * raw getComputedStyle() values — no rounding; rgba alpha preserved (-alpha-N tokens). */
:root {
  /* ---------- Fonts (frozen per-run — typography lock, framework-11 E1) ---------- */
  --font-family-display: 'Plus Jakarta Sans', system-ui, sans-serif;
  --font-family-body:    'Plus Jakarta Sans', system-ui, sans-serif;

  /* ---------- Type ramp (desktop base; md/sm overridden in @media below) ---------- */
  --font-size-h1: 60px;
  --line-height-h1: 68px;
  --letter-spacing-h1: -1.5px;
  --font-weight-h1: 500;
  --color-text-h1: rgb(51, 51, 51);
  --font-size-h2: 18px;
  --line-height-h2: 36px;
  --letter-spacing-h2: normal;
  --font-weight-h2: 600;
  --color-text-h2: rgb(115, 115, 115);
  --font-size-h3: 20px;
  --line-height-h3: 26px;
  --letter-spacing-h3: -0.4px;
  --font-weight-h3: 600;
  --color-text-h3: rgb(18, 18, 18);
  --font-size-p: 14px;
  --line-height-p: 24px;
  --letter-spacing-p: normal;
  --font-weight-p: 600;
  --color-text-p: rgb(21, 21, 21);
  --font-size-a: 16px;
  --line-height-a: 24px;
  --letter-spacing-a: normal;
  --font-weight-a: 400;
  --color-text-a: rgb(18, 18, 18);
  --font-size-li: 16px;
  --line-height-li: 24px;
  --letter-spacing-li: normal;
  --font-weight-li: 400;
  --color-text-li: rgb(51, 51, 51);
  --font-size-body: 16px;
  --line-height-body: 24px;
  --letter-spacing-body: normal;
  --font-weight-body: 400;
  --color-text-body: rgb(51, 51, 51);

  /* Breakpoint-value aliases (direct reference without cascade) */
  --font-size-h1-sm: 36px;
  --line-height-h1-sm: 44px;
  --letter-spacing-h1-sm: -2px;
  --font-size-h2-sm: 16px;
  --font-size-h3-md: 18px;
  --line-height-h3-md: 24px;
  --letter-spacing-h3-md: -0.36px;
  --font-size-a-md: 15px;
  --font-size-a-sm: 14px;

  /* ---------- Per-region backgrounds (framework-5) ---------- */
  --color-bg-header: rgba(0, 0, 0, 0);
  --color-bg-footer: rgb(247, 244, 244);
  --color-bg-hero: rgba(0, 0, 0, 0);
  --color-bg-nav: rgba(0, 0, 0, 0);

  /* ---------- Palette — text ---------- */
  --color-text-primary: rgb(51, 51, 51);
  --color-text-dark: rgb(18, 18, 18);
  --color-text-black: rgb(0, 0, 0);
  --color-text-secondary: rgb(115, 115, 115);
  --color-text-inverse: rgb(255, 255, 255);
  --color-text-muted: rgb(167, 167, 167);
  --color-text-charcoal: rgb(26, 27, 31);
  --color-text-soft: rgb(216, 209, 209);

  /* ---------- Palette — surfaces ---------- */
  --color-bg-page: rgb(255, 255, 255);
  --color-bg-accent: rgb(237, 28, 36);
  --color-bg-neutral: rgb(245, 245, 245);
  --color-bg-dark: rgb(18, 18, 18);
  --color-bg-alt1-alpha-40: rgba(255, 255, 255, 0.4);
  --color-bg-alt2: rgb(229, 229, 229);
  --color-bg-alt3: rgb(247, 244, 244);
  --color-bg-alt4-alpha-80: rgba(255, 255, 255, 0.8);

  /* ---------- Spacing scale ---------- */
  --space-4: 4px;
  --space-8: 8px;
  --space-10: 10px;
  --space-12: 12px;
  --space-15: 15px;
  --space-16: 16px;
  --space-20: 20px;
  --space-24: 24px;
  --space-40: 40px;
  --space-64: 64px;

  /* ---------- Radius / shadow ---------- */
  --radius-15: 15px;
  --radius-full: 50%;
  --radius-12: 12px;
  --radius-8: 8px;
  --radius-20: 20px;
  --radius-31: 31px;
  --shadow-1: rgba(0, 0, 0, 0.2) 0px 4px 20px 0px;
}

@media (max-width: 991px) {
  :root {
    --font-size-h3: 18px;
    --line-height-h3: 24px;
    --letter-spacing-h3: -0.36px;
    --font-size-a: 15px;
  }
}

@media (max-width: 479px) {
  :root {
    --font-size-h1: 36px;
    --line-height-h1: 44px;
    --letter-spacing-h1: -2px;
    --font-size-h2: 16px;
    --font-size-a: 14px;
    --color-bg-nav: rgb(255, 255, 255);
  }
}
