/* sistema — utilities shared by every feature. Fonts and tokens live in styles.css. */

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

/* Lenis */
html.lenis,
html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: hidden; }

/* Odometer (sistema.api.odometer): one clipped slot per digit, built by the script;
   separators are plain text. The incoming digit sits on top while it rolls. */
.odo .odo-d {
  position: relative;
  display: inline-block;
  overflow: hidden;
  height: 1.2em;
  height: 1lh;          /* the slot follows the line box, also under a reader's text-spacing override (WCAG 1.4.12) */
  line-height: 1.2em;
  vertical-align: top;
}

/* Inline-block, not block: the slots' text reads as one figure ('18.281.038'), never one
   digit per line, in innerText and in a copy. */
.odo .odo-v {
  display: inline-block;
  vertical-align: top;
}

/* The face next to an sr twin is decorative: the twin is the text that gets copied. */
.odo[aria-hidden="true"] {
  -webkit-user-select: none;
  user-select: none;
}

.odo .odo-in {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
}

@media (prefers-reduced-motion: reduce) {
  .odo .odo-in { display: none; }
}

@media print {
  .odo .odo-in { display: none; }
}
