/* «Светящаяся кромка» и призывы (CTA) по смыслу блоков. Подключается на главной, /seo, /website (RU+DE).
   Кромка: тонкая линия-градиент (прозрачный, #818cf8, прозрачный) + мягкий отсвет внутрь. Элемент <i class="ge"> вставляет cta-glow.js
   (у «плоскостей» уже заняты ::before/::after, поэтому не псевдоэлементы). Варианты: --t сверху, --l слева, --b снизу.
   Блик пробегает по кромке один раз (1,2 с) при первом появлении в экране и при наведении. reduced-motion: статичная кромка. */

.ge-host{position:relative}
.ge{--ge-a:.62;position:absolute;z-index:3;pointer-events:none;opacity:var(--ge-a);transition:opacity .4s;
  background-repeat:no-repeat;box-shadow:0 0 12px 1px rgba(129,140,248,.55)}
.ge--t,.ge--b{left:9%;right:9%;height:1.5px;
  background-image:linear-gradient(90deg,transparent,#e0e7ff,transparent),linear-gradient(90deg,transparent,#818cf8 50%,transparent);
  background-size:30% 100%,100% 100%;background-position:-40% 0,0 0}
.ge--t{top:0}.ge--b{bottom:0}
.ge--l{left:0;top:12%;bottom:12%;width:1.5px;
  background-image:linear-gradient(180deg,transparent,#e0e7ff,transparent),linear-gradient(180deg,transparent,#818cf8 50%,transparent);
  background-size:100% 30%,100% 100%;background-position:0 -40%,0 0}
/* отсвет внутрь элемента */
.ge::after{content:"";position:absolute;pointer-events:none;opacity:.9}
.ge--t::after{left:-12%;right:-12%;top:0;height:54px;background:radial-gradient(55% 100% at 50% 0,rgba(129,140,248,.17),transparent)}
.ge--b::after{left:-12%;right:-12%;bottom:0;height:54px;background:radial-gradient(55% 100% at 50% 100%,rgba(129,140,248,.15),transparent)}
.ge--l::after{top:-12%;bottom:-12%;left:0;width:54px;background:radial-gradient(100% 55% at 0 50%,rgba(129,140,248,.15),transparent)}
.seal.ge-host{padding-bottom:28px}
.ge-host:hover > .ge,.ge-host:focus-within > .ge,.ge-host.is-hot > .ge{--ge-a:.85}
details[open] > summary > .ge{--ge-a:.95}
.ge-run.ge--t,.ge-run.ge--b{animation:geRunX 1.2s cubic-bezier(.215,.61,.355,1) 1 both}
.ge-run.ge--l{animation:geRunY 1.2s cubic-bezier(.215,.61,.355,1) 1 both}
@keyframes geRunX{from{background-position:-40% 0,0 0}to{background-position:140% 0,0 0}}
@keyframes geRunY{from{background-position:0 -40%,0 0}to{background-position:0 140%,0 0}}
/* в таблице цен подсвеченный столбец ярче */
.pt-spot > .ge{--ge-a:.9}
@media (prefers-reduced-motion:reduce){.ge-run{animation:none!important}}
/* карточки развилки главной: кромка появляется вместе с карточками (по положению кадра) */
html.sh-live .fork-card > .ge{opacity:calc(var(--ge-a) * clamp(0,calc((var(--t,0) - .9) * 10),1))}

/* ───────── CTA-строка после блока ───────── */
.cta-row{position:relative;display:flex;align-items:center;flex-wrap:wrap;gap:14px 28px;margin-top:clamp(32px,4vw,56px);padding:18px 24px 18px 30px;border-radius:20px;
  background:linear-gradient(90deg,rgba(129,140,248,.09),rgba(255,255,255,.02));box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.cta-t{flex:1 1 320px;margin:0;max-width:none;font:500 clamp(18px,1.7vw,24px)/1.3 var(--font-head);letter-spacing:-.02em;color:var(--text)}
.cta-row .btn{flex:none}
.cta-link{display:inline-flex;align-items:center;gap:8px;font:600 16px/1.2 var(--font-text);color:var(--link);text-decoration:none;white-space:nowrap;padding:10px 4px;border-bottom:1px solid rgba(165,180,252,.35)}
.cta-link span{transition:transform .3s}
.cta-link:hover{color:#fff;border-bottom-color:#a5b4fc}
.cta-link:hover span{transform:translateX(4px)}
.cta-out{padding-top:0;padding-bottom:clamp(40px,5vw,72px)}
.cta-out .cta-row{margin-top:0}
@media (max-width:560px){
  .cta-row{padding:16px 16px 16px 22px;gap:12px}
  .cta-row .btn{width:100%}
  .cta-link{white-space:normal}
}

/* ───────── липкая полоска на мобиле (/seo, /website): после первого экрана, прячется над формой и подвалом ───────── */
.m-cta{display:none}
@media (max-width:899.98px){
  .m-cta{display:flex;align-items:center;gap:10px;position:fixed;left:0;right:0;bottom:0;z-index:900;height:calc(64px + env(safe-area-inset-bottom,0px));padding:9px 12px calc(9px + env(safe-area-inset-bottom,0px));
    background:rgba(10,10,24,.92);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid rgba(165,180,252,.28);
    box-shadow:0 -8px 30px -12px rgba(99,102,241,.5);transform:translateY(110%);transition:transform .4s cubic-bezier(.215,.61,.355,1)}
  .m-cta.is-on{transform:none}
  .m-cta .btn{flex:1;min-height:46px;padding:8px 16px;font-size:15.5px}
  .m-cta-tg{flex:none;display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:14px;color:#a5b4fc;background:var(--bg-card);
    box-shadow:inset 0 0 0 1px rgba(165,180,252,.35)}
  .m-cta-tg svg{width:22px;height:22px}
  body.has-mcta{padding-bottom:calc(64px + env(safe-area-inset-bottom,0px))}
}
@media (max-width:899.98px) and (prefers-reduced-motion:reduce){.m-cta{transition:none}}
