@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&display=swap");

:root {
  --primary-green: #4ADE80;
  --soft-white: #FAFAFA;
  --white: #FFFFFF;
  --black: #000000;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  font-family: "Montserrat", sans-serif;
}

/* Header / Sticky Navbar */
.site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  width: 100%;
  background: var(--white);
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.06);
}
.site-header.is-scrolled {
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(14px);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.12);
}

.nav-toggle.active span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.nav-toggle.active span:nth-child(2) {
  opacity: 0;
}

.nav-toggle.active span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}


/*--------------------- NAVBAR -----------------------*/
.navbar {
  max-width: 1350px;
  margin: 0 auto;
  padding: 0.75rem 4%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
}

/* Brand / Logo */
.logo-link {
  display: flex;
  align-items: center;
  gap: 1rem;
  text-decoration: none;
}

.logo {
  width: 40px;
  height: 40px;
  object-fit: contain;
}

.brand-name {
  font-size: 0.93rem;
  font-weight: 700;
  color: var(--primary-green);
  white-space: nowrap;
}

/* Menu */
.nav-menu {
  list-style: none;
  display: flex;
  align-items: center;
  gap: 1.5rem;
  margin: 0;
  padding: 0;
  
}

.nav-item {
  position: relative;
}

.nav-link {
  position: relative;
  text-decoration: none;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--black);
  padding: 0.5rem 0;
  white-space: nowrap;
  transition: color 0.25s ease;
}

.nav-link::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0.15rem;
  width: 0;
  height: 2px;
  background: var(--primary-green);
  transition: width 0.25s ease;
}

.nav-link:hover {
  color: var(--primary-green);
}

.nav-link:hover::before {
  width: 100%;
}

/* Dropdown Arrow */
.has-dropdown .nav-link::after {
  content: "";
  display: inline-block;
  width: 0.4rem;
  height: 0.4rem;
  margin-left: 0.45rem;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg) translateY(-2px);
}

/* Dropdown Menu */
.dropdown-menu {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 260px;
  list-style: none;
  margin: 0.85rem 0 0;
  padding: 0.65rem;
  background: var(--white);
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 8px;
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.12);
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s ease;
}

.dropdown-menu a {
  display: block;
  padding: 0.75rem 0.85rem;
  border-radius: 6px;
  text-decoration: none;
  font-size: 0.78rem;
  font-weight: 500;
  color: var(--black);
  white-space: nowrap;
  transition: background 0.25s ease, color 0.25s ease;
}

.dropdown-menu a:hover {
  background: var(--soft-white);
  color: var(--primary-green);
}

.has-dropdown:hover .dropdown-menu,
.has-dropdown:focus-within .dropdown-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

/* Login Button */
.login-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 0 2rem;
  border-radius: 8px;
  background: var(--primary-green);
  color: var(--white);
  font-size: 0.8rem;
  font-weight: 700;
  text-decoration: none;
  transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease;
}

.login-button:hover {
  background: var(--soft-white);
  color: var(--primary-green);
  transform: translateY(-2px);
}

/* Mobile Toggle */
.nav-toggle {
  display: none;
  width: 42px;
  height: 42px;
  border: none;
  border-radius: 8px;
  background: var(--soft-white);
  cursor: pointer;
}

.nav-toggle span {
  display: block;
  width: 24px;
  height: 2px;
  margin: 5px auto;
  background: var(--black);
}

/* Responsive */
@media (max-width: 1200px) {
  .navbar {
    padding: 0.75rem 3%;
    gap: 1rem;
  }

  .nav-menu {
    gap: 0.55rem;
  }

  .nav-link {
    font-size: 0.72rem;
  }

  .brand-name {
    font-size: 0.95rem;
  }
}

@media (max-width: 1100px) {
  .nav-menu {
    gap: 0.8rem;
  }

  .nav-link {
    font-size: 0.88rem;
  }
}
@media (max-width: 980px) {
  .navbar {
    position: relative;
    gap: 0.65rem;
  }

  .nav-toggle {
    display: block;
    flex: 0 0 42px;
  }

  .navbar-brand {
    min-width: 0;
  }

  .logo-link {
    gap: 0.55rem;
  }

  .brand-name {
    overflow: hidden;
    font-size: 0.8rem;
    text-overflow: ellipsis;
  }

  .nav-menu {
    display: none;
  }

  .nav-actions {
    display: flex;
    align-items: center;
    margin-left: auto;
  }

  .login-button {
    min-height: 34px;
    width: auto;
    padding: 0 0.85rem;
    font-size: 0.66rem;
    white-space: nowrap;
  }
}

@media (max-width: 900px) {
  .navbar {
    position: relative;
  }

  .nav-toggle {
    display: block;
  }

  .nav-menu {
    display: none;
  }

  .nav-actions {
    display: flex;
  }

  .nav-menu.active {
    position: absolute;
    top: 100%;
    left: 5%;
    right: 5%;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 0.8rem;
    background: var(--white);
    border-radius: 8px;
    box-shadow: 0 18px 45px rgba(0, 0, 0, 0.12);
  }

  .nav-menu.active .nav-link {
    display: block;
    padding: 0.85rem;
  }

  .nav-menu.active .nav-link::before {
    display: none;
  }

  .dropdown-menu {
    position: static;
    min-width: 100%;
    margin: 0.25rem 0 0;
    box-shadow: none;
    border: none;
    background: var(--soft-white);
    opacity: 1;
    visibility: visible;
    transform: none;
    display: none;
  }

  .has-dropdown:hover .dropdown-menu,
  .has-dropdown:focus-within .dropdown-menu {
    display: block;
  }

  .login-button {
    width: auto;
  }
}

@media (max-width: 420px) {
  .navbar {
    padding-left: 0.75rem;
    padding-right: 0.75rem;
  }

  .logo {
    width: 34px;
    height: 34px;
  }

  .brand-name {
    display: none;
  }

  .login-button {
    min-height: 32px;
    padding: 0 0.75rem;
    font-size: 0.62rem;
  }

  .nav-toggle {
    width: 38px;
    height: 38px;
    flex-basis: 38px;
  }
}


/*--------------------- HERO -----------------------*/

/* Hero Section */
.hero-section {
  position: relative;
  min-height: calc(100vh - 76px);
  overflow: hidden;
  background: var(--black);
}

.hero-slider {
  position: relative;
  min-height: calc(100vh - 76px);
}

.hero-slide {
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-columns: 1fr;
  align-items: center;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.hero-slide.active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.hero-image {
  position: absolute;
  inset: 0;
  overflow: hidden;
  perspective: 1200px;
}

.hero-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform-origin: center;
}

.hero-slide::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(0, 0, 0, 0.82), rgba(0, 0, 0, 0.46), rgba(0, 0, 0, 0.18)),
    linear-gradient(0deg, rgba(0, 0, 0, 0.35), transparent 55%);
}

.hero-content {
  position: relative;
  z-index: 2;
  max-width: 720px;
  padding: 7rem 5%;
  color: var(--white);
}

.hero-kicker {
  margin: 0 0 1rem;
  color: var(--primary-green);
  font-size: 0.82rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.12em;
}

.hero-content h1,
.hero-content h2 {
  max-width: 680px;
  margin: 0;
  font-size: clamp(1.4rem, 4vw, 3.6rem);
  line-height: 0.95;
  font-weight: 800;
  color: var(--white);
}

.hero-caption {
  max-width: 560px;
  margin: 1.35rem 0 0;
  font-size: clamp(1rem, 1.5vw, 1.25rem);
  line-height: 1.65;
  font-weight: 500;
  color: var(--soft-white);
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.9rem;
  margin-top: 2rem;
}

.hero-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 0 1.35rem;
  border-radius: 8px;
  text-decoration: none;
  font-size: 0.9rem;
  font-weight: 800;
  transition: transform 0.25s ease, background 0.25s ease, color 0.25s ease;
}

.hero-button.primary {
  background: var(--primary-green);
  color: var(--black);
}

.hero-button.secondary {
  background: var(--white);
  color: var(--black);
}

.hero-button:hover {
  transform: translateY(-3px);
}

.hero-controls {
  position: absolute;
  z-index: 4;
  left: 5%;
  bottom: 2rem;
  display: flex;
  align-items: center;
  gap: 0.65rem;
}

.hero-dot {
  width: 2.2rem;
  height: 0.28rem;
  border: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.45);
  cursor: pointer;
  transition: width 0.25s ease, background 0.25s ease;
}

.hero-dot.active {
  width: 3.5rem;
  background: var(--primary-green);
}

@media (max-width: 768px) {
  .hero-section,
  .hero-slider {
    min-height: calc(100vh - 68px);
  }

  .hero-slide::before {
    background:
      linear-gradient(0deg, rgba(0, 0, 0, 0.78), rgba(0, 0, 0, 0.34)),
      linear-gradient(90deg, rgba(0, 0, 0, 0.65), transparent);
  }

  .hero-content {
    padding: 6rem 5% 7rem;
  }

  .hero-content h1,
  .hero-content h2 {
    font-size: clamp(2.2rem, 13vw, 4rem);
    line-height: 1;
  }

  .hero-caption {
    font-size: 0.98rem;
  }

  .hero-actions {
    gap: 0.75rem;
  }

  .hero-button {
    min-height: 44px;
    padding: 0 1rem;
    font-size: 0.82rem;
  }

  .hero-controls {
    bottom: 1.35rem;
  }
}


/* ---------------- President Message Sections ---------------*/
.president-message-section {
  width: 100%;
  padding: 0.25rem 5%;
  background: var(--white);
}

.canada-president-section {
  background: var(--soft-white);
}

.president-message-container {
  max-width: 1320px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  align-items: center;
  gap: 4rem;
}

.president-message-container.reverse-layout {
  grid-template-columns: 0.95fr 1.05fr;
}

.president-message-content {
  max-width: 640px;
}

.section-kicker {
  margin: 0 0 0.85rem;
  color: var(--primary-green);
  font-size: 0.78rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.14em;
}

.president-message-content h2 {
  margin: 0 0 1.5rem;
  color: var(--black);
  font-size: clamp(2rem, 4vw, 3.8rem);
  line-height: 1.05;
  font-weight: 800;
}

.president-message-content p {
  margin: 0 0 1rem;
  color: var(--black);
  font-size: 1rem;
  line-height: 1.8;
  font-weight: 500;
}

.president-signature {
  margin-top: 2rem;
  padding-left: 1.25rem;
  border-left: 4px solid var(--primary-green);
}

.president-signature h3 {
  margin: 0 0 0.35rem;
  color: var(--black);
  font-size: 1.05rem;
  font-weight: 800;
}

.president-signature span {
  color: rgba(0, 0, 0, 0.68);
  font-size: 0.92rem;
  font-weight: 600;
}

.president-message-image {
  position: relative;
  width: 100%;
  min-height: 520px;
  overflow: hidden;
  background: var(--soft-white);
}

.president-message-image img {
  width: 100%;
  height: 100%;
  min-height: 520px;
  object-fit: cover;
  display: block;
}

/* Optional subtle image accent */
.president-message-image::after {
  content: "";
  position: absolute;
  inset: auto 1.25rem 1.25rem auto;
  width: 38%;
  height: 38%;
  border-right: 5px solid var(--primary-green);
  border-bottom: 5px solid var(--primary-green);
  pointer-events: none;
}

/* Responsive */
@media (max-width: 900px) {
  .president-message-section {
    padding: 4rem 5%;
  }

  .president-message-container,
  .president-message-container.reverse-layout {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }

  .president-message-container.reverse-layout .president-message-image {
    order: 2;
  }

  .president-message-container.reverse-layout .president-message-content {
    order: 1;
  }

  .president-message-content {
    max-width: 100%;
  }

  .president-message-image,
  .president-message-image img {
    min-height: 420px;
  }
}

@media (max-width: 560px) {
  .president-message-content h2 {
    font-size: 2rem;
  }

  .president-message-content p {
    font-size: 0.95rem;
    line-height: 1.7;
  }

  .president-message-image,
  .president-message-image img {
    min-height: 340px;
  }
}


/*--------------- Upcoming Events ---------------*/
.upcoming-events-section {
  width: 100%;
  margin-top: 0;
  padding: 6.5rem 5%;
  background: var(--primary-green);
}

.upcoming-events-container {
  max-width: 1320px;
  margin: 0 auto;
}

.events-header {
  text-align: center;
  margin-bottom: 3.5rem;
}

.events-kicker {
  color: var(--black);
}

.events-title {
  margin: 0;
  color: var(--white);
  font-size: clamp(2.2rem, 3vw, 2.5rem);
  line-height: 1;
  font-weight: 800;
}

.events-title-line {
  display: block;
  width: 90px;
  height: 5px;
  margin: 1rem auto 0;
  border-radius: 999px;
  background: var(--white);
  transform-origin: center;
}

.events-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}

.event-card {
  min-height: 390px;
  perspective: 1200px;
}

.event-card-inner {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 390px;
  border-radius: 8px;
  transform-style: preserve-3d;
  transition: transform 0.75s ease;
}

.event-card:hover .event-card-inner {
  transform: rotateY(180deg);
}

.event-card-front,
.event-card-back {
  position: absolute;
  inset: 0;
  overflow: hidden;
  backface-visibility: hidden;
}

.event-card-front img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Soft overlay on image */
.event-card-front::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(0, 0, 0, 0.22), transparent 60%);
}

.event-card-back {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem;
  background: var(--black);
  color: var(--white);
  transform: rotateY(180deg);
  text-align: center;
}

.event-card-details {
  max-width: 280px;
}

.event-card-details h3 {
  margin: 0 0 0.75rem;
  color: var(--white);
  font-size: 1.55rem;
  line-height: 1.2;
  font-weight: 800;
}

.event-card-details p {
  margin: 0 0 1.5rem;
  color: var(--primary-green);
  font-size: 1rem;
  font-weight: 700;
}

.event-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0 1.25rem;
  border-radius: 8px;
  background: var(--primary-green);
  color: var(--black);
  text-decoration: none;
  font-size: 0.9rem;
  font-weight: 800;
  transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease;
}

.event-button:hover {
  background: var(--white);
  color: var(--black);
  transform: translateY(-2px);
}

/* Responsive */
@media (max-width: 950px) {
  .events-grid {
    grid-template-columns: 1fr;
  }

  .event-card,
  .event-card-inner {
    min-height: 360px;
  }
}

@media (max-width: 560px) {
  .upcoming-events-section {
    padding: 4.5rem 5%;
  }

  .events-header {
    margin-bottom: 2.5rem;
  }

  .event-card,
  .event-card-inner {
    min-height: 320px;
  }

  .event-card-details h3 {
    font-size: 1.3rem;
  }
}


/*--------------- Latest News ---------------*/

/* Latest News */
.latest-news-section {
  width: 100%;
  padding: 6.5rem 5%;
  background: var(--soft-white);
}

.latest-news-container {
  max-width: 1320px;
  margin: 0 auto;
}

.news-header {
  text-align: center;
  margin-bottom: 3.5rem;
}

.news-kicker {
  color: var(--primary-green);
}

.news-title {
  margin: 0;
  color: var(--black);
  font-size: clamp(2.2rem, 5vw, 4.5rem);
  line-height: 1;
  font-weight: 800;
}

.news-title-line {
  display: block;
  width: 90px;
  height: 5px;
  margin: 1rem auto 0;
  border-radius: 999px;
  background: var(--primary-green);
  transform-origin: center;
}

.news-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}

.news-card {
  overflow: hidden;
  border-radius: 8px;
  background: var(--white);
  box-shadow: 0 16px 38px rgba(0, 0, 0, 0.08);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.news-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 22px 50px rgba(0, 0, 0, 0.13);
}

.news-card-image {
  width: 100%;
  height: 250px;
  overflow: hidden;
}

.news-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s ease;
}

.news-card:hover .news-card-image img {
  transform: scale(1.08);
}

.news-card-content {
  padding: 1.5rem;
}

.news-date {
  display: inline-block;
  margin-bottom: 0.75rem;
  color: var(--primary-green);
  font-size: 0.78rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.news-card-content h3 {
  margin: 0 0 0.85rem;
  color: var(--black);
  font-size: 1.35rem;
  line-height: 1.25;
  font-weight: 800;
}

.news-card-content p {
  margin: 0 0 1.25rem;
  color: rgba(0, 0, 0, 0.72);
  font-size: 0.95rem;
  line-height: 1.7;
  font-weight: 500;
}

.news-link {
  display: inline-flex;
  align-items: center;
  color: var(--black);
  text-decoration: none;
  font-size: 0.9rem;
  font-weight: 800;
  transition: color 0.25s ease;
}

.news-link::after {
  content: "";
  width: 28px;
  height: 2px;
  margin-left: 0.6rem;
  background: var(--primary-green);
  transition: width 0.25s ease;
}

.news-link:hover {
  color: var(--primary-green);
}

.news-link:hover::after {
  width: 42px;
}

/* Responsive */
@media (max-width: 950px) {
  .news-grid {
    grid-template-columns: 1fr;
  }

  .news-card-image {
    height: 300px;
  }
}

@media (max-width: 560px) {
  .latest-news-section {
    padding: 4.5rem 5%;
  }

  .news-header {
    margin-bottom: 2.5rem;
  }

  .news-card-image {
    height: 230px;
  }

  .news-card-content h3 {
    font-size: 1.2rem;
  }
}


/*--------------- Community Impact ---------------*/

.community-impact-section {
  width: 100%;
  padding: 6.5rem 5%;
  background: var(--white);
}

.community-impact-container {
  max-width: 1320px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 0.95fr 1.05fr;
  align-items: center;
  gap: 4rem;
}

.impact-content {
  max-width: 620px;
}

.impact-kicker {
  color: var(--primary-green);
}

.impact-title {
  margin: 0;
  color: var(--black);
  font-size: clamp(2.2rem, 5vw, 4.5rem);
  line-height: 1.02;
  font-weight: 800;
}

.impact-title-line {
  display: block;
  width: 90px;
  height: 5px;
  margin: 1.2rem 0 1.5rem;
  border-radius: 999px;
  background: var(--primary-green);
  transform-origin: left;
}

.impact-content p {
  margin: 0 0 2rem;
  color: rgba(0, 0, 0, 0.72);
  font-size: 1rem;
  line-height: 1.8;
  font-weight: 500;
}

.impact-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 0 1.35rem;
  border-radius: 8px;
  background: var(--primary-green);
  color: var(--black);
  text-decoration: none;
  font-size: 0.9rem;
  font-weight: 800;
  transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease;
}

.impact-button:hover {
  background: var(--black);
  color: var(--white);
  transform: translateY(-2px);
}

.impact-stats {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.2rem;
}

.impact-stat-card {
  min-height: 210px;
  padding: 1.5rem;
  border-radius: 8px;
  background: var(--soft-white);
  border: 1px solid rgba(0, 0, 0, 0.06);
  transition: transform 0.25s ease, background 0.25s ease, box-shadow 0.25s ease;
}

.impact-stat-card:hover {
  transform: translateY(-8px);
  background: var(--primary-green);
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.12);
}

.impact-stat-card h3 {
  margin: 0 0 0.75rem;
  color: var(--black);
  font-size: 1.35rem;
  font-weight: 800;
}

.impact-stat-card p {
  margin: 0;
  color: rgba(0, 0, 0, 0.72);
  font-size: 0.95rem;
  line-height: 1.7;
  font-weight: 500;
}

/* Sponsors And Partners */
.sponsors-section {
  width: 100%;
  padding: 6rem 0;
  background: var(--soft-white);
  overflow: hidden;
}

.sponsors-container {
  max-width: 1320px;
  margin: 0 auto;
}

.sponsors-header {
  padding: 0 5%;
  text-align: center;
  margin-bottom: 3rem;
}

.sponsors-kicker {
  color: var(--primary-green);
}

.sponsors-title {
  margin: 0;
  color: var(--black);
  font-size: clamp(2.2rem, 5vw, 4.5rem);
  line-height: 1;
  font-weight: 800;
}

.sponsors-title-line {
  display: block;
  width: 90px;
  height: 5px;
  margin: 1rem auto 0;
  border-radius: 999px;
  background: var(--primary-green);
  transform-origin: center;
}

.sponsors-carousel {
  position: relative;
  width: 100%;
  overflow: hidden;
}

.sponsors-carousel::before,
.sponsors-carousel::after {
  content: "";
  position: absolute;
  top: 0;
  z-index: 2;
  width: 110px;
  height: 100%;
  pointer-events: none;
}

.sponsors-carousel::before {
  left: 0;
  background: linear-gradient(90deg, var(--soft-white), transparent);
}

.sponsors-carousel::after {
  right: 0;
  background: linear-gradient(270deg, var(--soft-white), transparent);
}

.sponsors-track {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  width: max-content;
  animation: sponsors-scroll 24s linear infinite;
}

.sponsors-carousel:hover .sponsors-track {
  animation-play-state: paused;
}

.sponsor-logo {
  width: 180px;
  height: 110px;
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.2rem;
  border-radius: 8px;
  background: var(--white);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.06);
}

.sponsor-logo img {
  max-width: 100%;
  max-height: 70px;
  object-fit: contain;
  display: block;
  filter: grayscale(1);
  opacity: 0.78;
  transition: filter 0.25s ease, opacity 0.25s ease, transform 0.25s ease;
}

.sponsor-logo:hover img {
  filter: grayscale(0);
  opacity: 1;
  transform: scale(1.05);
}

@keyframes sponsors-scroll {
  from {
    transform: translateX(0);
  }

  to {
    transform: translateX(calc(-50% - 0.75rem));
  }
}

/* Responsive */
@media (max-width: 950px) {
  .community-impact-container {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }

  .impact-content {
    max-width: 100%;
  }

  .sponsor-logo {
    width: 150px;
    height: 95px;
  }
}

@media (max-width: 620px) {
  .community-impact-section {
    padding: 4.5rem 5%;
  }

  .impact-stats {
    grid-template-columns: 1fr;
  }

  .impact-stat-card {
    min-height: auto;
  }

  .sponsors-section {
    padding: 4.5rem 0;
  }

  .sponsors-carousel::before,
  .sponsors-carousel::after {
    width: 55px;
  }

  .sponsor-logo {
    width: 135px;
    height: 88px;
  }
}


/*--------------- Footer -----------------*/
.site-footer {
  width: 100%;
  background: var(--black);
  color: var(--white);
  padding: 5rem 5% 0;
}

.footer-container {
  max-width: 1320px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.35fr 1fr 1fr 1.15fr;
  gap: 3rem;
}

.footer-logo-link {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1.2rem;
  text-decoration: none;
  color: var(--white);
  font-size: 1.2rem;
  font-weight: 800;
}

.footer-logo {
  width: 46px;
  height: 46px;
  object-fit: contain;
}

.footer-brand p,
.newsletter-text {
  margin: 0 0 1.5rem;
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.94rem;
  line-height: 1.75;
  font-weight: 500;
}

.footer-column h3 {
  margin: 0 0 1.35rem;
  color: var(--white);
  font-size: 1rem;
  font-weight: 800;
}

.footer-links {
  list-style: none;
  margin: 0;
  padding: 0;
}

.footer-links li {
  margin-bottom: 0.85rem;
}

.footer-links a {
  color: rgba(255, 255, 255, 0.72);
  text-decoration: none;
  font-size: 0.92rem;
  font-weight: 500;
  transition: color 0.25s ease, padding-left 0.25s ease;
}

.footer-links a:hover {
  color: var(--primary-green);
  padding-left: 0.35rem;
}

/* Socials */
.footer-socials {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.social-link {
  width: 42px;
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 7px;
  background: #111111;
  color: var(--white);
  text-decoration: none;
  font-size: 1.1rem;
  transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease;
}

.social-link:hover {
  transform: translateY(-3px);
}

.social-link.whatsapp:hover {
  background: #25d366;
  color: var(--white);
}

.social-link.facebook:hover {
  background: #1877f2;
  color: var(--white);
}

.social-link.instagram:hover {
  background: linear-gradient(135deg, #f58529, #dd2a7b, #8134af, #515bd4);
  color: var(--white);
}

.social-link.youtube:hover {
  background: var(--white);
  color: #ff0000;
}

.social-link.tiktok:hover {
  background: var(--white);
  color: var(--black);
}

/* Contact */
.footer-contact-item {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  margin-bottom: 1rem;
}

.footer-contact-item i {
  color: var(--primary-green);
  font-size: 1rem;
}

.footer-contact-item a,
.footer-contact-item span {
  color: var(--white);
  text-decoration: none;
  font-size: 0.92rem;
  font-weight: 500;
}

.footer-contact-item a:hover {
  color: var(--primary-green);
}

/* Newsletter */
.newsletter-form {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.newsletter-form input {
  width: 100%;
  min-height: 46px;
  padding: 0 1rem;
  border: 1px solid #1f1f1f;
  border-radius: 8px;
  outline: none;
  background: #111111;
  color: var(--white);
  font-family: "Montserrat", sans-serif;
  font-size: 0.9rem;
}

.newsletter-form input::placeholder {
  color: rgba(255, 255, 255, 0.55);
}

.newsletter-form input:focus {
  border-color: var(--primary-green);
}

.newsletter-form button {
  min-height: 46px;
  border: none;
  border-radius: 8px;
  background: var(--primary-green);
  color: var(--black);
  font-family: "Montserrat", sans-serif;
  font-size: 0.9rem;
  font-weight: 800;
  cursor: pointer;
  transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease;
}

.newsletter-form button:hover {
  background: var(--white);
  color: var(--black);
  transform: translateY(-2px);
}

/* Footer Bottom */
.footer-bottom {
  max-width: 1320px;
  margin: 4rem auto 0;
  padding: 1.3rem 0;
  border-top: 1px solid #1f1f1f;
  text-align: center;
}

.footer-bottom p {
  margin: 0;
  color: rgba(255, 255, 255, 0.62);
  font-size: 0.86rem;
  font-weight: 500;
}

/* Responsive */
@media (max-width: 1050px) {
  .footer-container {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 620px) {
  .site-footer {
    padding: 4rem 5% 0;
  }

  .footer-container {
    grid-template-columns: 1fr;
    gap: 2.4rem;
  }

  .footer-bottom {
    margin-top: 3rem;
  }
}


/*-------------------- ABOUT PAGE --------------------*/

/*-------------------- Introduction --------------------*/
.about-intro-section {
  width: 100%;
  padding: 6.5rem 5%;
  background: var(--soft-white);
}

.about-intro-container {
  max-width: 1320px;
  margin: 0 auto;
}

.about-intro-header {
  max-width: 820px;
  margin-bottom: 3rem;
}

.about-intro-kicker {
  color: var(--primary-green);
}

.about-intro-header h1 {
  margin: 0;
  color: var(--black);
  font-size: clamp(2.4rem, 5vw, 5rem);
  line-height: 1;
  font-weight: 800;
}

.about-intro-line {
  display: block;
  width: 95px;
  height: 5px;
  margin-top: 1.2rem;
  border-radius: 999px;
  background: var(--primary-green);
  transform-origin: left;
}

.about-intro-content {
  max-width: 980px;
  padding: 2.5rem;
  border-left: 5px solid var(--primary-green);
  background: var(--white);
  border-radius: 8px;
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.07);
}

.about-intro-content p {
  margin: 0 0 1.25rem;
  color: rgba(0, 0, 0, 0.76);
  font-size: 1rem;
  line-height: 1.85;
  font-weight: 500;
}

.about-intro-content p:last-child {
  margin-bottom: 0;
}

@media (max-width: 768px) {
  .about-intro-section {
    padding: 4.5rem 5%;
  }

  .about-intro-header {
    margin-bottom: 2rem;
  }

  .about-intro-content {
    padding: 1.5rem;
  }

  .about-intro-content p {
    font-size: 0.95rem;
    line-height: 1.75;
  }
}

/* Vision And Mission */
.vision-mission-section {
  width: 100%;
  padding: 6.5rem 5%;
  background: var(--white);
}

.vision-mission-container {
  max-width: 1320px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 1.5rem;
}

.vision-mission-card {
  padding: 2.2rem;
  border-radius: 8px;
  background: var(--soft-white);
  border: 1px solid rgba(0, 0, 0, 0.06);
}

.statement-icon {
  width: 54px;
  height: 54px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.4rem;
  border-radius: 8px;
  background: var(--primary-green);
  color: var(--black);
  font-size: 1.35rem;
}

.vision-mission-card h2 {
  margin: 0 0 1rem;
  color: var(--black);
  font-size: clamp(1.7rem, 3vw, 2.7rem);
  line-height: 1.1;
  font-weight: 800;
}

.vision-mission-card p {
  margin: 0 0 1rem;
  color: rgba(0, 0, 0, 0.74);
  font-size: 1rem;
  line-height: 1.8;
  font-weight: 500;
}

.vision-mission-card p:last-child {
  margin-bottom: 0;
}

/* History */
.about-history-section {
  width: 100%;
  padding: 6.5rem 5%;
  background: var(--soft-white);
}

.about-history-container {
  max-width: 1320px;
  margin: 0 auto;
}

.about-history-header {
  max-width: 850px;
  margin-bottom: 3.5rem;
}

.history-kicker {
  color: var(--primary-green);
}

.about-history-header h2 {
  margin: 0;
  color: var(--black);
  font-size: clamp(2.2rem, 5vw, 4.5rem);
  line-height: 1;
  font-weight: 800;
}

.history-title-line {
  display: block;
  width: 95px;
  height: 5px;
  margin-top: 1.2rem;
  border-radius: 999px;
  background: var(--primary-green);
  transform-origin: left;
}

.history-timeline {
  position: relative;
  max-width: 1050px;
  padding-left: 2rem;
}

.history-timeline::before {
  content: "";
  position: absolute;
  top: 0.35rem;
  left: 0.45rem;
  width: 2px;
  height: calc(100% - 0.7rem);
  background: rgba(0, 0, 0, 0.12);
}

.history-item {
  position: relative;
  margin-bottom: 2rem;
}

.history-item:last-child {
  margin-bottom: 0;
}

.history-marker {
  position: absolute;
  top: 0.4rem;
  left: -2rem;
  width: 1rem;
  height: 1rem;
  border-radius: 50%;
  background: var(--primary-green);
  border: 4px solid var(--white);
  box-shadow: 0 0 0 4px rgba(74, 222, 128, 0.25);
}

.history-content {
  padding: 1.75rem;
  border-radius: 8px;
  background: var(--white);
  box-shadow: 0 14px 36px rgba(0, 0, 0, 0.07);
}

.history-content h3 {
  margin: 0 0 0.9rem;
  color: var(--black);
  font-size: 1.35rem;
  line-height: 1.25;
  font-weight: 800;
}

.history-content p {
  margin: 0 0 1rem;
  color: rgba(0, 0, 0, 0.74);
  font-size: 0.98rem;
  line-height: 1.8;
  font-weight: 500;
}

.history-content p:last-child {
  margin-bottom: 0;
}

.history-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.75rem 1rem;
  margin: 1.25rem 0 0;
  padding: 0;
  list-style: none;
}

.history-list li {
  position: relative;
  padding-left: 1.4rem;
  color: rgba(0, 0, 0, 0.76);
  font-size: 0.94rem;
  line-height: 1.55;
  font-weight: 600;
}

.history-list li::before {
  content: "";
  position: absolute;
  top: 0.55rem;
  left: 0;
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  background: var(--primary-green);
}

@media (max-width: 900px) {
  .vision-mission-container {
    grid-template-columns: 1fr;
  }

  .history-list {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 560px) {
  .vision-mission-section,
  .about-history-section {
    padding: 4.5rem 5%;
  }

  .vision-mission-card,
  .history-content {
    padding: 1.4rem;
  }

  .history-timeline {
    padding-left: 1.5rem;
  }

  .history-marker {
    left: -1.55rem;
  }
}

/*---------------- National Executives ---------------*/
.national-executives-section {
  width: 100%;
  padding: 6.5rem 5%;
  background: var(--white);
}

.national-executives-container {
  max-width: 1320px;
  margin: 0 auto;
}

.executives-header {
  max-width: 850px;
  margin: 0 auto 3.5rem;
  text-align: center;
}

.executives-kicker {
  color: var(--primary-green);
}

.executives-header h2 {
  margin: 0;
  color: var(--black);
  font-size: clamp(2.2rem, 5vw, 4.5rem);
  line-height: 1;
  font-weight: 800;
}

.executives-title-line {
  display: block;
  width: 95px;
  height: 5px;
  margin: 1.2rem auto 1.4rem;
  border-radius: 999px;
  background: var(--primary-green);
  transform-origin: center;
}

.executives-supporting-text {
  max-width: 760px;
  margin: 0 auto;
  color: rgba(0, 0, 0, 0.72);
  font-size: 1rem;
  line-height: 1.8;
  font-weight: 500;
}

.executives-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}

.executive-card {
  overflow: hidden;
  border-radius: 8px;
  background: var(--soft-white);
  border: 1px solid rgba(0, 0, 0, 0.06);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.executive-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.11);
}

.executive-image {
  width: 100%;
  height: 330px;
  overflow: hidden;
  background: var(--soft-white);
}

.executive-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s ease;
}

.executive-card:hover .executive-image img {
  transform: scale(1.07);
}

.executive-info {
  padding: 1.35rem;
  text-align: center;
}

.executive-info h3 {
  margin: 0 0 0.45rem;
  color: var(--black);
  font-size: 1.05rem;
  line-height: 1.35;
  font-weight: 800;
}

.executive-info p {
  margin: 0;
  color: var(--primary-green);
  font-size: 0.92rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

@media (max-width: 950px) {
  .executives-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .executive-image {
    height: 300px;
  }
}

@media (max-width: 620px) {
  .national-executives-section {
    padding: 4.5rem 5%;
  }

  .executives-header {
    margin-bottom: 2.5rem;
  }

  .executives-grid {
    grid-template-columns: 1fr;
  }

  .executive-image {
    height: 340px;
  }
}

/* Board of Trustees */
.trustees-block {
  margin-top: 6.5rem;
}

.trustees-header {
  max-width: 850px;
  margin: 0 auto 3.5rem;
  text-align: center;
}

.trustees-kicker {
  color: var(--primary-green);
}

.trustees-header h3 {
  margin: 0;
  color: var(--black);
  font-size: clamp(2rem, 4vw, 3.8rem);
  line-height: 1;
  font-weight: 800;
}

.trustees-title-line {
  display: block;
  width: 95px;
  height: 5px;
  margin: 1.2rem auto 1.4rem;
  border-radius: 999px;
  background: var(--primary-green);
  transform-origin: center;
}

.trustees-supporting-text {
  max-width: 760px;
  margin: 0 auto;
  color: rgba(0, 0, 0, 0.72);
  font-size: 1rem;
  line-height: 1.8;
  font-weight: 500;
}

.trustees-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
}

.trustees-grid .executive-card {
  overflow: hidden;
  border-radius: 8px;
  background: var(--soft-white);
  border: 1px solid rgba(0, 0, 0, 0.06);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.trustees-grid .executive-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.11);
}

.trustees-grid .executive-image {
  width: 100%;
  height: 300px;
  overflow: hidden;
  background: var(--soft-white);
}

.trustees-grid .executive-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s ease;
}

.trustees-grid .executive-card:hover .executive-image img {
  transform: scale(1.07);
}

.trustees-grid .executive-info {
  padding: 1.35rem;
  text-align: center;
}

.trustees-grid .executive-info h3 {
  margin: 0 0 0.45rem;
  color: var(--black);
  font-size: 1.05rem;
  line-height: 1.35;
  font-weight: 800;
}

.trustees-grid .executive-info p {
  margin: 0;
  color: var(--primary-green);
  font-size: 0.92rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

@media (max-width: 1050px) {
  .trustees-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 620px) {
  .trustees-block {
    margin-top: 4rem;
  }

  .trustees-header {
    margin-bottom: 2.5rem;
  }

  .trustees-grid {
    grid-template-columns: 1fr;
  }

  .trustees-grid .executive-image {
    height: 340px;
  }
}


/*--------------- Become A Member ---------------*/
.become-member-section {
  width: 100%;
  padding: 6.5rem 5%;
  background: var(--soft-white);
}

.become-member-container {
  max-width: 1320px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  align-items: center;
  gap: 4rem;
}

.become-member-content {
  max-width: 680px;
}

.become-member-kicker {
  color: var(--primary-green);
}

.become-member-content h1 {
  margin: 0;
  color: var(--black);
  font-size: clamp(2.4rem, 5vw, 5rem);
  line-height: 1;
  font-weight: 800;
}

.become-member-line {
  display: block;
  width: 95px;
  height: 5px;
  margin: 1.2rem 0 1.5rem;
  border-radius: 999px;
  background: var(--primary-green);
  transform-origin: left;
}

.become-member-content p {
  margin: 0 0 1.15rem;
  color: rgba(0, 0, 0, 0.74);
  font-size: 1rem;
  line-height: 1.8;
  font-weight: 500;
}

.become-member-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.9rem;
  margin-top: 2rem;
}

.become-member-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 0 1.35rem;
  border-radius: 8px;
  text-decoration: none;
  font-size: 0.9rem;
  font-weight: 800;
  transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease;
}

.become-member-button.primary {
  background: var(--primary-green);
  color: var(--black);
}

.become-member-button.secondary {
  background: var(--black);
  color: var(--white);
}

.become-member-button:hover {
  transform: translateY(-2px);
}

.become-member-button.primary:hover {
  background: var(--black);
  color: var(--white);
}

.become-member-button.secondary:hover {
  background: var(--primary-green);
  color: var(--black);
}

.become-member-card {
  padding: 2.2rem;
  border-radius: 8px;
  background: var(--white);
  border: 1px solid rgba(0, 0, 0, 0.06);
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.07);
}

.become-member-card h2 {
  margin: 0 0 1.5rem;
  color: var(--black);
  font-size: clamp(1.7rem, 3vw, 2.5rem);
  line-height: 1.1;
  font-weight: 800;
}

.member-highlights {
  list-style: none;
  margin: 0;
  padding: 0;
}

.member-highlights li {
  display: grid;
  grid-template-columns: 46px 1fr;
  align-items: center;
  gap: 1rem;
  padding: 1rem 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.member-highlights li:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.member-highlights i {
  width: 46px;
  height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: var(--primary-green);
  color: var(--black);
  font-size: 1.1rem;
}

.member-highlights span {
  color: rgba(0, 0, 0, 0.76);
  font-size: 0.96rem;
  line-height: 1.55;
  font-weight: 600;
}

@media (max-width: 900px) {
  .become-member-container {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }

  .become-member-content {
    max-width: 100%;
  }
}

@media (max-width: 560px) {
  .become-member-section {
    padding: 4.5rem 5%;
  }

  .become-member-card {
    padding: 1.4rem;
  }

  .member-highlights li {
    grid-template-columns: 40px 1fr;
  }

  .member-highlights i {
    width: 40px;
    height: 40px;
  }
}


/*--------------- Membership Benefits ---------------*/
.membership-benefits-section {
  width: 100%;
  padding: 6.5rem 5%;
  background: var(--soft-white);
}

.membership-benefits-container {
  max-width: 1320px;
  margin: 0 auto;
}

.membership-benefits-header {
  max-width: 850px;
  margin: 0 auto 3.5rem;
  text-align: center;
}

.benefits-kicker {
  color: var(--primary-green);
}

.membership-benefits-header h1 {
  margin: 0;
  color: var(--black);
  font-size: clamp(2.4rem, 5vw, 5rem);
  line-height: 1;
  font-weight: 800;
}

.benefits-title-line {
  display: block;
  width: 95px;
  height: 5px;
  margin: 1.2rem auto 1.4rem;
  border-radius: 999px;
  background: var(--primary-green);
  transform-origin: center;
}

.benefits-supporting-text {
  max-width: 760px;
  margin: 0 auto;
  color: rgba(0, 0, 0, 0.72);
  font-size: 1rem;
  line-height: 1.8;
  font-weight: 500;
}

.benefits-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}

.benefit-card {
  min-height: 300px;
  padding: 2rem;
  border-radius: 8px;
  background: var(--white);
  border: 1px solid rgba(0, 0, 0, 0.06);
  box-shadow: 0 14px 36px rgba(0, 0, 0, 0.06);
  transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
}

.benefit-card:hover {
  transform: translateY(-8px);
  background: var(--primary-green);
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.12);
}

.benefit-icon {
  width: 54px;
  height: 54px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.4rem;
  border-radius: 8px;
  background: var(--primary-green);
  color: var(--black);
  font-size: 1.25rem;
  transition: background 0.25s ease, color 0.25s ease;
}

.benefit-card:hover .benefit-icon {
  background: var(--black);
  color: var(--white);
}

.benefit-card h2 {
  margin: 0 0 0.85rem;
  color: var(--black);
  font-size: 1.35rem;
  line-height: 1.25;
  font-weight: 800;
}

.benefit-card p {
  margin: 0;
  color: rgba(0, 0, 0, 0.72);
  font-size: 0.95rem;
  line-height: 1.75;
  font-weight: 500;
}

.benefits-cta {
  margin-top: 4rem;
  padding: 3rem 2rem;
  border-radius: 8px;
  text-align: center;
  background: var(--black);
  color: var(--white);
}

.benefits-cta h2 {
  margin: 0 0 0.75rem;
  color: var(--white);
  font-size: clamp(1.8rem, 4vw, 3.2rem);
  line-height: 1.1;
  font-weight: 800;
}

.benefits-cta p {
  margin: 0 auto 1.5rem;
  max-width: 560px;
  color: rgba(255, 255, 255, 0.72);
  font-size: 1rem;
  line-height: 1.7;
  font-weight: 500;
}

.benefits-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 0 1.35rem;
  border-radius: 8px;
  background: var(--primary-green);
  color: var(--black);
  text-decoration: none;
  font-size: 0.9rem;
  font-weight: 800;
  transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease;
}

.benefits-button:hover {
  background: var(--white);
  color: var(--black);
  transform: translateY(-2px);
}

@media (max-width: 950px) {
  .benefits-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 620px) {
  .membership-benefits-section {
    padding: 4.5rem 5%;
  }

  .membership-benefits-header {
    margin-bottom: 2.5rem;
  }

  .benefits-grid {
    grid-template-columns: 1fr;
  }

  .benefits-cta {
    margin-top: 3rem;
    padding: 2.2rem 1.4rem;
  }
}


/*---------------- Membership Categories --------------*/
.membership-categories-section {
  width: 100%;
  padding: 6.5rem 5%;
  background: var(--soft-white);
}

.membership-categories-container {
  max-width: 1320px;
  margin: 0 auto;
}

.membership-categories-header {
  max-width: 850px;
  margin: 0 auto 3.5rem;
  text-align: center;
}

.categories-kicker {
  color: var(--primary-green);
}

.membership-categories-header h1 {
  margin: 0;
  color: var(--black);
  font-size: clamp(2.4rem, 5vw, 5rem);
  line-height: 1;
  font-weight: 800;
}

.categories-title-line {
  display: block;
  width: 95px;
  height: 5px;
  margin: 1.2rem auto 1.4rem;
  border-radius: 999px;
  background: var(--primary-green);
  transform-origin: center;
}

.categories-supporting-text {
  max-width: 760px;
  margin: 0 auto;
  color: rgba(0, 0, 0, 0.72);
  font-size: 1rem;
  line-height: 1.8;
  font-weight: 500;
}

.categories-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}

.category-card {
  min-height: 360px;
  padding: 2rem;
  border-radius: 8px;
  background: var(--white);
  border: 1px solid rgba(0, 0, 0, 0.06);
  box-shadow: 0 14px 36px rgba(0, 0, 0, 0.06);
  transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
}

.category-card:hover,
.featured-category {
  transform: translateY(-8px);
  background: var(--primary-green);
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.12);
}

.category-icon {
  width: 54px;
  height: 54px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.4rem;
  border-radius: 8px;
  background: var(--primary-green);
  color: var(--black);
  font-size: 1.25rem;
  transition: background 0.25s ease, color 0.25s ease;
}

.category-card:hover .category-icon,
.featured-category .category-icon {
  background: var(--black);
  color: var(--white);
}

.category-card h2 {
  margin: 0 0 0.85rem;
  color: var(--black);
  font-size: 1.35rem;
  line-height: 1.25;
  font-weight: 800;
}

.category-card p {
  margin: 0 0 1.5rem;
  color: rgba(0, 0, 0, 0.72);
  font-size: 0.95rem;
  line-height: 1.75;
  font-weight: 500;
}

.category-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0 1.2rem;
  border-radius: 8px;
  background: var(--black);
  color: var(--white);
  text-decoration: none;
  font-size: 0.88rem;
  font-weight: 800;
  transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease;
}

.category-button:hover {
  background: var(--white);
  color: var(--black);
  transform: translateY(-2px);
}

@media (max-width: 950px) {
  .categories-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 620px) {
  .membership-categories-section {
    padding: 4.5rem 5%;
  }

  .membership-categories-header {
    margin-bottom: 2.5rem;
  }

  .categories-grid {
    grid-template-columns: 1fr;
  }

  .category-card {
    min-height: auto;
    padding: 1.5rem;
  }
}


/*--------------- Membership Requirements ---------------*/
.membership-requirements-section {
  width: 100%;
  padding: 6.5rem 5%;
  background: var(--soft-white);
}

.membership-requirements-container {
  max-width: 1320px;
  margin: 0 auto;
}

.membership-requirements-header {
  max-width: 850px;
  margin: 0 auto 3.5rem;
  text-align: center;
}

.requirements-kicker {
  color: var(--primary-green);
}

.membership-requirements-header h1 {
  margin: 0;
  color: var(--black);
  font-size: clamp(2.4rem, 5vw, 5rem);
  line-height: 1;
  font-weight: 800;
}

.requirements-title-line {
  display: block;
  width: 95px;
  height: 5px;
  margin: 1.2rem auto 1.4rem;
  border-radius: 999px;
  background: var(--primary-green);
  transform-origin: center;
}

.requirements-supporting-text {
  max-width: 760px;
  margin: 0 auto;
  color: rgba(0, 0, 0, 0.72);
  font-size: 1rem;
  line-height: 1.8;
  font-weight: 500;
}

.requirements-layout {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 1.5rem;
  align-items: start;
}

.requirements-list {
  display: grid;
  gap: 1rem;
}

.requirement-card {
  display: grid;
  grid-template-columns: 72px 1fr;
  gap: 1.25rem;
  padding: 1.5rem;
  border-radius: 8px;
  background: var(--white);
  border: 1px solid rgba(0, 0, 0, 0.06);
  box-shadow: 0 14px 36px rgba(0, 0, 0, 0.05);
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.requirement-card:hover {
  transform: translateY(-5px);
  border-color: rgba(74, 222, 128, 0.7);
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.1);
}

.requirement-number {
  width: 58px;
  height: 58px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: var(--primary-green);
  color: var(--black);
  font-size: 1rem;
  font-weight: 900;
}

.requirement-card h2 {
  margin: 0 0 0.55rem;
  color: var(--black);
  font-size: 1.25rem;
  line-height: 1.25;
  font-weight: 800;
}

.requirement-card p {
  margin: 0;
  color: rgba(0, 0, 0, 0.72);
  font-size: 0.95rem;
  line-height: 1.75;
  font-weight: 500;
}

.requirements-summary-card {
  position: sticky;
  top: 110px;
  padding: 2rem;
  border-radius: 8px;
  background: var(--black);
  color: var(--white);
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.12);
}

.summary-icon {
  width: 58px;
  height: 58px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.4rem;
  border-radius: 8px;
  background: var(--primary-green);
  color: var(--black);
  font-size: 1.3rem;
}

.requirements-summary-card h2 {
  margin: 0 0 0.85rem;
  color: var(--white);
  font-size: clamp(1.6rem, 3vw, 2.4rem);
  line-height: 1.1;
  font-weight: 800;
}

.requirements-summary-card p {
  margin: 0 0 1.25rem;
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.95rem;
  line-height: 1.75;
  font-weight: 500;
}

.requirements-summary-card ul {
  list-style: none;
  margin: 0 0 1.6rem;
  padding: 0;
}

.requirements-summary-card li {
  position: relative;
  padding-left: 1.45rem;
  margin-bottom: 0.75rem;
  color: rgba(255, 255, 255, 0.86);
  font-size: 0.92rem;
  line-height: 1.55;
  font-weight: 600;
}

.requirements-summary-card li::before {
  content: "";
  position: absolute;
  top: 0.48rem;
  left: 0;
  width: 0.52rem;
  height: 0.52rem;
  border-radius: 50%;
  background: var(--primary-green);
}

.requirements-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  width: 100%;
  padding: 0 1.35rem;
  border-radius: 8px;
  background: var(--primary-green);
  color: var(--black);
  text-decoration: none;
  font-size: 0.9rem;
  font-weight: 800;
  transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease;
}

.requirements-button:hover {
  background: var(--white);
  color: var(--black);
  transform: translateY(-2px);
}

@media (max-width: 950px) {
  .requirements-layout {
    grid-template-columns: 1fr;
  }

  .requirements-summary-card {
    position: static;
  }
}

@media (max-width: 620px) {
  .membership-requirements-section {
    padding: 4.5rem 5%;
  }

  .membership-requirements-header {
    margin-bottom: 2.5rem;
  }

  .requirement-card {
    grid-template-columns: 1fr;
    padding: 1.4rem;
  }

  .requirements-summary-card {
    padding: 1.5rem;
  }
}

/*--------------- Apply For Membership ---------------*/
.apply-membership-section {
  width: 100%;
  padding: 6.5rem 5%;
  background: var(--soft-white);
}

.apply-membership-container {
  max-width: 1320px;
  margin: 0 auto;
}

.apply-membership-header {
  max-width: 850px;
  margin: 0 auto 3.5rem;
  text-align: center;
}

.apply-kicker {
  color: var(--primary-green);
}

.apply-membership-header h1 {
  margin: 0;
  color: var(--black);
  font-size: clamp(2.4rem, 5vw, 5rem);
  line-height: 1;
  font-weight: 800;
}

.apply-title-line {
  display: block;
  width: 95px;
  height: 5px;
  margin: 1.2rem auto 1.4rem;
  border-radius: 999px;
  background: var(--primary-green);
  transform-origin: center;
}

.apply-supporting-text {
  max-width: 760px;
  margin: 0 auto;
  color: rgba(0, 0, 0, 0.72);
  font-size: 1rem;
  line-height: 1.8;
  font-weight: 500;
}

.apply-membership-layout {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 1.5rem;
  align-items: start;
}

.membership-application-form {
  padding: 2rem;
  border-radius: 8px;
  background: var(--white);
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.07);
}

.form-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.2rem;
}

.form-group {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

.form-group.full-width {
  margin-top: 1.2rem;
}

.form-group label,
.form-check label {
  color: var(--black);
  font-size: 0.9rem;
  font-weight: 800;
}

.form-group input,
.form-group select,
.form-group textarea {
  width: 100%;
  min-height: 48px;
  padding: 0 1rem;
  border: 1px solid rgba(0, 0, 0, 0.12);
  border-radius: 8px;
  outline: none;
  background: var(--soft-white);
  color: var(--black);
  font-family: "Montserrat", sans-serif;
  font-size: 0.92rem;
}

.form-group textarea {
  min-height: 150px;
  padding-top: 1rem;
  resize: vertical;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  border-color: var(--primary-green);
  box-shadow: 0 0 0 4px rgba(74, 222, 128, 0.18);
}

.form-check {
  display: grid;
  grid-template-columns: 18px 1fr;
  gap: 0.75rem;
  margin: 1.3rem 0;
}

.form-check input {
  margin-top: 0.2rem;
  accent-color: var(--primary-green);
}

.form-check label {
  line-height: 1.6;
  font-weight: 600;
  color: rgba(0, 0, 0, 0.78);
}

.application-submit-button {
  width: 100%;
  min-height: 48px;
  border: none;
  border-radius: 8px;
  background: var(--primary-green);
  color: var(--black);
  font-family: "Montserrat", sans-serif;
  font-size: 0.92rem;
  font-weight: 900;
  cursor: pointer;
  transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease;
}

.application-submit-button:hover {
  background: var(--black);
  color: var(--white);
  transform: translateY(-2px);
}

.apply-info-card {
  position: sticky;
  top: 110px;
  padding: 2rem;
  border-radius: 8px;
  background: var(--black);
  color: var(--white);
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.12);
}

.apply-info-icon {
  width: 58px;
  height: 58px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.4rem;
  border-radius: 8px;
  background: var(--primary-green);
  color: var(--black);
  font-size: 1.3rem;
}

.apply-info-card h2 {
  margin: 0 0 1.25rem;
  color: var(--white);
  font-size: clamp(1.6rem, 3vw, 2.4rem);
  line-height: 1.1;
  font-weight: 800;
}

.apply-info-card ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.apply-info-card li {
  display: grid;
  grid-template-columns: 22px 1fr;
  gap: 0.75rem;
  margin-bottom: 1rem;
  color: rgba(255, 255, 255, 0.82);
  font-size: 0.92rem;
  line-height: 1.6;
  font-weight: 500;
}

.apply-info-card li i {
  margin-top: 0.25rem;
  color: var(--primary-green);
}

.apply-contact-note {
  margin-top: 1.6rem;
  padding-top: 1.4rem;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
}

.apply-contact-note h3 {
  margin: 0 0 0.45rem;
  color: var(--white);
  font-size: 1rem;
  font-weight: 800;
}

.apply-contact-note p {
  margin: 0;
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.92rem;
  line-height: 1.7;
}

.apply-contact-note a {
  color: var(--primary-green);
  text-decoration: none;
  font-weight: 800;
}

@media (max-width: 950px) {
  .apply-membership-layout {
    grid-template-columns: 1fr;
  }

  .apply-info-card {
    position: static;
  }
}

@media (max-width: 620px) {
  .apply-membership-section {
    padding: 4.5rem 5%;
  }

  .apply-membership-header {
    margin-bottom: 2.5rem;
  }

  .membership-application-form,
  .apply-info-card {
    padding: 1.5rem;
  }

  .form-grid {
    grid-template-columns: 1fr;
  }
}


/*--------------- Renew Membership ---------------*/
.renew-membership-section {
  width: 100%;
  padding: 6.5rem 5%;
  background: var(--soft-white);
}

.renew-membership-container {
  max-width: 1320px;
  margin: 0 auto;
}

.renew-membership-header {
  max-width: 850px;
  margin: 0 auto 3.5rem;
  text-align: center;
}

.renew-kicker {
  color: var(--primary-green);
}

.renew-membership-header h1 {
  margin: 0;
  color: var(--black);
  font-size: clamp(2.4rem, 5vw, 5rem);
  line-height: 1;
  font-weight: 800;
}

.renew-title-line {
  display: block;
  width: 95px;
  height: 5px;
  margin: 1.2rem auto 1.4rem;
  border-radius: 999px;
  background: var(--primary-green);
  transform-origin: center;
}

.renew-supporting-text {
  max-width: 760px;
  margin: 0 auto;
  color: rgba(0, 0, 0, 0.72);
  font-size: 1rem;
  line-height: 1.8;
  font-weight: 500;
}

.renew-membership-layout {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 1.5rem;
  align-items: start;
}

.renew-membership-form {
  padding: 2rem;
  border-radius: 8px;
  background: var(--white);
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.07);
}

.renew-submit-button {
  width: 100%;
  min-height: 48px;
  border: none;
  border-radius: 8px;
  background: var(--primary-green);
  color: var(--black);
  font-family: "Montserrat", sans-serif;
  font-size: 0.92rem;
  font-weight: 900;
  cursor: pointer;
  transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease;
}

.renew-submit-button:hover {
  background: var(--black);
  color: var(--white);
  transform: translateY(-2px);
}

.renew-info-card {
  position: sticky;
  top: 110px;
  padding: 2rem;
  border-radius: 8px;
  background: var(--black);
  color: var(--white);
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.12);
}

.renew-info-icon {
  width: 58px;
  height: 58px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.4rem;
  border-radius: 8px;
  background: var(--primary-green);
  color: var(--black);
  font-size: 1.3rem;
}

.renew-info-card h2 {
  margin: 0 0 1.25rem;
  color: var(--white);
  font-size: clamp(1.6rem, 3vw, 2.4rem);
  line-height: 1.1;
  font-weight: 800;
}

.renew-info-card ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.renew-info-card li {
  display: grid;
  grid-template-columns: 22px 1fr;
  gap: 0.75rem;
  margin-bottom: 1rem;
  color: rgba(255, 255, 255, 0.82);
  font-size: 0.92rem;
  line-height: 1.6;
  font-weight: 500;
}

.renew-info-card li i {
  margin-top: 0.25rem;
  color: var(--primary-green);
}

.renew-contact-note {
  margin-top: 1.6rem;
  padding-top: 1.4rem;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
}

.renew-contact-note h3 {
  margin: 0 0 0.45rem;
  color: var(--white);
  font-size: 1rem;
  font-weight: 800;
}

.renew-contact-note p {
  margin: 0;
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.92rem;
  line-height: 1.7;
}

.renew-contact-note a {
  color: var(--primary-green);
  text-decoration: none;
  font-weight: 800;
}

@media (max-width: 950px) {
  .renew-membership-layout {
    grid-template-columns: 1fr;
  }

  .renew-info-card {
    position: static;
  }
}

@media (max-width: 620px) {
  .renew-membership-section {
    padding: 4.5rem 5%;
  }

  .renew-membership-header {
    margin-bottom: 2.5rem;
  }

  .renew-membership-form,
  .renew-info-card {
    padding: 1.5rem;
  }
}


/*--------------- News And Announcements Page ---------------*/
.news-announcements-section {
  width: 100%;
  padding: 6.5rem 5%;
  background: var(--soft-white);
}

.news-announcements-container {
  max-width: 1320px;
  margin: 0 auto;
}

.news-announcements-header {
  max-width: 850px;
  margin: 0 auto 3.5rem;
  text-align: center;
}

.news-page-kicker {
  color: var(--primary-green);
}

.news-announcements-header h1 {
  margin: 0;
  color: var(--black);
  font-size: clamp(2.4rem, 5vw, 5rem);
  line-height: 1;
  font-weight: 800;
}

.news-page-title-line {
  display: block;
  width: 95px;
  height: 5px;
  margin: 1.2rem auto 1.4rem;
  border-radius: 999px;
  background: var(--primary-green);
  transform-origin: center;
}

.news-page-supporting-text {
  max-width: 760px;
  margin: 0 auto;
  color: rgba(0, 0, 0, 0.72);
  font-size: 1rem;
  line-height: 1.8;
  font-weight: 500;
}

/* Featured Blog */
.featured-blog-card {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  overflow: hidden;
  margin-bottom: 1.5rem;
  border-radius: 8px;
  background: var(--white);
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.08);
}

.featured-blog-image {
  min-height: 440px;
  overflow: hidden;
}

.featured-blog-image img,
.blog-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s ease;
}

.featured-blog-card:hover .featured-blog-image img,
.blog-card:hover .blog-card-image img {
  transform: scale(1.07);
}

.featured-blog-content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 2.5rem;
}

.blog-category {
  display: inline-flex;
  width: fit-content;
  margin-bottom: 1rem;
  padding: 0.45rem 0.75rem;
  border-radius: 999px;
  background: rgba(74, 222, 128, 0.18);
  color: var(--black);
  font-size: 0.76rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.featured-blog-content h2,
.blog-card-content h2 {
  margin: 0 0 0.9rem;
  color: var(--black);
  font-weight: 800;
  line-height: 1.18;
}

.featured-blog-content h2 {
  font-size: clamp(1.9rem, 4vw, 3.4rem);
}

.blog-card-content h2 {
  font-size: 1.25rem;
}

.featured-blog-content p,
.blog-card-content p {
  margin: 0 0 1.25rem;
  color: rgba(0, 0, 0, 0.72);
  font-size: 0.95rem;
  line-height: 1.75;
  font-weight: 500;
}

.blog-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: 1.35rem;
}

.blog-meta span {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  color: rgba(0, 0, 0, 0.62);
  font-size: 0.84rem;
  font-weight: 700;
}

.blog-meta i {
  color: var(--primary-green);
}

/* Blog Grid */
.blogs-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}

.blog-card {
  overflow: hidden;
  border-radius: 8px;
  background: var(--white);
  box-shadow: 0 14px 36px rgba(0, 0, 0, 0.06);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.blog-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.12);
}

.blog-card-image {
  width: 100%;
  height: 245px;
  overflow: hidden;
}

.blog-card-content {
  padding: 1.5rem;
}

.blog-button,
.blog-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  text-decoration: none;
  font-size: 0.88rem;
  font-weight: 900;
  transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease;
}

.blog-button {
  width: fit-content;
  padding: 0 1.25rem;
  border-radius: 8px;
  background: var(--primary-green);
  color: var(--black);
}

.blog-button:hover {
  background: var(--black);
  color: var(--white);
  transform: translateY(-2px);
}

.blog-link {
  color: var(--black);
}

.blog-link::after {
  content: "";
  width: 28px;
  height: 2px;
  margin-left: 0.6rem;
  background: var(--primary-green);
  transition: width 0.25s ease;
}

.blog-link:hover {
  color: var(--primary-green);
}

.blog-link:hover::after {
  width: 42px;
}

@media (max-width: 950px) {
  .featured-blog-card {
    grid-template-columns: 1fr;
  }

  .featured-blog-image {
    min-height: 340px;
  }

  .blogs-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 620px) {
  .news-announcements-section {
    padding: 4.5rem 5%;
  }

  .news-announcements-header {
    margin-bottom: 2.5rem;
  }

  .featured-blog-content {
    padding: 1.5rem;
  }

  .featured-blog-image,
  .blog-card-image {
    min-height: 240px;
    height: 240px;
  }

  .blogs-grid {
    grid-template-columns: 1fr;
  }
}


/*---------------- Events Page ---------------*/
.events-page-section {
  width: 100%;
  padding: 6.5rem 5%;
  background: var(--soft-white);
}

.events-page-container {
  max-width: 1320px;
  margin: 0 auto;
}

.events-page-header {
  max-width: 850px;
  margin: 0 auto 3.5rem;
  text-align: center;
}

.events-page-kicker {
  color: var(--primary-green);
}

.events-page-header h1 {
  margin: 0;
  color: var(--black);
  font-size: clamp(2.4rem, 5vw, 5rem);
  line-height: 1;
  font-weight: 800;
}

.events-page-title-line {
  display: block;
  width: 95px;
  height: 5px;
  margin: 1.2rem auto 1.4rem;
  border-radius: 999px;
  background: var(--primary-green);
  transform-origin: center;
}

.events-page-supporting-text {
  max-width: 760px;
  margin: 0 auto;
  color: rgba(0, 0, 0, 0.72);
  font-size: 1rem;
  line-height: 1.8;
  font-weight: 500;
}

/* Flexible event grid */
.events-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 310px), 1fr));
  gap: 1.5rem;
  align-items: stretch;
}

.event-page-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  min-height: 100%;
  border-radius: 8px;
  background: var(--white);
  box-shadow: 0 14px 36px rgba(0, 0, 0, 0.06);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.event-page-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.12);
}

.event-page-image {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--black);
}

.event-page-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.55s ease;
}

.event-page-card:hover .event-page-image img {
  transform: scale(1.07);
}

.event-status {
  position: absolute;
  top: 1rem;
  left: 1rem;
  padding: 0.45rem 0.75rem;
  border-radius: 999px;
  background: var(--black);
  color: var(--white);
  font-size: 0.72rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.event-status.upcoming {
  background: var(--primary-green);
  color: var(--black);
}

.event-page-content {
  display: grid;
  grid-template-columns: 72px 1fr;
  gap: 1rem;
  flex: 1;
  padding: 1.4rem;
}

.event-date-box {
  width: 72px;
  height: 78px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: var(--primary-green);
  color: var(--black);
}

.event-date-box span {
  font-size: 1.55rem;
  line-height: 1;
  font-weight: 900;
}

.event-date-box small {
  margin-top: 0.3rem;
  font-size: 0.78rem;
  font-weight: 900;
  text-transform: uppercase;
}

.event-page-details {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.event-page-details h2 {
  margin: 0 0 0.8rem;
  color: var(--black);
  font-size: 1.25rem;
  line-height: 1.25;
  font-weight: 800;
}

.event-meta-list {
  list-style: none;
  margin: 0 0 1rem;
  padding: 0;
  display: grid;
  gap: 0.45rem;
}

.event-meta-list li {
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
  color: rgba(0, 0, 0, 0.66);
  font-size: 0.84rem;
  line-height: 1.45;
  font-weight: 700;
}

.event-meta-list i {
  margin-top: 0.15rem;
  color: var(--primary-green);
}

.event-page-details p {
  margin: 0 0 1.2rem;
  color: rgba(0, 0, 0, 0.72);
  font-size: 0.92rem;
  line-height: 1.7;
  font-weight: 500;
}

.event-page-button {
  margin-top: auto;
  width: fit-content;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0 1.15rem;
  border-radius: 8px;
  background: var(--black);
  color: var(--white);
  text-decoration: none;
  font-size: 0.86rem;
  font-weight: 900;
  transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease;
}

.event-page-button:hover {
  background: var(--primary-green);
  color: var(--black);
  transform: translateY(-2px);
}

@media (max-width: 620px) {
  .events-page-section {
    padding: 4.5rem 5%;
  }

  .events-page-header {
    margin-bottom: 2.5rem;
  }

  .event-page-content {
    grid-template-columns: 1fr;
  }

  .event-date-box {
    width: 68px;
    height: 72px;
  }
}


/*--------------- Event Details ---------------*/
.event-details-section {
  width: 100%;
  padding: 6.5rem 5%;
  background: var(--soft-white);
}

.event-details-container {
  max-width: 1320px;
  margin: 0 auto;
}

.event-details-hero {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 2rem;
  align-items: center;
}

.event-details-image {
  min-height: 520px;
  overflow: hidden;
  border-radius: 8px;
  background: var(--black);
}

.event-details-image img {
  width: 100%;
  height: 100%;
  min-height: 520px;
  object-fit: cover;
  display: block;
}

.event-details-content {
  padding: 2.5rem;
  border-radius: 8px;
  background: var(--white);
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.08);
}

.event-details-kicker {
  color: var(--primary-green);
}

.event-details-content h1 {
  margin: 0;
  color: var(--black);
  font-size: clamp(1.5rem, 3vw, 1.9rem);
  line-height: 1;
  font-weight: 800;
}

.event-details-title-line,
.participants-title-line {
  display: block;
  width: 95px;
  height: 5px;
  margin: 1.2rem 0 1.4rem;
  border-radius: 999px;
  background: var(--primary-green);
  transform-origin: left;
}

.event-details-intro {
  margin: 0 0 1.8rem;
  color: rgba(0, 0, 0, 0.72);
  font-size: 1rem;
  line-height: 1.8;
  font-weight: 500;
}

.event-info-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}

.event-info-item {
  display: grid;
  grid-template-columns: 44px 1fr;
  gap: 0.85rem;
  align-items: center;
  padding: 1rem;
  border-radius: 8px;
  background: var(--soft-white);
}

.event-info-item i {
  color: var(--primary-green);
  font-size: 1.2rem;
}

.event-info-item span {
  display: block;
  margin-bottom: 0.2rem;
  color: rgba(0, 0, 0, 0.55);
  font-size: 0.78rem;
  font-weight: 800;
  text-transform: uppercase;
}

.event-info-item p {
  margin: 0;
  color: var(--black);
  font-size: 0.92rem;
  font-weight: 800;
}

.event-details-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  margin-top: 2rem;
  padding: 0 1.35rem;
  border-radius: 8px;
  background: var(--primary-green);
  color: var(--black);
  text-decoration: none;
  font-size: 0.9rem;
  font-weight: 900;
}

.event-description-block {
  margin-top: 4rem;
  padding: 2.5rem;
  border-radius: 8px;
  background: var(--white);
}

.event-description-block h2,
.participants-header h2 {
  margin: 0 0 1rem;
  color: var(--black);
  font-size: clamp(1.8rem, 4vw, 3.4rem);
  line-height: 1.1;
  font-weight: 800;
}

.event-description-block p {
  margin: 0 0 1rem;
  color: rgba(0, 0, 0, 0.72);
  font-size: 1rem;
  line-height: 1.8;
  font-weight: 500;
}

.participants-section {
  margin-top: 5rem;
}

.participants-header {
  max-width: 760px;
  margin-bottom: 3rem;
}

.participants-kicker {
  color: var(--primary-green);
}

.participants-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
  gap: 1.5rem;
}

.participant-card {
  overflow: hidden;
  border-radius: 8px;
  background: var(--white);
  box-shadow: 0 14px 36px rgba(0, 0, 0, 0.06);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.participant-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.12);
}

.participant-image {
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
}

.participant-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.participant-info {
  padding: 1.25rem;
  text-align: center;
}

.participant-info h3 {
  margin: 0 0 0.45rem;
  color: var(--black);
  font-size: 1rem;
  line-height: 1.35;
  font-weight: 800;
}

.participant-info p {
  margin: 0;
  color: var(--primary-green);
  font-size: 0.85rem;
  font-weight: 900;
  text-transform: uppercase;
}

@media (max-width: 950px) {
  .event-details-hero {
    grid-template-columns: 1fr;
  }

  .event-details-image,
  .event-details-image img {
    min-height: 380px;
  }
}

@media (max-width: 620px) {
  .event-details-section {
    padding: 4.5rem 5%;
  }

  .event-details-content,
  .event-description-block {
    padding: 1.5rem;
  }

  .event-info-grid {
    grid-template-columns: 1fr;
  }
}



/*--------------- Event Concluded ---------------*/
.event-concluded-section {
  width: 100%;
  min-height: 70vh;
  padding: 6.5rem 5%;
  background: var(--soft-white);
  display: flex;
  align-items: center;
}

.event-concluded-container {
  width: 100%;
  max-width: 1320px;
  margin: 0 auto;
}

.event-concluded-card {
  max-width: 820px;
  margin: 0 auto;
  padding: 3.5rem 2.5rem;
  border-radius: 8px;
  background: var(--white);
  text-align: center;
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.08);
}

.event-concluded-icon {
  width: 74px;
  height: 74px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.4rem;
  border-radius: 8px;
  background: var(--primary-green);
  color: var(--black);
  font-size: 2rem;
}

.event-concluded-kicker {
  color: var(--primary-green);
}

.event-concluded-card h1 {
  margin: 0;
  color: var(--black);
  font-size: clamp(2.4rem, 5vw, 4.8rem);
  line-height: 1;
  font-weight: 800;
}

.event-concluded-title-line {
  display: block;
  width: 95px;
  height: 5px;
  margin: 1.2rem auto 1.4rem;
  border-radius: 999px;
  background: var(--primary-green);
}

.event-concluded-card p {
  max-width: 640px;
  margin: 0 auto;
  color: rgba(0, 0, 0, 0.72);
  font-size: 1rem;
  line-height: 1.8;
  font-weight: 500;
}

.event-concluded-actions {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.85rem;
  margin-top: 2rem;
}

.event-concluded-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 0 1.25rem;
  border-radius: 8px;
  text-decoration: none;
  font-size: 0.9rem;
  font-weight: 900;
  transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease;
}

.event-concluded-button.primary {
  background: var(--primary-green);
  color: var(--black);
}

.event-concluded-button.secondary {
  background: var(--soft-white);
  color: var(--black);
}

.event-concluded-button.dark {
  background: var(--black);
  color: var(--white);
}

.event-concluded-button:hover {
  transform: translateY(-2px);
}

.event-concluded-button.primary:hover,
.event-concluded-button.secondary:hover {
  background: var(--black);
  color: var(--white);
}

.event-concluded-button.dark:hover {
  background: var(--primary-green);
  color: var(--black);
}

@media (max-width: 620px) {
  .event-concluded-section {
    padding: 4.5rem 5%;
  }

  .event-concluded-card {
    padding: 2.4rem 1.4rem;
  }

  .event-concluded-actions {
    flex-direction: column;
  }

  .event-concluded-button {
    width: 100%;
  }
}


/*--------------- Community Impact Page ---------------*/
.community-impact-page-section {
  width: 100%;
  padding: 6.5rem 5%;
  background: var(--soft-white);
}

.community-impact-page-container {
  max-width: 1320px;
  margin: 0 auto;
}

.community-impact-page-header {
  max-width: 900px;
  margin: 0 auto 3.5rem;
  text-align: center;
}

.impact-page-kicker {
  color: var(--primary-green);
}

.community-impact-page-header h1 {
  margin: 0;
  color: var(--black);
  font-size: clamp(2.4rem, 5vw, 5rem);
  line-height: 1;
  font-weight: 800;
}

.impact-page-title-line {
  display: block;
  width: 95px;
  height: 5px;
  margin: 1.2rem auto 1.4rem;
  border-radius: 999px;
  background: var(--primary-green);
  transform-origin: center;
}

.impact-page-supporting-text {
  max-width: 780px;
  margin: 0 auto;
  color: rgba(0, 0, 0, 0.72);
  font-size: 1rem;
  line-height: 1.8;
  font-weight: 500;
}

/* Feature */
.impact-feature-layout {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 2rem;
  align-items: center;
  margin-bottom: 4rem;
}

.impact-feature-image {
  min-height: 500px;
  overflow: hidden;
  border-radius: 8px;
  background: var(--black);
}

.impact-feature-image img {
  width: 100%;
  height: 100%;
  min-height: 500px;
  object-fit: cover;
  display: block;
  transition: transform 0.55s ease;
}

.impact-feature-layout:hover .impact-feature-image img {
  transform: scale(1.06);
}

.impact-feature-content {
  padding: 2.5rem;
  border-radius: 8px;
  background: var(--white);
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.08);
}

.impact-feature-kicker {
  color: var(--primary-green);
}

.impact-feature-content h2 {
  margin: 0 0 1.2rem;
  color: var(--black);
  font-size: clamp(0,5rem, 2vw, 1.5rem);
  line-height: 1.08;
  font-weight: 800;
}

.impact-feature-content p {
  margin: 0 0 1rem;
  color: rgba(0, 0, 0, 0.72);
  font-size: 1rem;
  line-height: 1.8;
  font-weight: 500;
}

.impact-page-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  margin-top: 1rem;
  padding: 0 1.35rem;
  border-radius: 8px;
  background: var(--primary-green);
  color: var(--black);
  text-decoration: none;
  font-size: 0.9rem;
  font-weight: 900;
  transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease;
}

.impact-page-button:hover {
  background: var(--black);
  color: var(--white);
  transform: translateY(-2px);
}

/* Pillars */
.impact-pillars-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 290px), 1fr));
  gap: 1.5rem;
}

.impact-pillar-card {
  min-height: 310px;
  padding: 2rem;
  border-radius: 8px;
  background: var(--white);
  border: 1px solid rgba(0, 0, 0, 0.06);
  box-shadow: 0 14px 36px rgba(0, 0, 0, 0.06);
  transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
}

.impact-pillar-card:hover {
  transform: translateY(-8px);
  background: var(--primary-green);
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.12);
}

.impact-pillar-icon {
  width: 54px;
  height: 54px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.4rem;
  border-radius: 8px;
  background: var(--primary-green);
  color: var(--black);
  font-size: 1.25rem;
  transition: background 0.25s ease, color 0.25s ease;
}

.impact-pillar-card:hover .impact-pillar-icon {
  background: var(--black);
  color: var(--white);
}

.impact-pillar-card h2 {
  margin: 0 0 0.85rem;
  color: var(--black);
  font-size: 1.35rem;
  line-height: 1.25;
  font-weight: 800;
}

.impact-pillar-card p {
  margin: 0;
  color: rgba(0, 0, 0, 0.72);
  font-size: 0.95rem;
  line-height: 1.75;
  font-weight: 500;
}

/* Stats Band */
.impact-stats-band {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  overflow: hidden;
  margin-top: 4rem;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.16);
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.08);
}

.impact-stats-band article {
  padding: 2rem 1.5rem;
  background: var(--black);
  text-align: center;
}

.impact-stats-band h3 {
  margin: 0 0 0.55rem;
  color: var(--primary-green);
  font-size: 1.5rem;
  font-weight: 900;
}

.impact-stats-band p {
  margin: 0;
  color: rgba(255, 255, 255, 0.76);
  font-size: 0.92rem;
  line-height: 1.5;
  font-weight: 600;
}

@media (max-width: 950px) {
  .impact-feature-layout {
    grid-template-columns: 1fr;
  }

  .impact-feature-image,
  .impact-feature-image img {
    min-height: 380px;
  }

  .impact-stats-band {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 620px) {
  .community-impact-page-section {
    padding: 4.5rem 5%;
  }

  .community-impact-page-header {
    margin-bottom: 2.5rem;
  }

  .impact-feature-content,
  .impact-pillar-card {
    padding: 1.5rem;
  }

  .impact-feature-image,
  .impact-feature-image img {
    min-height: 300px;
  }

  .impact-stats-band {
    grid-template-columns: 1fr;
  }
}



/*--------------- Gallery Page ---------------*/

.gallery-page-section {
  width: 100%;
  padding: 6.5rem 5%;
  background: var(--soft-white);
}

.gallery-page-container {
  max-width: 1320px;
  margin: 0 auto;
}

.gallery-page-header {
  max-width: 850px;
  margin: 0 auto 2.5rem;
  text-align: center;
}

.gallery-page-kicker {
  color: var(--primary-green);
}

.gallery-page-header h1 {
  margin: 0;
  color: var(--black);
  font-size: clamp(2.4rem, 5vw, 5rem);
  line-height: 1;
  font-weight: 800;
}

.gallery-page-title-line {
  display: block;
  width: 95px;
  height: 5px;
  margin: 1.2rem auto 1.4rem;
  border-radius: 999px;
  background: var(--primary-green);
  transform-origin: center;
}

.gallery-page-supporting-text {
  max-width: 760px;
  margin: 0 auto;
  color: rgba(0, 0, 0, 0.72);
  font-size: 1rem;
  line-height: 1.8;
  font-weight: 500;
}

/* Filters */
.gallery-filter-row {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-bottom: 3rem;
}

.gallery-filter {
  min-height: 40px;
  padding: 0 1rem;
  border: none;
  border-radius: 8px;
  background: var(--white);
  color: var(--black);
  font-family: "Montserrat", sans-serif;
  font-size: 0.86rem;
  font-weight: 800;
  cursor: pointer;
  box-shadow: 0 10px 26px rgba(0, 0, 0, 0.05);
  transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease;
}

.gallery-filter.active,
.gallery-filter:hover {
  background: var(--primary-green);
  color: var(--black);
  transform: translateY(-2px);
}

/* Uniform Gallery Grid */
.gallery-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
  gap: 1rem;
}

.gallery-item {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  border-radius: 8px;
  background: var(--black);
  text-decoration: none;
  box-shadow: 0 14px 36px rgba(0, 0, 0, 0.06);
}

.gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform 0.55s ease, opacity 0.25s ease;
}

/* Overlay */
.gallery-item::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(0deg, rgba(0, 0, 0, 0.45), transparent 65%);
  opacity: 0;
  transition: opacity 0.25s ease;
}

.gallery-overlay {
  position: absolute;
  left: 1rem;
  right: 1rem;
  bottom: 1rem;
  z-index: 2;
  padding: 1rem;
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.72);
  color: var(--white);
  transform: translateY(18px);
  opacity: 0;
  transition: transform 0.25s ease, opacity 0.25s ease;
}

.gallery-overlay strong,
.gallery-overlay small {
  display: block;
}

.gallery-overlay strong {
  margin-bottom: 0.25rem;
  font-size: 1rem;
  font-weight: 900;
}

.gallery-overlay small {
  color: var(--primary-green);
  font-size: 0.78rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.gallery-item:hover img {
  transform: scale(1.08);
  opacity: 0.92;
}

.gallery-item:hover::before,
.gallery-item:hover .gallery-overlay {
  opacity: 1;
}

.gallery-item:hover .gallery-overlay {
  transform: translateY(0);
}

/* Responsive */
@media (max-width: 620px) {
  .gallery-page-section {
    padding: 4.5rem 5%;
  }

  .gallery-page-header {
    margin-bottom: 2rem;
  }

  .gallery-filter-row {
    justify-content: flex-start;
    margin-bottom: 2rem;
  }

  .gallery-filter {
    font-size: 0.8rem;
  }

  .gallery-grid {
    grid-template-columns: 1fr;
  }
}

/*--------------- I Will Be There Page ---------------*/
.iwill-page {
  background: var(--soft-white);
  color: var(--black);
}

.iwill-builder-section {
  width: 100%;
  padding: 5rem 5% 4rem;
  background:
    radial-gradient(circle at 20% 20%, rgba(74, 222, 128, 0.18), transparent 32%),
    linear-gradient(135deg, #ffffff 0%, #f7fff9 45%, #ffffff 100%);
}

.iwill-builder-container {
  max-width: 1320px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(320px, 0.95fr) minmax(320px, 1fr);
  gap: clamp(2rem, 5vw, 5rem);
  align-items: center;
}

.iwill-preview-panel {
  display: grid;
  gap: 1rem;
  justify-items: center;
}

.iwill-canvas {
  width: min(100%, 620px);
  aspect-ratio: 1 / 1;
  display: block;
  border-radius: 18px;
  background: #ffffff;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.14);
}

.iwill-status {
  width: min(100%, 620px);
  padding: 0.9rem 1rem;
  border-radius: 10px;
  background: rgba(0, 0, 0, 0.82);
  color: #ffffff;
  font-size: 0.88rem;
  font-weight: 700;
  text-align: center;
}

.iwill-controls-panel {
  max-width: 620px;
}

.iwill-kicker {
  display: inline-flex;
  align-items: center;
  margin-bottom: 1rem;
  color: #16803b;
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.iwill-controls-panel h1 {
  margin: 0 0 1rem;
  color: var(--black);
  font-size: clamp(2.5rem, 5vw, 5.3rem);
  line-height: 0.95;
}

.iwill-controls-panel p {
  margin: 0 0 1.5rem;
  color: rgba(0, 0, 0, 0.72);
  font-size: 1rem;
  line-height: 1.8;
}

.iwill-alert {
  margin-bottom: 1rem;
  padding: 1rem;
  border-radius: 10px;
  font-size: 0.92rem;
  font-weight: 700;
}

.iwill-alert.success {
  background: rgba(74, 222, 128, 0.2);
  color: #0d632b;
  border: 1px solid rgba(74, 222, 128, 0.45);
}

.iwill-alert.error {
  background: rgba(220, 38, 38, 0.1);
  color: #991b1b;
  border: 1px solid rgba(220, 38, 38, 0.22);
}

.iwill-form {
  display: grid;
  gap: 1rem;
}

.iwill-name-field {
  display: grid;
  gap: 0.45rem;
  color: rgba(0, 0, 0, 0.72);
  font-size: 0.85rem;
  font-weight: 800;
}

.iwill-name-field input {
  width: 100%;
  min-height: 50px;
  padding: 0 1rem;
  border: 1px solid rgba(0, 0, 0, 0.12);
  border-radius: 10px;
  background: #ffffff;
  color: #000000;
  font: inherit;
}

.iwill-upload-button {
  min-height: 58px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.7rem;
  padding: 0 1.25rem;
  border-radius: 10px;
  background: var(--primary-green);
  color: var(--black);
  font-weight: 900;
  cursor: pointer;
  box-shadow: 0 16px 30px rgba(74, 222, 128, 0.32);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.iwill-upload-button:hover {
  transform: translateY(-2px);
  box-shadow: 0 20px 38px rgba(74, 222, 128, 0.42);
}

.iwill-upload-button input {
  display: none;
}

.iwill-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem;
}

.iwill-actions button {
  min-height: 50px;
  border: none;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  font: inherit;
  font-size: 0.9rem;
  font-weight: 900;
  cursor: pointer;
  transition: transform 0.25s ease, opacity 0.25s ease;
}

.iwill-download {
  background: #000000;
  color: #ffffff;
}

.iwill-submit {
  background: #16803b;
  color: #ffffff;
}

.iwill-actions button:hover:not(:disabled) {
  transform: translateY(-2px);
}

.iwill-actions button:disabled {
  cursor: not-allowed;
  opacity: 0.45;
}

.iwill-gallery-section {
  width: 100%;
  padding: 4.5rem 5% 5.5rem;
  background: #ffffff;
}

.iwill-section-heading {
  max-width: 1320px;
  margin: 0 auto 2rem;
  text-align: center;
}

.iwill-section-heading h2 {
  margin: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.7rem;
  color: #000000;
  font-size: clamp(2rem, 4vw, 3.4rem);
  line-height: 1;
}

.iwill-section-heading h2 i {
  color: var(--primary-green);
}

.iwill-section-heading span,
.iwill-bottom-line {
  display: block;
  width: min(100%, 980px);
  height: 3px;
  margin: 1rem auto 0;
  border-radius: 999px;
  background: linear-gradient(90deg, transparent, var(--primary-green), transparent);
}

.iwill-gallery-grid {
  max-width: 1320px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr));
  gap: 1rem;
}

.iwill-gallery-card {
  min-width: 0;
  padding: 0.8rem;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 12px;
  background: #ffffff;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.08);
}

.iwill-gallery-card img {
  width: 100%;
  aspect-ratio: 1 / 1;
  display: block;
  object-fit: cover;
  border-radius: 9px;
  background: #f4f4f4;
}

.iwill-gallery-card strong {
  display: block;
  margin-top: 0.7rem;
  color: #000000;
  font-size: 0.9rem;
  text-align: center;
}

.iwill-empty-gallery {
  grid-column: 1 / -1;
  min-height: 190px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 0.7rem;
  border: 1px dashed rgba(0, 0, 0, 0.18);
  border-radius: 12px;
  color: rgba(0, 0, 0, 0.62);
  text-align: center;
}

.iwill-empty-gallery i {
  color: var(--primary-green);
  font-size: 2rem;
}

.iwill-empty-gallery p {
  margin: 0;
  font-weight: 700;
}

.iwill-bottom-line {
  margin-top: 2.5rem;
}

.iwill-closing-copy {
  max-width: 850px;
  margin: 2rem auto 0;
  text-align: center;
}

.iwill-closing-copy h3 {
  margin: 0 0 0.7rem;
  color: #000000;
  font-size: clamp(1.5rem, 3vw, 2.2rem);
}

.iwill-closing-copy p {
  margin: 0;
  color: rgba(0, 0, 0, 0.7);
  line-height: 1.8;
}

@media (max-width: 860px) {
  .iwill-builder-section {
    padding-top: 3.5rem;
  }

  .iwill-builder-container {
    grid-template-columns: 1fr;
  }

  .iwill-controls-panel {
    max-width: none;
    text-align: center;
  }

  .iwill-actions {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 540px) {
  .iwill-builder-section,
  .iwill-gallery-section {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .iwill-canvas {
    border-radius: 12px;
  }

  .iwill-controls-panel h1 {
    font-size: 2.6rem;
  }
}


/*--------------- Donate Page ---------------*/
.donate-page-section {
  width: 100%;
  padding: 6.5rem 5%;
  background: var(--soft-white);
}

.donate-page-container {
  max-width: 1320px;
  margin: 0 auto;
}

.donate-page-header {
  max-width: 900px;
  margin: 0 auto 3.5rem;
  text-align: center;
}

.donate-page-kicker,
.donate-story-kicker {
  color: var(--primary-green);
}

.donate-page-header h1 {
  margin: 0;
  color: var(--black);
  font-size: clamp(2.4rem, 5vw, 5rem);
  line-height: 1;
  font-weight: 800;
}

.donate-page-title-line {
  display: block;
  width: 95px;
  height: 5px;
  margin: 1.2rem auto 1.4rem;
  border-radius: 999px;
  background: var(--primary-green);
  transform-origin: center;
}

.donate-page-supporting-text {
  max-width: 780px;
  margin: 0 auto;
  color: rgba(0, 0, 0, 0.72);
  font-size: 1rem;
  line-height: 1.8;
  font-weight: 500;
}

.donate-layout {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 1.5rem;
  align-items: start;
}

.donate-content-card,
.donate-form-card {
  overflow: hidden;
  border-radius: 8px;
  background: var(--white);
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.08);
}

.donate-image {
  width: 100%;
  min-height: 360px;
  overflow: hidden;
  background: var(--black);
}

.donate-image img {
  width: 100%;
  height: 100%;
  min-height: 360px;
  object-fit: cover;
  display: block;
  transition: transform 0.55s ease;
}

.donate-content-card:hover .donate-image img {
  transform: scale(1.06);
}

.donate-story {
  padding: 2.2rem;
}

.donate-story h2,
.donate-form-card h2 {
  margin: 0 0 1rem;
  color: var(--black);
  font-size: clamp(1.8rem, 4vw, 3.2rem);
  line-height: 1.1;
  font-weight: 800;
}

.donate-story p {
  margin: 0 0 1.5rem;
  color: rgba(0, 0, 0, 0.72);
  font-size: 1rem;
  line-height: 1.8;
  font-weight: 500;
}

.donate-impact-list {
  display: grid;
  gap: 0.8rem;
}

.donate-impact-item {
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 0.85rem;
  align-items: center;
  padding: 0.95rem;
  border-radius: 8px;
  background: var(--soft-white);
}

.donate-impact-item i {
  width: 42px;
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: var(--primary-green);
  color: var(--black);
}

.donate-impact-item span {
  color: rgba(0, 0, 0, 0.76);
  font-size: 0.94rem;
  line-height: 1.5;
  font-weight: 700;
}

/* Donation Form */
.donate-form-card {
  position: sticky;
  top: 110px;
  padding: 2rem;
}

.donate-form-icon {
  width: 58px;
  height: 58px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.4rem;
  border-radius: 8px;
  background: var(--primary-green);
  color: var(--black);
  font-size: 1.3rem;
}

.donation-form {
  display: grid;
  gap: 1rem;
}

.donation-amount-options {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.7rem;
}

.donation-amount-options label {
  cursor: pointer;
}

.donation-amount-options input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.donation-amount-options span {
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(0, 0, 0, 0.12);
  border-radius: 8px;
  background: var(--soft-white);
  color: var(--black);
  font-size: 0.9rem;
  font-weight: 900;
  transition: background 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
}

.donation-amount-options input:checked + span,
.donation-amount-options span:hover {
  background: var(--primary-green);
  border-color: var(--primary-green);
  transform: translateY(-2px);
}

.donation-submit-button {
  width: 100%;
  min-height: 48px;
  border: none;
  border-radius: 8px;
  background: var(--primary-green);
  color: var(--black);
  font-family: "Montserrat", sans-serif;
  font-size: 0.92rem;
  font-weight: 900;
  cursor: pointer;
  transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease;
}

.donation-submit-button:hover {
  background: var(--black);
  color: var(--white);
  transform: translateY(-2px);
}

.donation-note {
  margin: 1.3rem 0 0;
  color: rgba(0, 0, 0, 0.68);
  font-size: 0.9rem;
  line-height: 1.65;
  font-weight: 600;
}

.donation-note a {
  color: var(--black);
  font-weight: 900;
  text-decoration: none;
}

.donation-note a:hover {
  color: var(--primary-green);
}

@media (max-width: 950px) {
  .donate-layout {
    grid-template-columns: 1fr;
  }

  .donate-form-card {
    position: static;
  }
}

@media (max-width: 620px) {
  .donate-page-section {
    padding: 4.5rem 5%;
  }

  .donate-page-header {
    margin-bottom: 2.5rem;
  }

  .donate-story,
  .donate-form-card {
    padding: 1.5rem;
  }

  .donation-amount-options {
    grid-template-columns: repeat(2, 1fr);
  }

  .donate-image,
  .donate-image img {
    min-height: 280px;
  }
}




/*--------------- Contact Page ---------------*/
.contact-page-section {
  width: 100%;
  padding: 6.5rem 5%;
  background: var(--soft-white);
}

.contact-page-container {
  max-width: 1320px;
  margin: 0 auto;
}

.contact-page-header {
  max-width: 900px;
  margin: 0 auto 3.5rem;
  text-align: center;
}

.contact-page-kicker {
  color: var(--primary-green);
}

.contact-page-header h1 {
  margin: 0;
  color: var(--black);
  font-size: clamp(2.4rem, 5vw, 5rem);
  line-height: 1;
  font-weight: 800;
}

.contact-page-title-line {
  display: block;
  width: 95px;
  height: 5px;
  margin: 1.2rem auto 1.4rem;
  border-radius: 999px;
  background: var(--primary-green);
  transform-origin: center;
}

.contact-page-supporting-text {
  max-width: 780px;
  margin: 0 auto;
  color: rgba(0, 0, 0, 0.72);
  font-size: 1rem;
  line-height: 1.8;
  font-weight: 500;
}

.contact-layout {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 1.5rem;
  align-items: stretch;
}

.contact-info-panel,
.contact-form {
  border-radius: 8px;
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.08);
}

.contact-info-panel {
  padding: 2.2rem;
  background: var(--black);
  color: var(--white);
}

.contact-panel-icon {
  width: 58px;
  height: 58px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.4rem;
  border-radius: 8px;
  background: var(--primary-green);
  color: var(--black);
  font-size: 1.3rem;
}

.contact-info-panel h2 {
  margin: 0 0 1rem;
  color: var(--white);
  font-size: clamp(1.8rem, 4vw, 3.2rem);
  line-height: 1.1;
  font-weight: 800;
}

.contact-info-panel > p {
  margin: 0 0 1.8rem;
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.98rem;
  line-height: 1.8;
  font-weight: 500;
}

.contact-info-list {
  display: grid;
  gap: 1rem;
}

.contact-info-item {
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 0.85rem;
  align-items: flex-start;
  padding: 1rem;
  border-radius: 8px;
  background: #111111;
}

.contact-info-item i {
  width: 42px;
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: var(--primary-green);
  color: var(--black);
}

.contact-info-item span {
  display: block;
  margin-bottom: 0.25rem;
  color: var(--primary-green);
  font-size: 0.78rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.contact-info-item a,
.contact-info-item p {
  margin: 0;
  color: var(--white);
  text-decoration: none;
  font-size: 0.92rem;
  line-height: 1.6;
  font-weight: 600;
}

.contact-info-item a:hover {
  color: var(--primary-green);
}

.contact-socials {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.8rem;
}

/* Contact Form */
.contact-form {
  padding: 2rem;
  background: var(--white);
}

.contact-submit-button {
  width: 100%;
  min-height: 48px;
  margin-top: 1.3rem;
  border: none;
  border-radius: 8px;
  background: var(--primary-green);
  color: var(--black);
  font-family: "Montserrat", sans-serif;
  font-size: 0.92rem;
  font-weight: 900;
  cursor: pointer;
  transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease;
}

.contact-submit-button:hover {
  background: var(--black);
  color: var(--white);
  transform: translateY(-2px);
}

@media (max-width: 950px) {
  .contact-layout {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 620px) {
  .contact-page-section {
    padding: 4.5rem 5%;
  }

  .contact-page-header {
    margin-bottom: 2.5rem;
  }

  .contact-info-panel,
  .contact-form {
    padding: 1.5rem;
  }
}



/*----------------- U.P.U Canada AI Chat ---------------*/
.upu-ai-chat {
  position: fixed;
  right: 1.5rem;
  bottom: 1.5rem;
  z-index: 2000;
  font-family: "Montserrat", sans-serif;
}

.upu-ai-toggle {
  width: 58px;
  height: 58px;
  border: none;
  border-radius: 8px;
  background: var(--primary-green);
  color: var(--black);
  font-size: 1.35rem;
  cursor: pointer;
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.22);
}

.upu-ai-panel {
  position: absolute;
  right: 0;
  bottom: 76px;
  width: min(380px, calc(100vw - 2rem));
  overflow: hidden;
  border-radius: 8px;
  background: var(--white);
  box-shadow: 0 22px 60px rgba(0, 0, 0, 0.22);
  opacity: 0;
  visibility: hidden;
  transform: translateY(18px) scale(0.96);
  transform-origin: bottom right;
  transition: opacity 0.25s ease, visibility 0.25s ease, transform 0.25s ease;
}

.upu-ai-chat.active .upu-ai-panel {
  opacity: 1;
  visibility: visible;
  transform: translateY(0) scale(1);
}

.upu-ai-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.1rem;
  background: var(--black);
  color: var(--white);
}

.upu-ai-header h3 {
  margin: 0 0 0.25rem;
  font-size: 1rem;
  font-weight: 800;
}

.upu-ai-header p {
  margin: 0;
  color: rgba(255, 255, 255, 0.7);
  font-size: 0.78rem;
  line-height: 1.5;
  font-weight: 500;
}

.upu-ai-close {
  border: none;
  background: transparent;
  color: var(--white);
  font-size: 1.05rem;
  cursor: pointer;
}

.upu-ai-messages {
  height: 360px;
  padding: 1rem;
  overflow-y: auto;
  background: var(--soft-white);
}

.upu-ai-message {
  max-width: 86%;
  margin-bottom: 0.75rem;
}

.upu-ai-message p {
  margin: 0;
  padding: 0.8rem 0.9rem;
  border-radius: 8px;
  font-size: 0.86rem;
  line-height: 1.55;
  font-weight: 500;
}

.upu-ai-message.bot p {
  background: var(--white);
  color: var(--black);
}

.upu-ai-message.user {
  margin-left: auto;
}

.upu-ai-message.user p {
  background: var(--primary-green);
  color: var(--black);
}

.upu-ai-form {
  display: grid;
  grid-template-columns: 1fr 48px;
  gap: 0.65rem;
  padding: 0.85rem;
  background: var(--white);
  border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.upu-ai-form input {
  min-height: 46px;
  padding: 0 0.9rem;
  border: 1px solid rgba(0, 0, 0, 0.12);
  border-radius: 8px;
  outline: none;
  font-family: "Montserrat", sans-serif;
  font-size: 0.86rem;
}

.upu-ai-form input:focus {
  border-color: var(--primary-green);
}

.upu-ai-form button {
  border: none;
  border-radius: 8px;
  background: var(--primary-green);
  color: var(--black);
  cursor: pointer;
  font-size: 1rem;
}

@media (max-width: 560px) {
  .upu-ai-chat {
    right: 1rem;
    bottom: 1rem;
  }

  .upu-ai-messages {
    height: 320px;
  }
}


/*--------------- Resources Page ---------------*/
.resources-section {
  width: 100%;
  padding: 6.5rem 5%;
  background: var(--soft-white);
}

.resources-container {
  max-width: 1320px;
  margin: 0 auto;
}

.resources-header {
  max-width: 900px;
  margin: 0 auto 3rem;
  text-align: center;
}

.resources-kicker {
  color: var(--primary-green);
}

.resources-header h1 {
  margin: 0;
  color: var(--black);
  font-size: clamp(2.4rem, 5vw, 5rem);
  line-height: 1;
  font-weight: 800;
}

.resources-title-line {
  display: block;
  width: 95px;
  height: 5px;
  margin: 1.2rem auto 1.4rem;
  border-radius: 999px;
  background: var(--primary-green);
  transform-origin: center;
}

.resources-supporting-text {
  max-width: 780px;
  margin: 0 auto;
  color: rgba(0, 0, 0, 0.72);
  font-size: 1rem;
  line-height: 1.8;
  font-weight: 500;
}

/* Tabs */
.resources-tabs {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem;
  margin-bottom: 2rem;
}

.resource-tab {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  padding: 0 1rem;
  border: none;
  border-radius: 8px;
  background: var(--white);
  color: var(--black);
  font-family: "Montserrat", sans-serif;
  font-size: 0.84rem;
  font-weight: 900;
  cursor: pointer;
  box-shadow: 0 10px 26px rgba(0, 0, 0, 0.05);
  transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease;
}

.resource-tab i {
  color: var(--primary-green);
  transition: color 0.25s ease;
}

.resource-tab:hover,
.resource-tab.active {
  background: var(--primary-green);
  color: var(--black);
  transform: translateY(-2px);
}

.resource-tab:hover i,
.resource-tab.active i {
  color: var(--black);
}

/* Panels */
.resources-content {
  position: relative;
}

.resource-panel {
  display: none;
  border-radius: 8px;
  background: var(--white);
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.08);
  overflow: hidden;
}

.resource-panel.active {
  display: block;
}

.resource-panel-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.6rem;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.resource-panel-header .section-kicker {
  color: var(--primary-green);
}

.resource-panel-header h2 {
  margin: 0;
  color: var(--black);
  font-size: clamp(1.8rem, 4vw, 3.2rem);
  line-height: 1.05;
  font-weight: 800;
}

.resource-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 0 0.85rem;
  border-radius: 999px;
  background: rgba(74, 222, 128, 0.18);
  color: var(--black);
  font-size: 0.78rem;
  font-weight: 900;
  white-space: nowrap;
}

/* Documents */
.resource-documents-grid {
  display: grid;
  gap: 1rem;
  padding: 1.6rem;
}

.resource-document-card {
  display: grid;
  grid-template-columns: 62px 1fr auto;
  gap: 1rem;
  align-items: center;
  padding: 1.2rem;
  border-radius: 8px;
  background: var(--soft-white);
  border: 1px solid rgba(0, 0, 0, 0.06);
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.resource-document-card:hover {
  transform: translateY(-4px);
  border-color: rgba(74, 222, 128, 0.7);
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.08);
}

.resource-document-icon {
  width: 58px;
  height: 58px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: var(--primary-green);
  color: var(--black);
  font-size: 1.35rem;
}

.resource-document-info h3 {
  margin: 0 0 0.4rem;
  color: var(--black);
  font-size: 1rem;
  line-height: 1.3;
  font-weight: 900;
}

.resource-document-info p {
  margin: 0 0 0.75rem;
  color: rgba(0, 0, 0, 0.68);
  font-size: 0.9rem;
  line-height: 1.6;
  font-weight: 500;
}

.resource-document-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem;
}

.resource-document-meta span {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  color: rgba(0, 0, 0, 0.58);
  font-size: 0.76rem;
  font-weight: 800;
}

.resource-document-meta i {
  color: var(--primary-green);
}

.resource-document-actions {
  display: flex;
  align-items: center;
  gap: 0.6rem;
}

.resource-document-actions a {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 1rem;
  border-radius: 8px;
  text-decoration: none;
  font-size: 0.8rem;
  font-weight: 900;
  transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease;
}

.resource-document-actions a:first-child {
  background: var(--black);
  color: var(--white);
}

.resource-document-actions a:last-child {
  background: var(--primary-green);
  color: var(--black);
}

.resource-document-actions a:hover {
  transform: translateY(-2px);
}

/* Admin-friendly note:
   When connected to the admin dashboard, each uploaded document can create
   another .resource-document-card inside the matching .resource-panel.
*/

@media (max-width: 900px) {
  .resource-document-card {
    grid-template-columns: 58px 1fr;
  }

  .resource-document-actions {
    grid-column: 2;
    justify-content: flex-start;
  }
}

@media (max-width: 620px) {
  .resources-section {
    padding: 4.5rem 5%;
  }

  .resources-header {
    margin-bottom: 2rem;
  }

  .resources-tabs {
    justify-content: flex-start;
    overflow-x: auto;
    flex-wrap: nowrap;
    padding-bottom: 0.4rem;
  }

  .resource-tab {
    flex: 0 0 auto;
    font-size: 0.78rem;
  }

  .resource-panel-header {
    flex-direction: column;
    padding: 1.3rem;
  }

  .resource-documents-grid {
    padding: 1.3rem;
  }

  .resource-document-card {
    grid-template-columns: 1fr;
    padding: 1rem;
  }

  .resource-document-actions {
    grid-column: auto;
    flex-wrap: wrap;
  }

  .resource-document-actions a {
    flex: 1;
  }
}

/* Membership application tracking */
.application-status-page{min-height:70vh;padding:7rem 1rem 5rem;background:var(--soft-white,#fafafa)}
.application-status-shell{width:min(920px,100%);margin:auto;padding:2rem;border:1px solid #e5e7eb;border-radius:8px;background:#fff;box-shadow:0 20px 50px rgba(0,0,0,.07)}
.application-confirmation{text-align:center}.application-status-icon{width:64px;height:64px;display:grid;place-items:center;margin:0 auto 1rem;border-radius:50%;background:rgba(74,222,128,.2);color:#15803d;font-size:1.6rem}
.application-confirmation h1,.application-lookup h1{margin:.4rem 0;font-size:clamp(1.5rem,4vw,2.4rem)}.application-confirmation>p,.application-lookup>p{color:#6b7280;font-size:.88rem;line-height:1.7}
.application-reference{display:inline-block;margin:1rem 0;padding:.75rem 1rem;border:1px dashed #15803d;border-radius:7px;background:#f0fdf4;font-size:.9rem;letter-spacing:.04em}
.application-progress{display:grid;grid-template-columns:repeat(3,1fr);margin:2rem 0}.progress-step{position:relative;display:grid;justify-items:center;gap:.5rem;color:#9ca3af;font-size:.7rem;text-align:center}.progress-step:not(:last-child):after{content:"";position:absolute;top:17px;left:60%;width:80%;height:2px;background:#e5e7eb}.progress-step span{width:36px;height:36px;display:grid;place-items:center;z-index:1;border-radius:50%;background:#e5e7eb;color:#fff}.progress-step.active{color:#166534}.progress-step.active span,.progress-step.active:not(:last-child):after{background:#4ade80;color:#000}
.application-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin:1.5rem 0 0}.application-summary div{padding:1rem;border-radius:8px;background:#fafafa}.application-summary dt{color:#6b7280;font-size:.62rem;font-weight:700;text-transform:uppercase}.application-summary dd{margin:.35rem 0 0;font-size:.75rem;font-weight:700}
.application-notice{margin:1rem 0;padding:1rem;border-left:4px solid #4ade80;border-radius:6px;background:#f0fdf4}.application-notice.rejected{border-color:#ef4444;background:#fef2f2}.application-notice p{font-size:.72rem;line-height:1.6}.application-notice a{display:inline-flex;padding:.65rem .9rem;border-radius:7px;background:#000;color:#fff;font-size:.68rem;font-weight:700}
.application-lookup{max-width:520px;margin:auto}.application-lookup form{display:grid;gap:1rem;margin-top:1.5rem}.application-lookup label{display:grid;gap:.4rem;font-size:.7rem;font-weight:700}.application-lookup input{min-height:46px;padding:.75rem;border:1px solid #e5e7eb;border-radius:8px}.application-lookup button{min-height:46px;border:0;border-radius:8px;background:#4ade80;font-weight:800}.application-error{padding:.8rem;border-left:4px solid #ef4444;background:#fef2f2;color:#991b1b;font-size:.7rem}
@media(max-width:700px){.application-status-page{padding-top:5.5rem}.application-status-shell{padding:1.2rem}.application-summary{grid-template-columns:repeat(2,1fr)}}
.application-fee-request{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:1rem 0;padding:1.2rem;border:1px solid #dbeafe;border-radius:8px;background:#eff6ff}.application-fee-request small,.application-fee-request strong,.application-fee-request span{display:block}.application-fee-request small{color:#64748b;font-size:.62rem;text-transform:uppercase}.application-fee-request strong{margin:.3rem 0;font-size:1.25rem}.fee-status{color:#92400e;font-size:.62rem;font-weight:700}.application-fee-request>a{display:inline-flex;align-items:center;gap:.5rem;padding:.8rem 1rem;border-radius:7px;background:#635bff;color:#fff;font-size:.7rem;font-weight:750}.application-fee-request>a i{font-size:1.2rem}.application-fee-request>p{font-size:.68rem}.status-check-link{display:inline-flex;padding:.7rem 1rem;border-radius:7px;background:#000;color:#fff;font-size:.7rem;font-weight:700}
@media(max-width:600px){.application-fee-request{align-items:flex-start;flex-direction:column}.application-fee-request>a{width:100%;justify-content:center}}

/* Database-driven event details */
.dynamic-event-detail{padding:7rem 1rem 5rem;background:#fafafa}.dynamic-event-shell{width:min(1180px,100%);margin:auto}.dynamic-event-back{display:inline-flex;align-items:center;gap:.45rem;margin-bottom:1rem;color:#166534;font-size:.72rem;font-weight:700}.dynamic-event-hero{position:relative;min-height:440px;overflow:hidden;border-radius:8px;background:#111}.dynamic-event-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.dynamic-event-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.82),rgba(0,0,0,.08) 70%)}.dynamic-event-overlay{position:absolute;right:0;bottom:0;left:0;z-index:1;padding:2rem;color:#fff}.dynamic-event-overlay>span{display:inline-flex;padding:.38rem .65rem;border-radius:999px;background:#4ade80;color:#000;font-size:.62rem;font-weight:800}.dynamic-event-overlay h1{max-width:850px;margin:.75rem 0 .45rem;font-size:clamp(1.7rem,4vw,3rem)}.dynamic-event-overlay p{max-width:760px;margin:0;color:#ffffffd0;font-size:.8rem;line-height:1.7}.dynamic-event-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(290px,.6fr);gap:1.2rem;margin-top:1.2rem}.dynamic-event-description,.dynamic-event-facts{padding:1.4rem;border:1px solid #e5e7eb;border-radius:8px;background:#fff}.dynamic-event-description h2,.dynamic-event-facts h2,.dynamic-event-participants h2{margin:0 0 .8rem;font-size:1.05rem}.dynamic-event-description>div{color:#4b5563;font-size:.75rem;line-height:1.85}.dynamic-event-facts{align-self:start}.dynamic-event-facts dl{margin:0}.dynamic-event-facts dl div{padding:.85rem 0;border-bottom:1px solid #e5e7eb}.dynamic-event-facts dt{display:flex;align-items:center;gap:.5rem;color:#166534;font-size:.65rem;font-weight:750}.dynamic-event-facts dd{margin:.35rem 0 0 1.35rem;color:#4b5563;font-size:.7rem;line-height:1.55}.dynamic-event-action{width:100%;min-height:44px;display:flex;align-items:center;justify-content:center;margin-top:1rem;border-radius:8px;background:#4ade80;color:#000;font-size:.7rem;font-weight:800}.dynamic-event-ended{display:flex;align-items:center;gap:.55rem;margin-top:1rem;padding:.8rem;border-radius:8px;background:#f3f4f6;color:#4b5563;font-size:.7rem;font-weight:700}.dynamic-event-ended i{color:#15803d}.dynamic-event-participants{margin-top:1.5rem;padding-top:1.3rem;border-top:1px solid #e5e7eb}.dynamic-event-participants>div{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;align-items:stretch}.dynamic-event-participants article{min-width:0;height:100%;display:flex;overflow:hidden;flex-direction:column;border:1px solid #e5e7eb;border-radius:7px;background:#fff;text-align:center}.dynamic-participant-photo{width:100%;aspect-ratio:1/1;display:grid;place-items:center;overflow:hidden;background:#f3f4f6;color:#9ca3af;font-size:2rem}.dynamic-participant-photo img{width:100%;height:100%;display:block;object-fit:cover}.dynamic-participant-info{min-height:82px;display:flex;align-items:center;justify-content:center;flex:1;flex-direction:column;padding:.75rem}.dynamic-event-participants h3{margin:0 0 .25rem;font-size:.7rem;line-height:1.4}.dynamic-event-participants p{margin:0;color:#15803d;font-size:.58rem;font-weight:700;line-height:1.4;text-transform:uppercase}.event-status.concluded{background:#111!important;color:#fff!important}
@media(max-width:800px){.dynamic-event-detail{padding-top:5.5rem}.dynamic-event-hero{min-height:360px}.dynamic-event-layout{grid-template-columns:1fr}.dynamic-event-overlay{padding:1.2rem}.dynamic-event-participants>div{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:600px){.dynamic-event-participants>div{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.dynamic-event-hero{min-height:310px}.dynamic-event-overlay p{font-size:.68rem}.dynamic-event-description,.dynamic-event-facts{padding:1rem}}

/* Thirty-day event countdown */
.event-countdown-popup{position:fixed;left:18px;bottom:18px;z-index:95;width:min(360px,calc(100vw - 36px));padding:12px;border:1px solid #ffffff22;border-radius:8px;background:#0d0d0d;color:#fff;box-shadow:0 20px 55px rgba(0,0,0,.34);opacity:0;transform:translateY(24px);pointer-events:none;transition:opacity .25s ease,transform .25s ease}.event-countdown-popup.visible{opacity:1;transform:none;pointer-events:auto}.event-countdown-close{position:absolute;top:7px;right:7px;width:28px;height:28px;display:grid;place-items:center;z-index:2;border:1px solid #ffffff25;border-radius:6px;background:#202020;color:#fff;cursor:pointer}.event-countdown-top{display:grid;grid-template-columns:74px minmax(0,1fr);align-items:center;gap:10px;padding-right:23px}.event-countdown-top img{width:74px;height:66px;border-radius:6px;object-fit:cover}.event-countdown-top span{color:#4ade80;font-size:.56rem;font-weight:800;text-transform:uppercase}.event-countdown-top h2{margin:3px 0;font-size:.78rem;line-height:1.25}.event-countdown-top p{margin:0;color:#ffffffa8;font-size:.56rem}.event-countdown-units{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:11px 0}.event-countdown-units div{display:grid;justify-items:center;padding:7px 4px;border-radius:6px;background:#1b1b1b}.event-countdown-units strong{font-size:1rem;line-height:1}.event-countdown-units small{margin-top:4px;color:#ffffff8c;font-size:.5rem;text-transform:uppercase}.event-countdown-popup>a{min-height:35px;display:flex;align-items:center;justify-content:center;gap:7px;border-radius:6px;background:#4ade80;color:#000;font-size:.62rem;font-weight:800}.event-countdown-popup>a:hover{background:#fff}.event-countdown-popup>a i{font-size:.55rem}@media(max-width:520px){.event-countdown-popup{right:10px;bottom:10px;left:10px;width:auto}.event-countdown-top{grid-template-columns:62px minmax(0,1fr)}.event-countdown-top img{width:62px;height:58px}}
.event-countdown-toast{position:fixed;top:86px;right:18px;z-index:95;width:min(380px,calc(100vw - 36px));padding:15px;border:1px solid #343434;border-top:3px solid #4ade80;border-radius:6px;background:#090b0a;color:#fff;box-shadow:0 18px 48px rgba(0,0,0,.38);opacity:0;transform:translateY(-16px);pointer-events:none;transition:opacity .24s ease,transform .24s ease}.event-countdown-toast.visible{opacity:1;transform:none;pointer-events:auto}.event-toast-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:11px;border-bottom:1px solid #252925}.event-toast-header>div{min-width:0;display:grid;gap:3px}.event-toast-header small{color:#4ade80;font-size:.5rem;font-weight:800;text-transform:uppercase}.event-toast-header strong{overflow:hidden;font-size:.76rem;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.event-toast-close{flex:0 0 26px;width:26px;height:26px;display:grid;place-items:center;border:1px solid #303430;border-radius:4px;background:#151815;color:#9ca39d;cursor:pointer}.event-toast-close:hover{border-color:#4ade80;color:#4ade80}.event-toast-clock{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:12px 0}.event-toast-clock>div{position:relative;min-width:0;display:grid;justify-items:center;gap:6px;padding:12px 3px 8px;border:1px solid #273029;border-radius:4px;background:#111511;box-shadow:inset 0 0 14px rgba(74,222,128,.05)}.event-toast-clock>div:not(:last-child):after{content:":";position:absolute;top:12px;right:-7px;z-index:1;color:#4ade80;font-size:.9rem;font-weight:800}.event-toast-clock strong{color:#4ade80;font-family:"Courier New",monospace;font-size:1.35rem;font-weight:700;line-height:1;text-shadow:0 0 9px rgba(74,222,128,.42);font-variant-numeric:tabular-nums;letter-spacing:0}.event-toast-clock small{color:#858c86;font-size:.42rem;font-weight:700;text-transform:uppercase}.event-toast-link{min-height:34px;display:flex;align-items:center;justify-content:center;gap:7px;border:1px solid #4ade80;border-radius:4px;background:transparent;color:#4ade80;font-size:.58rem;font-weight:800}.event-toast-link:hover{background:#4ade80;color:#050505}@media(max-width:520px){.event-countdown-toast{top:74px;right:10px;width:min(350px,calc(100vw - 20px));padding:12px}.event-toast-clock strong{font-size:1.1rem}}
