
:where(button, input[type="submit"], input[type="button"], input[type="reset"],
       .button, .btn, .button-update, .button-reset, .button-delete, .button-primary,
       .add-cart-btn, .tag-add-btn, .contact-form-submit, .quantity-stepper-btn):where(:not(:disabled):not([aria-disabled="true"]):not(.product-image-open)) {
  transition-property: scale;
  transition-duration: 0.14s;
  transition-timing-function: cubic-bezier(0.3, 0.7, 0.4, 1.4);
}
:where(button, input[type="submit"], input[type="button"], input[type="reset"],
       .button, .btn, .button-update, .button-reset, .button-delete, .button-primary,
       .add-cart-btn, .tag-add-btn, .contact-form-submit, .quantity-stepper-btn):where(:not(:disabled):not([aria-disabled="true"]):not(.product-image-open):active) {
  scale: 0.965;
}

.cart-area.cart-bump .cart-icon {
  animation: cart-icon-nudge 0.7s cubic-bezier(0.3, 0.9, 0.4, 1) both;
}
.cart-area.cart-bump .cart-count {
  animation: cart-count-pop 0.6s cubic-bezier(0.3, 1.6, 0.5, 1) 0.08s both;
}
@keyframes cart-icon-nudge {
  0%   { rotate: 0deg; }
  25%  { rotate: -11deg; }
  50%  { rotate: 8deg; }
  75%  { rotate: -3deg; }
  100% { rotate: 0deg; }
}
@keyframes cart-count-pop {
  0%   { scale: 1; }
  40%  { scale: 1.4; }
  100% { scale: 1; }
}

.value-tick {
  animation: value-tick 0.38s cubic-bezier(0.2, 0.8, 0.3, 1) both;
}
@keyframes value-tick {
  0%   { opacity: 0.25; translate: 0 5px; }
  100% { opacity: 1; translate: 0 0; }
}

:where(.nf-sale-badge) {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.nf-sale-badge::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 60%;
  pointer-events: none;
  background: linear-gradient(
    105deg,
    transparent 0%,
    rgba(255, 255, 255, 0) 20%,
    rgba(255, 255, 255, 0.55) 50%,
    rgba(255, 255, 255, 0) 80%,
    transparent 100%
  );
  translate: -120% 0;
  animation: sale-badge-glint 6s ease-in-out calc(1.2s + var(--sk-delay, 0s) * 2) infinite both;
}
@keyframes sale-badge-glint {
  0%   { translate: -120% 0; }
  14%  { translate: 220% 0; }
  100% { translate: 220% 0; }
}

.frame.is-picked {
  animation: size-pick 0.45s cubic-bezier(0.3, 1.5, 0.5, 1) both;
}
@keyframes size-pick {
  0%   { scale: 1; }
  40%  { scale: 1.16; }
  100% { scale: 1; }
}
#quantity.is-bumped {
  animation: qty-bump 0.32s cubic-bezier(0.3, 1.5, 0.5, 1) both;
}
@keyframes qty-bump {
  0%   { scale: 1; }
  45%  { scale: 1.12; }
  100% { scale: 1; }
}


  html.site-effects body:not(.admin-tools-active) .site-breadcrumbs li {
    opacity: 0;
    translate: -8px 0;
    transition: opacity 0.32s ease, translate 0.42s cubic-bezier(0.22, 1, 0.36, 1);
  }

  html.site-effects body:not(.admin-tools-active) .site-breadcrumbs li.is-in-view {
    opacity: 1;
    translate: 0 0;
  }

  html.site-effects body:not(.admin-tools-active) .site-breadcrumbs li:nth-child(2) { transition-delay: 0.06s; }
  html.site-effects body:not(.admin-tools-active) .site-breadcrumbs li:nth-child(3) { transition-delay: 0.12s; }
  html.site-effects body:not(.admin-tools-active) .site-breadcrumbs li:nth-child(4) { transition-delay: 0.18s; }

    html.site-effects body:not(.admin-tools-active) :is(.gallery-hero-copy, .slogan) {
    animation: fx-slogan-fade-in 0.68s ease 50ms both;
  }

  @keyframes fx-slogan-fade-in {
    from { opacity: 0; }
    to { opacity: 1; }
  }

    html.site-effects body:not(.admin-tools-active) .gallery-service-strip {
    opacity: 0;
    translate: 0 18px;
    transition: opacity 0.5s ease, translate 0.65s cubic-bezier(0.22, 1, 0.36, 1);
  }

  html.site-effects body:not(.admin-tools-active) .gallery-service-strip.is-in-view {
    opacity: 1;
    translate: 0 0;
  }

  body:not(.admin-tools-active) .gallery-service-item {
    transition: background-color 0.25s ease, box-shadow 0.25s ease, translate 0.25s ease;
  }

  body:not(.admin-tools-active) .gallery-service-item:hover {
    translate: 0 -3px;
    background: color-mix(in srgb, var(--element-bg, #fff) 58%, transparent);
    box-shadow: 0 10px 24px color-mix(in srgb, var(--page-text, #111) 11%, transparent);
  }

  body:not(.admin-tools-active) .gallery-service-icon {
    transition: rotate 0.45s cubic-bezier(0.22, 1, 0.36, 1), scale 0.32s ease;
  }

  body:not(.admin-tools-active) .gallery-service-item:hover .gallery-service-icon {
    rotate: -5deg;
    scale: 1.08;
  }

    @media (hover: hover) and (pointer: fine) {
    body:not(.admin-tools-active) .nf-card-wrap:hover {
      translate: 0 -5px;
    }
  }

    body:not(.admin-tools-active) :where(.gallery-hero-cta, .add-cart-btn, .cart-hover-checkout, .contact-form-submit) {
    position: relative;
    overflow: hidden;
    isolation: isolate;
  }

  body:not(.admin-tools-active) :where(.gallery-hero-cta, .add-cart-btn, .cart-hover-checkout, .contact-form-submit)::before {
    content: "";
    position: absolute;
    inset: -70% auto -70% -45%;
    z-index: 2;
    width: 28%;
    pointer-events: none;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.34), transparent);
    rotate: 14deg;
    translate: -220% 0;
  }

  body:not(.admin-tools-active) :where(.gallery-hero-cta, .add-cart-btn, .cart-hover-checkout, .contact-form-submit):is(:hover, :focus-visible)::before {
    animation: fx-button-sheen 0.7s ease-out both;
  }

  @keyframes fx-button-sheen {
    from { translate: -220% 0; }
    to { translate: 650% 0; }
  }

    .lang-menu:is(.open, :hover) .lang-dropdown,
  .cart-menu.has-items:is(:hover, :focus-within) .cart-hover-panel {
    animation: fx-popup-unfold 0.24s cubic-bezier(0.22, 1, 0.36, 1) both;
    transform-origin: top right;
  }

  @keyframes fx-popup-unfold {
    from { opacity: 0; clip-path: inset(0 0 18% 0 round var(--site-radius, 8px)); }
    to { opacity: 1; clip-path: inset(0 0 0 0 round var(--site-radius, 8px)); }
  }

    html.site-effects body:not(.admin-tools-active) .product-info .customer-view > * {
    translate: 12px 0;
    transition: translate 0.52s cubic-bezier(0.22, 1, 0.36, 1);
  }

  html.site-effects body:not(.admin-tools-active) .product-info .customer-view > *.is-in-view {
    translate: 0 0;
  }

  html.site-effects body:not(.admin-tools-active) .product-info .customer-view > :nth-child(2) { transition-delay: 0.04s; }
  html.site-effects body:not(.admin-tools-active) .product-info .customer-view > :nth-child(3) { transition-delay: 0.08s; }
  html.site-effects body:not(.admin-tools-active) .product-info .customer-view > :nth-child(4) { transition-delay: 0.12s; }
  html.site-effects body:not(.admin-tools-active) .product-info .customer-view > :nth-child(n+5) { transition-delay: 0.16s; }
