.button {
  transition: transform .25s ease, box-shadow .25s ease, background-color .25s ease;
}

.button > span, .text-link > span, .header-contact > span {
  display: inline-block;
  transition: transform .25s ease;
}

.photo-open {
  transition: transform .3s ease;
}

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .button:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 22px #302b2618;
  }

  .button:hover > span, .text-link:hover > span, .header-contact:hover > span {
    transform: translate(3px, -3px);
  }

  .photo-button:hover .photo-open {
    transform: rotate(45deg);
  }
}

.photo-button:focus-visible {
  outline-offset: -5px;
}

html:not(.landing-ready) .filters,
html:not(.landing-ready) .collection-count {
  display: none;
}

@media (max-width: 760px) {
  html:not(.landing-ready) .header-inner {
    height: auto;
  }

  html:not(.landing-ready) .menu-toggle {
    display: none;
  }

  html:not(.landing-ready) .header-inner nav {
    display: flex;
    position: static;
    flex-wrap: wrap;
    width: 100%;
    padding: 0;
    box-shadow: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation: none !important;
    transition: none !important;
  }
}