/* 
 * Tailwind CSS Extensions and Customizations
 * Load this after tailwindcss CDN
 */

/* Hero section custom styles */
.hero {
  position: relative;
  overflow: hidden;
}

.hero::before {
  position: absolute;
  inset: 0;
  opacity: 0.1;
  content: '';
  z-index: 0;
}

.hero-content {
  position: relative;
  z-index: 10;
}

/* Smooth animations */
@keyframes slideDown {
  from {
    transform: translateY(0);
    opacity: 1;
  }
  to {
    transform: translateY(calc(100% + 1rem));
    opacity: 0;
  }
}

/* Toast animations */
.toast {
  animation: slideUp 0.3s ease-out;
}

@keyframes slideUp {
  from {
    transform: translateY(20px);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}

/* Modal animations */
.modal {
  animation: fadeIn 0.2s ease-in-out;
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

/* Gradient text utility */
.gradient-text {
  color: #111827;
  background: none;
  -webkit-text-fill-color: initial;
  background-clip: border-box;
}

/* Hover lift effect */
.hover-lift {
  transition: all 0.3s ease;
}

.hover-lift:hover {
  transform: translateY(-0.25rem);
}

/* Loading skeleton */
@keyframes shimmer {
  0% {
    background-position: -1000px 0;
  }
  100% {
    background-position: 1000px 0;
  }
}

.skeleton {
  background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
  background-size: 200% 100%;
  animation: shimmer 2s infinite;
}

/* Form input focus states */
.form-input:focus {
  outline: none;
  border-color: #111827;
  box-shadow: 0 0 0 3px rgba(17, 24, 39, 0.1);
}

/* Dropdown animations */
details {
  transition: all 0.3s ease;
}

details[open] summary {
  border-bottom-color: #e5e7eb;
}

/* Responsive text sizes */
@media (max-width: 640px) {
  h1 {
    font-size: 1.875rem;
  }
  
  h2 {
    font-size: 1.5rem;
  }
  
  h3 {
    font-size: 1.25rem;
  }
}
