/* ── Custom styles beyond Tailwind ── */

/* Prose (CKEditor content) */
.prose h1, .prose h2, .prose h3, .prose h4 {
  font-family: 'Sora', sans-serif;
  font-weight: 700;
  color: #111827;
  margin-top: 1.5em;
  margin-bottom: 0.5em;
}
.prose p { margin-bottom: 1em; line-height: 1.75; color: #374151; }
.prose ul, .prose ol { margin: 1em 0 1em 1.5em; }
.prose li { margin-bottom: 0.4em; color: #374151; }
.prose strong { color: #111827; font-weight: 600; }
.prose a { color: #7c3aed; text-decoration: underline; }
.prose blockquote {
  border-left: 4px solid #7c3aed;
  padding-left: 1em;
  margin: 1.5em 0;
  color: #4b5563;
  font-style: italic;
  background: #eff6ff;
  border-radius: 0 8px 8px 0;
  padding: 1em 1.25em;
}
.prose table { width: 100%; border-collapse: collapse; margin: 1.5em 0; font-size: 0.9em; }
.prose th { background: #7c3aed; color: white; padding: 0.75em 1em; text-align: left; }
.prose td { padding: 0.65em 1em; border-bottom: 1px solid #e5e7eb; }
.prose tr:nth-child(even) td { background: #f9fafb; }

/* Line-clamp utilities */
.line-clamp-1 { overflow: hidden; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; }
.line-clamp-2 { overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.line-clamp-3 { overflow: hidden; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }

/* CKEditor overrides */
.django-ckeditor-widget { width: 100% !important; }

/* Form inputs (for use in non-Tailwind contexts) */
input[type="text"].form-input,
input[type="email"].form-input,
input[type="tel"].form-input,
input[type="number"].form-input,
input[type="url"].form-input,
input[type="date"].form-input,
textarea.form-input,
select.form-input {
  width: 100%;
  padding: 0.625rem 1rem;
  border: 1px solid #d1d5db;
  border-radius: 0.5rem;
  font-size: 0.875rem;
  line-height: 1.5;
  outline: none;
  transition: border-color 0.15s, box-shadow 0.15s;
  font-family: 'Inter', sans-serif;
  background-color: white;
}
input[type="text"].form-input:focus,
input[type="email"].form-input:focus,
input[type="tel"].form-input:focus,
input[type="number"].form-input:focus,
input[type="url"].form-input:focus,
input[type="date"].form-input:focus,
textarea.form-input:focus,
select.form-input:focus {
  border-color: #7c3aed;
  box-shadow: 0 0 0 3px rgba(124, 58, 237, 0.15);
}

/* Hero wave animation */
@keyframes wave {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* Smooth scroll offset for sticky nav */
html { scroll-padding-top: 72px; }

/* Skeleton loading */
.skeleton { background: linear-gradient(90deg, #f3f4f6 25%, #e5e7eb 50%, #f3f4f6 75%); background-size: 200%; animation: skeleton-loading 1.5s infinite; border-radius: 4px; }
@keyframes skeleton-loading { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }

/* Custom scrollbar */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: #f1f5f9; }
::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: #94a3b8; }

/* Print styles */
@media print {
  nav, footer, .btn-primary, .btn-accent, #back-to-top, [class*="floating"] { display: none !important; }
}
