
:focus-visible {
  outline: 2px solid #161616 !important;
  outline-offset: 2px !important;
  border-radius: 2px;
}

html[data-theme="dark"] :focus-visible {
  outline-color: #ffffff !important;
}

body, .container, p, li, dd {
  line-height: 1.5;
}
h1, h2, h3, h4, h5, h6 {
  line-height: 1.25;
}
p { margin-block-end: 1em; }

html { font-size: 100%; }

img, video, pre, code {
  max-inline-size: 100%;
}

/* Scroll wide tables via wrapper only — never display:block on <table> */
.table-responsive,
.dga-table-wrap {
  max-inline-size: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

table:not(.dga-table) {
  max-inline-size: 100%;
}

button, .btn,
input[type="text"], input[type="email"], input[type="tel"], input[type="number"],
input[type="password"], input[type="search"], select, textarea {
  border: 1px solid #546e7a;
}
button:hover, .btn:hover {
  filter: brightness(0.92);
}

@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;
  }
  .flickity-enabled,
  [data-autoplay],
  .carousel-inner {
    animation: none !important;
  }
}

.flickity-enabled:hover,
.flickity-enabled:focus-within,
[data-autoplay]:hover,
[data-autoplay]:focus-within,
.carousel-inner:hover,
.carousel-inner:focus-within {
  animation-play-state: paused !important;
}

.alert, .notice, .toast { animation: none !important; }

label, .form-label, legend { font-size: max(0.875rem, 14px); }

main p a, main li a, .content a, .page-content a {
  text-decoration: underline;
  text-underline-offset: 2px;
}

@media (forced-colors: active) {
  :focus-visible { outline: 3px solid Highlight !important; }
  button, .btn  { border: 1px solid ButtonText; }
}

/* Header icon actions — restore visible focus after dga-navigation blanket reset */
.dga-site-header .dga-header-action:focus-visible {
  outline: 2px solid #161616 !important;
  outline-offset: 2px !important;
  border-color: #161616;
}

html[data-theme="dark"] .dga-site-header .dga-header-action:focus-visible {
  outline-color: #ffffff !important;
  border-color: #ffffff;
}

@media (forced-colors: active) {
  .dga-site-header .dga-header-action:focus-visible {
    outline: 2px solid Highlight !important;
    border-color: Highlight;
  }
}
