/* Shivira v2 — motion & interaction layer */
html { scroll-behavior: smooth; }

/* Scroll reveal */
.rv {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 1s cubic-bezier(.22,.61,.36,1), transform 1s cubic-bezier(.22,.61,.36,1);
  transition-delay: var(--d, 0ms);
  will-change: opacity, transform;
}
.rv.in { opacity: 1; transform: none; }
.rv-left { transform: translateX(-32px); }
.rv-right { transform: translateX(32px); }
.rv-left.in, .rv-right.in { transform: none; }

/* Hero entrance sequence */
.hero-seq > * { opacity: 0; animation: heroUp 1.1s cubic-bezier(.22,.61,.36,1) forwards; }
.hero-seq > *:nth-child(1) { animation-delay: .15s; }
.hero-seq > *:nth-child(2) { animation-delay: .3s; }
.hero-seq > *:nth-child(3) { animation-delay: .5s; }
.hero-seq > *:nth-child(4) { animation-delay: .68s; }
@keyframes heroUp { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: none; } }

/* Nav elevation on scroll */
nav { transition: box-shadow .5s ease; }
nav.nav-scrolled { box-shadow: 0 10px 34px rgba(10,20,90,.07); }

/* Image zoom on hover */
.zoomwrap { overflow: hidden; }
.zoomwrap img { transition: transform 1.3s cubic-bezier(.22,.61,.36,1); }
.zoomwrap:hover img { transform: scale(1.05); }

/* Buttons & links */
.btn-lift { transition: transform .45s cubic-bezier(.22,.61,.36,1), box-shadow .45s ease, background-color .35s ease, opacity .35s ease; }
.btn-lift:hover { transform: translateY(-2px); box-shadow: 0 14px 30px rgba(10,20,90,.18); }
.link-slide .arr { display: inline-block; transition: transform .4s ease; }
.link-slide:hover .arr { transform: translateX(6px); }
.underline-grow { position: relative; }
.underline-grow::after { content: ''; position: absolute; left: 0; bottom: -3px; height: 1px; width: 100%; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform .5s cubic-bezier(.22,.61,.36,1); }
.underline-grow:hover::after { transform: scaleX(1); }

/* Divider grow-in */
.divider-grow { transform: scaleX(0); transition: transform 1.2s cubic-bezier(.22,.61,.36,1) .2s; }
.divider-grow.in { transform: scaleX(1); }

/* Gentle float for icon tiles */
.tile-hover { transition: transform .5s ease, background-color .5s ease; }
.tile-hover:hover { transform: translateY(-3px); background-color: rgba(255,255,255,.85); }

/* Booking form */
.form-input, .form-select, .form-textarea { transition: border-color .4s ease; }
.time-btn { transition: all .35s cubic-bezier(.22,.61,.36,1); }
.time-btn:hover { transform: translateY(-1px); }

/* Mobile menu slide */
#mobile-menu { transition: opacity .35s ease, transform .35s ease; }
#mobile-menu.menu-anim { opacity: 0; transform: translateY(-8px); }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .rv, .rv-left, .rv-right { opacity: 1; transform: none; transition: none; }
  .hero-seq > * { animation: none; opacity: 1; }
  .divider-grow { transform: none; transition: none; }
  .zoomwrap img, .btn-lift, .link-slide .arr, .time-btn { transition: none; }
}
