/* ===== JFEVAL — Custom CSS ===== */

/* Fonts */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=Playfair+Display:ital,wght@0,700;0,800;0,900;1,700;1,800&display=swap');

* { box-sizing: border-box; }

body {
  font-family: 'Inter', sans-serif;
  -webkit-font-smoothing: antialiased;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

main { flex: 1; }

/* Scrollbar */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: #f1f5f9; }
::-webkit-scrollbar-thumb { background: #1A1A7A; border-radius: 99px; }

/* Custom scrollbar utility */
.custom-scrollbar::-webkit-scrollbar { width: 4px; }
.custom-scrollbar::-webkit-scrollbar-thumb { background: #F27D26; border-radius: 99px; }

/* Prose styles */
.prose p { margin-bottom: 1.25rem; line-height: 1.8; color: #475569; }
.prose h4 { font-family: 'Playfair Display', serif; font-weight: 700; font-size: 1.5rem; color: #1A1A7A; margin: 2rem 0 1rem; }
.prose ul { list-style: disc; padding-left: 1.5rem; margin-bottom: 1.25rem; }
.prose ul li { margin-bottom: 0.5rem; color: #475569; }
.prose strong { color: #1A1A7A; font-weight: 700; }

/* Slide transition */
.slide { transition: opacity 1s ease; }

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

/* Partners scroll */
.partners-scroll {
  display: flex;
  align-items: center;
  gap: 6rem;
  white-space: nowrap;
  will-change: transform;
}

/* Dropdown nav hover */
.group:hover > .group-hover\:opacity-100 { opacity: 1; visibility: visible; }
.group:hover > .group-hover\:visible { visibility: visible; }

/* Hero gradient text */
.text-highlight { color: #FFC72C; }

/* Smooth transitions */
a, button { transition: all 0.2s ease; }

/* Animations */
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(30px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes pulse-dot {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.5); opacity: 0.5; }
}

.animate-pulse { animation: pulse-dot 2s ease-in-out infinite; }

/* Mobile menu backdrop */
#mobile-menu { transition: opacity 0.3s ease; }

/* Focus styles */
input:focus, textarea:focus, select:focus {
  outline: none;
  box-shadow: 0 0 0 4px rgba(242, 125, 38, 0.1);
  border-color: #F27D26;
}

/* Card hover effects */
.hover\:-translate-y-2:hover { transform: translateY(-8px); }
.hover\:-translate-y-1:hover { transform: translateY(-4px); }

/* Image zoom on hover */
.group:hover .group-hover\:scale-110 { transform: scale(1.1); }
.group:hover .group-hover\:scale-105 { transform: scale(1.05); }

/* Transition utilities */
.transition-transform { transition: transform 0.5s ease; }
.transition-opacity { transition: opacity 0.5s ease; }

/* Grid gap utilities */
.gap-10 { gap: 2.5rem; }
.gap-12 { gap: 3rem; }
.gap-16 { gap: 4rem; }
.gap-20 { gap: 5rem; }

/* Backdrop blur */
.backdrop-blur-md { backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
.backdrop-blur-sm { backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); }

/* Text shadow for hero */
.text-shadow { text-shadow: 0 2px 4px rgba(0,0,0,0.1); }

/* Responsive typography */
@media (max-width: 768px) {
  .text-7xl { font-size: 3rem; }
  .text-6xl { font-size: 2.5rem; }
  .text-5xl { font-size: 2rem; }
  .md\:text-7xl { font-size: 4rem; }
  .rounded-\[4rem\] { border-radius: 2rem; }
  .rounded-\[3rem\] { border-radius: 1.5rem; }
  .p-24 { padding: 2rem; }
}

/* Print styles */
@media print {
  nav, footer, button { display: none !important; }
  .shadow-2xl { box-shadow: none !important; }
}
