:root{--navy:#061a40;--navy2:#0a2d70;--cyan:#21d9ff;--purple:#8f3cff;--ink:#102345;--muted:#65728a;--white:#fff;--radius:26px;--shadow:0 26px 80px rgba(4,22,54,.18)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Manrope,system-ui,sans-serif;color:var(--ink);background:#fff}img{max-width:100%;display:block}a{text-decoration:none;color:inherit}.container{width:min(1220px,calc(100% - 40px));margin:auto}.site-header{position:fixed;z-index:100;top:0;left:0;right:0;height:74px;padding:0 32px;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(180deg,rgba(2,10,28,.8),rgba(2,10,28,.1));backdrop-filter:blur(10px)}.brand img{height:45px;width:auto}.desktop-nav{display:flex;align-items:center;gap:25px;color:#fff;font-size:.86rem}.desktop-nav a{opacity:.88}.desktop-nav a:hover{opacity:1}.nav-cta{border:1px solid rgba(255,255,255,.38);padding:10px 18px;border-radius:999px}.menu-toggle{display:none;background:none;color:#fff;border:0;font-size:1.6rem}.hero{min-height:820px;position:relative;overflow:hidden;display:flex;align-items:center;color:#fff;background:#031229}.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(2,12,33,.94) 0%,rgba(2,14,38,.78) 28%,rgba(5,20,49,.28) 58%,rgba(6,17,45,.12) 100%),linear-gradient(0deg,rgba(3,18,44,.22),rgba(3,18,44,.08))}.hero-content{position:relative;z-index:3;width:min(1220px,calc(100% - 40px));margin:auto}.hero-content p{max-width:570px;color:rgba(255,255,255,.78);font-size:1.05rem;line-height:1.75}.eyebrow{display:inline-block;font-size:.72rem;font-weight:800;letter-spacing:.14em;color:#8ff1ff;margin-bottom:20px}.eyebrow.dark{color:#0b62c9}.eyebrow.cyan{color:var(--cyan)}h1{font-size:clamp(4rem,7vw,7.1rem);line-height:.92;letter-spacing:-.065em;margin:0 0 28px;max-width:830px}h1 span{background:linear-gradient(90deg,#21d9ff,#7197ff,#bd3cff);-webkit-background-clip:text;color:transparent}h2{font-size:clamp(2.35rem,4.1vw,4.3rem);line-height:1.04;letter-spacing:-.045em;margin:0 0 24px}h3{font-size:1.25rem;margin:0 0 10px}.hero-actions{display:flex;gap:12px;margin-top:30px}.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:13px;padding:14px 20px;font:700 .9rem Manrope;cursor:pointer}.primary{background:linear-gradient(90deg,#1479ff,#8d35ff);color:#fff;box-shadow:0 12px 32px rgba(67,89,255,.25)}.ghost{color:#fff;border:1px solid rgba(255,255,255,.45);background:rgba(255,255,255,.04)}.section{padding:112px 0}.white{background:#fff}.navy{background:linear-gradient(180deg,#071c46,#061630);color:#fff}.history-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:64px;align-items:center}.history-copy p{font-size:1.06rem;line-height:1.78;color:var(--muted)}.big-photo img{border-radius:30px;box-shadow:var(--shadow);width:100%}.timeline{display:grid;grid-template-columns:repeat(4,1fr);margin-top:70px;border-top:1px solid #dce4f1}.timeline div{padding:26px 0}.timeline strong{display:block;font-size:2rem;color:#123b7a}.timeline span{color:var(--muted)}.lab{position:relative;overflow:hidden;background:#111052;color:#fff;min-height:520px;display:flex;align-items:center}.lab:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,17,57,.66) 0%,rgba(14,44,112,.48) 48%,rgba(35,22,99,.38) 100%);pointer-events:none}.lab-bg{position:absolute;inset:0;background:url('../images/fondo-laboratorio.webp') center center/cover no-repeat fixed;opacity:.78;filter:saturate(1.08) contrast(1.03);pointer-events:none}.lab-copy{position:relative;z-index:3;max-width:880px;text-shadow:0 2px 18px rgba(0,0,0,.18)}.lab-copy p{font-size:1.16rem;line-height:1.75;color:rgba(255,255,255,.78)}.section-heading{max-width:790px;margin-bottom:52px}.section-heading.center{text-align:center;margin-left:auto;margin-right:auto}.section-heading p{color:rgba(255,255,255,.68);line-height:1.7}.white .section-heading p{color:var(--muted)}.tech-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.photo-card{overflow:hidden;border-radius:25px;background:#0b244f;border:1px solid rgba(255,255,255,.12);box-shadow:0 20px 58px rgba(0,0,0,.16)}.photo-card img{width:100%;aspect-ratio:16/8.9;object-fit:cover}.photo-card-copy{padding:24px}.photo-card-copy span{font-size:.76rem;font-weight:800;color:var(--cyan)}.photo-card-copy p{margin:0;color:rgba(255,255,255,.68);line-height:1.6}.process{background:linear-gradient(180deg,#0a2c6b,#102b76 48%,#441f88);color:#fff}.process-stack{display:grid;gap:34px}.process-row{display:grid;grid-template-columns:1.22fr .78fr;gap:46px;align-items:center;background:rgba(5,18,53,.25);border:1px solid rgba(255,255,255,.13);border-radius:30px;padding:20px;overflow:hidden}.process-row.reverse{grid-template-columns:.78fr 1.22fr}.process-row.reverse .process-media{order:2}.process-row.reverse>div:not(.process-media){order:1}.process-media{overflow:hidden;border-radius:22px;line-height:0}.process-row img{width:100%;border-radius:22px;aspect-ratio:16/8.8;object-fit:cover;transition:transform 1.25s cubic-bezier(.2,.7,.2,1);will-change:transform}.process-row:hover .process-media img{transform:scale(1.055)}.process-row>div{padding:22px}.process-row span{font-size:.72rem;letter-spacing:.11em;color:#7cf1ff;font-weight:800}.process-row h3{font-size:1.8rem;margin:10px 0}.process-row p{color:rgba(255,255,255,.72);line-height:1.7;margin:0}.ecosystem-wrap{position:relative;overflow:hidden;border-radius:34px;background:linear-gradient(135deg,#06183e,#102d6c 52%,#381f70);padding:52px}.ecosystem-art{position:absolute;inset:0;opacity:.12}.ecosystem-art img{width:100%;height:100%;object-fit:cover;filter:blur(1px)}.ecosystem-cards{position:relative;z-index:2;display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:22px;align-items:stretch}.brand-card{display:flex;flex-direction:column;justify-content:center;background:rgba(255,255,255,.96);border:1px solid rgba(255,255,255,.72);border-radius:24px;padding:30px;box-shadow:0 22px 55px rgba(0,0,0,.18);text-align:center;transition:.25s}.brand-card:hover{transform:translateY(-5px)}.brand-card img{height:72px;max-width:88%;object-fit:contain;margin:0 auto 18px}.main-brand img{height:90px}.brand-card strong{display:block;margin:8px 0;color:#153c7a}.brand-card p{color:var(--muted);line-height:1.6}.brand-card span{font-weight:800;color:#5e45ec}.stats{padding:66px 0;background:linear-gradient(105deg,#061a40,#123f8b 52%,#5a269d);color:#fff;position:relative;overflow:hidden}.stats-bg{position:absolute;inset:0;background:url('../images/fondo-corporativo-2.webp') center center/cover no-repeat fixed;opacity:.14;pointer-events:none}.stats-grid{position:relative;z-index:2;display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.stat-item{display:flex;align-items:center;gap:18px;border-top:1px solid rgba(255,255,255,.24);padding:22px 8px 8px 0;min-height:112px}.stat-item>div{border:0;padding:0}.stat-icon{width:58px;height:58px;flex:0 0 58px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(145deg,rgba(33,217,255,.15),rgba(143,60,255,.16));border:1px solid rgba(255,255,255,.18);box-shadow:inset 0 0 24px rgba(33,217,255,.06),0 10px 28px rgba(3,16,45,.18);transition:.3s ease}.stat-icon svg{width:28px;height:28px;fill:none;stroke:#fff;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 7px rgba(33,217,255,.35))}.stat-item:hover .stat-icon{transform:translateY(-3px);border-color:rgba(96,229,255,.46);box-shadow:inset 0 0 28px rgba(33,217,255,.1),0 12px 32px rgba(54,75,255,.2)}.stats-grid strong{display:block;font-size:2.25rem;line-height:1.05}.stats-grid .stat-item span:not(.stat-icon){display:block;margin-top:6px;color:rgba(255,255,255,.72)}.facility-grid{display:grid;grid-template-columns:1.4fr .8fr;grid-template-rows:auto auto;gap:24px}.facility{margin:0;position:relative;overflow:hidden;border-radius:28px;box-shadow:var(--shadow);min-height:300px}.facility.feature{grid-row:1/3;min-height:625px}.facility img{width:100%;height:100%;object-fit:cover}.facility figcaption{position:absolute;left:0;right:0;bottom:0;padding:60px 26px 24px;background:linear-gradient(transparent,rgba(4,17,43,.94));color:#fff}.facility figcaption strong{display:block;font-size:1.3rem}.facility figcaption span{display:block;margin-top:7px;color:rgba(255,255,255,.72);line-height:1.55}.team-layout{display:grid;grid-template-columns:1.2fr .8fr;gap:44px;align-items:stretch}.team-hero{margin:0}.team-hero img{width:100%;height:100%;min-height:560px;object-fit:cover;border-radius:30px}.department-list{display:grid;gap:14px}.department-list article{display:grid;grid-template-columns:52px 1fr;gap:16px;align-items:start;padding:23px;border-radius:21px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.13)}.department-list span{font-size:1.35rem;font-weight:800;color:var(--cyan)}.department-list b{font-size:1.04rem}.department-list p{margin:6px 0 0;color:rgba(255,255,255,.65);line-height:1.6}.contact{background:linear-gradient(180deg,#071b43,#0b2e70);color:#fff;padding-bottom:0}.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:60px}.contact-grid p{color:rgba(255,255,255,.68);line-height:1.7}.contact-links{display:grid;gap:10px;margin-top:25px}.contact-links a{font-size:1.15rem;font-weight:800}.contact-links span{color:rgba(255,255,255,.62)}.contact-form{background:#fff;color:var(--ink);padding:26px;border-radius:26px;display:grid;grid-template-columns:1fr 1fr;gap:16px}.contact-form label{display:grid;gap:7px;font-size:.82rem;font-weight:800}.contact-form input,.contact-form textarea{width:100%;border:1px solid #dce5f2;border-radius:12px;background:#f7faff;padding:12px 13px;font:inherit}.full{grid-column:1/-1}.map{height:430px;margin-top:70px}.map iframe{width:100%;height:100%;border:0}.whatsapp{position:fixed;right:28px;bottom:28px;width:68px;height:68px;z-index:90;border-radius:50%;box-shadow:0 14px 34px rgba(0,0,0,.3);transition:.25s}.whatsapp:hover{transform:translateY(-4px) scale(1.06)}.whatsapp img{width:100%;height:100%;border-radius:50%}footer{background:#05132f;color:#fff;padding:26px 0}.footer-inner{display:flex;align-items:center;justify-content:space-between}.footer-inner img{height:34px;width:auto}.footer-inner span{color:rgba(255,255,255,.55);font-size:.82rem}.reveal{opacity:0;transform:translateY(24px);transition:.7s}.reveal.visible{opacity:1;transform:none}@media(max-width:1000px){.desktop-nav{display:none}.menu-toggle{display:block}.history-grid,.team-layout{grid-template-columns:1fr}.tech-grid{grid-template-columns:1fr 1fr}.ecosystem-cards{grid-template-columns:1fr}.facility-grid{grid-template-columns:1fr}.facility.feature{grid-row:auto;min-height:420px}.process-row,.process-row.reverse{grid-template-columns:1fr}.process-row.reverse .process-media,.process-row.reverse>div:not(.process-media){order:initial}}@media(max-width:720px){.site-header{padding:0 18px}.brand img{height:36px}.hero{min-height:740px}.hero-overlay{background:linear-gradient(90deg,rgba(2,12,33,.96),rgba(2,14,38,.72)),linear-gradient(0deg,rgba(3,18,44,.35),rgba(3,18,44,.12))}.hero-photo{object-position:62% center}.hero-content{padding-top:80px}.hero-actions{flex-direction:column;align-items:flex-start}.timeline,.stats-grid{grid-template-columns:repeat(2,1fr)}.stat-item{gap:12px;min-height:100px}.stat-icon{width:48px;height:48px;flex-basis:48px;border-radius:15px}.stat-icon svg{width:24px;height:24px}.stats-grid strong{font-size:1.8rem}.tech-grid{grid-template-columns:1fr}.section{padding:78px 0}.process-row{padding:14px}.ecosystem-wrap{padding:22px}.contact-grid{grid-template-columns:1fr}.contact-form{grid-template-columns:1fr}.full{grid-column:auto}.whatsapp{width:62px;height:62px;right:18px;bottom:18px}.footer-inner{gap:20px;flex-direction:column;align-items:flex-start}}
@media(prefers-reduced-motion:reduce){.process-row img{transition:none}.process-row:hover .process-media img{transform:none}}
/* Lightbox instalaciones */
.lightbox-item{cursor:zoom-in}.lightbox-item>img{transition:transform .9s cubic-bezier(.2,.7,.2,1),filter .35s ease}.lightbox-item:hover>img{transform:scale(1.025);filter:brightness(1.04)}.zoom-hint{position:absolute;top:18px;right:18px;z-index:3;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:rgba(4,17,43,.62);border:1px solid rgba(255,255,255,.3);color:#fff;font-size:1.45rem;line-height:1;backdrop-filter:blur(10px);opacity:0;transform:translateY(-4px);transition:.25s ease}.lightbox-item:hover .zoom-hint,.lightbox-item:focus .zoom-hint{opacity:1;transform:none}.lightbox-item:focus-visible{outline:3px solid var(--cyan);outline-offset:4px}.lightbox{position:fixed;inset:0;z-index:9999;background:rgba(1,7,20,.92);display:flex;align-items:center;justify-content:center;padding:42px 92px;opacity:0;visibility:hidden;transition:opacity .22s ease,visibility .22s ease;backdrop-filter:blur(10px)}.lightbox.open{opacity:1;visibility:visible}.lightbox-stage{width:min(1500px,calc(100vw - 180px));height:min(86vh,960px);display:flex;align-items:center;justify-content:center}.lightbox-stage img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:18px;box-shadow:0 28px 90px rgba(0,0,0,.5);transform:scale(.975);opacity:.6;transition:transform .22s ease,opacity .22s ease}.lightbox.open .lightbox-stage img{transform:scale(1);opacity:1}.lightbox-close,.lightbox-nav{position:absolute;border:1px solid rgba(255,255,255,.25);background:rgba(7,25,61,.68);color:#fff;backdrop-filter:blur(10px);cursor:pointer;transition:.2s ease}.lightbox-close{top:24px;right:28px;width:48px;height:48px;border-radius:50%;font-size:2rem;line-height:1}.lightbox-nav{top:50%;transform:translateY(-50%);width:54px;height:70px;border-radius:18px;font-size:2.6rem}.lightbox-prev{left:24px}.lightbox-next{right:24px}.lightbox-close:hover,.lightbox-nav:hover{background:rgba(33,217,255,.17);border-color:rgba(33,217,255,.7)}body.lightbox-open{overflow:hidden}@media(max-width:720px){.lightbox{padding:70px 18px 26px}.lightbox-stage{width:100%;height:78vh}.lightbox-nav{width:42px;height:56px;font-size:2rem;background:rgba(7,25,61,.78)}.lightbox-prev{left:10px}.lightbox-next{right:10px}.lightbox-close{top:14px;right:14px}.zoom-hint{opacity:1;width:36px;height:36px;font-size:1.2rem}}
@media(prefers-reduced-motion:reduce){.lightbox-item>img,.zoom-hint,.lightbox,.lightbox-stage img{transition:none}}

/* Contadores de cifras */
.count-up{font-variant-numeric:tabular-nums;letter-spacing:-.025em}
.stat-text-reveal{display:inline-block;opacity:.18;transform:translateY(7px);transition:opacity .55s ease,transform .55s ease}
.stats.counting .stat-text-reveal.is-visible{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.stat-text-reveal{opacity:1;transform:none;transition:none}}

/* Formulario de contacto */
.form-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}.form-submit[disabled]{opacity:.68;cursor:wait;transform:none}.form-status{display:none;padding:14px 16px;border-radius:12px;font-size:.92rem;font-weight:700;line-height:1.45}.form-status.is-visible{display:block}.form-status.success{color:#0c5b3a;background:#e9fff4;border:1px solid #b7efd2}.form-status.error{color:#8a2130;background:#fff0f2;border:1px solid #f2bdc5}.contact-form input.is-invalid,.contact-form textarea.is-invalid{border-color:#d8435b;box-shadow:0 0 0 3px rgba(216,67,91,.1)}

/* Validación visual de campos */
.contact-form input.is-valid,.contact-form textarea.is-valid{border-color:#22a06b;box-shadow:0 0 0 3px rgba(34,160,107,.10);background:#f7fffb}.contact-form input.is-invalid,.contact-form textarea.is-invalid{border-color:#d8435b;box-shadow:0 0 0 3px rgba(216,67,91,.10);background:#fffafb}.field-error{display:block;min-height:1em;margin-top:-2px;color:#b42f44;font-size:.72rem;font-weight:700;line-height:1.35}


/* Parallax real de la sección Laboratorio Digital */
@media (prefers-reduced-motion: reduce){.lab-bg{background-attachment:scroll}}
@media (max-width:720px){.lab-bg{background-attachment:scroll;background-position:center center}}

/* Parallax casi estático en Laboratorio y Cifras */
@media (prefers-reduced-motion: reduce){.stats-bg{background-attachment:scroll}}
@media (max-width:720px){.stats-bg{background-attachment:scroll;background-position:center center}}

/* v20 — Hero como ventana sobre fondo fijo */
@media (min-width:721px){
  .hero{
    background-image:url('../images/gallery/hero-laboratorio.webp');
    background-size:cover;
    background-position:center center;
    background-repeat:no-repeat;
    background-attachment:fixed;
  }
  .hero-photo{
    display:none;
  }
}
@media (max-width:720px){
  .hero{
    background-image:none;
    background-attachment:scroll;
  }
  .hero-photo{
    display:block;
  }
}
@media (prefers-reduced-motion: reduce){
  .hero{
    background-attachment:scroll;
  }
}

/* v38 — Fondo fijo real en móvil mediante capas independientes recortadas al viewport.
   Cada sección actúa como su propia ventana y dos fondos pueden convivir al mismo tiempo. */
.mobile-fixed-bg{display:none}
@media (max-width:720px){
  body.mobile-fixed-ready .mobile-fixed-bg{
    display:block;
    position:fixed;
    inset:0;
    z-index:0;
    pointer-events:none;
    background-repeat:no-repeat;
    background-size:cover;
    background-position:center center;
    opacity:0;
    clip-path:inset(100vh 0 0 0);
    will-change:clip-path,opacity,background-position;
    transform:translateZ(0);
  }

  /* Las tres secciones quedan transparentes para dejar ver la capa fija solo dentro
     del recorte que calcula JavaScript. */
  body.mobile-fixed-ready .hero,
  body.mobile-fixed-ready .lab,
  body.mobile-fixed-ready .stats{
    position:relative;
    z-index:1;
    isolation:isolate;
  }

  body.mobile-fixed-ready .hero{
    background:transparent;
  }
  body.mobile-fixed-ready .hero-photo{
    opacity:0;
    visibility:hidden;
  }
  body.mobile-fixed-ready .hero-overlay{
    z-index:1;
  }
  body.mobile-fixed-ready .hero-content{
    z-index:2;
  }

  body.mobile-fixed-ready .lab{
    background:transparent;
  }
  body.mobile-fixed-ready .lab-bg{
    opacity:0!important;
    visibility:hidden;
  }
  body.mobile-fixed-ready .lab:after{
    z-index:1;
  }
  body.mobile-fixed-ready .lab-copy{
    z-index:2;
  }

  body.mobile-fixed-ready .stats{
    background:linear-gradient(105deg,rgba(6,26,64,.84),rgba(18,63,139,.80) 52%,rgba(90,38,157,.78));
  }
  body.mobile-fixed-ready .stats-bg{
    opacity:0!important;
    visibility:hidden;
  }
  body.mobile-fixed-ready .stats-grid{
    position:relative;
    z-index:2;
  }
}

/* Ecosistema v24 · cristales flotantes */
.ecosystem-section{padding:108px 0 0;background:#fff;overflow:hidden}.ecosystem-heading{position:relative;z-index:5}.ecosystem-heading .section-heading{margin-bottom:62px}.ecosystem-heading h2 span{background:linear-gradient(90deg,#2779ff,#7b59ff,#9f38ef);-webkit-background-clip:text;background-clip:text;color:transparent}.ecosystem-stage{position:relative;min-height:720px;margin-top:8px;padding:100px 0 48px;color:#fff;background:#04132f url('../images/ecosistema-background.webp') center bottom/cover no-repeat;clip-path:ellipse(92% 100% at 50% 100%)}.ecosystem-stage:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,#27b8ff 24%,#7b59ff 55%,#db40ff 82%,transparent);opacity:.85}.ecosystem-stage:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(2,10,35,.04) 0%,rgba(2,8,28,.08) 50%,rgba(0,4,20,.18) 100%);pointer-events:none}.ecosystem-stars{position:absolute;inset:0;opacity:.6;background-image:radial-gradient(circle at 12% 35%,rgba(62,190,255,.85) 0 1px,transparent 2px),radial-gradient(circle at 18% 62%,rgba(131,68,255,.8) 0 1.5px,transparent 3px),radial-gradient(circle at 82% 28%,rgba(199,67,255,.75) 0 1px,transparent 2px),radial-gradient(circle at 88% 65%,rgba(70,204,255,.7) 0 1px,transparent 2px),radial-gradient(circle at 69% 20%,rgba(255,255,255,.6) 0 1px,transparent 2px),radial-gradient(circle at 29% 24%,rgba(255,255,255,.45) 0 1px,transparent 2px)}.ecosystem-glow{position:absolute;width:360px;height:360px;border-radius:50%;filter:blur(70px);opacity:.2;pointer-events:none}.ecosystem-glow-left{left:-80px;bottom:90px;background:#009dff}.ecosystem-glow-right{right:-80px;top:130px;background:#bc31ff}.ecosystem-floating{position:relative;z-index:3}.ecosystem-core-label{text-align:center;font-size:.74rem;font-weight:800;letter-spacing:.15em;color:#8597ff;margin-bottom:18px}.ecosystem-core-label:before,.ecosystem-core-label:after{content:"····";color:#4edfff;margin:0 12px}.ecosystem-core-label:after{color:#d24eff}.ecosystem-brand-layout{position:relative;display:grid;grid-template-columns:1fr 1.16fr 1fr;gap:54px;align-items:center;max-width:1120px;margin:0 auto;padding:0 10px}.floating-brand{position:relative;min-height:390px;border-radius:34px;padding:42px 34px 34px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);transition:transform .55s cubic-bezier(.2,.7,.2,1),box-shadow .55s,border-color .55s}.floating-brand-side{color:#102345;background:linear-gradient(145deg,rgba(255,255,255,.95),rgba(245,246,255,.82));border:1px solid rgba(255,255,255,.92);box-shadow:0 28px 70px rgba(0,10,45,.28),inset 0 1px rgba(255,255,255,.9)}.floating-brand-left{transform:rotate(-5deg) translateY(34px)}.floating-brand-right{transform:rotate(5deg) translateY(34px)}.floating-brand-core{min-height:438px;color:#fff;background:linear-gradient(150deg,rgba(57,86,174,.45),rgba(25,22,91,.72));border:1px solid rgba(171,177,255,.82);box-shadow:0 0 0 1px rgba(77,195,255,.32),0 32px 90px rgba(0,0,0,.38),0 0 44px rgba(108,89,255,.25),inset 0 0 42px rgba(96,126,255,.08)}.floating-brand-core:before{content:"";position:absolute;inset:-1px;border-radius:34px;padding:1px;background:linear-gradient(135deg,#5ddfff,#666dff 48%,#e04dff);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}.core-chip{position:absolute;top:17px;right:20px;border:1px solid rgba(111,220,255,.35);background:rgba(14,33,91,.42);border-radius:999px;padding:5px 9px;font-size:.58rem;letter-spacing:.14em;color:#8eeeff}.floating-logo{height:78px;width:100%;display:flex;align-items:center;justify-content:center;margin-bottom:16px}.floating-logo img{max-height:68px;max-width:86%;object-fit:contain}.floating-brand-core .floating-logo{height:92px}.floating-brand-core .floating-logo img{max-height:86px;max-width:92%}.floating-logo-eco img{max-height:90px}.brand-divider{width:44px;height:2px;border-radius:9px;margin:3px 0 22px;background:linear-gradient(90deg,#29d7ff,#9052ff)}.floating-brand strong{font-size:1.25rem;line-height:1.35;margin-bottom:14px}.floating-brand-core strong{font-size:1.55rem}.floating-brand p{margin:0;max-width:270px;line-height:1.65;color:#6b768c}.floating-brand-core p{color:rgba(255,255,255,.72)}.floating-link{margin-top:26px;font-weight:800;color:#225fff}.floating-link b{display:inline-grid;place-items:center;width:31px;height:31px;margin-left:7px;border:1px solid rgba(67,102,255,.28);border-radius:50%;transition:transform .3s}.floating-brand-right .floating-link{color:#7b3dff}.floating-brand-side:hover{transform:rotate(0) translateY(14px) scale(1.025);box-shadow:0 36px 88px rgba(0,12,50,.36),0 0 0 1px rgba(95,181,255,.32)}.floating-brand-side:hover .floating-link b{transform:translateX(4px)}.floating-brand-core:hover{transform:translateY(-9px) scale(1.018);box-shadow:0 0 0 1px rgba(77,211,255,.5),0 38px 100px rgba(0,0,0,.42),0 0 65px rgba(111,76,255,.32)}.core-pulse{margin-top:28px;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(103,214,255,.5);color:#fff;box-shadow:0 0 0 8px rgba(105,69,255,.08),0 0 24px rgba(77,207,255,.2)}.ecosystem-orbits{position:absolute;left:50%;bottom:54px;width:min(980px,78vw);height:265px;transform:translateX(-50%);pointer-events:none;opacity:.7}.ecosystem-orbits i{position:absolute;inset:auto 0 0;border:1px solid rgba(75,194,255,.5);border-radius:50%;height:150px;transform:perspective(450px) rotateX(68deg)}.ecosystem-orbits i:nth-child(2){inset:auto 9% 20px;height:132px;border-color:rgba(123,89,255,.55)}.ecosystem-orbits i:nth-child(3){inset:auto 18% 43px;height:104px;border-color:rgba(210,65,255,.46)}.ecosystem-benefits{position:relative;z-index:4;display:grid;grid-template-columns:repeat(3,1fr);max-width:780px;margin:72px auto 0}.ecosystem-benefits>div{display:grid;justify-items:center;text-align:center;padding:0 28px;border-right:1px solid rgba(255,255,255,.16)}.ecosystem-benefits>div:last-child{border-right:0}.benefit-icon{width:42px;height:42px;display:grid;place-items:center;color:#7e8fff;margin-bottom:8px}.benefit-icon svg{width:34px;height:34px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.ecosystem-benefits>div:nth-child(1) .benefit-icon{color:#37ccff}.ecosystem-benefits>div:nth-child(3) .benefit-icon{color:#ad5bff}.ecosystem-benefits strong{font-size:.91rem}.ecosystem-benefits small{display:block;margin-top:4px;color:rgba(255,255,255,.55)}

@media(max-width:1000px){.ecosystem-stage{clip-path:ellipse(125% 100% at 50% 100%);padding-top:82px}.ecosystem-brand-layout{grid-template-columns:1fr;max-width:620px;gap:24px}.floating-brand{min-height:0;padding:34px 28px}.floating-brand-core{order:-1;min-height:360px}.floating-brand-left,.floating-brand-right{transform:none}.floating-brand-side:hover{transform:translateY(-5px) scale(1.01)}.ecosystem-orbits{display:none}.ecosystem-benefits{margin-top:42px}}
@media(max-width:720px){.ecosystem-section{padding-top:78px}.ecosystem-heading .section-heading{margin-bottom:38px}.ecosystem-heading h2{font-size:clamp(2.25rem,11vw,3.2rem)}.ecosystem-stage{clip-path:ellipse(185% 100% at 50% 100%);padding:68px 0 44px}.ecosystem-core-label{font-size:.64rem}.ecosystem-core-label:before,.ecosystem-core-label:after{margin:0 6px}.ecosystem-brand-layout{gap:18px;padding:0}.floating-brand{border-radius:28px;padding:30px 22px}.floating-brand-core{min-height:330px}.floating-brand-side{min-height:285px}.floating-brand p{font-size:.9rem}.ecosystem-benefits{grid-template-columns:1fr;gap:20px;margin-top:38px}.ecosystem-benefits>div{border-right:0;border-bottom:1px solid rgba(255,255,255,.13);padding:0 0 18px}.ecosystem-benefits>div:last-child{border-bottom:0}}
.ecosystem-brand-layout .floating-brand-left.reveal{transition-delay:.08s}.ecosystem-brand-layout .floating-brand-core.reveal{transition-delay:.18s}.ecosystem-brand-layout .floating-brand-right.reveal{transition-delay:.28s}.ecosystem-benefits.reveal{transition-delay:.38s}

/* v25 — carrusel 3D del ecosistema */
.ecosystem-carousel{position:relative;max-width:1180px;margin:0 auto;perspective:1500px;perspective-origin:50% 46%;}
.ecosystem-carousel-stage{position:relative;height:510px;transform-style:preserve-3d;}
.ecosystem-card{position:absolute;left:50%;top:8px;width:330px;min-height:405px;padding:42px 32px 34px;border-radius:34px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;transform-style:preserve-3d;backface-visibility:hidden;cursor:pointer;transition:transform .72s cubic-bezier(.2,.75,.2,1),opacity .55s ease,filter .55s ease,box-shadow .55s ease,background .55s ease,border-color .55s ease,color .35s ease;will-change:transform;}
.ecosystem-card.is-center{z-index:5;color:#fff;background:linear-gradient(150deg,rgba(57,86,174,.46),rgba(25,22,91,.78));border:1px solid rgba(171,177,255,.85);box-shadow:0 0 0 1px rgba(77,195,255,.32),0 34px 95px rgba(0,0,0,.42),0 0 58px rgba(108,89,255,.26),inset 0 0 42px rgba(96,126,255,.09);transform:translateX(-50%) translateY(-8px) translateZ(95px) scale(1.07);}
.ecosystem-card.is-center:before{content:"";position:absolute;inset:-1px;border-radius:34px;padding:1px;background:linear-gradient(135deg,#5ddfff,#666dff 48%,#e04dff);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;}
.ecosystem-card.is-left,.ecosystem-card.is-right{z-index:3;color:#102345;background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(244,246,255,.86));border:1px solid rgba(255,255,255,.92);box-shadow:0 28px 70px rgba(0,10,45,.28),inset 0 1px rgba(255,255,255,.92);filter:saturate(.96);}
.ecosystem-card.is-left{transform:translateX(calc(-50% - 390px)) translateY(42px) translateZ(-85px) rotateY(17deg) rotateZ(-4deg) scale(.92);}
.ecosystem-card.is-right{transform:translateX(calc(-50% + 390px)) translateY(42px) translateZ(-85px) rotateY(-17deg) rotateZ(4deg) scale(.92);}
.ecosystem-card.is-left:hover{transform:translateX(calc(-50% - 390px)) translateY(31px) translateZ(-55px) rotateY(12deg) rotateZ(-2deg) scale(.95);}
.ecosystem-card.is-right:hover{transform:translateX(calc(-50% + 390px)) translateY(31px) translateZ(-55px) rotateY(-12deg) rotateZ(2deg) scale(.95);}
.ecosystem-card.is-center:hover{transform:translateX(-50%) translateY(-15px) translateZ(112px) scale(1.085);}
.ecosystem-card .core-chip{opacity:0;transform:translateY(-5px);transition:.35s;}
.ecosystem-card.is-center .core-chip{opacity:1;transform:none;}
.ecosystem-card.is-center strong{font-size:1.48rem;color:#fff;}
.ecosystem-card.is-center p{color:rgba(255,255,255,.72);}
.ecosystem-card.is-left strong,.ecosystem-card.is-right strong{color:#153c7a;}
.ecosystem-card.is-left p,.ecosystem-card.is-right p{color:#6b768c;}
.ecosystem-card .floating-logo{width:100%;height:86px;margin-bottom:13px;display:flex;align-items:center;justify-content:center;border-radius:18px;transition:background .4s,padding .4s,transform .45s;}.ecosystem-card .floating-logo img{background:transparent;border-radius:0;box-shadow:none;}
.ecosystem-card.is-center:not([data-brand="customica"]) .floating-logo{background:transparent;padding:0;box-shadow:none;}
.ecosystem-card.is-center .floating-logo{transform:scale(1.03);}
.floating-logo-customica{position:relative;}
.floating-logo-customica img{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);max-width:92%;max-height:78px;transition:opacity .3s;}
.floating-logo-customica .logo-center{opacity:0}.floating-logo-customica .logo-side{opacity:1}
.ecosystem-card[data-brand="customica"].is-center .logo-center{opacity:1}.ecosystem-card[data-brand="customica"].is-center .logo-side{opacity:0}
.ecosystem-card .core-pulse{display:none}.ecosystem-card.is-center .core-pulse{display:grid;}
.ecosystem-card .floating-link{position:relative;z-index:4;}
.ecosystem-arrow{position:absolute;top:205px;z-index:12;width:52px;height:52px;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:rgba(7,24,67,.55);color:#fff;font-size:2rem;line-height:1;display:grid;place-items:center;cursor:pointer;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 10px 34px rgba(0,0,0,.2);transition:transform .25s,background .25s,border-color .25s;}
.ecosystem-arrow:hover{transform:scale(1.08);background:rgba(54,70,171,.72);border-color:rgba(114,223,255,.6)}
.ecosystem-arrow-prev{left:8px}.ecosystem-arrow-next{right:8px}
.ecosystem-dots{display:flex;justify-content:center;gap:9px;margin-top:8px;position:relative;z-index:12}.ecosystem-dots button{width:8px;height:8px;border:0;border-radius:99px;padding:0;background:rgba(255,255,255,.34);cursor:pointer;transition:width .3s,background .3s}.ecosystem-dots button.active{width:28px;background:linear-gradient(90deg,#27d8ff,#9b4cff)}
.ecosystem-card:focus-visible,.ecosystem-arrow:focus-visible,.ecosystem-dots button:focus-visible{outline:2px solid #76e7ff;outline-offset:4px}
.ecosystem-card.is-transitioning{pointer-events:none}

@media(max-width:1000px){
  .ecosystem-carousel-stage{height:500px}
  .ecosystem-card{width:310px}
  .ecosystem-card.is-left{transform:translateX(calc(-50% - 285px)) translateY(48px) translateZ(-95px) rotateY(20deg) rotateZ(-4deg) scale(.86)}
  .ecosystem-card.is-right{transform:translateX(calc(-50% + 285px)) translateY(48px) translateZ(-95px) rotateY(-20deg) rotateZ(4deg) scale(.86)}
  .ecosystem-card.is-left:hover{transform:translateX(calc(-50% - 285px)) translateY(39px) translateZ(-70px) rotateY(15deg) rotateZ(-2deg) scale(.89)}
  .ecosystem-card.is-right:hover{transform:translateX(calc(-50% + 285px)) translateY(39px) translateZ(-70px) rotateY(-15deg) rotateZ(2deg) scale(.89)}
  .ecosystem-arrow-prev{left:2px}.ecosystem-arrow-next{right:2px}
}
@media(max-width:720px){
  .ecosystem-carousel{perspective:1100px}
  .ecosystem-carousel-stage{height:440px;overflow:hidden;margin-left:-20px;margin-right:-20px}
  .ecosystem-card{width:min(78vw,330px);min-height:360px;top:15px;padding:32px 24px}
  .ecosystem-card.is-center{transform:translateX(-50%) translateY(0) translateZ(65px) scale(1)}
  .ecosystem-card.is-left{transform:translateX(calc(-50% - 78vw)) translateY(42px) translateZ(-70px) rotateY(22deg) rotateZ(-3deg) scale(.86)}
  .ecosystem-card.is-right{transform:translateX(calc(-50% + 78vw)) translateY(42px) translateZ(-70px) rotateY(-22deg) rotateZ(3deg) scale(.86)}
  .ecosystem-card.is-left:hover{transform:translateX(calc(-50% - 78vw)) translateY(42px) translateZ(-70px) rotateY(22deg) rotateZ(-3deg) scale(.86)}
  .ecosystem-card.is-right:hover{transform:translateX(calc(-50% + 78vw)) translateY(42px) translateZ(-70px) rotateY(-22deg) rotateZ(3deg) scale(.86)}
  .ecosystem-arrow{top:auto;bottom:2px;width:46px;height:46px}
  .ecosystem-arrow-prev{left:calc(50% - 68px)}.ecosystem-arrow-next{right:calc(50% - 68px)}
  .ecosystem-dots{margin-top:13px}
}


/* v26 — fondo orbital fotográfico del ecosistema */
.ecosystem-stars,.ecosystem-glow,.ecosystem-orbits{display:none!important}
@media(max-width:1000px){.ecosystem-stage{background-position:center bottom;background-size:cover}}
@media(max-width:720px){.ecosystem-stage{background-position:50% 100%;background-size:auto 112%;background-color:#04132f}}

/* v32 — móvil: insinuar las tarjetas laterales del carrusel 3D */
@media (max-width:720px){
  .ecosystem-carousel-stage{
    height:440px;
    overflow:hidden;
    margin-left:-20px;
    margin-right:-20px;
  }
  .ecosystem-card{
    width:min(78vw,330px);
    transform-origin:50% 52%;
  }
  .ecosystem-card.is-center{
    z-index:6;
    transform:translateX(-50%) translateY(0) translateZ(72px) scale(1);
  }
  .ecosystem-card.is-left,
  .ecosystem-card.is-right{
    z-index:4;
    opacity:.98;
    filter:saturate(.98) brightness(.98);
  }
  .ecosystem-card.is-left{
    transform:translateX(calc(-50% - 55vw)) translateY(24px) translateZ(-58px) rotateY(28deg) rotateZ(-5deg) scale(.9);
  }
  .ecosystem-card.is-right{
    transform:translateX(calc(-50% + 55vw)) translateY(24px) translateZ(-58px) rotateY(-28deg) rotateZ(5deg) scale(.9);
  }
  .ecosystem-card.is-left:hover{
    transform:translateX(calc(-50% - 55vw)) translateY(24px) translateZ(-58px) rotateY(28deg) rotateZ(-5deg) scale(.9);
  }
  .ecosystem-card.is-right:hover{
    transform:translateX(calc(-50% + 55vw)) translateY(24px) translateZ(-58px) rotateY(-28deg) rotateZ(5deg) scale(.9);
  }
}

@media (max-width:420px){
  .ecosystem-card{width:80vw;}
  .ecosystem-card.is-left{
    transform:translateX(calc(-50% - 54vw)) translateY(26px) translateZ(-58px) rotateY(30deg) rotateZ(-5deg) scale(.88);
  }
  .ecosystem-card.is-right{
    transform:translateX(calc(-50% + 54vw)) translateY(26px) translateZ(-58px) rotateY(-30deg) rotateZ(5deg) scale(.88);
  }
  .ecosystem-card.is-left:hover{
    transform:translateX(calc(-50% - 54vw)) translateY(26px) translateZ(-58px) rotateY(30deg) rotateZ(-5deg) scale(.88);
  }
  .ecosystem-card.is-right:hover{
    transform:translateX(calc(-50% + 54vw)) translateY(26px) translateZ(-58px) rotateY(-30deg) rotateZ(5deg) scale(.88);
  }
}

/* v33 — mejora de legibilidad del subtítulo del ecosistema sobre fondo blanco */
.ecosystem-heading .section-heading p{
  color:#5F6B85 !important;
}

/* v35 — Equipo / departamentos como ventana sobre fondo fijo */
#equipo.team-fixed{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  background-color:#061630;
  background-image:
    linear-gradient(90deg,rgba(3,16,46,.80) 0%,rgba(5,24,62,.68) 47%,rgba(40,20,94,.60) 100%),
    url('../images/fondo-departamentos.webp');
  background-size:cover,cover;
  background-position:center center,center center;
  background-repeat:no-repeat,no-repeat;
  background-attachment:scroll,fixed;
}
#equipo.team-fixed>.container{
  position:relative;
  z-index:2;
}
#equipo.team-fixed .department-list article{
  backdrop-filter:blur(7px);
  -webkit-backdrop-filter:blur(7px);
  background:rgba(14,39,82,.66);
}
@media (prefers-reduced-motion:reduce){
  #equipo.team-fixed{background-attachment:scroll,scroll}
}
@media (max-width:720px){
  #equipo.team-fixed{
    background-attachment:scroll,scroll;
    background-position:center center,64% center;
  }
  body.mobile-fixed-ready #equipo.team-fixed{
    position:relative;
    z-index:1;
    isolation:isolate;
    background:linear-gradient(90deg,rgba(3,16,46,.82),rgba(20,18,72,.67));
  }
  body.mobile-fixed-ready #equipo.team-fixed>.container{
    position:relative;
    z-index:2;
  }
}


/* v37 — Ecosistema: parallax invertido más visible + campo de destellos reforzado */
.ecosystem-stage{
  --eco-parallax-y:0px;
  background-color:#04132f;
  background-image:url('../images/ecosistema-background.webp');
  background-size:cover;
  background-repeat:no-repeat;
  background-position:center calc(100% + var(--eco-parallax-y));
  background-attachment:fixed;
  will-change:background-position;
}
/* Campo luminoso por delante del background, sin interferir con las tarjetas. */
.ecosystem-stars{
  display:block!important;
  position:absolute;
  inset:0;
  z-index:1;
  overflow:hidden;
  pointer-events:none;
  opacity:1;
  background:
    radial-gradient(circle at 8% 22%,rgba(74,229,255,.95) 0 1.5px,rgba(74,229,255,.42) 2px,transparent 8px),
    radial-gradient(circle at 18% 64%,rgba(69,212,255,.9) 0 1px,rgba(69,212,255,.4) 2px,transparent 7px),
    radial-gradient(circle at 27% 35%,rgba(172,248,255,.95) 0 1px,rgba(80,221,255,.46) 2px,transparent 8px),
    radial-gradient(circle at 36% 76%,rgba(47,220,255,.92) 0 1.6px,rgba(47,220,255,.36) 3px,transparent 10px),
    radial-gradient(circle at 47% 18%,rgba(116,239,255,.92) 0 1px,rgba(116,239,255,.34) 2px,transparent 7px),
    radial-gradient(circle at 57% 58%,rgba(201,118,255,.95) 0 1.5px,rgba(183,72,255,.42) 3px,transparent 10px),
    radial-gradient(circle at 68% 27%,rgba(171,103,255,.95) 0 1.2px,rgba(171,103,255,.38) 3px,transparent 9px),
    radial-gradient(circle at 76% 72%,rgba(231,122,255,.95) 0 1.8px,rgba(213,74,255,.42) 3px,transparent 11px),
    radial-gradient(circle at 86% 42%,rgba(196,103,255,.9) 0 1px,rgba(196,103,255,.4) 2px,transparent 8px),
    radial-gradient(circle at 94% 18%,rgba(244,145,255,.9) 0 1.4px,rgba(221,85,255,.38) 3px,transparent 10px);
  background-repeat:no-repeat;
  filter:drop-shadow(0 0 5px rgba(55,216,255,.42)) drop-shadow(0 0 7px rgba(190,70,255,.28));
  animation:ecoFieldDrift 18s ease-in-out infinite alternate,ecoFieldPulse 4.8s ease-in-out infinite;
}
.ecosystem-stars::before,
.ecosystem-stars::after{
  content:"";
  position:absolute;
  left:0;
  top:0;
  border-radius:50%;
  pointer-events:none;
  will-change:transform,opacity;
}
/* Turquesas: más cantidad y algunos destellos de mayor presencia. */
.ecosystem-stars::before{
  width:4px;
  height:4px;
  background:#a8f8ff;
  box-shadow:
    5vw 18vh 0 0 rgba(138,245,255,.98),
    10vw 43vh 0 1px rgba(48,219,255,.92),
    15vw 70vh 0 0 rgba(98,237,255,.9),
    20vw 28vh 0 2px rgba(180,251,255,.96),
    25vw 55vh 0 0 rgba(42,203,255,.88),
    31vw 17vh 0 1px rgba(158,247,255,.95),
    36vw 68vh 0 2px rgba(47,222,255,.94),
    42vw 39vh 0 0 rgba(105,237,255,.9),
    48vw 76vh 0 1px rgba(71,214,255,.9),
    54vw 24vh 0 2px rgba(184,250,255,.96),
    61vw 51vh 0 0 rgba(80,225,255,.88),
    67vw 79vh 0 1px rgba(55,208,255,.9),
    73vw 33vh 0 2px rgba(126,241,255,.95),
    79vw 62vh 0 0 rgba(78,220,255,.88),
    86vw 23vh 0 1px rgba(165,249,255,.96),
    91vw 48vh 0 2px rgba(47,211,255,.94),
    96vw 73vh 0 0 rgba(111,238,255,.9);
  filter:drop-shadow(0 0 6px #26dcff) drop-shadow(0 0 15px rgba(24,185,255,.88));
  animation:ecoSparkDriftA 11s ease-in-out infinite alternate,ecoSparkPulseA 2.9s ease-in-out infinite;
}
/* Lilas: más estrellas y halos algo más fuertes. */
.ecosystem-stars::after{
  width:6px;
  height:6px;
  background:#df9cff;
  box-shadow:
    7vw 58vh 0 0 rgba(176,92,255,.9),
    13vw 30vh 0 1px rgba(230,126,255,.98),
    22vw 77vh 0 2px rgba(188,94,255,.95),
    30vw 43vh 0 0 rgba(219,105,255,.92),
    39vw 20vh 0 1px rgba(167,103,255,.92),
    47vw 60vh 0 2px rgba(235,116,255,.98),
    56vw 32vh 0 0 rgba(189,95,255,.9),
    64vw 73vh 0 1px rgba(225,98,255,.96),
    72vw 18vh 0 2px rgba(174,105,255,.94),
    80vw 48vh 0 0 rgba(231,108,255,.98),
    88vw 68vh 0 2px rgba(196,106,255,.94),
    94vw 37vh 0 1px rgba(242,133,255,.98);
  filter:drop-shadow(0 0 7px #b94cff) drop-shadow(0 0 18px rgba(194,55,255,.9));
  animation:ecoSparkDriftB 14s ease-in-out infinite alternate,ecoSparkPulseB 3.6s ease-in-out infinite;
}
@keyframes ecoFieldDrift{
  0%{background-position:0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0}
  50%{background-position:14px -9px,-10px 12px,8px 15px,-13px -7px,12px 8px,-11px 13px,10px -12px,-7px 10px,15px 5px,-12px -11px}
  100%{background-position:-9px 13px,16px -8px,-12px 8px,10px 13px,-8px -11px,14px -7px,-13px 11px,9px -12px,-11px 9px,13px 12px}
}
@keyframes ecoFieldPulse{0%,100%{opacity:.78}45%{opacity:1}70%{opacity:.88}}
@keyframes ecoSparkDriftA{
  0%{transform:translate3d(-14px,14px,0) rotate(0deg)}
  35%{transform:translate3d(24px,-15px,0) rotate(3deg)}
  70%{transform:translate3d(-8px,-27px,0) rotate(-2deg)}
  100%{transform:translate3d(31px,10px,0) rotate(2deg)}
}
@keyframes ecoSparkDriftB{
  0%{transform:translate3d(16px,-12px,0) rotate(0deg)}
  40%{transform:translate3d(-27px,18px,0) rotate(-3deg)}
  72%{transform:translate3d(13px,28px,0) rotate(2deg)}
  100%{transform:translate3d(-19px,-7px,0) rotate(-2deg)}
}
@keyframes ecoSparkPulseA{0%,100%{opacity:.5}38%{opacity:1}62%{opacity:.7}80%{opacity:.95}}
@keyframes ecoSparkPulseB{0%,100%{opacity:.58}32%{opacity:.9}55%{opacity:1}79%{opacity:.66}}

.ecosystem-stage .ecosystem-glow-left,
.ecosystem-stage .ecosystem-glow-right{display:none!important}
.ecosystem-stage .ecosystem-orbits{display:none!important}

@media(max-width:720px){
  /* En móvil la capa fija global de v23 muestra el fondo; esta imagen local se oculta para no duplicarla. */
  body.mobile-fixed-ready .ecosystem-stage{
    position:relative;
    z-index:1;
    isolation:isolate;
    background:transparent!important;
  }
  .ecosystem-stars::before{animation-duration:18s,4.3s}
  .ecosystem-stars::after{animation-duration:22s,5.8s}
}
@media(prefers-reduced-motion:reduce){
  .ecosystem-stage{background-attachment:scroll;--eco-parallax-y:0px!important}
  .ecosystem-stars::before,.ecosystem-stars::after{animation:none}
}

/* v39 — Las capas fixed móviles son exclusivamente visuales y nunca capturan gestos/clics. */
.mobile-fixed-bg{pointer-events:none!important;}
.ecosystem-carousel,.ecosystem-carousel-stage,.ecosystem-dots{position:relative;z-index:10;}
.ecosystem-card{z-index:3;}
.ecosystem-card.is-center{z-index:6;}
.ecosystem-card.is-left,.ecosystem-card.is-right{z-index:4;}
.ecosystem-arrow{position:absolute;z-index:20;}
.ecosystem-dots{z-index:20;}


/* v40 — restaurar posición correcta de las flechas del carrusel en móvil */
@media (max-width:720px){
  .ecosystem-carousel{position:relative;}
  .ecosystem-arrow{
    position:absolute !important;
    top:auto !important;
    bottom:2px !important;
    width:46px;
    height:46px;
    z-index:30;
  }
  .ecosystem-arrow-prev{left:calc(50% - 68px) !important;right:auto !important;}
  .ecosystem-arrow-next{right:calc(50% - 68px) !important;left:auto !important;}
}

/* v43 — Hero móvil un punto más oscuro que v42, manteniendo visible la fotografía */
@media (max-width:720px){
  .hero-overlay,
  body.mobile-fixed-ready .hero-overlay{
    background:
      linear-gradient(90deg,
        rgba(2,12,33,.66) 0%,
        rgba(2,14,38,.54) 38%,
        rgba(5,20,49,.32) 70%,
        rgba(6,17,45,.21) 100%),
      linear-gradient(0deg,
        rgba(3,18,44,.18),
        rgba(3,18,44,.09)) !important;
  }
  .hero-content{
    text-shadow:0 2px 14px rgba(0,0,0,.16);
  }
}

/* v44 · microinteracciones de botones */
.btn{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  transition:transform .28s cubic-bezier(.2,.75,.25,1),box-shadow .28s ease,border-color .28s ease,background-color .28s ease,filter .28s ease;
  will-change:transform;
}
.btn::after{
  content:"";
  position:absolute;
  z-index:-1;
  top:-70%;
  left:-45%;
  width:34%;
  height:240%;
  opacity:0;
  transform:rotate(18deg) translateX(-190%);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.32),transparent);
  transition:transform .62s cubic-bezier(.2,.7,.2,1),opacity .22s ease;
  pointer-events:none;
}
@media (hover:hover) and (pointer:fine){
  .btn:hover{
    transform:translateY(-3px);
  }
  .btn:hover::after{
    opacity:1;
    transform:rotate(18deg) translateX(560%);
  }
  .btn.primary:hover{
    filter:saturate(1.08) brightness(1.07);
    box-shadow:0 17px 38px rgba(67,89,255,.38),0 0 22px rgba(72,208,255,.14);
  }
  .btn.ghost:hover{
    background:rgba(255,255,255,.11);
    border-color:rgba(255,255,255,.78);
    box-shadow:0 12px 28px rgba(2,12,33,.22),inset 0 0 18px rgba(255,255,255,.035);
  }
  .contact-form .form-submit:hover{
    box-shadow:0 17px 38px rgba(67,89,255,.34),0 0 24px rgba(143,60,255,.16);
  }
}
.btn:active{
  transform:translateY(0) scale(.985);
  transition-duration:.1s;
}
.btn:focus-visible{
  outline:2px solid #8ff1ff;
  outline-offset:4px;
}
@media (prefers-reduced-motion:reduce){
  .btn,.btn::after{transition:none!important}
  .btn:hover,.btn:active{transform:none!important}
}


/* v45 — velo azul marino dinámico del Ecosistema según su posición en pantalla.
   Entra oscuro, se abre al centrar la sección y vuelve a oscurecerse al salir. */
.ecosystem-stage{
  --eco-scroll-shade:.76;
}
.ecosystem-stage::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  background:
    linear-gradient(180deg,rgba(2,10,35,.04) 0%,rgba(2,8,28,.08) 50%,rgba(0,4,20,.18) 100%),
    rgba(3,15,45,var(--eco-scroll-shade));
  transition:background-color .08s linear;
  will-change:background-color;
}
/* El contenido siempre queda por encima del velo. */
.ecosystem-floating{position:relative;z-index:3}
.ecosystem-benefits{position:relative;z-index:4}

@media(max-width:720px){
  .ecosystem-stage{--eco-scroll-shade:.82}
}

@media(prefers-reduced-motion:reduce){
  .ecosystem-stage{--eco-scroll-shade:.12!important}
}
