/* Accessibility CSS for Stadtraum.com */

/* Skip link for keyboard navigation */
.skip-link {
  position: absolute;
  top: -40px;
  left: 0;
  background: #000;
  color: #fff;
  padding: 8px 16px;
  z-index: 1000;
  text-decoration: none;
  font-weight: bold;
  transition: top 0.3s;
  border-radius: 0 0 4px 0;
}
.skip-link:focus {
  top: 0;
  outline: 2px solid #fff;
  outline-offset: -2px;
}

/* Screen reader only text */
.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
  color: #000 !important; /* for WCAG contrast safety */
  background-color: rgb(255, 255, 255) !important;
}

/* Visually hidden text for accessibility */
.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
  color: #000 !important; /* for WCAG contrast safety */
  background-color: rgb(255, 255, 255) !important;
}

/* External link icon styling */
svg.external-icon {
  margin-left: 8px;
  width: 16px;
  height: 16px;
  vertical-align: middle;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform 0.2s ease;
 
}

a:hover svg.external-icon {
  transform: translate(2px, -2px);
}

/* Ensure proper contrast for external icons */
a:focus svg.external-icon {
  outline: 2px solid #0080af;
  outline-offset: 2px;
}

/* === Focus Outline for Accessibility (WCAG 2.4.7) === */
/* Ensure all interactive elements have visible keyboard focus */
a:focus,
button:focus,
input:focus,
select:focus,
textarea:focus {
  outline: 3px solid #005fcc; /* Deep blue outline for 3:1 contrast ratio */
  outline-offset: 2px;
}

/* Ensure focus is visible even when outline is removed by other styles */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 3px solid #005fcc;
  outline-offset: 2px;
} 