/*
  Typography scale (major third ~1.25, fluid between 360px and 1200px viewport).
  Body 16-17px, lead 18-21px, h1 34-52px, h2 28-38px, h3 24-30px, h4 20-24px, h5 18-20px, h6 16px.
*/

:root {
  --bs-body-font-size: clamp(1rem, 0.9732rem + 0.1190vw, 1.0625rem);
  --bs-body-line-height: 1.65;
  --bs-body-font-weight: 400;
  --type-h1: clamp(2.125rem, 1.6429rem + 2.1429vw, 3.25rem);
  --type-h2: clamp(1.75rem, 1.4821rem + 1.1905vw, 2.375rem);
  --type-h3: clamp(1.5rem, 1.3393rem + 0.7143vw, 1.875rem);
  --type-h4: clamp(1.25rem, 1.1429rem + 0.4762vw, 1.5rem);
  --type-h5: clamp(1.125rem, 1.0714rem + 0.2381vw, 1.25rem);
  --type-h6: clamp(1rem, 1.0000rem + 0.0000vw, 1rem);
  --type-lead: clamp(1.125rem, 1.0446rem + 0.3571vw, 1.3125rem);
  --type-small: clamp(0.8125rem, 0.7857rem + 0.1190vw, 0.875rem);
}

body { font-kerning: normal; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }

h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
  margin-top: 0;
  margin-bottom: .6em;
  color: var(--bs-heading-color, inherit);
  text-wrap: balance;
}

h1, .h1 {
  font-size: var(--type-h1);
  line-height: 1.1;
  font-weight: 700;
  letter-spacing: -0.025em;
}

h2, .h2 {
  font-size: var(--type-h2);
  line-height: 1.15;
  font-weight: 700;
  letter-spacing: -0.02em;
}

h3, .h3 {
  font-size: var(--type-h3);
  line-height: 1.2;
  font-weight: 600;
  letter-spacing: -0.015em;
}

h4, .h4 {
  font-size: var(--type-h4);
  line-height: 1.25;
  font-weight: 600;
  letter-spacing: -0.01em;
}

h5, .h5 {
  font-size: var(--type-h5);
  line-height: 1.3;
  font-weight: 600;
  letter-spacing: -0.005em;
}

h6, .h6 {
  font-size: var(--type-h6);
  line-height: 1.35;
  font-weight: 600;
  letter-spacing: 0;
}

p {
  margin-top: 0;
  margin-bottom: 1.25em;
  text-wrap: pretty;
}

p:last-child { margin-bottom: 0; }

.lead {
  font-size: var(--type-lead);
  font-weight: 400;
  line-height: 1.55;
}

small, .small, figcaption, .wp-element-caption {
  font-size: var(--type-small);
  line-height: 1.5;
}

strong, b { font-weight: 600; }
