/* Where We Operate — hero section */
[data-id="e8220c4"] {
  background-color: #060C06 !important;
  min-height: 500px;
  position: relative;
  overflow: hidden;
}

[data-id="e8220c4"] .e-con-inner {
  display: flex !important;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 500px;
  padding-bottom: 52px !important;
  padding-left: 40px !important;
  padding-right: 40px !important;
  padding-top: 0 !important;
  position: relative;
}

/* Canvas sits behind all content */
[data-id="e8220c4"] canvas#ch-hero-particles {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 0;
}

/* Text content sits above canvas */
[data-id="e8220c4"] .elementor-widget-container {
  position: relative;
  z-index: 2;
}









/* ── Our Presence — office card hover ── */
.ch-office-card {
  transition: transform 0.22s cubic-bezier(0.34, 1.56, 0.64, 1),
              box-shadow 0.22s ease,
              border-color 0.2s ease;
  will-change: transform, box-shadow;
}
.ch-office-card:hover {
  transform: translateY(-5px) scale(1.015);
  box-shadow: 0 14px 32px rgba(13,172,43,0.10), 0 4px 10px rgba(13,172,43,0.06);
  border-color: rgba(13,172,43,0.45) !important;
}

/* ── Region card hover ── */
.ch-region-card {
  transition: background 0.2s ease, border-color 0.2s ease;
}
.ch-region-card:hover {
  background: rgba(13,172,43,0.08) !important;
  border-color: rgba(13,172,43,0.4) !important;
}







/* ── What We Think — article card hover ── */
.ch-article-card {
  transition: transform 0.22s cubic-bezier(0.34, 1.56, 0.64, 1),
              box-shadow 0.22s ease,
              border-color 0.2s ease;
  transform-style: preserve-3d;
  perspective: 600px;
  will-change: transform, box-shadow;
}
.ch-article-card:hover {
  transform: translateY(-6px) scale(1.018) rotateX(2deg);
  box-shadow: 0 14px 32px rgba(13,172,43,0.10), 0 4px 10px rgba(13,172,43,0.06);
  border-color: rgba(13,172,43,0.4) !important;
}
.ch-article-card:active {
  transform: translateY(-2px) scale(1.01);
  transition-duration: 0.1s;
}

/* ── Category filter buttons ── */
.ch-filter-btn {
  font-size: 11px;
  font-weight: 700;
  font-family: Raleway, sans-serif;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: 7px 16px;
  border: 0.5px solid rgba(13,172,43,0.3);
  background: transparent;
  color: #555;
  cursor: pointer;
  border-radius: 0;
  transition: background .2s, color .2s, border-color .2s;
}
.ch-filter-btn:hover {
  border-color: #0DAC2B;
  color: #0B722E;
}
.ch-filter-btn.active {
  background: #0DAC2B;
  color: #fff;
  border-color: #0DAC2B;
}

/* ── Staff pick card hover ── */
.ch-staff-pick {
  transition: background 0.2s ease, border-color 0.2s ease;
  cursor: pointer;
}
.ch-staff-pick:hover {
  background: rgba(13,172,43,0.1) !important;
  border-color: rgba(13,172,43,0.4) !important;
}













/* ── Where We Go — event card hover ── */
.ch-event-card {
  transition: transform 0.22s cubic-bezier(0.34, 1.56, 0.64, 1),
              box-shadow 0.22s ease,
              border-color 0.2s ease;
  transform-style: preserve-3d;
  perspective: 600px;
  will-change: transform, box-shadow;
}
.ch-event-card:hover {
  transform: translateY(-6px) scale(1.018) rotateX(2deg);
  box-shadow: 0 14px 32px rgba(13,172,43,0.12), 0 4px 10px rgba(13,172,43,0.07);
  border-color: rgba(13,172,43,0.5) !important;
}
.ch-event-card:active {
  transform: translateY(-2px) scale(1.01);
  transition-duration: 0.1s;
}

/* ── Timeline vertical connector line ── */
.ch-timeline::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 1px;
  background: linear-gradient(to bottom, rgba(13,172,43,0.4), rgba(13,172,43,0.05));
}

/* ── Timeline dot pulse ── */
@keyframes timelinePulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(13,172,43,0.4); }
  50% { box-shadow: 0 0 0 6px rgba(13,172,43,0); }
}
.ch-timeline-dot {
  animation: timelinePulse 2.5s ease-in-out infinite;
}













@keyframes ch-orbit {
  0%   { transform: rotate(0deg) translateX(56px) rotate(0deg); }
  100% { transform: rotate(360deg) translateX(56px) rotate(-360deg); }
}

@keyframes ch-orbit-r {
  0%   { transform: rotate(0deg) translateX(74px) rotate(0deg); }
  100% { transform: rotate(-360deg) translateX(74px) rotate(360deg); }
}

@keyframes ch-float {
  0%,100% { transform: translateY(0); }
  50%     { transform: translateY(-7px); }
}

@keyframes ch-glow {
  0%,100% { opacity: .5; }
  50%     { opacity: 1; }
}

@keyframes ch-glow2 {
  0%,100% { opacity: .28; }
  50%     { opacity: .75; }
}

@keyframes ch-pulsering {
  0%,100% { opacity: .07; }
  50%     { opacity: .22; }
}

@keyframes ch-twinkle {
  0%,100% { opacity: 1; }
  50%     { opacity: .18; }
}

@keyframes ch-twinkle2 {
  0%,100% { opacity: .55; }
  50%     { opacity: .08; }
}

.ch-orbit-group {
  transform-box: fill-box;
}