/* Эффекты виджетов. Чтобы отключить - уберите <link> на этот файл (и <script> js/effects.js). */

/* ---------- Цитата: слова, кавычка, подпись ---------- */
blockquote.fx-words .w{display:inline-block;opacity:0;transform:translateY(10px);
  transition:opacity .6s var(--e),transform .6s var(--e);transition-delay:calc(var(--i) * var(--s,55ms) + 250ms)}
blockquote.fx-words.in .w{opacity:1;transform:none}
blockquote.fx-words cite{opacity:0;transition:opacity .8s var(--e) var(--t,1s)}
blockquote.fx-words.in cite{opacity:1}
blockquote.reveal::before{transition:scale .9s cubic-bezier(.34,1.56,.64,1) .1s,opacity .9s var(--e) .1s}
blockquote.reveal:not(.in)::before{scale:.5;opacity:0}

/* ---------- Карточки: 3D-наклон ---------- */
.b-cards .card.reveal.in:hover{
  transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(-6px);
  transition:transform .25s var(--e),border-color .5s var(--e),box-shadow .5s var(--e)}

/* ---------- Преимущества: плитки и линия ---------- */
.b-features .feat>div{position:relative}
.b-features .feat>div::after{content:"";position:absolute;left:0;right:0;top:-1px;height:1px;background:var(--c1);opacity:.55;
  transform:scaleX(0);transform-origin:0 50%;transition:transform 1.1s var(--e) var(--d,0ms)}
.b-features .feat>div.in::after{transform:scaleX(1)}
.b-features .feat>div:not(.in)::before{transform:scale(.55) rotate(-14deg);opacity:0}
.b-features .feat>div::before{transition:transform .8s cubic-bezier(.34,1.56,.64,1) calc(var(--d,0ms) + 250ms),
  opacity .5s var(--e) calc(var(--d,0ms) + 250ms),background .5s var(--e),color .5s var(--e),border-color .5s var(--e)}

/* ---------- Этапы: линия прорисовывается, номер с импульсом ---------- */
.step:not(:last-child)::before{transform-origin:50% 0;transform:scaleY(0);transition:transform 1s var(--e) .45s}
.step.in:not(:last-child)::before{transform:scaleY(1)}
.step .n{transition:scale .7s cubic-bezier(.34,1.56,.64,1) .15s}
.step:not(.in) .n{scale:.6}
.step.in .n{animation:ringPulse 1.4s var(--e) .25s 1}
@keyframes ringPulse{from{box-shadow:0 0 0 0 rgba(var(--c1r),.55)}to{box-shadow:0 0 0 16px rgba(var(--c1r),0)}}

/* ---------- Вопросы и ответы ---------- */
.faq summary{padding-left:20px}
.faq p{padding-left:20px}
.faq summary::before{content:"";position:absolute;left:0;top:50%;width:3px;height:0;background:var(--c1);translate:0 -50%;transition:height .4s var(--e)}
.faq summary:hover::before,.faq[open] summary::before{height:55%}
.faq.closing summary::after{rotate:0deg}
.faq.closing summary::before{height:0}

/* ---------- Тарифы ---------- */
.b-pricing .card.price.reveal.in:hover{transform:translateY(-6px)}
.price strong::after{content:"";display:block;width:36px;height:2px;margin-top:10px;background:var(--c2);transition:width .5s var(--e)}
.card.price:hover strong::after{width:100%}

/* ---------- Отзывы ---------- */
.rev{position:relative}
.rev>*{position:relative}
.rev::before{content:"\201C";position:absolute;right:20px;top:6px;font:700 72px/1 var(--serif);color:var(--c2);opacity:.28;
  transition:scale .9s cubic-bezier(.34,1.56,.64,1) calc(var(--d,0ms) + 200ms),opacity .8s var(--e) calc(var(--d,0ms) + 200ms),rotate .9s var(--e) calc(var(--d,0ms) + 200ms)}
.rev.reveal:not(.in)::before{scale:.4;opacity:0;rotate:-20deg}
.rev figcaption{display:flex;align-items:center;gap:14px}
.rev-ava{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;font:700 18px/1 var(--font,sans-serif);font-style:normal;
  color:var(--c1);background:rgba(var(--c1r),.12);border:1px solid rgba(var(--c1r),.55);transition:background .4s var(--e),color .4s var(--e)}
.rev:hover .rev-ava{background:var(--c1);color:var(--on1)}

/* ---------- Команда ---------- */
.team .ava{transition:transform .7s cubic-bezier(.34,1.56,.64,1),box-shadow .5s var(--e)}
.team figure.reveal:not(.in) .ava{transform:scale(.7)}
.team figure:hover .ava{box-shadow:0 0 0 8px rgba(var(--c1r),.16)}
.team figure b{position:relative;padding-bottom:8px}
.team figure b::after{content:"";position:absolute;left:50%;bottom:0;width:0;height:2px;background:var(--c2);translate:-50% 0;transition:width .5s var(--e)}
.team figure:hover b::after{width:40px}
.team figure span{transition:color .4s var(--e)}
.team figure:hover span{color:var(--tx)}

@media(prefers-reduced-motion:reduce){
  blockquote.fx-words .w,blockquote.fx-words cite{opacity:1;transform:none}
  .step:not(.in) .n,.team figure.reveal:not(.in) .ava{scale:1;transform:none}
}
