:root{
  --bg:#0b1020;
  --bg-soft:#111934;
  --panel:rgba(10,16,32,.72);
  --panel-strong:rgba(15,23,42,.86);
  --panel-light:rgba(255,255,255,.08);
  --surface:#f4f7fb;
  --text:#e8edf7;
  --text-dark:#0f172a;
  --muted:rgba(232,237,247,.72);
  --muted-dark:rgba(15,23,42,.70);
  --line:rgba(255,255,255,.10);
  --line-dark:rgba(15,23,42,.12);
  --p1:#7c3aed;
  --p2:#ec4899;
  --p3:#22c55e;
  --accent:#38bdf8;
  --success:#0f9f72;
  --danger:#ef4444;
  --shadow:0 30px 80px rgba(2,6,23,.32);
  --shadow-soft:0 20px 40px rgba(15,23,42,.16);
  --radius:28px;
  --radius-sm:18px;
  --max:1180px;
  --ease:cubic-bezier(.2,.8,.2,1);
}

*{
  box-sizing:border-box;
}

html{
  scroll-behavior:smooth;
}

body{
  margin:0;
  color:var(--text);
  font-family:"SF Pro Text","Segoe UI",Inter,Arial,sans-serif;
  background:
    radial-gradient(900px 600px at 10% 5%, rgba(124,58,237,.22), transparent 55%),
    radial-gradient(800px 540px at 90% 15%, rgba(236,72,153,.18), transparent 58%),
    radial-gradient(860px 520px at 50% 100%, rgba(56,189,248,.16), transparent 60%),
    linear-gradient(180deg, #0b1020 0%, #10182f 50%, #0a1020 100%);
  overflow-x:hidden;
}

body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.03) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px);
  background-size:44px 44px;
  mask-image:radial-gradient(circle at center, black, transparent 82%);
  opacity:.22;
}

a{
  color:inherit;
  text-decoration:none;
}

button,
input,
select,
textarea{
  font:inherit;
}

img,
iframe{
  display:block;
  max-width:100%;
}

.site-shell{
  position:relative;
}

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

.top-stripe{
  border-bottom:1px solid rgba(255,255,255,.06);
  background:rgba(7,11,22,.62);
}

.top-stripe-inner{
  min-height:40px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  color:rgba(232,237,247,.68);
  font-size:12px;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
}

.topbar{
  position:sticky;
  top:0;
  z-index:100;
  backdrop-filter:blur(20px);
  background:rgba(11,16,32,.72);
  border-bottom:1px solid rgba(255,255,255,.06);
}

.row{
  min-height:82px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}

.brand{
  display:flex;
  align-items:center;
  gap:14px;
}

.logo{
  width:46px;
  height:46px;
  border-radius:16px;
  background:
    radial-gradient(circle at 35% 30%, rgba(255,255,255,.88), transparent 24%),
    linear-gradient(135deg, var(--p1), var(--p2));
  box-shadow:0 16px 40px rgba(124,58,237,.34);
  position:relative;
  overflow:hidden;
}

.logo::after{
  content:"";
  position:absolute;
  inset:-40%;
  background:conic-gradient(from 90deg, rgba(255,255,255,0), rgba(255,255,255,.30), rgba(255,255,255,0));
  animation:spin 7s linear infinite;
}

@keyframes spin{
  to{transform:rotate(360deg);}
}

.brand b{
  display:block;
  font-size:18px;
  letter-spacing:.01em;
}

.brand small{
  color:var(--muted);
  font-weight:600;
}

nav{
  display:flex;
  align-items:center;
  gap:8px;
  padding:8px;
  border-radius:999px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.08);
}

.navlink{
  padding:11px 14px;
  border-radius:999px;
  color:rgba(232,237,247,.74);
  font-size:13px;
  font-weight:800;
  transition:transform .18s var(--ease), background .18s var(--ease), color .18s var(--ease);
}

.navlink:hover,
.navlink.active{
  background:rgba(255,255,255,.10);
  color:#fff;
  transform:translateY(-1px);
}

.actions{
  display:flex;
  align-items:center;
  gap:10px;
}

.btn{
  min-height:48px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:0 18px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.08);
  box-shadow:0 14px 28px rgba(2,6,23,.18);
  color:#fff;
  font-size:13px;
  font-weight:800;
  transition:transform .18s var(--ease), border-color .18s var(--ease), box-shadow .18s var(--ease), background .18s var(--ease);
}

.btn:hover{
  transform:translateY(-2px);
  border-color:rgba(255,255,255,.24);
  box-shadow:0 20px 36px rgba(2,6,23,.24);
}

.btn.primary{
  border:none;
  background:linear-gradient(135deg, var(--p1), var(--p2));
  box-shadow:0 18px 40px rgba(124,58,237,.34);
}

.btn.ghost{
  background:rgba(255,255,255,.03);
}

.btn:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible{
  outline:none;
  box-shadow:0 0 0 4px rgba(124,58,237,.22);
}

main{
  display:block;
}

.hero{
  position:relative;
  padding:90px 0 70px;
}

.hero-grid{
  display:grid;
  grid-template-columns:minmax(0, 1.05fr) minmax(320px, .95fr);
  gap:24px;
  align-items:stretch;
}

.hero-copy,
.hero-visual,
.card,
.glass-panel{
  position:relative;
  overflow:hidden;
  border-radius:var(--radius);
  border:1px solid rgba(255,255,255,.10);
  background:var(--panel);
  backdrop-filter:blur(18px);
  box-shadow:var(--shadow);
}

.hero-copy{
  padding:48px;
}

.hero-copy::before,
.card::before,
.glass-panel::before{
  content:"";
  position:absolute;
  inset:-2px;
  pointer-events:none;
  background:
    radial-gradient(700px 240px at 15% 0%, rgba(124,58,237,.18), transparent 55%),
    radial-gradient(700px 240px at 85% 15%, rgba(236,72,153,.14), transparent 55%);
}

.hero-copy > *,
.hero-visual > *,
.card > *,
.glass-panel > *{
  position:relative;
  z-index:1;
}

.kicker{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:10px 14px;
  border-radius:999px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.10);
  color:rgba(232,237,247,.84);
  font-size:12px;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.kicker-dot{
  width:8px;
  height:8px;
  border-radius:50%;
  background:linear-gradient(135deg, var(--p1), var(--p2));
  box-shadow:0 0 0 6px rgba(124,58,237,.16);
}

.hero h1,
.section-head h1{
  margin:24px 0 16px;
  font-size:clamp(44px, 7vw, 92px);
  line-height:.98;
  letter-spacing:-.05em;
}

.hero p,
.section-head p,
.lead,
.card p{
  color:var(--muted);
  line-height:1.75;
}

.hero p{
  max-width:680px;
  font-size:clamp(16px, 2vw, 19px);
}

.hero-actions{
  margin-top:28px;
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}

.hero-meta{
  margin-top:20px;
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

.hero-meta span,
.pill{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:10px 14px;
  border-radius:999px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.08);
  color:rgba(232,237,247,.80);
  font-size:12px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.hero-meta i,
.pill i{
  width:7px;
  height:7px;
  border-radius:50%;
  background:linear-gradient(135deg, var(--accent), var(--p2));
}

.hero-visual{
  padding:26px;
  display:grid;
  gap:16px;
  align-content:space-between;
}

.hero-stage{
  min-height:420px;
  border-radius:calc(var(--radius) - 8px);
  padding:24px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,.03)),
    radial-gradient(circle at 20% 10%, rgba(56,189,248,.24), transparent 32%),
    radial-gradient(circle at 80% 15%, rgba(236,72,153,.26), transparent 35%),
    linear-gradient(135deg, rgba(124,58,237,.32), rgba(15,23,42,.26));
  border:1px solid rgba(255,255,255,.10);
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  gap:12px;
}

.hero-stage-label{
  max-width:280px;
  padding:14px 16px;
  border-radius:18px;
  background:rgba(7,11,22,.56);
  border:1px solid rgba(255,255,255,.10);
}

.hero-stage-label strong{
  display:block;
  margin-bottom:6px;
  font-size:14px;
}

.hero-stage-label span{
  color:var(--muted);
  font-size:14px;
  line-height:1.5;
}

.metric-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:12px;
}

.metric{
  padding:18px;
  border-radius:20px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.08);
}

.metric strong{
  display:block;
  margin-bottom:6px;
  font-size:28px;
}

.metric span{
  color:var(--muted);
  font-size:14px;
  line-height:1.5;
}

.section{
  padding:96px 0;
}

.section-tight{
  padding-top:0;
}

.section-head{
  text-align:center;
  margin-bottom:36px;
}

.section-head h2{
  margin:16px 0 10px;
  font-size:clamp(32px, 4vw, 52px);
  line-height:1.02;
  letter-spacing:-.04em;
}

.section-head p{
  max-width:760px;
  margin:0 auto;
}

.grid{
  display:grid;
  gap:18px;
}

.grid-4{
  grid-template-columns:repeat(4, minmax(0, 1fr));
}

.grid-3{
  grid-template-columns:repeat(3, minmax(0, 1fr));
}

.grid-2{
  grid-template-columns:repeat(2, minmax(0, 1fr));
}

.card{
  padding:28px;
}

.card h3{
  margin:0 0 10px;
  font-size:22px;
  letter-spacing:-.02em;
}

.card.dark{
  background:var(--panel-strong);
}

.eyebrow{
  margin-bottom:12px;
  color:rgba(232,237,247,.62);
  font-size:12px;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.service-icon,
.step-index,
.badge-square{
  width:50px;
  height:50px;
  display:grid;
  place-items:center;
  margin-bottom:18px;
  border-radius:16px;
  background:linear-gradient(135deg, rgba(124,58,237,.18), rgba(236,72,153,.18));
  border:1px solid rgba(255,255,255,.10);
  font-size:18px;
  font-weight:900;
}

.feature-list,
.fact-list,
.info-list{
  display:grid;
  gap:12px;
}

.feature-list span,
.fact-item,
.info-list li{
  display:flex;
  gap:12px;
  align-items:flex-start;
  color:var(--muted);
  line-height:1.65;
}

.feature-list span::before,
.fact-item::before,
.info-list li::before{
  content:"";
  width:9px;
  height:9px;
  margin-top:10px;
  flex:0 0 auto;
  border-radius:50%;
  background:linear-gradient(135deg, var(--accent), var(--p2));
  box-shadow:0 0 0 6px rgba(56,189,248,.10);
}

.stats-band{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:18px;
}

.stat-card{
  padding:24px;
  border-radius:24px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.08);
}

.stat-card strong{
  display:block;
  margin-bottom:8px;
  font-size:34px;
}

.stat-card p{
  color:var(--muted);
}

.process-list{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:18px;
}

.process-step{
  padding:26px;
  border-radius:24px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.08);
  box-shadow:var(--shadow-soft);
}

.process-step b{
  display:inline-flex;
  margin-bottom:12px;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.10);
  font-size:12px;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.process-step h3{
  margin:0 0 8px;
  font-size:20px;
}

.process-step p{
  margin:0;
  color:var(--muted);
}

.section-contrast{
  padding:34px;
  border-radius:32px;
  background:linear-gradient(135deg, rgba(124,58,237,.20), rgba(236,72,153,.16));
  border:1px solid rgba(255,255,255,.10);
  box-shadow:var(--shadow);
}

.contact-box{
  text-align:center;
  padding:42px 32px;
}

.contact-box h2{
  margin:0 0 12px;
  font-size:clamp(34px, 4vw, 56px);
  line-height:1.02;
  letter-spacing:-.04em;
}

.contact-layout{
  align-items:start;
}

.contact-panel{
  display:grid;
  gap:18px;
}

.panel-title{
  margin:0 0 10px;
  font-size:clamp(28px, 3vw, 40px);
  line-height:1.06;
  letter-spacing:-.03em;
}

.contact-actions{
  display:grid;
  gap:14px;
}

.contact-action{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding:20px;
  border-radius:22px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.08);
  transition:transform .18s var(--ease), border-color .18s var(--ease), box-shadow .18s var(--ease);
}

.contact-action:hover{
  transform:translateY(-2px);
  border-color:rgba(255,255,255,.18);
  box-shadow:var(--shadow-soft);
}

.contact-action strong{
  display:block;
  margin-bottom:6px;
}

.contact-action span{
  color:var(--muted);
  line-height:1.6;
}

.action-badge{
  width:42px;
  height:42px;
  flex:0 0 auto;
  border-radius:14px;
  display:grid;
  place-items:center;
  background:linear-gradient(135deg, rgba(124,58,237,.18), rgba(236,72,153,.18));
  font-size:13px;
  font-weight:900;
}

.alert{
  margin-bottom:16px;
  padding:16px 18px;
  border-radius:18px;
  line-height:1.6;
}

.alert.success{
  background:rgba(15,159,114,.14);
  border:1px solid rgba(15,159,114,.22);
}

.alert.error{
  background:rgba(239,68,68,.14);
  border:1px solid rgba(239,68,68,.22);
}

.contact-form{
  display:grid;
  gap:18px;
}

.field-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:16px;
}

.field{
  display:grid;
  gap:10px;
}

.field label{
  font-size:14px;
  font-weight:800;
}

.field-note{
  color:var(--muted);
  font-size:14px;
  line-height:1.5;
}

input,
textarea,
select{
  width:100%;
  padding:15px 16px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.08);
  color:#fff;
  transition:border-color .18s var(--ease), box-shadow .18s var(--ease), transform .18s var(--ease);
}

input::placeholder,
textarea::placeholder{
  color:rgba(232,237,247,.46);
}

select option{
  color:var(--text-dark);
}

input:focus,
textarea:focus,
select:focus{
  border-color:rgba(124,58,237,.48);
  transform:translateY(-1px);
}

.field.error input,
.field.error textarea,
.field.error select,
.checkbox.error{
  border-color:rgba(239,68,68,.38);
  box-shadow:0 0 0 4px rgba(239,68,68,.12);
}

.error-text{
  color:#fda4af;
  font-size:14px;
  line-height:1.5;
}

.checkbox{
  display:flex;
  align-items:flex-start;
  gap:12px;
  padding:16px 18px;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.06);
}

.checkbox input{
  width:20px;
  height:20px;
  margin-top:2px;
  flex:0 0 auto;
}

.checkbox span{
  color:var(--muted);
  line-height:1.6;
}

.checkbox a{
  text-decoration:underline;
  text-underline-offset:3px;
}

.form-meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  flex-wrap:wrap;
}

.is-hidden{
  position:absolute;
  left:-9999px;
  width:1px;
  height:1px;
  overflow:hidden;
}

.mini-cards{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:18px;
}

.mini-card{
  padding:24px;
  border-radius:24px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.08);
}

.mini-card h3{
  margin:0 0 10px;
}

.mini-card p{
  color:var(--muted);
}

.legal-wrap{
  display:grid;
  gap:18px;
}

.legal-card{
  padding:28px;
}

.legal-card h2{
  margin:0 0 12px;
  font-size:24px;
}

.legal-card p,
.legal-card li{
  color:var(--muted);
  line-height:1.75;
}

.legal-card ul{
  margin:0;
  padding-left:20px;
}

.footer{
  padding:40px 0 34px;
}

.footer-panel{
  padding:28px;
  border-radius:30px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.08);
  box-shadow:var(--shadow);
}

.footer-grid{
  display:grid;
  grid-template-columns:1.1fr .9fr .9fr;
  gap:22px;
}

.footer-label{
  margin:0 0 10px;
  color:rgba(232,237,247,.58);
  font-size:12px;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.footer-panel h3{
  margin:0 0 12px;
  font-size:30px;
  line-height:1.05;
  letter-spacing:-.03em;
}

.footer-panel p{
  color:var(--muted);
  line-height:1.7;
}

.footer-links,
.footer-contact{
  display:grid;
  gap:10px;
}

.footer-links a,
.footer-contact a,
.footer-contact span{
  padding:12px 14px;
  border-radius:16px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.08);
  color:rgba(232,237,247,.88);
}

.footer-bottom{
  margin-top:22px;
  padding-top:18px;
  border-top:1px solid rgba(255,255,255,.08);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  color:rgba(232,237,247,.56);
  font-size:13px;
}

.wa-float{
  position:fixed;
  right:20px;
  bottom:20px;
  z-index:999;
  min-height:54px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 22px;
  border-radius:999px;
  background:linear-gradient(135deg, #25d366, #16a34a);
  color:#fff;
  font-weight:900;
  letter-spacing:.02em;
  box-shadow:0 20px 44px rgba(0,0,0,.28);
}

.toast-stack{
  position:fixed;
  top:108px;
  right:20px;
  z-index:1000;
  width:min(360px, calc(100% - 32px));
  display:grid;
  gap:12px;
  pointer-events:none;
}

.toast{
  padding:16px 18px;
  border-radius:18px;
  background:rgba(7,11,22,.94);
  border:1px solid rgba(255,255,255,.10);
  box-shadow:var(--shadow);
  transform:translateY(-10px);
  opacity:0;
  transition:opacity .25s var(--ease), transform .25s var(--ease);
}

.toast.is-visible{
  transform:translateY(0);
  opacity:1;
}

.toast.success{
  border-color:rgba(15,159,114,.26);
}

.toast.error{
  border-color:rgba(239,68,68,.26);
}

[data-reveal]{
  opacity:0;
  transform:translateY(18px);
  transition:opacity .55s var(--ease), transform .55s var(--ease);
}

[data-reveal].is-visible{
  opacity:1;
  transform:translateY(0);
}

@media (max-width: 1100px){
  nav{
    display:none;
  }

  .hero-grid,
  .grid-4,
  .grid-3,
  .grid-2,
  .stats-band,
  .process-list,
  .mini-cards,
  .footer-grid{
    grid-template-columns:1fr 1fr;
  }
}

@media (max-width: 820px){
  .top-stripe-inner,
  .row,
  .actions,
  .hero-actions,
  .hero-meta,
  .footer-bottom,
  .form-meta{
    flex-direction:column;
    align-items:flex-start;
  }

  .hero-copy{
    padding:34px 24px;
  }

  .hero h1,
  .section-head h1{
    font-size:clamp(40px, 12vw, 64px);
  }

  .hero-stage{
    min-height:300px;
  }

  .actions{
    width:100%;
  }

  .actions .btn{
    width:100%;
  }
}

@media (max-width: 680px){
  .wrap{
    width:min(var(--max), calc(100% - 24px));
  }

  .row{
    min-height:auto;
    padding:14px 0;
  }

  .hero,
  .section{
    padding:74px 0;
  }

  .hero-grid,
  .grid-4,
  .grid-3,
  .grid-2,
  .stats-band,
  .process-list,
  .metric-grid,
  .field-grid,
  .mini-cards,
  .footer-grid{
    grid-template-columns:1fr;
  }

  .card,
  .footer-panel{
    padding:22px;
  }

  .hero-actions .btn,
  .form-meta .btn{
    width:100%;
  }

  .wa-float{
    left:14px;
    right:14px;
    bottom:14px;
  }

  .toast-stack{
    left:14px;
    right:14px;
    width:auto;
    top:auto;
    bottom:84px;
  }
}

@media (prefers-reduced-motion: reduce){
  *,
  *::before,
  *::after{
    animation:none !important;
    transition:none !important;
    scroll-behavior:auto !important;
  }
}