/* Shared base for every Najd design: resets and behaviour-level utilities only.
   No colors and no fonts here — each design owns those through its DESIGN.md tokens. */

*,
*::before,
*::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
html:has(dialog[open]) { overflow: hidden; }
html.i18n-pending body { visibility: hidden; }
body { margin: 0; }
h1, h2, h3, h4, h5, p, ul, ol, figure, fieldset, blockquote, dl, dd { margin: 0; }
ul, ol { padding: 0; list-style: none; }
img, svg:not(.icon) { display: block; max-width: 100%; }
img { height: auto; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
[hidden] { display: none !important; }

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

.skip-link {
  position: absolute;
  inset-inline-start: 16px;
  top: -200px;
  z-index: 1000;
  padding: 12px 20px;
}
.skip-link:focus { top: 16px; }

.icon-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.icon {
  display: inline-block;
  flex: none;
  width: 1.25em;
  height: 1.25em;
  vertical-align: -0.25em;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: square;
  stroke-linejoin: miter;
}
.icon--brand { stroke: none; }
[dir="rtl"] .icon--dir { transform: scaleX(-1); }

/* Honeypot field of the lead form */
.hp { position: absolute; inset-inline-start: -10000px; width: 1px; height: 1px; overflow: hidden; }

/* Marquee mechanics (api.marquee renders .marquee__track with aria-hidden clones) */
.marquee { overflow: hidden; }
.marquee__track {
  display: flex;
  width: max-content;
  animation: najd-marquee var(--marquee-duration, 48s) linear infinite;
}
.marquee:hover .marquee__track,
.marquee:focus-within .marquee__track { animation-play-state: paused; }
[dir="rtl"] .marquee { --marquee-shift: 50%; }
@keyframes najd-marquee { to { transform: translateX(var(--marquee-shift, -50%)); } }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  .marquee__track { flex-wrap: wrap; justify-content: center; width: auto; animation: none; }
  .marquee__track [data-clone] { display: none; }
}
