/* Estilos de portada, casos y nosotros */
/* --- hero: el núcleo --- */
.home-hero{padding:132px 0 72px;overflow:hidden}
.hero-grid{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.hero-copy .h-display{font-size:clamp(38px,4.4vw,62px);margin:22px 0 18px}
.hero-copy .lead{max-width:540px}
.actor-card{margin-top:34px;max-width:540px;min-height:178px;padding:22px 22px 20px;border-radius:20px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.1);backdrop-filter:blur(10px)}
.actor-card .ac-top{display:flex;align-items:center;gap:12px}
.actor-card .ac-ic{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;color:#fff;flex:none}
.actor-card .ac-ic svg{width:21px;height:21px}
.actor-card .ac-step{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--sky)}
.actor-card b{display:block;color:#fff;font-size:18px;letter-spacing:-.01em}
.actor-card p{color:#c9c8ec;font-size:15px;margin:12px 0 14px;line-height:1.55}
.actor-card .ac-links{display:flex;gap:18px;flex-wrap:wrap}
.actor-card{position:relative}
.actor-card .ac-bar{position:absolute;right:20px;top:20px;display:flex;gap:6px}
.actor-card .ac-top{padding-right:112px}
@media (max-width:600px){.actor-card .ac-bar{display:none}.actor-card .ac-top{padding-right:0}}
.actor-card .ac-bar i{width:22px;height:4px;border-radius:4px;background:rgba(255,255,255,.14);overflow:hidden;position:relative}
.actor-card .ac-bar i.on::after{content:"";position:absolute;inset:0;background:var(--grad);transform-origin:left;animation:acfill var(--acdur,3.6s) linear forwards}
.actor-card .ac-bar i.done{background:rgba(139,132,255,.75)}
@keyframes acfill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.hub2-wrap{position:relative}
.hub2{position:relative;width:100%;max-width:600px;margin-left:auto;aspect-ratio:1;container-type:inline-size}
.hub2-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.hub2-pulse{transform-origin:300px 300px;animation:hpulse 3.2s ease-out infinite;stroke-width:2;opacity:0}
.hub2-pulse.p2{animation-delay:1.6s}
@keyframes hpulse{0%{transform:scale(1);opacity:.7}100%{transform:scale(2.3);opacity:0}}
.hub2-node{position:absolute;transform:translate(-50%,-50%);width:27cqw;display:flex;flex-direction:column;align-items:center;gap:1cqw;padding:2.2cqw 1.6cqw 2cqw;border-radius:3.6cqw;text-align:center;background:rgba(17,15,46,.82);border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(10px);color:#fff;transition:transform .35s,border-color .35s,box-shadow .35s,background .35s}
.hub2-node{cursor:pointer}
.hub2-node:hover{border-color:rgba(255,255,255,.3)}
.hub2-node .ic{width:7.6cqw;height:7.6cqw;border-radius:2.4cqw;display:grid;place-items:center;color:#fff}
.hub2-node .ic svg{width:4.2cqw;height:4.2cqw}
.hub2-node b{font-size:max(12px,2.9cqw);letter-spacing:-.01em;line-height:1.15}
.hub2-node small{font-size:max(10px,2.15cqw);color:#a3a3c9;font-weight:700;line-height:1.25}
.hub2-node.on{transform:translate(-50%,-50%) scale(1.08);background:rgba(36,32,92,.92);border-color:rgba(139,132,255,.9);box-shadow:0 0 0 6px rgba(81,73,215,.18),0 20px 50px -14px rgba(81,73,215,.7)}
.hub2-packet{position:absolute;z-index:3;left:0;top:0;transform:translate(-50%,-50%);display:flex;align-items:center;gap:7px;height:30px;padding:0 12px 0 8px;border-radius:999px;background:#fff;color:var(--ink);font-size:12.5px;font-weight:800;white-space:nowrap;box-shadow:0 10px 30px -8px rgba(0,0,0,.6);pointer-events:none;opacity:0;transition:opacity .3s}
.hub2-packet .dot{width:10px;height:10px;border-radius:50%;background:var(--grad)}
.prod-pick{position:relative;z-index:2;display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:64px}
.prod-card{position:relative;display:flex;flex-direction:column;gap:10px;padding:20px;border-radius:20px;text-align:left;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.1);transition:transform .25s,background .25s,border-color .25s}
.prod-card:hover{transform:translateY(-4px);background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.22)}
.prod-card .ic{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;color:#fff}
.prod-card .ic svg{width:20px;height:20px}
.prod-card b{color:#fff;font-size:16px;letter-spacing:-.01em}
.prod-card small{color:var(--nmuted);font-size:13.5px;line-height:1.45}
.prod-card .go{margin-top:auto;padding-top:4px;display:flex;align-items:center;gap:6px;color:var(--sky);font-size:13.5px;font-weight:700}
.prod-card .go svg{width:14px;height:14px;transition:transform .2s}
.prod-card:hover .go svg{transform:translateX(3px)}
.prod-card .who{font-size:10.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.45)}
@media (max-width:1020px){.hero-grid{grid-template-columns:1fr;gap:28px}.hub2{margin:0 auto;max-width:560px}.actor-card{max-width:none}}
@media (max-width:980px){.prod-pick{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.prod-pick{grid-template-columns:1fr}.home-hero{padding-top:112px}}
.logos-sec{padding-top:72px}
.ops-win{max-width:1180px;margin:0 auto}

.video-sec{padding-top:24px}
/* --- tabs de demos --- */
.showcase .feature-tabs button .ic{width:22px;height:22px;border-radius:7px;display:grid;place-items:center;color:#fff}
.showcase .feature-tabs button .ic svg{width:13px;height:13px}
.demo-foot{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-top:22px}
.demo-foot p{color:var(--muted);max-width:720px}

/* --- cámaras --- */
.cams{position:relative;overflow:hidden;border-radius:var(--r-xl);min-height:520px;display:flex;align-items:flex-end;background:#05040f url(/assets/img/flota/recolector-calle.webp) center/cover}
.cams::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,5,26,.95) 0%,rgba(6,5,26,.75) 45%,rgba(6,5,26,.1) 100%)}
.cams-in{position:relative;padding:56px;max-width:640px}
.cams-in .h-2{color:#fff;margin:14px 0 14px}
.cams-in p{color:#c9c8ec;font-size:17px}
.cam-hw{display:flex;gap:10px;margin:26px 0 30px;flex-wrap:wrap}
.cam-hw span{display:flex;align-items:center;gap:8px;height:34px;padding:0 12px 0 6px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);color:#fff;font-size:13px;font-weight:700}
.cam-hw img{width:24px;height:24px;object-fit:contain;background:#fff;border-radius:50%;padding:2px}
.cam-box{position:absolute;right:56px;top:56px;width:250px;padding:14px;border-radius:16px;background:rgba(15,13,43,.82);border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(10px);color:#fff}
.cam-box .tag{margin-bottom:8px}
@media (max-width:860px){.cam-box{display:none}.cams-in{padding:40px 24px}}

/* --- diferenciadores --- */
.diff .card{padding:30px}
.diff .num-k{font-family:var(--mono);font-size:13px;color:var(--violet);font-weight:500}

/* --- casos --- */
.case{display:flex;flex-direction:column;border-radius:var(--r-lg);overflow:hidden;background:#fff;border:1px solid var(--line);transition:transform .25s,box-shadow .25s}
.case:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.case-top{position:relative;padding:28px 28px 24px;color:#fff;min-height:200px;display:flex;flex-direction:column;justify-content:space-between}
.case-top .tag{background:rgba(255,255,255,.16);color:#fff;align-self:flex-start}
.case-top h3{color:#fff;font-size:22px;margin-top:14px}
.case-big{display:flex;gap:28px;margin-top:18px}
.case-big b{display:block;font-size:34px;font-weight:800;letter-spacing:-.04em;line-height:1}
.case-big span{font-size:12.5px;opacity:.8}
.case-body{padding:24px 28px 28px;display:flex;flex-direction:column;gap:14px;flex:1}
.case-body p{color:var(--muted);font-size:15px}
.case-body ul{list-style:none;display:grid;gap:8px}
.case-body li{display:flex;justify-content:space-between;gap:12px;font-size:14px;padding-bottom:8px;border-bottom:1px dashed var(--line)}
.case-body li b{color:var(--ink)}
.case-body .link-arrow{margin-top:auto}

/* --- historia --- */
.story{display:grid;grid-template-columns:.9fr 1.1fr;gap:64px;align-items:start}
@media (max-width:980px){.story{grid-template-columns:1fr}}
.awards{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.award{position:relative;border-radius:18px;overflow:hidden;background:#fff;border:1px solid var(--line);display:flex;flex-direction:column}
.award img{width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--mist)}
.award.wide{grid-column:span 2;flex-direction:row}
.award.wide img{width:52%;aspect-ratio:auto}
.award div{padding:14px 16px}
.award b{display:block;font-size:14.5px;color:var(--ink);line-height:1.3}
.award small{display:block;color:var(--muted);font-size:12.5px;margin-top:3px}
.award .yr{position:absolute;left:12px;top:12px;height:24px;padding:0 9px;border-radius:7px;background:rgba(13,11,43,.82);color:#fff;font-size:11.5px;font-weight:800;display:flex;align-items:center;gap:5px}
.award .yr svg{width:12px;height:12px;color:#f6c344}
@media (max-width:520px){.awards{grid-template-columns:1fr}.award.wide{grid-column:auto;flex-direction:column}.award.wide img{width:100%;aspect-ratio:4/3}}
.timeline{list-style:none;position:relative;margin-top:32px;display:grid;gap:22px}
.timeline::before{content:"";position:absolute;left:9px;top:6px;bottom:6px;width:2px;background:linear-gradient(var(--violet),var(--cyan))}
.timeline li{position:relative;padding-left:36px}
.timeline li::before{content:"";position:absolute;left:3px;top:5px;width:14px;height:14px;border-radius:50%;background:#fff;border:3px solid var(--violet)}
.timeline b{display:block;color:var(--ink);font-size:16px}
.timeline span{color:var(--muted);font-size:14.5px}

/* --- impacto --- */
.impact{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.impact .card{padding:26px}
.impact b{display:block;font-size:clamp(30px,3.4vw,42px);font-weight:800;letter-spacing:-.04em;line-height:1;color:#fff}
.impact span{display:block;margin-top:10px;color:var(--nmuted);font-size:14px}
@media (max-width:860px){.impact{grid-template-columns:1fr 1fr}}
.logo-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:28px 24px;display:grid;gap:22px;justify-items:center}
.logo-card .lbl{font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--faint)}

/* --- tarjetas "más" (casos e historia) --- */
.more-grid{gap:20px}
.more-card{display:flex;flex-direction:column;gap:14px;padding:34px;border-radius:var(--r-xl);background:#fff;border:1px solid var(--line);transition:transform .25s,box-shadow .25s}
.more-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.more-card p{color:var(--muted);font-size:15.5px}
.more-card.dark{background:var(--night);border-color:var(--nline)}
.more-card.dark p{color:var(--nmuted)}
.more-card .link-arrow{margin-top:auto}
.more-nums{display:flex;gap:28px;flex-wrap:wrap;margin:6px 0}
.more-nums b{display:block;font-size:30px;font-weight:800;letter-spacing:-.04em;color:var(--ink);line-height:1}
.more-nums span{font-size:12.5px;color:var(--muted)}
.more-awards{display:flex;gap:10px;margin:6px 0}
.more-awards img{width:72px;height:72px;object-fit:cover;border-radius:14px;border:1px solid var(--nline)}
.page-hero{padding:150px 0 70px}
.page-hero .h-1{margin:16px 0 14px}

