/* ============================================================
   site-v20.css — Hero split layout + image animation (v1.5.6)
   ============================================================ */

.hero.hero-split {
  background: #ffffff !important;
  padding: clamp(40px, 6vw, 80px) 0 clamp(36px, 5vw, 64px) !important;
  text-align: left !important;
}
.hero.hero-split::before, .hero.hero-split::after { display: none !important; }

.hero-grid {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: clamp(28px, 4vw, 64px);
  align-items: center;
}
.hero-text { text-align: left; }
.hero-text .hero-flank { justify-content: flex-start; margin-bottom: 14px; }
.hero-text .hero-flank .rule { width: 24px; }
.hero-text h1.h1 { margin: 0 0 14px !important; text-align: left !important; }
.hero-text .lede { margin: 0 0 22px !important; text-align: left !important; max-width: 52ch; }
.hero-text .cta-row { justify-content: flex-start !important; }

/* Image frame */
.hero-media {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}
.hero-media-frame {
  position: relative;
  width: 100%;
  max-width: 460px;
  aspect-ratio: 1 / 1;
  border-radius: 18px;
  overflow: visible;
  isolation: isolate;
}
.hero-media-frame img {
  position: relative;
  width: 100%; height: 100%;
  object-fit: cover;
  border-radius: 18px;
  box-shadow: 0 24px 60px -20px rgba(20,33,61,0.30),
              0 8px 24px -8px rgba(79,142,220,0.18);
  z-index: 2;
  animation: hero-img-in 1100ms cubic-bezier(.2,.7,.2,1) both,
             hero-img-float 6.5s ease-in-out 1100ms infinite;
  transition: transform .4s ease, box-shadow .4s ease;
}
.hero-media-frame:hover img {
  transform: translateY(-4px) scale(1.015);
  box-shadow: 0 32px 72px -20px rgba(20,33,61,0.35),
              0 12px 28px -8px rgba(79,142,220,0.22);
}

@keyframes hero-img-in {
  from { opacity: 0; transform: translateY(20px) scale(.96); }
  to   { opacity: 1; transform: translateY(0)    scale(1);   }
}
@keyframes hero-img-float {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-8px); }
}

/* Decorative gradient blobs behind the image */
.hero-media-blob {
  position: absolute;
  border-radius: 50%;
  filter: blur(36px);
  opacity: 0.6;
  z-index: 1;
  pointer-events: none;
}
.hero-media-blob-1 {
  width: 60%; height: 60%;
  background: linear-gradient(135deg, #66b3ff, #4F8EDC);
  top: -8%; right: -8%;
  animation: hero-blob 9s ease-in-out infinite;
}
.hero-media-blob-2 {
  width: 45%; height: 45%;
  background: linear-gradient(135deg, #cfe5ff, #66b3ff);
  bottom: -6%; left: -6%;
  animation: hero-blob 11s ease-in-out infinite reverse;
}
@keyframes hero-blob {
  0%, 100% { transform: translate(0, 0) scale(1); }
  50%      { transform: translate(8px, -10px) scale(1.06); }
}

/* Floating badge over the image */
.hero-media-badge {
  position: absolute;
  bottom: 16px; left: -18px;
  background: #ffffff;
  border-radius: 12px;
  box-shadow: 0 12px 28px rgba(20,33,61,0.16);
  padding: 12px 16px;
  z-index: 3;
  border: 1px solid rgba(20,33,61,0.06);
  animation: hero-img-in 1200ms cubic-bezier(.2,.7,.2,1) both 300ms,
             hero-badge-float 5s ease-in-out 1500ms infinite;
}
.hero-media-badge .num {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-weight: 700; font-size: 18px; color: #4F8EDC;
  line-height: 1;
}
.hero-media-badge .lbl {
  font-size: 11px; color: #6B7280;
  margin-top: 2px;
  text-transform: uppercase; letter-spacing: 0.04em; font-weight: 600;
}
@keyframes hero-badge-float {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-6px); }
}

/* Responsive */
@media (max-width: 880px) {
  .hero-grid { grid-template-columns: 1fr; gap: 28px; }
  .hero-text { text-align: left; }
  .hero-media-frame { max-width: 380px; margin: 0 auto; }
  .hero-media-badge { left: 0; bottom: 12px; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-media-frame img,
  .hero-media-blob,
  .hero-media-badge {
    animation: none !important;
  }
}
