/* Generated by scripts/build-theme-json.mjs from kits/tokens.json and nexus-embed.css. Do not edit. */
:root {
  color-scheme: light;
  --nx-focus-width: 2px;
  --nx-focus-offset: 2px;
}

/* Focus: one visible ring from the focus token in both modes (3:1 against canvas, OD-53). */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: var(--nx-focus-width) solid var(--wp--preset--color--focus);
  outline-offset: var(--nx-focus-offset);
}

/* Screen-reader text (core and plugin markup use this class). */
.screen-reader-text {
  position: absolute;
  inline-size: 1px;
  block-size: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

/* Skip link (inc/a11y.php prints it first in <body>); visible on focus, logical insets for RTL. */
.nx-skip-link {
  position: absolute;
  inset-block-start: var(--wp--preset--spacing--2);
  inset-inline-start: var(--wp--preset--spacing--2);
  z-index: 100000;
  display: inline-flex;
  align-items: center;
  min-block-size: var(--wp--preset--spacing--5);
  padding-block: var(--wp--preset--spacing--2);
  padding-inline: var(--wp--preset--spacing--4);
  border-radius: 5px;
  background-color: var(--wp--preset--color--primary);
  color: var(--wp--preset--color--primary-ink);
  font-family: var(--wp--preset--font-family--sans);
  font-size: var(--wp--preset--font-size--s);
  font-weight: 600;
  text-decoration: none;
}
.nx-skip-link:not(:focus) {
  inline-size: 1px;
  block-size: 1px;
  min-block-size: 0;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

/* Selection: accent tint, ink text, in both modes. */
::selection {
  background-color: var(--wp--preset--color--accent-soft);
  color: var(--wp--preset--color--ink);
}

/* Target size (WCAG 2.2 2.5.8): buttons are at least 24 by 24. */
:where(button, .wp-element-button, input[type="checkbox"], input[type="radio"]) {
  min-block-size: var(--wp--preset--spacing--5);
  min-inline-size: var(--wp--preset--spacing--5);
}

/* Form controls keep padding and border inside their width, so a full-width field stays inside its fieldset. */
:where(input, select, textarea) {
  box-sizing: border-box;
}

/* Record facts and slots: a value its binding source leaves empty, or a term list with no term, hides its row or
   slot, so a page never shows a fact label without the fact. */
:where(.nx-register-row):not(:has(> .nx-register-v)),
:where(.nx-register-row):has(> .nx-register-v:empty),
:where(.nx-slot):has(.nx-slot__v:empty) {
  display: none;
}

/* Guide breadcrumb and contents (inc/kb.php). */
:where(.nx-kb-crumbs__list, .nx-kb-toc__list) {
  margin: 0;
  padding: 0;
  list-style: none;
}
.nx-kb-crumbs__list {
  display: flex;
  flex-wrap: wrap;
  gap: var(--wp--preset--spacing--2);
  font-size: var(--wp--preset--font-size--s);
}
.nx-kb-crumbs__item + .nx-kb-crumbs__item::before {
  content: "/" / "";
  margin-inline-end: var(--wp--preset--spacing--2);
  color: var(--wp--preset--color--ink-muted);
}
.nx-kb-toc__list {
  display: grid;
  gap: var(--wp--preset--spacing--2);
  font-size: var(--wp--preset--font-size--s);
}
.nx-kb-toc__item--l3 {
  padding-inline-start: var(--wp--preset--spacing--4);
}
.nx-kb-toc__item--l4 {
  padding-inline-start: var(--wp--preset--spacing--6);
}
/* 24 by 24 targets (WCAG 2.2 2.5.8) for the stacked crumb and contents links. */
:where(.nx-kb-crumbs__list, .nx-kb-toc__list) a {
  display: inline-flex;
  align-items: center;
  min-block-size: var(--wp--preset--spacing--5);
}

/* Guide feedback vote (inc/kb.php nexus/kb-vote, assets/js/kb-feedback.js). Hidden until its script runs; the
   pressed answer is marked by colour and an underline, not colour alone. */
.nx-kb-vote {
  display: grid;
  gap: var(--wp--preset--spacing--4);
  margin-block-end: var(--wp--preset--spacing--5);
}
.nx-kb-vote[hidden],
.nx-kb-vote [hidden] {
  display: none;
}
:where(.nx-kb-vote__question, .nx-kb-vote__reasons) {
  display: grid;
  gap: var(--wp--preset--spacing--3);
  min-inline-size: 0;
  margin: 0;
  padding: 0;
  border: 0;
}
.nx-kb-vote__legend {
  padding: 0;
  margin-block-end: var(--wp--preset--spacing--2);
  font-size: var(--wp--preset--font-size--m);
  font-weight: 600;
}
.nx-kb-vote__choices {
  display: flex;
  flex-wrap: wrap;
  gap: var(--wp--preset--spacing--3);
}
.nx-kb-vote__choice[aria-pressed="true"] {
  background-color: var(--wp--preset--color--accent-soft);
  color: var(--wp--preset--color--ink);
  text-decoration: underline;
  text-decoration-thickness: var(--nx-focus-width);
}
.nx-kb-vote__reason {
  display: flex;
  align-items: center;
  gap: var(--wp--preset--spacing--2);
  min-block-size: var(--wp--preset--spacing--5);
  font-size: var(--wp--preset--font-size--s);
}
.nx-kb-vote__send {
  justify-self: start;
}
.nx-kb-vote__status {
  margin: 0;
  font-size: var(--wp--preset--font-size--s);
}

/* The wide figure hero and the wide split columns (dataset, listing, KB, report and standards templates) start on
   the chrome's content edge (inc/chrome-*.php .nx-chrome-inner: the wide size, centred, with the small gutter, the
   medium one from 48em). Each is a wide block inside the root padding, so its inline padding is the difference
   between the two boxes plus the chrome gutter (percentages are of the main content box). */
.nx-hero--figure.alignwide,
.nx-split.alignwide {
  --nx-chrome-gutter: var(--wp--custom--layout--gutter-sm);
  box-sizing: border-box;
  padding-inline: calc((min(var(--wp--style--global--wide-size), 100%) - min(var(--wp--style--global--wide-size), 100% + var(--wp--style--root--padding-left) + var(--wp--style--root--padding-right))) / 2 + var(--nx-chrome-gutter));
}
@media (min-width: 48em) {
  .nx-hero--figure.alignwide,
  .nx-split.alignwide {
    --nx-chrome-gutter: var(--wp--custom--layout--gutter-md);
  }
}

/* The updates panel (patterns/newsletter-slot.php) is a filled band: its text keeps an inline gutter from the
   panel edge at every width. */
.nx-newsletter {
  padding-inline: var(--wp--preset--spacing--5);
}

/* RTL: directional icons mirror; everything else uses logical properties. */
:where(.nx-icon--directional):dir(rtl) {
  transform: scaleX(-1);
}

/* Bidi: typed and member-written text takes its own direction; names, dates and numbers are isolated (research §1.4). */
:where(input:not([type]), input[type="text"], input[type="search"], input[type="email"], input[type="url"], input[type="tel"], textarea) {
  unicode-bidi: plaintext;
}
:where(.wp-block-comment-content, .comment-content, .nx-ugc) :where(p, li, blockquote, h2, h3, h4, h5, h6, dd, td, th) {
  unicode-bidi: plaintext;
}
/* Inline names, dates, terms and chrome labels: isolated, with their own direction (what <bdi> does). */
:where(bdi, time, data, .nx-isolate, .wp-block-post-author__name, .wp-block-post-terms a, .nx-chrome-brand__code, .nx-foot__name a, .nx-mega__t, .nx-chrome-primary__link, .nx-chrome-network__link) {
  unicode-bidi: plaintext;
}
/* Mirrored arrows where core's site-wide -rtl stylesheet does not apply. */
:root:not([dir="rtl"]) :is(.wp-block-query-pagination-previous-arrow:not(.is-arrow-chevron), .wp-block-query-pagination-next-arrow:not(.is-arrow-chevron), .wp-block-comments-pagination-previous-arrow:not(.is-arrow-chevron), .wp-block-comments-pagination-next-arrow:not(.is-arrow-chevron), .wp-block-post-navigation-link__arrow-previous:not(.is-arrow-chevron), .wp-block-post-navigation-link__arrow-next:not(.is-arrow-chevron)):dir(rtl) {
  display: inline-block;
  transform: scaleX(-1);
}
:root[dir="rtl"] :is(.wp-block-query-pagination-previous-arrow:not(.is-arrow-chevron), .wp-block-query-pagination-next-arrow:not(.is-arrow-chevron), .wp-block-comments-pagination-previous-arrow:not(.is-arrow-chevron), .wp-block-comments-pagination-next-arrow:not(.is-arrow-chevron), .wp-block-post-navigation-link__arrow-previous:not(.is-arrow-chevron), .wp-block-post-navigation-link__arrow-next:not(.is-arrow-chevron)):dir(ltr) {
  transform: none;
}

/* Arabic script: Persian, Dari, Sorani, Arabic, South Azerbaijani, Balochi, Urdu (research §2.4). Vazirmatn arrives through the
   sans stack and its unicode-range only. */
:is(:lang(fa), :lang(prs), :lang(ckb), :lang(ar), :lang(azb), :lang(bal), :lang(ur), :lang(ku-Arab), :lang(ps), :lang(sd), :lang(ks), :lang(ug), :lang(pnb), :lang(skr), :lang(brh), :lang(bgn), :lang(sdh), :lang(lki), :lang(hac), :lang(glk), :lang(mzn), :lang(lrc)) {
  line-height: 1.85;
  letter-spacing: 0 !important;
  text-transform: none !important;
  font-synthesis: none;
  text-underline-position: under;
}
:is(h1, h2, h3, h4, h5, h6, .wp-block-post-title, .wp-block-site-title):is(:lang(fa), :lang(prs), :lang(ckb), :lang(ar), :lang(azb), :lang(bal), :lang(ur), :lang(ku-Arab), :lang(ps), :lang(sd), :lang(ks), :lang(ug), :lang(pnb), :lang(skr), :lang(brh), :lang(bgn), :lang(sdh), :lang(lki), :lang(hac), :lang(glk), :lang(mzn), :lang(lrc)) {
  line-height: 1.35;
}
.has-text-align-justify:is(:lang(fa), :lang(prs), :lang(ckb), :lang(ar), :lang(azb), :lang(bal), :lang(ur), :lang(ku-Arab), :lang(ps), :lang(sd), :lang(ks), :lang(ug), :lang(pnb), :lang(skr), :lang(brh), :lang(bgn), :lang(sdh), :lang(lki), :lang(hac), :lang(glk), :lang(mzn), :lang(lrc)) {
  text-align: start;
}
.has-xs-font-size:is(:lang(fa), :lang(prs), :lang(ckb), :lang(ar), :lang(azb), :lang(bal), :lang(ur), :lang(ku-Arab), :lang(ps), :lang(sd), :lang(ks), :lang(ug), :lang(pnb), :lang(skr), :lang(brh), :lang(bgn), :lang(sdh), :lang(lki), :lang(hac), :lang(glk), :lang(mzn), :lang(lrc)) {
  font-size: var(--wp--preset--font-size--s) !important;
}

/* Motion: none under reduced motion; cross-document view transitions only when motion is welcome. */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
@media (prefers-reduced-motion: no-preference) {
  @view-transition {
    navigation: auto;
  }
}
