/* Gfit Cards — custom CSS */

/* Gradient text */
.gradient-text {
  background: linear-gradient(135deg, #4ade80 0%, #22d3ee 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Hero card mockup */
.card-mockup {
  background: linear-gradient(135deg, #166534 0%, #0f4c75 100%);
  border-radius: 16px;
  box-shadow:
    0 25px 50px rgba(0, 0, 0, 0.4),
    0 0 0 1px rgba(255, 255, 255, 0.08) inset;
  position: relative;
  overflow: hidden;
}

.card-mockup::before {
  content: '';
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: radial-gradient(
    ellipse at 60% 40%,
    rgba(74, 222, 128, 0.15) 0%,
    transparent 60%
  );
  pointer-events: none;
}

.card-mockup .shimmer {
  position: absolute;
  top: 0;
  left: -100%;
  width: 60%;
  height: 100%;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(255, 255, 255, 0.06) 50%,
    transparent 100%
  );
  animation: shimmer 3s ease-in-out infinite;
}

@keyframes shimmer {
  0%   { left: -100%; }
  100% { left: 200%;  }
}

/* Accordion transitions */
.accordion-body {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.35s ease, padding 0.2s ease;
}

.accordion-body.open {
  max-height: 300px;
}

/* Pricing row pulse on card change */
@keyframes pricePulse {
  0%   { opacity: 0.4; transform: translateX(-4px); }
  100% { opacity: 1;   transform: translateX(0);    }
}

.price-row-animate {
  animation: pricePulse 0.3s ease forwards;
}

/* Step badge */
.step-badge {
  background: linear-gradient(135deg, #16a34a, #0891b2);
  border-radius: 50%;
  width: 2rem;
  height: 2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 0.875rem;
  color: white;
  flex-shrink: 0;
}

/* Nav glass effect */
.nav-glass {
  background: rgba(3, 7, 18, 0.85);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

/* Mobile menu */
#mobile-menu {
  display: none;
}
#mobile-menu.open {
  display: block;
}

/* Pricing card selected state */
.price-btn {
  transition: all 0.2s ease;
}
.price-btn.selected {
  background: linear-gradient(135deg, #16a34a, #0891b2);
  color: white;
  border-color: transparent;
  box-shadow: 0 4px 20px rgba(22, 163, 74, 0.4);
}

/* Redemption type selector */
.redemption-btn {
  transition: all 0.2s ease;
  cursor: pointer;
}
.redemption-btn.selected {
  background: rgba(22, 163, 74, 0.12);
  border-color: rgba(22, 163, 74, 0.5);
  box-shadow: 0 0 0 1px rgba(22, 163, 74, 0.3);
}

/* Divider line in pricing */
.price-divider {
  border-top: 1px solid rgba(255,255,255,0.12);
}

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

/* Focus styles */
button:focus-visible,
a:focus-visible {
  outline: 2px solid #4ade80;
  outline-offset: 2px;
}

/* QR placeholder (used in /c/ page) */
.qr-placeholder {
  width: 180px;
  height: 180px;
  background: repeating-linear-gradient(
    0deg,
    #e5e7eb 0px,
    #e5e7eb 2px,
    transparent 2px,
    transparent 10px
  ),
  repeating-linear-gradient(
    90deg,
    #e5e7eb 0px,
    #e5e7eb 2px,
    transparent 2px,
    transparent 10px
  );
  border-radius: 8px;
}

/* Tailwind's animate-spin relies on its CDN; this is a safe duplicate */
@keyframes spin {
  to { transform: rotate(360deg); }
}
.animate-spin {
  animation: spin 1s linear infinite;
}

/* Button disabled state */
button:disabled {
  opacity: 0.7;
  cursor: not-allowed;
}

