/* Custom Styles for Program Section Design */

.heading-font {
  font-family: "Nunito", sans-serif;
  font-weight: 800;
}

/* Accordion Styles */
.accordion-item {
  background-color: white;
  border-radius: 1rem;
  margin-bottom: 1rem;
  box-shadow: 0 4px 20px rgba(48, 25, 90, 0.06);
  border: 1px solid #f0f0f0;
  transition: box-shadow 0.3s ease;
}
.accordion-item:hover {
  box-shadow: 0 8px 30px rgba(48, 25, 90, 0.1);
}
.accordion-header {
  padding: 1.5rem;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.accordion-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.5s ease-in-out, padding 0.5s ease-in-out;
  padding: 0 1.5rem;
}
.accordion-content-inner {
  padding-bottom: 1.5rem;
  border-top: 1px solid #eee;
}
.accordion-item.active .accordion-content {
  max-height: 500px; /* Adjust as needed */
}
.accordion-icon {
  transition: transform 0.3s ease;
  color: var(--brand-pink);
}
.accordion-item.active .accordion-icon {
  transform: rotate(135deg);
}

/* Timeline Styles */
.timeline-item {
  position: relative;
  padding-left: 2.5rem;
  padding-bottom: 2rem;
  border-left: 2px solid #e2e8f0;
}
.timeline-item:last-child {
  border-left: 2px solid transparent;
}
.timeline-dot {
  position: absolute;
  left: -0.5rem;
  top: 0;
  height: 1rem;
  width: 1rem;
  border-radius: 50%;
  background-color: var(--brand-pink);
  border: 2px solid white;
}

/* Program Nav */
.program-nav {
  position: sticky;
  top: var(--header-height, 80px);
  z-index: 40;
  transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  /* Mobile horizontal scroll */
  flex-wrap: nowrap;
  overflow-x: auto;
  -ms-overflow-style: none; /* IE and Edge */
  scrollbar-width: none; /* Firefox */
}
.program-nav::-webkit-scrollbar {
  display: none; /* Chrome, Safari, and Opera */
}

/* This rule syncs the program nav with your main header's movement.
           It assumes your main header has an id of "main-header" and that your
           script adds the "nav-only" class to it on scroll.
        */
#main-header.nav-only ~ main .program-nav {
  transform: translateY(calc(-1 * var(--top-bar-height)));
}

.program-nav a.active {
  color: var(--brand-pink);
  border-color: var(--brand-pink);
  font-weight: 600;
}

/* Tab Content */
.program-content {
  display: none;
  animation: fadeIn 0.6s ease-in-out;
}
.program-content.active {
  display: block;
}
@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* CSS Design for Contact from design */
.gradient-text {
  background-clip: text;
  -webkit-background-clip: text;
  color: transparent;
}
/* Custom focus style for inputs if needed, though Tailwind's focus:ring is generally preferred */
.custom-input-focus:focus {
  box-shadow: 0 0 0 2px theme("colors.sky.200"); /* Example custom focus */
}
.map-container iframe {
  border-radius: 0.75rem; /* 12px */
  filter: grayscale(30%) contrast(1.1); /* Subtle map styling */
  transition: filter 0.3s ease-in-out;
}
.map-container:hover iframe {
  filter: grayscale(0%) contrast(1);
}
