/* ProposalToolbox — Custom styles layered on top of Tailwind */

[x-cloak] { display: none !important; }

html { scroll-behavior: smooth; }

body { color: #2D2D2D; }

/* ---- Scroll reveal ---- */
.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* ---- Hero gradient ---- */
.hero-gradient {
  background: radial-gradient(circle at 15% 20%, rgba(15,169,104,0.10), transparent 45%),
              radial-gradient(circle at 85% 0%, rgba(30,58,95,0.08), transparent 40%),
              #ffffff;
}

/* ---- Product card hover ---- */
.product-card {
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.35s ease;
}
.product-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 40px -12px rgba(18, 36, 55, 0.18);
}

/* ---- Buttons ---- */
.btn-primary {
  background: linear-gradient(135deg, #0FA968, #0c8f57);
  transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
}
.btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 24px -8px rgba(15,169,104,0.5);
  filter: brightness(1.05);
}
.btn-primary:active { transform: translateY(0); }

.btn-outline {
  transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

/* ---- Badge shimmer for featured products ---- */
@keyframes shimmer {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}
.badge-shimmer {
  background: linear-gradient(110deg, #0FA968 40%, #4fd39a 50%, #0FA968 60%);
  background-size: 200% 100%;
  animation: shimmer 3s ease-in-out infinite;
}

/* ---- Section fade-in stagger helper ---- */
.stagger > * { animation: fadeInUp 0.6s ease both; }
.stagger > *:nth-child(1) { animation-delay: 0.05s; }
.stagger > *:nth-child(2) { animation-delay: 0.12s; }
.stagger > *:nth-child(3) { animation-delay: 0.19s; }
.stagger > *:nth-child(4) { animation-delay: 0.26s; }
.stagger > *:nth-child(5) { animation-delay: 0.33s; }
.stagger > *:nth-child(6) { animation-delay: 0.40s; }
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(16px); }
  to { opacity: 1; transform: translateY(0); }
}

/* ---- Line clamp utility (older browser fallback) ---- */
.line-clamp-2 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.line-clamp-3 {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ---- Prose content styling (blog posts, terms, privacy, refund policy) ----
   These pages inject raw HTML (h2/p/ul/a/strong) into a .prose wrapper.
   Tailwind's CDN build does NOT include the Typography plugin, so we style
   these tags explicitly here instead of relying on prose/prose-navy classes. */
.prose h2 {
  font-family: 'Poppins', sans-serif;
  font-weight: 700;
  color: #1E3A5F;
  font-size: 1.5rem;
  line-height: 1.3;
  margin-top: 2rem;
  margin-bottom: 0.85rem;
}
.prose h2:first-child { margin-top: 0; }
.prose h3 {
  font-family: 'Poppins', sans-serif;
  font-weight: 600;
  color: #1E3A5F;
  font-size: 1.2rem;
  margin-top: 1.5rem;
  margin-bottom: 0.6rem;
}
.prose p {
  margin-bottom: 1.1rem;
  line-height: 1.75;
}
.prose ul, .prose ol {
  margin: 0 0 1.1rem 1.4rem;
  padding: 0;
}
.prose ul { list-style: disc; }
.prose ol { list-style: decimal; }
.prose li { margin-bottom: 0.5rem; line-height: 1.7; }
.prose strong { font-weight: 700; color: #2D2D2D; }
.prose a {
  color: #0FA968;
  font-weight: 600;
  text-decoration: none;
  border-bottom: 1px solid rgba(15,169,104,0.35);
  transition: border-color 0.2s ease;
}
.prose a:hover { border-color: #0FA968; }
.prose > *:last-child { margin-bottom: 0; }


.skeleton {
  background: linear-gradient(90deg, #f0f0f0 25%, #e8e8e8 37%, #f0f0f0 63%);
  background-size: 400% 100%;
  animation: skeleton-loading 1.4s ease infinite;
}
@keyframes skeleton-loading {
  0% { background-position: 100% 50%; }
  100% { background-position: 0 50%; }
}
