/* _menu-movil-spark.css — hamburguesa, overlay full-screen del menú móvil y coreografía de entrada (spring 1400ms, stagger 100ms).
   Requiere que _sistema-spark.css y _botones-spark.css ya estén enlazados antes (usa sus tokens: --r-m, --r-s, --ease, --quieto, --panel, --tinta, --suave, --carmin, --linea).
   Debe enlazarse ÚLTIMO de los parciales: su regla `html.menu-abierto .barra-thumb{z-index:70…}` necesita ganar por cascada sobre la barra-thumb de otros parciales.
   Extraído literal de index-ORIGEN.html líneas 1259-1326 (5º <style>). Cero renombres, cero reformateo. */
/* == MENÚ MÓVIL SPARK · overlay full-screen con la coreografía de la referencia ==
   header 50 · overlay 60 · barra de cierre 65 · barra-thumb 70 (queda sobre el menú) */
:root{
  --mm-spring:linear(0,.146,.373,.564,.705,.802,.869,.913,.943,.962,.975,.985,.99,.995,1); /* spring sobreamortiguado, muestreado */
  --mm-slide:cubic-bezier(.25,1,.5,1);                                                    /* ≈ easeOutQuart */
}
/* hamburguesa: dos barras de 18×2 que se cruzan */
.hamb{width:48px;height:48px;border:0;background:none;cursor:pointer;display:none;align-items:center;justify-content:center;border-radius:var(--r-m);color:inherit;flex:none;padding:0}
.hb-box{position:relative;width:24px;height:24px;display:block}
.hb-bar{position:absolute;left:50%;height:2px;width:18px;background:currentColor;transform-origin:center;transition:top .25s var(--mm-slide),transform .25s var(--mm-slide)}
.hb-bar:nth-child(1){top:7px;transform:translateX(-50%)}
.hb-bar:nth-child(2){top:15px;transform:translateX(-50%)}
.hamb[aria-expanded="true"] .hb-bar:nth-child(1){top:11px;transform:translateX(-50%) rotate(45deg)}
.hamb[aria-expanded="true"] .hb-bar:nth-child(2){top:11px;transform:translateX(-50%) rotate(-45deg)}
@media(max-width:979px){
  .hamb{display:flex}
  header.site .svc-btn{display:none}
  .hd-cta{display:flex;align-items:center;gap:.25rem}
}
/* overlay */
.menu-movil{position:fixed;inset:0;z-index:60;transform:translateY(-100%);visibility:hidden;transition:transform .26s cubic-bezier(.65,0,.35,1),visibility 0s .26s}
.menu-movil.open{transform:none;visibility:visible;transition:transform .3s var(--mm-slide),visibility 0s}
.mm-panel{height:100%;display:flex;flex-direction:column;background:var(--quieto);color:var(--tinta)}
.mm-scroll{flex:1 1 0;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-top:56px;padding-bottom:calc(6rem + env(safe-area-inset-bottom,0px));scroll-padding-top:56px}
.mm-inner{display:flex;flex-direction:column;padding:.6rem 1.25rem 2rem}
.mm-title{font-family:var(--serif);font-size:32px;line-height:40px;letter-spacing:0;text-wrap:balance;padding-bottom:36px}
.mm-title p{margin:0}
.mm-card{display:flex;align-items:center;justify-content:space-between;gap:12px;border-radius:var(--r-m);background:var(--panel);padding:4px 12px 4px 4px;text-decoration:none;color:inherit;min-height:72px;transition:transform .25s var(--mm-slide),background-color .15s var(--ease)}
.mm-card:active{transform:scale(.985)}
.mm-card+.mm-card,.mm-rev+.mm-rev>.mm-card{margin-top:4px}
.mm-left{display:flex;min-width:0;align-items:center;gap:20px}
.mm-thumb{width:64px;height:64px;flex:none;overflow:hidden;border-radius:var(--r-s);object-fit:cover;display:block}
.mm-thumb.ico{background:var(--quieto);display:grid;place-items:center;color:var(--carmin)}
.mm-thumb.ico svg{width:30px;height:30px}
.mm-lbl{font-size:16px;line-height:20px;letter-spacing:-.3px;font-weight:450;display:flex;flex-direction:column;gap:3px;padding-block:6px}
.mm-lbl small{font-size:12px;line-height:1.2;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--suave)}
.mm-chev{width:24px;height:24px;flex:none;opacity:.9}
.mm-card.pronto{opacity:.6;cursor:default}
.mm-eyebrow{font-size:12px;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--suave);margin:22px 0 10px 4px}
.mm-links{display:flex;flex-direction:column}
.mm-links a{display:flex;justify-content:space-between;align-items:center;font-size:18px;font-weight:450;letter-spacing:-.2px;padding:.85rem .25rem;min-height:52px;border-bottom:1px solid var(--linea);color:inherit;text-decoration:none}
.mm-links a:last-of-type{border-bottom:0}
.mm-links a::after{content:"";width:8px;height:8px;border-right:1.6px solid var(--suave);border-top:1.6px solid var(--suave);transform:rotate(45deg);margin-right:6px}
.mm-contacto{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:22px;padding:16px 4px 0;border-top:1px solid var(--linea);font-size:14px;color:var(--suave)}
.mm-contacto a{color:var(--tinta);text-decoration:underline;text-underline-offset:3px;text-decoration-color:color-mix(in srgb,var(--tinta) 60%,transparent)}
/* barra de cierre: capa propia (logo + X), fadea con su propio timing y queda siempre encima del scroll */
.mm-cierre{position:fixed;inset:0 0 auto 0;z-index:65;height:56px;display:flex;align-items:center;justify-content:space-between;padding:0 1.25rem;pointer-events:none;opacity:0;color:var(--tinta)}
.mm-cierre .hamb{display:flex}
.mm-cierre .logo-box{width:40px;height:40px;border-radius:var(--r-s)}
.mm-cierre .logo-box svg{width:22px;height:22px}
.mm-cierre .logo-word{display:none}
html.menu-abierto .mm-cierre{pointer-events:auto}
/* coreografía de entrada: barra 450ms, seis bloques con spring 1400ms y stagger 100ms; al cerrar no hay salida (se va con el panel) */
@keyframes mmRise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@keyframes mmBarIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
.mm-rev{opacity:0}
html.menu-abierto .mm-cierre{animation:mmBarIn .45s var(--mm-spring) both}
html.menu-abierto .mm-rev{animation:mmRise 1.4s var(--mm-spring) both}
html.menu-abierto .mm-rev:nth-child(2){animation-delay:.1s}
html.menu-abierto .mm-rev:nth-child(3){animation-delay:.2s}
html.menu-abierto .mm-rev:nth-child(4){animation-delay:.3s}
html.menu-abierto .mm-rev:nth-child(5){animation-delay:.4s}
html.menu-abierto .mm-rev:nth-child(6){animation-delay:.5s}
/* la barra de acción inferior queda por encima del menú, como la CTA de la referencia */
html.menu-abierto .barra-thumb{z-index:70;display:flex;transform:none}
html.menu-abierto{overflow:hidden}
@media(min-width:980px){.menu-movil,.mm-cierre{display:none}}
@media(prefers-reduced-motion:reduce){.menu-movil,.menu-movil.open,.hb-bar,.mm-card{transition:none}html.menu-abierto .mm-cierre,html.menu-abierto .mm-rev{animation-duration:.01ms}}
