/* =========================
   ViSiB Effects Module
   v29.6.1
   ========================= */

body{
  background:
    radial-gradient(circle at 20% 10%, rgba(108,99,255,.22), transparent 32%),
    radial-gradient(circle at 80% 18%, rgba(255,64,129,.14), transparent 34%),
    linear-gradient(135deg,#070A12,#101827,#070A12) !important;
}

body::after{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:0;
  background-image:radial-gradient(circle,rgba(255,255,255,.22) 1px,transparent 1px);
  background-size:42px 42px;
  opacity:.16;
  animation:v10Particles 22s linear infinite;
}

#v10-ai-network{
  position:fixed;
  inset:0;
  width:100vw;
  height:100vh;
  pointer-events:none;
  z-index:0 !important;
  opacity:.95 !important;
  mix-blend-mode:screen !important;
  filter:drop-shadow(0 0 8px rgba(0,229,255,.55));
}

body > *:not(#v10-ai-network){
  position:relative;
  z-index:1;
}

.card,
.price-mini,
.demo-card-link,
.v10-story-card,
.v10-bento-card,
.v24-stat,
.v24-leads,
.v25-builder-preview,
.v25-builder-list,
.v25-mini-card,
.v26-market-main,
.v26-market-side,
.v26-market-card,
.v26-market-stat,
.v27-orbit,
.v27-flow-row{
  position:relative;
  overflow:hidden;
  transform-style:preserve-3d;
  will-change:transform;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.card::before,
.price-mini::before,
.demo-card-link::before,
.v10-bento-card::before,
.v25-builder-preview::before,
.v25-builder-list::before,
.v26-market-main::before,
.v26-market-side::before{
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(circle at var(--mx,50%) var(--my,50%), rgba(0,229,255,.18), transparent 34%);
  opacity:0;
  transition:.2s;
  pointer-events:none;
}

.card:hover::before,
.price-mini:hover::before,
.demo-card-link:hover::before,
.v10-bento-card:hover::before{
  opacity:1;
}

.v10-reveal{
  opacity:0;
  transition:
    opacity .65s ease,
    transform .65s cubic-bezier(.2,.8,.2,1),
    box-shadow .18s ease,
    border-color .18s ease;
}

.v10-reveal.from-left{
  transform:translateX(-44px) translateY(18px);
}

.v10-reveal.from-right{
  transform:translateX(44px) translateY(18px);
}

.v10-reveal.show{
  opacity:1;
  transform:translateX(0) translateY(0);
}

.btn{
  position:relative;
  overflow:hidden;
  transform-style:preserve-3d;
  will-change:transform;
  transition:transform .16s ease, box-shadow .2s ease, filter .2s ease;
}

.btn::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(120deg,transparent,rgba(255,255,255,.22),transparent);
  transform:translateX(-120%);
  transition:.45s;
}

.btn:hover::before{
  transform:translateX(120%);
}

.btn:hover{
  filter:brightness(1.12);
  box-shadow:0 18px 42px rgba(108,99,255,.32);
}

@keyframes v10Particles{
  from{background-position:0 0}
  to{background-position:420px 420px}
}

@media(max-width:768px){
  #v10-ai-network{
    opacity:.22 !important;
    filter:none !important;
  }

  body::after{
    opacity:.04 !important;
    animation:none !important;
  }

  .card,
  .price-mini,
  .demo-card-link,
  .v10-story-card,
  .v10-bento-card,
  .v24-stat,
  .v24-leads,
  .v25-builder-preview,
  .v25-builder-list,
  .v25-mini-card{
    transform:none !important;
    will-change:auto !important;
  }

  .v10-reveal,
  .v10-reveal.from-left,
  .v10-reveal.from-right,
  .v10-reveal.show{
    transform:none !important;
    opacity:1 !important;
    transition:opacity .25s ease !important;
  }

  .card::before,
  .price-mini::before,
  .demo-card-link::before,
  .v10-bento-card::before,
  .v25-builder-preview::before,
  .v25-builder-list::before{
    display:none !important;
  }
}

/* =========================
   V29.7 Visual Fixes
   ========================= */

/* Hero badge: infinity movement */
.hero-badge{
  animation:v297Infinity 5.5s ease-in-out infinite !important;
}

@keyframes v297Infinity{
  0%{transform:translate(0,0) rotate(0deg)}
  12%{transform:translate(8px,-5px) rotate(1deg)}
  25%{transform:translate(16px,0) rotate(0deg)}
  37%{transform:translate(8px,5px) rotate(-1deg)}
  50%{transform:translate(0,0) rotate(0deg)}
  62%{transform:translate(-8px,-5px) rotate(-1deg)}
  75%{transform:translate(-16px,0) rotate(0deg)}
  87%{transform:translate(-8px,5px) rotate(1deg)}
  100%{transform:translate(0,0) rotate(0deg)}
}

/* Mouse glow for new SaaS blocks */
.v24-stat::before,
.v24-leads::before,
.v25-builder-preview::before,
.v25-builder-list::before,
.v25-mini-card::before,
.v26-market-main::before,
.v26-market-side::before,
.v26-market-card::before,
.v26-market-stat::before,
.v27-orbit::before,
.v27-flow-row::before{
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(circle at var(--mx,50%) var(--my,50%),rgba(0,229,255,.22),transparent 36%);
  opacity:0;
  transition:.25s;
  pointer-events:none;
}

.v24-stat:hover::before,
.v24-leads:hover::before,
.v25-builder-preview:hover::before,
.v25-builder-list:hover::before,
.v25-mini-card:hover::before,
.v26-market-main:hover::before,
.v26-market-side:hover::before,
.v26-market-card:hover::before,
.v26-market-stat:hover::before,
.v27-orbit:hover::before,
.v27-flow-row:hover::before{
  opacity:1;
}

/* Restore premium pricing animated glow */
.price-mini{
  position:relative;
  overflow:hidden;
}

.price-mini::after{
  content:"";
  position:absolute;
  inset:-2px;
  z-index:-1;
  border-radius:inherit;
  background:linear-gradient(135deg,#00E5FF,#6C63FF,#FF4081,#00E5FF);
  background-size:400% 400%;
  opacity:.42;
  animation:v297PriceGlow 10s linear infinite;
}

.price-mini.featured::after{
  opacity:.85;
}

@keyframes v297PriceGlow{
  0%{background-position:0% 50%}
  50%{background-position:100% 50%}
  100%{background-position:0% 50%}
}

/* FAQ hover effect */
.faq-item{
  position:relative;
  overflow:hidden;
  transition:.25s ease;
}

.faq-item:hover{
  background:linear-gradient(135deg,rgba(0,229,255,.12),rgba(108,99,255,.12),rgba(255,64,129,.10)) !important;
  border-color:rgba(0,229,255,.34) !important;
  box-shadow:0 18px 55px rgba(0,229,255,.12);
}

/* Map resize support */
.map-wrap,
.map-container,
iframe[src*="maps"]{
  resize:vertical;
  overflow:auto;
  min-height:320px !important;
  max-height:720px !important;
}

/* Pen writing effect for SEO text */
.section .container[style*="max-width:900px"] p,
.section .container[style*="max-width:1080px"] p{
  animation:v297InkWrite 1.4s ease both;
}

@keyframes v297InkWrite{
  from{
    opacity:0;
    filter:blur(4px);
    clip-path:inset(0 100% 0 0);
  }
  to{
    opacity:1;
    filter:blur(0);
    clip-path:inset(0 0 0 0);
  }
}

/* "Как работает" shatter hover */
.section-header h2:hover{
  text-shadow:
    2px -2px 0 rgba(0,229,255,.45),
    -3px 2px 0 rgba(255,64,129,.35),
    4px 3px 0 rgba(108,99,255,.32);
  letter-spacing:.04em;
  filter:contrast(1.2);
  transition:.2s ease;
}

@media(max-width:768px){
  .hero-badge{
    animation:none !important;
  }
}

/* V29.7 Official footer */
.v297-official-footer{
  padding:34px 20px 150px;
  background:rgba(7,10,18,.92);
  border-top:1px solid rgba(255,255,255,.12);
}

.v297-footer-grid{
  max-width:1180px;
  margin:0 auto;
  display:grid;
  grid-template-columns:1.2fr 1fr 1fr 1fr;
  gap:22px;
}

.v297-footer-grid strong{
  display:block;
  color:#fff;
  margin-bottom:10px;
}

.v297-footer-grid p,
.v297-footer-grid span,
.v297-footer-grid a{
  display:block;
  color:#cbd5e1;
  text-decoration:none;
  margin:7px 0;
  font-size:14px;
}

.v297-footer-grid a:hover{
  color:#00E5FF;
}

@media(max-width:768px){
  .v297-footer-grid{
    grid-template-columns:1fr;
  }
}

/* =========================
   V29.8 Pricing / FAQ / Map polish
   ========================= */

/* Pricing cards: all cards stable, featured glows stronger */
.price-row{
  align-items:stretch !important;
}

.price-mini{
  transform:none !important;
  min-height:100% !important;
  border:1px solid rgba(255,255,255,.14) !important;
  background:
    linear-gradient(135deg,rgba(255,255,255,.085),rgba(255,255,255,.035)) !important;
  box-shadow:
    0 18px 55px rgba(0,0,0,.25),
    inset 0 0 28px rgba(255,255,255,.035) !important;
}

.price-mini:hover{
  transform:translateY(-8px) scale(1.025) !important;
  border-color:rgba(0,229,255,.45) !important;
  box-shadow:
    0 28px 85px rgba(0,0,0,.38),
    0 0 35px rgba(0,229,255,.18),
    inset 0 0 28px rgba(255,255,255,.045) !important;
}

.price-mini::after{
  content:"";
  position:absolute;
  inset:-2px;
  z-index:-1;
  border-radius:inherit;
  background:linear-gradient(135deg,#00E5FF,#6C63FF,#FF4081,#00E5FF);
  background-size:400% 400%;
  opacity:.36;
  animation:v298PriceBorder 9s linear infinite;
}

.price-mini:nth-child(2)::after,
.price-mini.featured::after{
  opacity:.88;
}

.price-mini:nth-child(2){
  border-color:rgba(0,229,255,.48) !important;
  box-shadow:
    0 0 48px rgba(0,229,255,.20),
    0 28px 90px rgba(108,99,255,.28) !important;
}

@keyframes v298PriceBorder{
  0%{background-position:0% 50%}
  50%{background-position:100% 50%}
  100%{background-position:0% 50%}
}

/* FAQ: liquid hover */
.faq-item{
  position:relative !important;
  overflow:hidden !important;
  transition:.28s ease !important;
}

.faq-item::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at var(--mx,50%) var(--my,50%),rgba(0,229,255,.22),transparent 34%),
    linear-gradient(135deg,rgba(108,99,255,.10),rgba(255,64,129,.08));
  opacity:0;
  transition:.28s;
  pointer-events:none;
}

.faq-item:hover::before{
  opacity:1;
}

.faq-item:hover{
  transform:translateY(-4px);
  border-color:rgba(0,229,255,.38) !important;
  box-shadow:0 22px 70px rgba(0,229,255,.14);
}

/* Map: readable resize */
.section iframe,
iframe[src*="maps"],
iframe[src*="yandex"],
iframe[src*="google"]{
  resize:vertical;
  overflow:auto;
  min-height:340px !important;
  max-height:720px !important;
  border-radius:24px !important;
  border:1px solid rgba(255,255,255,.14) !important;
  box-shadow:0 20px 70px rgba(0,0,0,.32);
}

@media(max-width:768px){
  .price-mini,
  .price-mini:hover{
    transform:none !important;
  }

  .price-mini::after{
    opacity:.22;
  }

  .section iframe,
  iframe[src*="maps"],
  iframe[src*="yandex"],
  iframe[src*="google"]{
    min-height:300px !important;
    max-height:520px !important;
  }
}
/* =========================
   V29.9.1 Contact widget mobile fix
   ========================= */

.v10-contact-widget{
  right:22px !important;
  bottom:92px !important;
  z-index:100000 !important;
}

.v10-contact-panel{
  position:absolute !important;
  right:0 !important;
  bottom:76px !important;
  margin-bottom:0 !important;
  width:320px !important;
  max-width:calc(100vw - 28px) !important;
  transform:translateY(12px) scale(.96) !important;
  transform-origin:bottom right !important;
}

.v10-contact-widget.open .v10-contact-panel{
  transform:translateY(0) scale(1) !important;
}

.v10-contact-toggle{
  position:relative !important;
  float:none !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}

@media(max-width:768px){
  .v10-contact-widget{
    right:14px !important;
    bottom:92px !important;
  }

  .v10-contact-panel{
    right:0 !important;
    bottom:70px !important;
    width:calc(100vw - 28px) !important;
    max-width:340px !important;
  }
}

/* =========================
   V29.9.2 Scroll top button
   ========================= */

.v299-scroll-top{
  position:fixed;
  right:22px;
  bottom:166px;
  width:58px;
  height:58px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(28,32,42,.92);
  color:#fff;
  font-size:32px;
  line-height:1;
  z-index:99999;
  cursor:pointer;
  opacity:0;
  pointer-events:none;
  transform:translateY(14px) scale(.92);
  transition:.24s ease;
  box-shadow:0 18px 55px rgba(0,0,0,.38);
  backdrop-filter:blur(14px);
}

.v299-scroll-top.show{
  opacity:1;
  pointer-events:auto;
  transform:translateY(0) scale(1);
}

.v299-scroll-top:hover{
  background:linear-gradient(135deg,#00E5FF,#6C63FF);
  box-shadow:0 0 28px rgba(0,229,255,.32);
}

@media(max-width:768px){
  .v299-scroll-top{
    right:14px;
    bottom:158px;
    width:54px;
    height:54px;
    font-size:30px;
  }
}

/* =========================
   V29.9.3 Contact + Scroll fixed positioning
   ========================= */

.v10-contact-widget{
  position:fixed !important;
  right:16px !important;
  left:auto !important;
  bottom:96px !important;
  width:auto !important;
  max-width:none !important;
  z-index:100000 !important;
  display:block !important;
  transform:none !important;
}

.v10-contact-toggle{
  position:relative !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:58px !important;
  height:58px !important;
  float:none !important;
  margin:0 !important;
  border-radius:999px !important;
  border:0 !important;
  background:linear-gradient(135deg,#6C63FF,#FF4081) !important;
  color:#fff !important;
  font-size:25px !important;
  cursor:pointer !important;
  box-shadow:0 0 34px rgba(108,99,255,.55) !important;
}

.v10-contact-panel{
  position:absolute !important;
  right:0 !important;
  left:auto !important;
  bottom:72px !important;
  width:320px !important;
  max-width:calc(100vw - 32px) !important;
  margin:0 !important;
  padding:14px !important;
  border-radius:24px !important;
  background:rgba(7,10,18,.94) !important;
  border:1px solid rgba(255,255,255,.16) !important;
  backdrop-filter:blur(22px) !important;
  box-shadow:0 24px 80px rgba(0,0,0,.52) !important;
  opacity:0 !important;
  pointer-events:none !important;
  transform:translateY(10px) scale(.96) !important;
  transform-origin:bottom right !important;
  transition:.22s ease !important;
}

.v10-contact-widget.open .v10-contact-panel{
  opacity:1 !important;
  pointer-events:auto !important;
  transform:translateY(0) scale(1) !important;
}

.v10-mini-form{
  display:block !important;
  margin-top:10px !important;
}

.v299-scroll-top{
  position:fixed !important;
  right:16px !important;
  left:auto !important;
  bottom:170px !important;
  z-index:99999 !important;
  transform:translateY(14px) scale(.92) !important;
}

.v299-scroll-top.show{
  transform:translateY(0) scale(1) !important;
}

@media(max-width:768px){
  .v10-contact-widget{
    right:14px !important;
    left:auto !important;
    bottom:92px !important;
  }

  .v10-contact-toggle{
    width:54px !important;
    height:54px !important;
  }

  .v10-contact-panel{
    right:0 !important;
    left:auto !important;
    bottom:66px !important;
    width:calc(100vw - 28px) !important;
    max-width:340px !important;
  }

  .v299-scroll-top{
    right:14px !important;
    left:auto !important;
    bottom:158px !important;
  }
}

/* =========================
   V29.9.4 Light mobile reveal/glow
   ========================= */

@media(max-width:768px){

  .card,
  .price-mini,
  .demo-card-link,
  .faq-item,
  .v10-story-card,
  .v10-bento-card,
  .v24-stat,
  .v24-leads,
  .v25-builder-preview,
  .v25-builder-list,
  .v25-mini-card,
  .v26-market-main,
  .v26-market-side,
  .v26-market-card,
  .v26-market-stat,
  .v27-orbit,
  .v27-flow-row{
    transition:
      opacity .42s ease,
      transform .42s ease,
      box-shadow .22s ease,
      border-color .22s ease !important;
  }

  .v10-reveal{
    opacity:0 !important;
    transform:translateY(22px) scale(.985) !important;
  }

  .v10-reveal.show{
    opacity:1 !important;
    transform:translateY(0) scale(1) !important;
  }

  .card:active,
  .price-mini:active,
  .demo-card-link:active,
  .faq-item:active,
  .v10-story-card:active,
  .v10-bento-card:active,
  .v24-stat:active,
  .v24-leads:active,
  .v25-builder-preview:active,
  .v25-builder-list:active,
  .v25-mini-card:active,
  .v26-market-main:active,
  .v26-market-side:active,
  .v26-market-card:active,
  .v26-market-stat:active,
  .v27-orbit:active,
  .v27-flow-row:active{
    border-color:rgba(0,229,255,.42) !important;
    box-shadow:
      0 14px 44px rgba(0,0,0,.28),
      0 0 22px rgba(0,229,255,.18) !important;
  }

  .v24-stat::before,
  .v24-leads::before,
  .v25-builder-preview::before,
  .v25-builder-list::before,
  .v25-mini-card::before,
  .v26-market-main::before,
  .v26-market-side::before,
  .v26-market-card::before,
  .v26-market-stat::before,
  .v27-orbit::before,
  .v27-flow-row::before{
    display:block !important;
    opacity:.22 !important;
    background:radial-gradient(circle at 50% 20%,rgba(0,229,255,.16),transparent 45%) !important;
  }
}
