/* EU AI Compass Balanced typography, Round 2.
   Screen only: print and generated/downloadable document styles remain inherited.
   Activation is explicit; Round 1 and unmarked pages are unaffected. */
@media screen {
  body[data-euai-typography="balanced-round2"] { font-weight: 400; }

  /* Existing bold utilities denote emphasis, including generated result values. */
  body[data-euai-typography="balanced-round2"] :is(.font-semibold, .font-bold, .font-extrabold, .font-black, .euai-brand, .euai-footer-label, .footer-title, .m78-standard-footer-title, .m78-standard-footer-heading, .metric .v, .top-note) { font-weight: 600; }
  body[data-euai-typography="balanced-round2"] :is(strong, b, th, caption, dt) { font-weight: 600 !important; }
  body[data-euai-typography="balanced-round2"] :is(h1, h2, h3, h4, h5, h6, .gls-dt, .tool-form-section-title, .tool-panel-title, .tool-form-title, .panel-title, .vendor-form-title, .vendor-panel-title, .hero-panel-title, .m78-result-title, .m78-route-title) { font-weight: 600 !important; }
  body[data-euai-typography="balanced-round2"] :is(h1, h2, h3, h4, h5, h6) :is(span, strong, b, a, em):not([aria-hidden="true"]) { font-weight: 600 !important; }

  /* Secondary labels, status badges and field names. */
  body[data-euai-typography="balanced-round2"] :is(.eyebrow, .kicker, .badge, .m78-eyebrow, .m78-section-label, .m78-small-label, .section-label, .mini-label, .pill, .tag, .status, .status-chip, .risk-chip, .status-pill, .card-pill, .field-chip, .record-pill, .result-pill, .m78-pill, .m78-result-badge, .chip, .hash-chip, .m78-guide-chip, .step-number, .phase-no, .m78-step-number, .week-label, .m78-start-kicker, .m78-status-kicker, .m78-route-kicker, .m78-status-label, .m78-hash-cloud-title, .m78-hash-title, .m78-topic-cloud-label, .tool-panel-kicker, .panel-kicker, .vendor-panel-kicker, .metric .k, .copy-status, .mini-fact span, .next-tool span, .related-card span, .card small, .eu-deadline-bar, .eu-deadline-days, span.uppercase, p.uppercase, .prohibition-id, label, legend, .field-label, .tool-label, .tool-field-label, .vendor-field-label, .m78-router-label, .demo-confirm, .choice span, .choice-card, .check-row span) { font-weight: 500; }
  body[data-euai-typography="balanced-round2"] :is(.faq-kicker, .m78-faq-kicker) { font-weight: 500 !important; }
  /* Comics tags are generated with inline weights; the artwork is untouched. */
  body[data-euai-typography="balanced-round2"] .htag { font-weight: 500 !important; }
  body[data-euai-typography="balanced-round2"] .m78-start-title { font-weight: 600; }
  body[data-euai-typography="balanced-round2"] :is(div.uppercase, span.rounded-full.font-bold, span.rounded-full.font-semibold, #active-status, #quiz-score-pill, #feedbackPane .uppercase, #quiz-feedback .uppercase) { font-weight: 500; }

  /* Explicit controls and links, without changing the prose inside linked cards. */
  body[data-euai-typography="balanced-round2"] :is(button, summary, .button, .btn, .btn-primary, .btn-secondary, .primary-btn, .secondary-btn, .tool-primary-btn, .tool-secondary-btn, .vendor-primary-btn, .vendor-secondary-btn, .m78-btn-primary, .m78-btn-secondary, .route-switch-link, .result-action, .implementation-link, .m78-card-link, .m78-topic-chip, .htag, .fb, nav a, nav button, .nav-links, .nav-dropdown a, .mobile-menu a, .mobile-links a, .brand, .brand span, .breadcrumb a, .eu-deadline-bar a, .cat-nav a, .az-nav a, .tool-callout a, .cta-box a, .route-card a, .card a, .source-box a, .source-small a, .source-status a, .source-note a, .m78-source-note a, .m78-route-row a, .m78-tool-strip a, .m78-guide-table a, .m78-hash-list a, .print-callout a, a.font-semibold, a.font-bold) { font-weight: 500; }
  body[data-euai-typography="balanced-round2"] :is(nav a, nav button, .brand) :is(span, strong, b):not([aria-hidden="true"]) { font-weight: 500 !important; }
  body[data-euai-typography="balanced-round2"] :is(.source-small a, .m78-result-panel .m78-route-row a, a[style*="font-weight:800"]) { font-weight: 500 !important; }

  /* Nested FAQ/accordion text has independent !important rules in several families. */
  body[data-euai-typography="balanced-round2"] :is(summary, .faq-btn, .faq-question, .faq-question-text, .faq-summary-text, .euaic-faq-q, .faq-question-wrap, .faq-summary-main, .m78-faq-question-text, .m78-clean-faq-question, .m78-faq2-question, .m78-prd-faq-question-text, .m78-omnibus-faq-text, .prohibition-title) { font-weight: 500 !important; }
  body[data-euai-typography="balanced-round2"] :is(button, summary) :is(span, strong, b, h2, h3, h4, .font-semibold, .font-bold):not([aria-hidden="true"], .fa, .fas, .far, .fab, .material-icons, .material-symbols-outlined) { font-weight: 500 !important; }
  body[data-euai-typography="balanced-round2"] label :is(strong, b, .font-semibold, .font-bold) { font-weight: 500 !important; }

  /* Supporting explanations are ordinary text, even inside a choice control. */
  body[data-euai-typography="balanced-round2"] :is(.font-light, .font-extralight, .font-thin, .clarifier, .result-action small, button.opt .text-xs, button .choice-desc) { font-weight: 400; }
  body[data-euai-typography="balanced-round2"] :is(.quiz-option .text-xs, #module-list button .text-slate-500:not(.font-bold), #module-picker-list button .text-slate-500:not(.font-bold)) { font-weight: 400; }
  /* Tool introductions and explanatory notes use this explicit medium utility.
     Preserve uppercase labels, the progress label and the author-role label. */
  body[data-euai-typography="balanced-round2"] p.font-medium:not(.uppercase, #progress-text, .text-sm) { font-weight: 400; }
}
