/* ── Revenge Works – Custom Styles ── */

/* Smooth scrolling */
html { scroll-behavior: smooth; }

/* Fade-in animation */
.fade-up {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}
.fade-up.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Product card hover */
.product-card {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.product-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 40px rgba(0,0,0,0.12);
}

/* Gradient text utility */
.text-gradient {
  background: linear-gradient(135deg, #dc2626, #f59e0b);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Header scroll shadow */
#main-header.scrolled {
  box-shadow: 0 4px 20px rgba(0,0,0,0.08);
}

/* Hero pattern overlay */
.hero-pattern {
  background-image:
    radial-gradient(circle at 20% 50%, rgba(220,38,38,0.08) 0%, transparent 50%),
    radial-gradient(circle at 80% 20%, rgba(245,158,11,0.06) 0%, transparent 50%),
    radial-gradient(circle at 50% 80%, rgba(16,185,129,0.05) 0%, transparent 50%);
}

/* Testimonial card */
.testimonial-card {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.testimonial-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 30px rgba(0,0,0,0.1);
}

/* FAQ accordion */
.faq-answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.35s ease, padding 0.35s ease;
}
.faq-answer.open {
  max-height: 600px;
}
.faq-chevron {
  transition: transform 0.3s ease;
}
.faq-chevron.rotated {
  transform: rotate(180deg);
}

/* Contact form focus */
.form-input:focus {
  outline: none;
  border-color: #dc2626;
  box-shadow: 0 0 0 3px rgba(220,38,38,0.1);
}

/* Pulse badge animation */
@keyframes pulse-badge {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.05); }
}
.badge-pulse {
  animation: pulse-badge 2s ease-in-out infinite;
}

/* Trust badges strip */
.trust-strip {
  background: linear-gradient(135deg, #0f172a 0%, #1e293b 100%);
}

/* Stripe button loading state */
.btn-loading {
  pointer-events: none;
  opacity: 0.7;
}

/* Print styles */
@media print {
  header, footer, .no-print { display: none !important; }
  body { color: #000; background: #fff; }
}
