/* V15: perlambat kilau V14 dan aktifkan pada filter kategori produk.
   CSS-only, tidak mengubah interaksi filter maupun data produk. */

/* Satu sapuan lembut setiap 9 detik; jeda panjang antar sapuan. */
main .btn::after,
main .roundbtn::after,
.header .btn::after {
  animation: cms-button-shine-slow 9s ease-in-out infinite !important;
  background: linear-gradient(105deg,
    transparent 35%,
    rgba(255,255,255,.04) 43%,
    rgba(255,255,255,.38) 50%,
    rgba(255,255,255,.04) 57%,
    transparent 65%);
}
main .textlink::after {
  animation-duration: 9s !important;
}
@keyframes cms-button-shine-slow {
  0%, 18% { transform: translateX(-180%); }
  46%, 100% { transform: translateX(180%); }
}

/* PRE-WEDDING, WEDDING, GRADUATION, dan semua filter kategori. */
.filters .filter {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  max-width: 100%;
  white-space: normal;
  overflow-wrap: anywhere;
  transition: box-shadow .25s ease, transform .25s ease;
}
.filters .filter::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  border-radius: inherit;
  background: linear-gradient(105deg,
    transparent 35%,
    rgba(255,255,255,.04) 43%,
    rgba(255,255,255,.50) 50%,
    rgba(255,255,255,.04) 57%,
    transparent 65%);
  transform: translateX(-180%);
  animation: cms-button-shine-slow 9s ease-in-out infinite;
}
.filters .filter:hover,
.filters .filter:focus-visible {
  box-shadow: 0 4px 15px rgba(0,0,0,.14);
}
@media (max-width:600px) {
  .filters { gap: 8px; }
  .filters .filter { padding: 10px 13px; line-height: 1.35; }
}
@media (prefers-reduced-motion:reduce) {
  main .btn::after,
  main .roundbtn::after,
  .header .btn::after,
  main .textlink::after,
  .filters .filter::after {
    animation: none !important;
    display: none !important;
  }
}
