:root{
  --bg:#ffffff; --surface:#f5f6f8; --ink:#0e1116; --muted:#555d6b; --line:#e2e5ea;
  --accent:#2340f0; --accent-d:#1a31c2; --accent-soft:#eef0ff;
  --navy:#0a1030; --warm:#ff8a2b; --warm-d:#ff9d4d;
  --danger:#c4262e;
  --font:'Schibsted Grotesk',system-ui,-apple-system,'Segoe UI',sans-serif;
  --ease:cubic-bezier(.23,1,.32,1);
  --r:8px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:80px;color-scheme:light;-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--ink);font:400 1.0625rem/1.6 var(--font);-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none;touch-action:manipulation}
button{touch-action:manipulation}
ul,ol{list-style:none}
svg{display:block}
.wrap{width:min(1120px,100% - 40px);margin-inline:auto}
.wrap.narrow{width:min(760px,100% - 40px)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}
.skip{position:absolute;left:12px;top:-60px;z-index:100;padding:10px 16px;background:var(--ink);color:#fff;border-radius:var(--r);transition:top .2s var(--ease)}
.skip:focus{top:12px}

/* BARRA SUPERIOR */
.topbar{background:var(--navy);color:#c9d2ff;font-size:.88rem}
.topbar-in{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:38px}
.topbar-wa{display:flex;align-items:center;gap:8px;font-weight:600;color:#fff}
.topbar-wa svg{color:#4ade80}

/* NAV */
.nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.nav-in{display:flex;align-items:center;justify-content:space-between;min-height:68px}
.logo{display:flex;align-items:center;gap:10px;font-weight:800;font-size:1.25rem;letter-spacing:-.02em}
.logo-mark{position:relative;width:24px;height:24px;border:3px solid var(--ink);border-radius:6px}
.logo-mark::after{content:"";position:absolute;right:-6px;bottom:-6px;width:11px;height:11px;background:var(--accent);border-radius:2px}
.nav-links{display:flex;align-items:center;gap:28px;font-size:.97rem;font-weight:500;color:var(--muted)}
.nav-links a:not(.btn){padding:10px 2px}
.burger{display:none;position:relative;width:44px;height:44px;background:none;border:0;cursor:pointer}
.burger span{position:absolute;left:10px;right:10px;height:2px;background:var(--ink);transition:transform .25s var(--ease),top .25s var(--ease)}
.burger span:first-child{top:16px}.burger span:last-child{top:26px}
.burger[aria-expanded=true] span:first-child{top:21px;transform:rotate(45deg)}
.burger[aria-expanded=true] span:last-child{top:21px;transform:rotate(-45deg)}

/* BOTONES */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 24px;border-radius:var(--r);border:1px solid var(--accent);cursor:pointer;font:600 1rem var(--font);color:#fff;background:var(--accent);transition:background-color .18s ease,border-color .18s ease,transform .16s var(--ease),translate .3s var(--ease)}
.btn:active{transform:scale(.97)}
.btn-ghost{background:#fff;color:var(--ink);border-color:var(--line)}
.btn-sm{min-height:44px;padding:8px 18px;font-size:.95rem}
.btn-block{width:100%}
.btn-warm{background:var(--warm);border-color:var(--warm);color:var(--ink)}
.btn-line{background:transparent;border-color:rgba(255,255,255,.5);color:#fff}
.btn.wa{background:#128c4a;border-color:#128c4a}
.btn[disabled]{opacity:.65;cursor:wait}
@media(hover:hover) and (pointer:fine){
  .btn:hover{background:var(--accent-d);border-color:var(--accent-d)}
  .btn-ghost:hover{background:var(--surface);border-color:#c9ced6}
  .btn-warm:hover{background:var(--warm-d);border-color:var(--warm-d)}
  .btn-line:hover{background:rgba(255,255,255,.12);border-color:#fff}
  .btn.wa:hover{background:#0e7340;border-color:#0e7340}
  .nav-links a:not(.btn):hover{color:var(--ink)}
}

/* HERO */
.hero{position:relative;color:#fff;overflow:hidden;padding:clamp(52px,7vw,92px) 0 clamp(70px,9vw,120px);background:radial-gradient(800px 480px at 88% 0%,rgba(255,255,255,.2),transparent 60%),radial-gradient(600px 400px at 0% 100%,rgba(255,138,43,.18),transparent 60%),linear-gradient(135deg,#2a47ff 0%,#1a2fc4 48%,#0c1678 100%)}
.hero::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);background-size:56px 56px;mask-image:radial-gradient(ellipse at 70% 40%,#000 15%,transparent 75%);pointer-events:none}
.hero-grid{position:relative;display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(30px,4vw,60px);align-items:center}
h1,h2,h3{letter-spacing:-.03em;line-height:1.08;text-wrap:balance}
h1{font-size:clamp(2.2rem,4.8vw,3.7rem);font-weight:800;margin-bottom:22px}
.lead{max-width:520px;color:rgba(255,255,255,.84);font-size:clamp(1.02rem,1.6vw,1.15rem);margin-bottom:24px;text-wrap:pretty}
.ticks{display:grid;gap:10px;margin-bottom:32px}
.ticks li{position:relative;padding-left:30px;font-weight:500}
.ticks li::before{content:"";position:absolute;left:0;top:.42em;width:14px;height:14px;border-radius:4px;background:var(--warm)}
.cta{display:flex;flex-wrap:wrap;gap:12px}

/* Maqueta 3D del hero */
.scene{position:relative;height:clamp(330px,38vw,470px);perspective:1400px;--mx:0;--my:0}
.win{position:absolute;inset:7% 2% 9% 9%;background:#fff;border-radius:14px;box-shadow:0 50px 90px -30px rgba(2,6,50,.7);transform:rotateY(calc(-13deg + var(--mx) * 7deg)) rotateX(calc(6deg - var(--my) * 6deg));transition:transform .25s ease-out;color:var(--ink)}
.win-bar{display:flex;align-items:center;gap:6px;padding:11px 14px;background:var(--surface);border-bottom:1px solid var(--line);border-radius:14px 14px 0 0}
.win-bar i{width:9px;height:9px;border-radius:50%;background:#d3d7de}
.win-url{margin-left:10px;flex:1;height:18px;border-radius:5px;background:#fff;border:1px solid var(--line)}
.win-body{padding:16px;display:grid;gap:12px}
.wb-nav{display:flex;align-items:center;gap:10px}
.wb-logo{width:20px;height:20px;border:3px solid var(--ink);border-radius:5px;margin-right:auto}
.wb-pill{width:32px;height:7px;border-radius:4px;background:#cdd2da}
.wb-btn{width:46px;height:18px;border-radius:5px;background:var(--accent)}
.wb-hero{display:grid;grid-template-columns:1.1fr .9fr;gap:14px;padding:18px;border-radius:10px;background:var(--accent-soft)}
.wb-text{display:grid;gap:8px;align-content:center}
.wl{display:block;height:8px;border-radius:4px;background:#c3c9d4}
.w1{width:90%;height:13px;background:var(--ink)}.w2{width:65%;height:13px;background:var(--ink)}.w3{width:80%}
.w4{width:80%}.w5{width:55%}
.wb-cta{width:70px;height:22px;border-radius:6px;background:var(--warm);margin-top:6px}
.wb-img{min-height:92px;border-radius:9px;background:linear-gradient(135deg,var(--accent),#7d93ff)}
.wb-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.wb-cards>div{display:grid;gap:7px;padding:12px;border-radius:9px;background:var(--surface)}
.wb-sq{width:18px;height:18px;border-radius:4px;background:var(--accent)}
.wb-sq.dark{background:var(--ink)}
.float{position:absolute;display:flex;align-items:center;gap:12px;padding:12px 16px;background:#fff;color:var(--ink);border-radius:14px;box-shadow:0 24px 50px -18px rgba(2,6,50,.55);animation:bob 6s ease-in-out infinite;will-change:translate}
.float b{display:block;font-size:.92rem;line-height:1.2}
.float small{display:block;font-size:.8rem;color:var(--muted);line-height:1.3}
.f-ico{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;flex:none}
.f-ico.wa{background:#25d366;color:#fff}
.f-chat{left:0;top:6%;transform:translate3d(calc(var(--mx) * -16px),calc(var(--my) * -10px),70px)}
.f-chart{left:2%;bottom:3%;flex-direction:column;align-items:flex-start;gap:10px;width:190px;transform:translate3d(calc(var(--mx) * -26px),calc(var(--my) * -14px),90px);animation-delay:-2s}
.bars{display:flex;align-items:flex-end;gap:7px;height:56px;width:100%}
.bars i{flex:1;height:var(--h);border-radius:4px;background:var(--accent)}
.bars i:last-child{background:var(--warm)}
.f-plan{right:0;bottom:12%;flex-direction:column;align-items:flex-start;gap:6px;width:156px;padding:12px;transform:translate3d(calc(var(--mx) * 20px),calc(var(--my) * 12px),80px);animation-delay:-4s}
.f-plan svg{width:100%;height:auto;background:var(--accent-soft);border-radius:8px;padding:6px}
.f-plan small{font-weight:600;color:var(--ink)}
.px{position:absolute;border-radius:3px;background:var(--warm)}
.px1{width:16px;height:16px;right:4%;top:2%}
.px2{width:10px;height:10px;left:46%;bottom:2%;background:#fff}
.px3{width:12px;height:12px;right:30%;top:-1%;background:#9fb0ff}
@keyframes bob{0%,100%{translate:0 0}50%{translate:0 -9px}}

/* SECCIONES */
.section{padding:clamp(64px,9vw,112px) 0}
.section.alt{background:var(--surface);border-block:1px solid var(--line)}
h2{font-size:clamp(1.9rem,3.8vw,2.7rem);font-weight:800;margin-bottom:16px;max-width:720px}
.sub{max-width:620px;color:var(--muted);margin-bottom:36px;text-wrap:pretty}

/* Servicios */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.svc{display:flex;flex-direction:column;gap:12px;padding:30px;background:#fff;border:1px solid var(--line);border-radius:16px;transition:border-color .25s ease,box-shadow .3s ease}
.ico{display:grid;place-items:center;width:52px;height:52px;border-radius:14px;background:var(--accent-soft);color:var(--accent)}
.ico svg{width:26px;height:26px}
.svc h3{font-size:1.3rem;font-weight:700}
.svc p{color:var(--muted);font-size:.98rem;flex:1}
.svc-link{font-weight:600;color:var(--accent);padding:6px 0;align-self:flex-start}
.svc-cta{background:var(--navy);border-color:var(--navy);color:#fff;justify-content:center}
.svc-cta p{color:#c9d2ff;flex:0}
.svc-cta .btn{align-self:flex-start;margin-top:6px}
@media(hover:hover) and (pointer:fine){
  .svc:not(.svc-cta):hover{border-color:var(--accent);box-shadow:0 24px 44px -26px rgba(35,64,240,.55)}
  .svc-link:hover{text-decoration:underline}
}

/* Proceso */
.steps{position:relative;display:grid;grid-template-columns:repeat(4,1fr);margin-top:42px;border-top:2px solid var(--line)}
.steps::after{content:"";position:absolute;top:-2px;left:0;width:100%;height:2px;background:var(--accent);transform:scaleX(var(--p,0));transform-origin:left}
.steps li{position:relative;padding:30px 24px 0 0}
.steps li::before{content:"";position:absolute;left:0;top:-8px;width:14px;height:14px;border-radius:3px;background:#fff;border:2px solid var(--line);transition:background-color .3s ease,border-color .3s ease,transform .3s var(--ease)}
.steps li.on::before{background:var(--accent);border-color:var(--accent);transform:scale(1.25) rotate(45deg)}
.num{display:block;font-weight:700;font-size:.95rem;color:var(--accent);margin-bottom:6px;font-variant-numeric:tabular-nums}
.steps h3{font-size:1.25rem;font-weight:700;margin-bottom:8px}
.steps p{color:var(--muted);font-size:.98rem}

/* Precios */
.plans{display:grid;grid-template-columns:repeat(6,1fr);gap:16px}
.plan{position:relative;grid-column:span 2;display:flex;flex-direction:column;padding:30px 24px 26px;border:1px solid var(--line);border-radius:14px;background:#fff}
.plan:nth-child(n+4){grid-column:span 3}
.plan h3{font-size:1.2rem;font-weight:700}
.price{margin:12px 0 20px}
.from{display:block;font-size:.85rem;color:var(--muted)}
.amount{display:block;font-size:1.9rem;font-weight:800;letter-spacing:-.03em}
.plan ul{flex:1;margin-bottom:24px}
.plan li{padding:8px 0;border-top:1px solid var(--line);font-size:.96rem;color:var(--muted)}
.plan .btn{width:100%}
.note{margin-top:24px;max-width:780px;font-size:.93rem;color:var(--muted)}

/* FAQ */
details{border-bottom:1px solid var(--line);padding:4px 0}
summary{display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:56px;cursor:pointer;font-weight:600;font-size:1.12rem;list-style:none}
summary::-webkit-details-marker{display:none}
summary::after{content:"";flex:none;width:10px;height:10px;border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);transform:rotate(45deg) translateY(-2px);transition:transform .2s var(--ease)}
details[open] summary::after{transform:rotate(225deg)}
details p{padding:0 0 18px;max-width:620px;color:var(--muted)}

/* Contacto */
.contact{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(30px,6vw,80px);align-items:start}
.form{display:grid;gap:20px;padding:clamp(22px,3.5vw,36px);border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 30px 60px -40px rgba(14,17,22,.25)}
.row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field{display:grid;gap:7px;border:0;min-width:0}
label,legend{font-size:.92rem;font-weight:600}
legend{margin-bottom:8px;padding:0}
.opt-label{font-weight:400;color:var(--muted)}
input[type=text],input[type=email],input[type=tel],select,textarea{width:100%;min-height:48px;padding:12px 14px;background:#fff;color:var(--ink);border:1px solid #c9ced6;border-radius:var(--r);font:400 1rem var(--font);transition:border-color .15s ease,box-shadow .15s ease}
input::placeholder,textarea::placeholder{color:#7b8392}
textarea{resize:vertical;min-height:110px}
select{appearance:none;background-color:#fff;color:var(--ink);background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;background-size:6px 6px;background-repeat:no-repeat;padding-right:38px}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px rgba(35,64,240,.2)}
[aria-invalid=true]{border-color:var(--danger) !important}
.error{color:var(--danger);font-size:.88rem}
.options{display:flex;flex-wrap:wrap;gap:8px}
.chip{position:relative;display:block}
.chip input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.chip span{display:flex;align-items:center;min-height:44px;padding:8px 16px;border:1px solid #c9ced6;border-radius:var(--r);background:#fff;font-size:.95rem;font-weight:500;transition:background-color .15s ease,border-color .15s ease,transform .16s var(--ease)}
.chip input:active+span{transform:scale(.97)}
.chip input:checked+span{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-d);font-weight:600}
.chip input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
@media(hover:hover) and (pointer:fine){.chip:hover input:not(:checked)+span{border-color:var(--ink)}}
#linksWrap{margin-top:12px}
.hp{position:absolute !important;left:-9999px;width:1px;height:1px;opacity:0}
.status{min-height:1.5em;font-size:.95rem;text-align:center}
.status.ok{color:#0e7340;font-weight:600}.status.bad{color:var(--danger)}

/* Pie y WhatsApp */
.footer{border-top:1px solid var(--line);padding:36px 0;font-size:.93rem;color:var(--muted)}
.foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px}
.foot .logo{color:var(--ink)}
.foot-wa{font-weight:600;color:var(--ink)}
.wa-float{position:fixed;right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));z-index:60;width:56px;height:56px;display:grid;place-items:center;border-radius:50%;background:#128c4a;color:#fff;box-shadow:0 10px 24px -6px rgba(14,17,22,.35);transition:transform .16s var(--ease)}
.wa-float:active{transform:scale(.94)}
@media(hover:hover) and (pointer:fine){.wa-float:hover{transform:scale(1.06)}}

/* Responsive */
@media(max-width:980px){
  .cards{grid-template-columns:1fr 1fr}
  .plans{grid-template-columns:1fr 1fr}
  .plan,.plan:nth-child(n+4){grid-column:span 1}
  .plan:last-child{grid-column:span 2}
  .steps{grid-template-columns:1fr 1fr;row-gap:26px}
  .steps::after{display:none}
}
@media(max-width:860px){
  .hero-grid,.contact{grid-template-columns:1fr}
  .scene{height:340px;margin-top:6px}
  .burger{display:block}
  .nav-links{position:absolute;inset:100% 0 auto 0;flex-direction:column;align-items:stretch;gap:0;padding:8px 20px 22px;background:#fff;border-bottom:1px solid var(--line);transform:translateY(-130%);visibility:hidden;transition:transform .28s var(--ease),visibility 0s .28s}
  .nav-links.open{transform:none;visibility:visible;transition:transform .28s var(--ease)}
  .nav-links a:not(.btn){padding:15px 2px;font-size:1.1rem;border-bottom:1px solid var(--line)}
  .nav-links .btn{margin-top:16px}
  .topbar-note{display:none}
}
@media(max-width:560px){
  .cards,.plans{grid-template-columns:1fr}
  .plan:last-child{grid-column:span 1}
  .steps{grid-template-columns:1fr}
  .row{grid-template-columns:1fr}
  .cta .btn{width:100%}
  .f-plan{display:none}
  .f-chart{width:160px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .float{animation:none}
  *{transition-duration:.01ms !important}
}
