/* ==========================================================================
   22 Group — burgundy landing
   ========================================================================== */

:root{
  --bg:            #17070c;
  --bg-2:          #1f0a11;
  --surface:       rgba(255,255,255,.035);
  --surface-2:     rgba(255,255,255,.06);
  --line:          rgba(255,214,224,.12);

  --wine:          #6b0f2a;
  --wine-2:        #8c1436;
  --wine-3:        #a4123a;
  --rose:          #c9385c;
  --gold:          #e3bd7a;

  --text:          #f6e9ed;
  --muted:         #c6a4ae;
  --muted-2:       #9d7d87;

  --radius:        18px;
  --wrap:          1120px;
  --ease:          cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{ box-sizing:border-box; }

html{ scroll-behavior:smooth; }

body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:"Manrope", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{ max-width:100%; display:block; }
a{ color:inherit; }

.wrap{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:24px; }

/* ---------- ambient glows ---------- */
.glow{
  position:fixed; z-index:0; pointer-events:none;
  width:70vw; max-width:900px; aspect-ratio:1; border-radius:50%;
  filter:blur(90px); opacity:.55;
}
.glow-a{ top:-22vw; left:-14vw; background:radial-gradient(circle, rgba(164,18,58,.55), transparent 65%); }
.glow-b{ top:38vh; right:-22vw; background:radial-gradient(circle, rgba(107,15,42,.6), transparent 65%); }

main, .topbar, .footer{ position:relative; z-index:1; }

/* ---------- top bar ---------- */
.topbar{
  position:sticky; top:0; z-index:50;
  backdrop-filter:blur(14px);
  background:rgba(23,7,12,.72);
  border-bottom:1px solid transparent;
  transition:border-color .3s var(--ease), background .3s var(--ease);
}
.topbar.is-stuck{ border-bottom-color:var(--line); background:rgba(23,7,12,.88); }

.topbar-inner{ display:flex; align-items:center; gap:24px; height:72px; }

.brand{ display:flex; align-items:center; gap:9px; text-decoration:none; letter-spacing:.14em; }
.brand-mark{
  display:grid; place-items:center;
  width:34px; height:34px; border-radius:10px;
  background:linear-gradient(140deg, var(--wine-3), var(--wine));
  box-shadow:0 6px 22px rgba(164,18,58,.4), inset 0 1px 0 rgba(255,255,255,.22);
  font-weight:800; font-size:15px; letter-spacing:0;
}
.brand-name{ font-weight:700; font-size:14px; color:var(--text); }

.nav{ display:flex; gap:26px; margin-inline:auto; font-size:15px; }
.nav a{
  color:var(--muted); text-decoration:none; position:relative; padding-block:4px;
  transition:color .2s var(--ease);
}
.nav a::after{
  content:""; position:absolute; left:0; bottom:0; height:1px; width:0;
  background:var(--rose); transition:width .28s var(--ease);
}
.nav a:hover{ color:var(--text); }
.nav a:hover::after{ width:100%; }

/* ---------- buttons ---------- */
.btn{
  --btn-bg:linear-gradient(135deg, var(--wine-3), var(--wine));
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:12px 20px; border-radius:999px;
  background:var(--btn-bg); color:#fff; text-decoration:none;
  font-weight:700; font-size:15px; line-height:1; white-space:nowrap;
  border:1px solid rgba(255,255,255,.1);
  box-shadow:0 10px 30px rgba(140,20,54,.35);
  transition:transform .2s var(--ease), box-shadow .25s var(--ease), background .25s var(--ease);
}
.btn:hover{ transform:translateY(-2px); box-shadow:0 16px 38px rgba(164,18,58,.45); }
.btn:active{ transform:translateY(0); }
.btn-sm{ padding:9px 16px; font-size:14px; }
.btn-lg{ padding:16px 28px; font-size:16px; }
.btn-ghost{
  --btn-bg:transparent;
  border-color:var(--line); color:var(--text); box-shadow:none;
}
.btn-ghost:hover{ background:var(--surface-2); box-shadow:none; }
.ic{ width:18px; height:18px; fill:currentColor; flex:none; }

/* ---------- hero ---------- */
.hero{ padding:clamp(72px,12vw,150px) 0 clamp(48px,7vw,86px); }

.eyebrow{
  display:inline-block; margin:0 0 22px;
  padding:7px 14px; border-radius:999px;
  border:1px solid var(--line); background:var(--surface);
  color:var(--gold); font-size:13px; letter-spacing:.1em; text-transform:uppercase; font-weight:600;
}

h1{
  margin:0 0 22px;
  font-size:clamp(40px,7.4vw,80px);
  line-height:1.03;
  letter-spacing:-.03em;
  font-weight:800;
}
.grad{
  background:linear-gradient(100deg, var(--rose), var(--gold) 85%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}

.lead{
  max-width:640px; margin:0 0 34px;
  font-size:clamp(17px,2vw,20px); color:var(--muted);
}

.hero-cta{ display:flex; flex-wrap:wrap; gap:14px; margin-bottom:40px; }

.badges{
  display:flex; flex-wrap:wrap; gap:10px;
  list-style:none; margin:0; padding:0;
}
.badges li{
  padding:9px 16px; border-radius:999px;
  border:1px solid var(--line); background:var(--surface);
  font-size:14px; font-weight:600; color:var(--muted);
}

/* ---------- sections ---------- */
.section{ padding:clamp(56px,8vw,96px) 0; }

h2{
  margin:0 0 12px;
  font-size:clamp(28px,4.4vw,46px);
  line-height:1.1; letter-spacing:-.02em; font-weight:800;
}
.section-sub{ margin:0 0 36px; max-width:620px; color:var(--muted); }

/* ---------- stats ---------- */
.stats{
  display:grid; grid-template-columns:repeat(4,1fr); gap:1px;
  background:var(--line); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;
}
.stat{ background:linear-gradient(180deg, rgba(107,15,42,.22), rgba(31,10,17,.6)); padding:30px 26px; }
.stat-num{
  font-size:clamp(32px,4.6vw,48px); font-weight:800; letter-spacing:-.03em; line-height:1.1;
  background:linear-gradient(120deg, #fff, var(--rose));
  -webkit-background-clip:text; background-clip:text; color:transparent;
  font-variant-numeric:tabular-nums;
}
.stat-label{ margin-top:6px; color:var(--muted-2); font-size:14px; letter-spacing:.02em; }

/* ---------- geo ---------- */
.geo-grid{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); gap:12px;
  list-style:none; margin:0; padding:0;
}
.geo{
  display:flex; align-items:center; gap:12px;
  padding:14px 16px; border-radius:14px;
  border:1px solid var(--line); background:var(--surface);
  font-weight:600; font-size:15px;
  transition:transform .22s var(--ease), border-color .22s var(--ease), background .22s var(--ease);
}
.geo:hover{ transform:translateY(-3px); border-color:rgba(201,56,92,.45); background:var(--surface-2); }
.cc{
  display:grid; place-items:center; flex:none;
  width:38px; height:28px; border-radius:7px;
  background:linear-gradient(140deg, var(--wine-2), var(--wine));
  border:1px solid rgba(255,255,255,.12);
  font-size:12px; font-weight:800; letter-spacing:.06em; color:#ffe6ec;
}

/* ---------- cards ---------- */
.cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.card{
  padding:28px 26px 30px; border-radius:var(--radius);
  border:1px solid var(--line);
  background:linear-gradient(180deg, rgba(107,15,42,.2), rgba(31,10,17,.5));
  transition:transform .25s var(--ease), border-color .25s var(--ease);
}
.card:hover{ transform:translateY(-4px); border-color:rgba(201,56,92,.42); }
.card-ic{
  display:inline-grid; place-items:center;
  width:42px; height:42px; margin-bottom:16px; border-radius:12px;
  background:var(--surface-2); border:1px solid var(--line);
  color:var(--gold); font-weight:800; font-size:14px;
}
.card h3{ margin:0 0 8px; font-size:19px; font-weight:700; letter-spacing:-.01em; }
.card p{ margin:0; color:var(--muted); font-size:15.5px; }

/* ---------- steps ---------- */
.steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; list-style:none; margin:0; padding:0; counter-reset:s; }
.step{
  display:flex; gap:16px; padding:26px 24px;
  border-radius:var(--radius); border:1px solid var(--line); background:var(--surface);
}
.step-n{
  display:grid; place-items:center; flex:none;
  width:38px; height:38px; border-radius:50%;
  background:linear-gradient(140deg, var(--wine-3), var(--wine));
  font-weight:800; font-size:15px;
  box-shadow:0 8px 22px rgba(164,18,58,.35);
}
.step h3{ margin:4px 0 6px; font-size:18px; font-weight:700; }
.step p{ margin:0; color:var(--muted); font-size:15.5px; }

/* ---------- cta ---------- */
.cta{
  position:relative; overflow:hidden;
  padding:clamp(38px,6vw,66px) clamp(24px,5vw,60px);
  border-radius:26px; border:1px solid rgba(201,56,92,.28);
  background:
    radial-gradient(120% 140% at 12% 0%, rgba(164,18,58,.5), transparent 60%),
    linear-gradient(180deg, rgba(107,15,42,.5), rgba(31,10,17,.75));
  text-align:center;
}
.cta h2{ margin-bottom:10px; }
.cta p{ margin:0 auto 28px; max-width:520px; color:var(--muted); }
.cta-actions{ display:flex; flex-wrap:wrap; gap:14px; justify-content:center; }

/* ---------- footer ---------- */
.footer{ border-top:1px solid var(--line); padding:34px 0 44px; }
.footer-inner{ display:flex; flex-wrap:wrap; align-items:center; gap:16px 28px; }
.footer-note{ margin:0; color:var(--muted-2); font-size:14px; }
.footer-copy{ margin:0 0 0 auto; color:var(--muted-2); font-size:14px; }

/* ---------- reveal animation ---------- */
.reveal{ opacity:0; transform:translateY(18px); transition:opacity .6s var(--ease), transform .6s var(--ease); }
.reveal.in{ opacity:1; transform:none; }

/* ---------- responsive ---------- */
@media (max-width:900px){
  .nav{ display:none; }
  .stats{ grid-template-columns:repeat(2,1fr); }
  .cards{ grid-template-columns:repeat(2,1fr); }
  .steps{ grid-template-columns:1fr; }
}
@media (max-width:600px){
  body{ font-size:16px; }
  .wrap{ padding-inline:18px; }
  .stats{ grid-template-columns:1fr; }
  .cards{ grid-template-columns:1fr; }
  .geo-grid{ grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); }
  .hero-cta .btn{ width:100%; }
  .footer-copy{ margin-left:0; }
}

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  .reveal{ opacity:1; transform:none; transition:none; }
  *{ animation:none !important; }
}
