/*
Theme Name: Feedster
Theme URI: https://feedster.ru
Author: Feedster
Author URI: https://feedster.ru
Description: Landing page for Feedster — doctor listings in Yandex for clinics
Version: 1.0.0
License: Proprietary
Text Domain: feedster
*/

/* ===== RESET ===== */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased}
body{font-family:'Plus Jakarta Sans',system-ui,sans-serif;background:#FAFBFE;color:#0F172A;overflow-x:hidden}

/* ===== SOFT DOT GRID ===== */
.dot-grid{
  background-image:radial-gradient(circle,#CBD5E133 1px,transparent 1px);
  background-size:28px 28px;
}

/* ===== GRADIENT ORBS (pastel) ===== */
.orb{position:absolute;border-radius:50%;filter:blur(140px);pointer-events:none;will-change:transform}
.orb-1{width:650px;height:650px;background:#2563EB12;top:-250px;left:-150px;animation:orbit1 22s ease-in-out infinite}
.orb-2{width:500px;height:500px;background:#059669 0C;top:50px;right:-180px;animation:orbit2 26s ease-in-out infinite}
.orb-3{width:450px;height:450px;background:#7C3AED08;bottom:-150px;left:35%;animation:orbit3 20s ease-in-out infinite}
@keyframes orbit1{0%,100%{transform:translate(0,0)}50%{transform:translate(50px,35px)}}
@keyframes orbit2{0%,100%{transform:translate(0,0)}50%{transform:translate(-40px,50px)}}
@keyframes orbit3{0%,100%{transform:translate(0,0)}50%{transform:translate(35px,-45px)}}

/* ===== GLOW BORDER (light) ===== */
.glow-border{position:relative;background:#FFF;border-radius:20px;overflow:hidden}
.glow-border::before{
  content:'';position:absolute;inset:0;border-radius:20px;padding:1px;
  background:linear-gradient(135deg,#2563EB30,transparent 40%,transparent 60%,#05966920);
  -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;
}

/* ===== GRADIENT TEXT ===== */
.gradient-text{
  background:linear-gradient(135deg,#2563EB 0%,#059669 50%,#0284C7 100%);
  background-size:200% 200%;
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  animation:gradient-shift 6s ease-in-out infinite;
}
@keyframes gradient-shift{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}

/* ===== CARD HOVER ===== */
.card-hover{
  position:relative;
  transition:all .45s cubic-bezier(.4,0,.2,1);
  box-shadow:0 1px 3px rgba(0,0,0,.04);
  border:1px solid #E2E8F0;
}
.card-hover:hover{
  transform:translateY(-5px);
  box-shadow:0 20px 50px -12px rgba(37,99,235,.12), 0 0 0 1px rgba(37,99,235,.15);
  border-color:rgba(37,99,235,.25);
}

/* ===== SHINE BUTTON ===== */
.btn-shine{
  position:relative;overflow:hidden;
  background:linear-gradient(135deg,#2563EB,#3B82F6);
  transition:all .4s;
}
.btn-shine::before{
  content:'';position:absolute;top:-50%;left:-75%;width:50%;height:200%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.25),transparent);
  transform:rotate(25deg);transition:left .7s;
}
.btn-shine:hover::before{left:125%}
.btn-shine:hover{box-shadow:0 0 40px #2563EB25,0 8px 30px #2563EB20;transform:translateY(-2px)}

/* ===== SCROLL REVEAL ===== */
.reveal{opacity:0;transform:translateY(30px);transition:all .8s cubic-bezier(.16,1,.3,1)}
.reveal.visible{opacity:1;transform:translateY(0)}
.reveal-left{opacity:0;transform:translateX(-40px);transition:all .8s cubic-bezier(.16,1,.3,1)}
.reveal-left.visible{opacity:1;transform:translateX(0)}
.reveal-right{opacity:0;transform:translateX(40px);transition:all .8s cubic-bezier(.16,1,.3,1)}
.reveal-right.visible{opacity:1;transform:translateX(0)}
.reveal-scale{opacity:0;transform:scale(.95);transition:all .8s cubic-bezier(.16,1,.3,1)}
.reveal-scale.visible{opacity:1;transform:scale(1)}

/* ===== MARQUEE ===== */
@keyframes scroll-x{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.marquee-inner{animation:scroll-x 35s linear infinite}
.marquee-inner:hover{animation-play-state:paused}

/* ===== FAQ ===== */
.faq-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .4s cubic-bezier(.16,1,.3,1),padding .3s}
.faq-body>div{overflow:hidden}
.faq-item.open .faq-body{grid-template-rows:1fr}
.faq-icon{transition:transform .3s}
.faq-item.open .faq-icon{transform:rotate(45deg)}

/* ===== BEAM LINE ===== */
.beam-line{position:absolute;width:2px;background:linear-gradient(to bottom,#2563EB,#059669,transparent);animation:beam-pulse 3s ease-in-out infinite}
@keyframes beam-pulse{0%,100%{opacity:.25}50%{opacity:.8}}

/* ===== FLOAT ===== */
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}

/* ===== PULSE RING ===== */
.pulse-ring{animation:pulse-ring 2.5s cubic-bezier(.4,0,.6,1) infinite}
@keyframes pulse-ring{0%{box-shadow:0 0 0 0 #2563EB30}70%{box-shadow:0 0 0 12px #2563EB00}100%{box-shadow:0 0 0 0 #2563EB00}}

/* ===== SCROLLBAR ===== */
::-webkit-scrollbar{width:5px}
::-webkit-scrollbar-track{background:#FAFBFE}
::-webkit-scrollbar-thumb{background:#CBD5E1;border-radius:10px}
::-webkit-scrollbar-thumb:hover{background:#94A3B8}

/* ===== SUBTLE NOISE ===== */
body::before{
  content:'';position:fixed;inset:0;z-index:9999;
  background:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.015'/%3E%3C/svg%3E");
  pointer-events:none;
}

/* ===== MEDICAL CROSS DECORATION ===== */
.med-cross{
  position:relative;
}
.med-cross::before,.med-cross::after{
  content:'';position:absolute;background:#2563EB08;border-radius:4px;
}
.med-cross::before{width:20px;height:60px;top:50%;left:50%;transform:translate(-50%,-50%)}
.med-cross::after{width:60px;height:20px;top:50%;left:50%;transform:translate(-50%,-50%)}
