/* Flexbox-based 4-Step Process section with equal heights and aligned number badges */

/* Grid layout with equal heights */
section#process .grid.lg\\:grid-cols-4 {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 1.5rem !important;
  align-items: stretch !important;
}

@media (min-width: 768px) {
  section#process .grid.lg\\:grid-cols-4 {
    grid-template-columns: 1fr 1fr !important;
    gap: 2rem !important;
  }
}

@media (min-width: 1024px) {
  section#process .grid.lg\\:grid-cols-4 {
    grid-template-columns: 1fr 1fr 1fr 1fr !important;
    gap: 2rem !important;
  }
}

/* Ensure all step cards have equal heights */
section#process .grid > div {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
}

/* Step card styling with flexbox layout - no extra padding */
section#process .bg-white.rounded-xl {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  padding: 2rem !important;
  border: 1px solid #e5e7eb !important;
  border-radius: 1rem !important;
  background: white !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) !important;
  transition: box-shadow 0.3s ease !important;
}

section#process .bg-white.rounded-xl:hover {
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1) !important;
}

/* Icon styling at the top */
section#process .bg-blue-600.w-16.h-16.rounded-full {
  width: 3.5rem !important;
  height: 3.5rem !important;
  background-color: #2563eb !important;
  border-radius: 50% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 auto 0.75rem auto !important;
  flex-shrink: 0 !important;
}

/* Timeline badge styling */
section#process .bg-blue-100.text-blue-600 {
  background-color: #dbeafe !important;
  color: #2563eb !important;
  font-size: 0.75rem !important;
  font-weight: 600 !important;
  padding: 0.25rem 0.75rem !important;
  border-radius: 9999px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 auto 1.25rem auto !important;
  flex-shrink: 0 !important;
}

/* Title styling */
section#process .text-xl.font-semibold {
  font-size: 1.125rem !important;
  font-weight: 600 !important;
  color: #111827 !important;
  text-align: center !important;
  margin-bottom: 0.75rem !important;
  line-height: 1.4 !important;
  flex-shrink: 0 !important;
}

/* Description styling - flex-grow to fill available space */
section#process .text-gray-600.leading-relaxed {
  color: #4b5563 !important;
  font-size: 0.875rem !important;
  line-height: 1.5 !important;
  text-align: center !important;
  flex-grow: 1 !important;
  display: flex !important;
  align-items: flex-start !important;
  justify-content: center !important;
  margin-bottom: 0 !important;
}

/* Number badge - in flow, not absolute positioned */
section#process .bg-blue-600.text-white.w-8.h-8.rounded-full {
  position: static !important;
  width: 2rem !important;
  height: 2rem !important;
  background-color: #2563eb !important;
  color: white !important;
  border-radius: 50% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 0.875rem !important;
  font-weight: 700 !important;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1) !important;
  margin: 1rem auto 0 auto !important;
  flex-shrink: 0 !important;
}

/* Ensure text doesn't overlap with number badge */
section#process .h-40 {
  height: auto !important;
  min-height: auto !important;
}

/* Mobile responsive adjustments */
@media (max-width: 768px) {
  section#process .bg-white.rounded-xl {
    padding: 1.5rem !important;
  }
  
  section#process .text-xl.font-semibold {
    font-size: 1rem !important;
  }
  
  section#process .text-gray-600.leading-relaxed {
    font-size: 0.8rem !important;
  }
  
  section#process .bg-blue-600.text-white.w-8.h-8.rounded-full {
    width: 1.75rem !important;
    height: 1.75rem !important;
    font-size: 0.75rem !important;
  }
}

/* Large desktop refinements */
@media (min-width: 1024px) {
  section#process .text-xl.font-semibold {
    font-size: 1.25rem !important;
  }
  
  section#process .text-gray-600.leading-relaxed {
    font-size: 0.9rem !important;
  }
}

/* ===== SCROLL-BASED HEADER BEHAVIOR ===== */

/* Target the existing header/navbar */
header, nav, .sticky, [class*="sticky"], [class*="fixed"] {
  transition: transform 0.3s ease !important;
  will-change: transform !important;
}

/* Hide header on scroll down */
header.header-hidden, nav.header-hidden, .header-hidden {
  transform: translateY(-100%) !important;
}

/* Show header on scroll up */
header.header-visible, nav.header-visible, .header-visible {
  transform: translateY(0) !important;
}

/* Ensure header has proper z-index and positioning */
header, nav, .sticky, [class*="sticky"] {
  z-index: 50 !important;
  position: sticky !important;
  top: 0 !important;
}

/* ===== MOBILE MENU STYLING ===== */

/* Mobile menu overlay */
.mobile-menu-overlay {
  z-index: 60 !important;
}

/* Mobile menu background dim */
.mobile-menu-bg {
  background-color: rgba(0, 0, 0, 0.4) !important;
}

/* Mobile menu drawer */
.mobile-menu-drawer {
  background: white !important;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25) !important;
  border-radius: 0 !important;
}

/* Mobile nav links */
.mobile-nav-link {
  transition: background-color 0.2s ease !important;
}

.mobile-nav-link:hover {
  background-color: #f3f4f6 !important;
}

/* Mobile menu button styling */
.mobile-menu-btn {
  transition: background-color 0.2s ease !important;
}

.mobile-menu-btn:hover {
  background-color: #f3f4f6 !important;
}

/* Ensure mobile menu is hidden on desktop */
@media (min-width: 768px) {
  .mobile-menu-overlay {
    display: none !important;
  }
}

/* Body scroll lock when mobile menu is open */
body.overflow-hidden {
  overflow: hidden !important;
}