/* =============================================
   SITE FOOTER — Combined CTA + Footer Bar
   ============================================= */

.site-footer {
  background: var(--color-dark);
  color: var(--color-text-light);
}

/* ---- CTA area ---- */

.site-footer__cta {
  position: relative;
  overflow: hidden;
  text-align: center;
  padding-block: clamp(5rem, 8vw, 9rem);
  border-bottom: 1px solid rgba(255, 255, 255, 0.07);
  background: var(--color-bg-site, #070E12);
}

/* Gradient orbs */
.footer-cta__orb {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  z-index: 0;
}

.footer-cta__orb--1 {
  width: 700px;
  height: 700px;
  top: -200px;
  right: -100px;
  background: radial-gradient(circle, rgba(59, 160, 181, 0.18) 0%, transparent 65%);
  filter: blur(80px);
}

.footer-cta__orb--2 {
  width: 560px;
  height: 560px;
  bottom: -180px;
  left: -60px;
  background: radial-gradient(circle, rgba(27, 77, 92, 0.28) 0%, transparent 65%);
  filter: blur(90px);
}

/* Circuit SVG */
.footer-cta__circuit {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 0;
  object-fit: cover;
}

/* ---- Current-flow animations ---- */

.cct-live {
  stroke: #3BA0B5;
  stroke-width: 1;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 8 100;
  filter: drop-shadow(0 0 3px rgba(59, 160, 181, 0.85));
}

/* Each variant: slightly different speed + start offset so pulses feel organic */
.cct-live--a { animation: cct-flow 6.5s linear infinite;       opacity: 0.62; }
.cct-live--b { animation: cct-flow 3.8s linear infinite -1.3s; opacity: 0.68; }
.cct-live--c { animation: cct-flow 4.4s linear infinite -2.7s; opacity: 0.64; }
.cct-live--d { animation: cct-flow 5.2s linear infinite -0.5s; opacity: 0.58; }
.cct-live--e { animation: cct-flow 7.8s linear infinite -4.1s; opacity: 0.5;  }
.cct-live--f { animation: cct-flow 2.9s linear infinite -0.9s; opacity: 0.7;  }
.cct-live--g { animation: cct-flow 3.3s linear infinite -2.1s; opacity: 0.65; }

/* Dash travels forward along the path direction */
@keyframes cct-flow {
  from { stroke-dashoffset: 108; }
  to   { stroke-dashoffset: 0; }
}

/* Dot grid overlay */
.site-footer__cta::after {
  content: '';
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle, rgba(255,255,255,0.04) 1px, transparent 1px);
  background-size: 32px 32px;
  pointer-events: none;
  z-index: 0;
}

/* Teal accent rule above CTA */
.site-footer__cta::before {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 80px;
  height: 3px;
  background: linear-gradient(90deg, transparent, var(--color-accent), transparent);
  border-radius: 2px;
  z-index: 1;
}

.site-footer__cta-inner {
  position: relative;
  z-index: 2;
}

.site-footer__cta .eyebrow--light {
  margin-bottom: var(--space-md);
  letter-spacing: 0.16em;
}

.site-footer__cta h2 {
  color: white;
  font-size: clamp(1.75rem, 1.5rem + 2.5vw, 3.5rem);
  line-height: var(--leading-tight);
  margin-bottom: var(--space-md);
  max-width: 820px;
  margin-inline: auto;
  letter-spacing: 0.04em;
}

.site-footer__cta > .container > p,
.site-footer__cta-inner > p {
  color: rgba(255, 255, 255, 0.55);
  font-size: var(--text-lg);
  max-width: 560px;
  margin-inline: auto;
  margin-bottom: var(--space-xl);
  line-height: var(--leading-relaxed);
}

.site-footer__cta-actions {
  display: flex;
  gap: var(--space-sm);
  justify-content: center;
  flex-wrap: wrap;
}

/* ---- Footer bar ---- */

.site-footer__bar {
  background: rgba(13, 40, 48, 0.88);
  padding-block: var(--space-lg) var(--space-xl);
}

.site-footer__bar-inner {
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
  align-items: center;
  text-align: center;
}

@media (min-width: 768px) {
  .site-footer__bar-inner {
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-end;
    text-align: left;
  }
}

/* Brand — left side */

.site-footer__brand .footer-logo {
  max-height: 50px;
  width: auto;
  margin-bottom: var(--space-xs);
}

.site-footer__tagline {
  font-size: var(--text-sm);
  color: rgba(255, 255, 255, 0.7);
  margin-top: var(--space-xs);
}

/* Meta — right side */

.site-footer__meta {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

@media (min-width: 768px) {
  .site-footer__meta {
    align-items: flex-end;
    text-align: right;
    margin-top: auto;
  }
}

.site-footer__location {
  font-size: var(--text-sm);
  color: rgba(255, 255, 255, 0.6);
}

.site-footer__copyright {
  font-size: var(--text-xs);
  color: rgba(255, 255, 255, 0.4);
}
