/* =============================================
   Accessibility Widget
   ---------------------------------------------
   Palette is taken from the home page brand:
     deep blue  #0b2e83 / #002471  (primary)
     light blue #A7D8FF            (secondary accent)
     white      #ffffff
   ============================================= */

:root {
  --rv-primary: #0b2e83;
  --rv-secondary: #A7D8FF;
  --rv-white: #ffffff;
}

/* Trigger Button */
.acc-trigger-btn {
  position: fixed;
  bottom: 30px;
  left: 20px;
  z-index: 9998;
  background: linear-gradient(135deg, #0b2e83, #002471);
  color: var(--rv-white);
  border-radius: 40px;
  border: none;
  outline: none;
  cursor: pointer;
  box-shadow: 0 4px 18px rgba(11, 46, 131, 0.4);

  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 18px 10px 17px;

  /* Collapsed — shows only icon + Ctrl+F2 */
  width: 60px;
  height: 60px;
  overflow: hidden;
  white-space: nowrap;
  transition: width 0.38s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.2s;
}

.acc-trigger-btn:hover {
  width: 220px;
  background: linear-gradient(135deg, #0b2e83, #002471);
  box-shadow: 0 6px 26px rgba(11, 46, 131, 0.45);
}

/* Trigger icon rendered white on the deep-blue button */
.acc-trigger-btn svg,
.acc-trigger-btn svg path,
.acc-trigger-btn svg line {
  stroke: var(--rv-white);
}

.acc-trigger-btn svg circle[fill] {
  fill: var(--rv-white);
}

/* Icon + Ctrl+F2 stacked, always visible */
.acc-trigger-icon-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex-shrink: 0;
  gap: 3px;


}

.acc-trigger-btn svg {
  width: 26px;
  height: 26px;
  flex-shrink: 0;
}

.acc-trigger-shortcut {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.85);
  letter-spacing: 0.02em;
  font-weight: 600;
  white-space: nowrap;
  line-height: 1;
}

/* When the shortcut text is empty, remove it from the column so the
   icon stays vertically centred and the hover label lines up with it */
.acc-trigger-shortcut:empty {
  display: none;
}

/* "Accessibility Options" — hidden by default, slides in from left on hover */
.acc-trigger-label {
  font-size: 13px;
  font-weight: 600;
  color: var(--rv-white);
  white-space: nowrap;
  line-height: 1;
  letter-spacing: 0.01em;
  flex-shrink: 0;
  opacity: 0;
  transform: translateX(-16px);
  transition: opacity 0.22s ease 0.14s, transform 0.22s ease 0.14s;
}

.acc-trigger-btn:hover .acc-trigger-label {
  opacity: 1;
  transform: translateX(0);
}

/* Panel */
.acc-panel {
  position: fixed;
  bottom: 15px;
  left: -320px;
  width: 300px;
  max-height: 92vh;
  background: var(--rv-primary);
  z-index: 9999;
  border-radius: 0 14px 14px 0;
  box-shadow: 6px 0 28px rgba(167, 216, 255, 0.18);
  transition: left 0.32s cubic-bezier(0.4, 0, 0.2, 1);
  display: flex;
  border: 2px solid #fff;
  border-left: unset;
  flex-direction: column;
  overflow: hidden;
}

.acc-panel.acc-open {
  left: 0;
}

/* Panel Header */
.acc-panel-header {
  background: var(--rv-secondary);
  color: var(--rv-primary);
  padding: 13px 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-shrink: 0;
}

.acc-panel-title {
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.01em;
}

.acc-panel-header-right {
  display: flex;
  align-items: center;
  gap: 8px;
}

.acc-shortcut-badge {
  background: rgba(0, 0, 0, 0.15);
  padding: 2px 7px;
  border-radius: 5px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.03em;
}

.acc-close-btn {
  background: none;
  border: none;
  color: var(--rv-primary);
  font-size: 42px;
  cursor: pointer;
  line-height: 1;
  padding: 0 2px;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0.85;
  transition: opacity 0.15s;
}

.acc-close-btn:hover {
  opacity: 1;
}

/* Grid */
.acc-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 9px;
  padding: 12px;
  overflow-y: auto;
  flex: 1;
}

.acc-grid::-webkit-scrollbar {
  width: 5px;
}

.acc-grid::-webkit-scrollbar-track {
  background: var(--rv-primary);
}

.acc-grid::-webkit-scrollbar-thumb {
  background: rgba(167, 216, 255, 0.3);
  border-radius: 3px;
}

/* Grid Items */
.acc-item {
  position: relative;
  background: var(--rv-primary);
  border-radius: 11px;
  padding: 13px 6px 10px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  border: 1px solid rgba(167, 216, 255, 0.12);
  transition: border-color 0.18s, background 0.18s;
  text-align: center;
  user-select: none;
  min-height: 82px;
}

.acc-item:hover {
  border-color: var(--rv-secondary);
  background: #052168;
}

.acc-item.acc-item-active {
  border-color: var(--rv-secondary);
  background: var(--rv-primary);
}

.acc-item svg {
  width: 30px;
  height: 30px;
  margin-bottom: 7px;
  color: var(--rv-white);
  stroke: var(--rv-white);
  fill: none;
  display: block;
  stroke-width: 1.8;
}

/* Force all SVG child elements to inherit the gold color */
.acc-item svg path,
.acc-item svg line,
.acc-item svg circle,
.acc-item svg rect,
.acc-item svg polyline,
.acc-item svg polygon,
.acc-item svg ellipse {
  stroke: var(--rv-white);
  color: var(--rv-white);
}

/* Filled icons (Saturation, Invert, etc.) keep their fill */
.acc-item svg path[fill="currentColor"] {
  fill: var(--rv-white);
  stroke: none;
}

.acc-item-label {
  font-size: 12px;
  color: var(--rv-white);
  font-weight: 600;
  line-height: 1.25;
}

/* Smaller Text card — disabled look when bigger text is not active */
.acc-item.acc-item-muted {
  opacity: 1;
  border-color: var(--rv-secondary);
  background: var(--rv-primary);
  pointer-events: none;
  cursor: default;
}

/* Stepper items (Bigger / Smaller Text) — click the card to cycle steps */
.acc-item-stepper {
  min-height: 96px;
}

/* Checkmark badge — shown when level > 0 */
.acc-item-check {
  position: absolute;
  top: 7px;
  right: 7px;
  width: 18px;
  height: 18px;
  background: var(--rv-secondary);
  border-radius: 50%;
  display: none;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
}

.acc-item.acc-item-active .acc-item-check {
  display: flex;
}

/* Progress dashes — 4 segments, filled = active steps */
.acc-steps {
  display: flex;
  gap: 4px;
  margin-top: 8px;
  width: 100%;
  padding: 0 6px;
  box-sizing: border-box;
}

.acc-step-dash {
  flex: 1;
  height: 3px;
  background: rgba(167, 216, 255, 0.2);
  border-radius: 2px;
  transition: background 0.2s;
}

.acc-step-dash.acc-dash-on {
  background: var(--rv-secondary);
}

/* Reset Button */
.acc-reset-btn {
  background: var(--rv-secondary);
  color: var(--rv-primary);
  border: none;
  padding: 13px;
  width: 100%;
  font-size: 13.5px;
  font-weight: 700;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  flex-shrink: 0;
  letter-spacing: 0.02em;
  transition: opacity 0.18s;
}

.acc-reset-btn:hover {
  opacity: 0.88;
}

.acc-reset-btn svg {
  width: 15px;
  height: 15px;
}

/* =============================================
   Applied Accessibility Effects
   ============================================= */

/* font-size for bigger/smaller is applied inline on #acc-page-wrapper via JS */



/* Line Height — graded 4 levels; text elements only, skipping layout/icons */
body.acc-lh-1 { --acc-lh: 1.5; }
body.acc-lh-2 { --acc-lh: 1.9; }
body.acc-lh-3 { --acc-lh: 2.4; }
body.acc-lh-4 { --acc-lh: 3; }

body[class*="acc-lh-"] p,
body[class*="acc-lh-"] h1,
body[class*="acc-lh-"] h2,
body[class*="acc-lh-"] h3,
body[class*="acc-lh-"] h4,
body[class*="acc-lh-"] h5,
body[class*="acc-lh-"] h6,
body[class*="acc-lh-"] li,
body[class*="acc-lh-"] td,
body[class*="acc-lh-"] th,
body[class*="acc-lh-"] span,
body[class*="acc-lh-"] a,
body[class*="acc-lh-"] label,
body[class*="acc-lh-"] button,
body[class*="acc-lh-"] input,
body[class*="acc-lh-"] textarea {
  line-height: var(--acc-lh) !important;
}

/* Text Spacing — WCAG 1.4.12 (letter, word, line and paragraph spacing).
   Scoped to text elements (like the line-height feature) so layout wrappers
   and icon fonts are left untouched. */
body.acc-text-spacing p,
body.acc-text-spacing h1,
body.acc-text-spacing h2,
body.acc-text-spacing h3,
body.acc-text-spacing h4,
body.acc-text-spacing h5,
body.acc-text-spacing h6,
body.acc-text-spacing li,
body.acc-text-spacing td,
body.acc-text-spacing th,
body.acc-text-spacing dd,
body.acc-text-spacing dt,
body.acc-text-spacing blockquote,
body.acc-text-spacing span,
body.acc-text-spacing a,
body.acc-text-spacing label,
body.acc-text-spacing button,
body.acc-text-spacing input,
body.acc-text-spacing textarea {
  letter-spacing: 0.12em !important;
  word-spacing: 0.16em !important;
  line-height: 1.5 !important;
}

body.acc-text-spacing p {
  margin-bottom: 2em !important;
}

body.acc-dyslexia,
body.acc-dyslexia * {
  font-family: Arial, Helvetica, sans-serif;
  letter-spacing: 0.06em;
  word-spacing: 0.1em;
}

body.acc-highlight-links a {
  background: #ffff00;
  color: #000000;
  text-decoration: underline;
  padding: 0 2px;
  border-radius: 2px;
}

body.acc-hide-images img,
body.acc-hide-images [style*="background-image"] {
  visibility: hidden !important;
}

/* Applied to wrapper (not body) so the widget's own slide animation is never frozen */
#acc-page-wrapper.acc-pause-anim *,
#acc-page-wrapper.acc-pause-anim *::before,
#acc-page-wrapper.acc-pause-anim *::after {
  animation-play-state: paused;
  transition-duration: 0s;
  animation-duration: 0s;
}

body.acc-big-cursor,
body.acc-big-cursor * {
  cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Cpath fill='%23C4975A' stroke='white' stroke-width='1.5' d='M4 4 L4 30 L12 22 L18 36 L23 34 L17 20 L28 20 Z'/%3E%3C/svg%3E") 4 4, auto;
}

/* ADHD reading focus */
body.acc-adhd {
  position: relative;
}

.acc-adhd-overlay {
  display: none;
  position: fixed;
  left: 0;
  right: 0;
  pointer-events: none;
  z-index: 99990;
  box-shadow: 0 0 0 9999px rgba(0, 0, 0, 0.52);
  height: 80px;
  border-top: 2px solid rgba(255, 220, 0, 0.55);
  border-bottom: 2px solid rgba(255, 220, 0, 0.55);
  transition: top 0.05s linear;
}

body.acc-adhd .acc-adhd-overlay {
  display: block;
}

/* =============================================
   Language Bar
   ============================================= */

.acc-section-label {
  font-size: 10px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.42);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 7px;
}


/* =============================================
   Color Theme Bar
   ============================================= */

.acc-theme-bar {
  padding: 9px 12px 10px;
  border-top: 1px solid rgba(255, 255, 255, 0.07);
  flex-shrink: 0;
}

.acc-theme-options {
  display: flex;
  gap: 8px;
}

.acc-theme-btn {
  flex: 1;
  height: 38px;
  border-radius: 8px;
  border: 2.5px solid transparent;
  font-size: 19px;
  font-weight: 900;
  cursor: pointer;
  transition: border-color 0.2s, transform 0.15s, box-shadow 0.2s;
  display: flex;
  align-items: center;
  justify-content: center;
  letter-spacing: -0.02em;
  font-family: Georgia, serif;
}

.acc-theme-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35);
}

.acc-theme-btn.acc-theme-active {
  border-color: #f0c040;
  box-shadow: 0 0 0 2px rgba(240, 192, 64, 0.32);
}

.acc-theme-btn[data-theme="white"] {
  background: #ffffff;
  color: #111111;
}

.acc-theme-btn[data-theme="black"] {
  background: #111111;
  color: #f0c040;
}

.acc-theme-btn[data-theme="gray"] {
  background: #6b6b6b;
  color: #ffffff;
}

/* =============================================
   BLACK THEME — proper dark mode
   Uses `background` shorthand (not background-color)
   so it also clears gradients and background-images
   ============================================= */

#acc-page-wrapper.acc-theme-black {
  background: #141414 !important;
  color: #d0d0d0 !important;
}

/* One rule covers EVERY element — background shorthand clears
   any gradient/image that was previously set on the element */
#acc-page-wrapper.acc-theme-black *:not([class*="acc-"]):not(img):not(video):not(svg):not(canvas):not(iframe):not(script):not(style) {
  background: #141414 !important;
  border-color: rgba(255, 255, 255, 0.1) !important;
  box-shadow: none !important;
  text-shadow: none !important;
}

/* Slightly lighter for cards/boxes to preserve visual hierarchy */
#acc-page-wrapper.acc-theme-black .card,
#acc-page-wrapper.acc-theme-black [class*="-card"],
#acc-page-wrapper.acc-theme-black [class*="-step"],
#acc-page-wrapper.acc-theme-black [class*="-box"],
#acc-page-wrapper.acc-theme-black [class*="-block"],
#acc-page-wrapper.acc-theme-black [class*="-item"],
#acc-page-wrapper.acc-theme-black [class*="-panel"],
#acc-page-wrapper.acc-theme-black [class*="-stat"],
#acc-page-wrapper.acc-theme-black [class*="-widget"] {
  background: #1f1f1f !important;
}

/* Headings — bright white */
#acc-page-wrapper.acc-theme-black h1,
#acc-page-wrapper.acc-theme-black h2,
#acc-page-wrapper.acc-theme-black h3,
#acc-page-wrapper.acc-theme-black h4,
#acc-page-wrapper.acc-theme-black h5,
#acc-page-wrapper.acc-theme-black h6 {
  color: #f0f0f0 !important;
}

/* Body text — light gray */
#acc-page-wrapper.acc-theme-black p,
#acc-page-wrapper.acc-theme-black span,
#acc-page-wrapper.acc-theme-black li,
#acc-page-wrapper.acc-theme-black td,
#acc-page-wrapper.acc-theme-black th,
#acc-page-wrapper.acc-theme-black label,
#acc-page-wrapper.acc-theme-black strong,
#acc-page-wrapper.acc-theme-black em,
#acc-page-wrapper.acc-theme-black small,
#acc-page-wrapper.acc-theme-black div,
#acc-page-wrapper.acc-theme-black button:not([class*="acc-"]) {
  color: #d0d0d0 !important;
}

#acc-page-wrapper.acc-theme-black a {
  color: #82baff !important;
}

/* Images and video — completely untouched */
#acc-page-wrapper.acc-theme-black img,
#acc-page-wrapper.acc-theme-black video,
#acc-page-wrapper.acc-theme-black iframe {
  background: transparent !important;
  filter: none !important;
}

/* =============================================
   GRAY THEME — gray backgrounds, normal images
   Same technique: background shorthand clears gradients
   ============================================= */

#acc-page-wrapper.acc-theme-gray {
  background: #6b6b6b !important;
  color: #ffffff !important;
}

#acc-page-wrapper.acc-theme-gray *:not([class*="acc-"]):not(img):not(video):not(svg):not(canvas):not(iframe):not(script):not(style) {
  background: #6b6b6b !important;
  border-color: rgba(255, 255, 255, 0.15) !important;
  box-shadow: none !important;
  text-shadow: none !important;
}

/* Slightly lighter cards */
#acc-page-wrapper.acc-theme-gray .card,
#acc-page-wrapper.acc-theme-gray [class*="-card"],
#acc-page-wrapper.acc-theme-gray [class*="-step"],
#acc-page-wrapper.acc-theme-gray [class*="-box"],
#acc-page-wrapper.acc-theme-gray [class*="-block"],
#acc-page-wrapper.acc-theme-gray [class*="-item"],
#acc-page-wrapper.acc-theme-gray [class*="-panel"],
#acc-page-wrapper.acc-theme-gray [class*="-stat"],
#acc-page-wrapper.acc-theme-gray [class*="-widget"] {
  background: #7a7a7a !important;
}

#acc-page-wrapper.acc-theme-gray h1,
#acc-page-wrapper.acc-theme-gray h2,
#acc-page-wrapper.acc-theme-gray h3,
#acc-page-wrapper.acc-theme-gray h4,
#acc-page-wrapper.acc-theme-gray h5,
#acc-page-wrapper.acc-theme-gray h6 {
  color: #ffffff !important;
}

#acc-page-wrapper.acc-theme-gray p,
#acc-page-wrapper.acc-theme-gray span,
#acc-page-wrapper.acc-theme-gray li,
#acc-page-wrapper.acc-theme-gray td,
#acc-page-wrapper.acc-theme-gray th,
#acc-page-wrapper.acc-theme-gray label,
#acc-page-wrapper.acc-theme-gray strong,
#acc-page-wrapper.acc-theme-gray em,
#acc-page-wrapper.acc-theme-gray small,
#acc-page-wrapper.acc-theme-gray div,
#acc-page-wrapper.acc-theme-gray button:not([class*="acc-"]) {
  color: #f0f0f0 !important;
}

#acc-page-wrapper.acc-theme-gray a {
  color: #ffffff !important;
}

/* Images and video — completely untouched */
#acc-page-wrapper.acc-theme-gray img,
#acc-page-wrapper.acc-theme-gray video,
#acc-page-wrapper.acc-theme-gray iframe {
  background: transparent !important;
  filter: none !important;
}

/* =============================================
   WCAG 2.4.7 — Visible keyboard focus indicator
   Applies only to keyboard navigation (:focus-visible),
   so mouse/touch interaction and the visual design are
   unchanged. Dual ring (navy outline + light-blue glow)
   stays visible on both light and dark backgrounds.
   ============================================= */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible,
[role="button"]:focus-visible,
[role="link"]:focus-visible,
[contenteditable]:focus-visible {
  outline: 3px solid #0b2e83 !important;
  outline-offset: 2px !important;
  box-shadow: 0 0 0 5px rgba(167, 216, 255, 0.65) !important;
  border-radius: 2px;
}

/* =============================================
   WCAG 2.1.1 — Keyboard access to desktop dropdown menus.
   The RD-Navbar submenus are display:none and only reveal on
   hover, so keyboard users cannot Tab into them. Revealing the
   submenu while the parent menu item has focus makes its links
   reachable. Only affects keyboard focus, so the mouse/hover
   design is unchanged.
   ============================================= */
.rd-navbar-static .rd-nav-item:focus-within > .rd-menu,
.rd-navbar-static .rd-dropdown-item:focus-within > .rd-menu {
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
}

/* =============================================
   Neutralise native <button> chrome on the contact-info collapse toggle
   so the element looks identical to its former <div> (the icon is drawn by
   the .rd-navbar-collapse-toggle span/:before/:after rules).
   ============================================= */
button.rd-navbar-collapse-toggle {
  background: transparent;
  border: 0;
  -webkit-appearance: none;
  appearance: none;
  font: inherit;
  text-align: inherit;
}

/* =============================================
   WCAG 2.3.3 — Reduced motion. Honour the OS "reduce motion" setting for
   sliders (caption animations), counters, WOW reveal animations and marquees,
   without changing the static design for everyone else.
   ============================================= */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.001ms !important;
    animation-delay: 0ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    transition-delay: 0ms !important;
    scroll-behavior: auto !important;
  }
  .wow {
    animation-name: none !important;
    visibility: visible !important;
    opacity: 1 !important;
  }
  [data-caption-animate] {
    animation-name: none !important;
    opacity: 1 !important;
    visibility: visible !important;
  }
  marquee,
  .news-scroll {
    animation: none !important;
  }
}

/* JS-applied fallback (set on <html> when reduce-motion is requested) so the
   reveal/marquee neutralisation also works where the media query is limited. */
.reduce-motion .wow {
  animation-name: none !important;
  visibility: visible !important;
  opacity: 1 !important;
}
.reduce-motion [data-caption-animate] {
  animation-name: none !important;
  opacity: 1 !important;
  visibility: visible !important;
}
.reduce-motion marquee,
.reduce-motion .news-scroll {
  animation: none !important;
}

/* =============================================
   Accessible news ticker (replaces the deprecated <marquee>).
   - Auto-scrolls horizontally via CSS transform animation
   - Pauses on hover, on keyboard focus, and via a Pause/Play button
     (WCAG 2.2.2 — pause, stop, hide for moving content)
   - Honours prefers-reduced-motion / .reduce-motion: animation off and
     the content becomes manually scrollable instead
   ============================================= */
.news-ticker {
  display: flex;
  align-items: center;
  width: 100%;
  min-width: 0;
}
.news-ticker a {
  color: inherit;
}
.news-ticker__toggle {
  flex: 0 0 auto;
  width: 28px;
  height: 28px;
  margin-right: 10px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.18);
  color: inherit;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  line-height: 0;
}
.news-ticker__toggle:hover {
  background: rgba(255, 255, 255, 0.32);
}
.news-ticker__icon {
  display: inline-block;
  width: 100%;
  height: 100%;
  position: relative;
}
/* Pause icon (two bars) shown while the ticker is playing */
.news-ticker__icon::before,
.news-ticker__icon::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 3px;
  height: 10px;
  margin-top: -5px;
  background: currentColor;
}
.news-ticker__icon::before { left: 50%; margin-left: -4px; }
.news-ticker__icon::after { left: 50%; margin-left: 1px; }
/* Play icon (triangle) shown while the ticker is paused */
.news-ticker.is-paused .news-ticker__icon::before,
.news-ticker.is-paused .news-ticker__icon::after {
  width: 0;
  height: 0;
  margin: -5px 0 0 -3px;
  background: transparent;
  border-top: 5px solid transparent;
  border-bottom: 5px solid transparent;
  border-left: 8px solid currentColor;
}
.news-ticker.is-paused .news-ticker__icon::after { content: none; }

.news-ticker__viewport {
  position: relative;
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
}
.news-ticker__track {
  display: flex;
  width: -webkit-max-content;
  width: max-content;
  will-change: transform;
  animation: news-ticker-scroll 30s linear infinite;
}
.news-ticker__group {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
  padding-right: 40px;
}
/* Pause: hover, keyboard focus anywhere inside, or explicit toggle */
.news-ticker__viewport:hover .news-ticker__track,
.news-ticker:focus-within .news-ticker__track,
.news-ticker.is-paused .news-ticker__track {
  animation-play-state: paused;
}
@keyframes news-ticker-scroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

@media (prefers-reduced-motion: reduce) {
  .news-ticker__track {
    animation: none !important;
    transform: none !important;
  }
  .news-ticker__viewport {
    overflow-x: auto;
  }
  .news-ticker__group[aria-hidden="true"] {
    display: none;
  }
  .news-ticker__toggle {
    display: none;
  }
}
.reduce-motion .news-ticker__track {
  animation: none !important;
  transform: none !important;
}
.reduce-motion .news-ticker__viewport {
  overflow-x: auto;
}
.reduce-motion .news-ticker__group[aria-hidden="true"] {
  display: none;
}
.reduce-motion .news-ticker__toggle {
  display: none;
}

/* Native <button> reset for the Swiper slider arrows so converting them from
   role="button" divs to real buttons keeps the original arrow appearance. */
button.swiper-button-prev,
button.swiper-button-next {
  background-color: transparent;
  border: 0;
  padding: 0;
  margin: 0;
  -webkit-appearance: none;
  appearance: none;
}

