/* Arreglos de la web publicada (14 nov 2026). Aparte de menu.css y de los CSS de página porque esos se generan desde los prototipos. */

/* ---------- Menú: apertura y cierre fluidos (también en iPhone) ----------
   Antes el menú entero se recortaba con un círculo animado (clip-path) mientras dentro había manchas de color
   con desenfoque de 90 px moviéndose: el móvil tenía que repintarlo todo en cada fotograma y daba tirones.
   Ahora el círculo es una capa blanca aparte que solo cambia de tamaño (transform, lo mueve la tarjeta gráfica),
   el contenido aparece con un fundido y las manchas son degradados sin desenfoque. Cierre: lo mismo al revés. */
html.mn-lock{overflow:hidden}
html.mn-lock body{overflow:visible;overflow-x:clip}
.mn,html.mn-ven .mnA{clip-path:none!important;background:transparent!important}
/* Cerrado: invisible y sin recibir toques. Al cerrar, todo el menú se funde en 0,26 s (la página aparece debajo) */
.mn{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .26s ease,visibility 0s linear .26s!important}
.mn.open{opacity:1;visibility:visible;pointer-events:auto;transition:opacity 0s,visibility 0s!important}
/* Al abrir: círculo blanco que crece desde el botón (solo cambia de tamaño) y el contenido aparece encima */
.mn::before{content:"";position:fixed;z-index:-2;left:calc(var(--ox,60px) - 150vmax);top:calc(var(--oy,38px) - 150vmax);width:300vmax;height:300vmax;border-radius:50%;background:#fff;transform:scale(0);will-change:transform;transition:transform 0s linear .26s}
.mn.open::before{transform:scale(1);transition:transform .55s cubic-bezier(.22,.8,.3,1)}
.mn .mn-in,.mn .mn-bg{opacity:0;transition:opacity .2s ease}
.mn.open .mn-in{opacity:1;transition:opacity .32s ease .16s}
.mn.open .mn-bg{opacity:1;transition:opacity .5s ease .25s}
.mn-bg i{filter:none!important;background:radial-gradient(closest-side,var(--mbc,#A9C7FB),transparent)!important;opacity:.7!important;will-change:transform}
.mn-bg i:nth-child(2){--mbc:#A8E0B9}.mn-bg i:nth-child(3){--mbc:#FCE19A}
.mn:not(.open) .rv1{transition:none!important}
/* Llegada desde el menú a otra página: empieza tapada y se descubre con el mismo fundido */
html.mn-ven .mnA{opacity:1!important;visibility:visible!important}
html.mn-ven .mn::before{transform:scale(1)!important;transition:none!important}
html.mn-ven .mn .mn-in,html.mn-ven .mn .mn-bg{opacity:1!important;transition:none!important}
@media (prefers-reduced-motion:reduce){.mn,.mn::before,.mn .mn-in,.mn .mn-bg{transition:none!important}}
/* Cabecera fija arriba en todas las páginas (functions.php la pone en su propio envoltorio .hd-fija) */
.hd-fija{position:sticky;top:0;z-index:90}
/* Etiquetas de los marcos y números de apartado: texto pintado por CSS, fuera de los títulos (functions.php) */
.tg[data-t]::before{content:attr(data-t)}
.n[data-n]::before{content:attr(data-n)}
/* Productos de ejemplo de los dibujos de tiendas (antes h4/h5): mismo aspecto, sin ser títulos */
.h1-info .hx4{margin:0;font:600 22px/1.1 var(--disp);letter-spacing:-.03em}
.h3-res .hx5{margin:6px 0 4px;font:400 19px/1.25 Arial,sans-serif;color:#1A0DAB}
/* Aparición al bajar más rápida: antes 0,8-0,9 s más retardo y en móvil se veía el hueco al llegar */
.dw-b .wrap > *,.w-rv,.jx{transition-duration:.4s,.45s!important}
.dw-b.in .wrap > *:nth-child(2){transition-delay:.05s!important}
.dw-b.in .wrap > *:nth-child(3){transition-delay:.1s!important}
.dw-b.in .wrap > *:nth-child(n+4){transition-delay:.12s!important}
/* Home, caso Multiplag: el contador de visitas crecía de una a dos líneas mientras cuenta y movía todo el bloque (CLS) */
@media (max-width:640px){#casos .cs-big{min-height:56px}}
/* Clientes sin caso publicado: el nombre se queda, pero sin enlace (generar.py quita el href); sin flecha ni efecto al pasar */
a:not([href]){cursor:default}
.cl a:not([href]),.cslist a:not([href]){pointer-events:none}
.cl a:not([href]) em,.cslist a:not([href]) em{visibility:hidden}
/* reCAPTCHA v3: el distintivo flotante se oculta; el aviso va dentro de cada formulario (formularios.js) */
.grecaptcha-badge{visibility:hidden!important}
.rc-aviso{flex-basis:100%;width:100%;margin:10px 0 0;font-size:12px;line-height:1.45;color:var(--ink2,#5B606A)}
.rc-aviso a{color:inherit;text-decoration:underline;text-underline-offset:2px}
