:root{
  --cream:#F4F6F8; --cream-2:#E9ECF1; --surface:#FFFFFF;
  --line:#E5E8EE; --line-strong:#D2D7E0;
  --ink:#0A0A0C; --ink-soft:#45474E; --muted:#868B95;
  --accent:#7D39EB; --accent-700:#6326C9; --accent-200:#D9C2F7; --accent-50:#F1EAFC;
  --money:#C6FF33; --money-700:#5C7A00; --money-50:#F2FCCF;
  --green:#1E8A5B; --red:#B42318;
  --deep:#2A0F5C; --deep-2:#1C0A40;
  --sh-sm:0 1px 2px rgba(15,20,30,.06),0 1px 1px rgba(15,20,30,.04);
  --sh-md:0 6px 18px rgba(15,20,30,.10),0 2px 6px rgba(15,20,30,.06);
  --sh-lg:0 18px 44px rgba(15,20,30,.16),0 6px 14px rgba(15,20,30,.08);
  --font-display:'Bricolage Grotesque',system-ui,sans-serif;
  --font-ui:'Plus Jakarta Sans',system-ui,sans-serif;
  --font-mono:'Space Mono',ui-monospace,monospace;
  --maxw:1180px;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--font-ui); color:var(--ink); background:var(--cream);
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
a{color:inherit;text-decoration:none;}
img{display:block;max-width:100%;}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 24px;}
.eyebrow{font-family:var(--font-ui); font-weight:800; font-size:13px; letter-spacing:.08em; text-transform:uppercase;}
h1,h2,h3{font-family:var(--font-display); letter-spacing:-.03em; line-height:1.02;}
.btn{display:inline-flex; align-items:center; justify-content:center; gap:9px; font-family:var(--font-ui); font-weight:700; font-size:15.5px; border-radius:14px; padding:14px 22px; cursor:pointer; border:none; transition:transform .15s ease, box-shadow .15s ease;}
.btn:hover{transform:translateY(-2px);}
.btn-lima{background:var(--money); color:var(--ink); box-shadow:0 10px 26px rgba(198,255,51,.35);}
.btn-ink{background:var(--ink); color:#fff;}
.btn-violet{background:var(--accent); color:#fff; box-shadow:0 10px 26px rgba(125,57,235,.32);}
.btn-ghost{background:transparent; color:var(--ink); border:1.5px solid var(--line-strong);}
.btn-ghost-light{background:rgba(255,255,255,.07); color:#fff; border:1.5px solid rgba(255,255,255,.22);}

/* ---------- Header ---------- */
header.nav{position:sticky; top:0; z-index:60; background:rgba(244,246,248,.82); backdrop-filter:blur(14px); border-bottom:1px solid var(--line);}
.nav-in{display:flex; align-items:center; gap:18px; height:68px;}
.nav-logo{height:30px; width:auto;}
.nav-links{display:flex; gap:30px; align-items:center;}
.nav-links a{font-weight:600; font-size:14.5px; color:var(--ink-soft);}
.nav-links a:hover{color:var(--ink);}
.nav-cta{display:flex; gap:10px; align-items:center; margin-left:auto;}
.burger{display:none; flex-direction:column; gap:5px; cursor:pointer; padding:8px;}
.burger span{width:22px; height:2px; background:var(--ink); border-radius:2px;}
@media(max-width:980px){
  .nav-links{display:none;}
  .nav-cta .btn-ghost{display:none;}
  .burger{display:flex;}
}

/* ---------- Page switch (Pasajeros / Conductores) ---------- */
.page-switch{display:inline-flex; background:var(--cream-2); border-radius:999px; padding:4px; gap:3px;}
.page-switch a{font-family:var(--font-ui); font-weight:700; font-size:13.5px; padding:8px 16px; border-radius:999px; color:var(--ink-soft); transition:background .2s ease, color .2s ease; display:flex; align-items:center; gap:7px;}
.page-switch a.on-pax{background:var(--accent); color:#fff;}
.page-switch a.on-drv{background:var(--ink); color:var(--money);}
@media(max-width:560px){ .page-switch a{padding:8px 12px; font-size:12.5px;} .page-switch a svg{display:none;} }

/* ---------- Hero ---------- */
.hero{background:radial-gradient(120% 120% at 80% 0%, var(--deep) 0%, var(--deep-2) 60%, #150730 100%); color:#fff; position:relative; overflow:hidden;}
.hero.lima-hero{background:radial-gradient(120% 120% at 80% 0%, #18203A 0%, #0E1426 60%, #080C18 100%);}
.hero::after{content:""; position:absolute; right:-160px; top:-160px; width:520px; height:520px; border-radius:50%; background:radial-gradient(circle, rgba(125,57,235,.45), transparent 65%); pointer-events:none;}
.hero.lima-hero::after{background:radial-gradient(circle, rgba(198,255,51,.28), transparent 65%);}
.hero-in{display:grid; grid-template-columns:1.08fr .92fr; gap:40px; align-items:center; padding:78px 0 88px; position:relative; z-index:2;}
.hero .eyebrow{color:var(--money);}
.hero h1{font-size:clamp(44px,6.4vw,76px); font-weight:800; margin:18px 0 0;}
.hero h1 .lima{color:var(--money);}
.hero h1 .violet{color:var(--accent-200);}
.hero p.lede{font-size:18.5px; line-height:1.5; color:rgba(255,255,255,.74); margin:22px 0 30px; max-width:520px;}
.hero-cta{display:flex; gap:13px; flex-wrap:wrap;}
.hero-trust{display:flex; gap:26px; margin-top:34px; flex-wrap:wrap;}
.hero-trust .t{display:flex; flex-direction:column; gap:2px;}
.hero-trust .t b{font-family:var(--font-display); font-weight:800; font-size:26px; color:#fff;}
.hero-trust .t span{font-size:12.5px; color:rgba(255,255,255,.55);}
@media(max-width:880px){ .hero-in{grid-template-columns:1fr; gap:14px; padding:54px 0 60px;} }

/* ---------- Phone mockup ---------- */
.phone{width:300px; max-width:78vw; aspect-ratio:300/610; background:#0A0A0C; border-radius:42px; padding:11px; box-shadow:0 40px 90px rgba(0,0,0,.45), 0 0 0 2px rgba(255,255,255,.06) inset; margin:0 auto; position:relative;}
.phone-scr{width:100%; height:100%; border-radius:32px; overflow:hidden; background:var(--cream); position:relative;}
.phone-notch{position:absolute; top:0; left:50%; transform:translateX(-50%); width:120px; height:24px; background:#0A0A0C; border-radius:0 0 16px 16px; z-index:5;}
.phone-shot{width:100%; height:100%; object-fit:cover; display:block;}
.pm-map{position:absolute; inset:0; background:linear-gradient(160deg,#E7ECF2,#DCE3EC);}
.pm-map .road{position:absolute; background:#fff; border-radius:6px;}
.pm-route{position:absolute; height:4px; border-radius:3px; background:var(--accent);}
.pm-pin{position:absolute; width:22px; height:22px; border-radius:7px; background:var(--money); display:flex; align-items:center; justify-content:center; box-shadow:0 4px 10px rgba(0,0,0,.2);}
.pm-pin.dot{background:var(--ink); border-radius:50%; width:14px; height:14px;}
.pm-card{position:absolute; left:14px; right:14px; bottom:14px; background:var(--surface); border-radius:22px; box-shadow:var(--sh-lg); padding:15px;}
.pm-card.dark{background:var(--deep); color:#fff;}
.pm-row{display:flex; align-items:center; gap:10px;}
.pm-top{position:absolute; left:14px; right:14px; top:14px; background:rgba(255,253,250,.94); backdrop-filter:blur(6px); border-radius:16px; box-shadow:var(--sh-md); padding:11px 13px; display:flex; align-items:center; gap:9px;}
.chip-mono{font-family:var(--font-mono); font-weight:700; font-size:12px; background:var(--money); color:var(--ink); border-radius:7px; padding:4px 8px; letter-spacing:.06em;}

/* ---------- Sections ---------- */
section{padding:84px 0;}
.sec-head{max-width:680px; margin:0 auto 50px; text-align:center;}
.sec-head .eyebrow{color:var(--accent-700);}
.sec-head h2{font-size:clamp(30px,4.2vw,48px); font-weight:800; margin:14px 0 0;}
.sec-head p{font-size:17px; line-height:1.5; color:var(--ink-soft); margin-top:16px;}

/* ---------- Audience block ---------- */
.aud{background:var(--surface); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.aud-grid{display:grid; grid-template-columns:1fr 1fr; gap:54px; align-items:center;}
@media(max-width:880px){ .aud-grid{grid-template-columns:1fr; gap:34px;} }
.aud-grid .copy h3{font-size:clamp(28px,3.6vw,40px); font-weight:800;}
.aud-grid .copy .tag{display:inline-flex; align-items:center; gap:8px; font-weight:800; font-size:13px; letter-spacing:.04em; text-transform:uppercase; padding:7px 13px; border-radius:999px; margin-bottom:18px;}
.tag.pax{background:var(--accent-50); color:var(--accent-700);}
.tag.drv{background:var(--money-50); color:var(--money-700);}
.steps{margin:26px 0 28px; display:flex; flex-direction:column; gap:4px;}
.step{display:flex; gap:16px; padding:15px 0; border-top:1px solid var(--line);}
.step:first-child{border-top:none;}
.step .n{width:34px; height:34px; border-radius:11px; flex-shrink:0; display:flex; align-items:center; justify-content:center; font-family:var(--font-mono); font-weight:700; font-size:15px;}
.step.pax .n{background:var(--accent); color:#fff;}
.step.drv .n{background:var(--ink); color:var(--money);}
.step .st{font-weight:700; font-size:16.5px;}
.step .ss{font-size:13.5px; color:var(--muted); margin-top:2px; line-height:1.45;}
.feat-chips{display:flex; flex-wrap:wrap; gap:9px;}
.feat-chips span{font-size:13px; font-weight:600; color:var(--ink-soft); background:var(--cream-2); border-radius:10px; padding:8px 13px;}

/* ---------- Services (pax) ---------- */
.svc-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
@media(max-width:760px){ .svc-grid{grid-template-columns:1fr;} }
.svc{background:var(--surface); border:1px solid var(--line); border-radius:24px; padding:28px; box-shadow:var(--sh-sm);}
.svc .ic{width:54px; height:54px; border-radius:15px; background:var(--accent-50); display:flex; align-items:center; justify-content:center; margin-bottom:18px;}
.svc h4{font-family:var(--font-display); font-weight:800; font-size:21px;}
.svc p{font-size:14.5px; color:var(--ink-soft); line-height:1.5; margin-top:8px;}

/* ---------- Commission model ---------- */
.model{background:var(--deep); color:#fff; position:relative; overflow:hidden;}
.model::before{content:""; position:absolute; left:-120px; bottom:-120px; width:420px; height:420px; border-radius:50%; background:radial-gradient(circle, rgba(125,57,235,.4), transparent 65%);}
.model .sec-head .eyebrow{color:var(--money);}
.model .sec-head h2,.model .sec-head p{color:#fff;}
.model .sec-head p{color:rgba(255,255,255,.7);}
.compare{display:grid; grid-template-columns:1fr 1fr; gap:22px; max-width:840px; margin:0 auto; position:relative; z-index:2;}
@media(max-width:760px){ .compare{grid-template-columns:1fr;} }
.cmp{background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); border-radius:24px; padding:30px;}
.cmp.win{background:var(--money); color:var(--ink); border:none;}
.cmp h4{font-family:var(--font-display); font-weight:800; font-size:22px; margin-bottom:6px;}
.cmp .sub{font-size:13.5px; opacity:.7; margin-bottom:22px;}
.cmp .big{font-family:var(--font-display); font-weight:800; font-size:46px; letter-spacing:-.03em;}
.cmp .big small{font-size:18px; font-weight:700;}
.cmp .barwrap{height:14px; border-radius:8px; background:rgba(255,255,255,.14); overflow:hidden; margin:18px 0 10px;}
.cmp.win .barwrap{background:rgba(10,10,12,.12);}
.cmp .bar{height:100%; border-radius:8px;}
.cmp ul{list-style:none; margin-top:18px; display:flex; flex-direction:column; gap:11px;}
.cmp li{display:flex; gap:10px; font-size:14px; line-height:1.4;}
.cmp li .ic{flex-shrink:0; margin-top:1px;}

/* ---------- Pricing ---------- */
.price-grid{display:grid; grid-template-columns:1fr 1fr; gap:22px; max-width:760px; margin:0 auto;}
@media(max-width:680px){ .price-grid{grid-template-columns:1fr;} }
.price{background:var(--surface); border:1.5px solid var(--line); border-radius:26px; padding:32px; position:relative;}
.price.feat{border:2px solid var(--accent); box-shadow:var(--sh-lg);}
.price .badge{position:absolute; top:-13px; left:32px; background:var(--accent); color:#fff; font-weight:800; font-size:12px; letter-spacing:.04em; text-transform:uppercase; padding:6px 13px; border-radius:999px;}
.price h4{font-family:var(--font-display); font-weight:800; font-size:21px;}
.price .amt{font-family:var(--font-display); font-weight:800; font-size:44px; letter-spacing:-.03em; margin:14px 0 2px;}
.price .per{font-size:14px; color:var(--muted);}
.price ul{list-style:none; margin:22px 0 0; display:flex; flex-direction:column; gap:12px;}
.price li{display:flex; gap:10px; font-size:14.5px; color:var(--ink-soft);}

/* ---------- Security ---------- */
.sec-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
@media(max-width:880px){ .sec-grid{grid-template-columns:1fr 1fr;} }
@media(max-width:560px){ .sec-grid{grid-template-columns:1fr;} }
.scard{background:var(--surface); border:1px solid var(--line); border-radius:22px; padding:26px; box-shadow:var(--sh-sm);}
.scard .ic{width:48px; height:48px; border-radius:14px; background:var(--accent-50); display:flex; align-items:center; justify-content:center; margin-bottom:18px;}
.scard h4{font-family:var(--font-display); font-weight:700; font-size:18.5px;}
.scard p{font-size:14px; color:var(--ink-soft); line-height:1.5; margin-top:8px;}

/* ---------- Founder banner ---------- */
.founder{background:var(--ink); color:#fff; border-radius:30px; padding:48px; display:grid; grid-template-columns:1.4fr .9fr; gap:30px; align-items:center; position:relative; overflow:hidden;}
@media(max-width:760px){ .founder{grid-template-columns:1fr; padding:34px;} }
.founder::after{content:""; position:absolute; right:-80px; top:-80px; width:300px; height:300px; border-radius:50%; background:radial-gradient(circle, rgba(198,255,51,.18), transparent 65%);}
.founder .crown{display:inline-flex; align-items:center; gap:9px; background:rgba(198,255,51,.14); border:1px solid rgba(198,255,51,.4); border-radius:999px; padding:7px 14px; font-weight:800; font-size:12.5px; color:var(--money); margin-bottom:18px;}
.founder h3{font-size:clamp(26px,3.4vw,40px); font-weight:800;}
.founder h3 .lima{color:var(--money);}
.founder p{color:rgba(255,255,255,.72); font-size:16px; line-height:1.5; margin-top:14px;}
.founder .meter{background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.14); border-radius:20px; padding:22px; position:relative; z-index:2;}
.founder .meter .lbl{font-size:13px; color:rgba(255,255,255,.6); display:flex; justify-content:space-between; margin-bottom:9px;}
.founder .meter .track{height:12px; border-radius:7px; background:rgba(255,255,255,.12); overflow:hidden;}
.founder .meter .fill{height:100%; width:72%; border-radius:7px; background:var(--money);}
.founder .meter .cap{font-family:var(--font-display); font-weight:800; font-size:30px; margin-top:14px;}

/* ---------- Referrals ---------- */
.ref-grid{display:grid; grid-template-columns:1fr 1fr; gap:22px;}
@media(max-width:680px){ .ref-grid{grid-template-columns:1fr;} }
.ref{border-radius:26px; padding:32px; position:relative; overflow:hidden;}
.ref.pax{background:var(--accent-50); border:1px solid var(--accent-200);}
.ref.drv{background:var(--money-50); border:1px solid #E2F39B;}
.ref .k{font-weight:800; font-size:12.5px; letter-spacing:.06em; text-transform:uppercase;}
.ref.pax .k{color:var(--accent-700);}
.ref.drv .k{color:var(--money-700);}
.ref h4{font-family:var(--font-display); font-weight:800; font-size:25px; margin:12px 0 8px;}
.ref p{font-size:14.5px; color:var(--ink-soft); line-height:1.5;}
.ref .reward{font-family:var(--font-display); font-weight:800; font-size:34px; letter-spacing:-.03em; margin-top:18px;}
.ref.pax .reward{color:var(--accent-700);}
.ref.drv .reward{color:var(--money-700);}

/* ---------- FAQ ---------- */
.faq{max-width:760px; margin:0 auto;}
.qa{border-bottom:1px solid var(--line);}
.qa button{width:100%; text-align:left; background:none; border:none; cursor:pointer; padding:22px 0; display:flex; justify-content:space-between; align-items:center; gap:16px; font-family:var(--font-ui); font-weight:700; font-size:17.5px; color:var(--ink);}
.qa .plus{width:26px; height:26px; flex-shrink:0; position:relative; transition:transform .3s ease;}
.qa .plus::before,.qa .plus::after{content:""; position:absolute; background:var(--accent); border-radius:2px;}
.qa .plus::before{top:12px; left:4px; right:4px; height:2.5px;}
.qa .plus::after{left:12px; top:4px; bottom:4px; width:2.5px; transition:opacity .3s ease;}
.qa.open .plus{transform:rotate(180deg);}
.qa.open .plus::after{opacity:0;}
.qa .ans{max-height:0; overflow:hidden; transition:max-height .35s ease;}
.qa .ans p{font-size:15.5px; color:var(--ink-soft); line-height:1.6; padding:0 40px 24px 0;}

/* ---------- Download CTA ---------- */
.download{background:radial-gradient(120% 120% at 20% 0%, var(--accent) 0%, var(--accent-700) 70%, #4a1a9e 100%); color:#fff; border-radius:34px; padding:60px; text-align:center; position:relative; overflow:hidden;}
.download.drv-dl{background:radial-gradient(120% 120% at 20% 0%, #20284A 0%, #131A30 70%, #0A0E1C 100%);}
@media(max-width:680px){ .download{padding:40px 26px;} }
.download::after{content:""; position:absolute; left:50%; bottom:-160px; transform:translateX(-50%); width:520px; height:320px; border-radius:50%; background:radial-gradient(circle, rgba(198,255,51,.2), transparent 70%);}
.download h2{font-size:clamp(30px,4.4vw,52px); font-weight:800; position:relative; z-index:2;}
.download p{font-size:18px; color:rgba(255,255,255,.82); margin:16px auto 30px; max-width:520px; position:relative; z-index:2;}
.stores{display:flex; gap:14px; justify-content:center; flex-wrap:wrap; position:relative; z-index:2;}
.store-badge{display:inline-block; height:64px; transition:transform .15s ease;}
.store-badge img{height:100%; width:auto; display:block;}
.store-badge:hover{transform:translateY(-2px);}
.dl-qr{display:inline-flex; align-items:center; gap:24px; margin:30px auto 0; position:relative; z-index:2; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.16); border-radius:22px; padding:20px 26px; text-align:left; flex-wrap:wrap; justify-content:center;}
.dl-qr-img{width:150px; height:150px; background:#fff; border-radius:16px; padding:12px; flex-shrink:0;}
.dl-qr-info{max-width:300px;}
.dl-qr-title{font-family:var(--font-display); font-weight:800; font-size:22px; letter-spacing:-.02em; color:#fff;}
.dl-qr-sub{font-family:var(--font-ui); font-size:14.5px; line-height:1.45; color:rgba(255,255,255,.72); margin-top:8px;}
@media(max-width:520px){ .dl-qr{flex-direction:column; text-align:center;} .dl-qr-info{text-align:center;} }
/* Descarga según dispositivo: desktop → QR; Android → solo Google Play; iOS → solo App Store.
   Sin JS (sin clase dev-*) se muestran QR + ambos badges como fallback. */
html.dev-desktop .store-badge{height:38px; pointer-events:none; cursor:default;}
html.dev-android .dl-qr,html.dev-ios .dl-qr{display:none;}
html.dev-android .store-badge[data-os="ios"]{display:none;}
html.dev-ios .store-badge[data-os="android"]{display:none;}

/* ---------- Footer ---------- */
footer{background:var(--ink); color:#fff; padding:60px 0 40px;}
.foot-in{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:30px;}
@media(max-width:760px){ .foot-in{grid-template-columns:1fr 1fr;} }
.foot-logo{height:30px; margin-bottom:16px;}
.foot-col h5{font-family:var(--font-ui); font-weight:800; font-size:12.5px; letter-spacing:.06em; text-transform:uppercase; color:rgba(255,255,255,.5); margin-bottom:14px;}
.foot-col a{display:block; font-size:14.5px; color:rgba(255,255,255,.78); padding:6px 0;}
.foot-col a:hover{color:var(--money);}
.foot-tag{font-size:14px; color:rgba(255,255,255,.6); line-height:1.6; max-width:280px;}
.foot-bottom{border-top:1px solid rgba(255,255,255,.12); margin-top:44px; padding-top:24px; display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap; font-size:13px; color:rgba(255,255,255,.5);}

.reveal{opacity:0; transform:translateY(26px); transition:opacity .7s ease, transform .7s ease;}
.reveal.in{opacity:1; transform:none;}

/* ===== Páginas institucionales (legal / about / contacto) ===== */
.legal-hero{background:radial-gradient(120% 120% at 80% 0%, var(--deep) 0%, var(--deep-2) 70%, #150730 100%); color:#fff; position:relative; overflow:hidden;}
.legal-hero::after{content:""; position:absolute; right:-140px; top:-140px; width:420px; height:420px; border-radius:50%; background:radial-gradient(circle, rgba(125,57,235,.4), transparent 65%); pointer-events:none;}
.legal-hero .wrap{position:relative; z-index:2; padding:56px 24px 48px;}
.legal-hero .crumbs{font-family:var(--font-ui); font-size:13.5px; font-weight:600; color:rgba(255,255,255,.55); margin-bottom:16px;}
.legal-hero .crumbs a{color:var(--money);}
.legal-hero h1{font-size:clamp(32px,4.6vw,52px); font-weight:800; color:#fff;}
.legal-hero p{font-family:var(--font-ui); font-size:16px; color:rgba(255,255,255,.7); margin-top:14px; max-width:620px; line-height:1.5;}
.legal-hero .updated{display:inline-flex; align-items:center; gap:8px; margin-top:22px; font-family:var(--font-ui); font-size:12.5px; font-weight:600; color:rgba(255,255,255,.7); background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.16); border-radius:999px; padding:7px 14px;}
.legal-body{padding:66px 0 88px;}
.legal-layout{display:grid; grid-template-columns:250px 1fr; gap:54px; align-items:start;}
@media(max-width:880px){ .legal-layout{grid-template-columns:1fr; gap:30px;} }
.legal-toc{position:sticky; top:88px; align-self:start; max-height:calc(100vh - 108px); overflow-y:auto; padding-right:8px;}
@media(max-width:880px){ .legal-toc{position:static; max-height:none; overflow:visible; padding-right:0;} }
.legal-toc h5{font-family:var(--font-ui); font-weight:800; font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); margin-bottom:14px;}
.legal-toc a{display:block; font-family:var(--font-ui); font-size:14px; color:var(--ink-soft); padding:8px 0; border-left:2px solid var(--line); padding-left:14px; transition:color .2s ease, border-color .2s ease;}
.legal-toc a:hover{color:var(--accent-700); border-color:var(--accent);}
.legal-doc{max-width:720px;}
.legal-doc h2{font-family:var(--font-display); font-weight:800; font-size:24px; letter-spacing:-.02em; color:var(--ink); margin:44px 0 14px; scroll-margin-top:88px;}
.legal-doc h2:first-child{margin-top:0;}
.legal-doc h2 .num{color:var(--accent); font-family:var(--font-mono); font-size:18px; margin-right:10px;}
.legal-doc h3{font-family:var(--font-display); font-weight:700; font-size:17.5px; color:var(--ink); margin:26px 0 10px;}
.legal-doc p{font-family:var(--font-ui); font-size:15.5px; line-height:1.65; color:var(--ink-soft); margin-bottom:14px;}
.legal-doc ul{list-style:none; margin:0 0 16px; padding:0; display:flex; flex-direction:column; gap:10px;}
.legal-doc li{display:flex; gap:11px; font-family:var(--font-ui); font-size:15px; line-height:1.55; color:var(--ink-soft);}
.legal-doc li::before{content:""; flex-shrink:0; width:7px; height:7px; border-radius:2px; background:var(--accent); margin-top:8px;}
.legal-doc strong{color:var(--ink); font-weight:700;}
.legal-doc a{color:var(--accent-700); font-weight:600; text-decoration:underline; text-underline-offset:2px;}
.legal-callout{background:var(--accent-50); border:1px solid var(--accent-200); border-radius:16px; padding:18px 20px; margin:22px 0;}
.legal-callout p{margin:0; color:var(--ink); font-size:14.5px;}
.legal-callout .k{font-family:var(--font-ui); font-weight:800; font-size:12px; letter-spacing:.05em; text-transform:uppercase; color:var(--accent-700); margin-bottom:7px; display:block;}

/* ---------- About ---------- */
.about-lead{font-family:var(--font-display); font-weight:700; font-size:clamp(24px,3.2vw,34px); line-height:1.25; letter-spacing:-.02em; color:var(--ink); max-width:820px; margin:0 auto; text-align:center;}
.about-lead .hl{color:var(--accent-700);}
.stat-row{display:grid; grid-template-columns:repeat(4,1fr); gap:20px; max-width:900px; margin:0 auto;}
@media(max-width:760px){ .stat-row{grid-template-columns:1fr 1fr;} }
.stat-b{text-align:center;}
.stat-b b{display:block; font-family:var(--font-display); font-weight:800; font-size:clamp(34px,4vw,46px); letter-spacing:-.03em; color:var(--accent-700);}
.stat-b span{font-family:var(--font-ui); font-size:14px; color:var(--ink-soft); margin-top:4px; display:block;}
.value-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
@media(max-width:880px){ .value-grid{grid-template-columns:1fr 1fr;} }
@media(max-width:560px){ .value-grid{grid-template-columns:1fr;} }

/* ---------- Contact ---------- */
.contact-grid{display:grid; grid-template-columns:1fr 1.1fr; gap:44px; align-items:start;}
@media(max-width:880px){ .contact-grid{grid-template-columns:1fr; gap:32px;} }
.contact-methods{display:flex; flex-direction:column; gap:14px;}
.cmethod{display:flex; align-items:center; gap:15px; background:var(--surface); border:1px solid var(--line); border-radius:18px; padding:18px 20px; box-shadow:var(--sh-sm);}
.cmethod .ic{width:46px; height:46px; border-radius:13px; background:var(--accent-50); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.cmethod h4{font-family:var(--font-display); font-weight:700; font-size:16.5px; color:var(--ink);}
.cmethod p{font-family:var(--font-ui); font-size:13.5px; color:var(--muted); margin-top:2px;}
.cmethod a{color:var(--accent-700); font-weight:600;}
.form-card{background:var(--surface); border:1px solid var(--line); border-radius:24px; box-shadow:var(--sh-md); padding:32px;}
.form-card h3{font-family:var(--font-display); font-weight:800; font-size:22px; letter-spacing:-.02em; margin-bottom:6px;}
.form-card .sub{font-family:var(--font-ui); font-size:14px; color:var(--ink-soft); margin-bottom:22px;}
.field{margin-bottom:16px;}
.field label{display:block; font-family:var(--font-ui); font-weight:700; font-size:12.5px; color:var(--ink); margin-bottom:7px;}
.field input,.field select,.field textarea{width:100%; border:1.5px solid var(--line); border-radius:12px; padding:13px 15px; font-family:var(--font-ui); font-size:14.5px; color:var(--ink); background:var(--cream); outline:none; transition:border-color .2s ease, box-shadow .2s ease;}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-50); background:var(--surface);}
.field textarea{resize:vertical; min-height:110px;}
.field-row{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
@media(max-width:520px){ .field-row{grid-template-columns:1fr;} }
.legal-doc .legal-part{font-family:var(--font-ui); font-weight:800; font-size:13px; letter-spacing:.09em; text-transform:uppercase; color:var(--accent-700); margin:56px 0 6px; padding-top:28px; border-top:2px solid var(--line-strong); scroll-margin-top:88px;}
.legal-doc .legal-part:first-child{margin-top:0; padding-top:0; border-top:none;}
