/* Extra motion layer (Era-style): scroll progress, lift/shine hovers, link underlines, floating badges */
.scroll-progress { position: fixed; top: 0; left: 0; height: 3px; width: 100%; z-index: 1000; pointer-events: none;
  background: linear-gradient(90deg, #2f7d5b, #8fc9a5); transform: scaleX(0); transform-origin: 0 50%; }

.btn { position: relative; overflow: hidden; transition: transform .45s cubic-bezier(.2,.7,.2,1), box-shadow .45s; }
.btn::after { content: ""; position: absolute; top: 0; left: -80%; width: 50%; height: 100%;
  background: linear-gradient(105deg, transparent, rgba(255,255,255,.35), transparent); transform: skewX(-20deg); transition: left .8s; }
.btn:hover { transform: translateY(-3px); box-shadow: 0 14px 28px -14px rgba(15,41,30,.5); }
.btn:hover::after { left: 130%; }

.product, .pl-cat, .pk-card, .loz-card { transition: transform .6s cubic-bezier(.2,.7,.2,1), box-shadow .6s; }
.product:hover, .pl-cat:hover, .pk-card:hover { transform: translateY(-8px); }
.product img, .pk-card img, .pl-cat img { transition: transform 1.2s cubic-bezier(.2,.7,.2,1); }

.main-nav a, .footer a { background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size .5s cubic-bezier(.2,.7,.2,1); }
.main-nav a:hover, .footer a:hover { background-size: 100% 1px; }

@keyframes floatY { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
.float-slow { animation: floatY 6s ease-in-out infinite; }

.js [data-reveal] { transition-delay: var(--d, 0ms); }

@media (prefers-reduced-motion: reduce) {
  .float-slow, .btn::after { animation: none; transition: none; }
  .scroll-progress { display: none; }
}
