/* Screen reader only utility (reinforce theme utility) */
.sr-only {
  border: 0;
  clip: rect(0, 0, 0, 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

/* ------------------------------------------------------------------
   WCAG AA contrast — brand orange #FB411C fails 4.5:1 on white
   (≈3.57:1). Soft accents #f4734e / #FF7B58 also fail.
   Darken text/controls to approved a11y orange.
   ------------------------------------------------------------------ */
:root {
  --cv-a11y-orange-text: #C23414;
  --cv-a11y-orange-bg: #C23414;
  --cv-a11y-orange-hover: #A62D0C;
  --cv-a11y-muted-text: #595959;
  --cv-a11y-focus: #C23414;
  --cv-a11y-panel: #fff1eb;
}

/* Skip link — strengthen Lotus .lt-skip-navigation */
.lt-skip-navigation:focus,
.lt-skip-navigation:focus-visible,
.lt-skip-navigation:active {
  box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--cv-a11y-focus);
  outline: 2px solid transparent;
  outline-offset: 2px;
  color: var(--cv-a11y-orange-text);
}

/* Skip-link target: no visible ring on the main landmark itself */
#main-content:focus,
#main-content:focus-visible,
main#main-content:focus,
main#main-content:focus-visible {
  box-shadow: none;
  outline: none;
}

/* Strengthen focus ring (Coveron has many outline:none utilities) */
a:focus-visible,
button:focus-visible,
[role="button"]:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex="0"]:focus-visible,
.lt-topbar__link:focus-visible,
.lt-topbar__dropdown-item:focus-visible,
.lt-menu-toggle:focus-visible,
.lt-article-vote__item:focus-visible,
.lt-btn:focus-visible,
.toc-link:focus-visible,
.toc-toggle:focus-visible,
.dropdown1:focus-visible,
.nesty-input:focus-visible,
.footer-col__toggle:focus-visible,
.footer-links:focus-visible {
  box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--cv-a11y-focus);
  outline: 2px solid transparent;
  outline-offset: 2px;
}

/* ------------------------------------------------------------------
   WCAG 2.4.7 — the search box has a permanent decorative box-shadow
   (`.search input[type="search"]`) with higher specificity than the
   generic `input:focus-visible` ring above, so the ring only ever
   showed on the search submit button, never on the text field itself.
   ------------------------------------------------------------------ */
.search input[type="search"]:focus-visible,
.search input[type="search"]:focus {
  box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--cv-a11y-focus) !important;
  outline: 2px solid transparent !important;
  outline-offset: 2px !important;
}

/* Header dropdown triggers rendered as buttons */
button.lt-topbar__link--dropdown {
  background: transparent;
  border: 0;
  font: inherit;
  color: inherit;
  padding: 0;
  cursor: pointer;
}

/* Breadcrumbs — muted grey that meets AA.
   Lotus used opacity:0.7 which washed colors to ~#8b8b8b / #d4715b (axe 3.3–3.4:1). */
.breadcrumbs,
ol.breadcrumbs,
a.breadcrumbs,
a.breadcrumbs.bc-home,
.lt-breadcrumbs-wrapper .breadcrumbs,
.lt-breadcrumbs-wrapper a.breadcrumbs {
  opacity: 1 !important;
}

.breadcrumbs,
.breadcrumbs li,
.breadcrumbs li a,
.breadcrumbs li:not(:first-of-type):before,
.breadcrumbs > li + li:before,
a.breadcrumbs,
a.breadcrumbs.bc-home,
.lt-breadcrumbs-wrapper .breadcrumbs,
.lt-breadcrumbs-wrapper .breadcrumbs a,
.lt-breadcrumbs-wrapper a.breadcrumbs {
  color: var(--cv-a11y-muted-text) !important;
}

.breadcrumbs li a:hover,
.breadcrumbs > li:last-child a,
.lt-breadcrumbs-wrapper .breadcrumbs a:hover,
.lt-breadcrumbs-wrapper a.breadcrumbs:hover,
a.breadcrumbs.bc-home:hover {
  color: var(--cv-a11y-orange-text) !important;
}

/* enhanceBreadcrumbs() below wraps the <ol class="breadcrumbs"> in a
   <nav aria-label="Breadcrumbs"> landmark. <nav> defaults to display:block,
   which broke "Home > Category > Section > Article" onto two lines. */
.lt-breadcrumbs-wrapper nav[aria-label] {
  display: inline;
}

/* Article body links — contrast + underline (WCAG 1.4.1) */
.lt-article__body a,
.article-body a,
[data-article] a {
  color: var(--cv-a11y-orange-text) !important;
  text-decoration: underline !important;
  text-underline-offset: 2px;
}

.lt-article__body a:hover,
.article-body a:hover,
[data-article] a:hover {
  color: var(--cv-a11y-orange-hover) !important;
}

/* Soft accent text used in CTAs (not dark footer) */
.article-cta__heading span {
  color: var(--cv-a11y-orange-text) !important;
}

/* Primary buttons / CTAs with white text */
.lt-btn--primary,
.lt-topbar__link--cta,
.article-cta__button,
a.article-cta__button,
#submit-btn[data-appearance="fill"],
.form input[type='submit'],
form input[type='submit'],
input[type='submit'].button {
  background-color: var(--cv-a11y-orange-bg) !important;
  border-color: var(--cv-a11y-orange-bg) !important;
  color: #fff !important;
}

a.article-cta__button {
  display: inline-block;
  text-align: center;
  text-decoration: none;
  box-sizing: border-box;
}

/* ------------------------------------------------------------------
   WCAG 1.4.3 — New Request file dropzone. Zendesk/Tailwind paints
   #upload-dropzone text as #d1d1d1 on white (axe: 1.52:1).
   ------------------------------------------------------------------ */
#upload-dropzone,
.upload-dropzone,
#upload-dropzone span,
.upload-dropzone span {
  color: var(--cv-a11y-muted-text) !important;
}

#upload-dropzone a,
.upload-dropzone a {
  color: var(--cv-a11y-orange-text) !important;
  text-decoration: underline;
  text-underline-offset: 2px;
}

#upload-dropzone a:hover,
.upload-dropzone a:hover {
  color: var(--cv-a11y-orange-hover) !important;
}

/* Email self-service control is an anchor (avoid nested button) */
.SelfService-section__list a#email-us-button,
a#email-us-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  text-align: center;
  /* Match .SelfService-section__list button chrome */
  width: 100%;
  padding: 0.75rem 1rem;
  border-radius: 9999px;
  border: 2px solid var(--cv-a11y-orange-text);
  font: inherit;
  cursor: pointer;
  box-sizing: border-box;
}

.lt-btn--primary:hover,
.lt-topbar__link--cta:hover,
.article-cta__button:hover,
#submit-btn[data-appearance="fill"]:hover,
.form input[type='submit']:hover,
form input[type='submit']:hover {
  background-color: var(--cv-a11y-orange-hover) !important;
  border-color: var(--cv-a11y-orange-hover) !important;
  color: #fff !important;
}

/* Outline accent buttons (self-service chat/email) */
#live-chat-button,
#email-us-button,
a#email-us-button,
button[data-variant="accent"][data-appearance="outline"],
a[data-variant="accent"][data-appearance="outline"] {
  color: var(--cv-a11y-orange-text) !important;
  border-color: var(--cv-a11y-orange-text) !important;
}

#live-chat-button:hover,
#email-us-button:hover,
a#email-us-button:hover,
button[data-variant="accent"][data-appearance="outline"]:hover,
a[data-variant="accent"][data-appearance="outline"]:hover {
  background-color: var(--cv-a11y-orange-bg) !important;
  color: #fff !important;
}

/* Brand orange text overrides that fail AA */
[style*="color: #FB411C"],
[style*="color:#FB411C"],
[style*="color: #f4734e"],
[style*="color:#f4734e"],
[style*="color:rgb(255, 123, 88)"],
[style*="color: rgb(255, 123, 88)"] {
  color: var(--cv-a11y-orange-text) !important;
}

/* Search / link accents */
.search-result-link,
.lt-search-result__title a,
.nordprotect-article-link,
.lt-promoted-articles-item__link,
.lt-section-heading__link {
  color: var(--cv-a11y-orange-text);
}

.search-result-link:hover,
.lt-search-result__title a:hover {
  color: var(--cv-a11y-orange-hover);
}

/* TOC contrast */
.toc-toggle,
.toc-toggle-text,
.toc-toggle .toc-toggle-text {
  color: var(--cv-a11y-muted-text) !important;
}

.toc-link:hover {
  border-left-color: var(--cv-a11y-orange-text);
}

.toc-link--active {
  border-left-color: var(--cv-a11y-orange-text) !important;
}

/* ------------------------------------------------------------------
   WCAG 1.4.3 — article accordion (.dropdown1) if present in body HTML
   ------------------------------------------------------------------ */
.dropdown1,
.dropdown1:hover {
  background-color: var(--cv-a11y-orange-bg) !important;
}

.dropdown1 p,
.lt-article__body .dropdown1 p,
[data-article] .dropdown1 p {
  color: #fff !important;
}

.droppanel,
.active + .droppanel {
  background-color: var(--cv-a11y-panel) !important;
  color: #121212 !important;
}

/* ------------------------------------------------------------------
   Copy code button (injected by a11y.js)
   ------------------------------------------------------------------ */
.Article_page__article-body-codeBlock {
  position: relative;
}

.Article_page__article-body-codeBlock pre {
  margin: 0;
}

.Article_page__article-body-codeBlock-copy {
  position: absolute;
  right: 12px;
  top: 12px;
}

.Article_page__article-body-codeBlock-copy button {
  align-items: center;
  background: #fff;
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  cursor: pointer;
  display: flex;
  height: 36px;
  justify-content: center;
  transition: box-shadow 0.2s ease, border-color 0.2s ease;
  width: 36px;
}

.Article_page__article-body-codeBlock-copy button:hover {
  border-color: var(--cv-a11y-orange-text);
}

.Article_page__article-body-codeBlock-copy button:focus-visible {
  box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--cv-a11y-focus);
  outline: 2px solid transparent;
  outline-offset: 2px;
}

/* ------------------------------------------------------------------
   WCAG 2.4.3 Focus Order — mobile nav uses opacity/transform; keep
   closed menu out of tab order with visibility.
   ------------------------------------------------------------------ */
@media (max-width: 991px) {
  #user-nav:not(.is-active) {
    visibility: hidden;
  }

  #user-nav.is-active {
    visibility: visible;
  }
}

/* ------------------------------------------------------------------
   WCAG 2.5.8 Target Size — interactive controls >= 24x24 (44 where ok)
   ------------------------------------------------------------------ */
.lt-menu-toggle {
  min-width: 44px;
  min-height: 44px;
  position: relative;
}

.toc-toggle {
  min-height: 24px;
}

.toc-link {
  min-height: 24px;
  display: flex;
  align-items: center;
}

.pagination a,
.pagination span,
nav[role="navigation"] a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 24px;
  min-height: 24px;
}

#close-dialog-btn,
.lt-btn--print,
.lt-scroll-to-top {
  min-width: 44px;
  min-height: 44px;
}

.lt-footer a,
.lt-footer button,
.footer-links,
.footer-col__toggle {
  display: inline-block;
  min-height: 24px;
}

/* ------------------------------------------------------------------
   WCAG 2.3.3 / 2.2.2 — respect reduced motion preferences
   ------------------------------------------------------------------ */
@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;
  }
}
