/* Scroll fade-up animations
-------------------------------------------------------------- */
.atlas-fade-up .kb-query-grid-wrap .kb-query-item,
.home-projects .kb-query-grid-wrap .kb-query-item,
.home-news-grid .kb-query-grid-wrap .kb-query-item {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.9s cubic-bezier(0.22, 1, 0.36, 1), transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}
.atlas-fade-up .kb-query-grid-wrap .kb-query-item.is-visible, .atlas-fade-up .kb-query-grid-wrap .kb-query-item[data-atlas-once=true],
.home-projects .kb-query-grid-wrap .kb-query-item.is-visible,
.home-projects .kb-query-grid-wrap .kb-query-item[data-atlas-once=true],
.home-news-grid .kb-query-grid-wrap .kb-query-item.is-visible,
.home-news-grid .kb-query-grid-wrap .kb-query-item[data-atlas-once=true] {
  opacity: 1;
  transform: translateY(0);
}

/* Query item image zoom on hover
-------------------------------------------------------------- */
.home-projects .kb-query-grid-wrap .kb-query-item .wp-block-kadence-image,
.home-projects .kb-query-grid-wrap .kb-query-item .kb-is-ratio-image,
.home-news-grid .kb-query-grid-wrap .kb-query-item .wp-block-kadence-image,
.home-news-grid .kb-query-grid-wrap .kb-query-item .kb-is-ratio-image {
  overflow: hidden;
}
.home-projects .kb-query-grid-wrap .kb-query-item .kb-img,
.home-news-grid .kb-query-grid-wrap .kb-query-item .kb-img {
  transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: transform;
}
.home-projects .kb-query-grid-wrap .kb-query-item:hover .kb-img, .home-projects .kb-query-grid-wrap .kb-query-item:focus-within .kb-img,
.home-news-grid .kb-query-grid-wrap .kb-query-item:hover .kb-img,
.home-news-grid .kb-query-grid-wrap .kb-query-item:focus-within .kb-img {
  transform: scale(1.06);
}

/* Lock animations after first play - once per page load
-------------------------------------------------------------- */
.atlas-animation-controlled .overlay {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
.atlas-animation-controlled .kb-query-grid-wrap .kb-query-item.atlas-item-locked,
.atlas-animation-controlled .kb-query-grid-wrap .kb-query-item[data-atlas-once=true] {
  opacity: 1 !important;
  transform: translateY(0) !important;
  visibility: visible !important;
  animation: none !important;
}
.atlas-animation-controlled .kb-query-grid-wrap .kb-query-item.atlas-item-locked {
  transition: none !important;
}

/* Home banner title - letter reveal (fade in from left)
-------------------------------------------------------------- */
.home-banner-title:not(.atlas-banner-ready) {
  visibility: hidden;
}
.home-banner-title.atlas-banner-ready {
  visibility: visible;
}
.home-banner-title .atlas-banner-letter {
  display: inline-block;
  opacity: 0;
  transform: translateX(-0.4em);
  transition: opacity 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94) var(--atlas-delay, 0ms), transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94) var(--atlas-delay, 0ms);
  will-change: opacity, transform;
}
.home-banner-title.is-animated .atlas-banner-letter {
  opacity: 1;
  transform: translateX(0);
}

/* Footer - stagger fade up on scroll
-------------------------------------------------------------- */
#colophon .site-middle-footer-inner-wrap > .site-footer-section,
#colophon .site-bottom-footer-wrap {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.9s cubic-bezier(0.22, 1, 0.36, 1), transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}
#colophon .site-middle-footer-inner-wrap > .site-footer-section.is-visible, #colophon .site-middle-footer-inner-wrap > .site-footer-section[data-atlas-once=true],
#colophon .site-bottom-footer-wrap.is-visible,
#colophon .site-bottom-footer-wrap[data-atlas-once=true] {
  opacity: 1;
  transform: translateY(0);
}
#colophon .site-middle-footer-inner-wrap > .site-footer-section[data-atlas-once=true],
#colophon .site-bottom-footer-wrap[data-atlas-once=true] {
  opacity: 1 !important;
  transform: none !important;
}
#colophon .footer-social-item {
  display: inline-block;
  transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}
#colophon .footer-social-item:hover, #colophon .footer-social-item:focus-visible {
  transform: translateY(-5px);
}

/* Header logo and menu - fade down on load
-------------------------------------------------------------- */
#masthead .site-branding,
#masthead #site-navigation,
#masthead .mobile-toggle-open-container,
#mobile-header .site-branding,
#mobile-header #site-navigation,
#mobile-header .mobile-toggle-open-container {
  opacity: 0;
  transform: translateY(-16px);
  transition: opacity 0.65s cubic-bezier(0.22, 1, 0.36, 1), transform 0.65s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}
#masthead:not(.atlas-header-ready) .site-branding,
#masthead:not(.atlas-header-ready) #site-navigation,
#masthead:not(.atlas-header-ready) .mobile-toggle-open-container,
#mobile-header:not(.atlas-header-ready) .site-branding,
#mobile-header:not(.atlas-header-ready) #site-navigation,
#mobile-header:not(.atlas-header-ready) .mobile-toggle-open-container {
  visibility: hidden;
}
#masthead.atlas-header-ready .site-branding,
#masthead.atlas-header-ready #site-navigation,
#masthead.atlas-header-ready .mobile-toggle-open-container,
#mobile-header.atlas-header-ready .site-branding,
#mobile-header.atlas-header-ready #site-navigation,
#mobile-header.atlas-header-ready .mobile-toggle-open-container {
  visibility: visible;
}
#masthead.atlas-header-animated .site-branding,
#mobile-header.atlas-header-animated .site-branding {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 150ms;
}
#masthead.atlas-header-animated #site-navigation,
#masthead.atlas-header-animated .mobile-toggle-open-container,
#mobile-header.atlas-header-animated #site-navigation,
#mobile-header.atlas-header-animated .mobile-toggle-open-container {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 300ms;
}

@media (prefers-reduced-motion: reduce) {
  .atlas-fade-up .kb-query-grid-wrap .kb-query-item,
  .home-projects .kb-query-grid-wrap .kb-query-item,
  .home-news-grid .kb-query-grid-wrap .kb-query-item {
    opacity: 1;
    transform: none;
    transition: none;
  }
  .atlas-fade-up .kb-query-grid-wrap .kb-query-item:hover .kb-img, .atlas-fade-up .kb-query-grid-wrap .kb-query-item:focus-within .kb-img,
  .home-projects .kb-query-grid-wrap .kb-query-item:hover .kb-img,
  .home-projects .kb-query-grid-wrap .kb-query-item:focus-within .kb-img,
  .home-news-grid .kb-query-grid-wrap .kb-query-item:hover .kb-img,
  .home-news-grid .kb-query-grid-wrap .kb-query-item:focus-within .kb-img {
    transform: none;
  }
  .home-banner-title:not(.atlas-banner-ready) {
    visibility: visible;
  }
  .home-banner-title .atlas-banner-letter {
    opacity: 1;
    transform: none;
    transition: none;
  }
  #colophon .site-middle-footer-inner-wrap > .site-footer-section,
  #colophon .site-bottom-footer-wrap {
    opacity: 1;
    transform: none;
    transition: none;
  }
  #colophon .footer-social-item {
    transition: none;
  }
  #colophon .footer-social-item:hover, #colophon .footer-social-item:focus-visible {
    transform: none;
  }
  #masthead .site-branding,
  #masthead #site-navigation,
  #masthead .mobile-toggle-open-container,
  #mobile-header .site-branding,
  #mobile-header #site-navigation,
  #mobile-header .mobile-toggle-open-container {
    opacity: 1;
    transform: none;
    transition: none;
    visibility: visible;
  }
}
