:root{--az:#082537;--vd:#00E676;--na:#FF6600;--cr:#F7F5F2;--g1:#E8E8E8;--g4:#9CA3AF;--g6:#6B7280;--f:'Poppins',sans-serif;--r:16px;--rl:24px}
*{margin:0;padding:0;box-sizing:border-box}
html{scrollbar-width:none;background:var(--az)}
html::-webkit-scrollbar{display:none}
body{font-family:var(--f);-webkit-font-smoothing:antialiased;color:var(--az);line-height:1.6;overflow-x:hidden;background:var(--az)}
img{max-width:100%;height:auto;display:block}
.container{width:100%;max-width:1200px;margin:0 auto;padding:0 clamp(1.25rem,4vw,3rem)}
.narrow{max-width:900px}
.tg{color:var(--vd)}.kw{color:var(--vd);font-weight:600;font-style:normal}
.mv-word{display:inline-block}
.icon-inline{display:inline-block;width:1.2em;height:1.2em;vertical-align:-0.15em;margin-right:0.3em;opacity:0.5}
.btn{display:inline-block;font-family:var(--f);font-weight:700;text-decoration:none;border:none;cursor:pointer;padding:1rem 2.25rem;border-radius:100px;font-size:1rem;transition:all 0.3s;text-align:center}
.btn:hover{transform:translateY(-2px)}
.btn-g{background:var(--vd);color:var(--az)}.btn-g:hover{background:#fff}
.btn-lg{font-size:1.125rem;padding:1.25rem 3rem}
.link{background:none;border:none;font-family:var(--f);color:var(--vd);font-weight:600;cursor:pointer;font-size:0.9rem;text-decoration:underline;padding:0}
.eyebrow{font-size:0.75rem;font-weight:700;letter-spacing:0.15em;text-transform:uppercase;margin-bottom:3rem;opacity:0.5}

/* ========== SISTEMA DE PATRONES DIVERSOS ========== */
/* Cada patrón es una capa ::before absoluta, mascada radialmente para no saturar bordes.
   Colores adaptados para fondo oscuro (blanco) y claro (azul). */
.pat{position:relative;overflow:hidden}
.pat::before{content:'';position:absolute;inset:0;pointer-events:none;z-index:0;mask-image:radial-gradient(ellipse at center,#000 40%,transparent 92%);-webkit-mask-image:radial-gradient(ellipse at center,#000 40%,transparent 92%)}
.pat>*{position:relative;z-index:1}
/* Grid clásico */
.pat-grid-dark::before{background-image:linear-gradient(rgba(255,255,255,0.032) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,0.032) 1px,transparent 1px);background-size:72px 72px}
.pat-grid-light::before{background-image:linear-gradient(rgba(8,37,55,0.06) 1px,transparent 1px),linear-gradient(90deg,rgba(8,37,55,0.06) 1px,transparent 1px);background-size:72px 72px}
/* Puntos densos */
.pat-dots-dark::before{background-image:radial-gradient(circle at 1.5px 1.5px,rgba(255,255,255,0.06) 1.5px,transparent 0);background-size:24px 24px}
.pat-dots-light::before{background-image:radial-gradient(circle at 1.5px 1.5px,rgba(8,37,55,0.11) 1.5px,transparent 0);background-size:24px 24px}
/* Líneas diagonales sutiles */
.pat-diag-dark::before{background-image:repeating-linear-gradient(45deg,transparent 0,transparent 32px,rgba(255,255,255,0.028) 32px,rgba(255,255,255,0.028) 33px)}
.pat-diag-light::before{background-image:repeating-linear-gradient(45deg,transparent 0,transparent 32px,rgba(8,37,55,0.05) 32px,rgba(8,37,55,0.05) 33px)}
/* Grid + puntos combinados */
.pat-mix-dark::before{background-image:radial-gradient(circle at 1px 1px,rgba(0,230,118,0.05) 1px,transparent 0),linear-gradient(rgba(255,255,255,0.022) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,0.022) 1px,transparent 1px);background-size:40px 40px,80px 80px,80px 80px}
.pat-mix-light::before{background-image:radial-gradient(circle at 1px 1px,rgba(0,230,118,0.09) 1px,transparent 0),linear-gradient(rgba(8,37,55,0.04) 1px,transparent 1px),linear-gradient(90deg,rgba(8,37,55,0.04) 1px,transparent 1px);background-size:40px 40px,80px 80px,80px 80px}
/* Cruces (plus) */
.pat-plus-dark::before{background-image:linear-gradient(rgba(255,255,255,0.05) 1.5px,transparent 1.5px),linear-gradient(90deg,rgba(255,255,255,0.05) 1.5px,transparent 1.5px);background-size:56px 56px;background-position:0 0,28px 28px;-webkit-mask-image:radial-gradient(ellipse at center,#000 30%,transparent 88%);mask-image:radial-gradient(ellipse at center,#000 30%,transparent 88%)}
/* Halo verde en esquina, se combina con cualquier patrón */
.halo-vd::after{content:'';position:absolute;top:-8%;right:-8%;width:45vw;height:45vw;pointer-events:none;background:radial-gradient(circle,rgba(0,230,118,0.045) 0%,transparent 60%);z-index:0}
.halo-vd-tl::after{content:'';position:absolute;bottom:-10%;left:-10%;width:45vw;height:45vw;pointer-events:none;background:radial-gradient(circle,rgba(0,230,118,0.04) 0%,transparent 60%);z-index:0}

/* ========== SCROLL HINT (mouse + scrollea) reutilizable en cada bloque ========== */
/* Movido a la IZQUIERDA para no chocar con el botón "volver arriba" del navegador/tema */
.sh{position:absolute;bottom:1.75rem;left:1.75rem;right:auto;display:flex;flex-direction:column;align-items:center;gap:0.6rem;font-size:0.65rem;font-weight:600;letter-spacing:0.22em;text-transform:uppercase;pointer-events:none;z-index:5;opacity:0.55}
.sh-dark{color:rgba(255,255,255,0.7)}
.sh-light{color:rgba(8,37,55,0.55)}
.sh-mouse{width:22px;height:34px;border:1.8px solid currentColor;border-radius:11px;position:relative;flex-shrink:0}
.sh-mouse::before{content:'';position:absolute;top:6px;left:50%;transform:translateX(-50%);width:2px;height:6px;background:currentColor;border-radius:1px;animation:shWheel 1.6s ease-in-out infinite}
@keyframes shWheel{0%,100%{transform:translateX(-50%) translateY(0);opacity:1}50%{transform:translateX(-50%) translateY(6px);opacity:0.4}}
.sh-arrow{width:12px;height:12px;margin-top:-0.2rem}
.sh-arrow svg{width:100%;height:100%;animation:shArrow 1.6s ease-in-out infinite}
@keyframes shArrow{0%,100%{transform:translateY(0);opacity:0.6}50%{transform:translateY(4px);opacity:1}}

/* La flecha "volver arriba" del tema se mantiene (es útil). El hint "scrollea" se movió
   a la izquierda para complementarla sin chocar. */

/* ========== MENÚ HAMBURGUESA DE NAVEGACIÓN ========== */
.navmenu-btn{position:fixed;top:1.5rem;right:1.5rem;z-index:3000;width:48px;height:48px;border-radius:50%;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,0.1);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:background 0.3s,transform 0.3s;-webkit-tap-highlight-color:transparent}
.navmenu-btn:hover{transform:scale(1.06)}
.navmenu-btn .bars{width:20px;height:14px;position:relative}
.navmenu-btn .bars span{position:absolute;left:0;width:100%;height:2px;border-radius:2px;background:currentColor;transition:transform 0.3s,opacity 0.3s,top 0.3s}
.navmenu-btn .bars span:nth-child(1){top:0}
.navmenu-btn .bars span:nth-child(2){top:6px}
.navmenu-btn .bars span:nth-child(3){top:12px}
/* Color auto-contraste: el JS pone .on-dark (texto blanco) u .on-light (texto azul) */
.navmenu-btn.on-dark{color:#fff}
.navmenu-btn.on-light{color:var(--az)}
.navmenu-btn.on-light{background:rgba(8,37,55,0.06)}
/* Estado abierto: X */
body.nav-open .navmenu-btn .bars span:nth-child(1){top:6px;transform:rotate(45deg)}
body.nav-open .navmenu-btn .bars span:nth-child(2){opacity:0}
body.nav-open .navmenu-btn .bars span:nth-child(3){top:6px;transform:rotate(-45deg)}
body.nav-open .navmenu-btn{color:#fff;background:rgba(255,255,255,0.12)}
/* Overlay del menú */
.navmenu-ov{position:fixed;inset:0;z-index:2900;background:rgba(8,37,55,0.97);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;visibility:hidden;transition:opacity 0.4s,visibility 0.4s;display:flex;align-items:center;justify-content:center}
body.nav-open .navmenu-ov{opacity:1;visibility:visible}
.navmenu-list{list-style:none;text-align:center;padding:0;margin:0}
.navmenu-list li{margin:0.4rem 0;overflow:hidden}
.navmenu-list a{display:inline-block;font-family:var(--f);font-weight:700;font-size:clamp(1.5rem,4vw,2.5rem);color:#fff;text-decoration:none;letter-spacing:-0.01em;padding:0.3rem 1rem;transition:color 0.25s,transform 0.25s;transform:translateY(110%);opacity:0}
body.nav-open .navmenu-list a{transform:translateY(0);opacity:1}
.navmenu-list a:hover{color:var(--vd)}
.navmenu-list a .idx{font-size:0.9rem;color:var(--vd);font-weight:600;margin-right:0.75rem;vertical-align:middle;opacity:0.8}
/* Stagger de entrada de los items */
body.nav-open .navmenu-list li:nth-child(1) a{transition-delay:0.05s}
body.nav-open .navmenu-list li:nth-child(2) a{transition-delay:0.10s}
body.nav-open .navmenu-list li:nth-child(3) a{transition-delay:0.15s}
body.nav-open .navmenu-list li:nth-child(4) a{transition-delay:0.20s}
body.nav-open .navmenu-list li:nth-child(5) a{transition-delay:0.25s}
body.nav-open .navmenu-list li:nth-child(6) a{transition-delay:0.30s}
body.nav-open .navmenu-list li:nth-child(7) a{transition-delay:0.35s}
@media(max-width:767px){
  .navmenu-btn{top:1rem;right:1rem;width:44px;height:44px}
  .navmenu-list a{font-size:clamp(1.4rem,7vw,2rem)}
}

/* ========== BARRA DE PROGRESO POR SECCIÓN ========== */
/* Sutil: 2px, color verde, se llena en tiempo real al scrollear dentro del bloque pinneado.
   Da feedback UX: el usuario sabe que el scroll está avanzando aunque el bloque siga pinneado. */
.pgb{position:absolute;bottom:0;left:0;right:0;height:2.5px;z-index:6;pointer-events:none;overflow:hidden}
.pgb-dark{background:rgba(255,255,255,0.08)}
.pgb-light{background:rgba(8,37,55,0.08)}
.pgb-fill{height:100%;width:0;background:var(--vd);will-change:width;box-shadow:0 0 8px rgba(0,230,118,0.4)}

/* ========== LOGO MARK ALTERNADO ========== */
/* Aparece en algunas secciones (no todas) como refuerzo sutil de marca */
.mv-mark{position:absolute;top:1.75rem;left:1.75rem;height:28px;opacity:0;z-index:5;pointer-events:none;will-change:opacity,transform}
.mv-mark img{height:100%;width:auto;display:block}

/* HERO */
.hero{position:relative;min-height:100vh;display:flex;align-items:center;overflow:hidden;background:var(--az)}
.hero video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.hero-ov{position:absolute;inset:0;z-index:1;background:linear-gradient(to bottom,rgba(8,37,55,0.45),rgba(8,37,55,0.6) 60%,rgba(8,37,55,0.9))}
.hero-c{position:relative;z-index:2;max-width:1200px;margin:0 auto;width:100%;padding:0 clamp(1.25rem,4vw,3rem)}
.hero h1{font-size:clamp(2.5rem,6.5vw,5.5rem);font-weight:800;color:#fff;line-height:1.08;letter-spacing:-0.03em;max-width:14ch}
.hero-ft{position:absolute;bottom:2rem;left:0;right:0;z-index:2;max-width:1200px;margin:0 auto;width:100%;padding:0 clamp(1.25rem,4vw,3rem);display:flex;justify-content:space-between;align-items:flex-end;gap:2rem}
/* 7.1 Indicador scrollea mejorado */
.scroll-hint{display:flex;flex-direction:column;align-items:center;gap:0.75rem;color:rgba(255,255,255,0.7);font-size:0.7rem;font-weight:600;letter-spacing:0.2em;text-transform:uppercase}
.scroll-hint svg{width:20px;height:20px;animation:sb 2s ease-in-out infinite}
@keyframes sb{0%,100%{transform:translateY(0);opacity:0.5}50%{transform:translateY(6px);opacity:1}}
.micro{font-size:0.75rem;color:rgba(255,255,255,0.45);text-align:right}

/* MANIFIESTO — párrafos centrados absolutamente. Patrones vienen del sistema .pat */
.mani-sec{position:relative;min-height:100vh;background:var(--az);color:#fff;overflow:hidden}
.mani-stage{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:1}
.mani-stage .container{position:relative;height:auto;min-height:60vh;display:flex;align-items:center;justify-content:center}
.mani-p{position:absolute;top:50%;left:50%;width:calc(100% - clamp(2.5rem,8vw,6rem));max-width:900px;transform:translate(-50%,-50%);text-align:left;padding:0;will-change:transform,opacity}
.mani-lead{font-size:clamp(1.75rem,3.6vw,2.75rem);font-weight:600;line-height:1.3;color:#fff;letter-spacing:-0.01em}
.mani-accent{font-size:clamp(2rem,4.2vw,3.4rem);font-weight:800;line-height:1.15;color:var(--vd);text-align:center;letter-spacing:-0.015em}
.mani-body{font-size:clamp(1.25rem,2.2vw,1.65rem);font-weight:300;line-height:1.65;color:var(--g1)}
.mani-body .icon-inline,.mani-lead .icon-inline{width:1.4em;height:1.4em}

/* 7.3 MARQUEE — sin gap, fondo azul debajo */
.marquee-sec{position:relative;min-height:60vh;display:flex;align-items:center;background:var(--vd);overflow:hidden;margin:0}
.marq-scroll{font-size:clamp(2.5rem,7vw,6rem);font-weight:800;color:var(--az);white-space:nowrap;letter-spacing:-0.02em}

/* MÉTODO pinned */
.met-pin{min-height:100vh;display:flex;align-items:center;background:var(--az);position:relative;overflow:hidden}
.met-pin-inner{display:grid;grid-template-columns:1fr 1fr;gap:3rem;max-width:1200px;margin:0 auto;padding:0 clamp(1.25rem,4vw,3rem);align-items:center;width:100%;position:relative;z-index:2;will-change:transform,opacity}
.met-pin-inner.rev{direction:rtl}.met-pin-inner.rev>*{direction:ltr}
.big-num{position:absolute;font-size:clamp(8rem,20vw,18rem);font-weight:800;color:rgba(255,255,255,0.05);top:50%;right:5%;transform:translateY(-50%);pointer-events:none;z-index:1;line-height:1;will-change:transform,opacity,filter}
.met-pin-inner.rev ~ .big-num,.met-pin.rev-num .big-num{right:auto;left:5%}
.met-media img{width:100%;border-radius:var(--rl);aspect-ratio:3/2;object-fit:cover}
.met-text h2{font-size:clamp(1.5rem,3vw,2.25rem);font-weight:800;line-height:1.2;margin-bottom:1.5rem;color:#fff}
.met-text p{font-size:clamp(0.95rem,1.5vw,1.1rem);font-weight:300;line-height:1.75;color:var(--g1)}
@media(max-width:767px){.met-pin-inner{grid-template-columns:1fr}.met-pin-inner.rev{direction:ltr}.big-num{font-size:6rem;top:2rem;right:2rem;transform:none}}

/* 7.6 Transición oscuro → claro */
.trans-dark-light{height:120px;background:linear-gradient(to bottom,var(--az) 0%,var(--cr) 100%);margin:0}

/* SECCIONES CLARAS pinned */
.light-pin{min-height:100vh;display:flex;align-items:center;background:var(--cr);color:var(--az)}
.port-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}
.port-card{background:#fff;border-radius:var(--rl);padding:2rem;cursor:pointer;transition:transform 0.4s,box-shadow 0.4s}
@media(hover:hover){.port-card:hover{transform:translateY(-8px);box-shadow:0 24px 48px rgba(8,37,55,0.12)}}
.port-img{aspect-ratio:1;overflow:hidden;border-radius:var(--r);margin-bottom:1.5rem;background:var(--cr)}
.port-img img{width:100%;height:100%;object-fit:contain}
.port-card h3{font-size:1.25rem;font-weight:700;margin-bottom:0.5rem}
.port-card>p{font-size:0.9rem;color:var(--g6);line-height:1.6}
.comp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}
.comp-card{background:#fff;border-radius:var(--rl);padding:2.5rem 2rem;position:relative;overflow:hidden}
.comp-card::before{content:'';position:absolute;top:0;left:0;width:4px;height:100%}
.comp-az::before{background:var(--az)}.comp-vd::before{background:var(--vd)}
.comp-icon{width:48px;height:48px;margin-bottom:1.25rem;color:var(--az)}
.comp-card h3{font-size:1.1rem;font-weight:700;margin-bottom:0.75rem}
.comp-card>p{font-size:0.9rem;color:var(--g6);line-height:1.6}

/* 7.9 EQUIPO híbrido — sin pin, scroll normal */
.eq-sec{min-height:100vh;background:var(--cr);color:var(--az);padding:6rem 0 8rem}
.eq-photo{margin-bottom:3rem;border-radius:var(--rl);overflow:hidden}
.eq-photo img{width:100%;aspect-ratio:3/2;object-fit:cover}
.eq-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem}
.eq-m h3{font-size:1rem;font-weight:700;margin-bottom:0.25rem}
.eq-role{font-size:0.8rem;font-weight:600;color:var(--vd);text-transform:uppercase;letter-spacing:0.05em;margin-bottom:0.75rem}
.eq-bio{font-size:0.85rem;color:var(--g6);line-height:1.6}

/* RESPALDOS — tamaños aumentados. Patrones vienen del sistema .pat */
#respSec{position:relative;overflow:hidden}
#respSec .container{position:relative;z-index:1}
#respSec .eyebrow{font-size:0.85rem;margin-bottom:2rem;opacity:0.65}
.resp-icon{width:56px;height:56px;margin-bottom:1.5rem;color:var(--az);opacity:0.85}
.resp-copy{font-size:clamp(1.05rem,1.6vw,1.25rem);color:var(--az);line-height:1.6;max-width:780px;margin-bottom:2.5rem;font-weight:400}
.badges{display:flex;flex-wrap:wrap;gap:0.9rem}
.badge{padding:0.85rem 1.6rem;border-radius:100px;border:1.5px solid rgba(8,37,55,0.25);font-size:0.95rem;font-weight:600;color:var(--az);transition:all 0.3s;position:relative;cursor:default;background:rgba(255,255,255,0.55)}
.badge:hover{border-color:var(--az);background:#fff;box-shadow:0 8px 24px rgba(8,37,55,0.08)}
.badge-tip{position:absolute;bottom:calc(100% + 10px);left:50%;transform:translateX(-50%);background:var(--az);color:#fff;font-size:0.75rem;padding:0.6rem 0.9rem;border-radius:10px;white-space:nowrap;opacity:0;visibility:hidden;transition:all 0.3s;z-index:10;font-weight:500}
.badge-tip::after{content:'';position:absolute;top:100%;left:50%;transform:translateX(-50%);border:5px solid transparent;border-top-color:var(--az)}
.badge:hover .badge-tip{opacity:1;visibility:visible}

/* Transición claro → oscuro (equipo → respaldos oscuros? no — respaldos también claro. Solo claro → oscuro antes de CTA) */
.trans-light-dark{height:120px;background:linear-gradient(to bottom,var(--cr) 0%,var(--az) 100%);margin:0}

.cta-f{min-height:100vh;display:flex;align-items:center;text-align:center;background:var(--az)}
.cta-f h2{font-size:clamp(2rem,5.5vw,4.5rem);font-weight:800;line-height:1.1;margin-bottom:2rem;color:#fff}
.cta-sub{font-size:clamp(1rem,1.5vw,1.2rem);font-weight:300;color:var(--g1);line-height:1.7;max-width:600px;margin:0 auto 3rem}
.footer{background:var(--cr);border-top:1px solid rgba(8,37,55,0.08);padding:3rem 0}
.footer-in{display:grid;grid-template-columns:1fr 1fr 1fr;gap:2rem}
.footer-logo{height:30px;margin-bottom:0.5rem}.footer-logo img{height:100%;width:auto}
.footer p,.footer a{font-size:0.8rem;color:var(--g6);line-height:1.8;text-decoration:none;display:block}
@media(max-width:767px){.port-grid,.comp-grid{grid-template-columns:1fr}.eq-grid{grid-template-columns:1fr 1fr}.footer-in{grid-template-columns:1fr;text-align:center}}
@media(max-width:480px){.eq-grid{grid-template-columns:1fr}}

/* ========== FIX MOBILE — documento continuo, sin pins ni efectos ==========
   En desktop las secciones tienen min-height:100vh, display:flex y align-items:center,
   y las animaciones las pinnean. En móvil eso deja huecos enormes: la sección reserva
   una pantalla completa aunque su contenido sea corto, y el centrado vertical reparte
   ese sobrante como aire arriba y abajo. Además, la altura del viewport móvil cambia
   cuando la barra del navegador aparece o desaparece, lo que rompía posiciones al
   retroceder y dejaba imágenes invisibles.
   Solución: ninguna sección reserva altura de pantalla (salvo el hero), sin centrado
   vertical, cero ScrollTriggers (ver JS) y visibilidad forzada. Se lee de corrido. */
@media(max-width:767px){
  /* Ninguna sección reserva una pantalla ni centra verticalmente. El hero se excluye
     a propósito: es la portada y sí debe ocupar el alto completo. */
  .mani-sec,.met-pin,.light-pin,.eq-sec,.cta-f,.marquee-sec{
    min-height:0 !important;
    height:auto !important;
    display:block !important;
  }
  .mani-sec,.met-pin,.light-pin,.cta-f{padding:3rem 0 !important}
  .eq-sec{padding:2.5rem 0 3.5rem !important}
  .marquee-sec{padding:2rem 0 !important}
  /* Marquee: en móvil no cabe en una línea. Se ajusta al ancho, centrado y estático. */
  .marq-scroll{font-size:clamp(1.5rem,7vw,2.25rem);white-space:normal;text-align:center;line-height:1.15}
  /* Manifiestos: el escenario deja de ser absoluto y los párrafos fluyen en columna.
     El contenedor trae height:60vh inline en el HTML, hay que anularlo. */
  .mani-stage,.mani-stage .container{
    position:relative !important;
    inset:auto !important;
    height:auto !important;
    min-height:0 !important;
    display:block !important;
    padding-left:0;
    padding-right:0;
  }
  .mani-p{position:relative;top:auto;left:auto;width:100%;max-width:100%;margin-bottom:1.75rem;padding:0 clamp(1.25rem,4vw,3rem)}
  .mani-p:last-child{margin-bottom:0}
  /* Métodos: la imagen y el texto se apilan */
  .met-pin-inner{gap:1.5rem}
  .met-media img{aspect-ratio:16/10}
  /* Menos aire entre encabezado y contenido para que no se sienta seccionado */
  .eyebrow{margin-bottom:1.5rem}
  /* Por si GSAP hubiera dejado algún contenedor de pin en el DOM */
  .pin-spacer{min-height:0 !important;height:auto !important;padding:0 !important;margin:0 !important}
  /* Ocultar scroll hint y barra de progreso en móvil (no aplican con scroll natural) */
  .sh,.pgb{display:none !important}
  /* Logo flotante oculto en móvil: es absoluto y, al no reservar altura la sección,
     se montaba encima de la primera línea de texto. Arriba ya está el menú, y la marca
     aparece en el hero y en el pie, así que no se pierde presencia. */
  .mv-mark{display:none !important}
  /* Big number del método menos dominante */
  .big-num{opacity:0.04 !important;filter:none !important}

  /* ===== VISIBILIDAD FORZADA =====
     Cubre contenedores, textos E IMÁGENES. Si GSAP o cualquier otra capa dejara
     un opacity:0 o un transform pegado, esto lo anula. Nada puede desaparecer. */
  .mani-stage .container,.mani-p,
  .met-pin-inner,.met-media,.met-media img,.met-text,.met-text h2,.met-text p,
  .light-pin .container,.port-card,.port-img,.port-img img,.comp-card,.comp-icon,
  .badge,.resp-copy,.resp-icon,.eyebrow,.marq-scroll,
  .eq-sec .container,.eq-photo,.eq-photo img,.eq-grid,.eq-m,.eq-m h3,.eq-m p,
  .cta-f .container,#ctaTitle,#ctaTitle .mv-word,.cta-sub,.cta-f .btn,
  .footer,.footer-in{
    opacity:1 !important;
    visibility:visible !important;
    filter:none !important;
    transform:none !important;
  }
}

.modal{position:fixed;inset:0;z-index:2000;display:none;align-items:center;justify-content:center}
.modal.on{display:flex}
.modal-bg{position:absolute;inset:0;background:rgba(0,0,0,0.6);backdrop-filter:blur(8px)}
.modal-p{position:relative;z-index:1;width:90vw;max-width:700px;max-height:90vh;overflow-y:auto;border-radius:var(--rl);padding:clamp(2rem,4vw,3rem);background:#fff;color:var(--az)}
.modal-x{position:absolute;top:1rem;right:1rem;width:44px;height:44px;background:none;border:none;font-size:1.75rem;cursor:pointer;border-radius:50%;color:var(--az)}
.modal-t{font-size:1.5rem;font-weight:700;margin-bottom:1rem}
.modal-desc{font-size:0.95rem;color:var(--g6);line-height:1.7;margin-bottom:2rem}
.modal-ft{margin-top:2rem;padding-top:1.5rem;border-top:1px solid rgba(0,0,0,0.08);text-align:center}
.modal-ft p{font-size:0.85rem;opacity:0.6;margin-bottom:1rem}
@media(max-width:767px){.modal-p{width:100vw;height:100vh;max-height:100vh;border-radius:0}}
.debug{position:fixed;bottom:10px;left:10px;background:rgba(0,0,0,0.8);color:#0f0;padding:8px 12px;font-size:11px;font-family:monospace;z-index:9999;border-radius:6px}
