/*
 * GUGA shared heading system v1.
 *
 * This stylesheet is intentionally scoped to pages that explicitly opt in
 * through data-heading-contract="editorial-v1". Legacy pages keep their
 * frozen typography until their locale receives a native editorial review.
 */

body[data-heading-contract="editorial-v1"] {
  --guga-type-h1: clamp(3.5rem, 5vw, 4.25rem);
  --guga-type-h1-mobile: clamp(2.375rem, 10.5vw, 2.75rem);
  --guga-type-h2: clamp(2.25rem, 3.2vw, 2.75rem);
  --guga-type-h2-mobile: clamp(1.75rem, 8vw, 2.125rem);
  --guga-type-h3: clamp(1.375rem, 1.7vw, 1.625rem);
  --guga-type-h3-mobile: clamp(1.25rem, 5.6vw, 1.4375rem);
  --guga-type-hero-slogan: clamp(1.5rem, 2.1vw, 2rem);
  --guga-type-hero-slogan-mobile: clamp(1.25rem, 5.7vw, 1.5rem);
}

body[data-heading-contract="editorial-v1"] main h1 {
  font-size: var(--guga-type-h1);
  line-height: 1.02;
  letter-spacing: -.025em;
  text-wrap: balance;
}

body[data-heading-contract="editorial-v1"] main h2:not([data-heading-role="hero-slogan"]) {
  font-size: var(--guga-type-h2);
  line-height: 1.1;
  letter-spacing: -.02em;
  text-wrap: balance;
}

body[data-heading-contract="editorial-v1"] main h3 {
  font-size: var(--guga-type-h3);
  line-height: 1.22;
  letter-spacing: -.012em;
  text-wrap: balance;
}

body[data-heading-contract="editorial-v1"] main h2[data-heading-role="hero-slogan"] {
  max-width: 36ch;
  margin: .65rem 0 1.75rem;
  color: var(--burgundy);
  font-family: var(--serif);
  font-size: var(--guga-type-hero-slogan);
  font-weight: 400;
  line-height: 1.18;
  letter-spacing: -.012em;
  text-wrap: balance;
}

body[data-heading-contract="editorial-v1"] main h2[data-heading-role="hero-slogan"] :is(span, em) {
  color: inherit;
  font: inherit;
}

body[data-heading-contract="editorial-v1"] main .heading-hero-context {
  max-width: 54ch;
  margin: .75rem 0 .45rem;
  color: var(--burgundy);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .12em;
  line-height: 1.35;
  text-transform: uppercase;
}

@media (min-width: 761px) and (max-width: 1100px) {
  body[data-heading-contract="editorial-v1"] {
    --guga-type-h1: clamp(3rem, 6.2vw, 3.75rem);
    --guga-type-h2: clamp(2rem, 4vw, 2.5rem);
    --guga-type-hero-slogan: clamp(1.375rem, 2.7vw, 1.75rem);
  }
}

@media (max-width: 760px) {
  body[data-heading-contract="editorial-v1"] main h1 {
    font-size: var(--guga-type-h1-mobile);
    line-height: 1.04;
    letter-spacing: -.02em;
  }

  body[data-heading-contract="editorial-v1"] main h2:not([data-heading-role="hero-slogan"]) {
    font-size: var(--guga-type-h2-mobile);
    line-height: 1.12;
    letter-spacing: -.015em;
  }

  body[data-heading-contract="editorial-v1"] main h3 {
    font-size: var(--guga-type-h3-mobile);
    line-height: 1.25;
  }

  body[data-heading-contract="editorial-v1"] main h2[data-heading-role="hero-slogan"] {
    margin: .5rem 0 1.25rem;
    font-size: var(--guga-type-hero-slogan-mobile);
    line-height: 1.22;
  }

  body[data-heading-contract="editorial-v1"] main .heading-hero-context {
    margin: .55rem 0 .35rem;
    font-size: .7rem;
    letter-spacing: .1em;
  }
}
