/* Small, deliberate movements complement the existing nReach design. */
.nreach-header {
  transition: box-shadow 240ms ease;
}
.nreach-header.is-scrolled {
  box-shadow: 0 4px 22px rgb(24 31 38 / 12%);
}
.nr-button, .form-submit button, .news-search button {
  transition: translate 220ms ease, box-shadow 220ms ease,
    background-color 220ms ease, border-color 220ms ease;
}
.nr-button:active, .form-submit button:active, .news-search button:active {
  translate: 0 1px;
}
.main-menu > li > a { position: relative; }
.main-menu > li > a::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 5px;
  height: 2px;
  background: #a61c1c;
  scale: 0 1;
  transform-origin: left;
  transition: scale 220ms ease;
}
.main-menu > li > a[aria-current='page']::after,
.main-menu > li > a:focus-visible::after { scale: 1 1; }
.submenu-toggle svg, .nreach-accordion summary span {
  transition: rotate 220ms ease, transform 220ms ease;
}
.submenu-toggle[aria-expanded='true'] svg { rotate: 180deg; }
.site-navigation.is-open .main-menu, .submenu-open .submenu {
  animation: nr-menu-enter 220ms ease both;
}
.nreach-accordion details[open] .accordion-content {
  animation: nr-detail-enter 240ms ease both;
}
.nreach-accordion summary { transition: color 180ms ease, background-color 180ms ease; }
.contact-form input, .contact-form textarea, .news-search input {
  transition: border-color 180ms ease, box-shadow 180ms ease;
}
.contact-form input:focus, .contact-form textarea:focus, .news-search input:focus {
  border-color: #a61c1c;
  box-shadow: 0 0 0 3px rgb(166 28 28 / 9%);
}
.carousel-dots button {
  transition: scale 180ms ease, background-color 180ms ease;
}
.carousel-dots button[aria-pressed='true'] { scale: 1.3; }
.carousel-prev, .carousel-next { transition: color 180ms ease, scale 180ms ease; }
.nreach-video button span { transition: scale 220ms ease; }
main .nr-widget-nk-icon-box .nr-widget-container,
main .nr-widget-call-to-action .nr-widget-container,
main .eael-team-member, main .eael-grid-post-holder {
  transition: translate 260ms ease, box-shadow 260ms ease;
}
@media (hover: hover) and (pointer: fine) {
  .nr-button:hover, .form-submit button:hover:not(:disabled), .news-search button:hover {
    translate: 0 -2px;
    box-shadow: 0 6px 16px rgb(70 15 15 / 18%);
  }
  .main-menu > li > a:hover::after { scale: 1 1; }
  .nreach-accordion summary:hover { background-color: rgb(166 28 28 / 4%); }
  .carousel-prev:hover, .carousel-next:hover { color: #a61c1c; scale: 1.08; }
  .carousel-dots button:hover { scale: 1.5; }
  .nreach-video button:hover span { scale: 1.08; }
  main .nr-widget-nk-icon-box .nr-widget-container:hover,
  main .nr-widget-call-to-action .nr-widget-container:hover,
  main .eael-team-member:hover, main .eael-grid-post-holder:hover {
    translate: 0 -4px;
    box-shadow: 0 10px 24px rgb(24 31 38 / 10%);
  }
}
@media (max-width: 1024px) {
  .main-menu > li > a::after { left: 25px; right: auto; width: 24px; }
}
@keyframes nr-menu-enter {
  from { opacity: 0; translate: 0 -6px; }
  to { opacity: 1; translate: 0 0; }
}
@keyframes nr-detail-enter {
  from { opacity: 0; translate: 0 -4px; }
  to { opacity: 1; translate: 0 0; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .nr-button, .form-submit button, .news-search button,
  .carousel-prev, .carousel-next, .carousel-dots button, .nreach-video button span,
  main .nr-widget-nk-icon-box .nr-widget-container,
  main .nr-widget-call-to-action .nr-widget-container,
  main .eael-team-member, main .eael-grid-post-holder { translate: none !important; scale: none !important; }
}
