/* Token-driven colour layer for user-created theme copies. Original absolute
   layouts keep their own hard-coded palettes; only custom templates opt in. */
.sb-custom-theme.sb-absolute { background: var(--sb-bg); color: var(--sb-text); }
.sb-custom-theme .sb-abs-page,
.sb-custom-theme .sb-cine,
.sb-custom-theme .sb-swiss,
.sb-custom-theme .sb-mag,
.sb-custom-theme .sb-arena,
.sb-custom-theme .sb-org { background: var(--sb-bg); color: var(--sb-text); }
.sb-custom-theme :is(h1, h2, h3, h4, h5, h6, strong, blockquote) { color: var(--sb-text); }
.sb-custom-theme :is(p, small, figcaption, time, .text-muted) { color: var(--sb-muted); }
.sb-custom-theme :is(.sb-cine-link, .sb-mag-read, .sb-arena-section-head a, .sb-org-section-head a, .sb-custom-events__all) { color: var(--sb-primary); }
.sb-custom-theme :is(.sb-cine-feature, .sb-cine-quote, .sb-cine-stat, .sb-cine-event, .sb-swiss-feature, .sb-swiss-stat, .sb-swiss-event-row, .sb-mag-feature-card, .sb-mag-brief, .sb-mag-pullquote, .sb-arena-event, .sb-arena-module, .sb-arena-metric, .sb-arena-terminal, .sb-org-event, .sb-org-feature, .sb-org-pebble, .sb-org-note) {
  border-color: var(--sb-border);
  background-color: color-mix(in srgb, var(--sb-surface) 86%, transparent);
  color: var(--sb-text);
}
.sb-custom-theme :is(.sb-cine-section-head, .sb-swiss-section-head, .sb-mag-section-head, .sb-arena-section-head, .sb-org-section-head, .sb-cine-footer, .sb-mag-rule, .sb-custom-events__head) { border-color: var(--sb-border); }
.sb-custom-theme :is(.sb-cine-kicker, .sb-swiss-section-index, .sb-mag-section-kicker, .sb-arena-section-code, .sb-org-kicker, .sb-custom-events__kicker, .sb-custom-card__date) { color: var(--sb-primary); }
.sb-custom-theme :is(.sb-abs-btn--primary, .sb-custom-header__button--primary, .sb-footer-account--primary) { background: var(--sb-primary); color: var(--sb-primary-text); }
.sb-custom-theme :is(.sb-abs-btn--ghost, .sb-abs-btn--line, .sb-custom-header__button--ghost, .sb-footer-account--ghost) { border-color: var(--sb-border); color: var(--sb-text); }
.sb-custom-theme .sb-custom-card { border-color: var(--sb-border); background: var(--sb-surface); color: var(--sb-text); }
.sb-custom-theme .sb-footer-account--ghost { border-color: color-mix(in srgb, var(--sb-text) 55%, transparent); color: var(--sb-text); }
.sb-custom-theme .sb-abs-mini-footer { border-color: var(--sb-border); color: var(--sb-muted); }

.sb-custom-theme .sb-mag-rule { color: var(--sb-muted); }
.sb-custom-theme .sb-custom-events__grid { color: var(--sb-text); }

/* Header and Footer are content-editable inside the copied composition, so
   their text must follow the custom token palette instead of the original
   layout's hard-coded ink colours. */
.sb-custom-theme.sb-absolute .sb-abs-header { color: var(--sb-text); }
.sb-custom-theme.sb-absolute .sb-abs-header.sb-mag-header { color: var(--sb-text); }
.sb-custom-theme.sb-absolute .sb-abs-header.sb-swiss-header {
  border-color: var(--sb-border);
  background: color-mix(in srgb, var(--sb-bg) 92%, transparent);
  color: var(--sb-text);
}
.sb-custom-theme.sb-absolute .sb-abs-header.sb-arena-header {
  border-color: var(--sb-border);
  background: color-mix(in srgb, var(--sb-bg) 92%, transparent);
  color: var(--sb-text);
}
.sb-custom-theme.sb-absolute .sb-abs-header.sb-org-header {
  border-color: var(--sb-border);
  background: color-mix(in srgb, var(--sb-bg) 88%, transparent);
  color: var(--sb-text);
}
.sb-custom-theme.sb-absolute .sb-abs-header :is(.sb-cine-brand, .sb-swiss-brand, .sb-mag-brand, .sb-arena-brand, .sb-org-brand) { color: var(--sb-text); }
.sb-custom-theme.sb-absolute .sb-abs-header .sb-swiss-brand span:first-child { border-color: var(--sb-text); }
.sb-custom-theme.sb-absolute .sb-abs-header :is(.sb-cine-nav, .sb-swiss-nav, .sb-mag-nav, .sb-arena-nav, .sb-org-nav) a { color: var(--sb-muted); }
.sb-custom-theme.sb-absolute .sb-abs-header :is(.sb-cine-nav, .sb-swiss-nav, .sb-mag-nav, .sb-arena-nav, .sb-org-nav) a:hover { color: var(--sb-primary); }
.sb-custom-theme.sb-absolute .sb-abs-header :is(.sb-mag-masthead > span, .sb-swiss-issue, .sb-arena-status, .sb-theme-header__eyebrow, .sb-theme-header__meta) { color: var(--sb-muted); }
.sb-custom-theme.sb-absolute .sb-abs-header .sb-mag-nav { border-color: var(--sb-border); }
.sb-custom-theme .sb-swiss-header__top,
.sb-custom-theme .sb-swiss-header__bottom,
.sb-custom-theme .sb-mag-masthead,
.sb-custom-theme.sb-absolute .sb-abs-header .sb-mag-nav { border-color: var(--sb-border); }
.sb-custom-theme.sb-absolute .sb-abs-header .sb-theme-header__button--primary { background: var(--sb-primary); color: var(--sb-primary-text); }
.sb-custom-theme.sb-absolute .sb-abs-header .sb-theme-header__button--ghost { border-color: var(--sb-border); color: var(--sb-text); }
.sb-custom-theme.sb-absolute .sb-abs-header .sb-theme-header__button--plain { color: var(--sb-text); }
.sb-custom-theme.sb-absolute .sb-abs-header .sb-theme-header__toggle { border-color: var(--sb-border); color: var(--sb-text); }

.sb-custom-theme.sb-absolute .sb-abs-footer { color: var(--sb-muted); }
.sb-custom-theme.sb-absolute .sb-abs-footer:is(.sb-cine-footer, .sb-swiss-footer, .sb-mag-footer, .sb-arena-footer, .sb-org-footer) { border-color: var(--sb-border); color: var(--sb-muted); }
.sb-custom-theme.sb-absolute .sb-abs-footer:is(.sb-cine-footer__top, .sb-swiss-footer, .sb-mag-footer, .sb-arena-footer, .sb-org-footer) { border-color: var(--sb-border); }
.sb-custom-theme.sb-absolute .sb-abs-footer :is(p, .sb-theme-footer__note) { color: var(--sb-muted); }
.sb-custom-theme.sb-absolute .sb-abs-footer nav a { color: var(--sb-text); }
.sb-custom-theme.sb-absolute .sb-abs-footer :is(.sb-cine-footer__bottom, .sb-mag-footer__bottom, .sb-arena-footer__bottom, .sb-org-footer__bottom) { border-color: var(--sb-border); color: var(--sb-muted); }
.sb-custom-theme.sb-absolute .sb-abs-footer :is(.sb-cine-footer__brand strong, .sb-swiss-footer__brand strong, .sb-swiss-footer__brand span, .sb-org-footer__brand strong) { color: var(--sb-text); }
.sb-custom-theme.sb-absolute .sb-abs-footer .sb-mag-footer__masthead { border-color: var(--sb-border); color: var(--sb-muted); }
.sb-custom-theme.sb-absolute .sb-abs-footer .sb-swiss-footer__brand > span { border-color: var(--sb-text); }
.sb-custom-theme.sb-absolute .sb-abs-footer .sb-arena-footer__bar { border-color: var(--sb-border); color: var(--sb-primary); }
.sb-custom-theme.sb-absolute .sb-abs-footer .sb-org-footer nav a { background: color-mix(in srgb, var(--sb-primary) 12%, transparent); color: var(--sb-text); }
.sb-custom-theme.sb-absolute .sb-abs-footer .sb-theme-footer__button--primary { background: var(--sb-primary); color: var(--sb-primary-text); }
.sb-custom-theme.sb-absolute .sb-abs-footer .sb-theme-footer__button--ghost { border-color: var(--sb-border); color: var(--sb-text); }
.sb-custom-theme.sb-absolute .sb-abs-footer .sb-theme-footer__button--plain { color: var(--sb-text); }
.sb-custom-theme.sb-absolute .sb-abs-footer .sb-swiss-footer__issue { color: var(--sb-muted); }

/* Custom templates get token-driven hero artwork, independent from card
   covers and from the original theme's decorative palette. */
.sb-custom-theme .sb-hero-art {
  background-size: cover;
  background-image:
    linear-gradient(135deg, transparent 0 48%, color-mix(in srgb, var(--sb-border) 72%, transparent) 48% 48.5%, transparent 48.5% 100%),
    radial-gradient(circle at 72% 24%, color-mix(in srgb, var(--sb-primary) 38%, transparent), transparent 42%),
    radial-gradient(circle at 18% 80%, color-mix(in srgb, var(--sb-accent) 28%, transparent), transparent 46%),
    linear-gradient(145deg, color-mix(in srgb, var(--sb-surface) 86%, #000 14%), var(--sb-bg));
}
