/* Duluth MN Real Estate Guide — accessibility utilities.
   Additive only. guide.css already ships :focus-visible styling and a
   prefers-reduced-motion block; nothing here overrides either. */

/* Skip to content. Off-screen until focused, then lands in the top-left as a
   normal-looking button so a keyboard user can see where they are. */
.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 200;
  padding: 0.75em 1.2em;
  background: var(--spruce);
  color: var(--paper);
  font-weight: 600;
  font-size: var(--step--1);
  border-radius: 0 0 var(--r-md) 0;
  text-decoration: none;
}

.skip-link:focus {
  left: 0;
}

/* Visually hidden but available to assistive tech. */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Same, until focused: for anything that should surface on keyboard entry. */
.sr-only-focusable:focus,
.sr-only-focusable:focus-within {
  position: static;
  width: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  clip: auto;
  white-space: normal;
}

/* main is focusable as a skip target, but must never show a focus ring when
   reached that way, only when a keyboard user actually lands on it. */
main[tabindex="-1"] {
  outline: none;
}

/* The consent countdown bar is decoration: the same information is written in
   the text beside it, so removing the motion costs nothing. */
@media (prefers-reduced-motion: reduce) {
  .consent-track {
    display: none;
  }
}

/* ---------------------------------------------------------------------------
   DEFECT FIX, not a restyle. Please fold into guide.css and delete this block.

   guide.css gives .rating .fill a height and a gradient but no display, and it
   is a <span> inside a grid-blockified .track, so it computes to display:inline
   and measures 0px wide. Every bar renders as an empty grey track.

   Present in the original prototypes, so not a port regression, but it now
   suppresses TWO data displays: the editorial rating bars on ~40 neighborhood
   pages, and the ACS housing-type mix. The numeric value beside each bar still
   renders, so no data is lost, but the visualization conveys nothing.
   -------------------------------------------------------------------------- */
.rating .fill {
  display: block;
}
