/* Página de servicio: productos
   Generado por _trabajo/construir-css.js — no editar a mano.
   Todo el CSS cuelga de .ksrv para no tocar el header/footer de Elementor. */
.ksrv{--orange:#FF5B00;
    --orange-dark:#e64f00;
    --peach:#FFF1E6;
    --black:#0B0C0E;
    --carbon:#21272A;
    --card-dark:#21272A;
    --gray:#6B7280;
    --gray-light:#9CA3AF;
    --bg:#F5F6F8;
    --bg2:#F1F2F5;
    --border:#E7E8EC;
    --plomo:#6B7280;
    --plomo-light:#9CA3AF;
    --mono:'KsrvSans',-apple-system,BlinkMacSystemFont,sans-serif;}
.ksrv svg{display:block;}
.ksrv .hero{position:relative; background:var(--carbon); color:#fff; padding:80px 0 56px; overflow:hidden; text-align:center;}
.ksrv .hero .dots{top:-40px; right:-60px; width:340px; height:340px; color:rgba(255,91,0,.35);
    -webkit-mask-image:radial-gradient(circle,#000 0%,transparent 70%); mask-image:radial-gradient(circle,#000 0%,transparent 70%);}
.ksrv .hero .dots.left{left:-70px; right:auto; top:auto; bottom:-50px; width:220px; height:220px;}
.ksrv .eyebrow{display:inline-flex; align-items:center; gap:8px; font-family:var(--mono); font-size:12px; font-weight:700; letter-spacing:.08em; color:var(--orange); text-transform:uppercase; margin-bottom:20px;}
.ksrv .eyebrow::before{content:''; width:18px; height:1.5px; background:var(--orange);}
.ksrv h1{font-size:52px; font-weight:800; letter-spacing:-.02em; line-height:1.06; margin-bottom:10px; color:#fff;}
.ksrv h1 .accent{color:var(--orange);}
.ksrv .tagline{font-size:19px; font-weight:700; color:var(--orange); margin-bottom:18px; letter-spacing:-.005em;}
.ksrv .hero p.lead{font-size:16.5px; color:#B8BAC2; max-width:560px; margin:0 auto 30px;}
.ksrv .hero-ctas{display:flex; gap:14px; justify-content:center; margin-bottom:46px;}
.ksrv .finder{position:relative; z-index:2; margin-bottom:52px;}
.ksrv .finder-label{font-family:var(--mono); font-size:11.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--gray-light); margin-bottom:16px;}
.ksrv .finder-chips{display:flex; gap:12px; justify-content:center; flex-wrap:wrap;}
.ksrv .finder-chip{background:rgba(255,255,255,.05); border:1.5px solid rgba(255,255,255,.14); border-radius:999px; padding:12px 20px;
    font-size:13.5px; font-weight:600; color:#fff; cursor:pointer; display:inline-flex;
    align-items:center; gap:8px; transition:border-color .2s ease, background .2s ease, transform .15s ease; font-family:inherit;}
.ksrv .finder-chip:hover{border-color:var(--orange); background:rgba(255,91,0,.12);}
.ksrv .finder-chip:active{transform:scale(.97);}
.ksrv .finder-chip svg{width:16px; height:16px; color:var(--orange); flex-shrink:0;}
.ksrv .mini-stats{position:relative; z-index:2; display:grid; grid-template-columns:repeat(4,1fr); gap:16px; border-top:none; padding-top:0; max-width:none; margin:40px auto 0; width:100%;}
.ksrv .mini-stats .m{position:relative; padding:16px 14px; background:rgba(255,255,255,.04); border:1px solid #2A2D33; border-radius:14px; cursor:default; font-family:inherit; transition:border-color .2s ease, background .2s ease, transform .15s ease;}
.ksrv .mini-stats .m:hover{border-color:rgba(255,91,0,.5); background:rgba(255,91,0,.06); transform:translateY(-2px);}
.ksrv .mini-stats .m::after{display:none;}
.ksrv .ring-row{display:flex; align-items:center; gap:9px; justify-content:center;}
.ksrv .stat-icon-badge{width:34px; height:34px; border-radius:50%; background:var(--orange); border:1px solid var(--orange); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.ksrv .stat-icon-badge svg{width:16px; height:16px; color:#fff !important;}
.ksrv .mini-stats .num{font-family:var(--mono); font-size:22px; font-weight:700; color:#fff;}
.ksrv .mini-stats .label{font-size:11.5px; color:var(--gray-light); margin-top:4px; line-height:1.3;}
.ksrv .stack-image-wrap{position:relative; width:100%; max-width:1928px; margin:0 auto; min-width:0; transform:translateY(0%); overflow:hidden;}
.ksrv .stack-image-wrap .stack-image{width:100%; height:auto; display:block; transition:transform .5s cubic-bezier(.25,.8,.25,1);}
.ksrv .stack-image-wrap:hover .stack-image{transform:scale(1.08);}
.ksrv .radar-wrap{position:relative; width:100%; aspect-ratio:1/1; max-width:420px; margin:0 auto;}
.ksrv .radar-ring{position:absolute; border:1px solid rgba(255,91,0,.22); border-radius:50%; top:50%; left:50%; transform:translate(-50%,-50%);}
.ksrv .radar-ring.r1{width:100%; height:100%;}
.ksrv .radar-ring.r2{width:70%; height:70%;}
.ksrv .radar-ring.r3{width:40%; height:40%;}
.ksrv .radar-sweep{position:absolute; inset:0; border-radius:50%; overflow:hidden; animation:ks-spin 6s linear infinite;}
.ksrv .radar-sweep::before{content:''; position:absolute; inset:0; background:conic-gradient(from 0deg, rgba(255,91,0,.55), transparent 32%);}
.ksrv .radar-core{position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:74px; height:74px; border-radius:50%; background:var(--orange); display:flex; align-items:center; justify-content:center; box-shadow:0 0 0 10px rgba(255,91,0,.12), 0 0 0 20px rgba(255,91,0,.07); z-index:3;}
.ksrv .radar-core svg{width:34px; height:34px; color:#fff;}
.ksrv .radar-node{position:absolute; width:84px; display:flex; flex-direction:column; align-items:center; gap:6px; z-index:3;}
.ksrv .radar-node .nic{width:44px; height:44px; border-radius:12px; background:var(--carbon); border:1px solid #34383e; display:flex; align-items:center; justify-content:center;}
.ksrv .radar-node .nic svg{width:20px;height:20px;}
.ksrv .radar-node .nlabel{font-size:11px; font-weight:700; color:#D7D8DD; text-align:center; line-height:1.2;}
.ksrv .radar-node.n-top{top:-4%; left:50%; transform:translateX(-50%);}
.ksrv .radar-node.n-right{top:50%; right:-10%; transform:translateY(-50%);}
.ksrv .radar-node.n-left{top:50%; left:-10%; transform:translateY(-50%);}
.ksrv .radar-node.n-bottom{bottom:2%; left:50%; transform:translateX(-50%);}
.ksrv .hero .wrap{position:relative; z-index:2;}
.ksrv .hero-grid{display:grid; grid-template-columns:1.05fr .95fr; gap:50px; align-items:center; text-align:left;}
.ksrv .hero-grid > *{min-width:0;}
.ksrv .hero-grid .hero p.lead{margin:0 0 30px;}
.ksrv .hero-grid .hero-ctas{justify-content:flex-start;}
.ksrv .hero-grid .finder-chips{justify-content:flex-start;}
.ksrv .hero-grid .mini-stats{margin:0; max-width:none;}
.ksrv .mini-stats .num{font-variant-numeric:tabular-nums;}
.ksrv .eyebrow-left{justify-content:flex-start;}
.ksrv .section{padding:88px 0; position:relative;}
.ksrv .kicker{display:inline-flex; align-items:center; gap:8px; font-family:var(--mono); font-size:12px; font-weight:700; letter-spacing:.08em; color:var(--orange); text-transform:uppercase; margin-bottom:16px;}
.ksrv .kicker::before{content:''; width:18px; height:1.5px; background:var(--orange);}
.ksrv .section-sub{color:var(--gray); font-size:16px; max-width:640px; margin-bottom:34px;}
.ksrv .prod-grid{display:grid; grid-template-columns:.85fr 1.15fr; gap:48px; align-items:start;}
.ksrv .prod-icon-badge{width:52px; height:52px; border-radius:14px; background:var(--orange); border:1px solid var(--orange); display:flex; align-items:center; justify-content:center; margin-bottom:18px;}
.ksrv .prod-icon-badge svg{width:24px; height:24px; color:#fff !important;}
.ksrv .prod-desc{font-size:15.5px; color:var(--gray); line-height:1.6; margin-bottom:26px; max-width:440px;}
.ksrv .prod-stats{display:flex; gap:26px; margin-bottom:28px; flex-wrap:wrap;}
.ksrv .prod-stat .num{font-family:var(--mono); font-size:23px; font-weight:700; color:var(--black);}
.ksrv .prod-stat .lbl{font-size:11.5px; color:var(--gray); margin-top:5px;}
.ksrv .prod-stat .ring-row{justify-content:flex-start;}
.ksrv .flip-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:14px;}
.ksrv .flip-card{position:relative; height:196px; border-radius:16px; overflow:hidden; cursor:pointer;
    background:var(--card-dark); border-top:3px solid var(--orange);}
.ksrv .flip-face{position:absolute; inset:0; padding:20px 20px; display:flex; flex-direction:column;
    transition:opacity .25s ease; align-items:flex-start;}
.ksrv .flip-front{opacity:1;}
.ksrv .flip-front .code{font-family:var(--mono); font-size:11px; font-weight:700; color:var(--orange); letter-spacing:.06em; margin-bottom:8px;}
.ksrv .flip-front .ic{width:36px; height:36px; border-radius:10px; background:rgba(255,255,255,.06); display:flex; align-items:center; justify-content:center; margin-bottom:10px;}
.ksrv .flip-front .ic svg{width:18px; height:18px; color:var(--orange);}
.ksrv .flip-front h4{color:#fff; font-size:16px; font-weight:800; margin-bottom:6px;}
.ksrv .flip-front p{color:#9A9DA5; font-size:12.5px; line-height:1.4;}
.ksrv .flip-front .tap-hint{position:absolute; bottom:14px; left:20px; font-size:10.5px; color:#6C6F78; font-family:var(--mono);}
.ksrv .flip-back{opacity:0; background:var(--orange); justify-content:center; pointer-events:none;}
.ksrv .flip-back h4{color:#fff; font-size:15px; font-weight:800; margin-bottom:10px;}
.ksrv .flip-back ul{list-style:none;}
.ksrv .flip-back li{display:flex; gap:8px; align-items:flex-start; color:#fff; font-size:12px; margin-bottom:7px; font-weight:500; line-height:1.3;}
.ksrv .flip-back li svg{flex-shrink:0; width:13px; height:13px; margin-top:1px;}
.ksrv .flip-card:hover .flip-front, .ksrv .flip-card.active .flip-front{opacity:0;}
.ksrv .flip-card:hover .flip-back, .ksrv .flip-card.active .flip-back{opacity:1; pointer-events:auto;}
.ksrv .flip-front .ic{position:relative;}
.ksrv .flip-front .ic::after{content:''; position:absolute; inset:-6px; border-radius:16px; border:1.5px solid rgba(255,91,0,.35); animation:ks-ringpulse 2.4s ease-out infinite;}
.ksrv .flip-card:nth-child(2) .ic::after{animation-delay:.5s;}
.ksrv .flip-card:nth-child(3) .ic::after{animation-delay:1s;}
.ksrv .flip-card:nth-child(4) .ic::after{animation-delay:1.5s;}
.ksrv .kaiman-console{position:relative; background:var(--carbon); border-radius:20px; overflow:hidden; color:#fff; box-shadow:0 24px 50px rgba(20,20,30,.16); height:100%;}
.ksrv .kconsole-bar{display:flex; align-items:center; gap:8px; padding:14px 20px; border-bottom:1px solid rgba(255,255,255,.08);}
.ksrv .kconsole-bar .tdot{width:10px; height:10px; border-radius:50%;}
.ksrv .kconsole-bar .tdot:nth-child(1){background:var(--orange);}
.ksrv .kconsole-bar .tdot:nth-child(2){background:var(--plomo-light);}
.ksrv .kconsole-bar .tdot:nth-child(3){background:var(--plomo);}
.ksrv .kconsole-bar .kc-title{margin-left:6px; font-family:var(--mono); font-size:11.5px; color:#8C8E96;}
.ksrv .kconsole-bar .kc-live{margin-left:auto; display:inline-flex; align-items:center; gap:6px; font-family:var(--mono); font-size:10px; font-weight:700; letter-spacing:.04em; color:var(--orange); background:rgba(255,91,0,.12); border:1px solid rgba(255,91,0,.32); padding:3px 9px; border-radius:20px; text-transform:uppercase;}
.ksrv .kconsole-bar .kc-live span{width:6px;height:6px;border-radius:50%;background:var(--orange); animation:ks-pulse 1.8s infinite;}
.ksrv .kconsole-body{padding:20px 24px 24px; font-family:var(--mono); font-size:13px; display:flex; flex-direction:column; gap:14px;}
.ksrv .kc-line{opacity:0; animation:ks-kcreveal .5s ease forwards;}
.ksrv .kc-line:nth-child(1){animation-delay:.2s;}
.ksrv .kc-line:nth-child(2){animation-delay:1.4s;}
.ksrv .kc-line:nth-child(3){animation-delay:2.6s;}
.ksrv .kc-line:nth-child(4){animation-delay:3.8s;}
.ksrv .kc-line:nth-child(5){animation-delay:5s;}
.ksrv .kc-line:nth-child(6){animation-delay:6.2s;}
.ksrv .kc-in{color:#D7D8DD;}
.ksrv .kc-in .prompt{color:var(--orange); font-weight:700; margin-right:8px;}
.ksrv .kc-out{color:#8C8E96; padding-left:20px;}
.ksrv .kc-out .arrow{color:var(--plomo-light); margin-right:8px;}
.ksrv .kc-out b{color:var(--orange); font-weight:700;}
.ksrv .kc-cursor{display:inline-block; width:7px; height:14px; background:var(--orange); margin-left:3px; vertical-align:middle; animation:ks-blink 1s step-end infinite;}
.ksrv .proc-chain-wrap{background:var(--carbon); border-radius:20px; padding:34px 30px; position:relative; overflow:hidden;}
.ksrv .proc-chain-wrap .dots{top:-30px; right:-30px; width:170px; height:170px; color:rgba(255,91,0,.3); -webkit-mask-image:radial-gradient(circle,#000 0%,transparent 70%); mask-image:radial-gradient(circle,#000 0%,transparent 70%);}
.ksrv .proc-label{font-family:var(--mono); font-size:11px; letter-spacing:.06em; color:var(--orange); text-transform:uppercase; margin-bottom:22px; position:relative; z-index:2;}
.ksrv .proc-chain{display:flex; align-items:flex-start; justify-content:space-between; position:relative; z-index:2; flex-wrap:wrap; gap:18px 0;}
.ksrv .proc-node{display:flex; flex-direction:column; align-items:center; gap:12px; width:130px; text-align:center;}
.ksrv .proc-node .pnic{width:52px; height:52px; border-radius:14px; background:var(--orange); border:1.5px solid var(--orange); display:flex; align-items:center; justify-content:center; position:relative; transition:transform .2s ease;}
.ksrv .proc-node:hover .pnic{transform:scale(1.08);}
.ksrv .proc-node .pnic::after{content:''; position:absolute; inset:-6px; border-radius:16px; border:1.5px solid rgba(255,91,0,.35); animation:ks-ringpulse 2.4s ease-out infinite;}
.ksrv .proc-node:nth-child(3) .pnic::after{animation-delay:.6s;}
.ksrv .proc-node:nth-child(5) .pnic::after{animation-delay:1.2s;}
.ksrv .proc-node:nth-child(7) .pnic::after{animation-delay:1.8s;}
.ksrv .proc-node .pnic svg{width:24px;height:24px; color:#fff !important;}
.ksrv .proc-node .plabel{font-size:13px; font-weight:800; color:#fff;}
.ksrv .proc-node .pdesc{font-size:11.5px; color:#9A9DA5; line-height:1.35;}
.ksrv .proc-link{flex:1; min-width:24px; height:2px; background:var(--orange); margin:26px -2px 0; position:relative; overflow:visible;}
.ksrv .proc-link::after{content:''; position:absolute; top:50%; left:0; width:6px; height:6px; border-radius:50%; background:#fff; box-shadow:0 0 6px 1px rgba(255,91,0,.8); transform:translateY(-50%); animation:ks-flow 1.8s linear infinite;}
.ksrv .proc-link:nth-of-type(4)::after{animation-delay:.45s;}
.ksrv .proc-link:nth-of-type(6)::after{animation-delay:.9s;}
.ksrv .kaiman-top-grid{display:grid; grid-template-columns:1fr 1fr; gap:28px; align-items:stretch; margin-bottom:28px;}
.ksrv .infra-hero{display:flex; align-items:center; justify-content:flex-start; gap:24px; min-height:0;}
.ksrv .infra-hero-text{padding:0; max-width:520px;}
.ksrv .infra-hero-img{width:53.98%; flex-shrink:0; transform:translateX(0%);}
.ksrv .infra-hero-img img{width:100%; height:auto; display:block; transition:transform .5s cubic-bezier(.25,.8,.25,1);}
.ksrv .infra-hero-img:hover img{transform:scale(1.08);}
.ksrv .tech-tower{display:flex; flex-direction:column; align-items:stretch;}
.ksrv .tech-tower.compact .tech-soc{padding:18px 24px;}
.ksrv .tech-tower.compact .tech-soc .cat{font-size:15px;}
.ksrv .tech-tower.compact .tech-soc .desc{font-size:12.5px; margin:4px 0 8px;}
.ksrv .tech-tower.compact .tech-connectors{height:34px; margin:-2px 0;}
.ksrv .tech-tower.compact .tech-base{gap:14px;}
.ksrv .tech-tower.compact .tech-card{padding:16px 16px;}
.ksrv .tech-tower.compact .tech-card .ic{width:32px; height:32px; margin-bottom:9px;}
.ksrv .tech-tower.compact .tech-card .ic svg{width:15px; height:15px;}
.ksrv .tech-tower.compact .tech-card .cat{font-size:13px; margin-bottom:8px;}
.ksrv .tech-soc{position:relative; background:var(--carbon); color:#fff; border-radius:20px; padding:26px 30px; display:flex; align-items:center; gap:20px; overflow:hidden; z-index:2;}
.ksrv .tech-soc .dots{top:-30px; right:-20px; width:150px; height:150px; color:rgba(255,91,0,.3); -webkit-mask-image:radial-gradient(circle,#000 0%,transparent 70%); mask-image:radial-gradient(circle,#000 0%,transparent 70%);}
.ksrv .tech-soc .ic{width:52px; height:52px; border-radius:14px; background:var(--orange); border:1px solid var(--orange); display:flex; align-items:center; justify-content:center; flex-shrink:0; position:relative; z-index:2;}
.ksrv .tech-soc .ic svg{width:24px;height:24px; color:#fff !important;}
.ksrv .tech-soc .soc-body{position:relative; z-index:2; flex:1;}
.ksrv .tech-soc .cat{font-weight:800; font-size:17px; display:flex; align-items:center; gap:10px; flex-wrap:wrap;}
.ksrv .tech-soc .cat .live{display:inline-flex; align-items:center; gap:5px; font-family:var(--mono); font-size:10px; font-weight:700; letter-spacing:.04em; color:var(--orange); background:rgba(255,91,0,.12); border:1px solid rgba(255,91,0,.3); padding:3px 8px; border-radius:20px;}
.ksrv .tech-soc .cat .live span{width:6px;height:6px;border-radius:50%;background:var(--orange); animation:ks-pulse 1.8s infinite;}
.ksrv .tech-soc .desc{font-size:13.5px; color:#B8BAC2; margin:6px 0 10px;}
.ksrv .tech-connectors{position:relative; height:56px; width:100%; z-index:1; margin:-2px 0;}
.ksrv .tech-connectors svg{width:100%; height:100%; display:block; overflow:visible;}
.ksrv .tech-base{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; position:relative; z-index:2;}
.ksrv .tech-card{background:rgba(255,255,255,.94); backdrop-filter:blur(6px); border-radius:16px; padding:22px 20px; text-align:left; border:1px solid var(--border); border-top:3px solid transparent; transition:border-color .2s ease, transform .2s ease, box-shadow .2s ease;}
.ksrv .tech-card:hover{border-top-color:var(--orange); transform:translateY(-3px); box-shadow:0 14px 28px rgba(20,20,30,.08);}
.ksrv .tech-card .ic{width:40px; height:40px; border-radius:11px; background:var(--carbon); display:flex; align-items:center; justify-content:center; margin-bottom:14px;}
.ksrv .tech-card .ic svg{width:19px;height:19px;}
.ksrv .tech-card .cat{font-weight:800; font-size:14.5px; margin-bottom:12px;}
.ksrv .tech-chips{display:flex; flex-wrap:wrap; gap:6px;}
.ksrv .tech-chip{font-size:11px; font-weight:600; color:var(--carbon); background:var(--bg2); border:1px solid var(--border); padding:4px 9px; border-radius:20px;}
.ksrv .ring-stats{display:flex; gap:40px; flex-wrap:wrap; align-items:center; margin:34px 0 8px;}
.ksrv .ring-progress-lg{position:relative; width:96px; height:96px; flex-shrink:0;}
.ksrv .ring-progress-lg svg{width:100%; height:100%; transform:rotate(-90deg);}
.ksrv .ring-track-lg{fill:none; stroke:var(--bg2); stroke-width:8;}
.ksrv .ring-fill-lg{fill:none; stroke:var(--orange); stroke-width:8; stroke-linecap:round; stroke-dasharray:var(--circ); stroke-dashoffset:var(--circ); transition:stroke-dashoffset 1.8s cubic-bezier(.4,0,.2,1);}
.ksrv .ring-progress-lg.in-view .ring-fill-lg{stroke-dashoffset:var(--offset);}
.ksrv .ring-progress-lg .rlabel{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-family:var(--mono); font-weight:700; font-size:17px; color:var(--black);}
.ksrv .ring-stat-item{display:flex; align-items:center; gap:16px;}
.ksrv .ring-stat-item .rtxt{font-size:13px; font-weight:700; color:var(--black); max-width:120px; line-height:1.3;}
.ksrv .ring-stat-item .rtxt span{display:block; font-weight:500; color:var(--gray); font-size:11.5px; margin-top:2px;}
.ksrv .ring-count-item{display:flex; align-items:center; gap:14px;}
.ksrv .ring-count-item .rcic{width:56px; height:56px; border-radius:50%; background:var(--orange); border:1px solid var(--orange); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.ksrv .ring-count-item .rcic svg{width:24px;height:24px; color:#fff !important;}
.ksrv .ring-count-item .rcnum{font-family:var(--mono); font-weight:700; font-size:20px; color:var(--black);}
.ksrv .ring-count-item .rclbl{font-size:11.5px; color:var(--gray); margin-top:2px;}
.ksrv .cert-showcase{width:100%;}
.ksrv .cert-card{position:relative; background:#fff; border-radius:18px; padding:4px; box-shadow:0 24px 55px rgba(20,20,30,.14); transform:rotate(-.6deg); transition:transform .35s ease, box-shadow .35s ease;}
.ksrv .cert-card:hover{transform:rotate(0deg) translateY(-3px); box-shadow:0 30px 65px rgba(20,20,30,.18);}
.ksrv .cert-inner{position:relative; border:2px solid var(--orange); border-radius:14px; padding:32px 30px 24px; text-align:center; background:
      radial-gradient(circle at 100% 0%, rgba(255,91,0,.05), transparent 55%),
      radial-gradient(circle at 0% 100%, rgba(255,91,0,.05), transparent 55%), #fff;}
.ksrv .cert-corner{position:absolute; width:20px; height:20px; border:2px solid var(--orange);}
.ksrv .cert-corner.tl{top:9px; left:9px; border-right:none; border-bottom:none;}
.ksrv .cert-corner.tr{top:9px; right:9px; border-left:none; border-bottom:none;}
.ksrv .cert-corner.bl{bottom:9px; left:9px; border-right:none; border-top:none;}
.ksrv .cert-corner.br{bottom:9px; right:9px; border-left:none; border-top:none;}
.ksrv .cert-brandline{font-family:var(--mono); font-size:10px; letter-spacing:.22em; text-transform:uppercase; color:var(--gray); margin-bottom:22px;}
.ksrv .cert-brandline b{color:var(--orange);}
.ksrv .cert-seal-wrap{position:relative; width:74px; margin:0 auto 18px; height:78px;}
.ksrv .cert-ribbon-tail{position:absolute; width:15px; height:34px; background:var(--orange-dark); top:40px; z-index:1; clip-path:polygon(0 0,100% 0,100% 82%,50% 100%,0 82%);}
.ksrv .cert-ribbon-tail.left{left:16px; transform:rotate(-6deg);}
.ksrv .cert-ribbon-tail.right{right:16px; transform:rotate(6deg);}
.ksrv .cert-seal{width:66px; height:66px; border-radius:50%; background:var(--orange); border:2.5px solid var(--orange); display:flex; align-items:center; justify-content:center; position:relative; z-index:3; margin:0 auto;}
.ksrv .cert-seal::after{content:''; position:absolute; inset:-6px; border-radius:50%; border:1.5px solid rgba(255,91,0,.35); animation:ks-ringpulse 2.4s ease-out infinite;}
.ksrv .cert-seal svg{width:28px;height:28px; color:#fff !important;}
.ksrv .cert-heading{font-family:var(--mono); font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--gray); margin-bottom:6px;}
.ksrv .cert-heading-main{font-size:27px; font-weight:800; letter-spacing:.01em; color:var(--black); margin-bottom:20px;}
.ksrv .cert-certifies{font-size:12.5px; color:var(--gray); letter-spacing:.02em; margin-bottom:12px;}
.ksrv .cert-name{font-family:'KsrvSans',-apple-system,BlinkMacSystemFont,sans-serif; font-size:23px; font-weight:700; color:var(--orange); display:inline-block; padding:0 4px 10px; border-bottom:1.5px solid var(--border); min-width:280px; margin-bottom:16px;}
.ksrv .cert-desc{font-size:13px; color:var(--gray); line-height:1.6; max-width:420px; margin:0 auto 26px;}
.ksrv .cert-desc b{color:var(--black);}
.ksrv .cert-footer-row{display:flex; justify-content:space-between; align-items:flex-end; padding-top:18px; border-top:1px dashed var(--border);}
.ksrv .cert-foot-col{text-align:left;}
.ksrv .cert-foot-col.right{text-align:right;}
.ksrv .cert-foot-label{font-family:var(--mono); font-size:9px; letter-spacing:.08em; text-transform:uppercase; color:var(--gray-light); margin-top:5px;}
.ksrv .cert-sig-line{width:120px; border-top:1.3px solid var(--black); margin-bottom:5px;}
.ksrv .cert-foot-col.right .cert-sig-line{margin-left:auto;}
.ksrv .cert-id-val{font-family:var(--mono); font-size:11px; font-weight:700; color:var(--black);}
.ksrv .cert-check{display:inline-flex; align-items:center; gap:5px; font-family:var(--mono); font-size:10px; font-weight:700; color:var(--orange); margin-top:5px;}
.ksrv .cert-check svg{width:12px;height:12px;}
.ksrv .path-wrap{background:var(--carbon); border-radius:20px; padding:34px 34px 26px; position:relative; overflow:hidden; margin-top:36px;}
.ksrv .path-wrap .dots{top:-30px; right:-30px; width:170px; height:170px; color:rgba(255,91,0,.3); -webkit-mask-image:radial-gradient(circle,#000 0%,transparent 70%); mask-image:radial-gradient(circle,#000 0%,transparent 70%);}
.ksrv .path-label{font-family:var(--mono); font-size:11px; letter-spacing:.06em; color:var(--orange); text-transform:uppercase; margin-bottom:30px; position:relative; z-index:2;}
.ksrv .path-track{position:relative; z-index:2; display:flex; justify-content:space-between; align-items:flex-start;}
.ksrv .path-line{position:absolute; top:23px; left:24px; right:24px; height:3px; background:#33383E; border-radius:3px; z-index:1;}
.ksrv .path-line-fill{position:absolute; top:0; left:0; height:100%; background:var(--orange); border-radius:3px; width:0%; transition:width 2.6s cubic-bezier(.4,0,.2,1);}
.ksrv .path-wrap.in-view .path-line-fill{width:100%;}
.ksrv .path-step{position:relative; z-index:2; display:flex; flex-direction:column; align-items:center; gap:12px; width:110px; text-align:center;}
.ksrv .path-step .psic{width:46px; height:46px; border-radius:50%; background:var(--carbon); border:2px solid #33383E; display:flex; align-items:center; justify-content:center; opacity:0; transform:scale(.5); transition:opacity .45s ease, transform .45s cubic-bezier(.34,1.56,.64,1), border-color .3s ease, background .3s ease;}
.ksrv .path-step.active .psic{opacity:1; transform:scale(1);}
.ksrv .path-step.active .psic{background:var(--orange); border-color:var(--orange);}
.ksrv .path-step .psic svg{width:20px;height:20px; color:#8C8E96;}
.ksrv .path-step.active .psic svg{color:#fff;}
.ksrv .path-step .plabel{font-size:12.5px; font-weight:700; color:#fff; opacity:0; transform:translateY(6px); transition:opacity .4s ease, transform .4s ease;}
.ksrv .path-step.active .plabel{opacity:1; transform:translateY(0);}
.ksrv .path-step .psub{font-family:var(--mono); font-size:10px; color:#8C8E96; opacity:0; transition:opacity .4s ease;}
.ksrv .path-step.active .psub{opacity:1;}
.ksrv .prod-card{transition:box-shadow .4s ease; border-radius:24px;}
.ksrv .prod-card.highlight{box-shadow:0 0 0 3px var(--orange), 0 24px 50px rgba(255,91,0,.16);}
.ksrv .prod-card.highlight .prod-inner{padding:36px; background:#fff; border-radius:24px;}
.ksrv .prod-inner{padding:0;}
.ksrv .cta-final{position:relative; text-align:center; padding:100px 0 90px; background:var(--carbon); color:#fff; overflow-x:hidden;}
.ksrv .cta-final .dots{top:-50px; right:-60px; width:280px; height:280px; color:rgba(255,91,0,.28); -webkit-mask-image:radial-gradient(circle,#000 0%,transparent 70%); mask-image:radial-gradient(circle,#000 0%,transparent 70%);}
.ksrv .cta-final-grid{display:grid; grid-template-columns:1.7fr .547fr; gap:44px; align-items:stretch; text-align:left; margin-bottom:52px;}
.ksrv .cta-final-img{margin-left:-166px;}
.ksrv .cta-final-img img{width:100%; height:auto; display:block; transition:transform .5s cubic-bezier(.25,.8,.25,1);}
.ksrv .cta-final-img:hover img{transform:scale(1.08);}
.ksrv .cta-final h2{font-size:40px; font-weight:800; max-width:640px; letter-spacing:-.015em; line-height:1.12; color:#fff;}
.ksrv .cta-final h2 .accent{color:var(--orange);}
.ksrv .cta-final p{color:#B8BAC2; font-size:16px; margin-bottom:34px; max-width:460px; margin-left:auto; margin-right:auto;}
.ksrv .cta-final-text{background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.1); border-radius:22px; padding:38px 40px; backdrop-filter:blur(6px); width:80%;}
.ksrv .cta-final-text .cta-alert{margin-bottom:22px;}
.ksrv .cta-final-text h2{margin:0 0 16px; max-width:none;}
.ksrv .cta-final-text p{margin:0 0 30px; max-width:420px; margin-left:0 !important; margin-right:0 !important;}
.ksrv .cta-final .btns{display:flex; gap:18px; justify-content:center; align-items:center; flex-wrap:wrap; margin-bottom:52px;}
.ksrv .cta-final-text .btns{justify-content:flex-start !important; margin-bottom:0;}
.ksrv .cta-final .btns .link-secondary{display:inline-flex; align-items:center; gap:6px; color:#D7D8DD; font-weight:600; font-size:14.5px; padding:12px 6px;}
.ksrv .cta-final .btns .link-secondary svg{width:14px;height:14px; color:var(--orange);}
.ksrv .cta-trust{display:flex; justify-content:center; gap:36px; border-top:1px solid rgba(255,255,255,.1); padding-top:30px; max-width:600px; margin:0 auto; flex-wrap:wrap;}
.ksrv .cta-trust .t{flex:1; min-width:140px; padding:0; display:flex; flex-direction:column; align-items:center; transition:transform .2s ease;}
.ksrv .cta-trust .t .t-ic{width:54px; height:54px; border-radius:50%; background:var(--orange); border:1px solid var(--orange); display:flex; align-items:center; justify-content:center; margin-bottom:10px;}
.ksrv .cta-trust .t .t-ic svg{width:25px; height:25px; color:#fff !important;}
.ksrv .cta-trust .t .tnum{font-family:var(--mono); font-weight:700; font-size:19px; color:#fff;}
.ksrv .cta-trust .t .tlbl{font-size:11.5px; color:#8C8E96; margin-top:3px;}
.ksrv .cta-final-text .cta-trust{justify-content:flex-start !important; margin:28px 0 0 !important; max-width:none; gap:32px; border-top:none; padding-top:0;}
.ksrv .cta-final-text .cta-trust .t{align-items:flex-start !important; flex:0 0 auto; min-width:0;}
.ksrv .footer-logo{font-size:20px; font-weight:800; margin-bottom:18px;}
.ksrv .foot-bottom{border-top:1px solid #232326; margin-top:50px; padding-top:22px; font-size:13px; color:#7C7E86; display:flex; justify-content:space-between;}
@media(max-width:900px){
.ksrv .kaiman-top-grid{grid-template-columns:1fr;}
.ksrv .proc-chain{flex-direction:column; align-items:center;}
.ksrv .proc-link{width:2px; height:30px; margin:0;}
.ksrv .proc-link::after{top:0;left:50%;transform:translateX(-50%); animation-name:ks-ks-flowv;}
.ksrv .infra-hero{flex-direction:column; align-items:stretch;}
.ksrv .infra-hero-img{width:60%; margin:0 auto 20px;}
.ksrv .infra-hero-text{padding:0 20px; max-width:none;}
.ksrv .tech-base{grid-template-columns:1fr !important;}
.ksrv .tech-connectors{display:none;}
.ksrv .tech-soc{flex-direction:column; align-items:flex-start; text-align:left;}
.ksrv .path-track{flex-direction:column; align-items:flex-start; gap:22px;}
.ksrv .path-line, .ksrv .path-line-fill{display:none;}
.ksrv .path-step{flex-direction:row; text-align:left; width:100%;}
.ksrv .ring-stats{gap:26px;}
.ksrv .cta-final-grid{grid-template-columns:1fr; text-align:center;}
.ksrv .cta-final-text{padding:28px 24px;}
.ksrv .cta-final-text p{margin-left:auto !important; margin-right:auto !important;}
.ksrv .cta-final-text .btns{justify-content:center !important;}
.ksrv .cta-final-text .cta-trust{justify-content:center !important;}
.ksrv .cta-final-text .cta-trust .t{align-items:center !important;}
.ksrv .footer-grid, .ksrv .prod-grid, .ksrv .hero-grid{grid-template-columns:1fr !important;}
.ksrv .hero-grid{text-align:center;}
.ksrv .hero-grid .eyebrow-left, .ksrv .hero-grid .hero-ctas, .ksrv .hero-grid .finder-chips{justify-content:center;}
.ksrv .radar-wrap{max-width:300px; margin-top:20px;}
.ksrv .stack-image-wrap{max-width:1377px; margin-top:20px; transform:none;}
.ksrv .flip-grid{grid-template-columns:1fr 1fr;}
.ksrv h1{font-size:38px;}
.ksrv .cta-final h2{font-size:26px;}
.ksrv .cta-trust{gap:18px;}
.ksrv .mini-stats{grid-template-columns:1fr 1fr;}
}
@media(max-width:520px){
.ksrv .cert-inner{padding:32px 22px 24px;}
.ksrv .cert-heading-main{font-size:21px;}
.ksrv .cert-name{min-width:0; font-size:19px;}
.ksrv .cert-footer-row{flex-direction:column; align-items:flex-start; gap:14px;}
.ksrv .cert-foot-col.right{text-align:left;}
.ksrv .cert-foot-col.right .cert-sig-line{margin-left:0;}
}
@media(max-width:1180px){
.ksrv .cta-final-img{margin-left:0;}
}
@media(max-width:600px){
.ksrv .wrap{padding:0 20px;}
.ksrv h1{font-size:30px;}
.ksrv .hero{padding:56px 0 40px;}
.ksrv .section{padding:56px 0;}
.ksrv .section-title{font-size:24px;}
.ksrv .flip-grid{grid-template-columns:1fr;}
.ksrv .mini-stats{grid-template-columns:1fr 1fr;}
.ksrv .foot-bottom{flex-direction:column; gap:8px; text-align:center;}
}

@keyframes ks-kcreveal{ from{opacity:0; transform:translateY(4px);} to{opacity:1; transform:translateY(0);} }
@keyframes ks-flowV{ 0%{ top:0; opacity:0; } 10%{ opacity:1; } 90%{ opacity:1; } 100%{ top:100%; opacity:0; } }

/* ---- correcciones propias de productos (ver construir-css.js) ---- */
/*
 * 1. Hero: optimización de espacio y carrusel en móvil (≤900px)
 */
@media(max-width:900px){
  .ksrv .hero-grid{
    grid-template-columns:1fr !important;
    gap:0 !important;
    text-align:center;
  }
  .ksrv .hero p.lead{
    margin-bottom:20px !important;
  }
  .ksrv .hero-ctas{
    margin-bottom:24px !important;
  }
  .ksrv .finder{
    margin-top:16px !important;
    margin-bottom:0 !important;
  }
  .ksrv .finder-label{
    margin-bottom:10px !important;
  }
  .ksrv .finder-chips{
    display:flex !important; flex-direction:row !important; flex-wrap:nowrap !important;
    gap:10px; overflow-x:auto; -webkit-overflow-scrolling:touch;
    scroll-snap-type:x mandatory; scrollbar-width:none;
    padding-bottom:6px; padding-inline:2px; justify-content:flex-start !important;
    margin-bottom:0 !important;
  }
  .ksrv .finder-chips::-webkit-scrollbar{ display:none; }
  .ksrv .finder-chip{ flex:0 0 auto !important; scroll-snap-align:start; white-space:nowrap; }

  .ksrv .stack-image-wrap{
    max-width:100% !important;
    margin-top:0 !important;
    margin:0 auto !important;
    transform:none;
  }

  .ksrv .mini-stats{
    display:flex !important; flex-direction:row !important; flex-wrap:nowrap !important;
    gap:12px; overflow-x:auto; -webkit-overflow-scrolling:touch;
    scroll-snap-type:x mandatory; scrollbar-width:none;
    padding-bottom:8px; padding-inline:2px; grid-template-columns:none !important;
    margin-top:24px !important;
  }
  .ksrv .mini-stats::-webkit-scrollbar{ display:none; }
  .ksrv .mini-stats .m{ flex:0 0 65% !important; min-width:180px !important; max-width:240px !important; scroll-snap-align:start; }
}

/*
 * 2. Kaiman y Kblock: cadenas de capacidades / proceso (.proc-chain)
 * En móvil pasan a carrusel horizontal con auto-avance táctil.
 */
@media(max-width:900px){
  .ksrv .proc-chain{
    display:flex !important; flex-direction:row !important; flex-wrap:nowrap !important;
    gap:16px; overflow-x:auto; -webkit-overflow-scrolling:touch;
    scroll-snap-type:x mandatory; scrollbar-width:none;
    padding-bottom:14px; padding-inline:4px; align-items:stretch;
  }
  .ksrv .proc-chain::-webkit-scrollbar{ display:none; }
  .ksrv .proc-node{
    flex:0 0 78% !important; min-width:220px !important; max-width:260px !important;
    scroll-snap-align:start; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1);
    border-radius:16px; padding:20px 16px; box-sizing:border-box;
  }
  .ksrv .proc-link{ display:none !important; }
}

/*
 * 3. Infraestructura: base de herramientas (.tech-base) en scroll horizontal
 * Separación de 20px respecto al bloque de Punto de Gestión Único.
 */
@media(max-width:900px){
  .ksrv .tech-base{
    display:flex !important; flex-direction:row !important; flex-wrap:nowrap !important;
    gap:14px; overflow-x:auto; -webkit-overflow-scrolling:touch;
    scroll-snap-type:x mandatory; scrollbar-width:none;
    padding-bottom:12px; grid-template-columns:none !important;
    margin-top:20px !important;
  }
  .ksrv .tech-base::-webkit-scrollbar{ display:none; }
  .ksrv .tech-card{
    flex:0 0 85% !important; min-width:85% !important; max-width:320px !important;
    scroll-snap-align:start;
  }
}

/*
 * 4. Eduflix: ruta de aprendizaje (.path-track) en scroll horizontal
 */
@media(max-width:900px){
  .ksrv .path-track{
    display:flex !important; flex-direction:row !important; flex-wrap:nowrap !important;
    gap:14px; overflow-x:auto; -webkit-overflow-scrolling:touch;
    scroll-snap-type:x mandatory; scrollbar-width:none;
    padding-bottom:14px; padding-inline:4px;
  }
  .ksrv .path-track::-webkit-scrollbar{ display:none; }
  .ksrv .path-line{ display:none !important; }
  .ksrv .path-step{
    flex:0 0 75% !important; min-width:200px !important; max-width:240px !important;
    scroll-snap-align:start; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1);
    border-radius:16px; padding:20px 16px; box-sizing:border-box;
    flex-direction:column !important; align-items:center !important; text-align:center !important;
  }
}

/*
 * 5. CTA Final: corrección de ancho 100% y cuadrícula simétrica de métricas (.cta-trust)
 */
.ksrv .cta-final-text .cta-trust{
  display:grid !important;
  grid-template-columns:repeat(4, 1fr) !important;
  gap:16px !important;
  width:100% !important;
  max-width:100% !important;
  margin:32px 0 0 !important;
  border-top:none !important;
  padding-top:0 !important;
}
.ksrv .cta-final-text .cta-trust .t{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  text-align:left !important;
  width:100% !important;
  min-width:0 !important;
  box-sizing:border-box !important;
}
.ksrv .cta-final-text .cta-trust .t .tlbl{
  white-space:normal;
  word-break:break-word;
}

@media(max-width:900px){
  .ksrv .cta-final-grid{
    grid-template-columns:1fr !important; text-align:center; gap:32px;
  }
  .ksrv .cta-final-text{
    width:100% !important; max-width:100% !important; padding:32px 24px; box-sizing:border-box;
  }
  .ksrv .cta-final-img{
    width:100% !important; max-width:480px !important; margin:0 auto !important;
  }
  .ksrv .cta-final-text p{
    margin-left:auto !important; margin-right:auto !important;
  }
  .ksrv .cta-final-text .btns{
    justify-content:center !important;
  }
  .ksrv .cta-final-text .cta-trust{
    grid-template-columns:repeat(2, 1fr) !important;
    gap:20px 16px !important;
    max-width:420px !important;
    margin:28px auto 0 !important;
    justify-content:center !important;
  }
  .ksrv .cta-final-text .cta-trust .t{
    align-items:center !important;
    text-align:center !important;
  }
}

/*
 * 6. Efecto highlight en las tarjetas de producto al pulsar los chips del Hero
 */
.ksrv .prod-card{ transition:box-shadow .4s ease, transform .4s ease; border-radius:24px; }
.ksrv .prod-card.highlight{ box-shadow:0 0 0 3px var(--orange), 0 24px 50px rgba(255,91,0,.22); }
