:root {
  --firelab-motion-fast: 160ms;
  --firelab-motion-medium: 240ms;
  --firelab-motion-ease: cubic-bezier(.2, .7, .2, 1);
}

:where(a, button, input, textarea, select):focus-visible {
  outline: 2px solid var(--orange);
  outline-offset: 4px;
}

.v3-menu-toggle[aria-expanded="true"]:focus-visible,
.v3-situation-index button:focus-visible {
  outline: 2px solid var(--orange);
  outline-offset: 4px;
}

:where(.v3-text-link, .v3-resources nav a, .v3-contact__actions > a, .v3-contact__actions > button) b,
.v3-contact__actions b,
.firelab-action span {
  transition: transform var(--firelab-motion-fast) var(--firelab-motion-ease);
}

:where(.v3-text-link, .v3-resources nav a, .v3-contact__actions > a, .v3-contact__actions > button):is(:hover, :focus-visible) b,
.v3-contact__actions > :is(a, button):is(:hover, :focus-visible) b,
.firelab-action:is(:hover, :focus-visible) span {
  transform: translateX(4px);
}

.v3-contact__actions > a,
.v3-contact__actions > button,
.firelab-action,
.firelab-dialog-close,
.v3-situation-index button {
  transition: color var(--firelab-motion-fast) var(--firelab-motion-ease),
    background-color var(--firelab-motion-fast) var(--firelab-motion-ease),
    border-color var(--firelab-motion-fast) var(--firelab-motion-ease);
}

.v3-contact__actions > :is(a, button):is(:hover, :focus-visible) {
  background: rgba(231, 74, 2, .045);
}

.firelab-action:is(:hover, :focus-visible) {
  background: var(--orange);
}

.firelab-dialog-close:is(:hover, :focus-visible) {
  color: var(--orange);
}

.v3-menu-toggle b,
.v3-menu-toggle b::before {
  transition: transform var(--firelab-motion-medium) var(--firelab-motion-ease),
    background-color var(--firelab-motion-fast) linear;
}

.firelab-contact-dialog {
  opacity: 0;
  transform: translateY(14px) scale(.985);
  transition: opacity var(--firelab-motion-medium) var(--firelab-motion-ease),
    transform var(--firelab-motion-medium) var(--firelab-motion-ease),
    display var(--firelab-motion-medium) allow-discrete,
    overlay var(--firelab-motion-medium) allow-discrete;
}

.firelab-contact-dialog.is-open {
  opacity: 1;
  transform: none;
}

.firelab-contact-dialog::backdrop {
  opacity: 0;
  transition: opacity var(--firelab-motion-medium) var(--firelab-motion-ease),
    display var(--firelab-motion-medium) allow-discrete,
    overlay var(--firelab-motion-medium) allow-discrete;
}

.firelab-contact-dialog.is-open::backdrop {
  opacity: 1;
}

@media (min-width: 1321px) {
  .v3-submenu {
    display: grid;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translate(-50%, -8px);
    transition: opacity var(--firelab-motion-fast) var(--firelab-motion-ease),
      transform var(--firelab-motion-fast) var(--firelab-motion-ease),
      visibility var(--firelab-motion-fast);
  }

  .v3-submenu--mission {
    transform: translateY(-8px);
  }

  .v3-nav-item.is-open > .v3-submenu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translate(-50%, 0);
  }

  .v3-nav-item.is-open > .v3-submenu--mission {
    transform: none;
  }
}

@media (max-width: 1320px) {
  .v3-nav {
    transition-duration: var(--firelab-motion-medium);
    transition-timing-function: var(--firelab-motion-ease);
  }
}

@media (max-width: 900px) {
  .v3-contact__actions > :is(a, button):is(:hover, :focus-visible) {
    background: transparent;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}
