/* Keyboard focus: one visible state for all interactive components.
 * Important is intentional here: legacy component rules must not hide focus.
 * A white inner ring keeps the dark outline visible on the blue contact section.
 */
:where(a[href], button, input, textarea, select, summary, [tabindex]):focus-visible {
  outline: 3px solid #174d75;
  outline-offset: 3px;
  box-shadow: 0 0 0 3px #fff;
}
/* Focus layers are painted above children and outside the scrolling content. */
.brand, .offer-card, .mio-gallery-viewport, .reviews-slider-viewport {
  position: relative;
}
.brand:focus-visible,
.offer-card > a:focus-visible,
[data-slider]:focus-visible,
[data-reviews-slider]:focus-visible {
  outline: none;
  box-shadow: none;
}
.brand:focus-visible::after,
.offer-card:has(> a:focus-visible)::after,
.mio-gallery-viewport:has([data-slider]:focus-visible)::after,
.reviews-slider-viewport:has([data-reviews-slider]:focus-visible)::after {
  content: "";
  position: absolute;
  inset: 3px;
  z-index: 20;
  pointer-events: none;
  border: 3px solid #174d75;
  border-radius: inherit;
  box-shadow: 0 0 0 3px #fff;
}
@media (forced-colors: active) {
  .brand:focus-visible::after,
  .offer-card:has(> a:focus-visible)::after,
  .mio-gallery-viewport:has([data-slider]:focus-visible)::after,
  .reviews-slider-viewport:has([data-reviews-slider]:focus-visible)::after {
    border-color: Highlight;
  }
}
/* The actual upload input is transparent; show its focus on the visible label. */
.file-field:has(input[type="file"]:focus-visible) .file-drop {
  outline: 3px solid #174d75;
  outline-offset: 3px;
  box-shadow: 0 0 0 3px #fff;
}
@media (forced-colors: active) {
  :where(a[href], button, input, textarea, select, summary, [tabindex]):focus-visible,
  .file-field:has(input[type="file"]:focus-visible) .file-drop {
    outline-color: Highlight;
  }
}
.faq-answer[hidden] { display: none; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}
