/* ============ Base ============ */
:root{
  --bg:#070A12;
  --card:rgba(255,255,255,.07);
  --card2:rgba(255,255,255,.10);
  --text:rgba(255,255,255,.92);
  --muted:rgba(255,255,255,.68);
  --line:rgba(255,255,255,.12);
  --shadow:0 18px 50px rgba(0,0,0,.45);
  --radius:22px;
  --radius2:14px;
  --pad:22px;
  --max:1160px;

  --g1:#7C3AED;
  --g2:#22D3EE;
  --g3:#A3FF7A;
  --accent:linear-gradient(90deg,var(--g1),var(--g2),var(--g3));
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, "Noto Sans", "Helvetica Neue", sans-serif;
  background: radial-gradient(1200px 800px at 20% 10%, rgba(124,58,237,.20), transparent 60%),
              radial-gradient(900px 700px at 80% 0%, rgba(34,211,238,.18), transparent 55%),
              radial-gradient(900px 700px at 70% 80%, rgba(163,255,122,.12), transparent 60%),
              var(--bg);
  color:var(--text);
  line-height:1.45;
  overflow-x:hidden;
}

a{color:inherit; text-decoration:none}
a:hover{opacity:.95}
code{background:rgba(255,255,255,.08); padding:.15rem .35rem; border-radius:8px; border:1px solid rgba(255,255,255,.12)}

.container{
  width: min(var(--max), calc(100% - 40px));
  margin: 0 auto;
}

.section{padding:84px 0}
.section.slim{padding:26px 0}
.section-head{
  display:flex; gap:18px; justify-content:space-between; align-items:flex-end;
  margin-bottom:26px;
}
.section-head h2{margin:0; font-size: clamp(22px, 2.4vw, 34px); letter-spacing:-.02em}
.section-head p{margin:0; color:var(--muted); max-width: 62ch}

.grid{display:grid; gap:18px}
.cards-3{grid-template-columns: repeat(3, minmax(0,1fr))}
@media (max-width: 980px){ .cards-3{grid-template-columns: 1fr 1fr} }
@media (max-width: 640px){ .cards-3{grid-template-columns: 1fr} }

.card{
  background: linear-gradient(180deg, rgba(255,255,255,.09), rgba(255,255,255,.06));
  border: 1px solid rgba(255,255,255,.12);
  border-radius: var(--radius);
  padding: var(--pad);
  box-shadow: var(--shadow);
  position:relative;
}
.card.glass{
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

/* ============ Background decor ============ */
.bg-blobs{position:fixed; inset:0; pointer-events:none; z-index:-1; opacity:.9}
.blob{position:absolute; filter: blur(22px); border-radius: 999px; mix-blend-mode: screen; opacity:.65}
.blob.b1{width: 520px; height:520px; left:-180px; top:120px; background: rgba(124,58,237,.50)}
.blob.b2{width: 460px; height:460px; right:-180px; top:-80px; background: rgba(34,211,238,.45)}
.blob.b3{width: 520px; height:520px; right:8%; bottom:-220px; background: rgba(163,255,122,.32)}

/* ============ Header ============ */
.site-header{
  position: sticky; top:0; z-index:50;
  background: rgba(7,10,18,.62);
  border-bottom: 1px solid rgba(255,255,255,.08);
  backdrop-filter: blur(12px);
}
.header-inner{display:flex; align-items:center; justify-content:space-between; padding:14px 0; gap:16px}

.brand{display:flex; align-items:center; gap:12px}
.brand-logo{width:42px; height:42px}
.brand-name{font-weight:760; letter-spacing:.06em; font-size:12px}
.brand-tag{font-size:12px; color:var(--muted)}

.nav{display:flex; align-items:center; gap:16px}
.nav a{color: rgba(255,255,255,.78); font-size:14px}
.nav a:hover{color: rgba(255,255,255,.96)}
@media (max-width: 980px){ .nav{display:none} }

.btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding: 12px 16px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.08);
  box-shadow: 0 10px 30px rgba(0,0,0,.25);
  font-weight: 650;
  letter-spacing: .01em;
  transition: transform .12s ease, background .12s ease, border-color .12s ease;
}
.btn:hover{transform: translateY(-1px); background: rgba(255,255,255,.10); border-color: rgba(255,255,255,.22)}
.btn:active{transform: translateY(0px)}
.btn.btn-ghost{background: transparent}
.btn.btn-wide{width:100%}
.btn.btn-sm{padding:10px 12px; border-radius: 12px; font-size:14px}
.btn:focus{outline: 2px solid rgba(34,211,238,.35); outline-offset:2px}

.burger{
  display:none;
  width:44px; height:44px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.06);
  cursor:pointer;
}
.burger span{display:block; height:2px; width:18px; background:rgba(255,255,255,.86); margin:4px auto; border-radius:99px}
@media (max-width: 980px){ .burger{display:block} }

.mobile-menu{
  border-top: 1px solid rgba(255,255,255,.08);
  background: rgba(7,10,18,.72);
  backdrop-filter: blur(12px);
}
.mobile-inner{display:grid; gap:12px; padding: 16px 0}
.mobile-inner a{padding: 12px 14px; border-radius: 14px; border: 1px solid rgba(255,255,255,.10); background: rgba(255,255,255,.05)}
.mobile-inner a.btn{border-color: rgba(255,255,255,.18)}

/* ============ Hero ============ */
.hero{padding-top:74px}
.hero-grid{display:grid; grid-template-columns: 1.1fr .9fr; gap:22px; align-items:start}
@media (max-width: 980px){ .hero-grid{grid-template-columns: 1fr} }

.pill{
  display:inline-flex; align-items:center; gap:10px;
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.05);
  color: rgba(255,255,255,.78);
  font-size: 13px;
}
.pill .dot{width:8px; height:8px; border-radius:99px; background: linear-gradient(90deg, var(--g1), var(--g2)); box-shadow: 0 0 18px rgba(34,211,238,.35)}

h1{
  margin:16px 0 10px 0;
  font-size: clamp(30px, 3.8vw, 54px);
  line-height: 1.08;
  letter-spacing: -.03em;
}
.grad{
  background: var(--accent);
  -webkit-background-clip: text;
  background-clip:text;
  color: transparent;
}
.lead{color: var(--muted); font-size: 17px; max-width: 62ch}
.hero-cta{display:flex; gap:12px; margin: 18px 0 18px 0; flex-wrap:wrap}
.hero-badges{display:grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap:12px; margin-top: 10px}
@media (max-width: 640px){ .hero-badges{grid-template-columns: 1fr} }

.badge{
  display:flex; gap:10px; align-items:center;
  padding: 12px 12px;
  border-radius: var(--radius2);
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.05);
  color: rgba(255,255,255,.82);
}
.badge svg{width:18px; height:18px; opacity:.9}

.card-top{margin-bottom:10px}
.card-title{font-weight:760; letter-spacing:-.01em; font-size:18px}
.card-sub{color: var(--muted); font-size:13px; margin-top:2px}

.checklist{list-style:none; padding:0; margin: 14px 0 0 0; display:grid; gap:10px}
.checklist li{
  position:relative; padding-left:28px; color: rgba(255,255,255,.84);
}
.checklist li::before{
  content:"";
  position:absolute; left:0; top:.2rem;
  width:18px; height:18px; border-radius:6px;
  background: linear-gradient(135deg, rgba(34,211,238,.35), rgba(124,58,237,.35));
  border: 1px solid rgba(255,255,255,.16);
  box-shadow: 0 6px 18px rgba(0,0,0,.22);
}
.checklist li::after{
  content:"";
  position:absolute; left:6px; top:.55rem;
  width:6px; height:10px;
  border-right:2px solid rgba(255,255,255,.88);
  border-bottom:2px solid rgba(255,255,255,.88);
  transform: rotate(40deg);
}
.checklist.small{gap:8px}
.checklist.small li{font-size:14px}

.divider{height:1px; background: rgba(255,255,255,.12); margin: 16px 0}
.mini{display:grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap:12px; margin-bottom: 14px}
.mini-item{padding:12px; border-radius: var(--radius2); border: 1px solid rgba(255,255,255,.10); background: rgba(255,255,255,.05)}
.mini-kpi{font-weight:800; letter-spacing:-.02em}
.mini-txt{color: var(--muted); font-size:12px}

/* Trust bar */
.trust{
  display:grid; grid-template-columns: repeat(5, minmax(0,1fr));
  gap:10px;
  padding: 10px 0;
}
.trust-item{
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
  border-radius: 999px;
  padding: 10px 12px;
  display:flex; align-items:center; justify-content:center; gap:10px;
  text-align:center;
}
.trust .k{font-weight:800}
.trust .t{color: var(--muted); font-size:12px}
@media (max-width: 980px){ .trust{grid-template-columns: 1fr 1fr 1fr} }
@media (max-width: 640px){ .trust{grid-template-columns: 1fr 1fr} }

/* Service cards */
.icon{
  width:44px; height:44px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
  display:flex; align-items:center; justify-content:center;
  margin-bottom: 12px;
}
.icon svg{width:22px; height:22px; opacity:.92}
.card h3{margin: 10px 0 8px 0; letter-spacing:-.02em}
.card p{margin:0; color: var(--muted)}
.bullets{margin: 12px 0 0 0; padding-left: 18px; color: rgba(255,255,255,.82)}
.bullets li{margin: 6px 0}

/* Pricing */
.pricing{grid-template-columns: repeat(3, minmax(0,1fr))}
@media (max-width: 980px){ .pricing{grid-template-columns: 1fr} }
.price{padding-top: 26px}
.price-top{display:flex; align-items:baseline; justify-content:space-between; gap:12px}
.price-name{font-size:18px; font-weight:800}
.price-note{color: var(--muted); font-size:12px}
.price-val{margin: 12px 0 10px 0; color: rgba(255,255,255,.86)}
.price-val span{font-size: 26px; font-weight: 850; letter-spacing:-.02em}
.featured{
  border-color: rgba(34,211,238,.22);
  background: linear-gradient(180deg, rgba(34,211,238,.10), rgba(255,255,255,.06));
}
.ribbon{
  position:absolute; top:16px; right:16px;
  font-size:12px; font-weight:750;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.06);
}

/* Note */
.note{
  margin-top: 18px;
  padding: 16px 18px;
  border-radius: var(--radius);
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
  color: rgba(255,255,255,.82);
}
.note a{ text-decoration: underline; text-underline-offset: 3px }

/* Steps */
.steps{display:grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap:14px}
@media (max-width: 980px){ .steps{grid-template-columns: 1fr 1fr} }
@media (max-width: 640px){ .steps{grid-template-columns: 1fr} }

.step{
  padding: 18px 18px;
  border-radius: var(--radius);
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
}
.step .num{
  width: 34px; height: 34px;
  display:flex; align-items:center; justify-content:center;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
  font-weight: 850;
}
.step h3{margin: 12px 0 8px 0}
.step p{margin:0; color: var(--muted)}

/* Cases chips */
.chips{display:flex; gap:8px; flex-wrap:wrap; margin-top: 14px}
.chips span{
  font-size:12px;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.05);
  color: rgba(255,255,255,.80);
}

/* FAQ */
.faq{display:grid; gap:10px}
details{
  border-radius: var(--radius);
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
  padding: 14px 16px;
}
summary{cursor:pointer; font-weight:750}
.faq-body{margin-top:10px; color: var(--muted)}

/* Contact */
.contact{padding-bottom: 96px}
.contact-grid{display:grid; grid-template-columns: 1fr 1fr; gap:18px; align-items:start}
@media (max-width: 980px){ .contact-grid{grid-template-columns: 1fr} }

.lead2{color: var(--muted); margin-top: 10px}
.contact-cards{display:grid; gap:10px; margin-top: 18px}
.contact-card{
  display:flex; gap:12px; align-items:center;
  padding: 14px 14px;
  border-radius: var(--radius);
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
}
.contact-card:hover{background: rgba(255,255,255,.06)}
.cc-ico{font-size: 18px}
.cc-title{font-weight:800}
.cc-sub{color: var(--muted); font-size: 13px; margin-top:2px}
.smallprint{margin-top: 12px; color: var(--muted); font-size: 13px}

.form{padding: 22px}
.form-head{margin-bottom: 14px}
.form-title{font-size:18px; font-weight:850}
.form-sub{color: var(--muted); font-size:13px; margin-top: 4px}
.field{display:grid; gap:6px; margin: 12px 0}
.field span{color: rgba(255,255,255,.78); font-size: 13px}
.field input,.field textarea,.field select{
  width:100%;
  padding: 12px 12px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(0,0,0,.20);
  color: var(--text);
  outline: none;
}
.field input:focus,.field textarea:focus,.field select:focus{
  border-color: rgba(34,211,238,.32);
  box-shadow: 0 0 0 4px rgba(34,211,238,.10);
}
.hint{color: var(--muted); font-size: 12px; margin: 10px 0 0 0}

/* Footer */
.footer{
  border-top: 1px solid rgba(255,255,255,.08);
  padding: 22px 0;
  color: rgba(255,255,255,.70);
  background: rgba(0,0,0,.16);
}
.footer-inner{display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap}
.footer-links{display:flex; gap:14px}
