/* Opt-in only. No geometry, saved markup, semantic alerts or form behavior. */
body.tn-color-header {
  --tn-inner-accent: var(--tn-palette-accent);
  --tn-inner-ink: var(--tn-palette-ink);
  background-color: var(--tn-palette-paper);
  color: var(--tn-palette-ink);
}
body.tn-color-header.tn-front-page {
  background-image:
    linear-gradient(transparent 29px, var(--tn-palette-paper-deep) 30px),
    radial-gradient(circle at 8% 2%, var(--tn-palette-highlight-soft), transparent 24rem),
    radial-gradient(circle at 94% 16%, var(--tn-palette-accent-soft), transparent 28rem);
  background-size: 100% 30px, auto, auto;
}
body.tn-color-header.tn-front-page .tn-hero__visual {
  background-image: linear-gradient(145deg, var(--tn-palette-paper-deep), var(--tn-palette-accent-soft) 48%, var(--tn-palette-highlight-soft));
}
body.tn-color-header.tn-front-page:is(.tn-design-soft, .tn-design-clear):not(.tn-layout-revenue):not(.tn-layout-magazine) .tn-hero__title span {
  background-image: linear-gradient(transparent 76%, var(--tn-palette-accent-soft) 76%);
}

/* Existing decoration variables resolve on each box. Red POINT / PR and
   caution retain their own fixed colors in content-contract.css. */
body.tn-color-header :is(.tn-disclosure, .tn-note, .tn-balloon, .tn-table-wrap, .tn-product-card, .tn-cta) {
  --tn-box-rule: var(--tn-palette-rule);
}
body.tn-color-header .tn-pr-label {
  background: #fff;
  color: #e12d39;
}
body.tn-color-header .tn-signup.tn-newsletter:not(.tn-signup--editorial) {
  color: var(--tn-palette-ink);
  border-color: var(--tn-palette-rule);
  border-top-color: var(--tn-palette-accent);
}
body.tn-color-header .tn-signup.tn-signup--editorial.tn-signup--tone-light {
  --tn-signup-overlay-rgb: var(--tn-palette-paper-rgb);
}
body.tn-color-header .tn-signup.tn-signup--editorial.tn-signup--tone-dark {
  --tn-signup-overlay-rgb: var(--tn-palette-ink-rgb);
}

/* Header-linked colors also replace layout-specific decorative constants.
   Revenue stays dark and magazine keeps its contrasting navigation. */
body.tn-color-header.tn-front-page .tn-nav__brand::before {
  background: var(--tn-palette-accent);
  color: #fff;
}
body.tn-color-header.tn-front-page :is(.tn-category-card, .tn-pr-card, .tn-profile) {
  background-color: var(--tn-palette-surface);
  border-color: var(--tn-palette-rule);
}
body.tn-color-header.tn-layout-journal .tn-hero {
  background: var(--tn-palette-surface);
}
body.tn-color-header.tn-layout-journal .tn-hero__eyebrow {
  color: var(--tn-palette-accent);
}
body.tn-color-header.tn-layout-journal .tn-newsletter:not(.tn-signup) {
  background: linear-gradient(135deg, var(--tn-palette-surface), var(--tn-palette-accent-soft) 62%, var(--tn-palette-highlight-soft));
}
body.tn-color-header.tn-layout-magazine .tn-site-header,
body.tn-color-header.tn-layout-magazine .tn-news-index__rule {
  background: var(--tn-palette-ink);
}
body.tn-color-header.tn-layout-magazine .tn-nav__links a:hover,
body.tn-color-header.tn-layout-magazine .tn-nav__links .current-menu-item > a,
body.tn-color-header.tn-layout-magazine .tn-hero__eyebrow {
  background: var(--tn-palette-accent);
  color: #fff;
}
body.tn-color-header.tn-layout-magazine .tn-latest-row__content {
  border-top-color: var(--tn-palette-accent);
}
body.tn-color-header.tn-layout-revenue .tn-site-header {
  border-top-color: var(--tn-palette-accent);
  border-bottom-color: var(--tn-palette-rule);
}
body.tn-color-header.tn-layout-revenue .tn-nav__brand {
  color: var(--tn-palette-ink) !important;
}
body.tn-color-header.tn-layout-revenue .tn-hero {
  border-left-color: var(--tn-palette-accent);
  background: var(--tn-palette-ink);
}
body.tn-color-header.tn-layout-revenue .tn-hero__copy {
  background: transparent !important;
}
body.tn-color-header.tn-layout-revenue .tn-hero__visual::after {
  background: linear-gradient(90deg, var(--tn-palette-ink) 0 48%, transparent 90%);
}
body.tn-color-header.tn-layout-revenue :is(.tn-button--primary, .tn-newsletter__button) {
  background-color: var(--tn-palette-accent);
  color: #fff !important;
}
body.tn-color-header.tn-layout-revenue .tn-button--primary:hover {
  background-color: var(--tn-palette-accent-dark);
}
body.tn-color-header.tn-layout-revenue .tn-hero > .tn-hero__copy > .tn-actions > a.tn-button--primary:not(:disabled):not([aria-disabled="true"]) {
  --tn-home-button-depth: var(--tn-palette-accent-dark);
}
body.tn-color-header.tn-layout-revenue .tn-profile {
  border-top-color: var(--tn-palette-accent);
}
body.tn-color-header.tn-layout-revenue .tn-latest-row {
  border-color: var(--tn-palette-rule);
  border-left-color: var(--tn-palette-accent);
}
body.tn-color-header.tn-layout-revenue .tn-latest-row__placeholder {
  background: linear-gradient(135deg, var(--tn-palette-accent-soft), var(--tn-palette-highlight-soft));
}

/* Simple articles remain predominantly white; color is used for navigation,
   frame accents and ordinary heading rules, never nested branded boxes. */
body.tn-color-header.tn-article-simple #main {
  border-color: var(--tn-palette-rule);
  border-top-color: var(--tn-palette-accent);
}
body.tn-color-header.tn-article-simple #navi {
  border-bottom-color: var(--tn-palette-rule);
}
body.tn-color-header.tn-article-simple #main > .article > .entry-content {
  color: var(--tn-palette-ink);
}
body.tn-color-header.tn-article-simple .entry-content h3:not(:where(.entry-content [class^="tn-"], .entry-content [class*=" tn-"], .entry-content [class^="tn-"] *, .entry-content [class*=" tn-"] *, .speech-wrap *, .speech-balloon *, .blogcard *, .toc *, .information-box *, .question-box *, .alert-box *, .memo-box *, .comment-box *, .common-icon-box *, .blank-box *, .caption-box *)) {
  border-left-color: var(--tn-palette-accent);
}
