


.scroll-animate {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity .7s cubic-bezier(.22,.61,.36,1), transform .7s cubic-bezier(.22,.61,.36,1);
  will-change: opacity, transform;
}
.scroll-animate.in {
  opacity: 1;
  transform: translateY(0);
}

html:not(.js) .scroll-animate { opacity: 1; transform: none; }


header [id^="nav-panel-"] {
  transition: height .4s ease;
}
header .nav-panel-open {
  height: 100lvh !important;
  z-index: 40 !important;
}

header > div {
  position: relative;
  z-index: 45;
}
header > nav > ul > li > button[id^="nav-header-"] {
  position: relative;
  z-index: 45;
}

header button[id^="nav-header-"][aria-expanded="true"]::after {
  display: block !important;
}

html.menu-open, html.menu-open body { overflow: hidden !important; }


[class*="sticky"] { position: relative !important; top: auto !important; }


.loader {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 100vh;
  background: #fff;
  z-index: 100;
  pointer-events: none;
  animation: loaderWipe .5s ease .1s forwards;
}
@keyframes loaderWipe {
  from { height: 100vh; }
  to   { height: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .loader { animation: none; height: 0; }
}
