.cta-banner {
  position: relative;
  background: linear-gradient(135deg, var(--color-canvas-2) 0%, var(--color-primary-50) 100%);
  border-radius: var(--r-xl);
  padding: clamp(2rem, 4vw, 3.5rem);
  display: grid;
  gap: var(--sp-6);
  grid-template-columns: 1fr;
  align-items: center;
  overflow: hidden;
  border: 1px solid var(--color-border);
  box-shadow: var(--sh-1);
}

@media (min-width: 768px) {
  .cta-banner {
    grid-template-columns: 3fr 2fr;
    padding: clamp(2.5rem, 5vw, 4rem);
  }
}

.cta-banner__body .eyebrow { margin-bottom: var(--sp-3); }

.cta-banner__body h2 {
  font-family: var(--font-display);
  font-size: clamp(1.5rem, 2.5vw + 0.5rem, 2.5rem);
  margin: 0;
  max-width: 520px;
  line-height: var(--lh-tight);
}

.cta-banner__body p {
  margin-top: var(--sp-4);
  max-width: 480px;
  font-size: var(--fs-16);
}

.cta-banner__body .btn {
  margin-top: var(--sp-5);
}

.cta-banner__image {
  display: flex;
  justify-content: center;
  align-items: center;
}

.cta-banner__image img {
  max-width: 100%;
  height: auto;
  animation: float-y 6s ease-in-out infinite;
}

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