/**
 * AFForum Hub — Editorial Magazine Design System & Query Sidebars
 * Optimized for: News & Events, Latest News, Publications, Policy Database, Knowledge Base, Photos & Videos.
 */

/* ==========================================================================
   1. NEUTRALIZE DOUBLE-CARD NESTED WRAPPERS (CRITICAL ARCHITECTURE FIX)
   ========================================================================== */

/* Drupal Views wraps card templates inside .view-card > .views-field-title > span.field-content.
   When an inner card (.event-news-card, .publication-details-card, .knowledge-card, .event-box) is present,
   we neutralize the outer .view-card so only the true inner card renders borders, background, and padding. */
.view-card:has(.event-news-card),
.view-card:has(.publication-details-card),
.view-card:has(.knowledge-card),
.view-card:has(.event-box) {
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
  border-radius: 0 !important;
  overflow: visible !important;
  display: flex !important;
  flex-direction: column !important;
  height: auto !important;
  box-sizing: border-box !important;
}

.view-card:has(.event-news-card) > .views-field,
.view-card:has(.event-news-card) .field-content,
.view-card:has(.publication-details-card) > .views-field,
.view-card:has(.publication-details-card) .field-content,
.view-card:has(.knowledge-card) > .views-field,
.view-card:has(.knowledge-card) .field-content,
.view-card:has(.event-box) > .views-field,
.view-card:has(.event-box) .field-content {
  display: flex !important;
  flex-direction: column !important;
  height: auto !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  flex: 1 1 auto !important;
}

/* ==========================================================================
   2. CORE EDITORIAL CARD BASE STYLING (GRID CARDS)
   ========================================================================== */

.event-news-card,
.publication-details-card,
.path-photos-and-videos .views-card-grid .view-card,
.view-card:not(:has(.event-news-card)):not(:has(.publication-details-card)):not(:has(.knowledge-card)):not(:has(.event-box)) {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  background: #FFFFFF !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  border: 1px solid #E2EAD8 !important;
  box-shadow: 0 4px 16px rgba(26, 49, 2, 0.04) !important;
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.3s ease !important;
  box-sizing: border-box !important;
  position: relative !important;
}

.event-news-card:hover,
.publication-details-card:hover,
.path-photos-and-videos .views-card-grid .view-card:hover,
.view-card:not(:has(.event-news-card)):not(:has(.publication-details-card)):not(:has(.knowledge-card)):not(:has(.event-box)):hover {
  transform: translateY(-4px) !important;
  box-shadow: 0 14px 32px rgba(46, 82, 0, 0.12) !important;
  border-color: #C3D9A8 !important;
}

/* ==========================================================================
   3. EDITORIAL NEWS CARDS (.event-news-card)
   ========================================================================== */

.event-news-img {
  position: relative !important;
  width: 100% !important;
  height: 220px !important;
  min-height: 220px !important;
  max-height: 220px !important;
  overflow: hidden !important;
  background: #EAF1E0 !important;
  display: block !important;
  box-sizing: border-box !important;
}

.event-news-img img {
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
  transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.event-news-card:hover .event-news-img img {
  transform: scale(1.05) !important;
}

.event-news-text {
  display: flex !important;
  flex-direction: column !important;
  flex-grow: 1 !important;
  padding: 20px 22px 22px 22px !important;
  box-sizing: border-box !important;
}

.event-news-text p.date {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  color: #4C8500 !important;
  margin: 0 0 10px 0 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
}

.event-news-text p.date img {
  width: 14px !important;
  height: 14px !important;
  min-width: 14px !important;
  min-height: 14px !important;
  max-width: 14px !important;
  max-height: 14px !important;
  object-fit: contain !important;
  display: inline-block !important;
  margin: 0 !important;
  vertical-align: -2px !important;
}

.event-news-text h3 {
  font-family: 'Fraunces', Georgia, serif !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  color: #1A3102 !important;
  margin: 0 0 10px 0 !important;
}

.event-news-text h3 a {
  color: #1A3102 !important;
  text-decoration: none !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
  transition: color 0.2s ease !important;
}

.event-news-text h3 a:hover {
  color: #4C8500 !important;
}

.event-news-text p:not(.date) {
  font-family: 'Inter', system-ui, sans-serif !important;
  font-size: 14px !important;
  line-height: 1.6 !important;
  color: #556B2F !important;
  margin: 0 !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 3 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}

/* ==========================================================================
   4. PUBLICATIONS EDITORIAL CARDS (.publication-details-card)
   ========================================================================== */

.publication-details-card {
  box-sizing: border-box !important;
}

.publication-details-image {
  position: relative !important;
  width: 100% !important;
  height: 260px !important;
  min-height: 260px !important;
  max-height: 260px !important;
  background: #F4F8F0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 16px !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
  border-bottom: 1px solid #EAF1E0 !important;
}

.publication-details-image img {
  max-width: 100% !important;
  max-height: 100% !important;
  width: auto !important;
  height: auto !important;
  object-fit: contain !important;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12) !important;
  border-radius: 4px !important;
  transition: transform 0.4s ease !important;
}

.publication-details-card:hover .publication-details-image img {
  transform: scale(1.04) !important;
}

.publication-details-text {
  display: flex !important;
  flex-direction: column !important;
  flex-grow: 1 !important;
  padding: 20px 22px 22px 22px !important;
  box-sizing: border-box !important;
}

.publication-details-text h6 {
  font-family: 'Fraunces', Georgia, serif !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  margin: 0 0 8px 0 !important;
}

.publication-details-text h6 a {
  color: #1A3102 !important;
  text-decoration: none !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
  transition: color 0.2s ease !important;
}

.publication-details-text h6 a:hover {
  color: #4C8500 !important;
}

.publication-details-text h5 {
  font-size: 12px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  color: #4C8500 !important;
  margin: 0 0 8px 0 !important;
}

.publication-details-text p.date {
  font-family: 'Inter', system-ui, sans-serif !important;
  font-size: 13px !important;
  color: #627552 !important;
  line-height: 1.5 !important;
  margin: 0 0 6px 0 !important;
}

.publication-details-text .download {
  margin-top: auto !important;
  padding-top: 14px !important;
}

.publication-details-text .download p {
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  flex-wrap: wrap !important;
}

.publication-details-text .download p a {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 8px 18px !important;
  background: #2E5200 !important;
  color: #FFFFFF !important;
  border-radius: 8px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  box-shadow: 0 2px 8px rgba(46, 82, 0, 0.2) !important;
  transition: all 0.2s ease !important;
}

.publication-details-text .download p a:hover {
  background: #1A3102 !important;
  color: #FFFFFF !important;
  transform: translateY(-1px) !important;
}

.publication-details-text .download p a img {
  width: 14px !important;
  height: 14px !important;
  max-width: 14px !important;
  max-height: 14px !important;
  filter: brightness(0) invert(1) !important;
  margin: 0 !important;
}

.publication-details-text .download p span {
  font-size: 12px !important;
  color: #7B8E6D !important;
  font-weight: 500 !important;
}

/* Bilingual Download Dropdown */
.pub-bilingual-dropdown {
  position: relative !important;
  display: inline-block !important;
}

.btn-pub-dropdown-toggle {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 8px 16px !important;
  background: #1F3600 !important;
  color: #FFFFFF !important;
  border: none !important;
  border-radius: 8px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  cursor: pointer !important;
  box-shadow: 0 2px 8px rgba(31, 54, 0, 0.2) !important;
  transition: all 0.2s ease !important;
  font-family: 'Inter', system-ui, sans-serif !important;
}

.btn-pub-dropdown-toggle:hover,
.pub-bilingual-dropdown:hover .btn-pub-dropdown-toggle,
.pub-bilingual-dropdown.is-open .btn-pub-dropdown-toggle {
  background: #345B00 !important;
  transform: translateY(-1px) !important;
}

.dropdown-caret {
  transition: transform 0.2s ease !important;
}

.pub-bilingual-dropdown:hover .dropdown-caret,
.pub-bilingual-dropdown.is-open .dropdown-caret {
  transform: rotate(180deg) !important;
}

.pub-bilingual-menu {
  display: none !important;
  position: absolute !important;
  bottom: calc(100% + 6px) !important;
  left: 0 !important;
  min-width: 220px !important;
  background: #FFFFFF !important;
  border: 1px solid #DFE6D6 !important;
  border-radius: 10px !important;
  padding: 6px !important;
  box-shadow: 0 12px 30px -4px rgba(31, 54, 0, 0.22), 0 4px 10px rgba(0, 0, 0, 0.06) !important;
  z-index: 100 !important;
}

.pub-bilingual-dropdown:hover .pub-bilingual-menu,
.pub-bilingual-dropdown.is-open .pub-bilingual-menu {
  display: flex !important;
  flex-direction: column !important;
  gap: 4px !important;
}

.pub-menu-item {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 8px 12px !important;
  color: #1E2418 !important;
  text-decoration: none !important;
  border-radius: 6px !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
  transition: all 0.15s ease !important;
  background: #F8FAFC !important;
}

.pub-menu-item:hover {
  background: #EAF1E0 !important;
  color: #1F3600 !important;
}

.pub-lang-flag {
  font-size: 11px !important;
  font-weight: 700 !important;
  padding: 2px 6px !important;
  background: #FFFFFF !important;
  border: 1px solid #DFE6D6 !important;
  border-radius: 4px !important;
  color: #1F3600 !important;
}

.pub-lang-title {
  flex-grow: 1 !important;
  font-size: 12.5px !important;
}

.btn-pub-card-view {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  padding: 8px 16px !important;
  background: #EAF1E0 !important;
  color: #1F3600 !important;
  border-radius: 8px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  transition: all 0.2s ease !important;
}

.btn-pub-card-view:hover {
  background: #1F3600 !important;
  color: #FFFFFF !important;
}

.pub-card-cover-fallback {
  width: 100% !important;
  height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  color: #94A3B8 !important;
}

.pub-card-img-link {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 100% !important;
  text-decoration: none !important;
}

/* ==========================================================================
   5. KNOWLEDGE BASE EDITORIAL LIST FORMAT (.knowledge-card)
   ========================================================================== */

.knowledge-card {
  display: grid !important;
  grid-template-columns: 280px 1fr !important;
  grid-template-rows: auto 1fr !important;
  column-gap: 0 !important;
  background: #FFFFFF !important;
  border: 1px solid #E2EAD8 !important;
  border-radius: 14px !important;
  overflow: hidden !important;
  box-shadow: 0 4px 16px rgba(26, 49, 2, 0.04) !important;
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.3s ease !important;
  width: 100% !important;
  box-sizing: border-box !important;
  position: relative !important;
}

.knowledge-card:hover {
  transform: translateY(-3px) !important;
  box-shadow: 0 12px 28px rgba(46, 82, 0, 0.1) !important;
  border-color: #C3D9A8 !important;
}

.knowledge-img {
  grid-column: 1 !important;
  grid-row: 1 / span 2 !important;
  position: relative !important;
  width: 280px !important;
  min-width: 280px !important;
  max-width: 280px !important;
  height: 100% !important;
  min-height: 200px !important;
  background: #EAF1E0 !important;
  overflow: hidden !important;
  flex-shrink: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
}

.knowledge-img img {
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
  transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.knowledge-card:hover .knowledge-img img {
  transform: scale(1.04) !important;
}

.knowledge-card > h4 {
  grid-column: 2 !important;
  grid-row: 1 !important;
  font-family: 'Fraunces', Georgia, serif !important;
  font-size: 22px !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  color: #1A3102 !important;
  margin: 22px 28px 8px 28px !important;
  padding: 0 !important;
}

.knowledge-card > h4 a {
  color: #1A3102 !important;
  text-decoration: none !important;
  transition: color 0.2s ease !important;
}

.knowledge-card > h4 a:hover {
  color: #4C8500 !important;
}

.knowledge-card-text {
  grid-column: 2 !important;
  grid-row: 2 !important;
  display: flex !important;
  flex-direction: column !important;
  padding: 0 28px 22px 28px !important;
  box-sizing: border-box !important;
  font-family: 'Inter', system-ui, sans-serif !important;
  font-size: 14px !important;
  line-height: 1.6 !important;
  color: #556B2F !important;
}

.knowledge-card-text > div {
  margin-bottom: 8px !important;
}

.knowledge-card-text p.publication-date {
  font-size: 13px !important;
  font-weight: 600 !important;
  color: #4C8500 !important;
  margin: 4px 0 10px 0 !important;
}

.knowledge-card .download-dark {
  margin-top: auto !important;
  padding-top: 8px !important;
}

.knowledge-card .download-dark a {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 8px 20px !important;
  background: #2E5200 !important;
  color: #FFFFFF !important;
  border-radius: 8px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  width: fit-content !important;
  box-shadow: 0 2px 8px rgba(46, 82, 0, 0.2) !important;
  transition: all 0.2s ease !important;
}

.knowledge-card .download-dark a:hover {
  background: #1A3102 !important;
  color: #FFFFFF !important;
  transform: translateY(-1px) !important;
}

@media (max-width: 767px) {
  .knowledge-card {
    display: flex !important;
    flex-direction: column !important;
  }
  .knowledge-img {
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    height: 200px !important;
    min-height: 200px !important;
  }
  .knowledge-card > h4 {
    margin: 18px 20px 8px 20px !important;
    font-size: 18px !important;
  }
  .knowledge-card-text {
    padding: 0 20px 20px 20px !important;
  }
}

/* ==========================================================================
   5B. EVENTS EDITORIAL LIST FORMAT (.event-box)
   ========================================================================== */

.event-box {
  display: flex !important;
  flex-direction: row !important;
  align-items: stretch !important;
  background: #FFFFFF !important;
  border: 1px solid #E2EAD8 !important;
  border-radius: 14px !important;
  overflow: hidden !important;
  box-shadow: 0 4px 16px rgba(26, 49, 2, 0.04) !important;
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.3s ease !important;
  width: 100% !important;
  box-sizing: border-box !important;
  position: relative !important;
}

.event-box:hover {
  transform: translateY(-3px) !important;
  box-shadow: 0 12px 28px rgba(46, 82, 0, 0.1) !important;
  border-color: #C3D9A8 !important;
}

.event-img {
  position: relative !important;
  width: 280px !important;
  min-width: 280px !important;
  max-width: 280px !important;
  height: auto !important;
  min-height: 190px !important;
  background: #EAF1E0 !important;
  overflow: hidden !important;
  flex-shrink: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
}

.event-img img {
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
  transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.event-box:hover .event-img img {
  transform: scale(1.04) !important;
}

.event-cnt {
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  flex-grow: 1 !important;
  padding: 24px 30px !important;
  gap: 10px !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

/* Event Date */
.event-cnt h6 {
  font-family: 'Inter', system-ui, sans-serif !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  color: #4C8500 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  margin: 0 !important;
  order: 1 !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
}

.event-cnt h6::before {
  content: "";
  display: inline-block;
  width: 15px;
  height: 15px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234C8500' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: contain;
  flex-shrink: 0;
}

/* Event Title */
.event-cnt h5 {
  font-family: 'Fraunces', Georgia, serif !important;
  font-size: 21px !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  color: #1A3102 !important;
  margin: 0 !important;
  order: 2 !important;
}

.event-cnt h5 a {
  color: #1A3102 !important;
  text-decoration: none !important;
  transition: color 0.2s ease !important;
}

.event-cnt h5 a:hover {
  color: #4C8500 !important;
}

/* Event Location / Venue */
.event-cnt p {
  font-family: 'Inter', system-ui, sans-serif !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
  color: #627552 !important;
  margin: 0 !important;
  order: 3 !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
}

.event-cnt p::before {
  content: "";
  display: inline-block;
  width: 15px;
  height: 15px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23627552' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'%3E%3C/path%3E%3Ccircle cx='12' cy='10' r='3'%3E%3C/circle%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: contain;
  flex-shrink: 0;
}

/* Event Action Call-out */
.event-cnt::after {
  content: "View Event \2192";
  display: inline-flex;
  align-items: center;
  margin-top: 4px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 13px;
  font-weight: 700;
  color: #2E5200;
  order: 4;
  transition: color 0.2s ease, transform 0.2s ease;
  width: fit-content;
}

.event-box:hover .event-cnt::after {
  color: #4C8500;
  transform: translateX(4px);
}

@media (max-width: 767px) {
  .event-box {
    flex-direction: column !important;
  }
  .event-img {
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    height: 200px !important;
    min-height: 200px !important;
    max-height: 200px !important;
  }
  .event-cnt {
    padding: 18px 20px !important;
  }
  .event-cnt h5 {
    font-size: 18px !important;
  }
}

/* ==========================================================================
   6. MULTIMEDIA & VIDEO CARDS (/photos-and-videos)
   ========================================================================== */

.path-photos-and-videos .views-card-grid .view-card {
  padding: 12px !important;
}

.views-field-field__video-url,
.views-field-field-video-url {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

.video-responsive-embed {
  position: relative !important;
  width: 100% !important;
  aspect-ratio: 16 / 9 !important;
  border-radius: 10px !important;
  overflow: hidden !important;
  background: #000000 !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08) !important;
}

.video-responsive-embed iframe {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  border: none !important;
}

/* ==========================================================================
   7. MAGAZINIC CARD GRID SYSTEM
   ========================================================================== */

.views-card-grid:not(:has(.event-box)):not(:has(.knowledge-card)),
.view-content .views-card-grid:not(:has(.event-box)):not(:has(.knowledge-card)),
.media-grid-layout {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)) !important;
  gap: 24px !important;
  margin: 0 0 40px 0 !important;
  padding: 0 !important;
  list-style: none !important;
  width: 100% !important;
}

/* 3 columns on desktop inside the main inner content area */
@media (min-width: 1200px) {
  .inner-content-main .views-card-grid:not(:has(.event-box)):not(:has(.knowledge-card)),
  .media-centre-shell .inner-content-main .views-card-grid:not(:has(.event-box)):not(:has(.knowledge-card)) {
    grid-template-columns: repeat(3, 1fr) !important;
  }
}

@media (min-width: 768px) and (max-width: 1199px) {
  .inner-content-main .views-card-grid:not(:has(.event-box)):not(:has(.knowledge-card)) {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

@media (max-width: 767px) {
  .views-card-grid:not(:has(.event-box)):not(:has(.knowledge-card)),
  .view-content .views-card-grid:not(:has(.event-box)):not(:has(.knowledge-card)),
  .inner-content-main .views-card-grid:not(:has(.event-box)):not(:has(.knowledge-card)) {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }
}

/* List Format Containers for Events & Knowledge Base */
.views-card-grid:has(.event-box),
.views-card-grid:has(.knowledge-card),
.view-content:has(.event-box) .views-card-grid,
.view-content:has(.knowledge-card) .views-card-grid,
.media-section:has(.event-box) .views-card-grid,
.inner-content-main .views-card-grid:has(.event-box),
.inner-content-main .views-card-grid:has(.knowledge-card) {
  display: flex !important;
  flex-direction: column !important;
  grid-template-columns: none !important;
  gap: 22px !important;
  margin: 0 0 40px 0 !important;
  padding: 0 !important;
  list-style: none !important;
  width: 100% !important;
}

/* Normalize view-card column wrappers from Drupal Views */
.views-card-grid .view-card,
.view-content .col-xl-3.event-news-col,
.view-content .col-lg-4.event-news-col {
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  float: none !important;
}

.view-shell .row:has(.event-news-col),
.media-section .view-content:has(.event-news-col) {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)) !important;
  gap: 24px !important;
  margin: 0 !important;
  padding: 0 !important;
}

.view-shell .row:has(.event-news-col)::before,
.view-shell .row:has(.event-news-col)::after {
  display: none !important;
}

/* Section Editorial Header Rows */
.section-header-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 24px;
  border-bottom: 2px solid #EAF1E0;
  padding-bottom: 12px;
}

.section-sub-eyebrow {
  display: block;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #4C8500;
  margin-bottom: 4px;
}

.section-editorial-title {
  font-family: 'Fraunces', serif !important;
  font-size: 26px !important;
  font-weight: 700 !important;
  color: #1A3102 !important;
  margin: 0 !important;
}

.section-view-all-link {
  font-weight: 700;
  color: #2E5200;
  font-size: 14px;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 6px 14px;
  background: #F4F8F0;
  border-radius: 6px;
  transition: all 0.2s ease;
}

.section-view-all-link:hover {
  background: #2E5200;
  color: #FFFFFF !important;
}

/* Hide duplicated inner titles and filters inside landing page blocks */
.media-section .view-header,
.media-section .view-filters {
  display: none !important;
}

/* ==========================================================================
   8. QUERY SIDEBAR & SECTION NAVIGATION STYLING
   ========================================================================== */

/* Left Sidebar Sticky Container */
.inner-sidebar-left {
  position: sticky;
  top: 100px;
  align-self: flex-start;
  display: flex;
  flex-direction: column;
  gap: 20px;
  width: 100%;
}

/* Sidebar Search Card */
.sidebar-search-card {
  background: #FFFFFF;
  border: 1px solid #E2EAD8;
  border-radius: 12px;
  padding: 20px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.03);
}

.sidebar-card-title {
  font-family: 'Fraunces', serif;
  font-size: 17px;
  font-weight: 700;
  color: #1A3102;
  margin: 0 0 12px 0;
  display: flex;
  align-items: center;
  gap: 8px;
}

.sidebar-search-card .search-input-group {
  position: relative;
  display: flex;
  align-items: center;
}

.sidebar-search-card input.form-text {
  width: 100%;
  padding: 10px 40px 10px 14px;
  border: 1.5px solid #D1DFBA;
  border-radius: 8px;
  font-size: 14px;
  color: #1B2A12;
  background: #FBFDF9;
  transition: all 0.2s ease;
  box-sizing: border-box;
}

.sidebar-search-card input.form-text:focus {
  outline: none;
  border-color: #2E5200;
  background: #FFFFFF;
  box-shadow: 0 0 0 3px rgba(46, 82, 0, 0.12);
}

.sidebar-search-card .search-btn {
  position: absolute;
  right: 8px;
  background: none;
  border: none;
  color: #4C8500;
  cursor: pointer;
  padding: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
}

.sidebar-search-card .search-btn:hover {
  color: #1A3102;
}

/* Drupal Exposed Form in Sidebar (`.sidebar-blocks-area`) */
.sidebar-blocks-area .block-views-exposed-filter-block,
.sidebar-blocks-area .aff-block {
  background: #FFFFFF;
  border: 1px solid #E2EAD8;
  border-radius: 12px;
  padding: 22px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.03);
  margin-bottom: 20px;
}

.sidebar-blocks-area h2.block-title,
.sidebar-blocks-area .views-exposed-form legend {
  font-family: 'Fraunces', serif;
  font-size: 17px;
  font-weight: 700;
  color: #1A3102;
  margin: 0 0 16px 0;
  border: none;
  padding: 0;
}

.sidebar-blocks-area .views-exposed-form {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.sidebar-blocks-area .views-exposed-form .form-item {
  display: flex;
  flex-direction: column;
  margin: 0 !important;
  gap: 5px;
}

.sidebar-blocks-area .views-exposed-form label {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #4C8500;
  margin: 0;
}

.sidebar-blocks-area .views-exposed-form input.form-text,
.sidebar-blocks-area .views-exposed-form select {
  width: 100% !important;
  padding: 9px 12px;
  border: 1.5px solid #D1DFBA;
  border-radius: 8px;
  font-size: 14px;
  color: #1B2A12;
  background: #FBFDF9;
  transition: all 0.2s ease;
  box-sizing: border-box;
}

.sidebar-blocks-area .views-exposed-form input.form-text:focus,
.sidebar-blocks-area .views-exposed-form select:focus {
  outline: none;
  border-color: #2E5200;
  background: #FFFFFF;
  box-shadow: 0 0 0 3px rgba(46, 82, 0, 0.12);
}

.sidebar-blocks-area .views-exposed-form .form-actions {
  display: flex;
  gap: 10px;
  margin-top: 8px;
}

.sidebar-blocks-area .views-exposed-form .form-actions input[type="submit"],
.sidebar-blocks-area .views-exposed-form .form-actions button {
  flex: 1;
  padding: 10px 16px;
  background: #2E5200;
  color: #FFFFFF;
  border: none;
  border-radius: 8px;
  font-weight: 700;
  font-size: 14px;
  cursor: pointer;
  transition: background 0.2s ease, transform 0.1s ease;
}

.sidebar-blocks-area .views-exposed-form .form-actions input[type="submit"]:hover,
.sidebar-blocks-area .views-exposed-form .form-actions button:hover {
  background: #1A3102;
  transform: translateY(-1px);
}

.sidebar-blocks-area .views-exposed-form .form-actions input[type="reset"] {
  padding: 10px 14px;
  background: #EAF1E0;
  color: #2E5200;
  border: none;
  border-radius: 8px;
  font-weight: 600;
  font-size: 13px;
  cursor: pointer;
}

/* ==========================================================================
   9. POLICY DATABASE EDITORIAL TABLE STYLING
   ========================================================================== */

table.cols-5,
.view-policy-database table,
.block-views-blockpolicy-database-block-1 table,
.path-policy-database table {
  width: 100% !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  background: #FFFFFF !important;
  border: 1px solid #E2EAD8 !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  box-shadow: 0 4px 16px rgba(26, 49, 2, 0.04) !important;
  margin-bottom: 30px !important;
}

table.cols-5 thead th,
.path-policy-database table thead th {
  background: #F4F8F0 !important;
  color: #1A3102 !important;
  font-family: 'Fraunces', serif !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  padding: 14px 18px !important;
  border-bottom: 2px solid #DDEACD !important;
  border-top: none !important;
  text-align: left !important;
}

table.cols-5 tbody tr,
.path-policy-database table tbody tr {
  transition: background 0.15s ease !important;
}

table.cols-5 tbody tr:nth-child(even),
.path-policy-database table tbody tr:nth-child(even) {
  background: #FAFCF7 !important;
}

table.cols-5 tbody tr:hover,
.path-policy-database table tbody tr:hover {
  background: #F0F6E8 !important;
}

table.cols-5 tbody td,
.path-policy-database table tbody td {
  padding: 14px 18px !important;
  border-bottom: 1px solid #EEF3E8 !important;
  color: #2D3E1E !important;
  font-size: 14px !important;
  vertical-align: middle !important;
}

table.cols-5 tbody tr:last-child td,
.path-policy-database table tbody tr:last-child td {
  border-bottom: none !important;
}

table.cols-5 td.views-field-title a,
.path-policy-database td.views-field-title a {
  font-weight: 700 !important;
  color: #1A3102 !important;
  text-decoration: none !important;
  font-size: 15px !important;
  transition: color 0.2s ease !important;
}

table.cols-5 td.views-field-title a:hover,
.path-policy-database td.views-field-title a:hover {
  color: #4C8500 !important;
  text-decoration: underline !important;
}

table.cols-5 td.views-field-field-policy-type,
.path-policy-database td.views-field-field-policy-type {
  font-weight: 600 !important;
  color: #3B6600 !important;
}

/* Pager / Pagination Styling */
ul.pager,
.pager__items,
nav.pager {
  display: flex !important;
  justify-content: center !important;
  gap: 8px !important;
  margin: 32px 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

ul.pager li,
.pager__item {
  display: inline-block !important;
}

ul.pager li a,
ul.pager li.is-active,
.pager__item a,
.pager__item.is-active {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 38px !important;
  height: 38px !important;
  padding: 0 12px !important;
  border-radius: 8px !important;
  background: #FFFFFF !important;
  border: 1.5px solid #D1DFBA !important;
  color: #2E5200 !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  text-decoration: none !important;
  transition: all 0.2s ease !important;
}

ul.pager li.is-active,
.pager__item.is-active {
  background: #2E5200 !important;
  color: #FFFFFF !important;
  border-color: #2E5200 !important;
}

ul.pager li a:hover,
.pager__item a:hover {
  background: #EAF1E0 !important;
  border-color: #2E5200 !important;
}

/* ==========================================================================
   10. RESPONSIVE ADAPTATIONS
   ========================================================================== */

@media (max-width: 991px) {
  .inner-sidebar-left {
    position: static !important;
    margin-bottom: 30px !important;
  }
}

/* ==========================================================================
   11. CTA BANNER SEAMLESS BALANCED SPACING & 80VH HARDWARE PARALLAX
   ========================================================================== */

/* Balanced clearance for In Focus cards */
#inFocus.focus-section,
.focus-section {
  padding-bottom: 28px !important;
  margin-bottom: 0 !important;
}

/* In Focus carousel navigation controls */
.carousel-nav {
  display: flex !important;
  gap: 8px !important;
  align-items: center !important;
}
.carousel-nav button,
.carousel-btn {
  width: 38px !important;
  height: 38px !important;
  border-radius: 99px !important;
  border: 1.5px solid var(--border) !important;
  background: #ffffff !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  color: #1F3600 !important;
  transition: all 0.2s ease !important;
  user-select: none !important;
  padding: 0 !important;
  outline: none !important;
}
.carousel-nav button:hover,
.carousel-btn:hover {
  border-color: #3B7200 !important;
  color: #ffffff !important;
  background: #3B7200 !important;
  transform: scale(1.06) !important;
  box-shadow: 0 4px 12px rgba(59, 114, 0, 0.25) !important;
}
.carousel-nav button:active,
.carousel-btn:active {
  transform: scale(0.92) !important;
}
.carousel-nav button svg,
.carousel-btn svg {
  width: 16px !important;
  height: 16px !important;
  pointer-events: none !important;
  display: block !important;
}

/* ===================================================
   MAJOR GRANT OPPORTUNITY: Full-page Fixed Background (Level 1 Parallax)
   =================================================== */
#grantBanner.grant-banner,
.grant-banner,
.grant-banner-fullwidth {
  position: relative !important;
  min-height: 100vh !important;
  min-height: 100dvh !important;
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(-50vw + 50%) !important;
  margin-right: calc(-50vw + 50%) !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding: 100px 24px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  align-items: center !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
  background-color: #152900 !important;
  background-attachment: fixed !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  background-size: cover !important;
}

#publications.publications-section,
.publications-section {
  margin-top: 0 !important;
  padding-top: 64px !important;
}

/* Hide cartoon SVG canopy */
#grantCanopy,
.grant-canopy {
  display: none !important;
}

/* Fixed background layer covering full viewport (Level 1 pure CSS) */
#grantBg.grant-bg,
.grant-bg {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 100% !important;
  height: 100% !important;
  background-image: url('/sites/default/files/2026-09/image-2026.png');
  background-attachment: fixed !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  background-size: cover !important;
  background-color: #152900 !important;
  transform: none !important;
  will-change: auto !important;
  z-index: 1 !important;
}

/* Dark vignette overlay for crisp text contrast */
#grantBg.grant-bg::after,
.grant-bg::after {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  background: radial-gradient(circle at center, rgba(6, 16, 2, 0.35) 0%, rgba(3, 10, 1, 0.72) 100%) !important;
  z-index: 2 !important;
  pointer-events: none !important;
}

.grant-banner .grant-inner,
#grantBanner .grant-inner {
  position: relative !important;
  z-index: 3 !important;
  max-width: 860px !important;
  margin: 0 auto !important;
  padding: 24px 20px !important;
  text-align: center !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
}

.grant-inner .eyebrow {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.12em !important;
  color: #93d5ff !important;
  background: rgba(14, 40, 70, 0.55) !important;
  border: 1px solid rgba(147, 213, 255, 0.35) !important;
  padding: 6px 18px !important;
  border-radius: 9999px !important;
  margin-bottom: 20px !important;
  backdrop-filter: blur(8px) !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3) !important;
}

.grant-inner h2 {
  color: #ffffff !important;
  font-size: clamp(32px, 4.8vw, 56px) !important;
  font-weight: 800 !important;
  line-height: 1.18 !important;
  letter-spacing: -0.02em !important;
  max-width: 22ch !important;
  margin: 0 auto 20px !important;
  text-shadow: 0 4px 18px rgba(0, 0, 0, 0.85) !important;
}

.grant-inner .grant-body,
.grant-inner p {
  color: #EDF7E3 !important;
  font-size: clamp(16.5px, 1.8vw, 19.5px) !important;
  line-height: 1.7 !important;
  max-width: 58ch !important;
  margin-left: auto !important;
  margin-right: auto !important;
  margin-bottom: 30px !important;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.8) !important;
}

.grant-actions {
  display: flex !important;
  gap: 16px !important;
  justify-content: center !important;
  align-items: center !important;
  flex-wrap: wrap !important;
}

.grant-actions .btn-primary {
  background: #3B7200 !important;
  background: linear-gradient(135deg, #4A8C00 0%, #356700 100%) !important;
  color: #ffffff !important;
  font-weight: 700 !important;
  font-size: 15.5px !important;
  padding: 14px 28px !important;
  border-radius: 8px !important;
  border: 1px solid rgba(255, 255, 255, 0.25) !important;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.4) !important;
  transition: all 0.25s ease !important;
  text-decoration: none !important;
}
.grant-actions .btn-primary:hover {
  background: linear-gradient(135deg, #58a700 0%, #3e7900 100%) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 24px rgba(74, 140, 0, 0.5) !important;
}

.grant-actions .btn-outline-light {
  background: rgba(255, 255, 255, 0.1) !important;
  color: #ffffff !important;
  font-weight: 600 !important;
  font-size: 15.5px !important;
  padding: 14px 28px !important;
  border-radius: 8px !important;
  border: 1.5px solid rgba(255, 255, 255, 0.7) !important;
  backdrop-filter: blur(10px) !important;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3) !important;
  transition: all 0.25s ease !important;
  text-decoration: none !important;
}
.grant-actions .btn-outline-light:hover {
  background: #ffffff !important;
  color: #152900 !important;
  border-color: #ffffff !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 24px rgba(255, 255, 255, 0.3) !important;
}

@media (prefers-reduced-motion: reduce) {
  #grantBanner.grant-banner,
  .grant-banner,
  #grantBg.grant-bg,
  .grant-bg {
    background-attachment: scroll !important;
  }
}



