@import url('https://fonts.googleapis.com/css2?family=Dancing+Script:wght@600&family=Nunito:wght@400;600;700&family=Rowdies:wght@300;400;700&display=swap');

:root {
  --primary-teal: #017D85;
  --primary-teal-hover: #01656c;
  --secondary-peach: #FFBE8D;
  --bg-cream: #FCF7EE;
  --text-dark: #020202;
  --white: #FFFFFF;
}

body {
  font-family: 'Nunito', sans-serif;
  color: var(--text-dark);
  background-color: var(--bg-cream);
  overflow-x: hidden;
}

h1,
h2,
h3,
h4,
h5,
h6,
.navbar-brand {
  font-family: 'Rowdies', display;
}

.text-cursive {
  font-family: 'Dancing Script', cursive;
  color: var(--primary-teal);
}

.text-teal {
  color: var(--primary-teal) !important;
}

.text-peach {
  color: var(--secondary-peach) !important;
}

.bg-cream {
  background-color: var(--bg-cream) !important;
}

/* Navbar */
.navbar {
  background-color: var(--white);
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
  border-radius: 0 0 30px 30px;
  padding: 15px 0;
}

.nav-link {
  font-weight: 600;
  color: var(--text-dark);
  transition: color 0.3s;
  font-size: 1.1rem;
}

.nav-link:hover {
  color: var(--primary-teal);
}

.btn-primary-custom {
  background-color: var(--primary-teal);
  color: var(--white);
  border-radius: 50px;
  padding: 12px 30px;
  font-weight: 600;
  border: none;
  transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
  box-shadow: 0 4px 10px rgba(1, 125, 133, 0.3);
  display: inline-block;
  text-decoration: none;
}

.btn-primary-custom:hover {
  background-color: var(--primary-teal-hover);
  color: var(--white);
  transform: translateY(-5px);
  box-shadow: 0 8px 20px rgba(1, 125, 133, 0.4);
}

.btn-secondary-custom {
  background-color: var(--secondary-peach);
  color: var(--text-dark);
  border-radius: 50px;
  padding: 12px 30px;
  font-weight: 600;
  border: none;
  transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
  display: inline-block;
  text-decoration: none;
}

.btn-secondary-custom:hover {
  background-color: #ffaa6e;
  transform: translateY(-5px);
  box-shadow: 0 8px 20px rgba(255, 190, 141, 0.4);
}

/* Hero Section */
.hero-section {
  position: relative;
  padding: 120px 0 80px 0;
  overflow: visible;
  background-color: var(--bg-cream);
}

.hero-blob {
  position: absolute;
  top: -100px;
  right: -50px;
  width: 500px;
  height: 500px;
  background: var(--secondary-peach);
  border-radius: 40% 60% 70% 30% / 40% 50% 60% 50%;
  animation: blob-bounce 10s infinite alternate;
  z-index: 0;
  opacity: 0.5;
}

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

.hero-img {
  border-radius: 30px 100px 30px 100px;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
  animation: float 6s ease-in-out infinite;
  max-width: 100%;
  border: 8px solid var(--white);
}

/* Cards */
.custom-card {
  background: var(--white);
  border-radius: 30px;
  border: none;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
  transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
  overflow: visible;
  position: relative;
  z-index: 1;
}

.custom-card:hover {
  transform: translateY(-15px);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
}

.card-icon-wrap {
  width: 80px;
  height: 80px;
  background-color: var(--secondary-peach);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 35px;
  color: var(--white);
  margin: -40px auto 20px auto;
  position: relative;
  border: 6px solid var(--white);
  transition: transform 0.3s;
}

.custom-card:hover .card-icon-wrap {
  transform: scale(1.1) rotate(10deg);
}

/* Wave Separator */
.wave-container {
  position: relative;
  width: 100%;
  overflow: hidden;
  line-height: 0;
  background-color: var(--bg-cream);
}

.wave-container svg {
  position: relative;
  display: block;
  width: calc(100% + 1.3px);
  height: 120px;
}

.wave-bg {
  fill: var(--white);
}

/* Impact Boxes */
.impact-box {
  border-radius: 20px;
  padding: 30px 20px;
  text-align: center;
  transition: transform 0.3s;
  height: 100%;
  border: 4px solid var(--white);
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.05);
}

.impact-box:hover {
  transform: translateY(-10px);
}

.impact-number {
  font-size: 3.5rem;
  font-weight: 700;
  font-family: 'Rowdies', display;
  margin-bottom: 10px;
  line-height: 1;
}

.bg-teal-box {
  background-color: var(--primary-teal);
  color: var(--white);
}

.bg-peach-box {
  background-color: var(--secondary-peach);
  color: var(--text-dark);
}

.bg-teal-light {
  background-color: #e0f2f3;
  color: var(--primary-teal);
}

.bg-peach-light {
  background-color: #fff0e6;
  color: #d66100;
}

.bg-teal-dark {
  background-color: #015c63;
  color: var(--white);
}

.bg-amber {
  background-color: #fce2c2;
  color: #a15805;
}

.bg-white-shade {
  background-color: var(--white);
  color: var(--primary-teal);
}

/* Video/Media Placeholders */
.media-placeholder {
  background: var(--bg-cream);
  border: 3px dashed var(--secondary-peach);
  border-radius: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  aspect-ratio: 16/9;
  color: var(--primary-teal);
  position: relative;
  overflow: hidden;
  box-shadow: inset 0 0 20px rgba(0, 0, 0, 0.02);
}

.media-placeholder.img-only {
  aspect-ratio: 4/3;
  border-style: solid;
  border-color: var(--white);
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.08);
}

.media-icon {
  font-size: 4rem;
  margin-bottom: 15px;
  color: var(--primary-teal);
  opacity: 0.7;
}

/* Program Cards Additions */
.program-card {
  cursor: pointer;
}

.program-card img.card-img-top {
  border-radius: 30px 30px 0 0;
  height: 220px;
  object-fit: cover;
}

.program-card .card-body {
  padding: 25px;
}

.modal-content {
  border-radius: 30px;
  border: none;
}

.modal-header {
  border-bottom: none;
  padding: 30px 30px 10px;
}

.modal-body {
  padding: 10px 30px 30px;
}

.modal-img {
  border-radius: 20px;
  margin-bottom: 20px;
  max-width: 100%;
  height: auto;
}

/* Footer */
footer {
  background-color: var(--primary-teal);
  color: var(--white);
  padding: 80px 0 20px 0;
  border-radius: 60px 60px 0 0;
  margin-top: -30px;
  position: relative;
  z-index: 3;
}

footer a {
  color: var(--white);
  text-decoration: none;
  transition: color 0.3s;
}

footer a:hover {
  color: var(--secondary-peach);
}

/* Animations Variables / Rules */
@keyframes blob-bounce {
  0% {
    transform: scale(1) translate(0, 0);
    border-radius: 40% 60% 70% 30% / 40% 50% 60% 50%;
  }

  100% {
    transform: scale(1.1) translate(-20px, 20px);
    border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%;
  }
}

@keyframes float {
  0% {
    transform: translateY(0px);
  }

  50% {
    transform: translateY(-20px);
  }

  100% {
    transform: translateY(0px);
  }
}

/* Action Cards / Quick Links */
.action-card {
  transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  border: 1px solid rgba(0, 0, 0, 0.05);
  cursor: pointer;
}

.action-card:hover {
  transform: translateY(-12px);
  box-shadow: 0 20px 40px rgba(1, 125, 133, 0.1) !important;
  border-color: var(--primary-teal) !important;
}

.action-icon {
  width: 80px;
  height: 80px;
  border-radius: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 32px;
  transition: transform 0.4s;
}

.action-card:hover .action-icon {
  transform: rotate(10deg) scale(1.1);
}

.btn-link-custom {
  font-size: 0.9rem;
  text-transform: uppercase;
  letter-spacing: 1px;
}

/* become a member */
 .membership-form-card {
            background: var(--white);
            border-radius: 30px;
            padding: 40px;
            box-shadow: 0 15px 50px rgba(0, 0, 0, 0.08);
            border: none;
        }

        .section-title {
            border-left: 5px solid var(--primary-teal);
            padding-left: 15px;
            margin-bottom: 25px;
            margin-top: 40px;
            color: var(--primary-teal);
            font-family: 'Rowdies', display;
            font-size: 1.5rem;
        }

        .section-title:first-of-type {
            margin-top: 0;
        }

        .form-label {
            font-weight: 700;
            color: var(--text-dark);
            margin-bottom: 8px;
        }

        .form-control,
        .form-select {
            border-radius: 12px;
            padding: 12px 15px;
            border: 2px solid #f0f0f0;
            background-color: #fcfcfc;
            transition: 0.3s;
        }

        .form-control:focus,
        .form-select:focus {
            border-color: var(--primary-teal);
            box-shadow: 0 0 10px rgba(1, 125, 133, 0.1);
            background-color: #fff;
        }

        .upload-box {
            border: 2px dashed var(--secondary-peach);
            border-radius: 15px;
            padding: 20px;
            text-align: center;
            background: var(--bg-cream);
            cursor: pointer;
            transition: 0.3s;
        }

        .upload-box:hover {
            background: #fff;
            border-color: var(--primary-teal);
        }

        .upload-icon {
            font-size: 2rem;
            color: var(--primary-teal);
            margin-bottom: 10px;
        }

        .btn-submit {
            padding: 15px 40px;
            font-size: 1.2rem;
            border-radius: 50px;
            margin-top: 30px;
        }

        .form-check-input:checked {
            background-color: var(--primary-teal);
            border-color: var(--primary-teal);
        }



/* program */

 .program-detail-card {
            border-radius: 30px;
            overflow: hidden;
            background: var(--white);
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
            margin-bottom: 60px;
            border: none;
        }

        .program-img-wrapper {
            position: relative;
            overflow: hidden;
            height: 400px;
        }

        .program-img-wrapper img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            transition: transform 0.5s;
        }

        .program-detail-card:hover .program-img-wrapper img {
            transform: scale(1.05);
        }

        .program-badge {
            position: absolute;
            top: 20px;
            left: 20px;
            background: var(--primary-teal);
            color: white;
            padding: 8px 20px;
            border-radius: 50px;
            font-weight: 700;
            z-index: 2;
        }

        .program-content {
            padding: 40px;
        }

        .program-icon-float {
            font-size: 3rem;
            color: var(--secondary-peach);
            opacity: 0.2;
            position: absolute;
            bottom: 20px;
            right: 20px;
        }



        /* members */


         .filter-section {
            background: var(--white);
            border-radius: 20px;
            padding: 30px;
            margin-top: -60px;
            position: relative;
            z-index: 10;
            box-shadow: 0 15px 40px rgba(0, 0, 0, 0.08);
            border: 1px solid rgba(0, 0, 0, 0.05);
        }

        .filter-select {
            border-radius: 12px;
            padding: 12px 15px;
            border: 2px solid #f0f0f0;
            background-color: #fcfcfc;
            transition: 0.3s;
        }

        .filter-select:focus {
            border-color: var(--primary-teal);
            box-shadow: 0 0 10px rgba(1, 125, 133, 0.1);
            background-color: #fff;
        }

        .member-card {
            background: var(--white);
            border-radius: 20px;
            padding: 30px 20px;
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
            border: 1px solid rgba(0, 0, 0, 0.03);
            transition: 0.3s;
            text-align: center;
            height: 100%;
            display: flex;
            flex-direction: column;
        }

        .member-card:hover {
            transform: translateY(-5px);
            box-shadow: 0 15px 40px rgba(0, 0, 0, 0.1);
            border-color: var(--primary-teal);
        }

        .member-img-wrapper {
            width: 120px;
            height: 120px;
            margin: 0 auto 20px;
            border-radius: 50%;
            padding: 5px;
            background: linear-gradient(135deg, var(--primary-teal), var(--secondary-peach));
        }

        .member-img {
            width: 100%;
            height: 100%;
            border-radius: 50%;
            object-fit: cover;
            border: 4px solid var(--white);
        }

        .member-name {
            font-family: 'Rowdies', display;
            color: var(--primary-teal);
            font-size: 1.4rem;
            margin-bottom: 5px;
        }

        .member-role {
            font-weight: 600;
            color: var(--text-dark);
            margin-bottom: 15px;
            display: inline-block;
            background: var(--peach-light);
            padding: 5px 15px;
            border-radius: 20px;
            font-size: 0.85rem;
            letter-spacing: 0.5px;
            text-transform: uppercase;
        }

        .member-details {
            font-size: 0.95rem;
            color: var(--text-muted);
            margin-bottom: 20px;
            flex-grow: 1;
        }

        .member-details i {
            color: var(--secondary-peach);
            width: 20px;
            margin-right: 5px;
        }

        .pagination-custom .page-link {
            border: none;
            color: var(--text-dark);
            margin: 0 5px;
            border-radius: 10px;
            width: 40px;
            height: 40px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-weight: 600;
            transition: 0.3s;
        }

        .pagination-custom .page-item.active .page-link {
            background-color: var(--primary-teal);
            color: white;
            box-shadow: 0 4px 10px rgba(1, 125, 133, 0.3);
        }

        .pagination-custom .page-link:hover:not(.active) {
            background-color: var(--peach-light);
            color: var(--primary-teal);
        }

        .search-btn {
            height: 100%;
            width: 100%;
            border-radius: 12px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-weight: 600;
            font-size: 1.1rem;
        }

        /* donate */

          .donation-card {
            border-radius: 30px;
            overflow: hidden;
            border: none;
            box-shadow: 0 15px 40px rgba(0, 0, 0, 0.08);
            background: var(--white);
            transition: transform 0.3s;
        }

        .amount-btn-group .btn-check:checked+.btn-outline-teal {
            background-color: var(--primary-teal);
            color: var(--white);
            border-color: var(--primary-teal);
        }

        .btn-outline-teal {
            color: var(--primary-teal);
            border: 2px solid var(--primary-teal);
            border-radius: 15px;
            font-weight: 700;
            padding: 15px;
            transition: 0.3s;
        }

        .btn-outline-teal:hover {
            background-color: var(--bg-cream);
            color: var(--primary-teal-hover);
        }

        .custom-amount-input {
            border-radius: 15px;
            padding: 15px 20px;
            border: 2px solid #eee;
            font-size: 1.2rem;
            font-weight: 700;
        }

        .impact-card {
            border-left: 5px solid var(--secondary-peach);
            background: #fff;
            padding: 20px;
            border-radius: 0 20px 20px 0;
            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
            height: 100%;
        }

        .payment-method-card {
            cursor: pointer;
            border: 2px solid #eee;
            border-radius: 20px;
            padding: 20px;
            transition: 0.3s;
            text-align: center;
        }

        .payment-method-card.active,
        .payment-method-card:hover {
            border-color: var(--primary-teal);
            background-color: #f0fbfc;
        }