/* Domus Pura accessibility foundations (framework-free, CSS-only) */

.dp-focusable:focus-visible,
.dp-focus-ring:focus-visible {
  outline: var(--dp-border-width) solid var(--dp-color-border-focus);
  outline-offset: var(--dp-focus-ring-offset);
  box-shadow: var(--dp-focus-ring);
}

.dp-skip-link {
  position: absolute;
  top: var(--dp-space-2);
  left: var(--dp-space-2);
  z-index: var(--dp-z-toast);
  padding: var(--dp-space-2) var(--dp-space-3);
  border: var(--dp-border-width) solid var(--dp-color-border-focus);
  border-radius: var(--dp-radius-sm);
  background: var(--dp-color-bg-surface);
  color: var(--dp-color-text-primary);
  transform: translateY(-140%);
  transition: transform 0.2s ease;
}

.dp-skip-link:focus-visible {
  transform: translateY(0);
}

.dp-reduced-motion-safe {
  transition-duration: 0.2s;
  transition-timing-function: ease;
}

@media (prefers-contrast: more) {
  .dp-focusable:focus-visible,
  .dp-focus-ring:focus-visible,
  .dp-skip-link:focus-visible {
    outline-width: calc(var(--dp-border-width) * 2);
    box-shadow: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .dp-reduced-motion-safe,
  .dp-skip-link {
    transition-duration: 0.01ms;
    animation-duration: 0.01ms;
    animation-iteration-count: 1;
  }
}
