:root{
  --bg0:#0b1220;
  --bg1:#0f1a33;
  --bg2:#0f172a;
  --paper:#ffffff;
  --ink:#0b1220;
  --muted:#334155;
  --muted2:#64748b;
  --line:rgba(15,23,42,.12);
  --p1:#7c3aed;
  --p2:#22c55e;
  --p3:#06b6d4;
  --p4:#f97316;
  --soft:rgba(255,255,255,.72);
  --radius:18px;
  --radius2:26px;
  --shadow:0 18px 45px rgba(2,6,23,.12);
  --shadow2:0 10px 25px rgba(2,6,23,.10);
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:"Manrope",system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  color:var(--ink);
  background:
    radial-gradient(900px 450px at 10% 10%, rgba(124,58,237,.18), transparent 60%),
    radial-gradient(700px 420px at 90% 20%, rgba(6,182,212,.14), transparent 55%),
    radial-gradient(800px 500px at 30% 90%, rgba(34,197,94,.10), transparent 60%),
    #f8fafc;
  line-height:1.65;
}

.justified main, .justified p, .justified li{ text-align:justify; text-justify:inter-word }
a{color:rgba(124,58,237,1); text-decoration:none}
a:hover{opacity:.82}
img{max-width:100%; height:auto; vertical-align:middle}

.container{width:100%; padding:0 18px; margin:0 auto; max-width:1200px}
@media(min-width:768px){.container{padding:0 24px}}
@media(min-width:1200px){.container{max-width:1240px}}

.site-header{
  position:sticky; top:0; z-index:50;
  background:rgba(248,250,252,.78);
  backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(15,23,42,.08);
}
.nav-wrap{display:flex; align-items:center; justify-content:space-between; gap:14px; padding:14px 0}
.brand{display:flex; align-items:center; gap:10px; font-family:"Nunito",system-ui,sans-serif; color:var(--ink)}
.brand-name{font-weight:800; letter-spacing:.2px; font-size:1.1rem}
.brand-mark{
  width:34px; height:34px; border-radius:12px;
  background:
    radial-gradient(10px 10px at 30% 30%, rgba(255,255,255,.9), rgba(255,255,255,0)),
    linear-gradient(135deg, rgba(124,58,237,1), rgba(6,182,212,1));
  box-shadow:0 8px 20px rgba(124,58,237,.22);
}

.site-nav{display:flex; align-items:center; gap:8px}
.nav-item{
  display:inline-flex; align-items:center; justify-content:center;
  padding:10px 12px; border-radius:999px;
  color:rgba(15,23,42,.86);
  font-weight:700;
}
.nav-item:hover{background:rgba(15,23,42,.06)}
.nav-toggle{position:absolute; opacity:0; pointer-events:none}
.nav-toggle-btn{
  display:inline-flex; flex-direction:column; gap:5px;
  padding:10px 12px; border-radius:999px;
  border:1px solid rgba(15,23,42,.10);
  background:rgba(255,255,255,.70);
}
.nav-toggle-btn span{display:block; width:18px; height:2px; background:rgba(15,23,42,.75); border-radius:2px}
@media(min-width:992px){
  .nav-toggle-btn{display:none}
  .nav-toggle{display:none}
}
@media(max-width:991px){
  .site-nav{
    position:absolute; left:18px; right:18px; top:64px;
    display:grid; gap:8px; padding:12px;
    background:rgba(255,255,255,.92);
    border:1px solid rgba(15,23,42,.10);
    border-radius:18px;
    box-shadow:var(--shadow2);
    transform:translateY(-8px); opacity:0; pointer-events:none;
    transition:opacity .18s ease, transform .18s ease;
  }
  .nav-toggle:checked ~ .site-nav{opacity:1; transform:translateY(0); pointer-events:auto}
}

.hero{
  position:relative;
  padding:54px 0 34px;
}
.hero-regular{padding:64px 0 40px}
.hero-slim{padding:58px 0 34px}
.hero-grid{display:grid; gap:26px}
@media(min-width:992px){.hero-grid{grid-template-columns:1.15fr .85fr; align-items:center; gap:36px}}

.kicker{
  display:inline-flex; align-items:center;
  font-family:"Nunito",system-ui,sans-serif;
  font-weight:800;
  letter-spacing:.6px;
  text-transform:uppercase;
  font-size:.9rem;
  color:rgba(15,23,42,.72);
  margin:0 0 10px;
}
.hero-title{
  font-family:"Nunito",system-ui,sans-serif;
  font-weight:800;
  line-height:1.08;
  letter-spacing:-.4px;
  font-size:clamp(2.05rem, 3.6vw, 3.45rem);
  margin:0 0 14px;
}
.hero-lead{
  font-size:1.12rem;
  color:rgba(15,23,42,.82);
  margin:0 0 18px;
}
.hero-cta{display:flex; flex-wrap:wrap; gap:10px; margin-top:14px}
.hero-badges{display:flex; flex-wrap:wrap; gap:8px; margin-top:18px}
.badge{
  padding:8px 12px;
  border-radius:999px;
  background:rgba(15,23,42,.05);
  border:1px solid rgba(15,23,42,.10);
  font-weight:700;
  color:rgba(15,23,42,.78);
  font-size:.95rem;
}

.hero-media .media-card{
  background:rgba(255,255,255,.82);
  border:1px solid rgba(15,23,42,.10);
  border-radius:var(--radius2);
  box-shadow:var(--shadow);
  overflow:hidden;
}
.rounded-media{border-radius:var(--radius2)}
.media-caption{padding:16px 16px 18px}
.media-title{margin:0 0 4px; font-family:"Nunito",system-ui,sans-serif; font-weight:800}
.media-text{margin:0; color:rgba(15,23,42,.74)}

.hero-decor{
  position:absolute; inset:auto 0 -34px 0; height:140px; pointer-events:none;
  background:
    radial-gradient(420px 120px at 18% 40%, rgba(124,58,237,.22), transparent 60%),
    radial-gradient(420px 120px at 82% 30%, rgba(34,197,94,.16), transparent 60%),
    radial-gradient(520px 160px at 52% 70%, rgba(6,182,212,.14), transparent 60%);
  filter:blur(0.2px);
}

.section{padding:56px 0}
.section-alt{
  background:rgba(255,255,255,.55);
  border-top:1px solid rgba(15,23,42,.06);
  border-bottom:1px solid rgba(15,23,42,.06);
}
.section-head{max-width:980px}
.section-title{
  font-family:"Nunito",system-ui,sans-serif;
  font-weight:800;
  letter-spacing:-.25px;
  font-size:clamp(1.55rem, 2.4vw, 2.15rem);
  margin:0 0 10px;
}
.section-lead{
  margin:0;
  font-size:1.08rem;
  color:rgba(15,23,42,.78);
}

.cards-grid{display:grid; gap:14px; margin-top:22px}
@media(min-width:992px){.cards-grid{grid-template-columns:repeat(3,1fr); gap:16px}}
.card{
  background:rgba(255,255,255,.80);
  border:1px solid rgba(15,23,42,.10);
  border-radius:var(--radius);
  box-shadow:var(--shadow2);
  padding:18px 16px;
  transition:transform .16s ease, box-shadow .16s ease;
}
.card:hover{transform:translateY(-3px); box-shadow:var(--shadow)}
.card-title{margin:0 0 8px; font-family:"Nunito",system-ui,sans-serif; font-weight:800}
.card-text{margin:0 0 10px; color:rgba(15,23,42,.78)}
.card-meta{margin:0; color:rgba(15,23,42,.62); font-weight:700}
.card-wide{grid-column:auto}
@media(min-width:992px){.cards-grid .card-wide{grid-column:span 1}}

.two-col{display:grid; gap:14px; margin-top:20px}
@media(min-width:992px){.two-col{grid-template-columns:1fr 1fr; gap:16px}}
.panel{
  background:rgba(255,255,255,.78);
  border:1px solid rgba(15,23,42,.10);
  border-radius:var(--radius);
  box-shadow:var(--shadow2);
  padding:18px 16px;
}
.panel-soft{background:linear-gradient(135deg, rgba(124,58,237,.08), rgba(6,182,212,.06) 60%, rgba(34,197,94,.06))}
.panel-title{margin:0 0 8px; font-family:"Nunito",system-ui,sans-serif; font-weight:800}
.panel-text{margin:0 0 12px; color:rgba(15,23,42,.78)}

.bullets{margin:0; padding-left:18px; color:rgba(15,23,42,.78)}
.bullets li{margin:6px 0}

.steps{display:grid; gap:12px; margin-top:22px}
@media(min-width:992px){.steps{grid-template-columns:repeat(3,1fr); gap:14px}}
.steps-compact .step{min-height:auto}
.step{
  position:relative;
  background:rgba(255,255,255,.80);
  border:1px solid rgba(15,23,42,.10);
  border-radius:var(--radius);
  box-shadow:var(--shadow2);
  padding:18px 16px;
  overflow:hidden;
}
.step::after{
  content:"";
  position:absolute; inset:-60px -80px auto auto;
  width:220px; height:220px; border-radius:999px;
  background:radial-gradient(circle at 30% 30%, rgba(124,58,237,.18), transparent 60%);
}
.step-num{
  width:44px; height:44px; border-radius:14px;
  display:inline-flex; align-items:center; justify-content:center;
  font-family:"Nunito",system-ui,sans-serif;
  font-weight:900;
  background:linear-gradient(135deg, rgba(124,58,237,1), rgba(6,182,212,1));
  color:#fff;
  box-shadow:0 12px 24px rgba(124,58,237,.18);
  margin-bottom:10px;
  position:relative;
}
.step-title{margin:0 0 8px; font-family:"Nunito",system-ui,sans-serif; font-weight:800; position:relative}
.step-text{margin:0; color:rgba(15,23,42,.78); position:relative}

.callout{
  margin-top:18px;
  padding:18px 16px;
  border-radius:var(--radius);
  border:1px solid rgba(15,23,42,.10);
  background:linear-gradient(135deg, rgba(34,197,94,.08), rgba(255,255,255,.72), rgba(6,182,212,.08));
  box-shadow:var(--shadow2);
}
.callout-title{margin:0 0 8px; font-family:"Nunito",system-ui,sans-serif; font-weight:900}
.callout-text{margin:0; color:rgba(15,23,42,.78)}

.feature-split{display:grid; gap:14px; margin-top:22px}
@media(min-width:992px){.feature-split{grid-template-columns:1fr 1fr; gap:16px}}
.feature-title{margin:0 0 10px; font-family:"Nunito",system-ui,sans-serif; font-weight:900}
.feature-text{margin:0 0 10px; color:rgba(15,23,42,.78)}

.timeline{display:grid; gap:12px; margin-top:22px}
@media(min-width:992px){.timeline{grid-template-columns:repeat(3,1fr); gap:16px}}
.t-item{
  background:rgba(255,255,255,.80);
  border:1px solid rgba(15,23,42,.10);
  border-radius:var(--radius);
  box-shadow:var(--shadow2);
  padding:18px 16px;
}
.t-title{margin:0 0 8px; font-family:"Nunito",system-ui,sans-serif; font-weight:900}
.t-text{margin:0; color:rgba(15,23,42,.78)}

.quote{
  margin-top:22px;
  background:rgba(255,255,255,.82);
  border:1px solid rgba(15,23,42,.10);
  border-radius:var(--radius2);
  box-shadow:var(--shadow2);
  padding:18px 16px;
}
.quote-text{margin:0 0 10px; font-size:1.1rem; color:rgba(15,23,42,.78)}
.quote-meta{margin:0; color:rgba(15,23,42,.60); font-weight:800}

.mini-grid{display:grid; gap:12px; margin-top:18px}
@media(min-width:992px){.mini-grid{grid-template-columns:repeat(3,1fr); gap:16px}}
.mini{
  background:rgba(255,255,255,.80);
  border:1px solid rgba(15,23,42,.10);
  border-radius:var(--radius);
  box-shadow:var(--shadow2);
  padding:16px;
}
.mini-title{margin:0 0 6px; font-family:"Nunito",system-ui,sans-serif; font-weight:900}
.mini-text{margin:0; color:rgba(15,23,42,.78)}

.cta-hundred{
  background:
    radial-gradient(700px 360px at 20% 30%, rgba(124,58,237,.22), transparent 60%),
    radial-gradient(760px 420px at 80% 30%, rgba(6,182,212,.18), transparent 60%),
    linear-gradient(135deg, rgba(255,255,255,.82), rgba(255,255,255,.55));
  border-top:1px solid rgba(15,23,42,.06);
  border-bottom:1px solid rgba(15,23,42,.06);
}
.cta-grid{display:grid; gap:14px}
@media(min-width:992px){.cta-grid{grid-template-columns:1.05fr .95fr; gap:16px; align-items:start}}
.cta-card{
  background:rgba(255,255,255,.86);
  border:1px solid rgba(15,23,42,.10);
  border-radius:var(--radius2);
  box-shadow:var(--shadow);
  padding:18px 16px;
}
.cta-card-title{margin:0 0 10px; font-family:"Nunito",system-ui,sans-serif; font-weight:900}
.cta-note{margin:10px 0 0; color:rgba(15,23,42,.66); font-weight:800}

.pricing-grid{display:grid; gap:12px; margin-top:22px}
@media(min-width:992px){.pricing-grid{grid-template-columns:repeat(2,1fr); gap:16px}}
@media(min-width:1200px){.pricing-grid{grid-template-columns:repeat(4,1fr)}}
.price-card{
  background:rgba(255,255,255,.84);
  border:1px solid rgba(15,23,42,.10);
  border-radius:var(--radius2);
  box-shadow:var(--shadow2);
  padding:18px 16px;
  position:relative;
  overflow:hidden;
}
.price-card::before{
  content:"";
  position:absolute; inset:-60px auto auto -60px;
  width:200px; height:200px; border-radius:999px;
  background:radial-gradient(circle at 30% 30%, rgba(34,197,94,.18), transparent 60%);
}
.price-card.featured{
  border-color:rgba(124,58,237,.25);
  box-shadow:0 18px 48px rgba(124,58,237,.16);
}
.price-title{margin:0 0 6px; font-family:"Nunito",system-ui,sans-serif; font-weight:900; position:relative}
.price-tag{margin:0 0 10px; color:rgba(15,23,42,.66); font-weight:800; position:relative}
.price{
  margin:0 0 10px;
  font-family:"Nunito",system-ui,sans-serif;
  font-weight:900;
  font-size:2.05rem;
  letter-spacing:-.4px;
  position:relative;
}
.price-text{margin:0 0 10px; color:rgba(15,23,42,.78); position:relative}
.price-meta{margin:0; color:rgba(15,23,42,.62); font-weight:800; position:relative}

.catalog-grid{display:grid; gap:14px; margin-top:22px}
@media(min-width:992px){.catalog-grid{grid-template-columns:1.05fr .95fr; gap:16px}}
.catalog-item, .contact-box{
  background:rgba(255,255,255,.84);
  border:1px solid rgba(15,23,42,.10);
  border-radius:var(--radius);
  box-shadow:var(--shadow2);
  padding:18px 16px;
  margin-bottom:12px;
}
.catalog-title{margin:0 0 8px; font-family:"Nunito",system-ui,sans-serif; font-weight:900}
.catalog-text{margin:0 0 10px; color:rgba(15,23,42,.78)}
.catalog-meta{margin:0; color:rgba(15,23,42,.62); font-weight:800}

.form-card{
  background:rgba(255,255,255,.92);
  border:1px solid rgba(15,23,42,.10);
  border-radius:var(--radius2);
  box-shadow:var(--shadow);
  padding:18px 16px;
}
.form-row{margin-bottom:12px}
.form-label{display:block; margin:0 0 6px; font-weight:900; font-family:"Nunito",system-ui,sans-serif}
.form-legend{font-weight:900; font-family:"Nunito",system-ui,sans-serif; margin:0 0 8px}
.form-control, .form-select, textarea{
  width:100%;
  padding:12px 12px;
  border-radius:14px;
  border:1px solid rgba(15,23,42,.16);
  background:#fff;
  color:rgba(15,23,42,.88);
  outline:none;
}
.form-control:focus, .form-select:focus, textarea:focus{
  border-color:rgba(124,58,237,.45);
  box-shadow:0 0 0 4px rgba(124,58,237,.12);
}
.check-line{display:flex; gap:10px; align-items:flex-start; margin:10px 0; color:rgba(15,23,42,.78)}
.form-check-input{
  width:18px; height:18px; margin-top:2px;
  border-radius:6px;
  border:1px solid rgba(15,23,42,.25);
  appearance:none;
  background:#fff;
}
.form-check-input:checked{
  background:linear-gradient(135deg, rgba(124,58,237,1), rgba(6,182,212,1));
  border-color:rgba(124,58,237,.65);
}
.form-note{margin:12px 0 0; color:rgba(15,23,42,.62); font-weight:700}

.btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:12px 14px;
  border-radius:999px;
  font-weight:900;
  font-family:"Nunito",system-ui,sans-serif;
  border:1px solid transparent;
  cursor:pointer;
  transition:transform .12s ease, box-shadow .12s ease, opacity .12s ease;
}
.btn:hover{transform:translateY(-1px)}
.btn-primary{
  background:linear-gradient(135deg, rgba(124,58,237,1), rgba(6,182,212,1));
  color:#fff;
  box-shadow:0 14px 30px rgba(124,58,237,.18);
}
.btn-soft{
  background:rgba(15,23,42,.06);
  border-color:rgba(15,23,42,.10);
  color:rgba(15,23,42,.88);
}
.btn-ghost{
  background:transparent;
  border-color:rgba(15,23,42,.16);
  color:rgba(15,23,42,.88);
}
.w-100{width:100%}

.site-footer{
  padding:44px 0 28px;
  background:rgba(15,23,42,.92);
  color:rgba(255,255,255,.86);
  margin-top:26px;
}
.footer-grid{display:grid; gap:18px}
@media(min-width:992px){.footer-grid{grid-template-columns:1.25fr 1fr 1fr; gap:18px}}
.footer-title{
  margin:0 0 10px;
  font-family:"Nunito",system-ui,sans-serif;
  font-weight:900;
  color:#fff;
}
.footer-text{margin:0; color:rgba(255,255,255,.76)}
.site-footer a{color:rgba(255,255,255,.86)}
.site-footer a:hover{opacity:.82}

.footer-bottom{
  display:flex; gap:14px; flex-wrap:wrap;
  align-items:center; justify-content:space-between;
  margin-top:18px;
  padding-top:16px;
  border-top:1px solid rgba(255,255,255,.14);
}
.footer-bottom-single{margin-top:0}
.footer-copy{margin:0; color:rgba(255,255,255,.70); font-weight:800}
.footer-links{display:flex; gap:12px; flex-wrap:wrap}

.consent-mini{margin-top:12px; display:grid; gap:8px}
.consent-row{display:flex; gap:10px; align-items:center; justify-content:space-between}
.pill{
  display:inline-flex; align-items:center; justify-content:center;
  padding:8px 10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.06);
  color:rgba(255,255,255,.82);
  font-weight:800;
  font-size:.9rem;
}
.pill.on{background:rgba(34,197,94,.22); border-color:rgba(34,197,94,.35)}

.cookie-consent{
  position:fixed;
  left:14px; right:14px; bottom:14px;
  z-index:60;
  pointer-events:auto;
}
@media(min-width:768px){.cookie-consent{left:auto; right:18px; width:520px}}
.consent-toggle{position:absolute; opacity:0; pointer-events:none}
.cookie-inner{
  display:flex; flex-direction:column; gap:12px;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(15,23,42,.10);
  border-radius:var(--radius2);
  box-shadow:var(--shadow);
  padding:16px 14px;
}
.cookie-title{
  margin:0 0 6px;
  font-family:"Nunito",system-ui,sans-serif;
  font-weight:900;
}
.cookie-text{margin:0; color:rgba(15,23,42,.78)}
.cookie-actions{display:flex; gap:10px; flex-wrap:wrap}
.consent-toggle:checked ~ .cookie-inner{display:none}

.legal{padding:56px 0}
.legal-card{
  background:rgba(255,255,255,.88);
  border:1px solid rgba(15,23,42,.10);
  border-radius:var(--radius2);
  box-shadow:var(--shadow2);
  padding:18px 16px;
}
.legal-title{
  margin:0 0 12px;
  font-family:"Nunito",system-ui,sans-serif;
  font-weight:900;
  font-size:clamp(1.6rem, 2.6vw, 2.2rem);
}
.legal-card p{margin:0 0 12px; color:rgba(15,23,42,.78)}
.legal-card p:last-child{margin-bottom:0}

.media-wide{
  margin-top:18px;
  background:rgba(255,255,255,.80);
  border:1px solid rgba(15,23,42,.10);
  border-radius:var(--radius2);
  box-shadow:var(--shadow2);
  overflow:hidden;
}
.media-wide img{display:block; width:100%}
.media-wide .media-caption{padding:16px 16px 18px}

.contact-grid{display:grid; gap:12px; margin-top:18px}
@media(min-width:992px){.contact-grid{grid-template-columns:1fr 1fr; gap:16px}}
.contact-card{
  background:rgba(255,255,255,.84);
  border:1px solid rgba(15,23,42,.10);
  border-radius:var(--radius);
  box-shadow:var(--shadow2);
  padding:18px 16px;
}
.contact-title{margin:0 0 8px; font-family:"Nunito",system-ui,sans-serif; font-weight:900}
.contact-text{margin:0 0 8px; color:rgba(15,23,42,.82); font-weight:800}
.contact-meta{margin:0; color:rgba(15,23,42,.62); font-weight:800}

.thanks-card{
  background:rgba(255,255,255,.90);
  border:1px solid rgba(15,23,42,.10);
  border-radius:var(--radius2);
  box-shadow:var(--shadow);
  padding:22px 16px;
}
.summary{margin:14px 0 16px; display:grid; gap:10px}
.summary-row{
  display:flex; justify-content:space-between; gap:12px;
  padding:12px 12px;
  border-radius:14px;
  background:rgba(15,23,42,.04);
  border:1px solid rgba(15,23,42,.08);
}
.summary-key{font-weight:900; font-family:"Nunito",system-ui,sans-serif; color:rgba(15,23,42,.82)}
.summary-val{font-weight:800; color:rgba(15,23,42,.70)}

.site-nav.always-on{position:static; opacity:1; transform:none; pointer-events:auto; background:transparent; border:none; box-shadow:none; padding:0}
@media(max-width:991px){.site-nav.always-on{display:flex; gap:8px}}