/* Move down content because we have a fixed navbar that is 50px tall */
body {
  /* padding-top: 50px; */
  /* padding-bottom: 20px; */
}

/* --- Accessibility helpers (EAA / WCAG) --- */

/* Skip link (shown on keyboard focus) */
.skip-link {
  position: absolute;
  top: 0;
  left: 0;
  transform: translateY(-120%);
  z-index: 2000;
  padding: 0.5rem 0.75rem;
  background: #fff;
  border: 2px solid #000;
  border-radius: 0.5rem;
}
.skip-link:focus,
.skip-link:focus-visible {
  transform: translateY(0);
}

/* Make keyboard focus clearly visible */
:focus-visible {
  outline: 3px solid #0d6efd; /* Bootstrap primary */
  outline-offset: 2px;
}

/* Ensure invalid feedback has a bit of spacing */
.invalid-feedback {
  display: block;
}

/* Preserve the existing form layout while legacy Bootstrap classes are migrated. */
.form-group { margin-bottom: 1rem; }
.jumbotron { padding: 2rem 1rem; margin-bottom: 2rem; background: #e9ecef; }
@media (min-width: 576px) { .jumbotron { padding: 4rem 2rem; } }
.input-group-addon { padding: .375rem .75rem; color: #212529; background: #e9ecef; border: 1px solid #ced4da; }

/* Bootstrap 3 form markup retained by the older forms. */
select.form-control {
  padding-right: 2.25rem;
  background-color: #fff;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23212529' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right .75rem center;
  background-size: 16px 12px;
  appearance: none;
}

/* Bootstrap 5 no longer ships Glyphicons; keep the existing icon markup visible. */
.glyphicon {
  display: inline-block;
  font-family: FontAwesome, Arial, sans-serif;
  font-style: normal;
  font-weight: 700;
  line-height: 1;
  speak: never;
}
.glyphicon::before { display: inline-block; }
.glyphicon-plus::before { content: "\f067"; }
.glyphicon-minus::before { content: "\f068"; }
.glyphicon-th::before { content: "\f073"; font-size: 1.05em; }
.glyphicon-calendar::before { content: "\f073"; font-size: 1.05em; }
.glyphicon-info-sign::before { content: "\f05a"; font-size: .9em; }
.btn-default { color: #212529; background-color: #fff; border-color: #ced4da; }
.btn-default:hover, .btn-default:focus { color: #212529; background-color: #e9ecef; border-color: #adb5bd; }
.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6,
.col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
  float: left;
  position: relative;
  min-height: 1px;
  padding-left: .75rem;
  padding-right: .75rem;
}
.col-xs-1 { width: 8.333333%; }
.col-xs-2 { width: 16.666667%; }
.col-xs-3 { width: 25%; }
.col-xs-4 { width: 33.333333%; }
.col-xs-5 { width: 41.666667%; }
.col-xs-6 { width: 50%; }
.col-xs-7 { width: 58.333333%; }
.col-xs-8 { width: 66.666667%; }
.col-xs-9 { width: 75%; }
.col-xs-10 { width: 83.333333%; }
.col-xs-11 { width: 91.666667%; }
.col-xs-12 { width: 100%; }
.col-xs-offset-1 { margin-left: 8.333333%; }
.col-xs-offset-2 { margin-left: 16.666667%; }
.col-xs-offset-3 { margin-left: 25%; }
.col-xs-offset-4 { margin-left: 33.333333%; }
.col-xs-offset-5 { margin-left: 41.666667%; }
.col-xs-offset-6 { margin-left: 50%; }
.col-xs-offset-7 { margin-left: 58.333333%; }
.col-xs-offset-8 { margin-left: 66.666667%; }
.col-xs-offset-9 { margin-left: 75%; }
.col-xs-offset-10 { margin-left: 83.333333%; }
.col-xs-offset-11 { margin-left: 91.666667%; }
.form-group::after { display: table; clear: both; content: ""; }

@media (min-width: 768px) {
  .col-md-1 { width: 8.333333%; }
  .col-md-2 { width: 16.666667%; }
  .col-md-3 { width: 25%; }
  .col-md-4 { width: 33.333333%; }
  .col-md-5 { width: 41.666667%; }
  .col-md-6 { width: 50%; }
  .col-md-7 { width: 58.333333%; }
  .col-md-8 { width: 66.666667%; }
  .col-md-9 { width: 75%; }
  .col-md-10 { width: 83.333333%; }
  .col-md-11 { width: 91.666667%; }
  .col-md-12 { width: 100%; }
  .col-md-offset-1 { margin-left: 8.333333%; }
  .col-md-offset-2 { margin-left: 16.666667%; }
  .col-md-offset-3 { margin-left: 25%; }
  .col-md-offset-4 { margin-left: 33.333333%; }
  .col-md-offset-5 { margin-left: 41.666667%; }
  .col-md-offset-6 { margin-left: 50%; }
  .col-md-offset-7 { margin-left: 58.333333%; }
  .col-md-offset-8 { margin-left: 66.666667%; }
  .col-md-offset-9 { margin-left: 75%; }
  .col-md-offset-10 { margin-left: 83.333333%; }
  .col-md-offset-11 { margin-left: 91.666667%; }
}

@media (min-width: 992px) {
  .col-lg-1 { width: 8.333333%; }
  .col-lg-2 { width: 16.666667%; }
  .col-lg-3 { width: 25%; }
  .col-lg-4 { width: 33.333333%; }
  .col-lg-5 { width: 41.666667%; }
  .col-lg-6 { width: 50%; }
  .col-lg-7 { width: 58.333333%; }
  .col-lg-8 { width: 66.666667%; }
  .col-lg-9 { width: 75%; }
  .col-lg-10 { width: 83.333333%; }
  .col-lg-11 { width: 91.666667%; }
  .col-lg-12 { width: 100%; }
  .col-lg-offset-1 { margin-left: 8.333333%; }
  .col-lg-offset-2 { margin-left: 16.666667%; }
  .col-lg-offset-3 { margin-left: 25%; }
  .col-lg-offset-4 { margin-left: 33.333333%; }
  .col-lg-offset-5 { margin-left: 41.666667%; }
  .col-lg-offset-6 { margin-left: 50%; }
  .col-lg-offset-7 { margin-left: 58.333333%; }
  .col-lg-offset-8 { margin-left: 66.666667%; }
  .col-lg-offset-9 { margin-left: 75%; }
  .col-lg-offset-10 { margin-left: 83.333333%; }
  .col-lg-offset-11 { margin-left: 91.666667%; }
}

/* Utility: visually hidden but still accessible, and becomes visible on focus */
.visually-hidden-focusable:not(:focus):not(:focus-within) {
  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;
}

/* Prefer reduced motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

