/* Native equivalents of the retained Webflow ix2 action lists.
 * a/a-2: bottle scale; a-11/a-12: catalog scale/rotation.
 * Only descendants of linked tiles move; product detail images stay unchanged. */
.product-tile .prod-t-img {
  transition: transform 100ms ease;
}
.product-tile .prod-t-catalog-img {
  transition: transform 100ms cubic-bezier(.445, .05, .55, .95);
}
@media (prefers-reduced-motion: no-preference) {
  .product-tile:is(:hover, :focus-visible) .prod-t-img {
    transform: scale(1.05);
    transition-duration: 250ms;
    transition-timing-function: cubic-bezier(.445, .05, .55, .95);
  }
  .product-tile:is(:hover, :focus-visible) .prod-t-catalog-img {
    transform: scale(1.1) rotate(2deg);
    transition-duration: 250ms;
  }
  /* a-13: 126px / opacity 0 -> 0px / opacity 1, 250ms outQuint. */
  #cookie-banner[data-enter] {
    animation: cookie-enter 250ms cubic-bezier(.23, 1, .32, 1);
  }
}
@keyframes cookie-enter {
  from { transform: translateY(126px); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}

/* a-3 through a-8: 150ms hero fades. The photograph is the no-JS fallback. */
[data-hero-videos] > .prod-t-vid {
  display: block;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transition: opacity 150ms ease, visibility 0s linear 150ms;
}
[data-hero-videos] > .prod-t-vid.is-active {
  visibility: visible;
  opacity: 1;
  transition-delay: 0s;
}

/* Preserve the exported button styling after replacing nonsemantic controls. */
button.lang-curr, button.menu-button {
  border: 0;
  border-radius: 0;
  background-color: transparent;
}
button.lang-curr { width: 100%; padding-left: 0; padding-right: 0; }
button.menu-button:focus-visible, button.lang-curr:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 3px;
}
@media (min-width: 768px) {
  /* a-14 / a-15: language choices fade in 250ms and out 100ms. */
  [data-interactive] .lang-options {
    opacity: 0;
    visibility: hidden;
    transition: opacity 100ms ease, visibility 0s linear 100ms;
  }
  [data-interactive] .lang-curr[aria-expanded="true"] + .lang-options {
    opacity: 1;
    visibility: visible;
    transition-duration: 250ms, 0s;
    transition-delay: 0s;
  }
}
@media (max-width: 767px) {
  /* Match data-collapse=small and the original 400ms default slide. */
  .navbar[data-interactive] .navbar-menu {
    display: flex;
    position: absolute;
    top: 100%;
    bottom: auto;
    height: calc(100dvh - 60px);
    overflow-y: auto;
    visibility: hidden;
    transform: translateY(calc(-100% - 60px));
    transition: transform 400ms ease, visibility 0s linear 400ms;
  }
  .navbar[data-menu-open] .navbar-menu {
    visibility: visible;
    transform: translateY(0);
    transition-delay: 0s;
  }
  /* Links remain usable if JS never runs; no collapsed, inert menu. */
  html:not(.js) .navbar:not([data-interactive]) { position: relative; background: var(--black); height: auto; }
  html:not(.js) .navbar:not([data-interactive]) .navbar-menu { display: flex; height: auto; float: none; }
  html:not(.js) .navbar:not([data-interactive]) .menu-button { display: none; }
}
/* Initial enhancement must not animate from the visible no-JS fallback. */
.navbar[data-interactive]:not([data-motion-ready]) .navbar-menu,
.navbar[data-interactive]:not([data-motion-ready]) .lang-options { transition: none; }
@media (prefers-reduced-motion: reduce) {
  .product-tile .prod-t-img, .product-tile .prod-t-catalog-img,
  [data-hero-videos] > .prod-t-vid, [data-interactive] .lang-options,
  .navbar[data-interactive] .navbar-menu {
    transition: none !important;
    animation: none !important;
  }
  .w-background-video > video { visibility: hidden; }
}
