/* Newsroom theme components. Colors come from theme.json presets (rebranded at onboarding) and the contrast-safe
   --nr-brand-* values newsroom-core derives from them (Branding::cssVars); the fallbacks below keep the theme usable
   without the plugin. Dark colors follow the visitor's system setting unless the design profile turns dark mode off
   (newsroom-core prints <html data-nr-dark="off">). With newsroom-core 1.6.59 the visitor's moon/sun choice
   (data-nr-mode) decides (D-209). */
:root {
  --nr-bg: var(--wp--preset--color--background, #fff);
  --nr-text: var(--wp--preset--color--text, #1a1a1a);
  --nr-muted: var(--wp--preset--color--muted, #5c5f63);
  --nr-primary: var(--wp--preset--color--primary, #1f3a5f);
  --nr-accent: var(--wp--preset--color--accent, #b4400a);
  --nr-on-primary: var(--nr-brand-on-primary, #fff);
  --nr-on-primary-muted: var(--nr-brand-on-primary-muted, #c8ced6);
  --nr-on-accent: var(--nr-brand-on-accent, #fff);
  --nr-link: var(--nr-brand-link, var(--nr-primary));
  --nr-accent-text: var(--nr-brand-accent-text, var(--nr-accent));
  --nr-border: color-mix(in srgb, var(--nr-text) 14%, transparent);
  --nr-surface: color-mix(in srgb, var(--nr-text) 4%, var(--nr-bg));
  --nr-footer-bg: color-mix(in srgb, var(--nr-primary) 6%, var(--nr-bg));
}
/* D-209: the visitor's mode (data-nr-mode, set before paint by newsroom-core's Scheme head script) decides; the
   system setting only applies without scripts (no data-nr-mode) and when the profile follows the system. */
:root[data-nr-mode="dark"] {
  color-scheme: dark;
  --wp--preset--color--background: #121314;
  --wp--preset--color--text: #ececea;
  --wp--preset--color--muted: #b0b2b5;
  --nr-link: var(--nr-brand-link-dark, color-mix(in srgb, var(--wp--preset--color--primary, #1f3a5f) 35%, #ffffff));
  --nr-accent-text: var(--nr-brand-accent-text-dark, color-mix(in srgb, var(--wp--preset--color--accent, #b4400a) 60%, #ffffff));
  --nr-footer-bg: color-mix(in srgb, var(--nr-primary) 18%, var(--nr-bg));
}
:root[data-nr-mode="dark"] img { opacity: .95; }
:root[data-nr-mode="light"] { color-scheme: light; }
@media (prefers-color-scheme: dark) {
  :root:not([data-nr-dark="off"]):not([data-nr-mode]) {
    --wp--preset--color--background: #121314;
    --wp--preset--color--text: #ececea;
    --wp--preset--color--muted: #b0b2b5;
    --nr-link: var(--nr-brand-link-dark, color-mix(in srgb, var(--wp--preset--color--primary, #1f3a5f) 35%, #ffffff));
    --nr-accent-text: var(--nr-brand-accent-text-dark, color-mix(in srgb, var(--wp--preset--color--accent, #b4400a) 60%, #ffffff));
    --nr-footer-bg: color-mix(in srgb, var(--nr-primary) 18%, var(--nr-bg));
  }
  :root:not([data-nr-dark="off"]):not([data-nr-mode]) img { opacity: .95; }
}
body { background: var(--nr-bg); color: var(--nr-text); }
a { color: var(--nr-link); text-underline-offset: 2px; }
a:hover { color: var(--nr-accent-text); }
:focus-visible { outline: 3px solid var(--nr-accent-text); outline-offset: 2px; }
.nr-sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

.nr-skip { position: absolute; left: -999px; top: 0; z-index: 100; background: var(--nr-bg); color: var(--nr-link); padding: .5rem 1rem; }
.nr-skip:focus { left: 1rem; }

/* buttons: brand primary with a readable label in either mode */
.wp-element-button, .wp-block-button__link, .nr-contact button { background: var(--nr-primary); color: var(--nr-on-primary); border: 0; border-radius: var(--wp--custom--radius--small); cursor: pointer; }
.wp-element-button:hover, .wp-block-button__link:hover, .nr-contact button:hover { background: color-mix(in srgb, var(--nr-primary) 82%, #000); color: var(--nr-on-primary); }
:root[data-nr-mode="dark"] :is(.wp-element-button, .wp-block-button__link, .nr-contact button) { box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--nr-on-primary) 30%, transparent); }
@media (prefers-color-scheme: dark) {
  :root:not([data-nr-dark="off"]):not([data-nr-mode]) :is(.wp-element-button, .wp-block-button__link, .nr-contact button) { box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--nr-on-primary) 30%, transparent); }
}

/* header: brand masthead (primary background, accent rule) */
.nr-header { background: var(--nr-header-bg, var(--nr-primary)); color: var(--nr-on-primary); border-bottom: 3px solid var(--nr-accent); padding-top: .75rem; }
.nr-header a, .nr-header a:hover { color: var(--nr-on-primary); }
.nr-header :focus-visible { outline-color: var(--nr-on-primary); }
.nr-header-row { gap: 1rem; align-items: center; }
.nr-logo { text-decoration: none; color: var(--nr-on-primary); display: inline-flex; align-items: center; min-height: 44px; min-width: 0; }
/* the front page's H1 is the wordmark (newsroom-core Blocks::logo): no visual change */
.nr-logo-h1 { display: inherit; align-items: inherit; min-width: 0; margin: 0; font: inherit; color: inherit; letter-spacing: inherit; text-transform: inherit; }
.nr-logo-text { font-family: var(--wp--preset--font-family--heading); font-weight: 700; font-size: 1.6rem; line-height: 1.1; }
.nr-logo-img { max-height: 48px; width: auto; }
/* Generated wordmarks draw text in currentColor and get the brand heading font. */
.nr-logo-svg { display: block; color: var(--nr-on-primary); }
.nr-logo-svg svg { height: 40px; width: auto; max-width: 100%; display: block; overflow: visible; }
.nr-logo-svg text { font-family: var(--wp--preset--font-family--heading); }
/* A hand-made logo may hard-code dark text; on the coloured header all logo text follows the header colour. */
.nr-header .nr-logo-svg text { fill: currentColor; }

/* header search: compact pill, icon button (label and button name stay "Search" for assistive tech) */
.nr-header .wp-block-search.nr-search { margin: 0; flex: 0 1 auto; min-width: 0; }
.nr-header .nr-search .wp-block-search__inside-wrapper { width: clamp(8.5rem, 26vw, 14rem); height: 2.5rem; padding: 0 0 0 .9rem; box-sizing: border-box;
  align-items: center; border: 1px solid color-mix(in srgb, var(--nr-on-primary) 45%, transparent); border-radius: var(--nr-pill, 999px);
  background: color-mix(in srgb, var(--nr-on-primary) 10%, transparent); }
.nr-header .nr-search .wp-block-search__inside-wrapper:focus-within { outline: 3px solid var(--nr-on-primary); outline-offset: 2px; }
.nr-header .nr-search .wp-block-search__inside-wrapper .wp-block-search__input { flex: 1 1 auto; min-width: 0; height: 100%; padding: 0; margin: 0; border: 0;
  border-radius: 0; background: transparent; color: var(--nr-on-primary); font: inherit; font-size: .9rem; }
.nr-header .nr-search .wp-block-search__input::placeholder { color: var(--nr-on-primary-muted); opacity: 1; }
.nr-header .nr-search .wp-block-search__input:focus { outline: none; }
.nr-header .nr-search .wp-block-search__inside-wrapper .wp-block-search__button { flex: 0 0 auto; width: 2.5rem; height: 2.5rem; margin: 0; padding: 0;
  border: 0; border-radius: var(--nr-pill, 999px); background: transparent; color: var(--nr-on-primary); display: inline-flex; align-items: center; justify-content: center;
  box-shadow: none; }
.nr-header .nr-search .wp-block-search__button:hover { background: color-mix(in srgb, var(--nr-on-primary) 16%, transparent); }
.nr-header .nr-search .wp-block-search__button svg { width: 1.2rem; height: 1.2rem; min-width: 0; min-height: 0; fill: currentColor; }
/* The icon button fills the pill's inside exactly and draws no edge of its own (owner, 2026-10-19: in dark mode the
   dark-scheme button edge (profile.css, a more specific rule) came back on it, and it stood 2px above and below the
   pill: a double border). :root lifts this above both dark-mode button rules. */
:root .nr-header .nr-search .wp-block-search__inside-wrapper .wp-block-search__button,
:root .nr-header .nr-search .wp-block-search__inside-wrapper .wp-block-search__button:hover {
  box-shadow: none; height: 100%; min-height: 0; width: auto; aspect-ratio: 1 / 1; align-self: stretch; }

/* main navigation: always one line; items that do not fit move into "More" (assets/newsroom.js) */
.nr-main-nav { display: flex; align-items: stretch; gap: 1rem; margin-top: .4rem; }
.nr-nav-list { list-style: none; display: flex; flex-wrap: nowrap; gap: 0 1.25rem; margin: 0; padding: 0; flex: 1 1 auto; min-width: 0;
  overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: none; }
.nr-nav-list::-webkit-scrollbar { display: none; }
/* Until the script has fitted the items (or without JavaScript) the strip scrolls sideways; fade its end. */
.nr-main-nav:not(.is-fitted) .nr-nav-list { -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 2.5rem), transparent); mask-image: linear-gradient(to right, #000 calc(100% - 2.5rem), transparent); }
.nr-nav-list li { flex: 0 0 auto; }
.nr-main-nav a, .nr-nav-more-btn { box-sizing: border-box; display: inline-flex; align-items: center; min-height: 44px; font-weight: 600; font-size: .95rem; text-decoration: none;
  white-space: nowrap; border-bottom: 3px solid transparent; }
.nr-main-nav .nr-nav-list a:hover, .nr-main-nav .nr-nav-list a[aria-current], .nr-main-nav .nr-nav-list a.is-section { border-bottom-color: currentColor; }
.nr-nav-more { position: relative; display: flex; flex: 0 0 auto; }
.nr-nav-more[hidden] { display: none; }
.nr-nav-more-btn { gap: .35rem; padding: 0; background: none; border-top: 0; border-left: 0; border-right: 0; color: var(--nr-on-primary); font-family: inherit; cursor: pointer; }
.nr-nav-more-btn:hover, .nr-nav-more-btn[aria-expanded="true"], .nr-nav-more.has-current .nr-nav-more-btn { border-bottom-color: currentColor; }
.nr-nav-more-btn svg { transition: transform .15s; }
.nr-nav-more-btn[aria-expanded="true"] svg { transform: rotate(180deg); }
.nr-nav-more-list { position: absolute; right: 0; top: 100%; z-index: 60; min-width: 13rem; max-width: min(20rem, calc(100vw - 2rem)); max-height: 70vh;
  overflow-y: auto; margin: 3px 0 0; padding: .35rem 0; list-style: none; background: var(--nr-bg); border: 1px solid var(--nr-border);
  border-radius: var(--wp--custom--radius--medium); box-shadow: 0 10px 30px rgb(0 0 0 / .22); }
.nr-nav-more-list[hidden] { display: none; }
.nr-header .nr-nav-more-list a { display: flex; color: var(--nr-text); padding: .4rem 1rem; border-bottom: 0; white-space: normal; }
.nr-header .nr-nav-more-list a:hover, .nr-header .nr-nav-more-list a[aria-current], .nr-header .nr-nav-more-list a.is-section { color: var(--nr-link); background: var(--nr-surface); text-decoration: underline; }
.nr-header .nr-nav-more-list :focus-visible { outline-color: var(--nr-accent-text); outline-offset: -3px; }
@media (max-width: 600px) {
  .nr-logo-svg svg { height: 32px; }
  .nr-logo-text { font-size: 1.3rem; }
  .nr-main-nav { gap: .75rem; }
  .nr-nav-list { gap: 0 1rem; }
}

/* layout */
.nr-main { padding-top: 1.5rem; padding-bottom: 2rem; }
.nr-layout { gap: 2.5rem; }
.nr-sidebar > * + * { margin-top: 1.5rem; }
/* A sidebar whose blocks all have nothing to show yet (no views, no comments, ads off) gives its width back. */
.nr-layout > .nr-sidebar:not(:has(*)) { display: none; }
@media (min-width: 1000px) { .nr-sidebar .nr-ad-sidebar { position: sticky; top: calc(var(--nr-sticky-top, 0px) + 1rem); } }
@media (max-width: 999px) { .nr-sidebar .nr-ad-sidebar { display: none; } }
/* section headings: brand rule above */
.nr-river > h2, .nr-related > h2, .nr-trending > h2, .nr-discussed > h2, .nr-lookbacks > h2, .nr-breaking-section > h2 { font-size: 1.3rem; border-top: 3px solid var(--nr-link); padding-top: .6rem; margin-top: 0; }

/* article */
.nr-article { max-width: 760px; }
.nr-kicker { text-transform: uppercase; letter-spacing: .06em; font-size: .8rem; font-weight: 700; color: var(--nr-accent-text); text-decoration: none; }
a.nr-kicker:hover { text-decoration: underline; }
.nr-headline { margin-top: .25rem; }
.nr-dek { font-size: 1.2rem; color: var(--nr-muted); margin-top: .25rem; }
.nr-byline { display: flex; gap: .75rem; align-items: center; font-size: .9rem; margin: 1rem 0; }
.nr-byline-avatar { border-radius: 50%; width: 48px; height: 48px; }
.nr-byline-name { display: block; font-weight: 600; }
.nr-byline-dates { display: block; color: var(--nr-muted); }
.nr-persona-label { font-size: .75rem; font-weight: 600; border: 1px solid var(--nr-border); border-radius: var(--nr-pill, 999px); padding: 0 .45rem; margin-left: .35rem; text-decoration: none; color: var(--nr-muted); white-space: nowrap; }
.nr-featured-figure { margin: 1rem 0 1.5rem; }
.nr-featured { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--wp--custom--radius--medium); }
.nr-featured-figure figcaption { font-size: .8rem; color: var(--nr-muted); margin-top: .35rem; }
.nr-credit { font-style: italic; }
/* Captions under pictures in the article (owner, 2026-10-12): italic and muted, and their links (credit, licence)
   quiet in every profile: a thin underline in the border colour, never the prose link colour or a highlight. */
:is(.nr-article-body, .wp-block-post-content, .nr-featured-figure) figcaption { font-style: italic; color: var(--nr-muted); }
:is(.nr-article-body, .wp-block-post-content, .nr-featured-figure) figcaption a,
:is(.nr-article-body, .wp-block-post-content, .nr-featured-figure) figcaption a:hover {
  color: inherit; background: none; text-decoration: underline; text-decoration-color: var(--nr-border);
  text-decoration-thickness: 1px; }
:is(.nr-article-body, .wp-block-post-content, .nr-featured-figure) figcaption a:hover { text-decoration-color: currentColor; }
.nr-article-body { max-width: var(--wp--custom--measure, 68ch); font-size: 1.125rem; }
.nr-article-body > * + * { margin-top: 1.1em; }
.nr-article-body sup.nr-cite a { text-decoration: none; font-size: .75em; margin-left: 1px; }
.nr-article-body blockquote { border-left: 4px solid var(--nr-accent); margin-left: 0; padding-left: 1rem; }
/* quotes are always italic, in every layout and every pull-quote style; the attribution (the cite line) is not */
.nr-article-body :is(blockquote, .wp-block-quote, .wp-block-pullquote) { font-style: italic; }
.nr-article-body :is(blockquote, .wp-block-quote, .wp-block-pullquote) :is(cite, footer, .wp-block-pullquote__citation) { font-style: normal; }
.nr-correction, .nr-update { border-left: 3px solid var(--nr-accent); padding-left: .75rem; }
.nr-sources { border-top: 1px solid var(--nr-border); padding: .75rem 0 0; margin-top: 2rem; font-size: .85rem; line-height: 1.5; }
.nr-sources h2 { font-size: .95rem; font-weight: 600; color: var(--nr-muted); margin: 0 0 .35rem; }
.nr-sources ol { margin: 0; padding-left: 1.25rem; }
.nr-sources li { margin: .25rem 0; overflow-wrap: anywhere; }
.nr-src-meta, .nr-src-added { color: var(--nr-muted); }
.nr-src-added { font-style: italic; }
.nr-ai-note { font-size: .85rem; color: var(--nr-muted); border-top: 1px solid var(--nr-border); padding-top: .75rem; }
.nr-updates { border-left: 4px solid var(--nr-accent); background: color-mix(in srgb, var(--nr-accent) 7%, var(--nr-bg)); border-radius: 0 var(--wp--custom--radius--medium) var(--wp--custom--radius--medium) 0; padding: .85rem 1rem; margin: 2rem 0 1rem; font-size: .95rem; scroll-margin-top: 1rem; }
.nr-updates h2 { font-size: 1rem; margin: 0 0 .5rem; }
.nr-updates-list { list-style: none; margin: 0; padding: 0; }
.nr-updates-list li + li { margin-top: .6rem; padding-top: .6rem; border-top: 1px solid var(--nr-border); }
.nr-newsletter { border: 1px solid var(--nr-border); border-radius: var(--wp--custom--radius--medium); padding: 1rem; margin: 2rem 0 1rem; }
.nr-newsletter h2 { font-size: 1.1rem; margin: 0 0 .35rem; }
.nr-newsletter p { margin: 0 0 .6rem; color: var(--nr-muted); font-size: .95rem; }
.nr-newsletter-form { display: flex; flex-wrap: wrap; gap: .5rem; }
.nr-newsletter-form input[type=email] { flex: 1 1 14rem; min-height: 44px; padding: .4rem .7rem; border: 1px solid var(--nr-border); border-radius: var(--wp--custom--radius--small, 6px); font: inherit; }
.nr-newsletter-form button { min-height: 44px; padding: .4rem 1.1rem; border: 0; border-radius: var(--wp--custom--radius--small, 6px); background: var(--nr-accent); color: var(--nr-on-accent, #fff); font: inherit; font-weight: 600; cursor: pointer; }
.nr-corrections-list { padding-left: 1.1rem; }
.nr-corrections-list li { margin: .5rem 0; }
.nr-key-facts { border-left: 4px solid var(--nr-accent); padding: .6rem 1rem; margin: 0 0 1.5rem; background: color-mix(in srgb, var(--nr-accent) 5%, var(--nr-bg)); border-radius: 0 var(--wp--custom--radius--medium) var(--wp--custom--radius--medium) 0; }
.nr-key-facts h2 { font-size: .85rem; text-transform: uppercase; letter-spacing: .06em; margin: 0 0 .4rem; }
.nr-key-facts ul { margin: 0; padding-left: 1.1rem; }
.nr-key-facts li { margin: .3rem 0; }
.nr-topic-summary { margin: -.25rem 0 1.25rem; color: var(--nr-muted); font-size: .95rem; }
.nr-topic-summary p { margin: 0; }
.nr-update-head { margin: 0; font-size: .85rem; }
.nr-update-note { margin: .2rem 0 0; }
.nr-updated-flag { font-weight: 600; color: var(--nr-accent-text); text-decoration: none; white-space: nowrap; }
.nr-updated-flag:hover, .nr-updated-flag:focus-visible { text-decoration: underline; }
.nr-updated-chip { font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--nr-accent-text); border: 1px solid currentColor; border-radius: var(--nr-pill, 999px); padding: 0 .4rem; white-space: nowrap; }
.nr-tags { font-size: .9rem; }

/* labels (newsroom-core Blocks::flags): breaking / developing while flagged, then the article kind. Text, never
   color alone; contrast-safe accent tokens in light and dark mode. */
.nr-flags { display: inline-flex; flex-wrap: wrap; align-items: center; gap: .3rem; margin-right: .45rem; vertical-align: baseline; }
.nr-flag { display: inline-flex; align-items: center; gap: .3rem; font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em;
  line-height: 1.35; padding: .05rem .45rem; border: 1px solid currentColor; border-radius: var(--wp--custom--radius--small); white-space: nowrap; color: var(--nr-accent-text); }
.nr-flag--breaking { background: var(--nr-accent); border-color: var(--nr-accent); color: var(--nr-on-accent); }
.nr-flag--breaking::before { content: ""; width: .45rem; height: .45rem; border-radius: 50%; background: currentColor; }
.nr-flag--developing { color: var(--nr-accent-text); }
.nr-flag--lookback, .nr-flag--explainer, .nr-flag--roundup { color: var(--nr-muted); }
.nr-flag-period { font-weight: 600; letter-spacing: .02em; }
.nr-card-link .nr-flags, .nr-hero-text .nr-flags, .nr-card > .nr-flags { margin: 0 .45rem .1rem 0; }
.nr-period { font-weight: 600; }
.nr-kicker-row { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .5rem; }
.nr-kicker-row > .nr-flags { margin: 0; }

/* breaking-news banner: server-rendered at the top of every page while a story is flagged (no layout shift) */
.nr-breaking { background: color-mix(in srgb, var(--nr-accent) 9%, var(--nr-bg)); border-bottom: 1px solid color-mix(in srgb, var(--nr-accent) 35%, transparent); }
.nr-breaking-list { list-style: none; box-sizing: border-box; max-width: 1200px; margin: 0 auto; padding: .5rem var(--wp--style--root--padding-right, 1rem) .5rem var(--wp--style--root--padding-left, 1rem);
  display: flex; flex-direction: column; gap: .3rem; }
.nr-breaking-item { display: flex; flex-wrap: wrap; align-items: center; gap: .2rem .6rem; font-size: .95rem; line-height: 1.35; }
.nr-breaking-link { font-weight: 700; color: var(--nr-text); }
.nr-breaking-link:hover { color: var(--nr-link); }
.nr-breaking-time { font-size: .8rem; color: var(--nr-muted); }

/* share: plain links (no third-party scripts) plus copy link and the device share sheet */
.nr-share { margin: 1.5rem 0; }
.nr-share-title { font-family: var(--wp--preset--font-family--body); font-size: .8rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--nr-muted); margin: 0 0 .5rem; }
.nr-share ul { list-style: none; display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; padding: 0; }
/* the buttons behind "More" are nested in a panel that flows with the row (display: contents) so, with every button fitting or with
   no script, it is one row that wraps with the same gap; the script (newsroom.js) shows More only when the row would not fit on a
   line and then keeps the panel closed until More is pressed (D-121) */
.nr-share-panel, .nr-share .nr-share-panel > ul { display: contents; }
.nr-share.is-collapsed .nr-share-panel { display: none; }
.nr-share.is-collapsed.is-open .nr-share-panel { display: block; flex: 0 0 100%; min-width: 0; }
.nr-share.is-collapsed.is-open .nr-share-panel > ul { display: flex; flex-wrap: wrap; gap: .5rem; }
.nr-share-more-btn[aria-expanded="true"] { border-color: var(--nr-link); color: var(--nr-link); }
/* icon buttons: the network's own mark in one theme color, a 44px target, the name for assistive tech (aria-label) and,
   with share_style labeled, on screen too */
.nr-share .nr-share-link, .nr-share .nr-share-more-btn { box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; gap: .45rem; width: 44px; height: 44px;
  padding: 0; border: 1px solid var(--nr-border); border-radius: var(--nr-pill, 999px); background: var(--nr-bg); color: var(--nr-text); font: inherit;
  font-size: .9rem; font-weight: 600; line-height: 1.2; text-decoration: none; cursor: pointer; }
.nr-share .nr-share-more-btn { width: auto; min-width: 44px; padding: 0 .9rem 0 .75rem; gap: .4rem; }
.nr-share-icon { display: block; flex: none; width: 1.2rem; height: 1.2rem; }
.nr-share-name { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.nr-share .nr-share-link:hover, .nr-share .nr-share-link:focus-visible, .nr-share .nr-share-more-btn:hover, .nr-share .nr-share-more-btn:focus-visible, .nr-share .nr-share-copy.is-copied { border-color: var(--nr-link); color: var(--nr-link); }
.nr-share-status { font-size: .85rem; color: var(--nr-muted); min-height: 1.3em; margin: .35rem 0 0; }

/* RSS links */
.nr-feed-link { font-size: .9rem; margin: .25rem 0 1rem; }
.nr-feed-link a, a.nr-rss-link { display: inline-flex; align-items: center; gap: .4rem; min-height: 24px; }
.nr-rss-icon { flex: none; color: var(--nr-accent-text); }

/* reactions */
.nr-reactions { margin: 2rem 0; }
.nr-reactions h2 { font-size: 1.1rem; }
.nr-react-row { display: flex; flex-wrap: wrap; gap: .5rem; }
.nr-react { min-height: 44px; min-width: 44px; padding: .35rem .8rem; border: 1px solid var(--nr-border); border-radius: var(--nr-pill, 999px); background: var(--nr-bg); color: var(--nr-text); cursor: pointer; font-size: .95rem; }
.nr-react:hover:not(:disabled) { border-color: var(--nr-accent-text); }
.nr-react:disabled { opacity: .7; cursor: default; }
.nr-react-count { font-variant-numeric: tabular-nums; color: var(--nr-muted); margin-left: .25rem; }

/* comments: rendered lazily by the browser (below the fold) */
.nr-comments-wrap { content-visibility: auto; contain-intrinsic-size: auto 800px; margin-top: 2rem; }
.nr-comment { border-top: 1px solid var(--nr-border); padding: .75rem 0; }
.nr-comment-policy { font-size: .9rem; color: var(--nr-muted); }
.wp-block-post-comments-form :is(input[type=text], input[type=email], input[type=url], textarea) { background: var(--nr-bg); color: var(--nr-text); border: 1px solid color-mix(in srgb, var(--nr-text) 35%, transparent); border-radius: var(--wp--custom--radius--small); font: inherit; }
.nr-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* cards */
.nr-cards { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.nr-cards-compact { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 1rem; }
.nr-card { display: flex; flex-direction: column; gap: .35rem; }
.nr-card-link { text-decoration: none; color: inherit; display: flex; flex-direction: column; gap: .35rem; }
.nr-card-link:hover h3, .nr-card .wp-block-post-title a:hover { color: var(--nr-link); text-decoration: underline; }
.nr-card h3, .nr-card .wp-block-post-title { font-size: 1.15rem; margin: 0; line-height: 1.25; }
.nr-card .wp-block-post-title a { color: inherit; text-decoration: none; }
.nr-card-img, .nr-card-img img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--wp--custom--radius--small); }
/* D-225: a story without a picture among stories with one (newsroom-core Blocks::imageFallback): the brand colours, a
   faint diagonal pattern and the section's icon and name, in the box the picture would fill. */
span.nr-img-fallback { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .45rem; width: 100%; height: auto;
  aspect-ratio: var(--nr-card-ar, 16 / 9); box-sizing: border-box; padding: .75rem; overflow: hidden; border-radius: var(--wp--custom--radius--small);
  color: var(--nr-on-primary); text-align: center;
  background: repeating-linear-gradient(135deg, transparent 0 13px, color-mix(in srgb, var(--nr-on-primary) 9%, transparent) 13px 14px),
    linear-gradient(135deg, var(--nr-primary), color-mix(in srgb, var(--nr-primary) 72%, var(--nr-accent))); }
span.nr-img-fallback .nr-cat-icon { width: 2rem; height: 2rem; flex: none; opacity: .9; }
.nr-img-fallback-label { font-family: var(--wp--preset--font-family--heading); font-weight: 700; font-size: .95rem; line-height: 1.2; max-width: 92%; overflow-wrap: anywhere; opacity: .92; }
.nr-img-fallback--top { margin-bottom: .1rem; }
/* D-225: charts, graphs and infographics (class nr-img-chart, newsroom-core Blocks::chartClass) are shown whole, on
   white like the graphic itself, never cropped to the box; as the article's own picture they keep their proportions. */
img.nr-img-chart { object-fit: contain !important; background: #fff; }
img.nr-featured.nr-img-chart { aspect-ratio: auto !important; height: auto !important; max-height: min(80vh, 760px); }
.nr-card-kicker, .nr-card .wp-block-post-terms { font-size: .75rem; text-transform: uppercase; letter-spacing: .05em; font-weight: 700; color: var(--nr-accent-text); }
.nr-card .wp-block-post-terms a { color: var(--nr-accent-text); text-decoration: none; }
.nr-card-meta { font-size: .8rem; color: var(--nr-muted); margin: 0; gap: .5rem; }
.nr-hero { margin-bottom: 2rem; }
.nr-hero-link { display: grid; gap: 1rem; text-decoration: none; color: inherit; }
.nr-hero-link:hover h2 { color: var(--nr-link); text-decoration: underline; }
@media (min-width: 900px) { .nr-hero-link { grid-template-columns: 3fr 2fr; align-items: center; } }
.nr-hero-img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--wp--custom--radius--medium); }
.nr-hero h2 { font-size: var(--wp--preset--font-size--xxl); margin: .25rem 0; }
.nr-cat-block { margin-top: 2rem; border-top: 3px solid var(--nr-link); padding-top: .75rem; }
.nr-cat-block h2 { font-size: 1.3rem; margin: 0 0 1rem; }
.nr-cat-block h2 a { text-decoration: none; color: var(--nr-text); }
.nr-cat-block h2 a:hover { color: var(--nr-link); text-decoration: underline; }
.nr-trending ol, .nr-discussed ol { padding-left: 1.25rem; }
.nr-trending li, .nr-discussed li { margin: .5rem 0; }
.nr-trending li::marker, .nr-discussed li::marker { color: var(--nr-accent-text); font-weight: 700; }
.nr-count { color: var(--nr-muted); font-size: .8rem; }

/* authors */
.nr-authors { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.nr-author-card { border: 1px solid var(--nr-border); border-top: 3px solid var(--nr-link); border-radius: var(--wp--custom--radius--medium); padding: 1rem; }
.nr-author-card a { text-decoration: none; }
.nr-author-avatar { border-radius: 50%; }
.nr-author-bio { font-size: .9rem; color: var(--nr-muted); }
.nr-profile { display: flex; gap: 1.25rem; align-items: center; flex-wrap: wrap; }
.nr-profile-avatar { border-radius: 50%; width: 120px; height: 120px; }
.nr-profile-tagline { color: var(--nr-muted); }
.nr-profile-body { display: grid; gap: 1.5rem; margin: 1.5rem 0 2rem; }
@media (min-width: 900px) { .nr-profile-body { grid-template-columns: 3fr 2fr; } }
.nr-profile-facts dt { font-weight: 700; margin-top: .75rem; }
.nr-profile-facts dd { margin: .25rem 0 0; }
.nr-chips { list-style: none; display: flex; flex-wrap: wrap; gap: .35rem; padding: 0; margin: 0; }
.nr-chips li { border: 1px solid var(--nr-border); border-radius: var(--nr-pill, 999px); padding: 0 .6rem; font-size: .85rem; }

/* legal pages */
.nr-legal-updated { font-size: .85rem; color: var(--nr-muted); margin-top: 0; }
.nr-legal h2 { font-size: var(--wp--preset--font-size--lg); margin-top: 2rem; }

/* ads: always reserve space (CLS), small label */
.nr-ad { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; margin: 1.5rem auto; width: 100%; contain: layout; }
.nr-ad-label { font-size: .65rem; text-transform: uppercase; letter-spacing: .08em; color: var(--nr-muted); align-self: flex-start; }
.nr-ad-placeholder { flex: 1; width: 100%; min-height: inherit; background: repeating-linear-gradient(45deg, var(--nr-surface), var(--nr-surface) 10px, color-mix(in srgb, var(--nr-text) 7%, var(--nr-bg)) 10px, color-mix(in srgb, var(--nr-text) 7%, var(--nr-bg)) 20px); display: flex; align-items: center; justify-content: center; color: var(--nr-muted); font-size: .8rem; border-radius: var(--wp--custom--radius--small); }
.nr-ad-header { max-width: 970px; }
@media (max-width: 767px) { .nr-ad-device-desktop { display: none; } }
@media (min-width: 768px) { .nr-ad-device-mobile { display: none; } .nr-ad-anchor { display: none; } }
.nr-ad-anchor { position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; background: var(--nr-bg); border-top: 1px solid var(--nr-border); }
.nr-ad-anchor .nr-ad { margin: 0; }
.nr-ad[hidden], .nr-ad-anchor[hidden] { display: none !important; } /* real ads wait for marketing consent (D-138) */

/* contact */
.nr-contact input, .nr-contact textarea, .nr-contact select { width: 100%; max-width: 560px; padding: .5rem; border: 1px solid var(--nr-border); border-radius: var(--wp--custom--radius--small); background: var(--nr-bg); color: var(--nr-text); font: inherit; }
.nr-contact button { min-height: 44px; padding: .5rem 1.25rem; font: inherit; font-weight: 600; }
.nr-contact-note { font-size: .85rem; color: var(--nr-muted); max-width: 560px; }

/* footer: brand-tinted; disclaimer in small type at the very bottom of every page */
.nr-footer { background: var(--nr-footer-bg); border-top: 4px solid var(--nr-primary); margin-top: 3rem; padding-top: 2rem; padding-bottom: 1.5rem; font-size: .9rem; }
.nr-footer-cols { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
.nr-footer h2 { font-family: var(--wp--preset--font-family--body); font-size: .85rem; text-transform: uppercase; letter-spacing: .06em; margin: 0 0 .5rem; }
.nr-footer ul { list-style: none; padding: 0; margin: 0; }
.nr-footer li { margin: .3rem 0; }
.nr-footer-bottom { border-top: 1px solid var(--nr-border); margin-top: 1.5rem; padding-top: 1rem; }
.nr-copyright, .nr-about-link, .nr-disclaimer { font-size: .75rem; color: var(--nr-muted); margin: .25rem 0; }
.nr-about-link a { color: var(--nr-muted); }
.nr-disclaimer { font-size: .75rem; max-width: 80ch; }

/* site artwork (newsroom-core Art): inline SVG sized by CSS; the box comes from the viewBox (aspect-ratio), so no shift */
.nr-art { display: block; width: 100%; max-width: 100%; height: auto; }
.nr-icon { display: inline-block; flex: none; width: 1.15em; height: 1.15em; vertical-align: -.2em; }
.nr-mark { display: inline-block; flex: none; width: 1em; height: 1em; vertical-align: -.12em; }
.nr-flag .nr-mark { width: .9em; height: .9em; }
.nr-flag--breaking:has(> .nr-mark)::before { display: none; }
.nr-cat-icon { margin-right: .35em; }
.nr-reading-time .nr-icon, .nr-card-comments .nr-icon, .nr-share-title .nr-icon { margin-right: .3em; }
.nr-src-link .nr-icon { width: .85em; height: .85em; margin-left: .25em; }
.nr-avatar-art { border-radius: 50%; overflow: hidden; vertical-align: middle; }

/* not-found page, empty search results and empty archives (newsroom/empty-state) */
.nr-empty-state { display: grid; gap: 1.25rem 2.5rem; align-items: center; margin: 1rem 0 2rem; }
.nr-empty-art { max-width: 280px; color: var(--nr-text); }
.nr-empty-title { margin: 0 0 .5rem; }
.nr-empty-text { margin: 0 0 1rem; color: var(--nr-muted); max-width: 60ch; }
.nr-empty-links { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); grid-column: 1 / -1; }
.nr-empty-links h2 { font-family: var(--nr-font-ui, var(--wp--preset--font-family--body)); font-size: .85rem; text-transform: uppercase; letter-spacing: .06em; margin: 0 0 .5rem; }
.nr-empty-links ul:not(.nr-chip-list) { margin: 0; padding-left: 1.1rem; }
.nr-empty-links li { margin: .35rem 0; }
.nr-empty-sections .nr-chip-list { list-style: none; display: flex; flex-wrap: wrap; gap: .45rem; margin: 0; padding: 0; }
.nr-empty-sections .nr-chip { display: inline-flex; align-items: center; min-height: 32px; padding: .15rem .7rem; border: 1px solid var(--nr-border); border-radius: var(--nr-pill, 999px); text-decoration: none; font-size: .85rem; font-weight: 600; }
@media (min-width: 700px) { .nr-empty-state { grid-template-columns: minmax(160px, 280px) minmax(0, 1fr); } }

/* more contrast on request: muted text becomes body text, borders and links get stronger */
@media (prefers-contrast: more) {
  :root { --nr-muted: var(--nr-text); --nr-border: color-mix(in srgb, var(--nr-text) 55%, transparent); }
  a { text-decoration-thickness: 2px; }
  :focus-visible { outline-width: 4px; }
}
/* Windows high contrast / forced colors: every control keeps a border, focus is a system-color outline, icons and marks
   draw in the text color, and nothing relies on a background color */
@media (forced-colors: active) {
  :focus-visible { outline: 3px solid Highlight !important; }
  .nr-share .nr-share-link, .nr-share .nr-share-more-btn, .nr-react, .nr-chip, .nr-flag, .nr-updated-chip, .nr-menu > summary, .nr-nav-more-btn, .wp-element-button,
  .nr-header .nr-search .wp-block-search__inside-wrapper, .nr-persona-label { border: 1px solid ButtonText !important; }
  .nr-flag--breaking::before { background: CanvasText; forced-color-adjust: none; }
  .nr-share-icon, .nr-icon, .nr-mark, .nr-rss-icon { forced-color-adjust: auto; color: CanvasText; }
  .nr-header, .nr-footer, .nr-updates, .nr-toc, .nr-breaking, .nr-newsletter, .nr-key-facts { border: 1px solid CanvasText; }
  .nr-newsletter-form button { border: 1px solid ButtonText; }
  .nr-progress { display: none !important; }
}

@media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto !important; transition: none !important; } }

/* print (and "Print" in the share row): one clean column with the headline, dek, byline, date, the article URL, the
   text with link URLs, figures with captions and credits, updates and sources, and the footer disclaimer; black on
   white in light and dark mode; no header, navigation, banners, ads, sharing, comments, related stories or sidebar */
.nr-print-url { display: none; }
@media print {
  @page { margin: 16mm 15mm; }
  html, body, body * { color: #000 !important; background: transparent !important; box-shadow: none !important; text-shadow: none !important; }
  html, body { background: #fff !important; }
  .nr-article-body > p:first-of-type::first-letter { color: #000 !important; }
  body { font-family: var(--wp--preset--font-family--body), Georgia, serif; font-size: 11.5pt; line-height: 1.5; }
  .nr-skip, .nr-topbar, .nr-breaking, .nr-header, .nr-main-nav, .nr-menu, .nr-share, .nr-reactions, .nr-ad, .nr-ad-anchor, .nr-comments-wrap,
  .nr-related, .nr-sidebar, .nr-story-rail, .nr-toc, .nr-progress, .nr-author-box, .nr-footer-cols, .nr-footer-tagline, .nr-filters,
  .nr-nav-more, .wp-block-search, .nr-feed-link, .nr-empty-art { display: none !important; }
  .nr-layout { display: block !important; }
  .nr-layout > * { flex-basis: auto !important; width: auto !important; max-width: none !important; }
  .nr-main, .nr-article, .nr-story, .nr-story-body, .nr-article-body, .nr-story-grid { max-width: none !important; margin: 0 !important; padding: 0 !important;
    display: block !important; }
  .nr-headline, .nr-article-hero .nr-headline { font-size: 22pt !important; line-height: 1.15; margin: 0 0 6pt; break-after: avoid; }
  .nr-dek { font-size: 13pt !important; margin: 0 0 6pt; }
  .nr-byline { margin: 6pt 0; }
  .nr-byline-avatar, .nr-avatar-art { display: none !important; }
  .nr-print-url { display: block; font-size: 9pt; margin: 2pt 0 10pt; overflow-wrap: anywhere; }
  .nr-article-hero, .nr-hero-wide { display: block !important; padding: 0 !important; clip-path: none !important; }
  h2, h3 { break-after: avoid; }
  p { orphans: 3; widows: 3; }
  figure, .nr-featured-figure, .wp-block-image, .nr-infographic, blockquote, .nr-updates, ul, ol, table { break-inside: avoid; }
  img, svg { max-width: 100% !important; }
  .nr-featured, .nr-article-body img, figure img { max-height: 115mm; width: auto !important; height: auto !important; aspect-ratio: auto !important;
    object-fit: contain !important; filter: none !important; }
  figcaption { font-size: 9pt; }
  a { color: #000 !important; text-decoration: underline; }
  .nr-article-body a[href^="http"]::after, .nr-updates a[href^="http"]::after { content: " (" attr(href) ")"; font-size: .8em; overflow-wrap: anywhere; }
  .nr-sources a[href^="http"]::after { content: " " attr(href); font-size: .8em; overflow-wrap: anywhere; }
  .nr-sources, .nr-updates { border: 0 !important; border-top: 1px solid #000 !important; padding: 6pt 0 0 !important; margin: 12pt 0 0 !important; }
  .nr-footer { border-top: 1px solid #000 !important; margin-top: 12pt; padding: 6pt 0 0 !important; }
}

/* ------------------------------------------------------------ light/dark switch (D-209) */
.nr-header-tools { display: flex; align-items: center; gap: .5rem; flex: 0 1 auto; min-width: 0; }
/* The header layouts place the tools group where the search used to sit (design.css, profile.css); the search inside
   it keeps the layouts' reset. */
.nr-header-tools > .nr-search { padding: 0; border: 0; }
.nr-scheme-toggle { display: inline-flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; flex: 0 0 auto;
  padding: 0; border: 1px solid color-mix(in srgb, var(--nr-on-primary) 45%, transparent); border-radius: var(--nr-pill, 999px);
  background: color-mix(in srgb, var(--nr-on-primary) 10%, transparent); color: var(--nr-on-primary); cursor: pointer; }
.nr-scheme-toggle[hidden] { display: none; }
.nr-scheme-toggle:hover { background: color-mix(in srgb, var(--nr-on-primary) 20%, transparent); }
.nr-scheme-toggle:focus-visible { outline: 3px solid var(--nr-on-primary); outline-offset: 2px; }
.nr-scheme-sun { display: none; }
:root[data-nr-mode="dark"] .nr-scheme-sun { display: block; }
:root[data-nr-mode="dark"] .nr-scheme-moon { display: none; }
@media (prefers-reduced-motion: no-preference) { .nr-scheme-toggle svg { transition: transform .2s ease; } .nr-scheme-toggle:hover svg { transform: rotate(-12deg); } }
