:root{
  --primary: 271 81% 56%;
  --primary-light: 271 81% 70%;
  --secondary: 45 93% 58%;
  --secondary-light: 45 93% 75%;
  --fg: 222.2 84% 4.9%;
  --muted-fg: 220 8.9% 46.1%;
  --border: 220 13% 91%;
  --muted-bg: 220 14.3% 95.9%;
  --radius: 14px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:hsl(var(--fg));
  background:#fff;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.brand{font-family:"Manrope",-apple-system,sans-serif;}
.container{max-width:1200px;margin:0 auto;padding:0 24px;}
a{color:inherit;}
img,svg{display:block;}

/* ---- Nav ---- */
header.nav{
  position:fixed;top:0;left:0;right:0;z-index:50;
  background:rgba(255,255,255,.9);backdrop-filter:blur(10px);
  border-bottom:1px solid hsl(var(--border));
}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:64px;}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:19px;text-decoration:none;letter-spacing:-0.01em;}
.brand .mark{
  width:32px;height:32px;border-radius:9px;
  background:linear-gradient(135deg,hsl(var(--primary)),hsl(var(--secondary)));
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-weight:800;font-size:16px;
  box-shadow:0 4px 14px hsl(var(--primary)/.35);
}
nav.links{display:flex;align-items:center;gap:28px;}
nav.links a{font-size:14px;font-weight:600;color:hsl(var(--muted-fg));text-decoration:none;transition:color .2s;}
nav.links a:hover{color:hsl(var(--primary));}
.cta-btn{
  display:inline-flex;align-items:center;gap:6px;
  background:linear-gradient(135deg,hsl(var(--primary)),hsl(var(--secondary)));
  color:#fff;font-weight:700;font-size:14px;padding:10px 20px;border-radius:999px;
  text-decoration:none;transition:opacity .2s, transform .2s;
  box-shadow:0 6px 20px hsl(var(--primary)/.3);
}
.cta-btn:hover{opacity:.92;transform:translateY(-1px);}
.menu-toggle{display:none;background:none;border:none;cursor:pointer;padding:8px;}
.menu-toggle svg{width:22px;height:22px;}

/* ---- Hero ---- */
.hero{
  padding:150px 0 90px;
  position:relative;overflow:hidden;
  background:
    radial-gradient(600px 300px at 85% -10%, hsl(var(--secondary)/.15), transparent),
    radial-gradient(700px 400px at -10% 10%, hsl(var(--primary)/.08), transparent);
}
.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center;}
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-size:13px;font-weight:700;color:hsl(var(--primary));
  background:hsl(var(--primary)/.08);border:1px solid hsl(var(--primary)/.2);
  padding:6px 14px;border-radius:999px;margin-bottom:22px;
  animation:rise .6s ease both;
}
.hero h1{
  font-size:clamp(2.4rem,5vw,3.6rem);line-height:1.08;font-weight:800;
  letter-spacing:-0.02em;margin:0 0 22px;
  animation:rise .6s ease .05s both;
}
.hero h1 .grad{
  background:linear-gradient(135deg,hsl(var(--primary)),hsl(var(--secondary)));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.hero p{
  font-size:19px;line-height:1.65;color:hsl(var(--muted-fg));margin:0 0 34px;max-width:520px;
  animation:rise .6s ease .1s both;
}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;animation:rise .6s ease .15s both;}
.btn-outline{
  display:inline-flex;align-items:center;gap:6px;
  border:1.5px solid hsl(var(--border));color:hsl(var(--fg));
  font-weight:700;font-size:14px;padding:10px 22px;border-radius:999px;text-decoration:none;
  transition:border-color .2s, color .2s;
}
.btn-outline:hover{border-color:hsl(var(--primary));color:hsl(var(--primary));}

.hero-visual{position:relative;animation:rise .7s ease .2s both;}
.visual-card{
  aspect-ratio:4/3;border-radius:20px;
  background:linear-gradient(135deg,hsl(var(--primary)),hsl(var(--secondary)));
  position:relative;overflow:hidden;
  box-shadow:0 30px 60px -20px hsl(var(--primary)/.4);
}
.visual-card::before{
  content:"";position:absolute;inset:0;
  background-image:radial-gradient(circle at 20% 20%, rgba(255,255,255,.35) 0, transparent 40%),
    radial-gradient(circle at 80% 70%, rgba(255,255,255,.2) 0, transparent 45%);
}
.visual-mark{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-family:"Manrope";font-weight:800;color:rgba(255,255,255,.92);font-size:min(9vw,110px);
  letter-spacing:-0.03em;
}
@keyframes rise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:translateY(0);}}

/* ---- Section shared ---- */
section{padding:96px 0;}
.section-alt{background:hsl(var(--muted-bg)/.5);}
.sec-head{max-width:640px;margin:0 auto 56px;text-align:center;}
.sec-head h2{font-size:clamp(1.8rem,3.2vw,2.4rem);font-weight:800;letter-spacing:-0.01em;color:hsl(var(--primary));margin:0 0 14px;}
.sec-head p{font-size:17px;color:hsl(var(--muted-fg));line-height:1.6;margin:0;}

.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.card{
  border:1px solid hsl(var(--border));border-radius:var(--radius);
  padding:32px 26px;text-align:center;transition:border-color .25s, transform .25s, box-shadow .25s;
  background:#fff;
}
.card:hover{border-color:hsl(var(--primary)/.4);transform:translateY(-4px);box-shadow:0 20px 40px -24px hsl(var(--primary)/.35);}
.icon-wrap{
  width:56px;height:56px;border-radius:14px;margin:0 auto 18px;
  display:flex;align-items:center;justify-content:center;
  background:hsl(var(--primary)/.1);color:hsl(var(--primary));
}
.icon-wrap svg{width:26px;height:26px;}
.card h3{font-size:19px;font-weight:700;margin:0 0 10px;color:hsl(var(--primary));}
.card p{font-size:15px;color:hsl(var(--muted-fg));line-height:1.6;margin:0;}

.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:36px;text-align:center;}
.step-num{
  width:60px;height:60px;border-radius:999px;margin:0 auto 16px;
  background:linear-gradient(135deg,hsl(var(--primary)),hsl(var(--secondary)));
  color:#fff;font-weight:800;font-size:20px;display:flex;align-items:center;justify-content:center;
}
.steps h3{font-size:16px;font-weight:700;color:hsl(var(--primary));margin:14px 0 8px;}
.steps p{font-size:14px;color:hsl(var(--muted-fg));margin:0;line-height:1.55;}

.who{display:grid;grid-template-columns:repeat(3,1fr);gap:36px;text-align:center;}
.who-icon{
  width:74px;height:74px;border-radius:999px;margin:0 auto 20px;
  background:hsl(var(--primary)/.1);display:flex;align-items:center;justify-content:center;color:hsl(var(--primary));
}
.who-icon svg{width:32px;height:32px;}
.who h3{font-size:18px;font-weight:700;color:hsl(var(--primary));margin:0 0 10px;}
.who p{font-size:15px;color:hsl(var(--muted-fg));line-height:1.6;margin:0;}

.cta-band{
  background:linear-gradient(135deg,hsl(var(--primary)),hsl(var(--secondary)));
  border-radius:24px;padding:64px 40px;text-align:center;color:#fff;
  margin:0 24px;
}
.cta-band h2{font-size:clamp(1.6rem,3vw,2.2rem);font-weight:800;margin:0 0 14px;}
.cta-band p{font-size:17px;opacity:.92;margin:0 0 30px;}
.cta-band .btn-light{
  display:inline-flex;background:#fff;color:hsl(var(--primary));font-weight:800;
  padding:12px 28px;border-radius:999px;text-decoration:none;font-size:15px;
  transition:transform .2s;
}
.cta-band .btn-light:hover{transform:translateY(-2px);}

/* ---- Footer ---- */
footer{border-top:1px solid hsl(var(--border));padding:60px 0 30px;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;margin-bottom:40px;}
footer .brand{margin-bottom:14px;}
footer .desc{font-size:14.5px;color:hsl(var(--muted-fg));line-height:1.65;max-width:380px;}
footer h4{font-size:14px;font-weight:700;margin:0 0 14px;}
footer ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px;}
footer ul a{font-size:14.5px;color:hsl(var(--muted-fg));text-decoration:none;transition:color .2s;}
footer ul a:hover{color:hsl(var(--primary));}
.partner-strip{
  border-top:1px solid hsl(var(--border));padding-top:26px;
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;
}
.partner-strip p{font-size:13.5px;color:hsl(var(--muted-fg));margin:0;}
.partner-link{
  display:inline-flex;align-items:center;gap:8px;text-decoration:none;
  font-size:14px;font-weight:700;color:hsl(var(--fg));
  border:1px solid hsl(var(--border));padding:8px 16px;border-radius:999px;
  transition:border-color .2s, color .2s;
}
.partner-link:hover{border-color:hsl(var(--primary));color:hsl(var(--primary));}
.partner-link .mark{width:20px;height:20px;border-radius:6px;font-size:11px;}

/* ---- Legal pages ---- */
.legal-hero{padding:150px 0 50px;}
.legal-hero h1{font-size:clamp(2rem,4vw,2.8rem);font-weight:800;letter-spacing:-0.02em;margin:0 0 12px;}
.legal-hero p{font-size:15px;color:hsl(var(--muted-fg));margin:0;}
.legal-body{padding:10px 0 90px;}
.legal-prose{max-width:760px;margin:0 auto;font-size:16px;line-height:1.75;color:hsl(220 10% 25%);}
.legal-prose h2{font-size:22px;font-weight:800;color:hsl(var(--primary));margin:42px 0 14px;letter-spacing:-0.01em;}
.legal-prose h2:first-child{margin-top:0;}
.legal-prose h3{font-size:17px;font-weight:700;margin:26px 0 10px;}
.legal-prose p{margin:0 0 16px;}
.legal-prose ul,.legal-prose ol{margin:0 0 16px;padding-left:22px;}
.legal-prose li{margin-bottom:8px;}
.legal-prose a{color:hsl(var(--primary));text-decoration:underline;}
.legal-prose strong{color:hsl(var(--fg));}
.legal-note{
  background:hsl(var(--primary)/.06);border:1px solid hsl(var(--primary)/.15);
  border-radius:12px;padding:16px 20px;font-size:14px;color:hsl(var(--muted-fg));margin:0 0 32px;
}
.legal-toc{
  border:1px solid hsl(var(--border));border-radius:12px;padding:20px 24px;margin:0 0 40px;
  font-size:14.5px;
}
.legal-toc p{font-weight:700;margin:0 0 10px;}
.legal-toc ol{margin:0;padding-left:20px;}
.legal-toc a{text-decoration:none;color:hsl(var(--muted-fg));}
.legal-toc a:hover{color:hsl(var(--primary));}

@media (max-width:860px){
  nav.links{
    display:none;position:absolute;top:64px;left:0;right:0;
    background:#fff;border-bottom:1px solid hsl(var(--border));
    flex-direction:column;align-items:flex-start;gap:0;padding:8px 24px 20px;
  }
  nav.links.open{display:flex;}
  nav.links a{padding:12px 0;width:100%;border-bottom:1px solid hsl(var(--border)/.6);}
  .nav-cta{display:none;}
  .menu-toggle{display:block;}
  .hero-grid{grid-template-columns:1fr;}
  .hero-visual{order:-1;max-width:340px;margin:0 auto;}
  .grid-3, .steps, .who{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr;gap:32px;}
  .cta-band{margin:0;border-radius:0;}
}
