/* Главная, блок «Финальный призыв» (templates/public/home/cta.html). */

/* Эхо первого экрана: светлый баннер со скруглением, за ним наклонённая
   мозаика обложек глав (как .hero-mosaic), поверх — светлая вуаль,
   плотная в середине и прозрачная к краям, чтобы обложки читались
   рамкой, а текст — на ровном фоне. Плашка, почта и факты — общие
   компоненты первого экрана (.chip, .signup, .facts, .h-grad). */
.ct-box {
  position: relative; isolation: isolate; overflow: hidden;
  display: grid; justify-items: center; gap: 22px;
  padding: 84px 40px 80px; border-radius: 34px; text-align: center;
  background: #eef1f8;
  box-shadow: 0 30px 60px -30px rgba(25, 30, 80, .28), 0 2px 6px rgba(25, 30, 80, .05);
}
.ct-mosaic {
  position: absolute; inset: -140px -80px; z-index: -2;
  display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 16px;
  transform: rotate(-8deg);
}
.ct-mosaic img {
  display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover;
  border-radius: 16px; box-shadow: 0 10px 24px -14px rgba(30, 30, 90, .5);
}
.ct-box::after {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: radial-gradient(52% 82% at 50% 52%, rgba(246, 247, 251, .97) 0, rgba(246, 247, 251, .94) 58%, rgba(246, 247, 251, .45) 85%, rgba(246, 247, 251, .2) 100%);
}
.ct h2 {
  max-width: 760px; margin: 0;
  font-size: clamp(32px, 4.4vw, 50px); line-height: 1.06; font-weight: 800; letter-spacing: -.035em;
  text-wrap: balance;
}
.ct-lead { max-width: 560px; margin: 0; font-size: clamp(16.5px, 1.6vw, 18.5px); line-height: 1.55; color: var(--muted); }
.ct .ct-acts { justify-content: center; margin: 6px 0 0; }
.ct .facts { justify-content: center; margin: 0; font-size: 14.5px; }
.ct .facts li::before { width: 16px; height: 16px; background-size: 16px; }

@media (max-width: 720px) {
  .ct-box { padding: 44px 18px 40px; border-radius: 26px; gap: 18px; }
  .ct-mosaic { inset: -60px -220px; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
  .ct-mosaic img { border-radius: 10px; }
  .ct-box::after { background: radial-gradient(90% 60% at 50% 50%, rgba(246, 247, 251, .97) 0, rgba(246, 247, 251, .92) 60%, rgba(246, 247, 251, .55) 100%); }
  .ct .facts { gap: 8px 16px; font-size: 15px; }
}
