/* ============================================
   ACTIVATION PROMO — "Есть код активации?"
   Desktop: artwork on the left, copy on the right.
   Mobile:  artwork on top, copy underneath.
   The card paints its own gradient, so it still
   looks finished before the artwork is added.
   ============================================ */

.actpromo {
  position: relative;
  overflow: hidden;
  padding: 12rem 10rem;
  background: var(--color-deep-space);
}

/* The block sits outside .glow-zone, so it carries its own glow - without it
   the card reads as pasted onto a flat black strip between the stats and the
   glowing sections below. */
.actpromo::before {
  content: '';
  position: absolute;
  left: -8%;
  top: -20%;
  width: 70%;
  height: 140%;
  background: radial-gradient(circle, rgba(139, 92, 246, 0.16) 0%, rgba(139, 92, 246, 0) 62%);
  pointer-events: none;
}

.actpromo__inner-guard,
.actpromo__card {
  position: relative;
  z-index: 1;
}

.actpromo__card {
  position: relative;
  overflow: hidden;
  width: 100%;
  max-width: 148rem;
  margin: 0 auto;
  border-radius: 3rem;

  display: grid;
  grid-template-columns: minmax(0, 46%) minmax(0, 1fr);
  align-items: center;

  background: linear-gradient(100deg, #241a4d 0%, #23309e 45%, #141438 100%);
}

.actpromo__art {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center bottom;
}

.actpromo__content {
  padding: 7rem 8rem 7rem 2rem;
}

.actpromo__title {
  margin: 0 0 2.4rem;
  font-size: 6.6rem;
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: -0.03em;
  color: var(--color-white);
}

.actpromo__text {
  margin: 0 0 4rem;
  max-width: 62rem;
  font-size: 2.5rem;
  line-height: 120%;
  color: rgba(255, 255, 255, 0.85);
}

.actpromo__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 58rem;
  padding: 2rem 4rem;
  border-radius: 999px;

  font-size: 1.8rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--color-white);
  background: linear-gradient(90deg, #8B5CF6 0%, #FF6B2D 100%);
  transition: transform 0.2s ease, filter 0.2s ease;
}

.actpromo__btn:hover {
  transform: translateY(-0.1rem);
  filter: brightness(1.06);
}

/* ============================================
   RESPONSIVE
   ============================================ */

@media (max-width: 1280px) {
  .actpromo {
    padding: 8rem 6rem;
  }

  .actpromo__content {
    padding: 5rem 4rem 5rem 2rem;
  }

}

/* Stack: the artwork is too narrow to sit beside the copy */
@media (max-width: 900px) {
  .actpromo {
    padding: 7rem 3rem;
  }

  /* The copy sits under the artwork, so the card's gradient turns upright:
     a blue band behind the students, dark purple under the text. The artwork
     is a transparent PNG, so the band is painted on the image itself and ends
     exactly where it does - no percentage tied to how tall the copy runs. */
  .actpromo__card {
    grid-template-columns: 1fr;
    background: #1c1630;
  }

  /* A fixed height would crop the students down to a strip of foreheads as
     soon as the card gets wider than a phone, so the band keeps a ratio
     instead and always cuts at the same place - just below the laptops. */
  .actpromo__art {
    height: auto;
    max-height: none;
    aspect-ratio: 16 / 9;
    object-position: center top;
    background: linear-gradient(180deg, #101533 0%, #0d2262 55%, #14247a 100%);
  }

  .actpromo__content {
    padding: 4rem 3rem 5rem;
  }

  .actpromo__title {
    font-size: 4rem;
  }

  .actpromo__text {
    max-width: none;
    font-size: 2.1rem;
    line-height: 1.45;
  }

  .actpromo__btn {
    max-width: none;
    font-size: 2rem;
  }
}
