/* Harbor & Vine — premium static enhancements (works with Tailwind CDN) */

:root {
  --h-navy: #0f2147;
  --h-sand: #e8dfd2;
  --h-terracotta: #c4634f;
  --h-gold: #c9a962;
}

html {
  scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  .hv-fade-up,
  .hv-parallax,
  .hv-shine {
    animation: none !important;
    transform: none !important;
    opacity: 1 !important;
  }
}

body {
  font-feature-settings: "kern" 1, "liga" 1;
}

.hv-parallax {
  will-change: transform;
  transition: transform 0.12s linear;
}

/* Subtle ambient grain */
.hv-noise::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.04;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E");
}

.hv-gold-rule {
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--h-gold), transparent);
}

.hv-card {
  transition:
    transform 0.35s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.35s ease;
}

.hv-card:hover {
  transform: translateY(-4px);
  box-shadow:
    0 24px 50px rgba(15, 33, 71, 0.12),
    0 0 0 1px rgba(201, 169, 98, 0.12);
}

.hv-img-zoom {
  overflow: hidden;
}

.hv-img-zoom img {
  transition: transform 0.65s cubic-bezier(0.22, 1, 0.36, 1);
}

.hv-card:hover .hv-img-zoom img {
  transform: scale(1.05);
}

.hv-btn-shine {
  position: relative;
  overflow: hidden;
}

.hv-btn-shine::after {
  content: "";
  position: absolute;
  inset: -40%;
  transform: rotate(12deg) translateX(-120%);
  background: linear-gradient(
    90deg,
    transparent,
    rgba(255, 255, 255, 0.35),
    transparent
  );
  transition: transform 0.7s ease;
}

.hv-btn-shine:hover::after {
  transform: rotate(12deg) translateX(120%);
}

.hv-fade-up {
  opacity: 0;
  transform: translateY(22px);
  animation: hvFadeUp 0.85s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

@keyframes hvFadeUp {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.hv-delay-1 {
  animation-delay: 0.12s;
}
.hv-delay-2 {
  animation-delay: 0.22s;
}
.hv-delay-3 {
  animation-delay: 0.34s;
}

/* Cart drawer */
#hv-cart-overlay {
  transition: opacity 0.25s ease;
}
#hv-cart-panel {
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

/* Cookie bar */
#hv-cookie-bar {
  animation: hvCookieIn 0.45s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

@keyframes hvCookieIn {
  from {
    transform: translateY(110%);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}

.hv-modal-backdrop {
  backdrop-filter: blur(6px);
}

/* Mobile nav drawer */
#hv-mobile-panel {
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

/* Utilities */
.text-balance {
  text-wrap: balance;
}
