/* Reference-inspired rhythm, with the approved composition unchanged. */
:root { --ref-motion-ease: cubic-bezier(.22,.61,.36,1); }
.ref-slider.has-motion { overflow: hidden; }
.ref-slider.has-motion .ref-slide {
  display: block; opacity: 0; visibility: hidden; pointer-events: none;
  transition: opacity 1000ms ease, visibility 1000ms;
}
.ref-slider.has-motion .ref-slide.is-current { opacity: 1; visibility: visible; pointer-events: auto; z-index: 1; }
.ref-slider.has-motion .ref-slide.is-current .ref-slide__image { animation: ref-photo-drift 8200ms ease-out both; }
.ref-slider.has-motion .ref-slide.is-current .ref-slide__copy > * { animation: ref-copy-in 1000ms var(--ref-motion-ease) both; }
.ref-slider.has-motion .ref-slide.is-current .ref-slide__copy > p { animation-delay: 120ms; }
.ref-slider.has-motion .ref-slide.is-current .ref-slide__copy > a { animation-delay: 240ms; }
.ref-slider.is-motion-paused .ref-slide.is-current .ref-slide__image { animation-play-state: paused; }
.ref-slider__controls button.ref-slider__pause { width: auto; min-width: 64px; padding: 0 12px; border-radius: 20px; font-size: 13px; letter-spacing: .05em; }
.ref-slider__controls button.ref-slider__pause:disabled { cursor: default; opacity: .85; }
.ref-slider.has-motion .ref-slider__dots button { width: 35px; }
.ref-slider.has-motion .ref-slider__dots button::after { width: 24px; height: 2px; top: 19px; left: 5px; border-radius: 0; border: 0; }
.ref-slider.has-motion .ref-slider__dots button[aria-pressed="true"]::after { height: 3px; background: var(--ref-accent); }
.motion-enter { animation: ref-copy-in 850ms var(--ref-motion-ease) both; animation-delay: var(--reveal-delay,0ms); }
.motion-enter--image { animation-name: ref-image-in; animation-duration: 1100ms; }
.motion-enter--card { animation-name: ref-card-in; animation-duration: 700ms; }
.ref-overlap > figure, .ref-feature figure, .ref-consult__image, .ref-about-story figure, .product-card__media { overflow: hidden; }
.ref-hero-button, .ref-button { transition: color 250ms, background-color 250ms, transform 350ms var(--ref-motion-ease), box-shadow 350ms; }
.ref-text-link { display: inline-block; transition: transform 350ms var(--ref-motion-ease); }
.product-card__media img, .ref-scene .rd-scene__image { transition: transform 750ms var(--ref-motion-ease); }
.product-card__body { transition: transform 450ms var(--ref-motion-ease), background-color 450ms; }
@media (hover: hover) and (pointer: fine) {
  .ref-button:hover { transform: translateY(-3px); box-shadow: 0 7px 18px #00000012; }
  .product-card__link:hover .product-card__media img, .ref-scene:hover .rd-scene__image { transform: scale(1.03); }
  .product-card__link:hover .product-card__body { transform: translateY(-6px); background: #fff; }
  .ref-scene:hover .ref-text-link { transform: translateX(6px); }
}
@keyframes ref-photo-drift { from { transform: scale(1); } to { transform: scale(1.03); } }
@keyframes ref-copy-in { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: translateY(0); } }
@keyframes ref-card-in { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: translateY(0); } }
@keyframes ref-image-in { from { opacity: .3; clip-path: inset(0 8% 0 0); } to { opacity: 1; clip-path: inset(0); } }
@media (max-width: 600px) {
  .motion-enter { animation-duration: 650ms; }
  .ref-slider.has-motion .ref-slide.is-current .ref-slide__copy > * { animation-duration: 750ms; }
  .ref-slider__controls { gap: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  .motion-enter, .ref-slider.has-motion .ref-slide.is-current .ref-slide__image,
  .ref-slider.has-motion .ref-slide.is-current .ref-slide__copy > * { animation: none !important; }
  .ref-slider.has-motion .ref-slide, .ref-hero-button, .ref-button, .ref-text-link,
  .product-card__media img, .product-card__body, .ref-scene .rd-scene__image { transition: none !important; transform: none !important; }
}
@media print {
  .motion-enter { animation: none !important; }
  .ref-slider.has-motion .ref-slide:not(.is-current), .ref-slider__controls { display: none !important; }
}
