/* Shared public typography. Component styles may define layout, but text roles live here. */
.home-editorial-body,
.public-editorial-body,
.public-home-editorial,
.public-editorial-shell,
.legal-page {
  --public-font-body: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --public-font-display: "Unbounded", "Manrope", sans-serif;
  --public-type-ink: #07102d;
  --public-type-body: #627087;
  --public-type-muted: #7a8698;
  --public-type-accent: #285fff;
  --public-type-on-dark: rgba(255, 255, 255, 0.72);
  --public-type-on-dark-muted: rgba(255, 255, 255, 0.56);
  --public-size-hero: 4.75rem;
  --public-size-section: 4rem;
  --public-size-section-compact: 2.35rem;
  --public-size-card: 1.3rem;
  --public-size-body-large: 1rem;
  --public-size-body: 0.875rem;
  --public-size-small: 0.75rem;
  --public-size-meta: 0.68rem;
  --public-size-card-meta: 0.64rem;
  --public-control-height: 3rem;
  --public-hero-control-height: 3.4375rem;
  --public-control-radius: 0.35rem;
  --public-control-padding-inline: 1.25rem;
  --public-control-gap: 1rem;
  color: var(--public-type-ink);
  font-family: var(--public-font-body);
  font-weight: 400;
}

.home-editorial-body,
.public-home-editorial {
  --home-font-body: var(--public-font-body);
  --home-font-display: var(--public-font-display);
  --home-ink: var(--public-type-ink);
  --home-muted: var(--public-type-body);
}

.public-editorial-body,
.public-editorial-shell {
  --editorial-ink: var(--public-type-ink);
  --editorial-muted: var(--public-type-body);
}

.home-editorial-body :is(h1, h2, h3, h4, p, a, button, input, select, textarea, small, strong, span),
.public-editorial-body :is(h1, h2, h3, h4, p, a, button, input, select, textarea, small, strong, span),
.public-home-editorial :is(h1, h2, h3, h4, p, a, button, input, select, textarea, small, strong, span),
.public-editorial-shell :is(h1, h2, h3, h4, p, a, button, input, select, textarea, small, strong, span),
.legal-page :is(h1, h2, h3, h4, p, a, button, input, select, textarea, small, strong, span) {
  letter-spacing: 0 !important;
}

/* Semantic defaults keep uncommon and newly added blocks on the same scale. */
.home-editorial-body :is(h2, h3, h4),
.public-editorial-body :is(h2, h3, h4),
.public-home-editorial :is(h2, h3, h4),
.public-editorial-shell :is(h2, h3, h4),
.legal-page :is(h2, h3, h4) {
  font-family: var(--public-font-body) !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
}

.home-editorial-body h2,
.public-editorial-body h2,
.public-home-editorial h2,
.public-editorial-shell h2,
.legal-page h2 {
  font-size: var(--public-size-section-compact);
  line-height: 1.08;
}

.home-editorial-body :is(h3, h4),
.public-editorial-body :is(h3, h4),
.public-home-editorial :is(h3, h4),
.public-editorial-shell :is(h3, h4),
.legal-page :is(h3, h4) {
  font-size: var(--public-size-card);
  line-height: 1.2;
}

.home-editorial-body :is(strong, b),
.public-editorial-body :is(strong, b),
.public-home-editorial :is(strong, b),
.public-editorial-shell :is(strong, b),
.legal-page :is(strong, b) {
  font-weight: 700 !important;
}

.home-editorial-body :is(h1, h2, h3, h4) :is(strong, b),
.public-editorial-body :is(h1, h2, h3, h4) :is(strong, b),
.public-home-editorial :is(h1, h2, h3, h4) :is(strong, b),
.public-editorial-shell :is(h1, h2, h3, h4) :is(strong, b),
.legal-page :is(h1, h2, h3, h4) :is(strong, b) {
  font-size: inherit !important;
  font-weight: inherit !important;
  line-height: inherit !important;
}

.home-editorial-body p,
.public-editorial-body p,
.public-home-editorial p,
.public-editorial-shell p,
.legal-page p {
  font-size: var(--public-size-body);
  font-weight: 400;
  line-height: 1.7;
}

.home-editorial-body small,
.public-editorial-body small,
.public-home-editorial small,
.public-editorial-shell small,
.legal-page small {
  font-size: var(--public-size-meta);
  font-weight: 700;
  line-height: 1.35;
}

.home-editorial-body :is(button, input, select, textarea),
.public-editorial-body :is(button, input, select, textarea),
.public-home-editorial :is(button, input, select, textarea),
.public-editorial-shell :is(button, input, select, textarea),
.legal-page :is(button, input, select, textarea) {
  font-family: var(--public-font-body);
  font-size: var(--public-size-small);
  font-weight: 500;
}

/* First screen: one face, one weight and enough line box for Cyrillic diacritics. */
.pm-opportunity-hero__title,
.platform-editorial-hero__copy h1,
.contour-editorial-hero h1,
.public-editorial-hero h1,
.legal-hero h1 {
  font-family: var(--public-font-display) !important;
  font-size: var(--public-size-hero) !important;
  font-weight: 500 !important;
  line-height: 1.06 !important;
  letter-spacing: 0 !important;
  text-wrap: balance;
}

/* The merch title contains a long Cyrillic word; keep it inside the copy column. */
.contour-editorial-hero--merch h1 {
  max-width: 100%;
  font-size: 3.65rem !important;
}

@media (max-width: 1180px) {
  .contour-editorial-hero--merch h1 {
    font-size: 3.2rem !important;
  }
}

@media (max-width: 700px) {
  .contour-editorial-hero--merch h1 {
    font-size: 2rem !important;
  }
}

/* Major section headlines keep the geometric Figma display face. */
.home-section-heading h2,
.home-endowment-section__copy h2,
.home-directions-section__intro h2,
.home-governance-section__copy h2,
.platform-page-heading h2,
.platform-workflow > header h2,
.platform-route-context > header h2,
.public-editorial-section__head h2,
.public-editorial-list-block > header h3,
.public-editorial-overview article h2,
.endowment-editorial-copy h2,
.endowment-editorial-heading h2,
.endowment-editorial-contact h2,
.endowment-editorial-cta h2,
.merch-store__intro h2,
.home-editorial-footer__lead h2,
.endowment-figma-footer__top > p {
  font-family: var(--public-font-display) !important;
  font-size: var(--public-size-section) !important;
  font-weight: 700 !important;
  line-height: 1.04 !important;
  letter-spacing: 0 !important;
  text-wrap: balance;
}

/* The home endowment title follows the narrower text column from the Figma composition. */
.home-endowment-section__copy h2 {
  font-size: clamp(2.15rem, 3.25vw, 3.5rem) !important;
  text-wrap: wrap;
}

/* Editorial feature panels use display typography in the Figma system. */
.home-opportunity-stage__copy h3 {
  font-family: var(--public-font-display) !important;
  font-size: clamp(2.3rem, 2.8vw, 3.15rem) !important;
  font-weight: 700 !important;
  line-height: 0.96 !important;
  letter-spacing: 0 !important;
  text-wrap: wrap;
}

.public-editorial-article h2,
.public-editorial-profile h2,
.public-editorial-inline-cta h2,
.public-editorial-request-modal__panel > header h2,
.legal-section h2,
.legal-note h3 {
  font-family: var(--public-font-body) !important;
  font-size: var(--public-size-section-compact) !important;
  font-weight: 800 !important;
  line-height: 1.08 !important;
  letter-spacing: 0 !important;
  text-wrap: balance;
}

/* Repeated card titles are deliberately quieter than page headings. */
.home-task-card > strong,
.home-contribution-card__copy > strong,
.home-project-brief__copy > strong,
.platform-route-row__title h3,
.platform-workflow__steps h3,
.public-editorial-info-card h3,
.public-editorial-project-card__copy > strong,
.public-editorial-story-grid a h3,
.public-editorial-person-card h3,
.public-editorial-resource-grid :is(a, article) strong {
  font-family: var(--public-font-body) !important;
  font-size: var(--public-size-card) !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  letter-spacing: 0 !important;
  text-wrap: balance;
}

/* Shared body copy. */
.pm-opportunity-hero__summary,
.platform-editorial-hero__summary p,
.contour-editorial-hero__summary,
.public-editorial-hero__summary,
.endowment-editorial-hero__summary {
  color: var(--public-type-on-dark);
  font-size: var(--public-size-body-large);
  font-weight: 400;
  line-height: 1.7;
}

.home-section-heading--split > p,
.home-section-heading__aside,
.platform-page-heading > span,
.public-editorial-section__summary,
.endowment-editorial-heading > p,
.endowment-editorial-heading > div:last-child > p,
.legal-hero__notice {
  color: var(--public-type-body);
  font-size: var(--public-size-body-large);
  font-weight: 400;
  line-height: 1.7;
}

.platform-route-row__details p,
.public-editorial-info-card > p,
.public-editorial-project-card__copy > p,
.public-editorial-story-grid a p,
.public-editorial-person-card p,
.public-editorial-resource-grid a p,
.legal-section > p:not(.legal-eyebrow),
.legal-note p {
  color: var(--public-type-body);
  font-size: var(--public-size-body);
  font-weight: 400;
  line-height: 1.7;
}

.public-editorial-article__lead {
  color: var(--public-type-ink) !important;
  font-size: var(--public-size-body-large) !important;
  font-weight: 700;
  line-height: 1.7;
}

.public-editorial-prose {
  color: #35425a;
  font-size: var(--public-size-body-large);
  font-weight: 400;
  line-height: 1.85;
}

/* Eyebrows, indexes and utility copy share one compact role. */
.home-editorial-body .pm-opportunity-hero__eyebrow,
.public-editorial-body .contour-editorial-hero__kicker,
.public-editorial-body .endowment-editorial-kicker,
.home-editorial-body .home-section-heading > div:first-child > p,
.home-editorial-body .home-section-heading > p:first-child,
.home-editorial-body .home-opportunity-kicker,
.home-editorial-body .home-endowment-section__copy > p,
.home-editorial-body .home-governance-section__copy > p,
.home-editorial-body .platform-editorial-hero__copy > p,
.home-editorial-body .platform-page-heading > p,
.home-editorial-body .platform-workflow > header > p,
.home-editorial-body .platform-route-context > header > p,
.public-editorial-body .public-editorial-eyebrow,
.public-editorial-body .public-editorial-section__head > div > p,
.public-editorial-body .public-editorial-list-block > header > p,
.public-editorial-body .public-editorial-form__head p,
.public-editorial-body .endowment-editorial-eyebrow,
.public-editorial-body .merch-checkout-page > header > p,
.legal-page .legal-eyebrow,
.legal-page .legal-hero__aside-label,
.legal-page .legal-toc p,
.public-footer .public-footer__eyebrow {
  font-family: var(--public-font-body);
  font-size: var(--public-size-meta);
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0;
  text-transform: uppercase;
}

/* Repeated card anatomy follows one compact hierarchy across catalogues. */
.home-editorial-body .home-task-card__deadline,
.home-editorial-body .home-contribution-card__meta small,
.home-editorial-body .platform-project-card__copy small,
.public-editorial-body .public-editorial-info-card > small,
.public-editorial-body .public-editorial-project-card__copy > small,
.public-editorial-body .public-editorial-story-grid a small,
.public-editorial-body .public-editorial-person-card small,
.public-editorial-body .public-editorial-resource-grid a small,
.public-editorial-body .endowment-editorial-grid article > small,
.public-editorial-body .endowment-editorial-campaigns__copy > small,
.public-editorial-body .endowment-editorial-results article > small,
.public-editorial-body .merch-product-card__meta {
  font-family: var(--public-font-body);
  font-size: var(--public-size-card-meta);
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0;
  text-transform: uppercase;
}

.public-editorial-body .endowment-editorial-grid article h3,
.public-editorial-body .endowment-editorial-campaigns__copy h3,
.public-editorial-body .endowment-editorial-results article h3,
.public-editorial-body .merch-product-card__title {
  font-family: var(--public-font-body) !important;
  font-size: var(--public-size-card) !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  letter-spacing: 0 !important;
  text-wrap: balance;
}

.public-editorial-body .endowment-editorial-grid article > p,
.public-editorial-body .endowment-editorial-campaigns__copy > p,
.public-editorial-body .endowment-editorial-results article > p,
.public-editorial-body .merch-product-card__body > p {
  color: var(--public-type-body);
  font-size: var(--public-size-body);
  font-weight: 400;
  line-height: 1.7;
}

/* Hero actions are one control regardless of the page-specific class name. */
.home-editorial-body .pm-opportunity-hero__actions a,
.home-editorial-body .platform-editorial-hero__summary a,
.public-editorial-body .contour-editorial-hero__actions .contour-editorial-action,
.public-editorial-body .endowment-editorial-hero__actions .endowment-editorial-action,
.public-editorial-body .public-editorial-hero__actions .public-editorial-button {
  min-height: var(--public-hero-control-height);
  gap: 2rem;
  border-radius: var(--public-control-radius);
  padding-inline: var(--public-control-padding-inline);
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.25;
}

/* Endowment and contour navigation are the same local-navigation component. */
.public-editorial-body .endowment-editorial-nav,
.public-editorial-body .contour-editorial-nav {
  height: 4.75rem;
  min-height: 4.75rem;
}

.public-editorial-body .endowment-editorial-nav {
  --public-local-nav-accent: #54e6ff;
}

.public-editorial-body .contour-editorial-nav {
  --public-local-nav-accent: var(--contour-nav-accent);
}

.public-editorial-body .endowment-editorial-nav a,
.public-editorial-body .contour-editorial-nav a {
  min-height: 4.75rem;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 0.75rem;
  padding-inline: 1.35rem;
}

.public-editorial-body .endowment-editorial-nav a.is-active,
.public-editorial-body .contour-editorial-nav a.is-active {
  box-shadow: inset 0 -3px var(--public-local-nav-accent);
}

.public-editorial-body .endowment-editorial-nav :is(span, i),
.public-editorial-body .contour-editorial-nav :is(span, i) {
  color: var(--public-local-nav-accent);
  font-size: var(--public-size-meta);
  font-style: normal;
  font-weight: 700;
  line-height: 1.25;
}

.public-editorial-body .endowment-editorial-nav strong,
.public-editorial-body .contour-editorial-nav strong {
  font-size: 0.78rem;
  font-weight: 700;
  line-height: 1.25;
}

/* Public forms and checkout use one field, checkbox and status language. */
.public-editorial-body .public-editorial-field > span,
.public-editorial-body .merch-checkout-form label > span:first-child {
  color: var(--public-type-body);
  font-size: var(--public-size-card-meta);
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0;
}

.public-editorial-body .public-editorial-field :is(input, select, textarea),
.public-editorial-body .merch-checkout-form :is(input:not([type="radio"]):not([type="checkbox"]), textarea) {
  width: 100%;
  min-height: var(--public-control-height);
  border: 1px solid var(--editorial-line, #d9e1ec);
  border-radius: var(--public-control-radius);
  padding: 0.75rem 0.85rem;
  background: #fff;
  color: var(--public-type-ink);
  font-family: var(--public-font-body);
  font-size: var(--public-size-small);
  font-weight: 500;
  line-height: 1.5;
  outline: none;
}

.public-editorial-body .public-editorial-field :is(input, select, textarea):focus,
.public-editorial-body .merch-checkout-form :is(input, textarea):focus {
  border-color: var(--public-type-accent);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--public-type-accent) 10%, transparent);
}

.public-editorial-body .public-editorial-check input,
.public-editorial-body .merch-consent input {
  width: 1.15rem;
  height: 1.15rem;
  flex: 0 0 auto;
  appearance: none;
  border: 1px solid var(--editorial-line, #d9e1ec);
  border-radius: 0.2rem;
  background: #fff;
  cursor: pointer;
}

.public-editorial-body .public-editorial-check input:checked,
.public-editorial-body .merch-consent input:checked {
  border-color: var(--public-type-accent);
  background:
    linear-gradient(135deg, transparent 44%, #fff 44% 55%, transparent 55%) 0.16rem 0.43rem / 0.36rem 0.22rem no-repeat,
    linear-gradient(45deg, transparent 43%, #fff 43% 56%, transparent 56%) 0.48rem 0.3rem / 0.48rem 0.44rem no-repeat,
    var(--public-type-accent);
}

.public-editorial-body .public-editorial-form__submit button,
.public-editorial-body .merch-checkout-submit {
  min-height: var(--public-control-height);
  border-radius: var(--public-control-radius);
  padding-inline: var(--public-control-padding-inline);
  font-size: var(--public-size-small);
  font-weight: 700;
  line-height: 1.25;
}

.public-editorial-body .public-editorial-form__submit p,
.public-editorial-body .merch-checkout-status {
  margin: 0;
  color: var(--public-type-body);
  font-size: var(--public-size-small);
  font-weight: 500;
  line-height: 1.5;
}

.public-editorial-body :is(.public-editorial-form__submit p, .merch-checkout-status)[data-state="success"] {
  color: #08765a;
}

.public-editorial-body :is(.public-editorial-form__submit p, .merch-checkout-status)[data-state="error"] {
  color: #b42318;
}

/* Controls and navigation must not jump between 600, 750 and 800. */
.public-home-editorial :is(a, button),
.public-editorial-shell :is(a, button),
.legal-page :is(a, button) {
  font-family: var(--public-font-body);
}

.pm-opportunity-hero__actions a,
.platform-editorial-hero__summary a,
.platform-route-row__primary,
.contour-editorial-action,
.public-editorial-button,
.endowment-editorial-action,
.legal-hero__links a,
.legal-hero__links button,
.legal-actions a {
  font-size: var(--public-size-small);
  font-weight: 700;
  line-height: 1.25;
}

.public-header__mega-direct,
.public-header__search-button,
.public-header__desktop-action,
.public-editorial-actions strong,
.endowment-editorial-nav strong,
.home-editorial-footer__directory a,
.home-editorial-footer__directory span {
  font-weight: 700;
  letter-spacing: 0;
}

@media (max-width: 1023px) {
  .home-editorial-body,
  .public-editorial-body,
  .public-home-editorial,
  .public-editorial-shell,
  .legal-page {
    --public-size-hero: 3.25rem;
    --public-size-section: 3rem;
    --public-size-section-compact: 2rem;
  }
}

@media (max-width: 639px) {
  .home-editorial-body,
  .public-editorial-body,
  .public-home-editorial,
  .public-editorial-shell,
  .legal-page {
    --public-size-hero: 2.35rem;
    --public-size-section: 2.25rem;
    --public-size-section-compact: 1.75rem;
    --public-size-card: 1.18rem;
    --public-size-body-large: 0.94rem;
    --public-size-body: 0.84rem;
    --public-size-small: 0.75rem;
    --public-size-meta: 0.66rem;
  }

  .pm-opportunity-hero__title,
  .platform-editorial-hero__copy h1,
  .contour-editorial-hero h1,
  .public-editorial-hero h1,
  .legal-hero h1 {
    line-height: 1.12 !important;
  }

  .home-endowment-section__copy h2 {
    font-size: clamp(1.95rem, 9vw, 2.25rem) !important;
  }
}
