/* ============================================================
   INMO1 — Sistema de diseño "Terminal de Inteligencia"
   Brand #1F66FF (Bluerocratic) · Jost + JetBrains Mono
   ============================================================ */
:root{
  --brand:#1F66FF; --brand-2:#0E52E6; --brand-3:#0A3CC0;
  --brand-100:#E9F1FF; --brand-50:#F4F8FF;
  --signal:#4D9CFF;                 /* acento "dato vivo", muy puntual */
  --ink:#0A1020;                    /* títulos / negro-navy */
  --ink-2:#46506A;                  /* cuerpo */
  --ink-3:#6E7993;                  /* secundario */
  --ink-4:#A6AFC4;                  /* tenue */
  --paper:#ffffff; --paper-2:#F5F8FF; --paper-3:#EDF2FB;
  --line:#E4EBF7; --line-2:#D5DEEF;
  --navy:#070B16;                   /* fondo oscuro más profundo */
  --navy-2:#0B1322; --navy-3:#101B30;
  --r1:8px; --r1-5:12px; --r2:14px; --r3:20px; --r4:28px; --r-pill:50px;
  --maxw:1280px;
  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-2:cubic-bezier(.16,1,.3,1);
  --sh-1:0 2px 8px rgba(10,16,32,.05);
  --sh-2:0 10px 30px rgba(10,16,32,.07);
  --sh-3:0 24px 60px rgba(10,16,32,.10);
  --sh-brand:0 18px 44px rgba(31,102,255,.30);
  --mono:'JetBrains Mono',ui-monospace,monospace;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth; scroll-padding-top:90px;}
body{
  font-family:'Jost',system-ui,sans-serif;
  color:var(--ink-2); background:var(--paper);
  font-size:16.5px; line-height:1.65; -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
.skip-link{position:fixed;left:16px;top:12px;z-index:5000;padding:10px 14px;border-radius:8px;
  color:#fff;background:var(--brand);font-weight:600;transform:translateY(-160%);transition:transform .2s var(--ease);}
.skip-link:focus{transform:translateY(0);}
h1,h2,h3,h3,h5{color:var(--ink); font-weight:600; line-height:1.08; letter-spacing:-.025em;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
::selection{background:var(--brand); color:#fff;}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 30px;}

/* ---------- utility / data type ---------- */
.kicker{
  font-family:var(--mono); font-size:12px; font-weight:500; letter-spacing:.14em;
  text-transform:uppercase; color:var(--brand);
  display:inline-flex; align-items:center; gap:10px;
}
.kicker::before{content:""; width:22px; height:1px; background:var(--brand);}
.kicker.idx::before{content:none;}
.kicker.light{color:#7FB0FF;}
.kicker.mut{color:var(--ink-3);}
.kicker.mut::before{background:var(--line-2);}

/* ---------- sections ---------- */
.sec{padding:118px 0; position:relative;}
.sec.tight{padding:90px 0;}
.sec-head{max-width:680px; margin-bottom:62px;}
.sec-head.ctr{margin-left:auto; margin-right:auto; text-align:center;}
.sec-head.ctr .kicker{justify-content:center;}
.sec-head h2{font-size:clamp(30px,4vw,48px); margin:18px 0 16px;}
.sec-head p{font-size:18px; color:var(--ink-3); font-weight:300;}

/* editorial section numbering */
body{counter-reset:sec;}
.sec{counter-increment:sec;}
.sec .sec-head .kicker::before,.sec .cta-inner .kicker::before{
  content:counter(sec,decimal-leading-zero); width:auto; height:auto; background:none;
  font-weight:600; letter-spacing:.08em; opacity:.95;
}
.sec .sec-head .kicker::after{content:""; width:26px; height:1px; background:currentColor; opacity:.3;}
.sec-head.ctr .kicker::after{display:none;}
.sec-head h2{letter-spacing:-.022em;}

/* premium details */
section[id]{scroll-margin-top:88px;}
::selection{background:var(--brand); color:#fff;}
:focus-visible{outline:2px solid var(--brand); outline-offset:3px; border-radius:5px;}

/* perspectivas */
.perspectivas{background:linear-gradient(180deg,var(--paper) 0%, var(--paper-2) 100%);}
.persp-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.persp-card{display:flex; flex-direction:column; gap:14px; padding:34px 30px 28px; background:#fff;
  border:1px solid var(--line); border-radius:var(--r3); position:relative; overflow:hidden;
  transition:.34s var(--ease); min-height:250px;}
.persp-card::before{content:""; position:absolute; top:0; left:0; right:0; height:3px;
  background:var(--brand); transform:scaleX(0); transform-origin:left; transition:.6s var(--ease);}
.persp-card:hover{border-color:var(--line-2); box-shadow:var(--sh-2); transform:translateY(-5px);}
.persp-card:hover::before{transform:scaleX(1);}
.persp-top{display:flex; align-items:center; justify-content:space-between; gap:12px;}
.persp-cat{font-family:var(--mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--brand);}
.persp-freq{font-family:var(--mono); font-size:10.5px; letter-spacing:.05em; color:var(--ink-3);
  border:1px solid var(--line); border-radius:50px; padding:3px 11px; white-space:nowrap;}
.persp-card h3{font-size:21px; line-height:1.18; color:var(--ink); letter-spacing:-.01em;}
.persp-card p{font-size:14px; color:var(--ink-3); line-height:1.6; flex:1;}
.persp-link{font-family:var(--mono); font-size:11.5px; letter-spacing:.06em; text-transform:uppercase;
  color:var(--ink); display:inline-flex; align-items:center; gap:8px; transition:.3s;}
.persp-link svg{width:15px; height:15px; transition:.34s var(--ease);}
.persp-card:hover .persp-link{color:var(--brand);}
.persp-card:hover .persp-link svg{transform:translateX(5px);}
@media(max-width:860px){ .persp-grid{grid-template-columns:1fr; max-width:480px; margin:0 auto;} }

/* statement band */
.statement{background:var(--navy); padding:108px 0; position:relative; overflow:hidden;}
.statement::before{content:""; position:absolute; inset:0;
  background:radial-gradient(rgba(77,134,255,.08) 1px, transparent 1.5px) 0 0/22px 22px; opacity:.7;
  -webkit-mask-image:linear-gradient(90deg,#000,transparent 78%); mask-image:linear-gradient(90deg,#000,transparent 78%);}
.statement .wrap{position:relative; z-index:1;}
.st-eyebrow{font-family:var(--mono); font-size:12px; letter-spacing:.14em; text-transform:uppercase;
  color:#7FB0FF; margin-bottom:26px; display:flex; align-items:center; gap:10px;}
.st-eyebrow::before{content:""; width:22px; height:1px; background:#7FB0FF;}
.statement h2{font-size:clamp(27px,3.7vw,44px); font-weight:600; line-height:1.24; color:#fff;
  max-width:22ch; letter-spacing:-.02em;}
.statement h2 .hl{color:#6FA0FF; font-weight:400;}

/* button micro-interaction */
.btn:hover svg{transform:translateX(3px);}

/* footer extras */
.foot-markets{font-family:var(--mono); font-size:11.5px; letter-spacing:.05em; color:#6E7993; margin-top:16px;}
.foot-bl{display:flex; align-items:center; gap:22px; flex-wrap:wrap;}
.foot-legal{display:flex; gap:18px;}
.foot-legal a{font-family:var(--mono); font-size:11.5px; color:#6E7993; transition:.22s;}
.foot-legal a:hover{color:#B9C4DC;}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:10px;
  font-family:inherit; font-size:15px; font-weight:500; letter-spacing:.01em;
  padding:15px 26px; border-radius:var(--r-pill); cursor:pointer;
  border:1.5px solid transparent; transition:.34s var(--ease); white-space:nowrap;
}
.btn svg{width:17px; height:17px; transition:transform .34s var(--ease);}
.btn:hover svg{transform:translateX(4px);}
.btn-primary{background:var(--brand); color:#fff; box-shadow:var(--sh-brand);}
.btn-primary:hover{background:var(--brand-2); transform:translateY(-2px); box-shadow:0 22px 50px rgba(31,102,255,.4);}
.btn-dark{background:var(--ink); color:#fff;}
.btn-dark:hover{transform:translateY(-2px); box-shadow:var(--sh-3);}
.btn-ghost{background:transparent; color:var(--ink); border-color:var(--line-2);}
.btn-ghost:hover{border-color:var(--brand); color:var(--brand); transform:translateY(-2px);}
.btn-light{background:#fff; color:var(--ink);}
.btn-light:hover{transform:translateY(-2px); box-shadow:0 16px 40px rgba(0,0,0,.2);}
.btn-on-dark{background:rgba(255,255,255,.07); color:#fff; border-color:rgba(255,255,255,.22); backdrop-filter:blur(6px);}
.btn-on-dark:hover{border-color:#fff; background:rgba(255,255,255,.13); transform:translateY(-2px);}
.btn-lg{padding:17px 32px; font-size:16px;}

/* ---------- scroll progress ---------- */
.progress{position:fixed; top:0; left:0; height:3px; width:0; z-index:2000;
  background:linear-gradient(90deg,var(--brand),var(--signal)); transition:width .1s linear;}

/* ============ HEADER ============ */
.hdr{
  position:fixed; top:0; left:0; right:0; z-index:1000;
  padding:20px 0; transition:.4s var(--ease);
}
.hdr.scrolled{background:rgba(255,255,255,.86); backdrop-filter:blur(14px) saturate(1.4);
  box-shadow:0 1px 0 var(--line); padding:13px 0;}
.hdr-inner{display:flex; align-items:center; justify-content:space-between; gap:24px;}
.brand{display:flex; align-items:center; flex-shrink:0;}
.brand img{height:28px; width:auto; transition:.34s var(--ease);}
.brand .lg-blue{display:none;} .brand .lg-white{display:block;}
.hdr.scrolled .brand .lg-blue{display:block;} .hdr.scrolled .brand .lg-white{display:none;}
.nav{display:flex; align-items:center; gap:4px;}
.nav a{
  font-family:var(--mono); font-size:13.5px; letter-spacing:.02em; color:rgba(255,255,255,.82);
  padding:9px 14px; border-radius:var(--r1); transition:.22s var(--ease); position:relative;
}
.nav a:hover{color:#fff; background:rgba(255,255,255,.08);}
.hdr.scrolled .nav a{color:var(--ink-2);}
.hdr.scrolled .nav a:hover{color:var(--brand); background:var(--brand-50);}
.hdr-cta{display:flex; align-items:center; gap:12px;}
.btn-nav{
  display:inline-flex; align-items:center; gap:8px; font-family:var(--mono); font-size:12.5px;
  padding:10px 18px; border-radius:var(--r-pill); border:1.5px solid rgba(255,255,255,.25);
  color:#fff; transition:.34s var(--ease); cursor:pointer;
}
.btn-nav:hover{background:#fff; color:var(--brand); border-color:#fff;}
.hdr.scrolled .btn-nav{border-color:var(--brand); color:var(--brand); background:var(--brand-50);}
.hdr.scrolled .btn-nav:hover{background:var(--brand); color:#fff;}
.btn-nav svg{width:15px; height:15px;}
.burger{display:none; background:none; border:none; cursor:pointer; align-items:center; gap:9px;
  font-family:var(--mono); font-size:12.5px; color:#fff; padding:9px 12px;}
.hdr.scrolled .burger{color:var(--ink);}
.burger .bl{display:flex; flex-direction:column; gap:4px; width:20px;}
.burger .bl span{height:1.8px; background:currentColor; border-radius:2px; transition:.3s;}
.burger .bl span:nth-child(2){width:70%;}
@media(max-width:1080px){ .nav{display:none;} .btn-pres-label{display:none;} .burger{display:inline-flex;} }

/* ============ DRAWER ============ */
.drawer-ov{position:fixed; inset:0; background:rgba(7,11,22,.55); backdrop-filter:blur(4px);
  opacity:0; visibility:hidden; transition:.4s var(--ease); z-index:1500;}
.drawer-ov.open{opacity:1; visibility:visible;}
.drawer{position:fixed; top:0; right:0; height:100%; width:min(400px,86vw); background:var(--navy);
  z-index:1600; transform:translateX(100%); transition:transform .6s var(--ease-2);
  display:flex; flex-direction:column; padding:30px 32px; overflow-y:auto;}
.drawer.open{transform:translateX(0);}
.drawer-top{display:flex; align-items:center; justify-content:space-between; margin-bottom:36px;}
.drawer-top img{height:26px;}
.drawer-close{background:rgba(255,255,255,.08); border:none; color:#fff; width:38px; height:38px;
  border-radius:12px; font-size:22px; cursor:pointer; line-height:1; transition:.22s;}
.drawer-close:hover{background:var(--brand);}
.drawer-lbl{font-family:var(--mono); font-size:11px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--ink-4); margin-bottom:14px;}
.drawer a.dl{display:flex; align-items:center; justify-content:space-between; color:#fff; font-size:17px;
  font-weight:400; padding:14px 18px; margin-bottom:8px; border:1px solid rgba(255,255,255,.1);
  border-radius:12px; background:rgba(255,255,255,.03); transition:.22s var(--ease);}
.drawer a.dl span{font-family:var(--mono); font-size:12px; color:var(--ink-4); transition:.22s;}
.drawer a.dl:hover{background:var(--brand); border-color:var(--brand); color:#fff; padding-left:22px;}
.drawer a.dl:hover span{color:rgba(255,255,255,.75);}
.drawer-foot{margin-top:auto; padding-top:24px;}
.drawer-foot a{display:block; color:var(--ink-4); font-size:14px; padding:5px 0; font-family:var(--mono);}
.drawer-foot a:hover{color:#fff;}

/* ============ HERO ============ */
.hero{position:relative; min-height:100vh; display:flex; align-items:center;
  background:var(--navy); color:#fff; overflow:hidden; padding:130px 0 80px;}
.hero canvas{position:absolute; inset:0; width:100%; height:100%; z-index:1;}
.hero-veil{position:absolute; inset:0; z-index:2; pointer-events:none; background: radial-gradient(120% 90% at 80% 10%, rgba(31,102,255,.22), transparent 55%), radial-gradient(80% 70% at 10% 90%, rgba(14,82,230,.18), transparent 60%), linear-gradient(180deg, rgba(7,11,22,.2) 0%, rgba(7,11,22,.55) 75%, var(--navy) 100%);}
.hero .wrap{position:relative; z-index:3; width:100%;}
.hero-coords{font-family:var(--mono); font-size:12px; color:#6E89C0; letter-spacing:.08em;
  display:flex; gap:18px; flex-wrap:wrap; margin-bottom:26px;}
.hero-coords b{color:var(--signal); font-weight:500;}
.hero h1{font-size:clamp(38px,6.4vw,82px); font-weight:600; letter-spacing:-.035em; color:#fff;
  line-height:1.02; max-width:16ch;}
.hero h1 .grad{background:linear-gradient(100deg,#7FB0FF,#1F66FF 60%,var(--signal));
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;}
.hero-sub{font-size:clamp(17px,1.9vw,20px); color:#E7EEFA; font-weight:300; max-width:60ch; margin:26px 0 38px;}
.hero-cta{display:flex; gap:14px; flex-wrap:wrap; margin-bottom:48px;}
.hero-stats{display:grid; grid-template-columns:repeat(3,1fr); gap:26px 22px; max-width:640px;
  border-top:1px solid rgba(255,255,255,.12); padding-top:28px;}
.hstat .n{font-size:clamp(27px,2.7vw,36px); font-weight:600; color:#fff; letter-spacing:-.03em; line-height:1;
  font-variant-numeric:tabular-nums;}
.hstat .n .u{color:var(--brand); }
.hstat .l{font-family:var(--mono); font-size:11.5px; color:#8593B0; letter-spacing:.04em;
  text-transform:uppercase; margin-top:10px; line-height:1.4;}
.hero-scroll{position:absolute; bottom:26px; left:50%; transform:translateX(-50%); z-index:3;
  display:flex; flex-direction:column; align-items:center; gap:9px;
  font-family:var(--mono); font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; color:#6E89C0;}
.hero-scroll .mouse{width:22px; height:34px; border:1.5px solid rgba(255,255,255,.3); border-radius:12px; position:relative;}
.hero-scroll .mouse::after{content:""; position:absolute; top:7px; left:50%; transform:translateX(-50%);
  width:3px; height:6px; background:var(--signal); border-radius:2px; animation:scrolldot 1.6s var(--ease) infinite;}
@keyframes scrolldot{0%{opacity:0; top:7px}40%{opacity:1}80%{opacity:0; top:17px}100%{opacity:0}}
@media(max-width:760px){ .hero-stats{grid-template-columns:repeat(2,1fr); gap:20px 14px; max-width:none;} .hero-scroll{display:none;} }

/* ============ NOSOTROS ============ */
.nosotros{background:var(--paper);}
.nos-grid{display:grid; grid-template-columns:1.05fr 1fr; gap:70px; align-items:center;}
.nos-imgs{position:relative;}
.nos-imgs .main{border-radius:var(--r3); overflow:hidden; box-shadow:var(--sh-3); aspect-ratio:4/3;}
.nos-imgs .main img{width:100%; height:100%; object-fit:cover;}
.nos-imgs .sub{position:absolute; right:-18px; bottom:-30px; width:46%; border-radius:var(--r2);
  overflow:hidden; box-shadow:var(--sh-3); border:5px solid #fff; aspect-ratio:1/1;}
.nos-imgs .sub img{width:100%; height:100%; object-fit:cover;}
.nos-badge{position:absolute; left:-22px; top:-22px; background:var(--brand); color:#fff;
  border-radius:var(--r2); padding:18px 22px; box-shadow:var(--sh-brand); text-align:center;}
.nos-badge .n{font-size:34px; font-weight:600; line-height:1;}
.nos-badge .l{font-family:var(--mono); font-size:10px; letter-spacing:.08em; text-transform:uppercase; margin-top:6px; opacity:.92;}
.nos-grid h2{font-size:clamp(28px,3.6vw,42px); margin:18px 0 18px;}
.nos-lead{font-size:17.5px; color:var(--ink-3); font-weight:300;}
.nos-list{margin-top:26px; display:flex; flex-direction:column; gap:16px;}
.nos-li{display:flex; gap:14px;}
.nos-li .ck{flex-shrink:0; width:26px; height:26px; border-radius:8px; background:var(--brand-100);
  display:grid; place-items:center;}
.nos-li .ck svg{width:14px; height:14px; fill:none; stroke:var(--brand); stroke-width:2.4;}
.nos-li p{font-size:15.5px; color:var(--ink-2);}
.nos-li b{color:var(--ink); font-weight:600;}
@media(max-width:900px){ .nos-grid{grid-template-columns:1fr; gap:64px;} .nos-imgs{max-width:460px;} }

/* ============ PROBLEMA ============ */
.problema{background:var(--paper-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.prob-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:64px; align-items:center;}
.prob-grid h2{font-size:clamp(28px,3.6vw,42px); margin:16px 0 16px;}
.prob-lead{font-size:17.5px; color:var(--ink-3); font-weight:300;}
.prob-points{margin-top:30px; display:flex; flex-direction:column; gap:14px;}
.prob-point{display:flex; gap:16px; background:#fff; border:1px solid var(--line); border-radius:var(--r2);
  padding:18px 20px; transition:.34s var(--ease);}
.prob-point:hover{border-color:var(--brand); transform:translateX(6px); box-shadow:var(--sh-2);}
.prob-point .ic{flex-shrink:0; width:42px; height:42px; border-radius:12px; background:var(--brand-50);
  display:grid; place-items:center;}
.prob-point .ic svg{width:21px; height:21px; fill:none; stroke:var(--brand); stroke-width:1.8;}
.prob-point h3{font-size:16.5px; margin-bottom:3px;}
.prob-point p{font-size:14px; color:var(--ink-3);}
.prob-visual{background:var(--navy); border-radius:var(--r3); padding:38px 32px; box-shadow:var(--sh-3);
  position:relative; overflow:hidden;}
.prob-visual::before{content:""; position:absolute; inset:0;
  background-image:linear-gradient(rgba(127,176,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(127,176,255,.07) 1px,transparent 1px);
  background-size:26px 26px;}
.prob-chaos{position:relative; display:flex; flex-wrap:wrap; gap:8px; margin-bottom:26px;}
.chaos-tag{font-family:var(--mono); font-size:11px; color:#8FA1C6; background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.09); border-radius:6px; padding:5px 9px;}
.chaos-tag:nth-child(odd){transform:rotate(-1.5deg);} .chaos-tag:nth-child(3n){transform:rotate(1.5deg); opacity:.7;}
.prob-arrow{position:relative; display:flex; align-items:center; gap:14px; justify-content:center;
  font-family:var(--mono); font-weight:600; color:var(--signal); letter-spacing:.1em; margin:8px 0 24px; font-size:14px;}
.prob-arrow .line{flex:1; height:1px; background:linear-gradient(90deg,transparent,var(--brand),transparent);}
.prob-out{position:relative; background:linear-gradient(120deg,var(--brand),var(--brand-2)); border-radius:var(--r2);
  padding:20px 24px; box-shadow:var(--sh-brand);}
.prob-out .lbl{font-family:var(--mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:#cfe0ff;}
.prob-out .val{font-size:22px; font-weight:600; color:#fff; margin-top:4px;}
@media(max-width:900px){ .prob-grid{grid-template-columns:1fr; gap:44px;} }

/* ============ STATS BAND ============ */
.statsband{background:var(--navy); color:#fff; padding:80px 0; position:relative; overflow:hidden;}
.statsband::before{content:""; position:absolute; inset:0;
  background-image:linear-gradient(rgba(127,176,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(127,176,255,.05) 1px,transparent 1px);
  background-size:40px 40px; mask-image:radial-gradient(70% 100% at 50% 0%,#000,transparent);}
.statsband .glow{position:absolute; top:-40%; left:50%; transform:translateX(-50%); width:700px; height:400px;
  background:radial-gradient(circle,rgba(31,102,255,.3),transparent 65%); filter:blur(20px);}
.stats-grid{position:relative; display:grid; grid-template-columns:repeat(4,1fr); gap:30px; text-align:center;}
.stat-box{position:relative;}
.stat-box::after{content:""; position:absolute; right:-15px; top:15%; height:70%; width:1px; background:rgba(255,255,255,.1);}
.stat-box:last-child::after{display:none;}
.stat-box .n{font-size:clamp(40px,5vw,62px); font-weight:600; letter-spacing:-.03em; line-height:1;
  font-variant-numeric:tabular-nums; color:#fff;}
.stat-box .n .u{color:#7FB0FF;}
.stat-box .l{font-family:var(--mono); font-size:12px; color:#8593B0; letter-spacing:.03em; text-transform:uppercase; margin-top:14px;}
@media(max-width:760px){ .stats-grid{grid-template-columns:repeat(2,1fr); gap:44px 20px;} .stat-box:nth-child(2)::after{display:none;} }

/* ============ CAPACIDADES (servicios) ============ */
.capacidades{background:var(--paper);}
.cap-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
.cap-card{background:#fff; border:1px solid var(--line); border-radius:var(--r3); overflow:hidden;
  transition:.4s var(--ease); display:flex; flex-direction:column;}
.cap-card:hover{transform:translateY(-8px); box-shadow:var(--sh-3); border-color:transparent;}
.cap-photo{position:relative; aspect-ratio:16/10; overflow:hidden;}
.cap-photo img{width:100%; height:100%; object-fit:cover; transition:.6s var(--ease);
  filter:saturate(.55) brightness(.85);}
.cap-card:hover .cap-photo img{transform:scale(1.07); filter:saturate(.7) brightness(.9);}
.cap-photo::after{content:""; position:absolute; inset:0;
  background:linear-gradient(150deg,rgba(31,102,255,.45),rgba(10,16,32,.6));}
.cap-num{position:absolute; top:16px; left:18px; z-index:2; font-family:var(--mono); font-weight:600;
  font-size:13px; color:#fff; background:rgba(7,11,22,.4); border:1px solid rgba(255,255,255,.25);
  padding:5px 10px; border-radius:8px; backdrop-filter:blur(4px);}
.cap-ic{position:absolute; bottom:-26px; right:22px; z-index:2; width:54px; height:54px; border-radius:14px;
  background:#fff; box-shadow:var(--sh-2); display:grid; place-items:center;}
.cap-ic img{width:28px; height:28px;}
.cap-inner{padding:36px 26px 30px; flex:1; display:flex; flex-direction:column;}
.cap-inner h3{font-size:22px; margin-bottom:12px;}
.cap-inner p{font-size:14.5px; color:var(--ink-3); flex:1;}
.cap-tags{display:flex; flex-wrap:wrap; gap:7px; margin-top:20px;}
.cap-tag{font-family:var(--mono); font-size:11px; color:var(--brand); background:var(--brand-50);
  border:1px solid var(--brand-100); border-radius:6px; padding:4px 9px;}
@media(max-width:900px){ .cap-grid{grid-template-columns:1fr; max-width:440px; margin:0 auto;} }
.cap-extra{display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-top:18px;}
.cap-mini{background:#fff; border:1px solid var(--line); border-radius:var(--r2); padding:24px 22px; transition:.34s var(--ease);}
.cap-mini:hover{border-color:var(--brand); box-shadow:var(--sh-2); transform:translateY(-5px);}
.cap-mini .ic{width:44px; height:44px; border-radius:12px; background:var(--brand-50); display:grid; place-items:center; margin-bottom:16px;}
.cap-mini .ic svg{width:22px; height:22px; fill:none; stroke:var(--brand); stroke-width:1.8;}
.cap-mini h3{font-size:17px; margin-bottom:6px;}
.cap-mini p{font-size:13.5px; color:var(--ink-3);}
@media(max-width:900px){ .cap-extra{grid-template-columns:1fr 1fr;} }
@media(max-width:520px){ .cap-extra{grid-template-columns:1fr;} }

/* unified service cards (custom analytic graphics) */
.svc-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:18px;}
.svc-card{position:relative; display:block; border-radius:var(--r3); overflow:hidden; aspect-ratio:3/4;
  background:
    radial-gradient(rgba(77,134,255,.10) 1px, transparent 1.5px) 0 0 / 17px 17px,
    linear-gradient(162deg, #122A57 0%, #0B1838 44%, #070C18 100%);
  border:1px solid rgba(255,255,255,.07); box-shadow:var(--sh-1); transition:.4s var(--ease);}
.svc-card::after{content:""; position:absolute; left:0; right:0; bottom:0; height:60%; z-index:1;
  background:linear-gradient(to top, rgba(6,10,20,.97) 20%, rgba(6,10,20,.55) 58%, transparent 100%);}
.svc-card:hover{transform:translateY(-6px); box-shadow:var(--sh-3); border-color:rgba(31,102,255,.45);}
.svc-art{position:absolute; top:30px; left:50%; transform:translateX(-50%); width:58%; max-width:160px;
  z-index:1; opacity:.96; transition:.6s var(--ease); overflow:visible;}
.svc-card:hover .svc-art{transform:translateX(-50%) translateY(-3px);}
.svc-num{position:absolute; top:15px; left:16px; z-index:3; font-family:var(--mono); font-weight:600;
  font-size:12px; color:#fff; border:1px solid rgba(255,255,255,.3); padding:4px 9px; border-radius:8px;
  background:rgba(255,255,255,.05); backdrop-filter:blur(4px);}
.svc-body{position:absolute; left:0; right:0; bottom:0; z-index:2; padding:22px 20px; color:#fff;}
.svc-body::before{content:""; display:block; width:26px; height:2px; background:var(--brand); margin-bottom:13px; transition:.4s var(--ease);}
.svc-card:hover .svc-body::before{width:50px;}
.svc-body h3{color:#fff; font-size:18px; margin-bottom:7px; letter-spacing:-.02em; line-height:1.15;}
.svc-body p{font-size:12.5px; color:#C2CCE0; line-height:1.5;}
@media(max-width:980px){ .svc-grid{grid-template-columns:repeat(2,1fr);} }
@media(max-width:520px){ .svc-grid{grid-template-columns:1fr;} .svc-card{aspect-ratio:16/10;} .svc-art{width:32%; top:50%; max-width:115px; transform:translate(-50%,-60%);} .svc-card:hover .svc-art{transform:translate(-50%,-63%);} }

/* ============ WHY ============ */
.why{background:var(--navy); color:#fff;}
.why .sec-head h2,.why .sec-head{color:#fff;}
.why .sec-head h2{color:#fff;} .why .sec-head p{color:#9FB0CC;}
.why-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px;}
.why-card{background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.09); border-radius:var(--r3);
  padding:30px 26px; transition:.34s var(--ease); position:relative; overflow:hidden;}
.why-card::before{content:""; position:absolute; top:0; left:0; right:0; height:2px;
  background:linear-gradient(90deg,var(--brand),var(--signal)); transform:scaleX(0); transform-origin:left; transition:.4s var(--ease);}
.why-card:hover{background:rgba(31,102,255,.08); border-color:rgba(127,176,255,.3); transform:translateY(-6px);}
.why-card:hover::before{transform:scaleX(1);}
.why-ic{width:46px; height:46px; border-radius:12px; background:rgba(31,102,255,.16);
  display:grid; place-items:center; margin-bottom:20px;}
.why-ic svg{width:23px; height:23px; fill:none; stroke:#7FB0FF; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round;}
.why-card h3{color:#fff; font-size:18px; margin-bottom:10px;}
.why-card p{font-size:14px; color:#9FB0CC;}
@media(max-width:980px){ .why-grid{grid-template-columns:repeat(2,1fr);} }
@media(max-width:560px){ .why-grid{grid-template-columns:1fr;} }

/* ============ SECTORES ============ */
.sectores{background:var(--paper-2); border-top:1px solid var(--line);}
.sect-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:18px;}
.sect-card{position:relative; border-radius:var(--r3); overflow:hidden; aspect-ratio:5/4; cursor:default;
  box-shadow:var(--sh-1);}
.sect-card img{width:100%; height:100%; object-fit:cover;
  transition:transform .6s var(--ease), filter .34s var(--ease);}
.sect-card:hover img{transform:scale(1.06); filter:saturate(1.15) brightness(1.04);}
.sect-card::after{content:""; position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(7,11,22,0) 35%,rgba(7,11,22,.85));}
.sect-label{position:absolute; left:22px; bottom:20px; right:22px; z-index:2; color:#fff;}
.sect-label .n{font-size:22px; font-weight:600; letter-spacing:-.02em;}
.sect-label .d{font-family:var(--mono); font-size:11.5px; color:#B9C4DC; margin-top:3px;}
.sect-label::before{content:""; display:block; width:30px; height:2px; background:var(--brand);
  margin-bottom:12px; transition:.4s var(--ease);}
.sect-card:hover .sect-label::before{width:54px;}
@media(max-width:900px){ .sect-grid{grid-template-columns:repeat(2,1fr);} }
@media(max-width:520px){ .sect-grid{grid-template-columns:1fr;} }

/* ============ METODOLOGÍA ============ */
.metodologia{background:var(--paper);}
.metodo-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:24px; position:relative;}
.metodo-line{position:absolute; top:26px; left:8%; right:8%; height:2px;
  background:linear-gradient(90deg,var(--brand-100),var(--brand),var(--brand-100)); z-index:0;}
.metodo-step{position:relative; z-index:1; text-align:center; padding:0 6px;}
.metodo-num{width:54px; height:54px; margin:0 auto 22px; border-radius:50%; background:#fff;
  border:2px solid var(--brand); color:var(--brand); font-family:var(--mono); font-weight:600; font-size:20px;
  display:grid; place-items:center; box-shadow:0 0 0 6px var(--paper); transition:.34s var(--ease);}
.metodo-step:hover .metodo-num{background:var(--brand); color:#fff; transform:scale(1.08); box-shadow:0 0 0 6px var(--paper),var(--sh-brand);}
.metodo-step h3{font-size:17px; margin-bottom:8px;}
.metodo-step p{font-size:13.5px; color:var(--ink-3);}
@media(max-width:820px){ .metodo-grid{grid-template-columns:1fr 1fr; gap:40px 20px;} .metodo-line{display:none;} }
@media(max-width:480px){ .metodo-grid{grid-template-columns:1fr;} }

/* ============ ALCANCES ============ */
.alcances{background:var(--paper-2); border-top:1px solid var(--line);}
.alc-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px;}
.alc-card{background:#fff; border:1px solid var(--line); border-radius:var(--r2); padding:26px 24px;
  transition:.34s var(--ease);}
.alc-card:hover{border-color:var(--brand); box-shadow:var(--sh-2); transform:translateY(-4px);}
.alc-top{display:flex; align-items:center; gap:14px; margin-bottom:12px;}
.alc-ic{flex-shrink:0; width:42px; height:42px; border-radius:12px; background:var(--brand-50);
  display:grid; place-items:center;}
.alc-ic svg{width:21px; height:21px; fill:none; stroke:var(--brand); stroke-width:1.9;}
.alc-card h3{font-size:16.5px;}
.alc-card p{font-size:14px; color:var(--ink-3);}
@media(max-width:900px){ .alc-grid{grid-template-columns:1fr 1fr;} }
@media(max-width:560px){ .alc-grid{grid-template-columns:1fr;} }

/* ============ MERCADOS ============ */
.mercados{background:var(--paper); overflow:hidden;}
.mercados .sec-head h2{max-width:18ch;} .mercados .sec-head p{color:var(--ink-3);}
.merc-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.merc-card{background:#fff; border:1px solid #E4EBF7; border-radius:var(--r3); overflow:hidden; padding:26px 26px 30px; transition:.34s var(--ease);}
.merc-card:hover{border-color:rgba(31,102,255,.35); transform:translateY(-6px); box-shadow:0 14px 34px rgba(10,16,32,.08);}
.merc-map{position:relative; aspect-ratio:16/11; display:grid; place-items:center; padding:6px 0 14px;}
.merc-map img{width:100%; height:100%; object-fit:contain;}
.merc-pin{position:absolute; width:12px; height:12px; border-radius:50%; background:var(--signal);
  box-shadow:0 0 0 0 rgba(84,230,196,.5); animation:pin 2.4s ease-out infinite;}
@keyframes pin{0%{box-shadow:0 0 0 0 rgba(84,230,196,.5)}70%{box-shadow:0 0 0 16px rgba(84,230,196,0)}100%{box-shadow:0 0 0 0 rgba(84,230,196,0)}}
.merc-body{padding:6px 0 0;}
.merc-tag{display:inline-block; font-family:var(--mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--brand); background:#EDF3FF; border:1px solid #DCE7FD; padding:6px 12px; border-radius:var(--r-pill); margin-bottom:6px;}
.merc-body h3{color:var(--ink); font-size:24px; margin-bottom:8px;}
.merc-body p{font-size:14px; color:var(--ink-3);}
.merc-band{display:flex; align-items:center; gap:16px; margin-top:28px;}
.merc-band-rule{width:26px; height:2px; background:var(--brand); flex:none;}
.merc-band p{font-family:var(--mono); font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-3); margin:0;}
.merc-band b{color:var(--ink); font-weight:600;}
.merc-leg{display:flex; gap:18px; margin:2px 0 10px;}
.merc-leg span{display:inline-flex; align-items:center; gap:7px; font-family:var(--mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-3);}
.merc-leg .lg{width:10px; height:10px; border-radius:3px; display:inline-block;}
.merc-leg .lg-own{background:#46506A;}
.merc-leg .lg-tra{background:var(--brand);}
.maps-link{color:var(--brand); text-decoration:none; border-bottom:1px solid rgba(31,102,255,.35);}
.maps-link:hover{border-bottom-color:var(--brand);}
/* ============ banda de fuentes institucionales ============ */
.sec-fuentes{background:var(--paper); padding:34px 0 30px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); overflow:hidden;}
.fu-k{font-family:var(--mono); font-size:11px; letter-spacing:.15em; text-transform:uppercase;
  color:var(--ink-3); text-align:center; margin-bottom:8px;}
.fu-note{max-width:780px; margin:0 auto 18px; padding:0 18px; text-align:center; color:var(--ink-4); font-size:12.5px;}
.fu-mq{padding:7px 0 10px;}
.fu-track{gap:0; align-items:center; animation:none;}
.fu-track.is-ready{animation:fuMq 96s linear infinite;}
.fu-set{display:flex; align-items:center; gap:14px; padding-right:14px;}
.fu-item{flex:none; display:inline-flex; align-items:center; justify-content:center; width:190px; height:78px;
  padding:10px 17px; background:#fff; border:1px solid #E1E6F0; border-radius:14px;
  box-shadow:0 6px 18px rgba(20,33,62,.045); transition:.28s var(--ease);}
.fu-mq .fu-track .fu-item img{display:block; width:156px; height:48px; object-fit:contain;
  filter:none; opacity:.96; transition:.28s var(--ease);}
.fu-item:hover{border-color:#C9D5EA; box-shadow:0 10px 26px rgba(20,33,62,.09); transform:translateY(-2px);}
.fu-mq .fu-track .fu-item:hover img{opacity:1; transform:scale(1.025); filter:none;}
@keyframes fuMq{to{transform:translateX(-50%);}}
@media(max-width:640px){
  .sec-fuentes{padding:28px 0 24px;}
  .fu-k{font-size:10.5px; letter-spacing:.08em; line-height:1.55; padding:0 18px;}
  .fu-note{font-size:11.5px; margin-bottom:14px;}
  .fu-set{gap:10px; padding-right:10px;}
  .fu-item{width:158px; height:68px; padding:9px 13px; border-radius:12px;}
  .fu-mq .fu-track .fu-item img{width:132px; height:42px;}
}
/* ============ tira de fuentes (Entregables) ============ */
.src-mq{margin-top:36px; padding-top:28px; border-top:1px solid rgba(255,255,255,.10);}
.src-mq-k{font-family:var(--mono); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase;
  color:#7FB0FF; margin-bottom:18px;}
.src-track{gap:0; animation-duration:52s;}
.src-mk{display:inline-flex; flex-direction:column; justify-content:center; gap:3px; flex:none;
  padding:12px 30px; border-right:1px solid rgba(255,255,255,.10); opacity:.62; transition:.34s var(--ease);}
.src-mk:hover{opacity:1;}
.src-mk b{font-family:var(--display); font-size:19px; font-weight:600; letter-spacing:-.01em; color:#fff; white-space:nowrap;}
.src-mk i{font-family:var(--mono); font-style:normal; font-size:10px; letter-spacing:.07em;
  text-transform:uppercase; color:#9FB0CC; white-space:nowrap;}
.src-mk:hover b{color:#9EC4FF;}
@media(max-width:640px){.src-mk{padding:10px 22px;} .src-mk b{font-size:16px;} .src-mk i{font-size:9px;}}
.form-legal{font-size:12px; line-height:1.6; color:var(--ink-3); text-align:center; margin-top:10px;}
.form-legal a{color:var(--ink-2); border-bottom:1px solid var(--line-2);}
.form-legal a:hover{color:var(--brand); border-bottom-color:var(--brand);}

/* ============ hero: realce al pasar el mouse (solo botones y KPIs) ============ */
.hero .btn-on-dark{background:rgba(255,255,255,.10); border-color:rgba(255,255,255,.32);}
.hero .btn-on-dark:hover{background:rgba(255,255,255,.20); border-color:#fff; transform:translateY(-2px);
  box-shadow:0 16px 40px rgba(0,0,0,.35);}
.hero .btn-primary:hover{box-shadow:0 22px 54px rgba(31,102,255,.55);}
.hstat{transition:transform .34s var(--ease);}
.hstat:hover{transform:translateY(-4px);}
.hstat .n{transition:color .34s var(--ease), text-shadow .34s var(--ease);}
.hstat:hover .n{color:#fff; text-shadow:0 0 32px rgba(127,176,255,.6);}
.hstat:hover .l{color:#C9D9F5;}
.hero .btn-primary:hover{box-shadow:0 22px 54px rgba(31,102,255,.55);}
/* ============ selector de idioma ============ */
.langbtn{display:inline-flex; align-items:center; gap:5px; background:transparent; cursor:pointer;
  border:1px solid rgba(255,255,255,.26); color:#fff; border-radius:var(--r-pill); padding:7px 13px;
  font-family:var(--mono); font-size:11px; letter-spacing:.08em; transition:.22s var(--ease); margin-left:6px;}
.langbtn:hover{border-color:var(--brand); background:rgba(31,102,255,.16);}
.langbtn .on{color:#fff; font-weight:600;}
.langbtn .off{color:rgba(255,255,255,.45);}
.langbtn .sep{color:rgba(255,255,255,.3);}
.scrolled .langbtn{border-color:var(--line); color:var(--ink);}
.scrolled .langbtn .on{color:var(--ink);}
.scrolled .langbtn .off{color:var(--ink-4);}
.scrolled .langbtn .sep{color:var(--ink-4);}
.langbtn.dw{margin:18px 0 6px; border-color:rgba(255,255,255,.26); color:#fff; align-self:flex-start;}
.langbtn.dw .on{color:#fff;} .langbtn.dw .off{color:rgba(255,255,255,.45);} .langbtn.dw .sep{color:rgba(255,255,255,.3);}
.langbtn.en .on{color:rgba(255,255,255,.45); font-weight:400;}
.langbtn.en .off{color:#fff; font-weight:600;}
.scrolled .langbtn.en .on{color:var(--ink-4);}
.scrolled .langbtn.en .off{color:var(--ink);}
.langbtn.dw.en .on{color:rgba(255,255,255,.45);}
.langbtn.dw.en .off{color:#fff;}

/* ============ MARKETS ============ */
.markets{background:var(--navy); position:relative; overflow:hidden;}
.markets::before{content:""; position:absolute; inset:0;
  background:radial-gradient(60% 70% at 78% 30%, rgba(31,102,255,.18) 0%, transparent 70%);}
.mk-grid{position:relative; z-index:1; display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center;}
.mk-copy h2{color:#fff; font-size:clamp(38px,5vw,60px); letter-spacing:-.02em; margin:6px 0 16px;}
.mk-lead{color:#DDE6F7; font-size:17.5px; line-height:1.6; max-width:46ch;}
.mk-sub{color:#9FB0CC; font-size:14.5px; line-height:1.65; max-width:48ch; margin-top:14px;}
.markets .btn-line{margin-top:26px; display:inline-flex; align-items:center; gap:10px; color:#fff;
  border:1px solid rgba(255,255,255,.28); background:transparent; padding:14px 22px; border-radius:var(--r-pill);
  font-weight:600; font-size:14.5px; transition:.34s var(--ease);}
.markets .btn-line:hover{background:var(--brand); border-color:var(--brand); transform:translateY(-2px);}
.mk-panel{background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.11); border-radius:var(--r3); padding:10px 10px 14px;
  backdrop-filter:blur(6px); box-shadow:0 30px 70px rgba(0,0,0,.35);}
.mk-panel-top{padding:14px 16px 12px; border-bottom:1px solid rgba(255,255,255,.09); margin-bottom:6px;}
.mk-tag{font-family:var(--mono); font-size:10.5px; letter-spacing:.15em; text-transform:uppercase; color:#7FB0FF;}
.mk-var{display:grid; grid-template-columns:auto 175px 1fr; align-items:baseline; gap:12px; padding:13px 16px; border-radius:12px;}
.mk-var:hover{background:rgba(255,255,255,.04);}
.mk-dot{width:7px; height:7px; border-radius:2px; background:var(--brand); position:relative; top:-1px;}
.mk-var b{color:#fff; font-size:15px; font-weight:600;}
.mk-var .mk-d{color:#9FB0CC; font-size:13px; line-height:1.5;}
.rmark{font-size:.5em; vertical-align:super; opacity:.75; margin-left:1px; font-weight:400;}
@media(max-width:960px){.mk-grid{grid-template-columns:1fr; gap:34px;}
  .mk-var{grid-template-columns:auto 1fr; grid-template-rows:auto auto;} .mk-var .mk-d{grid-column:2;}}
/* comparador: el badge no debe volar fuera de la tarjeta en pantallas chicas */
@media(max-width:960px){
  .nos-badge{left:12px; top:12px; padding:14px 16px; border-radius:12px;}
  .nos-badge .n{font-size:26px;}
  .nos-badge .l{font-size:9px;}
  .cmp{aspect-ratio:4/3.4;}
}

/* ============ COMPARADOR QRO ↔ QROO (nosotros) ============ */
.cmp{position:relative; width:100%; aspect-ratio:4/3.1; border-radius:var(--r3); overflow:hidden;
  box-shadow:0 24px 60px rgba(10,16,32,.22); background:var(--navy);}
.cmp img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block;}
.cmp-top{position:absolute; inset:0; clip-path:inset(0 0 0 var(--pos));}
.cmp-line{position:absolute; top:0; bottom:0; left:var(--pos); width:2px; background:#fff;
  box-shadow:0 0 0 1px rgba(10,16,32,.15); transform:translateX(-1px); z-index:2;}
.cmp-knob{position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:40px; height:40px;
  border-radius:50%; background:#fff; color:var(--navy); display:grid; place-items:center;
  box-shadow:0 6px 18px rgba(10,16,32,.35);}
.cmp-knob svg{width:18px; height:18px;}
.cmp-lbl{position:absolute; bottom:14px; z-index:2; font-family:var(--mono); font-size:10.5px;
  letter-spacing:.14em; text-transform:uppercase; color:#fff; background:rgba(7,11,22,.6);
  padding:7px 12px; border-radius:8px; backdrop-filter:blur(4px);}
.cmp-lbl.la{left:14px;}
.cmp-lbl.lb{right:14px;}
.cmp-range{position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:ew-resize; z-index:3; margin:0;}
.cmp:hover .cmp-knob{transform:translate(-50%,-50%) scale(1.06);}

/* ============ FONDOS AÉREOS (dron · provisionales, se sustituirán por material DJI de INMO1) ============ */
.bgphoto{position:absolute; inset:0; z-index:0; pointer-events:none;}
.bgphoto img{width:100%; height:100%; object-fit:cover; display:block;}
.hero-bg img{opacity:.72; object-position:center center;}
.hero-bg::after{content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(7,11,22,.18) 0%, rgba(7,11,22,.24) 48%, var(--navy) 96%);}
.st-bg img{opacity:.26;}
.st-bg::after{content:""; position:absolute; inset:0;
  background:linear-gradient(90deg, rgba(7,11,22,.85) 0%, rgba(7,11,22,.55) 60%, rgba(7,11,22,.75) 100%);}
.cta-bg img{opacity:.22;}
.cta-bg::after{content:""; position:absolute; inset:0;
  background:radial-gradient(70% 90% at 50% 40%, rgba(7,11,22,.5) 0%, var(--navy) 100%);}
.hero .wrap, .statement .wrap, .cta .wrap{position:relative; z-index:4;}

.cont-map{position:relative; flex:1; display:flex; margin-top:30px; min-height:300px;
  border-radius:20px; overflow:hidden; border:1px solid var(--line);
  box-shadow:0 18px 44px rgba(10,16,32,.10); background:#EDF2FB;}
#map{width:100%; height:100%; min-height:300px; z-index:1;}
#map .leaflet-tile-pane{filter:grayscale(.55) contrast(1.03) brightness(1.02);}
#map .leaflet-control-attribution{font-family:var(--mono); font-size:9.5px; background:rgba(255,255,255,.82);}
.map-pin{width:22px; height:22px; border-radius:50%; background:var(--brand); border:3px solid #fff;
  box-shadow:0 4px 14px rgba(10,16,32,.35); position:relative;}
.map-pin::after{content:""; position:absolute; inset:-11px; border-radius:50%;
  border:2px solid rgba(31,102,255,.45); animation:pulsemap 2.6s var(--ease) infinite;}
@keyframes pulsemap{0%{transform:scale(.6); opacity:.9} 70%{transform:scale(1.35); opacity:0} 100%{opacity:0}}
.map-card{position:absolute; z-index:2; left:18px; bottom:18px; right:auto; max-width:none; text-decoration:none;
  background:rgba(255,255,255,.96); backdrop-filter:blur(8px); border:1px solid var(--line);
  border-radius:999px; padding:12px 18px; box-shadow:0 14px 34px rgba(10,16,32,.16);
  display:inline-flex; align-items:center; transition:.34s var(--ease);}
.map-card:hover{transform:translateY(-3px); border-color:rgba(31,102,255,.4); box-shadow:0 20px 44px rgba(10,16,32,.2);}
.map-k{font-family:var(--mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--brand);}
.map-a{font-size:13.5px; line-height:1.55; color:var(--ink-2);}
.map-go{font-family:var(--mono); font-size:11px; letter-spacing:.06em; color:var(--ink);}
.map-card:hover .map-go{color:var(--brand);}
@media(max-width:900px){.cont-map{min-height:340px;}}
@media(max-width:640px){#map{min-height:300px;} .map-card{left:14px; right:auto; bottom:14px; max-width:none;}}

/* ============ ETAPA (router por necesidad) ============ */
.etapa{background:var(--paper-2);}
.etapa-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:14px;}
.etapa-card{display:flex; flex-direction:column; justify-content:space-between; gap:14px; padding:24px 22px;
  background:#fff; border:1px solid var(--line); border-radius:14px; text-decoration:none; transition:.34s var(--ease);}
.etapa-card p{font-size:15.5px; line-height:1.45; color:var(--ink); font-style:italic; margin:0;}
.etapa-card span{font-family:var(--mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--brand);}
.etapa-card:hover{border-color:rgba(31,102,255,.4); transform:translateY(-4px); box-shadow:0 12px 28px rgba(10,16,32,.08);}
@media(max-width:940px){.etapa-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:600px){.etapa-grid{grid-template-columns:1fr;}}

/* ============ ENTREGABLES (lámina 16) ============ */
.entregables{background:var(--navy);}
.entregables .sec-head h2{color:#fff;}
.entregables .sec-head p{color:#9FB0CC;}
.entr-mosaic{position:relative; border-radius:14px; overflow:hidden; border:1px solid rgba(255,255,255,.12);
  box-shadow:0 24px 60px rgba(0,0,0,.45);}
.entr-mosaic::after{content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg, rgba(11,18,32,.16) 0%, rgba(11,18,32,0) 22%, rgba(11,18,32,0) 74%, rgba(11,18,32,.42) 100%);}
.entr-mosaic img{display:block; width:100%; height:auto;}
.entr-cols{display:grid; grid-template-columns:repeat(4,1fr); gap:26px; margin-top:30px;}
.entr-col{border-top:2px solid rgba(255,255,255,.14); padding-top:16px;}
.entr-ic{width:34px; height:34px; border-radius:8px; background:rgba(31,102,255,.16); border:1px solid rgba(127,176,255,.28);
  display:grid; place-items:center; margin-bottom:12px;}
.entr-ic svg{width:17px; height:17px; fill:none; stroke:#7FB0FF; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round;}
.entr-src{display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:30px; padding-top:22px;
  border-top:1px solid rgba(255,255,255,.10);}
.entr-src-k{font-family:var(--mono); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:#7FB0FF; margin-right:6px;}
.src-chip{font-family:var(--mono); font-size:11px; letter-spacing:.05em; color:#C9D6EE;
  border:1px solid rgba(255,255,255,.16); background:rgba(255,255,255,.04); padding:6px 11px; border-radius:var(--r-pill);}
.entr-col:first-child{border-top-color:var(--brand);}
.entr-k{font-family:var(--mono); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:#7FB0FF; margin-bottom:8px;}
.entr-col h3{color:#fff; font-size:18px; letter-spacing:-.01em; margin-bottom:7px;}
.entr-col p{font-size:13px; color:#9FB0CC; line-height:1.5;}
@media(max-width:900px){.entr-cols{grid-template-columns:1fr 1fr; gap:20px;}}

/* ============ PROCESO + FAQ ============ */
.proceso{background:var(--paper);}
.proc-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:14px;}
.proc-card{position:relative; background:#fff; border:1px solid var(--line); border-radius:14px; padding:22px 20px 20px;}
.proc-n{font-family:var(--mono); font-size:11px; font-weight:600; letter-spacing:.12em; color:var(--brand);
  display:inline-block; border:1px solid #DCE7FD; background:#EDF3FF; padding:4px 9px; border-radius:8px; margin-bottom:12px;}
.proc-card h3{font-size:16.5px; color:var(--ink); margin-bottom:6px;}
.proc-card p{font-size:13.5px; color:var(--ink-3); line-height:1.55;}
.faq{margin-top:44px; max-width:820px;}
.faq-k{font-family:var(--mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-3); margin-bottom:12px;}
.faq-item{border-bottom:1px solid var(--line);}
.faq-item summary{cursor:pointer; padding:15px 0; font-weight:600; font-size:15.5px; color:var(--ink); list-style:none; display:flex; justify-content:space-between; align-items:center;}
.faq-item summary::after{content:"+"; font-family:var(--mono); color:var(--brand); font-size:17px; transition:.22s var(--ease);}
.faq-item[open] summary::after{transform:rotate(45deg);}
.faq-item p{font-size:14px; color:var(--ink-2); line-height:1.6; padding:0 0 16px; max-width:64ch;}
@media(max-width:900px){.proc-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:600px){.proc-grid{grid-template-columns:1fr;}}
.deck-dl{display:flex; flex-direction:column; gap:14px; margin-top:22px;
  padding:20px; background:#F4F7FD; border:1px solid #E2EAF8; border-radius:14px;}
.deck-dl-k{font-family:var(--mono); font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--brand); margin-bottom:4px;}
.deck-dl-info p{font-size:13.5px; color:var(--ink-2); margin:0;}
.btn-deck{background:var(--ink); color:#fff; width:100%; display:inline-flex; align-items:center; justify-content:center; gap:9px; padding:14px 20px; border-radius:12px; border:none; cursor:pointer; font-weight:600; font-size:14px; transition:.34s var(--ease);}
.btn-deck svg{width:16px; height:16px;}
.btn-deck:hover{background:#000; transform:translateY(-2px); box-shadow:0 12px 26px rgba(10,16,32,.25);}


/* ============ ALCANCES (lámina 14) ============ */
.alcances{background:linear-gradient(180deg,var(--paper) 0%, var(--paper-2) 100%);}
.alc-grid{display:grid; grid-template-columns:0.9fr 1.25fr; gap:56px; align-items:stretch;}
.alc-photo{position:relative; border-radius:var(--r3); overflow:hidden; box-shadow:0 18px 44px rgba(10,16,32,.12);}
.alc-photo img{display:block; width:100%; height:100%; object-fit:cover; min-height:420px;}
.alc-photo .alc-cap{position:absolute; top:16px; left:16px; z-index:2; font-family:var(--mono); font-size:10px;
  letter-spacing:.14em; text-transform:uppercase; color:#fff; background:rgba(7,11,22,.55); padding:7px 11px; border-radius:8px;}
.alc-list{display:flex; flex-direction:column;}
.alc-row{display:grid; grid-template-columns:16px 255px 1fr; gap:18px; align-items:baseline;
  padding:13px 0; border-bottom:1px solid var(--line);}
.alc-group{margin-bottom:26px;}
.alc-group:last-child{margin-bottom:0;}
.alc-glabel{display:flex; align-items:baseline; gap:10px; margin-bottom:4px;}
.alc-glabel b{font-family:var(--mono); font-size:13px; font-weight:600; letter-spacing:.22em; color:var(--brand);}
.alc-glabel span{font-family:var(--mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-4);}
.alc-group .alc-row:first-of-type{border-top:1px solid var(--line);}
.alc-sq{width:9px; height:9px; background:var(--brand); border-radius:2px; position:relative; top:1px;}
.alc-row h3{font-size:17px; color:var(--ink); letter-spacing:-.01em; line-height:1.3;}
.alc-row p{font-size:14px; color:var(--ink-3); line-height:1.55; margin:0;}
@media(max-width:1000px){.alc-grid{grid-template-columns:1fr; gap:34px;} .alc-photo img{aspect-ratio:16/10;}
  .alc-row{grid-template-columns:14px 1fr; grid-template-rows:auto auto;} .alc-row p{grid-column:2;}}
@media(max-width:900px){ .merc-grid{grid-template-columns:1fr; max-width:440px; margin:0 auto;} }

/* ============ CLIENTES (marquee) ============ */
.clientes{background:var(--paper); padding-bottom:118px;}
.cli-grid{display:grid; grid-template-columns:repeat(11,1fr); gap:10px; margin-top:26px;}
.cli-tile{border:1px solid #E4EBF7; border-radius:12px; background:#fff; height:62px;
  display:flex; align-items:center; justify-content:center; padding:5px;}
.cli-tile{transition:transform .22s var(--ease), box-shadow .22s var(--ease), border-color .22s var(--ease);}
.cli-tile img{transition:transform .22s var(--ease);}
.cli-tile:hover{border-color:rgba(31,102,255,.45); box-shadow:0 10px 26px rgba(10,16,32,.13); transform:translateY(-3px);}
.cli-tile:hover img{transform:scale(1.06);}
.cli-tile img{width:100%; height:100%; object-fit:contain;}
@media(max-width:1180px){.cli-grid{grid-template-columns:repeat(8,1fr);}}
@media(max-width:940px){.cli-grid{grid-template-columns:repeat(6,1fr);}}
@media(max-width:640px){.cli-grid{grid-template-columns:repeat(4,1fr); gap:8px;}}
@media(max-width:420px){.cli-grid{grid-template-columns:repeat(3,1fr);}}
.marquee{position:relative; overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
          mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);}
.marquee + .marquee{margin-top:26px;}
.mq-track{display:flex; gap:54px; width:max-content; align-items:center; animation:mq 60s linear infinite;}
.marquee.rev .mq-track{animation-direction:reverse; animation-duration:72s;}
.marquee:hover .mq-track{animation-play-state:paused;}
.mq-track img{height:34px; width:auto; object-fit:contain; opacity:.5; filter:grayscale(1);
  transition:.34s var(--ease);}
.mq-track img:hover{opacity:1; filter:grayscale(0);}
@keyframes mq{to{transform:translateX(-50%);}}

/* ============ CTA ============ */
.cta{background:var(--navy); color:#fff; position:relative; overflow:hidden; text-align:center;}
.cta::before{content:""; position:absolute; inset:0;
  background-image:linear-gradient(rgba(127,176,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(127,176,255,.05) 1px,transparent 1px);
  background-size:44px 44px; mask-image:radial-gradient(60% 100% at 50% 50%,#000,transparent);}
.cta .glow{position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:760px; height:420px;
  background:radial-gradient(circle,rgba(31,102,255,.28),transparent 65%); filter:blur(10px);}
.cta-inner{position:relative; max-width:760px; margin:0 auto;}
.cta-inner h2{color:#fff; font-size:clamp(32px,4.4vw,54px); margin:18px 0 18px;}
.cta-inner p{font-size:19px; color:#B9C4DC; font-weight:300; margin-bottom:38px;}
.cta-btns{display:flex; gap:14px; justify-content:center; flex-wrap:wrap;}

/* ============ CONTACTO ============ */
.contacto{background:var(--paper-2); border-top:1px solid var(--line);}
.cont-grid{display:grid; grid-template-columns:1fr 1.05fr; gap:64px; align-items:stretch;}
.cont-grid > div:first-child{display:flex; flex-direction:column;}
.cont-grid h2{font-size:clamp(28px,3.6vw,44px); margin:16px 0 14px;}
.cont-lead{font-size:17px; color:var(--ink-3); font-weight:300;}
.cont-info{margin-top:34px; display:flex; flex-direction:column; gap:20px;}
.cont-item{display:flex; gap:16px;}
.cont-item .ic{flex-shrink:0; width:46px; height:46px; border-radius:12px; background:#fff;
  border:1px solid var(--line); display:grid; place-items:center;}
.cont-item .ic svg{width:21px; height:21px; fill:none; stroke:var(--brand); stroke-width:1.8;}
.cont-item .lbl{font-family:var(--mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-4);}
.cont-item .val{font-size:15px; color:var(--ink); font-weight:400;}
a.val:hover{color:var(--brand);}
.cont-form{background:#fff; border:1px solid var(--line); border-radius:var(--r3); padding:34px; box-shadow:var(--sh-2);}
.cont-form .row{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
.field{margin-bottom:16px;}
.field label{display:block; font-family:var(--mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase;
  color:var(--ink-3); margin-bottom:7px;}
.field input,.field select,.field textarea{width:100%; font-family:inherit; font-size:15px; color:var(--ink);
  background:var(--paper-2); border:1.5px solid var(--line); border-radius:var(--r1); padding:12px 14px; transition:.22s;}
.field textarea{min-height:104px; resize:vertical;}
.field input:focus,.field select:focus,.field textarea:focus{outline:none; border-color:var(--brand);
  background:#fff; box-shadow:0 0 0 4px var(--brand-50);}
.cont-form .btn{width:100%; justify-content:center; margin-top:6px;}
.form-note{font-family:var(--mono); font-size:11.5px; color:var(--ink-4); text-align:center; margin-top:14px;}
@media(max-width:900px){ .cont-grid{grid-template-columns:1fr; gap:44px;} }

/* ============ FOOTER ============ */
.footer{background:var(--navy); color:#fff; padding:74px 0 30px;}
.foot-top{display:grid; grid-template-columns:minmax(250px,1.5fr) minmax(190px,1.15fr) minmax(150px,.9fr) minmax(190px,1fr); gap:clamp(28px,3.2vw,52px); padding-bottom:46px;
  border-bottom:1px solid rgba(255,255,255,.09);}
.foot-brand img{width:auto; height:28px; margin-bottom:18px;}
.foot-brand p{font-size:14px; color:#8593B0; max-width:34ch;}
.foot-col h5{font-family:var(--mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--ink-4); margin-bottom:16px; font-weight:500;}
.foot-col a{display:block; font-size:14.5px; color:#B9C4DC; padding:5px 0; transition:.22s;}
.foot-col a:hover{color:#fff; padding-left:5px;}
.foot-bottom{display:flex; align-items:center; justify-content:space-between; gap:20px; padding-top:26px; flex-wrap:wrap;}
.foot-bottom p{font-family:var(--mono); font-size:11.5px; color:#6E7993;}
.foot-copy{display:grid; gap:10px;}
.foot-social{display:flex; gap:10px;}
.foot-social a{width:38px; height:38px; border-radius:12px; background:rgba(255,255,255,.06);
  display:grid; place-items:center; transition:.34s var(--ease);}
.foot-social a svg{width:18px; height:18px; fill:#B9C4DC; transition:.3s;}
.foot-social a:hover{background:var(--brand); transform:translateY(-3px);}
.foot-social a:hover svg{fill:#fff;}
@media(max-width:820px){
  .footer{padding-top:58px;}
  .foot-top{grid-template-columns:1fr 1fr; gap:38px 32px;}
  .foot-brand{grid-column:1/-1;}
}
@media(max-width:560px){
  .footer{padding:50px 0 24px;}
  .foot-top{grid-template-columns:1fr; gap:30px; padding-bottom:38px;}
  .foot-brand{grid-column:auto;}
  .foot-col h5{margin-bottom:10px;}
  .foot-col a{display:flex; width:100%; padding:3px 0;}
  .foot-bottom,.foot-bl{align-items:flex-start; flex-direction:column; gap:16px;}
  .foot-legal{flex-wrap:wrap; gap:6px 18px;}
  .foot-up{margin-top:12px;}
}

/* ============ CHATBOT ============ */
.chat-fab{position:fixed; bottom:26px; right:26px; z-index:1400; width:60px; height:60px; border-radius:50%;
  background:var(--brand); border:none; cursor:pointer; box-shadow:var(--sh-brand); display:grid; place-items:center;
  transition:.34s var(--ease);}
.chat-fab:hover{transform:scale(1.07) translateY(-2px);}
.chat-fab svg{width:26px; height:26px; fill:#fff; position:absolute; transition:.34s var(--ease);}
.chat-fab .ic-close{opacity:0; transform:rotate(-90deg) scale(.5);}
.chat-fab.open .ic-chat{opacity:0; transform:rotate(90deg) scale(.5);}
.chat-fab.open .ic-close{opacity:1; transform:rotate(0) scale(1);}
.chat-fab .badge{position:absolute; top:-2px; right:-2px; background:var(--signal); color:var(--navy);
  font-family:var(--mono); font-size:11px; font-weight:600; width:20px; height:20px; border-radius:50%;
  display:grid; place-items:center; border:2px solid var(--navy);}
.chat-win{position:fixed; bottom:98px; right:26px; z-index:1400; width:min(380px,calc(100vw - 36px)); height:540px;
  max-height:calc(100vh - 130px); background:#fff; border-radius:var(--r3); box-shadow:var(--sh-3);
  display:flex; flex-direction:column; overflow:hidden; opacity:0; visibility:hidden; transform:translateY(20px) scale(.97);
  transition:.34s var(--ease-2); border:1px solid var(--line);}
.chat-win.open{opacity:1; visibility:visible; transform:translateY(0) scale(1);}
.chat-head{display:flex; align-items:center; gap:13px; padding:18px 20px; background:var(--navy); color:#fff;}
.chat-avatar{position:relative; width:42px; height:42px; border-radius:50%; background:var(--brand); color:#fff;
  display:grid; place-items:center; font-weight:600; font-size:20px;}
.chat-avatar .on{position:absolute; bottom:1px; right:1px; width:11px; height:11px; border-radius:50%;
  background:var(--signal); border:2px solid var(--navy);}
.chat-head .n{font-weight:600; font-size:15px;}
.chat-head .s{font-family:var(--mono); font-size:11px; color:#8593B0;}
.chat-body{flex:1; overflow-y:auto; padding:20px; display:flex; flex-direction:column; gap:10px; background:var(--paper-2);}
.chat-msg{max-width:82%; padding:11px 15px; border-radius:14px; font-size:14.5px; line-height:1.5; animation:msgIn .34s var(--ease);}
@keyframes msgIn{from{opacity:0; transform:translateY(8px)}}
.chat-msg.bot{background:#fff; border:1px solid var(--line); color:var(--ink-2); border-bottom-left-radius:4px; align-self:flex-start;}
.chat-msg.user{background:var(--brand); color:#fff; border-bottom-right-radius:4px; align-self:flex-end;}
.chat-typing{align-self:flex-start; background:#fff; border:1px solid var(--line); border-radius:14px;
  padding:13px 16px; display:flex; gap:5px;}
.chat-typing span{width:7px; height:7px; border-radius:50%; background:var(--ink-4); animation:typ 1.3s infinite;}
.chat-typing span:nth-child(2){animation-delay:.2s;} .chat-typing span:nth-child(3){animation-delay:.4s;}
@keyframes typ{0%,60%,100%{opacity:.3; transform:translateY(0)}30%{opacity:1; transform:translateY(-4px)}}
.chat-opts{display:flex; flex-direction:column; gap:7px; align-self:flex-start; max-width:90%;}
.chat-opt{text-align:left; font-family:inherit; font-size:13.5px; color:var(--brand); background:#fff;
  border:1.5px solid var(--brand-100); border-radius:12px; padding:10px 14px; cursor:pointer; transition:.22s;}
.chat-opt:hover{background:var(--brand); color:#fff; border-color:var(--brand);}
.chat-foot{display:flex; gap:9px; padding:14px; border-top:1px solid var(--line); background:#fff;}
.chat-foot input{flex:1; font-family:inherit; font-size:14px; border:1.5px solid var(--line); border-radius:var(--r-pill);
  padding:11px 16px; transition:.22s;}
.chat-foot input:focus{outline:none; border-color:var(--brand);}
.chat-send{width:42px; height:42px; flex-shrink:0; border-radius:50%; background:var(--brand); border:none;
  cursor:pointer; display:grid; place-items:center; transition:.22s;}
.chat-send:hover{background:var(--brand-2);}
.chat-send svg{width:19px; height:19px; fill:#fff;}

/* ============ whatsapp + form feedback ============ */
.btn-wa{background:#25D366; color:#fff; box-shadow:0 10px 28px rgba(37,211,102,.32);}
.btn-wa:hover{background:#1DBE5A; transform:translateY(-2px); box-shadow:0 16px 36px rgba(37,211,102,.4);}
.btn-wa svg{width:18px; height:18px; fill:#fff; stroke:none;}
.cont-form .btn{width:100%; justify-content:center;}
.form-or{display:flex; align-items:center; gap:14px; margin:14px 0; color:var(--ink-4);
  font-family:var(--mono); font-size:11px; letter-spacing:.1em;}
.form-or::before,.form-or::after{content:""; flex:1; height:1px; background:var(--line);}
.form-status{font-size:13.5px; text-align:center; margin-top:14px; padding:11px 14px; border-radius:var(--r1);
  display:none;}
.form-status.show{display:block;}
.form-status.ok{background:rgba(31,102,255,.10); color:#0E52E6; border:1px solid rgba(31,102,255,.32);}
.form-status.err{background:#FFF0F1; color:#c83b49; border:1px solid #ffd5d9;}
.btn.loading{opacity:.7; pointer-events:none;}
.btn.loading svg{animation:spin .7s linear infinite;}
@keyframes spin{to{transform:rotate(360deg)}}
.chat-opt.wa{background:#25D366; color:#fff; border-color:#25D366; display:flex; align-items:center; gap:9px;}
.chat-opt.wa:hover{background:#1DBE5A; border-color:#1DBE5A;}
.chat-opt.wa svg{width:17px; height:17px; fill:#fff; flex-shrink:0;}

/* ============ reveal ============ */
.reveal{opacity:0; transform:translateY(26px); transition:.5s var(--ease-2);}
.reveal.in{opacity:1; transform:none;}
.reveal.d1{transition-delay:.05s} .reveal.d2{transition-delay:.10s}
.reveal.d3{transition-delay:.15s} .reveal.d4{transition-delay:.20s}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important; transition:none!important;}
  .reveal{opacity:1; transform:none;}
}

/* Los archivos de fuente comparten un lienzo y una caja óptica normalizados. */
.sec-fuentes .fu-mq .fu-track .fu-item img{filter:none !important;}
/* ============ ALCANCES · banda + 4 cuadrantes ============ */
.alc-band{position:relative; margin:6px 0 40px; border-radius:var(--r3); overflow:hidden;
  box-shadow:0 18px 44px rgba(10,16,32,.12); height:210px;}
.alc-band img{width:100%; height:100%; object-fit:cover; object-position:center 42%; display:block;}
.alc-band .alc-cap{position:absolute; top:16px; left:16px; font-family:var(--mono); font-size:10px;
  letter-spacing:.14em; text-transform:uppercase; color:#fff; background:rgba(7,11,22,.55);
  padding:7px 11px; border-radius:8px;}
.alc-quad{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
.q{position:relative; overflow:hidden; background:#fff; border:1px solid var(--line);
  border-radius:var(--r3); padding:28px 30px 26px; cursor:default; outline:none;
  transition:transform .34s var(--ease), box-shadow .34s var(--ease), border-color .34s var(--ease), background .34s var(--ease);}
.q-ghost{position:absolute; right:-6px; bottom:-26px; font-family:var(--display); font-weight:600;
  font-size:110px; line-height:1; letter-spacing:-.04em; color:var(--brand); opacity:.05;
  transition:opacity .4s var(--ease), transform .6s var(--ease); pointer-events:none;}
.q header{display:flex; align-items:baseline; gap:12px; margin-bottom:16px;}
.q-w{font-family:var(--mono); font-size:15px; font-weight:600; letter-spacing:.24em; color:var(--brand); transition:color .34s var(--ease);}
.q-s{font-family:var(--mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-4);}
.q-list{list-style:none; margin:0; padding:0; position:relative; z-index:1;}
.q-list li{padding:11px 0; border-top:1px solid var(--line); display:grid; grid-template-columns:190px 1fr; gap:16px; align-items:baseline;}
.q-list li b{font-size:15.5px; font-weight:600; color:var(--ink); letter-spacing:-.01em;}
.q-list li span{font-size:13.5px; line-height:1.55; color:var(--ink-3); transition:color .34s var(--ease);}
.q-n{position:absolute; top:22px; right:26px; font-family:var(--mono); font-size:11px; color:var(--ink-4);}
.q:hover, .q:focus-visible, .q.on{transform:translateY(-6px); border-color:rgba(31,102,255,.45);
  box-shadow:0 22px 50px rgba(10,16,32,.13);}
.q:hover .q-ghost, .q:focus-visible .q-ghost, .q.on .q-ghost{opacity:.11; transform:translateY(-6px) scale(1.04);}
.q:hover .q-list li span, .q.on .q-list li span{color:var(--ink-2);}
@media(max-width:900px){.alc-quad{grid-template-columns:1fr;} .alc-band{height:170px;}
  .q-list li{grid-template-columns:1fr; gap:3px;} .q-ghost{font-size:84px;}}

/* ============ MENÚ LATERAL (móvil) ============ */
.drawer{display:flex; flex-direction:column; padding:22px 20px 0;
  background:linear-gradient(170deg,#0B1322 0%, var(--navy) 55%);}
.drawer::before{content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(90% 55% at 100% 0%, rgba(31,102,255,.20), transparent 62%);}
.drawer > *{position:relative; z-index:1;}
.drawer-top{margin-bottom:22px; padding-bottom:18px; border-bottom:1px solid rgba(255,255,255,.10);}
.drawer-tools{display:flex; align-items:center; gap:10px;}
.drawer-scroll{flex:1; overflow-y:auto; overscroll-behavior:contain; padding-bottom:26px;
  -webkit-overflow-scrolling:touch; scrollbar-width:thin;}
.drawer-scroll::-webkit-scrollbar{width:3px;}
.drawer-scroll::-webkit-scrollbar-thumb{background:rgba(255,255,255,.16); border-radius:3px;}
.drawer .drawer-lbl{margin:26px 0 12px;}
.drawer-scroll > .drawer-lbl:first-child{margin-top:0;}

/* enlaces de navegación */
.drawer a.dl{display:grid; grid-template-columns:36px 1fr 18px; align-items:center; gap:12px;
  padding:12px 14px; margin-bottom:6px; border-radius:12px; border:1px solid rgba(255,255,255,.07);
  background:rgba(255,255,255,.03); color:#fff; text-decoration:none;
  transition:background .22s var(--ease), border-color .22s var(--ease), transform .22s var(--ease);}
.drawer a.dl .dl-ic{width:36px; height:36px; border-radius:12px; display:grid; place-items:center;
  background:rgba(31,102,255,.14); border:1px solid rgba(127,176,255,.20); transition:.22s var(--ease);}
.drawer a.dl .dl-ic svg{width:17px; height:17px; fill:none; stroke:#9EC4FF; stroke-width:1.7;
  stroke-linecap:round; stroke-linejoin:round; transition:.22s var(--ease);}
.drawer a.dl:hover .dl-ic{background:var(--brand); border-color:var(--brand);}
.drawer a.dl:hover .dl-ic svg{stroke:#fff;}
.drawer a.dl .dl-t{display:flex; flex-direction:column; gap:1px; min-width:0;}
.drawer a.dl .dl-t b{font-size:16px; font-weight:500; letter-spacing:-.01em;}
.drawer a.dl .dl-t i{font-style:normal; font-family:var(--mono); font-size:9.5px; letter-spacing:.08em;
  text-transform:uppercase; color:#A9B9D4; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.drawer a.dl .dl-a{width:18px; height:18px; color:#5C7BB5; transition:transform .22s var(--ease), color .22s var(--ease);}
.drawer a.dl:active, .drawer a.dl:hover{background:rgba(31,102,255,.18); border-color:rgba(127,176,255,.45); transform:translateX(3px);}
.drawer a.dl:hover .dl-a{color:#fff; transform:translateX(3px);}


/* contacto directo */
.dw-contact{display:flex; flex-direction:column; gap:8px;}
.dw-c{display:grid; grid-template-columns:38px 1fr; gap:12px; align-items:center; text-decoration:none;
  padding:11px 13px; border-radius:12px; border:1px solid rgba(255,255,255,.07);
  background:rgba(255,255,255,.03); transition:.22s var(--ease);}
.dw-c:hover{background:rgba(31,102,255,.16); border-color:rgba(127,176,255,.4);}
.dw-ic{width:38px; height:38px; border-radius:12px; background:rgba(31,102,255,.16);
  border:1px solid rgba(127,176,255,.26); display:grid; place-items:center;}
.dw-ic svg{width:17px; height:17px; color:#9EC4FF;}
.dw-t{display:flex; flex-direction:column; gap:2px; min-width:0;}
.dw-t i{font-style:normal; font-family:var(--mono); font-size:9.5px; letter-spacing:.12em;
  text-transform:uppercase; color:#A2B2CC;}
.dw-t b{font-size:14px; font-weight:500; color:#fff; line-height:1.35;}
.dw-t em{font-style:normal; font-size:12px; color:#9FB0CC;}

/* mini mapa */
.dw-map{position:relative; display:block; margin-top:14px; border-radius:14px; overflow:hidden;
  border:1px solid rgba(255,255,255,.10); height:130px;}
.dw-map img{width:100%; height:100%; object-fit:cover; opacity:.72; transition:.34s var(--ease);}
.dw-map:hover img{opacity:.95; transform:scale(1.04);}
.dw-map-pin{position:absolute; top:50%; left:50%; width:14px; height:14px; margin:-7px 0 0 -7px;
  border-radius:50%; background:var(--brand); border:3px solid #fff; box-shadow:0 3px 10px rgba(0,0,0,.45);}
.dw-map-go{position:absolute; right:10px; bottom:10px; display:inline-flex; align-items:center; gap:6px;
  font-family:var(--mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:#fff;
  background:rgba(7,11,22,.72); padding:7px 11px; border-radius:8px; backdrop-filter:blur(4px);}
.dw-map-go svg{width:11px; height:11px;}

/* whatsapp */
.dw-wa{display:flex; align-items:center; justify-content:center; gap:10px; margin-top:14px;
  background:#25D366; color:#fff; text-decoration:none; font-weight:600; font-size:14.5px;
  padding:14px; border-radius:12px; transition:.22s var(--ease);}
.dw-wa svg{width:19px; height:19px;}
.dw-wa:hover{background:#1DBE5A; transform:translateY(-2px);}

/* legales */
.dw-legal{display:flex; flex-wrap:wrap; gap:14px; margin-top:22px; padding-top:16px;
  border-top:1px solid rgba(255,255,255,.08);}
.dw-legal a{font-family:var(--mono); font-size:10.5px; letter-spacing:.06em; color:#A2B2CC; text-decoration:none;}
.dw-legal a:hover{color:#fff;}

/* =====================================================================
   VISTA NOCTURNA
   Se activa con  <html data-theme="dark">.  Todo se apoya en las mismas
   variables del sistema de diseño: lo que era papel pasa a tinta y al
   revés. Debajo van solo las excepciones (colores que estaban fijos).
   ===================================================================== */
html{color-scheme:light;}
html[data-theme="dark"]{color-scheme:dark;}

html[data-theme="dark"]{
  --paper:#0A101C; --paper-2:#0D1524; --paper-3:#111B2E;
  --line:rgba(255,255,255,.09); --line-2:rgba(255,255,255,.16);
  --ink:#EEF3FC; --ink-2:#BDC9DF; --ink-3:#8E9CB8; --ink-4:#6B7994;
  --navy:#05080F; --navy-2:#080D18; --navy-3:#0C1424;
  --brand-100:rgba(31,102,255,.16); --brand-50:rgba(31,102,255,.09);
  --sh-1:0 2px 8px rgba(0,0,0,.4); --sh-2:0 10px 30px rgba(0,0,0,.45);
  --sh-3:0 24px 60px rgba(0,0,0,.55);
}
html[data-theme="dark"] body{background:var(--paper); color:var(--ink-2);}

/* ---- superficies que tenían blanco fijo ---- */
html[data-theme="dark"] .prob-point,
html[data-theme="dark"] .cap-card,
html[data-theme="dark"] .cap-mini,
html[data-theme="dark"] .merc-card,
html[data-theme="dark"] .etapa-card,
html[data-theme="dark"] .proc-card,
html[data-theme="dark"] .alc-card,
html[data-theme="dark"] .persp-card,
html[data-theme="dark"] .q,
html[data-theme="dark"] .cont-form,
html[data-theme="dark"] .chat-win,
html[data-theme="dark"] .chat-foot{background:var(--paper-2); border-color:var(--line);}
html[data-theme="dark"] .cap-ic,
html[data-theme="dark"] .metodo-num,
html[data-theme="dark"] .cont-item .ic{background:var(--paper-3); border-color:var(--line);}
html[data-theme="dark"] .chat-msg.bot{background:var(--paper-3); color:var(--ink);}
html[data-theme="dark"] .chat-typing{background:var(--paper-3);}
html[data-theme="dark"] .chat-opt{background:var(--paper-2); border-color:var(--line-2); color:var(--ink);}
html[data-theme="dark"] .btn-light{background:var(--paper-2); color:var(--ink); border-color:var(--line-2);}
html[data-theme="dark"] .btn-nav:hover{background:var(--paper-3);}
html[data-theme="dark"] .field input,
html[data-theme="dark"] .field select,
html[data-theme="dark"] .field textarea{background:var(--paper-3); border-color:var(--line-2); color:var(--ink);}
html[data-theme="dark"] .field input:focus,
html[data-theme="dark"] .field select:focus,
html[data-theme="dark"] .field textarea:focus{background:var(--paper-2);}
html[data-theme="dark"] .field input::placeholder,
html[data-theme="dark"] .field textarea::placeholder{color:var(--ink-4);}

/* ---- barra superior ---- */
html[data-theme="dark"] .hdr.scrolled{background:rgba(10,16,28,.88); border-bottom-color:var(--line);}
html[data-theme="dark"] .hdr.scrolled .lg-blue{display:none;}
html[data-theme="dark"] .hdr.scrolled .lg-white{display:block;}
html[data-theme="dark"] .hdr.scrolled nav a{color:var(--ink-2);}
html[data-theme="dark"] .hdr.scrolled nav a:hover{color:#fff;}
html[data-theme="dark"] .scrolled .langbtn,
html[data-theme="dark"] .scrolled .themebtn{border-color:var(--line-2); color:var(--ink);}
html[data-theme="dark"] .scrolled .langbtn .on{color:var(--ink);}
html[data-theme="dark"] .scrolled .langbtn .off{color:var(--ink-4);}
html[data-theme="dark"] .hdr.scrolled .burger{color:var(--ink);}

/* ---- secciones que ya eran oscuras: se hunden un poco más ---- */
html[data-theme="dark"] .statement,
html[data-theme="dark"] .markets,
html[data-theme="dark"] .entregables,
html[data-theme="dark"] .cta,
html[data-theme="dark"] footer{background:var(--navy);}
html[data-theme="dark"] .why{background:var(--navy-2);}

/* ---- logotipos: los de clientes viven sobre ficha clara ---- */
html[data-theme="dark"] .cli-tile{background:#F2F5FB; border-color:rgba(255,255,255,.14);}
html[data-theme="dark"] .cli-tile img{opacity:.92;}
/* los institucionales pasan a silueta blanca */
html[data-theme="dark"] .sec-fuentes{background:var(--paper-2); border-color:var(--line);}
/* invertirlos daba bloques blancos (varios ya son claros): mejor ficha clara, como los clientes */
html[data-theme="dark"] .fu-item{background:#F1F4FA; border-color:rgba(255,255,255,.14);}
html[data-theme="dark"] .sec-fuentes .fu-mq .fu-track .fu-item:hover img{opacity:1; transform:scale(1.05);}

/* ---- mapas y mosaico ---- */
html[data-theme="dark"] #map .leaflet-tile-pane{filter:grayscale(.4) invert(.92) hue-rotate(180deg) brightness(.95) contrast(1.05);}
html[data-theme="dark"] .cont-map{border-color:var(--line);}
html[data-theme="dark"] .entr-mosaic{border-color:rgba(255,255,255,.14);}
html[data-theme="dark"] .merc-map img{filter:brightness(.92);}

/* ---- detalles ---- */
html[data-theme="dark"] .alc-quad .q-ghost{opacity:.09;}
html[data-theme="dark"] .cmp-line,
html[data-theme="dark"] .cmp-knob{background:#E9EFFA;}
html[data-theme="dark"] .src-chip{background:rgba(255,255,255,.05);}
html[data-theme="dark"] .form-legal a{border-bottom-color:var(--line-2);}
html[data-theme="dark"] .deck-dl{background:var(--paper-3); border-color:var(--line);}
html[data-theme="dark"] .btn-deck{background:var(--brand);}
html[data-theme="dark"] .btn-deck:hover{background:var(--brand-2);}
html[data-theme="dark"] .faq-item summary{color:var(--ink);}
html[data-theme="dark"] table th{color:var(--ink-3);}
html[data-theme="dark"] ::selection{background:rgba(31,102,255,.35); color:#fff;}

/* ---- el botón ---- */
.themebtn{display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px;
  border:1px solid rgba(255,255,255,.26); background:transparent; border-radius:50%; cursor:pointer;
  color:#fff; margin-left:8px; transition:.22s var(--ease); flex:none;}
.themebtn:hover{border-color:var(--brand); background:rgba(31,102,255,.18);}
.themebtn svg{width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.8;
  stroke-linecap:round; stroke-linejoin:round;}
.themebtn .ic-sun{display:none;}
html[data-theme="dark"] .themebtn .ic-sun{display:block;}
html[data-theme="dark"] .themebtn .ic-moon{display:none;}
.scrolled .themebtn{border-color:var(--line); color:var(--ink);}
.themebtn.dw{color:#fff; border-color:rgba(255,255,255,.26);}
@media(max-width:900px){.hdr .themebtn{display:none;}}

/* ============ TRAYECTORIA EN NÚMEROS ============ */
.trayectoria{background:var(--navy); position:relative; overflow:hidden;}
.trayectoria::before{content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(70% 60% at 15% 0%, rgba(31,102,255,.16), transparent 65%);}
.trayectoria .wrap{position:relative; z-index:1;}
.trayectoria .sec-head h2{color:#fff;}
.trayectoria .sec-head p{color:#9FB0CC;}
.tn-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.10); border-radius:var(--r3); overflow:hidden;}
.tn-card{background:var(--navy); padding:30px 26px 28px; display:flex; flex-direction:column; gap:7px;
  transition:background .34s var(--ease);}
.tn-card:hover{background:rgba(31,102,255,.12);}
.tn-n{font-size:clamp(34px,3.6vw,46px); font-weight:600; letter-spacing:-.03em; line-height:1;
  color:#fff; transition:color .34s var(--ease);}
.tn-card:hover .tn-n{color:#9EC4FF;}
.tn-card b{font-family:var(--mono); font-size:11px; letter-spacing:.13em; text-transform:uppercase;
  color:#7FB0FF; font-weight:500;}
.tn-card i{font-style:normal; font-size:13px; line-height:1.55; color:#9FB0CC;}
.tn-nota{margin-top:22px; font-size:12px; line-height:1.6; color:#6E7E9C; max-width:78ch;}
html[data-theme="dark"] .trayectoria{background:var(--navy);}
html[data-theme="dark"] .tn-card{background:var(--navy);}
@media(max-width:800px){.tn-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){.tn-grid{grid-template-columns:1fr;} .tn-card{padding:24px 20px;}}

/* ============ PLAZAS (cobertura por ciudad) ============ */
.plazas{margin-top:52px; padding-top:38px; border-top:1px solid var(--line);}
.plz-h{font-size:clamp(20px,2.1vw,25px); font-weight:600; color:var(--ink); letter-spacing:-.02em;}
.plz-lead{margin-top:9px; max-width:76ch; color:var(--ink-3); font-size:14.5px; line-height:1.65;}
.plz-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; margin-top:26px;
  background:var(--line); border:1px solid var(--line); border-radius:var(--r2); overflow:hidden;}
.plz-item{background:var(--paper); padding:20px 20px 18px; transition:background .34s var(--ease);}
.plz-item:hover{background:var(--paper-2);}
.plz-item b{display:block; font-size:14.5px; font-weight:600; color:var(--ink); line-height:1.35; letter-spacing:-.01em;}
.plz-z{display:inline-block; margin-top:7px; font-family:var(--mono); font-size:9.5px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--brand); border:1px solid rgba(31,102,255,.28);
  background:rgba(31,102,255,.06); padding:3px 8px; border-radius:var(--r-pill);}
.plz-item p{margin-top:9px; font-size:12.5px; line-height:1.55; color:var(--ink-3);}
html[data-theme="dark"] .plz-item{background:var(--paper-2);}
html[data-theme="dark"] .plz-item:hover{background:var(--paper-3);}
@media(max-width:1000px){.plz-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){.plz-grid{grid-template-columns:1fr;}}

/* ---- disciplinas bajo el titular ---- */
.hero-disc{margin-top:18px; display:flex; flex-wrap:wrap; align-items:center; gap:9px 0; max-width:none;}
.hero-disc span{font-family:var(--mono); font-size:11px; letter-spacing:.13em; text-transform:uppercase;
  color:#9EC4FF; padding:0 16px; border-left:1px solid rgba(127,176,255,.30); line-height:1;}
.hero-disc span:first-child{padding-left:0; border-left:none;}
@media(max-width:820px){.hero-disc span{font-size:9.5px; letter-spacing:.09em; padding:0 10px;}}

/* ============ BARRA DE ACCIÓN PERSISTENTE ============ */
.cta-bar{position:fixed; left:0; right:0; bottom:0; z-index:60; transform:translateY(110%);
  transition:transform .6s var(--ease); background:rgba(10,16,32,.94); backdrop-filter:blur(14px);
  border-top:1px solid rgba(255,255,255,.12); box-shadow:0 -10px 40px rgba(0,0,0,.28);}
.cta-bar.on{transform:translateY(0);}
.cta-bar .wrap{display:flex; align-items:center; justify-content:space-between; gap:26px; padding:15px 28px;}
.cta-bar-txt{display:flex; flex-direction:column; gap:2px; min-width:0;}
.cta-bar-txt b{color:#fff; font-size:15px; font-weight:600; letter-spacing:-.01em;}
.cta-bar-txt span{color:#9FB0CC; font-size:13px;}
.cta-bar-act{display:flex; gap:10px; flex:none;}
.cta-bar-btn{display:inline-flex; align-items:center; gap:8px; padding:11px 20px; border-radius:var(--r-pill);
  font-size:14px; font-weight:600; text-decoration:none; white-space:nowrap; transition:.22s var(--ease);}
.cta-bar-btn.primary{background:var(--brand); color:#fff;}
.cta-bar-btn.primary:hover{background:var(--brand-2); transform:translateY(-2px); box-shadow:0 12px 30px rgba(31,102,255,.42);}
.cta-bar-btn.wa{background:rgba(37,211,102,.14); color:#25D366; border:1px solid rgba(37,211,102,.42);}
.cta-bar-btn.wa:hover{background:#25D366; color:#fff; transform:translateY(-2px);}
.cta-bar-btn.wa svg{width:17px; height:17px;}
@media(max-width:820px){
  .cta-bar .wrap{padding:10px 14px; gap:10px; flex-wrap:nowrap;}
  .cta-bar-txt span{display:none;}
  .cta-bar-txt b{font-size:13px; line-height:1.25;}
  .cta-bar-btn{padding:10px 14px; font-size:12.5px;}
  .cta-bar-btn.wa{padding:10px 12px;}
  .cta-bar-btn.wa span, .cta-bar-btn.wa{font-size:0;}
  .cta-bar-btn.wa svg{width:18px; height:18px;}
}
/* el chat sube cuando la barra está a la vista, para no encimarse */
body.barra-visible .chat-fab{bottom:calc(var(--barra-h, 68px) + 16px);}
.chat-fab{transition:bottom .34s var(--ease);}

.nav-blog{position:relative;}
.nav-blog::after{content:''; position:absolute; top:-2px; right:-7px; width:5px; height:5px; border-radius:50%; background:var(--signal);}

/* =====================================================================
   ESCALA TIPOGRÁFICA — una sola definición para todo el sitio.
   Cualquier título nuevo hereda de aquí; no se declaran tamaños sueltos.
   ===================================================================== */
.sec h2, .sec-head h2{
  font-size:clamp(28px,3.4vw,44px);
  font-weight:600; letter-spacing:-.032em; line-height:1.08;
}
/* declarativos: statement, Markets y las llamadas a la acción */
.statement h2, .markets h2, .cta h2{
  font-size:clamp(30px,3.9vw,50px);
  font-weight:600; letter-spacing:-.035em; line-height:1.06;
}
.entregables h2, .trayectoria h2{
  font-size:clamp(28px,3.4vw,44px); font-weight:600; letter-spacing:-.032em; line-height:1.08;
}
/* subsecciones */
.merc-body h3, .plz-h{
  font-size:22px; font-weight:600; letter-spacing:-.02em; line-height:1.25;
}
/* tarjetas */
.svc-body h3, .entr-col h3, .proc-card h3, .cap-card h3,
.etapa-card h3, .why-card h3, .prob-point h3, .metodo-step h3,
.sec h3:not(.plz-h):not(.merc-body h3), .q-list li b{
  font-size:18px; font-weight:600; letter-spacing:-.012em; line-height:1.35;
}
/* bajadas de sección: una sola medida */
.sec-head p, .sec-lead, .st-sub{
  font-size:17px; font-weight:300; line-height:1.68;
}
/* etiquetas mono: una sola medida */
.kicker, .eyebrow, .st-eyebrow, .merc-tag, .entr-k, .plz-z, .tn-card b{
  font-size:11px; font-weight:500; letter-spacing:.16em; text-transform:uppercase;
}
@media(max-width:640px){
  .merc-body h3, .plz-h{font-size:19px;}
  .svc-body h3, .entr-col h3, .proc-card h3, .cap-card h3,
  .etapa-card h3, .why-card h3{font-size:17px;}
  .sec-head p, .sec-lead{font-size:16px;}
}

/* ============ OTROS MERCADOS · acordeón ============ */
.otros{margin-top:34px;}
.otros-head{display:flex; align-items:center; gap:14px; margin-bottom:14px;}
.otros-k{font-family:var(--mono); font-size:11px; font-weight:500; letter-spacing:.16em;
  text-transform:uppercase; color:var(--brand); flex:none;}
.otros-rule{height:1px; background:var(--line); flex:1;}
.otros-n{font-family:var(--mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--ink-4); flex:none;}

.acc{display:flex; gap:4px; height:300px; border-radius:var(--r3); overflow:hidden;}
.acc-p{position:relative; flex:1; min-width:0; overflow:hidden; text-decoration:none;
  border-radius:var(--r2); cursor:pointer; background:var(--paper-3);
  transition:flex-grow .6s var(--ease-2, cubic-bezier(.16,1,.3,1));}
.acc-p img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  filter:grayscale(1) brightness(.72) contrast(1.05);
  transform:scale(1.06); transition:filter .6s var(--ease), transform .6s var(--ease);}
.acc-vl{position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(7,11,22,.10) 0%, rgba(7,11,22,.30) 45%, rgba(7,11,22,.88) 100%);
  transition:background .6s var(--ease);}

/* rótulo vertical cuando el panel está cerrado */
.acc-h{position:absolute; left:50%; bottom:18px; max-height:calc(100% - 40px); overflow:hidden; transform:translateX(-50%) rotate(180deg);
  writing-mode:vertical-rl; font-family:var(--mono); font-size:10.5px; letter-spacing:.16em;
  text-transform:uppercase; color:rgba(255,255,255,.82); white-space:nowrap;
  transition:opacity .34s var(--ease); pointer-events:none;}

/* ficha cuando el panel está abierto */
.acc-v{position:absolute; left:0; right:0; bottom:0; padding:20px 22px; display:flex;
  flex-direction:column; gap:3px; opacity:0; transform:translateY(10px);
  transition:opacity .6s var(--ease) .12s, transform .6s var(--ease) .12s; pointer-events:none;}
.acc-v b{font-size:18px; font-weight:600; letter-spacing:-.015em; color:#fff; line-height:1.2; white-space:nowrap;}
.acc-v i{font-style:normal; font-family:var(--mono); font-size:9.5px; letter-spacing:.14em;
  text-transform:uppercase; color:#9EC4FF;}
.acc-v em{font-style:normal; font-size:12.5px; line-height:1.45; color:#C3CFE4; margin-top:5px;
  max-width:30ch;}

/* estado abierto */
.acc-p.on{flex-grow:6;}
.acc-p.on img{filter:grayscale(0) brightness(.86) contrast(1); transform:scale(1);}
.acc-p.on .acc-vl{background:linear-gradient(180deg, rgba(7,11,22,.05) 0%, rgba(7,11,22,.18) 40%, rgba(7,11,22,.86) 100%);}
.acc-p.on .acc-h{opacity:0;}
.acc-p.on .acc-v{opacity:1; transform:none;}
.acc-p:focus-visible{outline:2px solid var(--brand); outline-offset:2px;}

html[data-theme="dark"] .acc-p{background:var(--paper-3);}
html[data-theme="dark"] .otros-rule{background:var(--line);}

@media(max-width:900px){
  .acc{height:210px; gap:3px; overflow-x:auto; scroll-snap-type:x mandatory;}
  .acc-p{flex:0 0 22%; scroll-snap-align:start;}
  .acc-p.on{flex:0 0 46%;}
  .acc-v b{font-size:16px;} .acc-v em{display:none;}
  .otros-n{display:none;}
}
@media(max-width:560px){
  .acc{height:200px; overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch;}
  .acc-p{flex:0 0 44%; scroll-snap-align:start;}
  .acc-p.on{flex:0 0 74%;}
  .acc::-webkit-scrollbar{display:none;}
  /* en móvil el rótulo va horizontal abajo, no vertical: los nombres largos no caben */
  .acc-h{writing-mode:horizontal-tb; transform:translateX(-50%); bottom:14px; font-size:9px;
    letter-spacing:.08em; max-width:92%; white-space:normal; text-align:center; line-height:1.3;}
  .acc-v{padding:14px 15px;} .acc-v b{font-size:15px; white-space:normal;} .acc-v i{font-size:8.5px;}
}

/* ---- controles del mapa: heredan el peso de Leaflet, se alinean a la marca ---- */
#map .leaflet-bar a{font-weight:600 !important; font-family:var(--display);}

/* ============ CREDENCIALES (sobre el muro de logos) ============ */
.creds{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line);
  border:1px solid var(--line); border-radius:var(--r2); overflow:hidden; margin:0 0 34px;}
.cred{background:var(--paper); padding:18px 20px; display:flex; flex-direction:column; gap:5px;
  transition:background .34s var(--ease);}
.cred:hover{background:var(--paper-2);}
.cred-n{font-size:15px; font-weight:600; color:var(--ink); letter-spacing:-.012em;}
.cred-d{font-size:12.5px; line-height:1.5; color:var(--ink-3);}
html[data-theme="dark"] .cred{background:var(--paper-2);}
html[data-theme="dark"] .cred:hover{background:var(--paper-3);}
@media(max-width:900px){.creds{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){.creds{grid-template-columns:1fr;}}

/* ============ CASOS ============ */
.casos-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
.caso{display:flex; flex-direction:column; border:1px solid var(--line); border-radius:var(--r3);
  overflow:hidden; background:var(--paper); transition:transform .34s var(--ease), box-shadow .34s var(--ease), border-color .34s var(--ease);}
.caso:hover{transform:translateY(-5px); border-color:rgba(31,102,255,.4); box-shadow:0 22px 50px rgba(10,16,32,.12);}
.caso-top{display:flex; align-items:center; gap:10px; padding:18px 22px 0;}
.caso-tag{font-family:var(--mono); font-size:9.5px; font-weight:500; letter-spacing:.14em; text-transform:uppercase;
  color:var(--brand); border:1px solid rgba(31,102,255,.28); background:rgba(31,102,255,.06);
  padding:4px 9px; border-radius:var(--r1);}
.caso-loc{font-family:var(--mono); font-size:9.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-4);}
.caso-body{padding:16px 22px 20px; display:flex; flex-direction:column; gap:14px; flex:1;}
.caso-blk b{display:block; font-family:var(--mono); font-size:9.5px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--ink-4); margin-bottom:6px;}
.caso-blk p{font-size:14px; line-height:1.6; color:var(--ink-2);}
.caso-res{padding:18px 22px; border-top:1px solid var(--line); background:var(--paper-2);
  display:flex; align-items:baseline; gap:11px;}
.caso-n{font-size:27px; font-weight:600; letter-spacing:-.03em; color:var(--brand); line-height:1;}
.caso-d{font-size:12.5px; color:var(--ink-3); line-height:1.4;}
.casos-nota{margin-top:22px; font-size:12px; line-height:1.6; color:var(--ink-4); max-width:70ch;}
html[data-theme="dark"] .caso{background:var(--paper-2);}
html[data-theme="dark"] .caso-res{background:var(--paper-3);}
@media(max-width:1000px){.casos-grid{grid-template-columns:1fr;}}

/* ============ SECCIÓN ACTIVA EN EL MENÚ ============ */
header nav a{position:relative;}
header nav a::before{content:""; position:absolute; left:50%; bottom:-7px; width:0; height:2px;
  background:var(--brand); border-radius:2px; transform:translateX(-50%);
  transition:width .34s var(--ease);}
header nav a.aqui::before{width:16px;}
header nav a.aqui{color:#fff;}
.hdr.scrolled nav a.aqui{color:var(--ink);}

/* ============ VOLVER ARRIBA (dentro de la barra de acción) ============ */
.cta-bar-up{display:inline-grid; place-items:center; width:42px; height:42px; flex:none;
  border-radius:50%; border:1px solid rgba(255,255,255,.20); background:rgba(255,255,255,.05);
  color:#C9D6EE; cursor:pointer; transition:.22s var(--ease);}
.cta-bar-up:hover{background:rgba(255,255,255,.12); color:#fff; border-color:rgba(255,255,255,.34);
  transform:translateY(-2px);}
.cta-bar-up svg{width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:2;
  stroke-linecap:round; stroke-linejoin:round;}
@media(max-width:820px){.cta-bar-up{width:38px; height:38px;}}

/* ============ el ancla de sección respeta la barra fija ============ */
section[id]{scroll-margin-top:82px;}

.foot-up{display:inline-flex; align-items:center; gap:8px; background:transparent;
  border:1px solid rgba(255,255,255,.18); color:#C9D6EE; font-family:var(--mono); font-size:10.5px;
  letter-spacing:.1em; text-transform:uppercase; padding:9px 15px; border-radius:var(--r-pill);
  cursor:pointer; transition:.22s var(--ease); margin:0;}
.foot-up:hover{border-color:rgba(255,255,255,.42); color:#fff; transform:translateY(-2px);}
.foot-up svg{width:13px; height:13px;}

/* ---- sección activa en el menú: orientación en un sitio de una página ---- */
header nav a{position:relative;}
header nav a::after{content:""; position:absolute; left:50%; bottom:-6px; width:0; height:2px;
  background:var(--brand); border-radius:2px; transform:translateX(-50%);
  transition:width .34s var(--ease); pointer-events:none;}
header nav a.on::after{width:calc(100% - 6px);}
header nav a.on{color:#fff;}
.hdr.scrolled nav a.on{color:var(--brand);}
html[data-theme="dark"] .hdr.scrolled nav a.on{color:#7FB0FF;}

/* ---- mensaje de la barra según el ancho disponible ---- */
.cta-corta{display:none;}
@media(max-width:820px){
  .cta-larga{display:none;}
  .cta-corta{display:block;}
}
@media(max-width:520px){
  /* en pantallas estrechas el texto compite con los botones: fuera */
  .cta-bar-txt{display:none;}
  .cta-bar .wrap{justify-content:flex-end;}
  .cta-bar-btn.primary{flex:1; justify-content:center;}
}

/* =====================================================================
   AFINADO FINAL
   ===================================================================== */

/* ---- equilibrio de líneas en títulos ----
   Sin esto, un título de tres líneas deja la última con una o dos
   palabras sueltas. text-wrap:balance reparte el texto entre líneas.
   Los navegadores que no lo soportan simplemente lo ignoran.        */
h1, h2, h3, .sec-head p, .hero-sub, .art-lead{text-wrap:balance;}
p, li{text-wrap:pretty;}

/* ---- tarjetas de la misma retícula, a la misma altura ----
   En grid cada fila se ajusta a su contenido, así que dos filas de
   tarjetas quedaban con 20 px de diferencia. Se igualan.            */
.why-grid, .tn-grid, .plz-grid, .creds, .svc-grid, .cap-grid{grid-auto-rows:1fr;}
.why-card, .tn-card, .plz-item, .cred, .cap-card{height:100%;}

/* ---- el hero no debe quebrar el titular en un punto raro ---- */
.hero h1{text-wrap:balance; max-width:16ch;}
@media(max-width:820px){.hero h1{max-width:none;}}

/* ---- enlaces contextuales dentro del cuerpo ---- */
.faq-item p a, .metodo-step p a, .sec-lead a{
  color:var(--brand); border-bottom:1px solid rgba(31,102,255,.3); transition:border-color .22s var(--ease);}
.faq-item p a:hover, .metodo-step p a:hover{border-bottom-color:var(--brand);}
html[data-theme="dark"] .faq-item p a{color:#7FB0FF;}

/* el chat se aparta cuando el pie está a la vista: ahí van los legales */
body.en-pie .chat-fab{opacity:0; pointer-events:none; transform:translateY(12px) scale(.9);}
.chat-fab{transition:bottom .34s var(--ease), opacity .34s var(--ease), transform .34s var(--ease);}

/* ============ MARKETS · capacidades ============ */
.mk-func{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; margin:44px 0 0;
  background:rgba(255,255,255,.10); border:1px solid rgba(255,255,255,.10);
  border-radius:var(--r2); overflow:hidden;}
.mk-func > div{background:var(--navy); padding:16px 18px; transition:background .34s var(--ease);}
.mk-func > div:hover{background:rgba(31,102,255,.12);}
.mk-func b{display:block; font-size:14px; font-weight:600; color:#fff; letter-spacing:-.012em;}
.mk-func span{display:block; margin-top:5px; font-size:12.5px; line-height:1.5; color:#9FB0CC;}
@media(max-width:1100px){.mk-func{grid-template-columns:1fr 1fr;}}
@media(max-width:700px){.mk-func{grid-template-columns:1fr;}}

/* =====================================================================
   PANTALLAS MUY ESTRECHAS (≤360 px · iPhone SE y Android de entrada)
   El contenedor con 28 px de margen a cada lado no cabía: el documento
   medía 329 px en un viewport de 320.
   ===================================================================== */
@media(max-width:380px){
  .wrap{padding:0 16px;}
  .hero h1{font-size:clamp(26px,8.4vw,34px);}
  .hero-disc span{font-size:8.5px; letter-spacing:.07em; padding:0 8px;}
  .hero-sub{font-size:15px;}
  .hero-cta{gap:10px;}
  .hero-cta .btn{padding:12px 18px; font-size:14px;}
  .hero-stats{gap:16px 12px; padding-top:22px;}
  .hstat .n{font-size:24px;}
  .hstat .l{font-size:9px; letter-spacing:.05em;}
  .sec{padding:72px 0;}
  .sec h2, .sec-head h2{font-size:26px;}
  .statement h2, .markets h2, .cta h2{font-size:27px;}
  .sec-head p, .sec-lead{font-size:15px;}
  .cta-bar .wrap{padding:9px 12px;}
  .cta-bar-btn{padding:9px 12px; font-size:12px;}
  .acc{height:170px;}
  .acc-p{flex:0 0 52%;}
  .acc-p.on{flex:0 0 80%;}
  .cred, .plz-item, .tn-card{padding:16px 16px;}
  .merc-card, .caso, .svc-card{border-radius:var(--r2);}
  .drawer{padding:18px 16px 0;}
}
/* ---- todo lo que pueda desbordar, contenido ---- */
img, svg, video, table, pre{max-width:100%;}
.wrap, section, footer{overflow-x:clip;}

/* =====================================================================
   MÓVIL EN HORIZONTAL — el hero ocupaba toda la pantalla y no se veía
   nada más hasta desplazar.
   ===================================================================== */
@media(max-height:520px) and (orientation:landscape){
  .hero{min-height:auto; padding:96px 0 56px;}
  .hero h1{font-size:clamp(26px,4.6vw,38px);}
  .hero-sub{margin:16px 0 24px; font-size:15px;}
  .hero-cta{margin-bottom:28px;}
  .hero-stats{padding-top:20px; gap:14px 18px;}
  .hero-scroll{display:none;}
  .sec{padding:64px 0;}
}

/* =====================================================================
   PANTALLAS GRANDES — el contenido no debe quedar perdido al centro
   ===================================================================== */
@media(min-width:1800px){
  .wrap{max-width:1440px;}
  .hero h1{font-size:74px;}
  .hero-sub{font-size:21px; max-width:62ch;}
}

/* ---- entrada táctil: área mínima de 44 px, criterio de accesibilidad ---- */
@media(hover:none){
  .btn, .cta-bar-btn, .themebtn, .langbtn, .burger,
  footer a, .faq-item summary{min-height:44px; display:inline-flex; align-items:center;}
  .faq-item summary{padding-top:12px; padding-bottom:12px;}
}

/* =====================================================================
   AJUSTE FINO PARA MÓVIL
   ===================================================================== */
@media(max-width:640px){
  /* las etiquetas en monoespaciada bajaban a 9 px: ilegibles en pantalla
     chica. Se sube el mínimo y se afloja el espaciado entre letras.     */
  .kicker, .eyebrow, .st-eyebrow, .merc-tag, .entr-k, .plz-z, .tn-card b,
  .caso-tag, .caso-loc, .q-s, .proc-n, .acc-h, .hstat .l, .dl-t i, .dw-t i,
  .otros-k, .otros-n, .cred-d, .mk-func span{
    font-size:10.5px; letter-spacing:.08em;
  }
  .hstat .l{font-size:9.5px;}
  .caso-blk b, .plz-z{font-size:10px;}
}

/* ---- área táctil mínima de 44 px (criterio de accesibilidad) ---- */
@media(hover:none){
  .drawer-close, .cta-bar-up, .themebtn{min-width:44px; min-height:44px;}
  #map .leaflet-control-zoom a{width:38px !important; height:38px !important; line-height:38px !important;}
  .foot-col a{display:flex; width:100%;}
}

/* últimos rezagados de tamaño en móvil */
@media(max-width:640px){
  .dl-t i, .hero-disc span{font-size:10.5px !important;}
  .acc-v i, .fu-item i{font-size:10px !important;}
  #map .leaflet-control-zoom a{width:38px; height:38px; line-height:38px; font-size:18px;}
}

/* ---- piso tipográfico: nada por debajo de 9.5 px en ningún tamaño ----
   Las etiquetas en monoespaciada son un recurso de diseño válido, pero
   por debajo de este umbral dejan de leerse cómodamente.            */
.acc-v i, .fu-item i, .fu-tx i, .caso-loc, .cred-d{font-size:9.5px;}
.rmark{font-size:.58em;}

a.plz-item{text-decoration:none; display:block;}
a.plz-item:hover b{color:var(--brand);}

/* ============ A QUIÉN SERVIMOS ============ */
.perf-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line);
  border:1px solid var(--line); border-radius:var(--r3); overflow:hidden; grid-auto-rows:1fr;}
.perf{background:var(--paper); padding:26px 24px 24px; display:flex; flex-direction:column; gap:14px;
  transition:background .22s var(--ease);}
.perf:hover{background:var(--paper-2);}
.perf-h b{display:block; font-size:16.5px; font-weight:600; color:var(--ink); letter-spacing:-.015em;
  line-height:1.3;}
.perf-h span{display:block; margin-top:6px; font-size:12.5px; line-height:1.55; color:var(--ink-4);}
.perf ul{list-style:none; display:flex; flex-direction:column; gap:9px; margin-top:2px;}
.perf li{position:relative; padding-left:19px; font-size:13.5px; line-height:1.55; color:var(--ink-2);}
.perf li::before{content:""; position:absolute; left:0; top:8px; width:6px; height:6px;
  background:var(--brand); border-radius:2px;}
html[data-theme="dark"] .perf{background:var(--paper-2);}
html[data-theme="dark"] .perf:hover{background:var(--paper-3);}
@media(max-width:1000px){.perf-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:640px){.perf-grid{grid-template-columns:1fr;} .perf{padding:22px 20px;}}

/* Markets: las funciones ocupan el ancho completo bajo las dos columnas */
.mk-func > div{padding:18px 20px;}
.mk-func b{font-size:14.5px;}
.mk-func span{font-size:13px; line-height:1.55; color:#A6B6CF;}
@media(max-width:1100px){.mk-func{grid-template-columns:1fr 1fr;}}
@media(max-width:700px){.mk-func{grid-template-columns:1fr;}}

/* sectores: ocho tarjetas en dos filas de cuatro */
.sect-grid{grid-template-columns:repeat(4,1fr);}
@media(max-width:1100px){.sect-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.sect-grid{grid-template-columns:1fr;}}

/* Utilidades sin atributos style: compatibles con CSP estricta. */
.no-scroll{overflow:hidden}.mt-30{margin-top:30px}.mt-28{margin-top:28px}.justify-center{justify-content:center}.hp-field{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);opacity:0}.badge.hidden{display:none}
.progress.pos-0{width:0%}.cmp.pos-0{--pos:0%}
.progress.pos-1{width:1%}.cmp.pos-1{--pos:1%}
.progress.pos-2{width:2%}.cmp.pos-2{--pos:2%}
.progress.pos-3{width:3%}.cmp.pos-3{--pos:3%}
.progress.pos-4{width:4%}.cmp.pos-4{--pos:4%}
.progress.pos-5{width:5%}.cmp.pos-5{--pos:5%}
.progress.pos-6{width:6%}.cmp.pos-6{--pos:6%}
.progress.pos-7{width:7%}.cmp.pos-7{--pos:7%}
.progress.pos-8{width:8%}.cmp.pos-8{--pos:8%}
.progress.pos-9{width:9%}.cmp.pos-9{--pos:9%}
.progress.pos-10{width:10%}.cmp.pos-10{--pos:10%}
.progress.pos-11{width:11%}.cmp.pos-11{--pos:11%}
.progress.pos-12{width:12%}.cmp.pos-12{--pos:12%}
.progress.pos-13{width:13%}.cmp.pos-13{--pos:13%}
.progress.pos-14{width:14%}.cmp.pos-14{--pos:14%}
.progress.pos-15{width:15%}.cmp.pos-15{--pos:15%}
.progress.pos-16{width:16%}.cmp.pos-16{--pos:16%}
.progress.pos-17{width:17%}.cmp.pos-17{--pos:17%}
.progress.pos-18{width:18%}.cmp.pos-18{--pos:18%}
.progress.pos-19{width:19%}.cmp.pos-19{--pos:19%}
.progress.pos-20{width:20%}.cmp.pos-20{--pos:20%}
.progress.pos-21{width:21%}.cmp.pos-21{--pos:21%}
.progress.pos-22{width:22%}.cmp.pos-22{--pos:22%}
.progress.pos-23{width:23%}.cmp.pos-23{--pos:23%}
.progress.pos-24{width:24%}.cmp.pos-24{--pos:24%}
.progress.pos-25{width:25%}.cmp.pos-25{--pos:25%}
.progress.pos-26{width:26%}.cmp.pos-26{--pos:26%}
.progress.pos-27{width:27%}.cmp.pos-27{--pos:27%}
.progress.pos-28{width:28%}.cmp.pos-28{--pos:28%}
.progress.pos-29{width:29%}.cmp.pos-29{--pos:29%}
.progress.pos-30{width:30%}.cmp.pos-30{--pos:30%}
.progress.pos-31{width:31%}.cmp.pos-31{--pos:31%}
.progress.pos-32{width:32%}.cmp.pos-32{--pos:32%}
.progress.pos-33{width:33%}.cmp.pos-33{--pos:33%}
.progress.pos-34{width:34%}.cmp.pos-34{--pos:34%}
.progress.pos-35{width:35%}.cmp.pos-35{--pos:35%}
.progress.pos-36{width:36%}.cmp.pos-36{--pos:36%}
.progress.pos-37{width:37%}.cmp.pos-37{--pos:37%}
.progress.pos-38{width:38%}.cmp.pos-38{--pos:38%}
.progress.pos-39{width:39%}.cmp.pos-39{--pos:39%}
.progress.pos-40{width:40%}.cmp.pos-40{--pos:40%}
.progress.pos-41{width:41%}.cmp.pos-41{--pos:41%}
.progress.pos-42{width:42%}.cmp.pos-42{--pos:42%}
.progress.pos-43{width:43%}.cmp.pos-43{--pos:43%}
.progress.pos-44{width:44%}.cmp.pos-44{--pos:44%}
.progress.pos-45{width:45%}.cmp.pos-45{--pos:45%}
.progress.pos-46{width:46%}.cmp.pos-46{--pos:46%}
.progress.pos-47{width:47%}.cmp.pos-47{--pos:47%}
.progress.pos-48{width:48%}.cmp.pos-48{--pos:48%}
.progress.pos-49{width:49%}.cmp.pos-49{--pos:49%}
.progress.pos-50{width:50%}.cmp.pos-50{--pos:50%}
.progress.pos-51{width:51%}.cmp.pos-51{--pos:51%}
.progress.pos-52{width:52%}.cmp.pos-52{--pos:52%}
.progress.pos-53{width:53%}.cmp.pos-53{--pos:53%}
.progress.pos-54{width:54%}.cmp.pos-54{--pos:54%}
.progress.pos-55{width:55%}.cmp.pos-55{--pos:55%}
.progress.pos-56{width:56%}.cmp.pos-56{--pos:56%}
.progress.pos-57{width:57%}.cmp.pos-57{--pos:57%}
.progress.pos-58{width:58%}.cmp.pos-58{--pos:58%}
.progress.pos-59{width:59%}.cmp.pos-59{--pos:59%}
.progress.pos-60{width:60%}.cmp.pos-60{--pos:60%}
.progress.pos-61{width:61%}.cmp.pos-61{--pos:61%}
.progress.pos-62{width:62%}.cmp.pos-62{--pos:62%}
.progress.pos-63{width:63%}.cmp.pos-63{--pos:63%}
.progress.pos-64{width:64%}.cmp.pos-64{--pos:64%}
.progress.pos-65{width:65%}.cmp.pos-65{--pos:65%}
.progress.pos-66{width:66%}.cmp.pos-66{--pos:66%}
.progress.pos-67{width:67%}.cmp.pos-67{--pos:67%}
.progress.pos-68{width:68%}.cmp.pos-68{--pos:68%}
.progress.pos-69{width:69%}.cmp.pos-69{--pos:69%}
.progress.pos-70{width:70%}.cmp.pos-70{--pos:70%}
.progress.pos-71{width:71%}.cmp.pos-71{--pos:71%}
.progress.pos-72{width:72%}.cmp.pos-72{--pos:72%}
.progress.pos-73{width:73%}.cmp.pos-73{--pos:73%}
.progress.pos-74{width:74%}.cmp.pos-74{--pos:74%}
.progress.pos-75{width:75%}.cmp.pos-75{--pos:75%}
.progress.pos-76{width:76%}.cmp.pos-76{--pos:76%}
.progress.pos-77{width:77%}.cmp.pos-77{--pos:77%}
.progress.pos-78{width:78%}.cmp.pos-78{--pos:78%}
.progress.pos-79{width:79%}.cmp.pos-79{--pos:79%}
.progress.pos-80{width:80%}.cmp.pos-80{--pos:80%}
.progress.pos-81{width:81%}.cmp.pos-81{--pos:81%}
.progress.pos-82{width:82%}.cmp.pos-82{--pos:82%}
.progress.pos-83{width:83%}.cmp.pos-83{--pos:83%}
.progress.pos-84{width:84%}.cmp.pos-84{--pos:84%}
.progress.pos-85{width:85%}.cmp.pos-85{--pos:85%}
.progress.pos-86{width:86%}.cmp.pos-86{--pos:86%}
.progress.pos-87{width:87%}.cmp.pos-87{--pos:87%}
.progress.pos-88{width:88%}.cmp.pos-88{--pos:88%}
.progress.pos-89{width:89%}.cmp.pos-89{--pos:89%}
.progress.pos-90{width:90%}.cmp.pos-90{--pos:90%}
.progress.pos-91{width:91%}.cmp.pos-91{--pos:91%}
.progress.pos-92{width:92%}.cmp.pos-92{--pos:92%}
.progress.pos-93{width:93%}.cmp.pos-93{--pos:93%}
.progress.pos-94{width:94%}.cmp.pos-94{--pos:94%}
.progress.pos-95{width:95%}.cmp.pos-95{--pos:95%}
.progress.pos-96{width:96%}.cmp.pos-96{--pos:96%}
.progress.pos-97{width:97%}.cmp.pos-97{--pos:97%}
.progress.pos-98{width:98%}.cmp.pos-98{--pos:98%}
.progress.pos-99{width:99%}.cmp.pos-99{--pos:99%}
.progress.pos-100{width:100%}.cmp.pos-100{--pos:100%}
