@font-face{font-family:"Helvetica Now Display";src:local("Helvetica Neue"),local("Helvetica"),local("Arial");font-weight:100;font-display:swap}
@font-face{font-family:"Helvetica Now Display";src:local("Helvetica Neue"),local("Helvetica"),local("Arial");font-weight:300;font-display:swap}
@font-face{font-family:"Helvetica Now Display";src:local("Helvetica Neue"),local("Helvetica"),local("Arial");font-weight:400;font-display:swap}
@font-face{font-family:"Helvetica Now Display";src:local("Helvetica Neue"),local("Helvetica"),local("Arial");font-weight:500;font-display:swap}
@font-face{font-family:"Helvetica Now Display";src:local("Helvetica Neue"),local("Helvetica"),local("Arial");font-weight:700;font-display:swap}
@font-face{font-family:"Helvetica Now Display";src:local("Helvetica Neue"),local("Helvetica"),local("Arial");font-weight:900;font-display:swap}
@font-face{font-family:"BRIDCOWEB-SpartanMB-Black";src:local("Helvetica Neue"),local("Helvetica"),local("Arial");font-weight:900;font-display:swap}
@font-face{font-family:"BRIDCOWEB-SpartanMB-Regular";src:local("Helvetica Neue"),local("Helvetica"),local("Arial");font-weight:400;font-display:swap}
@font-face{font-family:"BRIDCOWEB-Roboto-Bold";src:local("Helvetica Neue"),local("Helvetica"),local("Arial");font-weight:700;font-display:swap}
@font-face{font-family:"BRIDCOWEB-HelveticaNowText-Black";src:local("Helvetica Neue"),local("Helvetica"),local("Arial");font-weight:900;font-display:swap}
@font-face{font-family:"BRIDCOWEB-HelveticaNowText-Bold";src:local("Helvetica Neue"),local("Helvetica"),local("Arial");font-weight:700;font-display:swap}
@font-face{font-family:"BRIDCOWEB-HelveticaNeueLTStd-HvCn";src:local("Helvetica Neue"),local("Helvetica"),local("Arial");font-weight:400;font-display:swap}
@font-face{font-family:"BRIDCOWEB-Roboto-Light";src:local("Helvetica Neue"),local("Helvetica"),local("Arial");font-weight:300;font-display:swap}
@font-face{font-family:"BRIDCOWEB-Roboto-Medium";src:local("Helvetica Neue"),local("Helvetica"),local("Arial");font-weight:500;font-display:swap}
@font-face{font-family:"BRIDCOWEB-MaisonNeue-Book";src:local("Helvetica Neue"),local("Helvetica"),local("Arial");font-weight:400;font-display:swap}
:root {
  --bridco-color-1: #FFFFFF;
  --bridco-color-2: #1840B2;
  --bridco-color-3: #333333;
  --bridco-color-4: #000000;
  --bridco-color-5: #9BC42F;
  --bridco-color-6: #105A9F;
  --bridco-color-7: #076835;
  --bridco-color-8: #0059E9;
  --bridco-color-9: #003350;
  --bridco-color-10: #A88A12;
  --bridco-color-11: #575756;
  --bridco-color-12: #232323;
  --bridco-color-13: #BABABA;
  --bridco-color-14: #594040;
  --bridco-color-15: #0EFCA6;
  --bridco-color-16: #1C8DE1;
}
/* ABC de marca (avatar/manual) */
:root{--navy:#013250;--azul:#0059E9;--verde:#0AFAA1;--tinta:#1C1C1C;--fondo:#FFFFFF}
:root{--bridco-color-2:#013250}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:system-ui,sans-serif;line-height:1.55;color:#12201a;overflow-x:hidden}
.wrap{max-width:1080px;margin:0 auto;padding:0 24px;position:relative;z-index:2}
img{max-width:100%;display:block}
.ens-seccion{padding:clamp(3.5rem,7vw,6rem) 0;min-height:60vh;display:flex;align-items:center}
.ens-sub{color:#6c6f70;font-size:1.1rem;max-width:60ch;margin-top:.8rem}
.ens-cta{display:inline-block;margin-top:1.4rem;padding:.8rem 1.6rem;border-radius:999px;
  background:var(--bridco-color-2,#1840B2);color:#fff;font-weight:800;text-decoration:none}
.ens-img{margin-top:1.4rem;border-radius:16px;max-height:60vh;object-fit:cover}
.ens-fallback-bg{padding:2rem;color:#fff}
/* BUGFIX (visto en el smoke): este texto viene del layout real del .ai con color #FFFFFF (pensado
   para ir sobre un fondo oscuro/video) — sin fondo propio quedaba BLANCO SOBRE BLANCO (invisible,
   uno de los "huecos en blanco" reportados). Fallback oscuro seguro: si el hero-inmersivo (T19) se
   pudo usar, este bloque directamente no se emite (el texto vive en `.{id}-final` sobre el puente). */
.ens-caption{color:#fff;position:relative;z-index:2;padding:2.4rem 24px;background:var(--bridco-color-2,#0b2447)}
.ens-camino-wrap{position:relative;z-index:0;margin-top:-16vh}   /* el camino va DEBAJO de la capa del puente (z-index menor) y solapa hacia arriba: el puente queda intacto encima y, al deslizarse, el camino ya está ahí → arranca directo, sin blanco */
/* T25: espaciador de despegue detrás de mecánicas sticky (pin/hinge/zoom-a-blanco/video-on-scroll/
   hero-inmersivo) — ver `_buffer_handoff` en BAF_WEB_ensamblador.py. El alto real ya viene inline
   (100vh, el tamaño exacto del tramo de despegue de `position:sticky`); esta regla sólo asegura que
   nunca aporte ancho/contenido propio (flujo puro, en blanco). */
.ens-handoff{display:block;width:100%;pointer-events:none}
h2{font-size:clamp(1.8rem,3.5vw,2.8rem);font-weight:900}
/* T2/T22: bloques posicionados con el layout REAL del .ai (BAF_WEB_traductor.layout), no flujo
   genérico. El TEXTO va arriba (z-index:2); `.ens-lay-fondo` (T22) es el <svg> con las FOTOS reales
   (raster embebido por xref) y las FORMAS reales (geometría bézier del traductor, ondas de marca/
   badges) en su posición exacta, SIEMPRE detrás del texto — ver `_render_layout_real`. Sin datos
   reales para dibujar (xref sin extraer / sin `d`), ese bloque queda vacío (contado en el reporte,
   nunca inventado). */
.ens-lay-wrap{position:relative;width:100%;overflow:hidden;container-type:inline-size}
.ens-lay-fondo{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}
.ens-lay-texto{position:absolute;line-height:1.05;letter-spacing:-.01em;z-index:2;white-space:pre-wrap}
.ens-lay-cta{position:relative;z-index:3;margin-top:1rem}
/* T24: carpetas de Servicios (las 5 verticales, ver `_ESQUELETO_GROUND_TRUTH`) — lista simple, sin
   fabricar la interacción de "barrido" (declarada en pedidos_a_areas). */
.ens-servicios-verticales{position:relative;z-index:3;display:flex;flex-wrap:wrap;gap:.6rem 1.2rem;
  margin-top:1.2rem;list-style:none;font-weight:700}
.ens-servicios-verticales li{padding:.5rem 1rem;border-radius:999px;background:rgba(255,255,255,.14)}

.ens-landinginicio-0-wrap{position:relative;height:880vh;background:#012a42;z-index:1}   /* más alto = más scroll por etapa → la inmersiva "respira", no se pega todo */
.ens-landinginicio-0-stage{position:sticky;top:0;height:100vh;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center}
.ens-landinginicio-0-l{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;will-change:opacity,transform}
.ens-landinginicio-0-behind{background:#fff;opacity:0;z-index:0}
.ens-landinginicio-0-bridco,.ens-landinginicio-0-bridge{z-index:1}
.ens-landinginicio-0-bridco img,.ens-landinginicio-0-bridge img{width:100%;height:100%;object-fit:cover;transform:scale(1.15);transform-origin:center}
.ens-landinginicio-0-bridge{clip-path:inset(0 0 0 57%)}
.ens-landinginicio-0-puente{z-index:2;opacity:0;align-items:stretch;justify-content:flex-start}
.ens-landinginicio-0-phalf{width:50%;height:100%;overflow:hidden;position:relative;will-change:transform}
.ens-landinginicio-0-phalf img{position:absolute;top:0;height:100%;width:200%;max-width:none;object-fit:cover}
.ens-landinginicio-0-pr img{left:-100%}
.ens-landinginicio-0-white{z-index:3;opacity:0;align-items:stretch;justify-content:flex-start}
.ens-landinginicio-0-wpanel{width:50%;height:100%;background:#fff;will-change:transform}
.ens-landinginicio-0-split{background:none;opacity:0;z-index:4}
.ens-landinginicio-0-brid,.ens-landinginicio-0-co{height:clamp(3rem,15vh,11rem);width:auto;will-change:transform,opacity;position:relative;z-index:4}
.ens-landinginicio-0-doors{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(0);transform-origin:center;z-index:5;width:min(46vw,560px);aspect-ratio:16/9;display:flex;will-change:transform;box-shadow:0 30px 80px -30px #0009}
.ens-landinginicio-0-vhalf{width:50%;height:100%;overflow:hidden;position:relative;will-change:transform;background:#0a3a58}
.ens-landinginicio-0-vhalf video{position:absolute;top:0;height:100%;width:200%;object-fit:cover;left:0}
.ens-landinginicio-0-vr video{left:-100%}
.ens-landinginicio-0-vl{border-radius:16px 0 0 16px}.ens-landinginicio-0-vr{border-radius:0 16px 16px 0}
.ens-landinginicio-0-final{display:none}

.bafwf-carr-d073bb38{position:relative;display:flex;align-items:center;gap:.6rem}
.bafwf-carr-d073bb38-track{display:flex;gap:1.2rem;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;flex:1;padding:.4rem 0}
.bafwf-carr-d073bb38-track::-webkit-scrollbar{display:none}
.bafwf-carr-d073bb38-item{flex:0 0 auto;scroll-snap-align:start}
.bafwf-carr-logos .bafwf-carr-d073bb38-item{width:9rem;display:flex;align-items:center;justify-content:center;opacity:.75;transition:opacity .3s}
.bafwf-carr-logos .bafwf-carr-d073bb38-item:hover{opacity:1}
.bafwf-carr-logos .bafwf-carr-d073bb38-item img{max-width:100%;max-height:4rem;object-fit:contain}
.bafwf-carr-casos .bafwf-carr-d073bb38-item{width:min(20rem,80vw)}
.bafwf-carr-d073bb38-media{aspect-ratio:16/10;border-radius:.6rem;overflow:hidden;background:#0002}
.bafwf-carr-d073bb38-media video,.bafwf-carr-d073bb38-media img{width:100%;height:100%;object-fit:cover;display:block}
.bafwf-carr-d073bb38-prev,.bafwf-carr-d073bb38-next{border:none;background:transparent;font-size:1.6rem;cursor:pointer;line-height:1;padding:.2rem .5rem}
.bafwf-carr-d073bb38-dots{position:absolute;left:50%;bottom:-1.4rem;transform:translateX(-50%);display:flex;gap:.4rem}
.bafwf-carr-d073bb38-dots button{width:.5rem;height:.5rem;border-radius:50%;border:none;background:#0003;padding:0;cursor:pointer}
.bafwf-carr-d073bb38-dots button.is-active{background:#1f6fff}
.bafwf-form{display:flex;flex-direction:column;gap:.9rem;max-width:32rem}
.bafwf-form-row{display:flex;flex-direction:column;gap:.3rem}
.bafwf-form-row label{font-size:.85rem;opacity:.8}
.bafwf-form-row input,.bafwf-form-row textarea{padding:.7rem .9rem;border:1px solid #cfd6e4;border-radius:.5rem;font:inherit}
.bafwf-form-row textarea{min-height:6rem;resize:vertical}
.bafwf-form-row input.is-invalid,.bafwf-form-row textarea.is-invalid{border-color:#e0483e;outline:1px solid #e0483e}
.bafwf-form-msg{min-height:1.2em;font-size:.9rem}
.bafwf-form-msg.is-error{color:#e0483e}
.bafwf-form-msg.is-ok{color:#1f9d55}
/* Contacto — estética on-brand del formulario */
/* CONTACTO: la cinta pasa por detrás + card del formulario (la línea se ve atrás de donde se completa) */
#sec-contacto-form{background:#fff;overflow:hidden}
.cont-cinta{position:absolute;inset:0;width:100%;height:100%;z-index:0;opacity:.92;pointer-events:none}
.cont-vista{padding-top:10px;position:relative;z-index:2;width:100%}
.cont-inner{position:relative;margin:52px auto;background:rgba(255,255,255,.8);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);border:1px solid rgba(24,64,178,.1);border-radius:26px;padding:clamp(26px,3.4vw,46px);max-width:47rem;box-shadow:0 30px 80px -30px rgba(1,50,80,.4)}
.cont-head{margin-bottom:1.4rem}
.cont-kicker{display:block;width:54px;height:7px;border-radius:99px;background:#0EFCA6;margin-bottom:1rem}
.cont-tit{color:#012E4A;font-weight:900;font-family:"BRIDCOWEB-SpartanMB-Black",-apple-system,system-ui,sans-serif;font-size:clamp(1.5rem,3vw,2.3rem);line-height:1.08;margin:0}
.cont-sub{color:#43555f;font-family:"BRIDCOWEB-Roboto-Bold",-apple-system,system-ui,sans-serif;font-size:clamp(.98rem,1.4vw,1.1rem);margin:.7rem 0 0;max-width:40rem}
.cont-vista .bafwf-form{max-width:none}
.cont-vista .bafwf-form{max-width:42rem;gap:1.1rem}
.cont-vista .bafwf-form-row label{font-size:.9rem;font-weight:700;color:#013250;opacity:1;font-family:"BRIDCOWEB-Roboto-Bold",-apple-system,system-ui,sans-serif}
.cont-vista .bafwf-form-row input,.cont-vista .bafwf-form-row textarea{padding:.85rem 1.1rem;border:1.5px solid #d6deea;border-radius:.9rem;background:#f7f9fc;transition:border-color .2s,box-shadow .2s}
.cont-vista .bafwf-form-row input:focus,.cont-vista .bafwf-form-row textarea:focus{outline:none;border-color:#1840B2;box-shadow:0 0 0 3px rgba(24,64,178,.14);background:#fff}
.cont-vista .bafwf-form-actions{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:.6rem}
.cont-vista .bafwf-btn{padding:.85rem 2rem;border-radius:999px;font-weight:800;cursor:pointer;border:0;font-family:"BRIDCOWEB-Roboto-Bold",-apple-system,system-ui,sans-serif;transition:transform .2s,filter .2s}
.cont-vista .bafwf-btn:hover{transform:translateY(-2px);filter:brightness(1.05)}
.cont-vista .bafwf-btn-primary{background:#1840B2;color:#fff}
.cont-vista .bafwf-btn-wp{background:#0EFCA6;color:#013250}
.cont-vista .bafwf-btn-mail{background:#fff;color:#1840B2;border:1.5px solid #1840B2;text-decoration:none}
.bafwf-form-actions{display:flex;flex-wrap:wrap;gap:.6rem}
.bafwf-btn{padding:.7rem 1.3rem;border-radius:2rem;border:none;font:inherit;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:.4rem}
.bafwf-btn-primary{background:#1f6fff;color:#fff}
.bafwf-btn-wp{background:#25d366;color:#fff}
.bafwf-btn-mail{background:transparent;color:inherit;border:1px solid currentColor}
.bafwf-carr-0fab01bc{position:relative;display:flex;align-items:center;gap:.6rem}
.bafwf-carr-0fab01bc-track{display:flex;gap:1.2rem;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;flex:1;padding:.4rem 0}
.bafwf-carr-0fab01bc-track::-webkit-scrollbar{display:none}
.bafwf-carr-0fab01bc-item{flex:0 0 auto;scroll-snap-align:start}
.bafwf-carr-logos .bafwf-carr-0fab01bc-item{width:9rem;display:flex;align-items:center;justify-content:center;opacity:.75;transition:opacity .3s}
.bafwf-carr-logos .bafwf-carr-0fab01bc-item:hover{opacity:1}
.bafwf-carr-logos .bafwf-carr-0fab01bc-item img{max-width:100%;max-height:4rem;object-fit:contain}
.bafwf-carr-casos .bafwf-carr-0fab01bc-item{width:min(20rem,80vw)}
.bafwf-carr-0fab01bc-media{aspect-ratio:16/10;border-radius:.6rem;overflow:hidden;background:#0002}
.bafwf-carr-0fab01bc-media video,.bafwf-carr-0fab01bc-media img{width:100%;height:100%;object-fit:cover;display:block}
.bafwf-carr-0fab01bc-prev,.bafwf-carr-0fab01bc-next{border:none;background:transparent;font-size:1.6rem;cursor:pointer;line-height:1;padding:.2rem .5rem}
.bafwf-carr-0fab01bc-dots{position:absolute;left:50%;bottom:-1.4rem;transform:translateX(-50%);display:flex;gap:.4rem}
.bafwf-carr-0fab01bc-dots button{width:.5rem;height:.5rem;border-radius:50%;border:none;background:#0003;padding:0;cursor:pointer}
.bafwf-carr-0fab01bc-dots button.is-active{background:#1f6fff}
.bafwf-modal{position:fixed;inset:0;z-index:9999;display:none;align-items:center;justify-content:center}
.bafwf-modal.is-open{display:flex}
.bafwf-modal-bg{position:absolute;inset:0;background:rgba(10,12,20,.82)}
.bafwf-modal-box{position:relative;max-width:min(90vw,60rem);width:100%;aspect-ratio:16/9;background:#000}
.bafwf-modal-box video{width:100%;height:100%;display:block}
.bafwf-modal-close{position:absolute;top:-2.2rem;right:0;background:none;border:none;color:#fff;font-size:1.8rem;cursor:pointer;line-height:1}
[data-video-trigger]{cursor:pointer}
.ens-funcional{margin-top:2.5rem}.ens-funcional-clientes{margin-bottom:2rem}.ens-funcional-cafe{cursor:pointer;display:inline-flex;align-items:center;gap:.8rem;margin-top:1.5rem}.ens-funcional-cafe img{width:3rem;height:3rem;object-fit:contain}
.ens-spine-svg{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;overflow:visible}
.ens-spine-path{will-change:stroke-dashoffset}

.ens-topbar{position:fixed;top:0;left:0;right:0;z-index:60;display:flex;align-items:center;justify-content:space-between;padding:14px 24px;pointer-events:none}
.ens-topbar .ens-iso,.ens-topbar .ens-burger,.ens-topbar .ens-menu{pointer-events:auto}   /* la franja vacía del topbar deja pasar el click (a los labels del camino); solo logo y menú son clickeables */
.ens-menu{position:fixed;top:62px;right:24px;flex-direction:column;gap:2px;background:#012E4A;border-radius:14px;padding:8px;box-shadow:0 22px 60px -18px rgba(1,50,80,.7);display:none;min-width:210px;z-index:70}
.ens-menu.is-open{display:flex}
.ens-menu-item{background:none;border:0;color:#fff;font-family:"BRIDCOWEB-Roboto-Bold",-apple-system,system-ui,sans-serif;font-size:1rem;font-weight:700;text-align:left;padding:12px 16px;border-radius:9px;cursor:pointer;transition:background .15s,color .15s}
.ens-menu-item:hover{background:rgba(255,255,255,.1);color:#0EFCA6}
.ens-iso{color:#fff;text-decoration:none;display:inline-flex;line-height:0}
.ens-iso img{width:46px;height:46px;object-fit:contain}
.ens-burger{background:none;border:0;display:flex;flex-direction:column;gap:5px;cursor:pointer;padding:0}
.ens-burger span{width:30px;height:3px;background:#fff;border-radius:3px;display:block}

/* cursor-camina-el-path #ens-cursor */
.ens-cursor-walker{position:absolute;top:0;left:0;z-index:6;width:54px;pointer-events:none;transform:translate(-50%,-50%);will-change:transform}
/* muñeco CAMINANDO: patitas y brazos que se mueven (SVG). Las animaciones van en las piernas/brazos internos, no en el contenedor (que lo mueve+flipea el JS) */
.ens-walker-svg{display:block;width:100%}
.ens-walker-svg .w-fig,.ens-walker-svg .w-leg-f,.ens-walker-svg .w-leg-b,.ens-walker-svg .w-arm-f,.ens-walker-svg .w-arm-b{transform-box:view-box}
.w-fig{transform-origin:50px 50px;animation:w-bob .62s ease-in-out infinite}
.w-leg-f{transform-origin:49px 64px;animation:w-limb .62s ease-in-out infinite}
.w-leg-b{transform-origin:49px 64px;animation:w-limb .62s ease-in-out infinite;animation-delay:-.31s}
.w-arm-f{transform-origin:52px 45px;animation:w-arm .62s ease-in-out infinite;animation-delay:-.31s}
.w-arm-b{transform-origin:52px 45px;animation:w-arm .62s ease-in-out infinite}
@keyframes w-limb{0%,100%{transform:rotate(24deg)}50%{transform:rotate(-24deg)}}
@keyframes w-arm{0%,100%{transform:rotate(17deg)}50%{transform:rotate(-17deg)}}
@keyframes w-bob{0%,100%{transform:translateY(0)}25%,75%{transform:translateY(-2.5px)}}


/* reveal #ens-reveal */
html.js .ens-reveal{opacity:0;transform:translateY(48px) scale(.94);transition:opacity 0.7s cubic-bezier(.2,.7,.2,1),transform 0.7s cubic-bezier(.2,.7,.2,1)}
html.js .ens-reveal.in{opacity:1;transform:none}
/* Casos de éxito — reacomode 66/67 (título fijo izq + panel caso der, texto fijo + video al scroll) */
/* caminito cruzado de fondo (como la plantilla 19.17.21) — la vista ya es position:fixed, no la piso */
#sec-casos-funcional{overflow-x:hidden}
.casos-x-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:22% 38%;opacity:.4;pointer-events:none;z-index:0;filter:saturate(1.05)}
.casos-x-topbar{position:absolute;top:0;left:0;right:0;height:88px;z-index:6;display:flex;align-items:center;justify-content:center;padding:0 36px;pointer-events:none}
.casos-x-brand{height:clamp(30px,4.2vw,52px);width:auto;display:block}
.casos-x-logo{position:absolute;left:36px;top:50%;transform:translateY(-50%);height:clamp(34px,4.2vw,54px);width:auto;display:block}
.casos-x{position:relative;z-index:1;max-width:1120px;margin:0 auto;padding:0 24px;display:grid;grid-template-columns:auto 1fr;gap:clamp(24px,5vw,64px);align-items:center}
.casos-x-titulo{align-self:center}
.casos-x-titulo-box{border:2px solid rgba(255,255,255,.55);border-radius:22px;padding:clamp(30px,3.4vw,50px) clamp(24px,3.2vw,48px) clamp(20px,2.6vw,36px);display:inline-block}
.casos-x-titulo-box span{display:block;white-space:nowrap;color:#fff;font-weight:900;line-height:1;font-family:"BRIDCOWEB-SpartanMB-Black",-apple-system,system-ui,sans-serif;font-size:clamp(2rem,5vw,4.2rem)}
.casos-x-titulo-box span+span{margin-top:.2em}   /* aire entre renglones para que el tilde de la É no roce la S de CASOS */
/* la É real en fuente de sistema (la BRIDCO trae el glifo É vacío); el tilde viene dentro del glifo → no choca con la línea de arriba */
.casos-acc{font-style:normal;font-weight:900;font-family:-apple-system,"Segoe UI",Helvetica,Arial,sans-serif}
.casos-carr{overflow:hidden}
.casos-carr-track{display:flex;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.casos-caso{flex:0 0 100%;min-width:100%;display:flex;flex-direction:column;justify-content:center;gap:20px;padding:8px 8px 8px 0}
.casos-caso h3{color:#fff;font-weight:900;font-family:"BRIDCOWEB-SpartanMB-Black",-apple-system,system-ui,sans-serif;font-size:clamp(1.7rem,3.4vw,2.7rem);letter-spacing:.02em;margin:0}
.casos-caso p{color:#cfe0ec;font-family:"BRIDCOWEB-Roboto-Bold",-apple-system,system-ui,sans-serif;font-size:clamp(1rem,1.4vw,1.14rem);line-height:1.55;max-width:52ch;margin:0}
.casos-carr-nav{display:flex;align-items:center;gap:18px;margin-top:26px}
.casos-prev,.casos-next{width:46px;height:46px;border-radius:50%;border:2px solid rgba(255,255,255,.5);background:transparent;color:#fff;font-size:1.4rem;line-height:1;cursor:pointer;transition:background .2s,border-color .2s}
.casos-prev:hover,.casos-next:hover{background:rgba(255,255,255,.12);border-color:#0EFCA6}
.casos-dots{display:flex;gap:10px}
.casos-dots button{width:11px;height:11px;border-radius:50%;border:0;background:rgba(255,255,255,.28);cursor:pointer;padding:0;transition:background .2s,transform .2s}
.casos-dots button.is-active{background:#0EFCA6;transform:scale(1.15)}
.casos-x-cta{align-self:flex-start;background:#0EFCA6;color:#013250;font-weight:800;border:0;cursor:pointer;font-size:1rem;text-decoration:none;padding:14px 40px;border-radius:999px;font-family:"BRIDCOWEB-Roboto-Bold",-apple-system,system-ui,sans-serif;transition:transform .2s,filter .2s}
.casos-x-cta:hover{transform:translateY(-2px);filter:brightness(1.06)}
/* Volver al camino → abajo-derecha (solo en Casos) */
#sec-casos-funcional .ens-vista-volver{top:auto;bottom:30px;left:auto;right:30px}
/* scrim para que el texto NUNCA se pise con el camino de fondo */
#sec-casos-funcional::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(120% 90% at 78% 50%, rgba(1,50,80,.72) 0%, rgba(1,50,80,.35) 45%, rgba(1,50,80,0) 70%)}
@media(max-width:760px){.casos-x{grid-template-columns:1fr;gap:22px}.casos-x-titulo{position:static;justify-self:center}.casos-x-caso{min-height:auto}#sec-casos-funcional .ens-vista-volver{bottom:20px;right:20px}}
/* PUERTA/VISTA — patrón reusable: un teaser del camino ([data-abre]) abre su vista overlay ([data-vista=X]);
   sirve para Casos, Servicios y Contacto sin duplicar código. */
.ens-vista{position:fixed;inset:0;z-index:120;display:none;align-items:center;overflow-y:auto;padding:96px 0 56px}
.ens-vista.is-open{display:flex}
.ens-puerta{cursor:pointer}
.ens-vista-volver{position:fixed;top:auto;bottom:30px;left:auto;right:30px;z-index:130;display:inline-flex;align-items:center;background:transparent;color:#fff;border:2px solid rgba(255,255,255,.5);border-radius:999px;padding:11px 24px;font-family:"BRIDCOWEB-Roboto-Bold",-apple-system,system-ui,sans-serif;font-weight:800;font-size:.95rem;cursor:pointer;transition:background .2s,border-color .2s,color .2s}
.ens-vista-volver:hover{background:#0EFCA6;border-color:#0EFCA6;color:#013250}
/* vista CLARA (fondo blanco, ej. Servicios s65) */
.ens-vista-clara{background:#fff}
.ens-vista-clara .ens-vista-volver{color:#013250;border-color:rgba(1,50,80,.35)}
.serv-vista{max-width:1160px;margin:0 auto;padding:0 24px;width:100%}
.serv-vista-tit{color:#0AC77E;font-weight:900;font-family:"BRIDCOWEB-SpartanMB-Black",-apple-system,system-ui,sans-serif;font-size:clamp(2rem,5vw,3.6rem);margin:0}
.serv-vista-sub{color:#4a5a67;font-family:"BRIDCOWEB-Roboto-Bold",-apple-system,system-ui,sans-serif;font-size:clamp(1rem,1.5vw,1.15rem);margin:.5rem 0 0}
/* FICHERO: tarjetas RECTAS en cascada diagonal (bajan a la derecha, muy solapadas) — tal cual el .ai pág.2 */
.serv-deck{position:relative;z-index:1;display:flex;justify-content:center;align-items:flex-start;overflow:visible;padding:78px 40px 70px}
.serv-card{position:relative;flex:0 0 clamp(220px,20vw,258px);background:#fff;border:1px solid #eaeef3;border-radius:24px;padding:26px 26px 30px;box-shadow:0 22px 50px rgba(1,50,80,.16);margin-left:-118px;z-index:calc(var(--i) + 1);min-height:340px;
  --r:1;opacity:var(--r);transform:translateY(calc(var(--i) * 20px)) translateX(calc((1 - var(--r)) * 70px)) scale(calc(.92 + var(--r) * .08));transition:opacity .12s linear,transform .12s linear}
.serv-card:first-child{margin-left:0}
/* compatible con el scroll-reveal: al pararte sobre una carta ya revelada, se levanta y la leés completa */
.serv-card:hover{transform:translateY(calc(var(--i) * 15px - 34px)) scale(1.05);z-index:60;box-shadow:0 34px 76px rgba(1,50,80,.32)}
.serv-card-icon{position:absolute;top:22px;right:22px;width:34px;height:auto;opacity:.92}
/* vista Servicios: header BRIDCO + cinta en S detrás del fichero (tal cual el .ai) */
.serv-view{padding:0;overflow:hidden}
.serv-view.is-open{display:block}
.serv-sticky{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.serv-driver{display:none}
/* INTRO: zoom-in en "SERVICIOS" (sobre el camino azul) hasta que se abre a blanco — filmina 63 / ref Lenis */
.serv-intro{position:fixed;inset:0;z-index:10;background:#1840B2;display:flex;align-items:center;justify-content:center;overflow:hidden;pointer-events:none;opacity:0;visibility:hidden}
.serv-view.is-open .serv-intro{animation:serv-intro 1.15s cubic-bezier(.66,0,.34,1) forwards}
.serv-intro-cinta{position:absolute;inset:0;width:100%;height:100%;opacity:.9}
.serv-intro-word{position:relative;z-index:2;color:#fff;font-family:"BRIDCOWEB-SpartanMB-Black",-apple-system,system-ui,sans-serif;font-weight:900;font-size:clamp(3rem,11vw,9rem);letter-spacing:.01em;transform-origin:50% 50%;will-change:transform}
.serv-view.is-open .serv-intro-word{animation:serv-intro-word 1.15s cubic-bezier(.66,0,.34,1) forwards}
@keyframes serv-intro{0%{opacity:1;visibility:visible;background:#1840B2}62%{opacity:1;background:#1840B2}86%{opacity:1;background:#fff}100%{opacity:0;visibility:hidden;background:#fff}}
@keyframes serv-intro-word{0%{transform:scale(.55);opacity:0}16%{transform:scale(1);opacity:1}62%{transform:scale(1.6);opacity:1}100%{transform:scale(26);opacity:0}}
.serv-topbar{position:absolute;top:0;left:0;right:0;height:88px;z-index:6;display:flex;align-items:center;justify-content:center;padding:0 32px;background:linear-gradient(#fff,#fff 62%,rgba(255,255,255,0))}
.serv-iso{position:absolute;left:30px;top:50%;transform:translateY(-50%);line-height:0}
.serv-iso img{width:46px;height:46px;display:block}
.serv-brand{height:clamp(32px,4.6vw,58px);width:auto;display:block}
.serv-view .serv-volver{position:fixed;left:auto;right:30px;top:auto;bottom:30px;transform:none;margin:0;z-index:130}
.serv-view .serv-vista{position:relative;max-width:1220px;margin:0 auto;padding:0 24px;width:100%}
.serv-cinta{position:absolute;left:0;right:0;bottom:52px;width:100%;height:clamp(210px,34vh,360px);z-index:0;pointer-events:none;overflow:visible;filter:drop-shadow(0 10px 26px rgba(24,64,178,.22))}
@media(max-width:820px){.serv-brand{display:none}.serv-card{margin-left:-118px}}
.serv-num{display:block;color:#00E39A;font-weight:900;line-height:.95;font-family:"BRIDCOWEB-SpartanMB-Black",-apple-system,system-ui,sans-serif;font-size:clamp(2.6rem,3.6vw,3.4rem);margin-bottom:10px}
.serv-card h3{color:#012E4A;font-weight:900;font-family:"BRIDCOWEB-SpartanMB-Black",-apple-system,system-ui,sans-serif;font-size:clamp(1.12rem,1.5vw,1.32rem);line-height:1.12;margin:0 0 12px}
.serv-card p{color:#5b6b78;font-family:-apple-system,system-ui,sans-serif;font-size:.9rem;line-height:1.5;margin:0}
.serv-card p[data-hueco]{opacity:.6;font-style:italic}
/* CAMINO — bloques limpios (rearmados por filmina) */
.cam-wrap{position:relative;max-width:1180px;margin:0 auto;padding:clamp(50px,10vh,110px) 24px;min-height:66vh;display:flex;align-items:center;justify-content:center}
.cam-card-servicios{transform:rotate(-4deg);text-align:center}
.cam-serv-box{display:inline-block;border:2px solid rgba(255,255,255,.9);border-radius:20px;padding:clamp(12px,2vw,26px) clamp(34px,6vw,84px);color:#fff;font-weight:900;font-family:"BRIDCOWEB-SpartanMB-Black",-apple-system,system-ui,sans-serif;font-size:clamp(2.6rem,8vw,6rem);line-height:.9}
.cam-card-sub{color:#0EFCA6;font-weight:700;font-family:"BRIDCOWEB-Roboto-Bold",-apple-system,system-ui,sans-serif;font-size:clamp(1.4rem,3.6vw,2.7rem);margin:.7rem 0 1.3rem}
.cam-serv-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}
.cam-serv-list li{color:#fff;font-weight:700;font-family:"BRIDCOWEB-Roboto-Bold",-apple-system,system-ui,sans-serif;font-size:clamp(.95rem,1.9vw,1.35rem);transition:color .2s,transform .2s;cursor:default}
.cam-serv-list li:hover{color:#0EFCA6;transform:scale(1.04)}
/* nodos (barrera/WhatsApp) ahora son hijos de la cinta full-width → se posicionan en coords de la cinta (wrap-normalizadas), z-index sobre la cinta */
.cam-nodo{position:absolute;z-index:5;width:clamp(72px,10vw,128px);height:clamp(72px,10vw,128px);border-radius:50%;border:2px solid rgba(255,255,255,.6);background:rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center}
.cam-nodo-barrera{left:8.2%;top:42.1%;transform:translate(-50%,-50%)}   /* punto de rebote del largo (f0.44 = la curva sobre la izquierda, arriba en Servicios) */
.cam-nodo-wa{left:85.7%;top:34.7%;transform:translate(-50%,-50%)}         /* final del camino corto */
/* BARRERA boom-gate: brazo que sube y baja (GIF); baja=cerrada (rebota al muñeco), alta=abierta (pasó) */
.cam-boom{background:none!important;border:0!important;width:clamp(80px,10.5vw,130px);height:auto}
.ens-barrera-svg{width:100%;display:block;overflow:visible;filter:drop-shadow(0 6px 16px rgba(0,0,0,.28))}
.boom-arm{transform-box:view-box;transform-origin:44px 47px;animation:boom-bob 2.4s ease-in-out infinite;transition:transform .35s ease}
@keyframes boom-bob{0%,100%{transform:rotate(2deg)}50%{transform:rotate(-52deg)}}
.cam-boom.is-baja .boom-arm{animation:none;transform:rotate(2deg)}
.cam-boom.is-alta .boom-arm{animation:none;transform:rotate(-68deg)}
.cam-nodo img{width:54%;height:54%;object-fit:contain}
/* WhatsApp PRENDIDO: cuando el corto llega, se ilumina y late para invitar al click */
.cam-nodo-wa{transition:border-color .3s,background .3s}
.cam-nodo-wa.is-llegada{border-color:#05E39A;background:rgba(5,227,154,.2);cursor:pointer;animation:wa-latido 1.1s ease-in-out infinite}
@keyframes wa-latido{0%,100%{transform:translate(-50%,-50%) scale(1);box-shadow:0 0 0 0 rgba(5,227,154,.55)}50%{transform:translate(-50%,-50%) scale(1.14);box-shadow:0 0 34px 10px rgba(5,227,154,.6)}}
@media(max-width:820px){.cam-nodo{display:none}.cam-card-servicios{transform:rotate(-2deg)}}
/* CINTA fiel = imagen real del PNG (ancho variable + bucle), estirada al alto del camino
   (mismo mapeo que la línea central del muñeco → alineado); revelada por clip al scroll. */
.ens-cinta-img{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;z-index:0;pointer-events:none;clip-path:inset(0 0 100% 0);will-change:clip-path;transform:translateZ(0);backface-visibility:hidden}
/* CONTORNO por sección (tu idea de capas): una banda del color del fondo, con borde suave, montada sobre el borde del listón → tapa el filo del PNG sin tocarlo. Una por sección oscura, sincronizada con el reveal por JS. */
.cam-contorno{display:none;position:absolute;inset:0;z-index:2;pointer-events:none;
  -webkit-mask-image:url(assets/camino_borde_mask.png?m=10);mask-image:url(assets/camino_borde_mask.png?m=10);
  -webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  clip-path:inset(0 0 100% 0);will-change:clip-path;opacity:.9}
.ens-spine-path{stroke:transparent}   /* el largo lo dibuja la imagen; el path queda para la línea del muñeco */
/* Clientes/final — limpio (ref 5): título + logos + footer azul */
.cam-clientes{background:#fff;padding:clamp(48px,8vw,90px) 24px;text-align:center}
.cam-clientes-tit{color:#0a0a0a;font-weight:800;font-family:"BRIDCOWEB-Roboto-Bold",-apple-system,system-ui,sans-serif;font-size:clamp(1.4rem,3.4vw,2.4rem);margin:0 0 clamp(28px,5vw,54px)}
.cam-clientes-logos{max-width:1100px;margin:0 auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:clamp(22px,3.5vw,52px)}
.cam-clientes-logos img{height:clamp(34px,4.6vw,58px);width:auto;object-fit:contain}
.cam-footer{background:#1840B2;padding:clamp(32px,5vw,52px) 24px}
.cam-footer-soc{display:flex;gap:clamp(18px,3vw,30px);align-items:center;justify-content:center}
.cam-footer-soc a{width:clamp(48px,6vw,64px);height:clamp(48px,6vw,64px);border-radius:50%;border:1.5px solid rgba(255,255,255,.7);color:#fff;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s}
.cam-footer-soc a:hover{background:#fff;color:#1840B2}
.cam-footer-soc svg{width:46%;height:46%}
/* CAMINO — bloque limpio genérico (caja inclinada + subtítulo verde), ref 1-5 */
.cam-blk{position:relative;min-height:66vh;display:flex;align-items:center;justify-content:center;padding:clamp(50px,10vh,110px) 24px;overflow:hidden}
.cam-inner{position:relative;z-index:2;text-align:center;max-width:1180px;width:100%;display:flex;flex-direction:column;align-items:center}
.cam-caja{display:inline-block;transform:rotate(-4deg);border:2px solid rgba(255,255,255,.9);border-radius:20px;padding:clamp(12px,2vw,24px) clamp(30px,5vw,72px)}
/* JUEGUITO: la zona por la que pasa el muñeco se ILUMINA/crece y se vuelve clickeable (abre su ventana) */
.cam-caja,.cam-card-servicios{transition:transform .4s ease,box-shadow .4s ease}
.ens-puerta.is-activo{cursor:pointer}
.ens-puerta.is-activo .cam-caja,.ens-puerta.is-activo .cam-card-servicios{transform:rotate(-4deg) scale(1.07);box-shadow:0 0 50px rgba(255,255,255,.5)}
.cam-taza{transition:transform .4s ease,filter .4s ease}
#sec-casosde-xito.is-activo .cam-taza{transform:scale(1.12);filter:drop-shadow(0 0 22px rgba(14,252,166,.9));cursor:pointer}
/* cartel LUMINOSO: cuando el muñeco pasa POR DEBAJO del cartel se enciende (brillo tipo luminoso) — coincide con el ralentí */
.cam-caja.is-luminoso,.cam-card-servicios.is-luminoso{border-color:#0EFCA6;animation:cam-lum 1.1s ease-in-out infinite}
@keyframes cam-lum{0%,100%{box-shadow:0 0 22px rgba(255,255,255,.4)}50%{box-shadow:0 0 62px rgba(14,252,166,.75)}}
.cam-taza.is-luminoso{animation:cam-lum-caf 1s ease-in-out infinite;cursor:pointer}
@keyframes cam-lum-caf{0%,100%{filter:drop-shadow(0 0 16px rgba(14,252,166,.85))}50%{filter:drop-shadow(0 0 36px rgba(14,252,166,1))}}
.cam-caja span{display:block;color:#fff;font-weight:900;line-height:1.06;font-family:"BRIDCOWEB-SpartanMB-Black",-apple-system,system-ui,sans-serif;font-size:clamp(2.4rem,7vw,5.4rem)}
.cam-sub{color:#0EFCA6;font-weight:700;font-family:"BRIDCOWEB-Roboto-Bold",-apple-system,system-ui,sans-serif;font-size:clamp(1.3rem,3.4vw,2.5rem);margin:.9rem 0 0;transform:rotate(-3deg)}
.cam-taza{position:absolute;right:4%;top:32.4%;transform:none;width:clamp(140px,13.5vw,186px);height:clamp(140px,13.5vw,186px);border-radius:50%;background:rgba(233,238,243,.92);display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;text-align:center;z-index:3}
.cam-taza img{width:38%;height:auto}
.cam-taza-icono{width:46%;height:auto;display:block}
.cam-taza small{color:#013250;font-size:clamp(.62rem,1.05vw,.82rem);font-weight:700;line-height:1.15;margin-top:5px;padding:0 10px}
/* bifurcación limpia + servicios underlines (ref 1 y 2) */
.cam-blk-bif{color:#111}
.cam-bif{position:absolute;inset:0;z-index:4;pointer-events:none}   /* capa: los labels se ubican absolutos sobre los caminos (plantilla) */
.cam-label{position:absolute;pointer-events:auto;white-space:nowrap;background:none;border:0;cursor:pointer;text-align:left;font-family:"BRIDCOWEB-SpartanMB-Regular",-apple-system,system-ui,sans-serif}
.cam-label span{display:block;color:#111;font-size:clamp(1rem,2.2vw,1.7rem)}
.cam-label strong{display:block;color:#111;font-weight:900;font-family:"BRIDCOWEB-SpartanMB-Black",-apple-system,system-ui,sans-serif;font-size:clamp(1.1rem,2.4vw,1.8rem)}
.cam-label-corto{text-align:right}
.cam-serv-list li{position:relative}
.cam-serv-list li::after{content:"";position:absolute;left:50%;transform:translateX(-50%);bottom:-3px;width:min(62%,340px);height:1px;background:rgba(255,255,255,.5)}
/* bifurcación MÁS EXTENSA; labels ABSOLUTOS sobre los caminos (plantilla 19.08.46) */
.cam-blk-bif{min-height:132vh}
/* CAMINO LARGO: dentro de la curva (hueco de la U del largo) */
.cam-label[data-elige="largo"]{left:23.7%;top:51%}
/* CAMINO CORTO: a la derecha, justo antes del rulo, el camino corta cerca */
.cam-label[data-elige="corto"]{right:10%;top:51%;text-align:right}
/* selección reversible: el camino elegido resalta, el otro se atenúa (clic en el otro = volver) */
.cam-label{opacity:.55;transition:opacity .2s ease}
.cam-label span,.cam-label strong{transition:color .25s ease}
.cam-label:hover{opacity:.85}
.cam-label.is-active{opacity:1}
/* el camino elegido: se pinta (celeste el largo, verde el corto) en vez del subrayado */
.cam-label[data-elige="largo"].is-active span,.cam-label[data-elige="largo"].is-active strong{color:#1E9BE8}
.cam-label[data-elige="corto"].is-active span,.cam-label[data-elige="corto"].is-active strong{color:#06C083}
/* bloques del camino más parejos (Casos/Contacto igual de altos que Servicios) */
.cam-blk{min-height:92vh}
/* FIX cinta: que se vea sobre TODOS los bloques (estaba tapada por los fondos opacos de casos/contacto/bif) */
.cam-blk{overflow:visible}
.ens-cinta-img{z-index:1}
.cam-blk,.cam-clientes{background-clip:padding-box}
.cam-inner,.cam-taza,.cam-serv-list,.cam-card-servicios,.cam-serv-box{position:relative;z-index:3}
/* clientes carrusel (marquee) — el camino termina ARRIBA de este título */
.cam-clientes-carr{overflow:hidden;max-width:100%;margin:0 auto;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.cam-clientes-track{display:flex;align-items:center;gap:clamp(48px,6vw,92px);width:max-content;animation:cam-marquee 60s linear infinite}
.cam-clientes-track:hover{animation-play-state:paused}
.cam-clientes-track img{height:clamp(50px,6.4vw,84px);width:auto;object-fit:contain}
@keyframes cam-marquee{to{transform:translateX(-50%)}}

/* ── ACCESIBILIDAD (pase de producción 27-jul) ── */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}
:focus-visible{outline:3px solid #0efca6;outline-offset:2px}
.ens-skip{position:absolute;left:-9999px;top:0;background:#012e4a;color:#fff;padding:10px 16px;border-radius:0 0 10px 0;z-index:99999;font-weight:700}
.ens-skip:focus{left:0}

/* ── MOBILE: el hero desktop es 16:9; en portrait 'cover' recorta el título (se ve "RIDC"). En
   mobile lo mostramos completo (contain) sobre fondo navy para que se lea "BRIDCO" entero. ── */
@media (max-width:600px){
  .ens-landinginicio-0-bridco,.ens-landinginicio-0-bridge{background:#012e4a}
  .ens-landinginicio-0-bridco img,.ens-landinginicio-0-bridge img{object-fit:contain;transform:scale(1)}
}

/* --- Banner de cookies --- */
.ens-cookies{position:fixed;left:16px;right:16px;bottom:16px;z-index:99999;max-width:720px;margin:0 auto;background:#003350;color:#eaf2ff;border:1px solid rgba(14,252,166,.35);border-radius:14px;padding:16px 18px;box-shadow:0 12px 40px rgba(0,0,0,.35);display:none;font-family:inherit;font-size:14px;line-height:1.5}
.ens-cookies.is-visible{display:block}
.ens-cookies p{margin:0 0 12px}
.ens-cookies-btns{display:flex;gap:10px;flex-wrap:wrap}
.ens-cookies button{cursor:pointer;border-radius:999px;padding:9px 20px;font-size:14px;font-weight:600;border:1px solid transparent;font-family:inherit}
.ens-cookies-ok{background:#0efca6;color:#012e4a}
.ens-cookies-no{background:transparent;color:#eaf2ff;border-color:rgba(234,242,255,.4)}
@media(max-width:600px){.ens-cookies{left:10px;right:10px;bottom:10px;padding:14px}}

/* --- Crédito del footer --- */
.cam-footer-cred{margin:clamp(20px,3vw,30px) 0 0;text-align:center;font-size:12px;line-height:1.7;letter-spacing:.03em;color:rgba(255,255,255,.72);font-family:inherit}
.cam-footer-cred span{color:rgba(255,255,255,.5)}

/* ============ PASADA MOBILE (≤600px) — no afecta desktop ============ */
@media (max-width:600px){
  html,body{overflow-x:clip}

  /* --- Vista de CONTACTO: que no corte la izquierda + botones apilados --- */
  .ens-vista{padding:78px 0 40px;align-items:flex-start}
  .cont-inner{max-width:calc(100vw - 22px)!important;width:calc(100vw - 22px);margin:18px auto!important;padding:22px 18px!important;border-radius:18px}
  .cont-vista{padding-top:0}
  .cont-vista .bafwf-form{max-width:100%}
  .cont-tit{font-size:1.35rem!important;line-height:1.22}
  .cont-sub{font-size:.95rem}
  .bafwf-form-row input,.bafwf-form-row textarea,.cont-vista .bafwf-form-row input,.cont-vista .bafwf-form-row textarea{width:100%;box-sizing:border-box}
  .cont-vista .bafwf-form-actions{flex-direction:column;align-items:stretch;gap:.6rem}
  .cont-vista .bafwf-form-actions .bafwf-btn{width:100%;text-align:center;justify-content:center}
  .ens-vista-volver{bottom:14px;right:14px;padding:9px 16px;font-size:.85rem}
}

/* --- Más aire vertical en la tarjeta de Contacto (arriba/abajo) --- */
.cont-inner{padding-top:clamp(42px,5.5vw,66px);padding-bottom:clamp(42px,5.5vw,66px)}
.cont-head{margin-bottom:1.8rem}
@media (max-width:600px){
  .cont-inner{padding-top:34px!important;padding-bottom:34px!important}
}

/* ===== HERO MOBILE dedicado (rediseño vertical) — desktop no lo ve ===== */
.ens-mobhero{display:none}
@media (max-width:600px){
  .ens-mobhero{display:flex;position:relative;flex-direction:column;align-items:center;justify-content:center;width:100%;min-height:100svh;min-height:100vh;background:#012E4A;overflow:hidden;padding:0 24px;text-align:center}
  .ens-mobhero-cinta{position:absolute;inset:0;width:100%;height:100%;opacity:.95;z-index:0}
  .ens-mobhero-in{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:22px}
  .ens-mobhero-logo{width:74vw;max-width:340px;height:auto;filter:drop-shadow(0 8px 34px rgba(1,20,40,.6))}
  .ens-mobhero-sub{margin:0;color:#eaf3ff;font-size:1.06rem;line-height:1.35;font-weight:600;max-width:15em;text-shadow:0 2px 16px rgba(1,20,40,.7);font-family:inherit}
  .ens-mobhero-scroll{position:absolute;bottom:20px;left:0;right:0;z-index:2;color:#eaf3ff;font-size:1.7rem;opacity:.85;animation:mobheroBounce 1.8s ease-in-out infinite}
  @keyframes mobheroBounce{0%,100%{transform:translateY(0)}50%{transform:translateY(8px)}}
  /* descartar el inmersivo letterboxeado en mobile: el hero mobile lo reemplaza */
  .ens-landinginicio-0-wrap{display:none!important}
}

/* ===== INMERSIVO MOBILE — secuencia por scroll continuo (BRIDCO→BRIDGE→BRIDCO→video) ===== */
.ens-mobimm{display:none}
@media (max-width:600px){
  .ens-landinginicio-0-wrap{display:none!important}
  .ens-mobimm{display:block;position:relative}
  .ens-mobimm-beat{position:relative;height:100svh;height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#012E4A;overflow:hidden;padding:0 24px;text-align:center}
  .ens-mobimm-cinta{position:absolute;inset:0;width:100%;height:100%;opacity:.95;z-index:0}
  .ens-mobimm-word{position:relative;z-index:2;color:#fff;font-family:"BRIDCOWEB-HelveticaNowText-Black","BRIDCOWEB-HelveticaNowText-Bold",system-ui,sans-serif;font-weight:900;font-size:clamp(3rem,17vw,5.4rem);letter-spacing:-.01em;line-height:1;text-shadow:0 6px 30px rgba(1,20,40,.5)}
  .ens-mobimm-word b{font-weight:inherit}
  .ens-mobimm-logo{position:relative;z-index:2;width:76vw;max-width:340px;height:auto;filter:drop-shadow(0 8px 34px rgba(1,20,40,.6))}
  .ens-mobimm-sub{position:relative;z-index:2;margin:24px 0 0;color:#eaf3ff;font-size:1.06rem;line-height:1.35;font-weight:600;max-width:15em;text-shadow:0 2px 16px rgba(1,20,40,.7);font-family:inherit}
  /* aparición al entrar por scroll */
  .ens-mobimm-word,.ens-mobimm-logo,.ens-mobimm-sub{opacity:0;transform:translateY(26px);transition:opacity .6s ease,transform .6s ease}
  .ens-mobimm-sub{transition-delay:.12s}
  .ens-mobimm-beat.is-in .ens-mobimm-word,.ens-mobimm-beat.is-in .ens-mobimm-logo,.ens-mobimm-beat.is-in .ens-mobimm-sub{opacity:1;transform:none}
  /* beat de video: llena la pantalla */
  .ens-mobimm-vid{padding:0}
  .ens-mobimm-vid video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
}

/* ===== INMERSIVO MOBILE v2 — cinta continua (sticky) + word que morphea al scroll ===== */
@media (max-width:600px){
  .ens-mobimm-beat{display:none!important}
  .ens-mobimm{display:block;position:relative;height:260vh;background:#012E4A}
  .ens-mobimm-stick{position:sticky;top:0;height:100svh;height:100vh;overflow:hidden;display:flex;align-items:center;justify-content:center;text-align:center;padding:0 24px}
  .ens-mobimm .ens-mobimm-cinta{position:absolute;inset:0;width:100%;height:100%;opacity:.95;z-index:0}
  .ens-mobimm-morph{position:absolute;left:0;right:0;top:46%;transform:translateY(-50%);z-index:2;display:flex;justify-content:center;align-items:baseline;color:#fff;font-family:"BRIDCOWEB-HelveticaNowText-Black",system-ui,sans-serif;font-weight:900;font-size:clamp(3rem,17vw,5.4rem);letter-spacing:-.01em;line-height:1;text-shadow:0 6px 30px rgba(1,20,40,.5)}
  .ens-mobimm-morph .mend{position:relative;display:inline-block}
  .ens-mobimm-morph .mco{display:inline-block}
  .ens-mobimm-morph .mge{position:absolute;left:0;top:0;opacity:0}
  .ens-mobimm .ens-mobimm-sub{position:absolute;left:24px;right:24px;top:58%;z-index:2;text-align:center;margin:0;color:#eaf3ff;font-size:1.06rem;line-height:1.35;font-weight:600;text-shadow:0 2px 16px rgba(1,20,40,.7);font-family:inherit;opacity:0;transition:opacity .5s ease}
  .ens-mobimm-scroll{position:absolute;bottom:24px;left:0;right:0;z-index:3;color:#eaf3ff;font-size:1.7rem;opacity:.85;animation:mobheroBounce 1.8s ease-in-out infinite}
  .ens-mobvid{position:relative;height:100svh;height:100vh;background:#012E4A;overflow:hidden}
  .ens-mobvid video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
}

/* ===== INMERSIVO MOBILE v3 — fases: blanco -> abre -> video horizontal -> encontremos ===== */
@media (max-width:600px){
  .ens-mobimm{height:280vh}
  .ens-mobimm-vid2{position:absolute;inset:0;z-index:6;display:flex;align-items:center;justify-content:center;background:#fff;opacity:0}
  .ens-mobimm-vid2 video{width:100%;height:auto;display:block;transform:scaleY(0);transform-origin:center}
  .ens-mobimm-wl,.ens-mobimm-wr{display:none}
  .ens-mobimm-morph{z-index:4;will-change:transform,opacity}
  .ens-mobimm-morph .mbrid,.ens-mobimm-morph .mend{display:inline-block;will-change:transform}
  .ens-mobimm-enc{position:absolute;left:26px;right:26px;top:50%;transform:translateY(-50%);z-index:5;text-align:center;margin:0;color:#012E4A;font-family:"BRIDCOWEB-HelveticaNowText-Black","BRIDCOWEB-HelveticaNowText-Bold",system-ui,sans-serif;font-weight:900;font-size:clamp(1.5rem,6.2vw,2.1rem);line-height:1.22;opacity:0}
}

/* ===== MOTION GRAPHIC "Somos BRIDCO" — autoplay (como video), vertical, código ===== */
/* === MOTION GRAPHIC vertical "Somos BRIDCO" (v12) === */
  .ens-mobmg{display:none}
  @media (max-width:600px){
    .ens-mobmg{display:block;position:relative;width:100%;aspect-ratio:405/720;overflow:hidden;background:#1840b2}
    #sbv-stage{position:absolute;top:0;left:0;width:405px;height:720px;overflow:hidden;transform-origin:top left;
      font-family:"BRIDCOWEB-HelveticaNowText-Black","Helvetica Neue",Arial,sans-serif;background:#1840b2}
    #sbv-bg{position:absolute;inset:0;z-index:0}
    #sbv-rulo{position:absolute;inset:0;z-index:1;pointer-events:none}
    #sbv-stage .sbv-tx{position:absolute;left:0;right:0;text-align:center;color:#fff;z-index:2;
      font-weight:800;letter-spacing:-.01em;line-height:1.05;padding:0 40px;box-sizing:border-box;white-space:pre-line;margin:0}
    #sbv-panels{position:absolute;inset:0;z-index:2}
    #sbv-stage .sbv-band{position:absolute;left:0;right:0;display:flex;align-items:center;justify-content:center;
      font-weight:800;font-size:44px;color:#1840b2}
  }


/* SERVICIOS mobile: mazo MUY superpuesto (casi uno sobre otro) — se ven todas y se respeta el efecto */
@media (max-width:600px){
  .serv-deck{padding:56px 12px 56px !important;justify-content:flex-start !important;overflow:visible !important}
  .serv-deck .serv-card{flex:0 0 auto !important;width:80vw !important;max-width:320px !important;min-width:0 !important;margin-left:-72vw !important;padding:22px 22px 26px !important;border-radius:20px !important;box-shadow:0 16px 42px rgba(1,50,80,.24) !important}
  .serv-deck .serv-card:first-child{margin-left:0 !important}
  .serv-deck .serv-card:hover{transform:none !important}
  .serv-num{font-size:2.4rem !important;margin-bottom:6px !important}
}

/* PARTE 2 mobile — CAMINO: las cintas del desktop (viewBox 1225/1200 con preserveAspectRatio=none + object-fit:fill)
   se APLASTAN en angosto → en mobile se ocultan y se pone una cinta VERTICAL nativa que corre arriba↔abajo (no estira). */
@media (max-width:600px){
  .ens-cinta-img, .serv-cinta, .ens-lay-fondo { display:none !important; }   /* fuera lo deformado */
  .ens-camino-wrap{ position:relative; }
  .ens-camino-wrap::before{           /* cinta vertical mobile-native (gradiente de marca, corre en el eje vertical) */
    content:""; position:absolute; top:0; bottom:0; left:50%; width:64px; transform:translateX(-50%);
    background:linear-gradient(180deg,#0DFCA6 0%,#08CBFF 30%,#168DEF 62%,#1840B2 100%);
    border-radius:40px; opacity:.9; z-index:0; pointer-events:none;
    -webkit-mask:radial-gradient(120px 60px at 50% 8%, #000 60%, transparent 62%) repeat-y; /* leve ondulación */
  }
  .cam-blk, .ens-seccion { position:relative; z-index:1; }  /* el contenido por ENCIMA de la cinta */
}

/* CAMINO onda vertical GENERADA (mobile) — reemplaza el gradiente plano */
.cam-onda-mob{display:none}
@media (max-width:600px){.cam-onda-mob{display:block;position:absolute;inset:0;width:100%;height:100%;z-index:5;pointer-events:none;filter:drop-shadow(0 0 9px rgba(8,203,255,.45));opacity:1}.ens-camino-wrap::before{display:none !important}.cam-contorno{z-index:0 !important}.cam-blk,.ens-seccion,.cam-nodo,.cam-serv-box,.ens-puerta,.ens-handoff{position:relative;z-index:3}}
/* LAYERING (modelo desktop): la onda (z5) pasa POR ENCIMA del FONDO de color de cada sección pero DETRÁS de los carteles (títulos/textos/café/labels, z8). Los carteles quedan al frente y legibles. */
@media (max-width:600px){.cam-onda-mob{z-index:5 !important}}

/* BIFURCACION mobile: apilar los dos rótulos, sin encimar, un poco antes (solo mobile) */
@media (max-width:600px){.cam-label{white-space:normal;text-align:center !important;left:50% !important;right:auto !important;transform:translateX(-50%);width:78%;opacity:.9}.cam-label span{font-size:1.05rem}.cam-label strong{font-size:1.25rem}.cam-label[data-elige="largo"]{top:20%}.cam-label[data-elige="corto"]{top:37%}}

/* CAMINO compresion mobile: sacar el vacío (estirado) de los cam-blk */
@media (max-width:600px){.cam-blk{min-height:60vh !important}}

/* CAMINO onda entre secciones (mobile): fondo oscuro + gaps donde la onda asoma conectando */
@media (max-width:600px){.ens-camino-wrap{background:#04121f}.cam-blk,.ens-seccion{margin-top:0}}

/* BIFURCACION altura mobile: parte blanca con aire para ver bien largo/corto (prominente arriba) */
@media (max-width:600px){.cam-blk-bif{min-height:86vh !important}.cam-label[data-elige="largo"]{top:24%}.cam-label[data-elige="corto"]{top:46%}}

/* ===== BIFURCACIÓN FORK + toggle largo/corto (SOLO mobile — desktop no lo ve) ===== */
.cam-fork-mob{display:none}
@media (max-width:600px){
  #sec-elcamino.cam-blk-bif{z-index:6 !important;background:#fff !important}
  /* fork: llena la sección, DETRÁS de los rótulos, sobre el fondo blanco */
  /* (31-jul '26) MISMO glow que la onda (era azul-tenue rgba(24,64,178,.22) vs cyan de la onda): en el empalme el halo saltaba
     de un color a otro y se leía como MARCA SOBRE EL TRAZO en el cruce blanco→celeste. Igualado → halo continuo, sin marca. */
  .cam-fork-mob{display:block;position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;filter:drop-shadow(0 0 9px rgba(8,203,255,.45))}
  /* (31-jul '26) SÓLO DOS CAMINOS: los ÚNICOS visibles son spine-path (largo) y spine-corto (corto). TODAS las piezas del fork
     (stem/largo/corto) quedan OCULTAS: sirven sólo como FUENTE DE MEDICIÓN (buildRailLargo/buildCortoD las muestrean con
     getScreenCTM, que funciona con stroke transparent). Así no queda ningún vestigio del fork en pantalla, en ningún modo. */
  .cam-fork-stem,.cam-fork-largo,.cam-fork-corto{stroke:transparent !important}
  /* rótulos: LARGO sobre la rama izquierda, CORTO sobre la derecha (sin centrar); SUBIDOS a la zona del split (triángulo/V superior, más aire) */
  /* rótulos a los COSTADOS de la recta (el stem): más aire para escribir; la bifurcación queda debajo */
  .cam-label[data-elige="largo"]{left:6% !important;right:auto !important;top:26% !important;width:38% !important;text-align:left !important;transform:none !important}
  .cam-label[data-elige="corto"]{left:auto !important;right:6% !important;top:26% !important;width:38% !important;text-align:right !important;transform:none !important}
  .cam-label.is-elegido{opacity:1}
  /* interlineado: renglones con aire (no pisados) + separación pregunta↔CAMINO X */
  .cam-label span{line-height:1.3 !important;margin-bottom:.5em !important}
  .cam-label strong{line-height:1.28 !important}
  /* CAMINO CORTO = directo a CONTACTO: se ocultan Servicios y Casos (siguen en el DOM, largo los restaura) */
  .ens-camino-wrap[data-camino="corto"] #sec-servicios,
  .ens-camino-wrap[data-camino="corto"] #sec-casosde-xito{display:none !important}
}

/* onda corto oculta (el largo no aplica en fast-track) */
@media (max-width:600px){.ens-camino-wrap[data-camino="corto"] .cam-onda-mob{display:none}}

/* ===== MOBILE: CAMINANTE sobre la ONDA + interactivos encendidos (SOLO mobile) ===== */
@media (max-width:600px){
  /* spine = riel INVISIBLE coordenado con la onda (viewBox 375x2225 lo fija el JS); solo el muñeco lo recorre */
  .ens-spine-svg{display:block;position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;overflow:visible}
  .ens-spine-path,.ens-spine-corto{stroke:transparent !important}   /* riel oculto por defecto (corto); en LARGO el spine-path se hace la cinta (abajo) */
  /* (31-jul '26) UNA SOLA CINTA (como el escritorio, que es 1 pieza): el spine-path unificado (stem+fork-largo+onda, ya lo
     arma buildRailLargo en el espacio 2225) es AHORA la cinta VISIBLE del LARGO, reemplazando las 2 piezas con empalme
     (.cam-fork-mob largo + .cam-onda-mob). Un solo trazo · un degradé · un glow → sin costura de color/geometría/halo.
     El fork queda sólo para el brazo CORTO (la Y) atenuado; la onda se apaga; el stem/largo del fork se ocultan (los dibuja el spine,
     que los MUESTREA con getScreenCTM → siguen medibles con stroke:transparent). Scopeado a data-camino="largo" (default) → el CORTO
     queda intacto (spine-corto verde). z5 = sobre el contenido (z3), como la onda. */
  .ens-camino-wrap[data-camino="largo"] .ens-spine-svg{z-index:7 !important}   /* z7 = por ENCIMA de #sec-elcamino (z6, la sección blanca de la bifurcación) → la cinta se VE sobre el blanco. Con z5 el fondo blanco la tapaba (por eso sólo se veía en el azul). Las azules son z3, no tapan. */
  .ens-camino-wrap[data-camino="largo"] .ens-spine-path{stroke:url(#ens-spine-g) !important;stroke-width:36 !important;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 9px rgba(8,203,255,.45))}
  .ens-camino-wrap[data-camino="largo"] .cam-onda-mob path{stroke:transparent !important}
  .ens-camino-wrap[data-camino="largo"] .cam-fork-stem,
  .ens-camino-wrap[data-camino="largo"] .cam-fork-largo{stroke:transparent !important}
  /* WALKER encendido, capa MEDIA: por encima de la onda (z5), debajo de los carteles (z8) */
  .ens-cursor-walker{display:block !important;z-index:9}   /* muñeco SIEMPRE por encima de la cinta (spine z7 en largo, z7 en corto) */
  /* BARRERA encendida y ANCLADA a la onda (el JS la coloca con left/top %); vencer .cam-nodo{display:none}@820 y position:relative@600; cartel-level (sobre la onda) */
  .ens-camino-wrap .cam-nodo-barrera{display:flex !important;position:absolute !important;z-index:8}
}

/* ===== LAYERING mobile: carteles al FRENTE, onda detrás del contenido legible (modelo desktop) ===== */
@media (max-width:600px){
  /* las secciones del camino NO deben ser stacking-contexts (si lo son, atrapan sus hijos por debajo de la onda z5). z-index:auto + su fondo de color OPACO en flujo (debajo de la onda). */
  #sec-servicios,#sec-casosde-xito,#sec-contacto{position:relative;z-index:auto !important}
  /* los CARTELES (contenedores de título/subtítulo/lista — transparentes, solo su texto es opaco) suben a z8 → por encima de la onda. NO son wrappers opacos de sección entera. */
  #sec-servicios .cam-card-servicios,
  #sec-casosde-xito .cam-inner,
  #sec-contacto .cam-inner{position:relative;z-index:8 !important}
  /* café = cartel clickeable ANCLADO a la onda: absolute + centrado en el punto (el JS pone left/top %). Sin absolute quedaba relative (line 374) → left/top actuaban como offsets y caía a mitad de Casos. */
  .cam-taza{position:absolute !important;transform:translate(-50%,-50%);z-index:8 !important}
  /* continuidad: sin bandas oscuras entre secciones (el fondo #04121f del wrap no debe asomar por márgenes) */
  .cam-blk,.ens-seccion{margin-top:0 !important;margin-bottom:0 !important}
}

/* ===== BARRERA rebote HACIA ARRIBA (mobile) — el JS pone .is-rebote cuando el muñeco la alcanza ===== */
@media (max-width:600px){
  /* preserva el centrado translate(-50%,-50%) y suma un salto vertical que sube y asienta */
  @keyframes cam-rebote{0%{transform:translate(-50%,-50%)}26%{transform:translate(-50%,-50%) translateY(-26px)}52%{transform:translate(-50%,-50%) translateY(-6px)}76%{transform:translate(-50%,-50%) translateY(-13px)}100%{transform:translate(-50%,-50%)}}
  .cam-nodo-barrera.is-rebote{animation:cam-rebote .62s ease-out}
}

/* PROPORCION camino mobile: onda/fork como camino (fino) no diseño; café más chico */
@media (max-width:600px){.cam-onda-mob path{stroke-width:36 !important}.cam-fork-mob path{stroke-width:36 !important}.cam-taza{width:92px !important;height:92px !important;min-width:0 !important}.cam-taza-icono{width:26px !important;height:26px !important}.cam-taza span,.cam-taza strong,.cam-taza p{font-size:8px !important;line-height:1.05 !important}}

/* ===== (item 4) BOUNCE FIX: el JUEGUITO is-activo (efecto desktop: al pasar el muñeco el cartel salta/gira) ==========
   se dispara por scroll vía IntersectionObserver y, con transition:transform .4s, hace REBOTAR café+carteles en mobile.
   Además #sec-casosde-xito.is-activo .cam-taza{transform:scale(1.12)} pisaba el translate(-50%,-50%) → el café saltaba.
   Congelamos transform+transition en mobile (el rebote queda SOLO en la barrera, que usa @keyframes, no transition). */
@media (max-width:600px){
  .cam-taza,.cam-caja,.cam-card-servicios{transition:none !important}
  #sec-casosde-xito.is-activo .cam-taza{transform:translate(-50%,-50%) !important}   /* café: sigue centrado en la onda, sin scale */
  .ens-puerta.is-activo .cam-caja{transform:none !important}                          /* carteles Casos/Contacto: sin giro/scale al scrollear */
  .ens-puerta.is-activo .cam-card-servicios{transform:rotate(-2deg) !important}       /* servicios: conserva su leve inclinación en reposo → sin salto */
}

/* ===== (item 1) TRANSICIONES DE FONDO FLUIDAS entre secciones (mobile) — el color no cambia de golpe =====
   fade vertical en el TOP de cada sección: arranca con el color de la sección anterior y se desvanece → el camino "sigue pasando". Debajo de la onda (z1<z5), no tapa textos (arriba, z8). */
@media (max-width:600px){
  #sec-casosde-xito::before{content:"";position:absolute;left:0;right:0;top:0;height:100px;background:linear-gradient(#1840B2,rgba(0,51,80,0));z-index:1;pointer-events:none}
  #sec-contacto::before{content:"";position:absolute;left:0;right:0;top:0;height:100px;background:linear-gradient(#003350,rgba(24,64,178,0));z-index:1;pointer-events:none}
  /* en corto, Casos está oculto → el fade teal de Contacto no aplica */
  .ens-camino-wrap[data-camino="corto"] #sec-contacto::before{display:none}
}

/* ===== (item 2) CAMINO CORTO: la ruta se DIBUJA/ENCIENDE hacia Contacto al elegir corto (mobile) =====
   el spine-corto (riel oculto) se hace visible (verde menta) y el JS lo dibuja con stroke-dashoffset; sube a z7 para verse sobre la bifurcación blanca y el fondo de Contacto. En largo vuelve a transparente. */
@media (max-width:600px){
  .ens-camino-wrap[data-camino="corto"] .ens-spine-svg{z-index:7 !important}
  .ens-camino-wrap[data-camino="corto"] .ens-spine-corto{stroke:url(#ens-corto-g) !important;stroke-width:16 !important;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 6px rgba(14,252,166,.5))}
  /* los rótulos van SOBRE la línea (legibles); el corto no debe tapar "CAMINO CORTO" */
  .ens-camino-wrap[data-camino="corto"] .cam-label{z-index:9 !important}
  /* al elegir corto, el largo se atenúa (como su rama) */
  .ens-camino-wrap[data-camino="corto"] .cam-label[data-elige="largo"]{opacity:.32 !important}
  /* en corto la rama del fork NO se dibuja: la ruta corta es UNA sola línea (el spine, que nace en el split y baja a Contacto). Evita el doble trazo / "tercer camino". El stem y la rama LARGO siguen para mostrar la bifurcación.
     (se oculta por stroke, no opacity: el path tiene transition:opacity .25s de .cam-fork-rama que enmascara el cambio; stroke no está transicionado y responde al toque) */
  .ens-camino-wrap[data-camino="corto"] .cam-fork-corto{stroke:transparent !important}
  /* barrera y café son nodos del LARGO: no mostrarlos en corto (evita que caigan a la bifurcación) */
  .ens-camino-wrap[data-camino="corto"] .cam-nodo-barrera,
  .ens-camino-wrap[data-camino="corto"] .cam-taza{display:none !important}
}

/* SERVICIOS: nav visible (flechas + contador) para descubrir que hay 9 tarjetas y cómo moverse. Desktop la usa el fan, no la nav → oculta. */
.serv-nav{display:none}
@media (max-width:600px){
  .serv-nav{display:flex;position:fixed;left:0;right:0;bottom:calc(120px + env(safe-area-inset-bottom));z-index:131;justify-content:center;align-items:center;gap:16px;pointer-events:none}
  .serv-nav-btn{pointer-events:auto;width:44px;height:44px;border-radius:999px;border:2px solid rgba(1,50,80,.28);background:rgba(255,255,255,.92);color:#013250;font-size:1.5rem;line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-family:inherit;box-shadow:0 6px 18px -8px rgba(1,50,80,.5)}
  .serv-nav-count{pointer-events:none;font-family:"BRIDCOWEB-Roboto-Bold",system-ui,sans-serif;font-weight:800;color:#013250;font-size:.95rem;min-width:66px;text-align:center;font-variant-numeric:tabular-nums}
  /* (item 5) la nav de filminas NO debe verse en la INTRO "SERVICIOS" (dura 1.15s): aparece recién con las tarjetas.
     El delay (both) la deja oculta hasta que la intro termina y entra el deck. */
  .serv-view.is-open .serv-nav{animation:serv-nav-in .28s ease 1.2s both}
}
@keyframes serv-nav-in{from{opacity:0;visibility:hidden}to{opacity:1;visibility:visible}}
/* ===== SERVICIOS CARRUSEL (mobile) — una tarjeta a la vez; el JS (apply) pone transform/opacity por tarjeta según su offset al índice activo. Reemplaza el fan/amontonamiento. Desktop = fan intacto. ===== */
@media (max-width:600px){
  .serv-deck{position:relative !important;display:block !important;height:calc(100svh - 96px) !important;min-height:480px !important;padding:0 !important;overflow:hidden !important}
  .serv-deck .serv-card{position:absolute !important;left:50% !important;top:40% !important;margin:0 !important;width:84vw !important;max-width:340px !important;min-width:0 !important;min-height:0 !important;
    opacity:0;transform:translate(-50%,-50%) translateY(80vh) scale(.9);   /* reposo: fuera (abajo); el JS centra la activa */
    transition:transform .5s cubic-bezier(.5,0,.2,1),opacity .42s ease !important;will-change:transform,opacity;backface-visibility:hidden}
  .serv-deck .serv-card:first-child{margin:0 !important}
}

@media (max-width:600px){.cam-fork-mob{opacity:1}}

/* ===== VISTAS mobile: header BRIDCO (wordmark) + onda de fondo (como el desktop). Desktop intacto (todo en @media 600 o display:none base). ===== */
/* wordmark contacto: elemento mobile-only (oculto por defecto → desktop no lo ve) */
.cont-brand-mob{display:none}
@media (max-width:600px){
  /* SERVICIOS: mostrar el wordmark BRIDCO centrado arriba (estaba display:none en <=820) */
  .serv-topbar .serv-brand{display:block !important;height:30px !important;width:auto !important;margin:0 auto}
  /* SERVICIOS: onda de fondo (estaba oculta por la regla de cintas deformadas del camino, line ~525) → sub­til, detrás */
  .serv-view .serv-cinta{display:block !important;position:absolute !important;left:0;right:0;bottom:auto;top:33% !important;height:34vh !important;opacity:.5 !important;z-index:0 !important;filter:none !important}
  /* CONTACTO: wordmark BRIDCO mobile, centrado arriba (la vista de contacto no trae header) */
  .cont-brand-mob{display:block !important;position:absolute;top:16px;left:0;right:0;margin:0 auto;height:30px;width:auto;z-index:6;pointer-events:none}
  /* hacer lugar arriba para el wordmark (empujar la tarjeta del form) */
  #sec-contacto-form .cont-inner{margin-top:60px !important}
  /* CONTACTO: onda visible/subtle detrás del formulario */
  #sec-contacto-form .cont-cinta{display:block !important;opacity:.6 !important;z-index:0 !important}
  /* CONTACTO: la vista TIENE que scrollear con el dedo. El id traía overflow:hidden (le ganaba a .ens-vista) → el form (1148px) quedaba cortado en 707. Lo abro a auto + padding abajo para que el último campo no quede tapado por "Volver al camino". */
  #sec-contacto-form{overflow-y:auto !important;-webkit-overflow-scrolling:touch;padding-bottom:104px !important}
  /* CONTACTO: los WhatsApp van A LO ÚLTIMO (después del formulario). Reordeno con flex sin mover el HTML: head → form → WhatsApp. */
  /* + RESPONSIVE: la tarjeta se centra con márgenes SIMÉTRICOS (misma medida a izq y der) y nunca desborda, a cualquier ancho de mobile. Antes quedaba apretada a la izq y se salía 2px a la der (margin auto negativo + max-width en rem escalado). */
  #sec-contacto-form .cont-inner{display:flex !important;flex-direction:column;width:auto !important;max-width:none !important;margin-left:0 !important;margin-right:0 !important;box-sizing:border-box}
  #sec-contacto-form .cont-head{order:0}
  #sec-contacto-form .cont-inner>form{order:1}
  #sec-contacto-form .cont-wa-mob{order:2;margin-top:26px}
}

/* ===== CASOS vista apilado mobile (one-focus-per-screen): label chico arriba + caso centrado (nombre → descripción → Ver el video) + nav. El cuadrado grande se va. Desktop side-by-side intacto. ===== */
@media (max-width:600px){
  #sec-casos-funcional .casos-x{grid-template-columns:1fr !important;gap:16px !important;padding:0 22px !important;max-width:100% !important;justify-items:center;align-content:center;min-height:calc(100svh - 170px)}
  /* TÍTULO → label chico (sin cuadro grande) */
  #sec-casos-funcional .casos-x-titulo{justify-self:center !important;align-self:auto !important;margin:0}
  #sec-casos-funcional .casos-x-titulo-box{border:0 !important;padding:0 !important;display:block !important;text-align:center}
  #sec-casos-funcional .casos-x-titulo-box span{display:inline !important;white-space:normal !important;font-size:.86rem !important;letter-spacing:.16em !important;line-height:1.2 !important;color:#0EFCA6 !important;text-transform:uppercase;margin:0 !important}
  #sec-casos-funcional .casos-x-titulo-box span+span{margin-left:.32em !important;margin-top:0 !important}
  /* CASO centrado, apilado, legible */
  #sec-casos-funcional .casos-carr{width:100% !important}
  #sec-casos-funcional .casos-caso{align-items:center !important;text-align:center !important;justify-content:center !important;gap:16px !important;padding:4px 0 !important}
  #sec-casos-funcional .casos-caso h3{font-size:1.9rem !important}
  #sec-casos-funcional .casos-caso p{font-size:.92rem !important;line-height:1.5 !important;max-width:40ch !important}
  #sec-casos-funcional .casos-x-cta{align-self:center !important;padding:13px 34px !important}
  /* NAV (dots + flechas) centrada */
  #sec-casos-funcional .casos-carr-nav{justify-content:center !important;margin-top:22px !important}
}

/* ===== BIFURCACION intro + WhatsApp Contacto (mobile-only; desktop intacto vía base display:none / @media) ===== */
/* base: ocultos en desktop */
.cam-bif-intro{display:none}
.cont-wa-mob{display:none}
@media (max-width:600px){
  /* (item 4) bifurcación: aire para intro (arriba) + fork (abajo) SIN blanco largo. Antes 96vh dejaba ~117px de vacío entre el intro y el fork. */
  .cam-blk-bif{min-height:82vh !important}
  /* INTRO 2 líneas arriba, sobre el blanco, ANTES del fork/opciones */
  .cam-bif-intro{display:block;position:absolute;top:6%;left:0;right:0;margin:0 auto;z-index:5;text-align:center;padding:0 20px;pointer-events:none}
  .cam-bif-intro .l1{display:block;color:#1840B2;font-weight:900;font-family:"BRIDCOWEB-SpartanMB-Black",-apple-system,system-ui,sans-serif;font-size:clamp(1.25rem,5.3vw,1.7rem);line-height:1.16;letter-spacing:.005em}
  .cam-bif-intro .l2{display:block;margin-top:.55em;color:#5a6b82;font-weight:700;font-family:"BRIDCOWEB-Roboto-Bold",-apple-system,system-ui,sans-serif;font-size:clamp(.9rem,3.6vw,1.05rem);line-height:1.3}
  /* fork bajo el intro, sin blanco largo (top:24% en vez de 30%). El fondo del fork sigue llegando al borde (seam) → la onda no se desalinea. */
  .cam-fork-mob{top:24% !important;height:76% !important}
  /* rótulos a los COSTADOS de la RECTA (el stem), donde hay aire para escribir. La bifurcación queda debajo. Antes iban en top:70% (abajo del split). */
  /* separados del margen + angostos para que "CAMINO LARGO/CORTO" quiebre en 2 líneas (CAMINO / LARGO) y no queden pegados al borde */
  .cam-label[data-elige="largo"]{top:30% !important;left:8% !important;right:auto !important;width:30% !important;text-align:center !important;transform:none !important}
  .cam-label[data-elige="corto"]{top:30% !important;left:auto !important;right:8% !important;width:30% !important;text-align:center !important;transform:none !important}

  /* WhatsApp Contacto: 2 botones (AR/ES) arriba del form; se ocultan los del form-actions para no duplicar */
  .cont-vista .bafwf-btn-wp{display:none !important}
  .cont-wa-mob{display:flex;flex-direction:column;gap:.55rem;width:100%;margin:0 auto 1.1rem}
  .cont-wa-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:13px 18px;border-radius:14px;background:#0EFCA6;color:#013250;font-weight:800;text-decoration:none;font-family:"BRIDCOWEB-Roboto-Bold",-apple-system,system-ui,sans-serif;font-size:1rem;line-height:1.1;box-shadow:0 6px 18px rgba(14,252,166,.3)}
  .cont-wa-btn:active{filter:brightness(.96)}
  .cont-wa-btn b{font-weight:900}
  .cont-wa-ico{width:20px;height:20px;flex:none;color:#013250}
}

/* ===== (03-ago '26) HINT DE SCROLL (Opción A: dispositivo + flecha, animado, se desvanece al 1er scroll/intento) ===== */
@keyframes ensHintBob{0%,100%{transform:translateY(0)}50%{transform:translateY(7px)}}
@keyframes ensHintWheel{0%{transform:translate(-50%,0);opacity:1}70%{transform:translate(-50%,7px);opacity:0}100%{opacity:0}}
.ens-hint-phone{width:19px;height:30px;border:2px solid #eaf3ff;border-radius:5px;position:relative}
.ens-hint-phone::after{content:"";position:absolute;left:50%;bottom:3px;transform:translateX(-50%);width:7px;height:2px;border-radius:2px;background:#eaf3ff;opacity:.85}
.ens-hint-mouse{width:20px;height:31px;border:2px solid #eaf3ff;border-radius:11px;position:relative}
.ens-hint-mouse::after{content:"";position:absolute;left:50%;top:5px;transform:translateX(-50%);width:2.5px;height:6px;border-radius:2px;background:#eaf3ff;animation:ensHintWheel 1.5s ease-in-out infinite}
.ens-hint-arw{color:#08cbff;font-size:15px;line-height:.8;text-shadow:0 0 10px rgba(8,203,255,.55)}
.ens-hint-lbl{font-size:11px;letter-spacing:.03em;opacity:.9;color:#eaf3ff}
.ens-hint-oculto{opacity:0 !important;pointer-events:none}
/* mobile: el chevron viejo pasa a celular + flecha + label */
.ens-mobimm-scroll{display:flex !important;flex-direction:column;align-items:center;gap:5px;font-size:0 !important;bottom:calc(20px + env(safe-area-inset-bottom,0px)) !important;animation:ensHintBob 1.7s ease-in-out infinite !important;transition:opacity .5s ease}
/* desktop: mouse + flecha (sólo >600) */
.ens-desk-scroll{display:none}
@media(min-width:601px){
  .ens-desk-scroll{display:flex;flex-direction:column;align-items:center;gap:5px;position:absolute;bottom:26px;left:0;right:0;z-index:6;color:#eaf3ff;opacity:.85;animation:ensHintBob 1.7s ease-in-out infinite;transition:opacity .5s ease;pointer-events:none}
}
