/* ============================================================
   Eduseeds — typography override
   Pairing: Outfit (display) + Source Sans 3 (body)
   Applied on top of Webador's stylesheet via !important and
   inherits-friendly selectors that leave icon fonts alone.
   ============================================================ */

:root {
  --font-display: 'Outfit', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-body:    'Source Sans 3', system-ui, -apple-system, 'Segoe UI', sans-serif;

  /* Fluid modular scale (~1.25 ratio, clamps min→ideal→max) */
  --fs-base: clamp(1rem,     0.95rem  + 0.25vw, 1.125rem);
  --fs-lead: clamp(1.125rem, 1.05rem  + 0.4vw,  1.3rem);
  --fs-h6:   clamp(0.875rem, 0.85rem  + 0.15vw, 1rem);
  --fs-h5:   clamp(1.125rem, 1.05rem  + 0.4vw,  1.3rem);
  --fs-h4:   clamp(1.25rem,  1.1rem   + 0.7vw,  1.6rem);
  --fs-h3:   clamp(1.5rem,   1.25rem  + 1.1vw,  2rem);
  --fs-h2:   clamp(1.875rem, 1.5rem   + 1.6vw,  2.625rem);
  --fs-h1:   clamp(2.25rem,  1.7rem   + 2.4vw,  3.5rem);
}

/* ---- base ---- */
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }

html, body {
  font-family: var(--font-body) !important;
  font-size: var(--fs-base);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  font-feature-settings: "kern", "liga", "calt";
}

/* explicit text elements (don't touch span/div so icon fonts survive) */
p, li, blockquote, dd, dt, label, address, figcaption,
table, td, th,
input, select, textarea {
  font-family: var(--font-body) !important;
}

p, li { line-height: 1.65; }
small { font-size: 0.875em; }

/* ---- headings ---- */
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6,
.heading, .title,
[class*="title-"], [class*="heading-"], [class*="-title"], [class*="-heading"] {
  font-family: var(--font-display) !important;
  line-height: 1.2;
  letter-spacing: -0.012em;
  color: inherit;
}

h1, .h1 { font-size: var(--fs-h1) !important; font-weight: 700 !important; line-height: 1.1;  letter-spacing: -0.022em; }
h2, .h2 { font-size: var(--fs-h2) !important; font-weight: 700 !important; line-height: 1.15; letter-spacing: -0.018em; }
h3, .h3 { font-size: var(--fs-h3) !important; font-weight: 600 !important; line-height: 1.2;  letter-spacing: -0.012em; }
h4, .h4 { font-size: var(--fs-h4) !important; font-weight: 600 !important; line-height: 1.25; }
h5, .h5 { font-size: var(--fs-h5) !important; font-weight: 500 !important; line-height: 1.3;  }
h6, .h6 { font-size: var(--fs-h6) !important; font-weight: 600 !important; line-height: 1.4;  text-transform: uppercase; letter-spacing: 0.06em; }

/* ---- links ---- */
a {
  font-family: inherit;
  text-decoration-thickness: 0.06em;
  text-underline-offset: 0.18em;
}

/* ---- buttons / nav / UI elements ---- */
button, .btn, [role="button"],
input[type="button"], input[type="submit"],
a.button, a.btn,
nav a, .nav a, .menu a, header nav a,
[class*="button"]:not([class*="icon"]) {
  font-family: var(--font-display) !important;
  font-weight: 500;
  letter-spacing: 0.005em;
}

/* ---- blockquote ---- */
blockquote, .quote {
  font-family: var(--font-display) !important;
  font-weight: 500;
  font-style: italic;
  font-size: var(--fs-lead);
  line-height: 1.4;
}

/* ---- small / eyebrow / kicker text ---- */
[class*="overline"], .eyebrow, .kicker, .label-uppercase {
  font-family: var(--font-display) !important;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: var(--fs-h6);
}

/* ---- intro / lead paragraph ---- */
.lead, .intro, [class*="-lead"], [class*="-intro"] {
  font-size: var(--fs-lead);
  line-height: 1.55;
  font-weight: 400;
}
