/* Small, compositor-friendly motion for public navigation and primary actions. */
.app-shell--public {
  --public-motion-instant: 90ms;
  --public-motion-fast: 140ms;
  --public-motion-panel: 180ms;
  --public-motion-ease: cubic-bezier(0.2, 0, 0, 1);
  --public-motion-panel-ease: cubic-bezier(0.16, 1, 0.3, 1);
  --public-motion-hover-scale: 1.03;
  --public-motion-press-scale: 1.018;
  --public-motion-label-press-scale: 1.04;
}

.catalog-nav__label {
  display: inline-block;
  transform: scale(1);
  transform-origin: center;
  transition: transform var(--public-motion-fast) var(--public-motion-ease);
}

.app-shell--public :is(
  .site-brand__link,
  .site-search__submit,
  .site-header__locale-switcher-trigger,
  .site-header__locale-switcher-link,
  .site-header__utility-trigger,
  .site-header__utility-toggle,
  .site-header__account-link,
  .site-header__utility-locale-link,
  .site-header__cart-link,
  .site-header__cart-toggle,
  .site-header__cart-preview-footer a,
  .catalog-mobile-toggle,
  .catalog-nav__quick-link,
  .search-suggestion,
  .mega-menu__catalog-link,
  .mega-menu__rail-button,
  .mega-menu__panel-link,
  .mega-menu__links a,
  .mega-menu__shortcut-link,
  .mega-menu__aux-link,
  .mobile-catalog__close,
  .mobile-catalog__overview-link,
  .mobile-catalog__quick-link,
  .mobile-catalog__index-button,
  .mobile-catalog__catalog-link,
  .mobile-catalog__accordion,
  .mobile-catalog__featured-link,
  .mobile-catalog__group a,
  .breadcrumbs__item a,
  .pagination__link,
  .customer-area__navigation-summary,
  .customer-area__navigation-content a,
  .product-gallery__nav,
  .variant-selector-panel__nav,
  .site-footer__brand-link,
  .site-footer__links a,
  .checkout-status-return__link,
  .cart-sticky-cta__link,
  .cart-sticky-cta__button
) {
  transform-origin: center;
  transition: scale var(--public-motion-instant) var(--public-motion-ease);
}

.app-shell--public :is(
  .site-brand__link,
  .site-search__submit,
  .site-header__locale-switcher-trigger,
  .site-header__locale-switcher-link,
  .site-header__utility-trigger,
  .site-header__utility-toggle,
  .site-header__account-link,
  .site-header__utility-locale-link,
  .site-header__cart-link,
  .site-header__cart-toggle,
  .site-header__cart-preview-footer a,
  .catalog-mobile-toggle,
  .catalog-nav__quick-link,
  .search-suggestion,
  .mega-menu__catalog-link,
  .mega-menu__rail-button,
  .mega-menu__panel-link,
  .mega-menu__links a,
  .mega-menu__shortcut-link,
  .mega-menu__aux-link,
  .mobile-catalog__close,
  .mobile-catalog__overview-link,
  .mobile-catalog__quick-link,
  .mobile-catalog__index-button,
  .mobile-catalog__catalog-link,
  .mobile-catalog__accordion,
  .mobile-catalog__featured-link,
  .mobile-catalog__group a,
  .breadcrumbs__item a,
  .pagination__link,
  .customer-area__navigation-summary,
  .customer-area__navigation-content a,
  .product-gallery__nav,
  .variant-selector-panel__nav,
  .site-footer__brand-link,
  .site-footer__links a,
  .checkout-status-return__link,
  .cart-sticky-cta__link,
  .cart-sticky-cta__button
):not(:disabled):not([aria-disabled="true"]):not(.is-disabled):active {
  scale: var(--public-motion-press-scale);
}

.app-shell--public .button {
  transform-origin: center;
  transition:
    background 180ms ease,
    color 180ms ease,
    border-color 180ms ease,
    box-shadow 180ms ease,
    scale var(--public-motion-instant) var(--public-motion-ease);
}

.app-shell--public .button:not(:disabled):not([aria-disabled="true"]):not(.is-disabled):active {
  scale: var(--public-motion-press-scale);
}

.app-shell--public .back-to-top {
  visibility: hidden;
  transform-origin: center;
  transition:
    opacity 200ms ease,
    transform 200ms ease,
    scale var(--public-motion-instant) var(--public-motion-ease);
}

.app-shell--public .back-to-top.is-visible {
  visibility: visible;
}

.app-shell--public .back-to-top:not(:disabled):active {
  scale: var(--public-motion-press-scale);
}

.app-shell--public :is(
  .site-search__suggestions:not([hidden]),
  .site-header__locale-switcher[data-disclosure-open="true"] > .site-header__locale-switcher-panel,
  .site-header__utility-menu[data-disclosure-open="true"] .site-header__utility-panel,
  .site-header__cart-menu[data-disclosure-open="true"] .site-header__cart-preview:not([hidden]),
  .catalog-nav.is-open .mega-menu:not([hidden]) .mega-menu__shell
) {
  animation: public-navigation-panel-in var(--public-motion-panel) var(--public-motion-panel-ease) both;
}

.app-shell--public :is(
  .catalog-nav.is-open .mega-menu__panel.is-active,
  .mobile-catalog__detail-panel:not([hidden])
) {
  animation: public-navigation-content-in var(--public-motion-fast) var(--public-motion-ease) both;
}

.app-shell--public .mobile-catalog:not([hidden]) .mobile-catalog__backdrop {
  animation: public-navigation-backdrop-in var(--public-motion-panel) linear both;
}

.app-shell--public .mobile-catalog:not([hidden]) .mobile-catalog__sheet {
  animation: public-navigation-panel-in var(--public-motion-panel) var(--public-motion-panel-ease) both;
}

@media (hover: hover) and (pointer: fine) {
  .catalog-nav__trigger:hover > .catalog-nav__label,
  .catalog-nav__overview-link:hover > .catalog-nav__label {
    transform: scale(var(--public-motion-hover-scale));
  }
}

.catalog-nav__trigger:active > .catalog-nav__label,
.catalog-nav__overview-link:active > .catalog-nav__label {
  transform: scale(var(--public-motion-label-press-scale));
}

@keyframes public-navigation-panel-in {
  from {
    opacity: 0;
    transform: translateY(-4px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes public-navigation-content-in {
  from {
    opacity: 0;
    transform: translateY(-2px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes public-navigation-backdrop-in {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@media (prefers-reduced-motion: reduce) {
  .catalog-nav__label {
    transform: none !important;
    transition: none !important;
  }

  .app-shell--public :is(
    .site-brand__link,
    .site-search__submit,
    .site-header__locale-switcher-trigger,
    .site-header__locale-switcher-link,
    .site-header__utility-trigger,
    .site-header__utility-toggle,
    .site-header__account-link,
    .site-header__utility-locale-link,
    .site-header__cart-link,
    .site-header__cart-toggle,
    .site-header__cart-preview-footer a,
    .catalog-mobile-toggle,
    .catalog-nav__quick-link,
    .search-suggestion,
    .mega-menu__catalog-link,
    .mega-menu__rail-button,
    .mega-menu__panel-link,
    .mega-menu__links a,
    .mega-menu__shortcut-link,
    .mega-menu__aux-link,
    .mobile-catalog__close,
    .mobile-catalog__overview-link,
    .mobile-catalog__quick-link,
    .mobile-catalog__index-button,
    .mobile-catalog__catalog-link,
    .mobile-catalog__accordion,
    .mobile-catalog__featured-link,
    .mobile-catalog__group a,
    .breadcrumbs__item a,
    .pagination__link,
    .customer-area__navigation-summary,
    .customer-area__navigation-content a,
    .product-gallery__nav,
    .variant-selector-panel__nav,
    .site-footer__brand-link,
    .site-footer__links a,
    .checkout-status-return__link,
    .cart-sticky-cta__link,
    .cart-sticky-cta__button,
    .button,
    .back-to-top
  ) {
    scale: none !important;
    transition: none !important;
  }

  .app-shell--public :is(
    .site-search__suggestions,
    .site-header__locale-switcher-panel,
    .site-header__utility-panel,
    .site-header__cart-preview,
    .mega-menu__shell,
    .mega-menu__panel,
    .mobile-catalog__backdrop,
    .mobile-catalog__sheet,
    .mobile-catalog__detail-panel
  ) {
    animation: none !important;
    opacity: 1;
    transform: none !important;
  }

  .app-shell--public :is(
    .site-header__locale-switcher-chevron,
    .site-header__utility-chevron,
    .site-header__cart-toggle svg,
    .mobile-catalog__accordion span:last-child,
    .customer-area__navigation-summary svg,
    .product-gallery__thumb,
    .image-modal__thumb
  ) {
    transition: none !important;
  }

  .app-shell--public .product-detail__description-summary::before,
  .app-shell--public .detail-list__summary::before {
    transition: none !important;
  }

  .app-shell--public .product-gallery__thumbs-viewport {
    scroll-behavior: auto;
  }
}
