/* ============================================================
   EFS · CAPA BASE (única hoja de estilos del proyecto)
   Sistema minimalista: blanco, tinta y el celeste del logotipo.
   Solo vive aquí lo que un estilo inline no puede expresar:
   tokens, reset, focus, breakpoints, hovers padre→hijo,
   keyframes y la media query de prefers-reduced-motion.
   ============================================================ */

/* --- 1.1 Tokens de color: blanco + celeste Esperanza Ferrá Soto --- */
:root{
  --efs-white:      #FFFFFF;
  --efs-base:       #FFFFFF;
  --efs-paper:      #F6F8F9;  /* lavado neutro para alternar secciones */
  --efs-ink:        #14171A;

  /* Celeste del logotipo, muestreado del archivo original (#0096D1) */
  --efs-celeste:    #0096D1;
  --efs-celeste-ink:#0096D1;  /* misma familia, AA sobre blanco */
  --efs-celeste-soft:#EAF6FD;

  /* Alias heredados: todo el sitio los usa y ahora apuntan al celeste */
  --efs-navy:       #0096D1;
  --efs-blue:       #0096D1;
  --efs-blue-ink:   #0096D1;
  --efs-sky:        #0096D1;
  --efs-blue-soft:  #EAF6FD;
  --efs-teal:       #0096D1;
  --efs-wine:       #0096D1;
  --efs-wine-deep:  #0096D1;
  --efs-wine-soft:  #F6F8F9;

  /* Rampas neutras */
  --efs-ink-70:  rgba(20,23,26,0.64);
  --efs-ink-55:  rgba(20,23,26,0.60);
  --efs-line:    rgba(20,23,26,0.08);
  --efs-line-2:  rgba(20,23,26,0.15);
  --efs-navy-45: rgba(20,23,26,0.30);
  --efs-navy-95: rgba(255,255,255,0.98);
  --efs-navy-40: rgba(20,23,26,0.26);
  --efs-navy-25: rgba(20,23,26,0.14);
  --efs-navy-48: rgba(20,23,26,0.16);
  --efs-navy-08: rgba(20,23,26,0.06);

  /* Antes «texto sobre navy»: hoy todas las secciones son claras */
  --efs-on-navy:      #14171A;
  --efs-on-navy-70:   rgba(20,23,26,0.64);
  --efs-on-navy-35:   rgba(20,23,26,0.16);
  --efs-on-navy-25:   rgba(20,23,26,0.12);
  --efs-on-navy-12:   rgba(20,23,26,0.07);

  --efs-gradient: #FFFFFF;
  --efs-veil: transparent;
  --efs-focus: #0096D1;

  --efs-ig: #E1306C;
  --efs-fb: #1877F2;
  --efs-tt: #14171A;

  --efs-shadow: rgba(20,23,26,0.07);
  --efs-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

/* --- Reset --- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;
  background:var(--efs-white);
  color:var(--efs-ink);
  font:400 1rem/1.7 Inter, "Helvetica Neue", Arial, sans-serif;
  -webkit-font-smoothing:antialiased;
  overflow-x:clip;
}
p{text-wrap:pretty}
h1,h2,h3,h4{margin:0;font-weight:500;text-wrap:balance}
img{display:block;max-width:100%}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
a{color:var(--efs-celeste-ink);text-decoration:none;transition:color 240ms var(--efs-ease)}
a:hover{color:var(--efs-celeste)}
ul{margin:0;padding:0;list-style:none}
input,select,textarea{font:inherit;color:inherit}

/* --- Focus visible: nunca se elimina --- */
:focus-visible{outline:2px solid var(--efs-focus);outline-offset:2px}

/* --- Enlace de salto al contenido --- */
[data-skip]{position:absolute;left:-9999px;top:0}
[data-skip]:focus{
  left:16px !important;top:16px !important;z-index:600;padding:12px 20px;border-radius:2px;
  background:var(--efs-celeste);color:var(--efs-white);
  font:500 0.75rem/1 Inter,sans-serif;letter-spacing:0.1em;text-transform:uppercase;
}


/* --- Fotos fundidas en la página (fade en bordes, sin marco) --- */
[data-foto-fade]{border-radius:0 !important;background:transparent !important;box-shadow:none !important;
  -webkit-mask-image:linear-gradient(to right,rgba(0,0,0,0) 0,rgba(0,0,0,0) 6%,rgba(0,0,0,.18) 14%,rgba(0,0,0,.6) 24%,#000 34%,#000 92%,rgba(0,0,0,.6) 100%),linear-gradient(to bottom,rgba(0,0,0,0) 0,#000 16%,#000 84%,rgba(0,0,0,0) 100%);
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(to right,rgba(0,0,0,0) 0,rgba(0,0,0,0) 6%,rgba(0,0,0,.18) 14%,rgba(0,0,0,.6) 24%,#000 34%,#000 92%,rgba(0,0,0,.6) 100%),linear-gradient(to bottom,rgba(0,0,0,0) 0,#000 16%,#000 84%,rgba(0,0,0,0) 100%);
  mask-composite:intersect}
[data-foto-fade~="left"]{
  -webkit-mask-image:linear-gradient(to right,rgba(0,0,0,.6) 0,#000 8%,#000 66%,rgba(0,0,0,.6) 76%,rgba(0,0,0,.18) 86%,rgba(0,0,0,0) 94%,rgba(0,0,0,0) 100%),linear-gradient(to bottom,rgba(0,0,0,0) 0,#000 16%,#000 84%,rgba(0,0,0,0) 100%);
  mask-image:linear-gradient(to right,rgba(0,0,0,.6) 0,#000 8%,#000 66%,rgba(0,0,0,.6) 76%,rgba(0,0,0,.18) 86%,rgba(0,0,0,0) 94%,rgba(0,0,0,0) 100%),linear-gradient(to bottom,rgba(0,0,0,0) 0,#000 16%,#000 84%,rgba(0,0,0,0) 100%)}
[data-foto-fade~="sides"]{
  -webkit-mask-image:linear-gradient(to right,rgba(0,0,0,.6) 0,#000 8%,#000 66%,rgba(0,0,0,.6) 76%,rgba(0,0,0,.18) 86%,rgba(0,0,0,0) 94%,rgba(0,0,0,0) 100%),linear-gradient(#000,#000);
  mask-image:linear-gradient(to right,rgba(0,0,0,.6) 0,#000 8%,#000 66%,rgba(0,0,0,.6) 76%,rgba(0,0,0,.18) 86%,rgba(0,0,0,0) 94%,rgba(0,0,0,0) 100%),linear-gradient(#000,#000)}
[data-foto-fade]::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;
  background:linear-gradient(to right,rgba(255,255,255,.75) 0,rgba(255,255,255,.35) 18%,rgba(255,255,255,0) 42%),linear-gradient(to top,rgba(255,255,255,.35) 0,rgba(255,255,255,0) 28%)}
[data-foto-fade~="left"]::after,[data-foto-fade~="sides"]::after{
  background:linear-gradient(to left,rgba(255,255,255,.75) 0,rgba(255,255,255,.35) 18%,rgba(255,255,255,0) 42%),linear-gradient(to top,rgba(255,255,255,.35) 0,rgba(255,255,255,0) 28%)}
[data-foto-fade~="sides"]::after{background:linear-gradient(to left,rgba(255,255,255,.75) 0,rgba(255,255,255,.35) 18%,rgba(255,255,255,0) 42%)}
@media (max-width:900px){
  [data-foto-fade],[data-foto-fade~="left"],[data-foto-fade~="sides"]{
    -webkit-mask-image:linear-gradient(to right,rgba(0,0,0,0) 0,#000 12%,#000 88%,rgba(0,0,0,0) 100%),linear-gradient(to bottom,rgba(0,0,0,0) 0,#000 14%,#000 86%,rgba(0,0,0,0) 100%);
    mask-image:linear-gradient(to right,rgba(0,0,0,0) 0,#000 12%,#000 88%,rgba(0,0,0,0) 100%),linear-gradient(to bottom,rgba(0,0,0,0) 0,#000 14%,#000 86%,rgba(0,0,0,0) 100%)}
  [data-foto-fade]::after{background:linear-gradient(to top,rgba(255,255,255,.35) 0,rgba(255,255,255,0) 28%)}
}

/* --- Tarjeta «Conoce nuestros spas» (footer) --- */
[data-spa-card]{transition:transform 420ms cubic-bezier(.2,.7,.2,1),box-shadow 420ms cubic-bezier(.2,.7,.2,1)}
[data-spa-card]:hover{transform:translateY(-3px);box-shadow:0 26px 44px -22px rgba(0,150,209,.75),0 0 0 1px rgba(255,255,255,.35) inset}
[data-spa-card]:hover [data-spa-arrow]{transform:translate(2px,-2px);background:rgba(255,255,255,.28)}
[data-spa-card] [data-spa-arrow]{transition:transform 420ms cubic-bezier(.2,.7,.2,1),background 420ms}
[data-spa-card]::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,rgba(255,255,255,0) 30%,rgba(255,255,255,.22) 50%,rgba(255,255,255,0) 70%);transform:translateX(-120%);transition:transform 900ms cubic-bezier(.2,.7,.2,1)}
[data-spa-card]:hover::before{transform:translateX(120%)}

/* --- Carreras: foto a sangre que se funde + pensum (pieza «Estudia …») --- */
[data-carrera-foto]{-webkit-mask-image:linear-gradient(to right,#000 0,#000 48%,rgba(0,0,0,.62) 70%,rgba(0,0,0,.2) 87%,rgba(0,0,0,0) 100%),linear-gradient(to bottom,rgba(0,0,0,0) 0,#000 9%,#000 91%,rgba(0,0,0,0) 100%);-webkit-mask-composite:source-in;mask-image:linear-gradient(to right,#000 0,#000 48%,rgba(0,0,0,.62) 70%,rgba(0,0,0,.2) 87%,rgba(0,0,0,0) 100%),linear-gradient(to bottom,rgba(0,0,0,0) 0,#000 9%,#000 91%,rgba(0,0,0,0) 100%);mask-composite:intersect}
[data-pensum-strip] [data-strip-item]+[data-strip-item]{border-left:1px solid rgba(34,57,92,.18)}
[data-pensum-strip]{container-type:inline-size}
@container (max-width:600px){
  [data-strip-item]{flex-direction:column !important;gap:8px !important;padding:6px 8px !important;text-align:center;text-align-last:center}
  [data-strip-item] p{letter-spacing:.03em !important;font-size:.625rem !important}
}
@media (max-width:900px){
  [data-carrera-foto]{position:relative !important;width:auto !important;height:min(86vw,480px);margin:calc(-1*clamp(36px,4.4vw,64px)) 0 8px;-webkit-mask-image:linear-gradient(to bottom,#000 0,#000 56%,rgba(0,0,0,.5) 80%,rgba(0,0,0,0) 100%);mask-image:linear-gradient(to bottom,#000 0,#000 56%,rgba(0,0,0,.5) 80%,rgba(0,0,0,0) 100%)}
  [data-carrera-spacer]{display:none}
}
@media (max-width:600px){
  [data-pensum-strip]{grid-template-columns:1fr !important;padding:2px 14px !important}
  [data-pensum-strip] [data-strip-item]{flex-direction:row !important;justify-content:flex-start !important;gap:12px !important;padding:12px 2px !important;text-align:left;text-align-last:auto}
  [data-pensum-strip] [data-strip-item] p{letter-spacing:.06em !important;font-size:.6875rem !important}
  [data-pensum-strip] [data-strip-item]+[data-strip-item]{border-left:0;border-top:1px solid rgba(34,57,92,.14)}
}

/* --- Utilidades de breakpoint (390 / 768 / 1024 / 1440) --- */
@media (max-width:900px){
  [data-hide-mobile]{display:none !important}
  [data-stack-900]{grid-template-columns:1fr !important}
}
@media (min-width:901px){ [data-hide-desktop]{display:none !important} }
[data-tiny-only]{display:none}
@media (max-width:520px){
  [data-tiny-hide]{display:none !important}
  [data-tiny-only]{display:inline !important}
  [data-nav] [data-brand-mono]{width:42px !important}
}
@media (max-width:1279px){ [data-hide-tablet]{display:none !important} }
@media (min-width:1280px){ [data-show-tablet]{display:none !important} }
@media (max-width:767px){
  [data-stack-768]{grid-template-columns:1fr !important}
  [data-lateral-grid]{position:relative !important;grid-template-columns:1fr !important;gap:0 !important}
  [data-cifras]{grid-template-columns:repeat(3,1fr) !important;gap:8px !important}
  [data-cifras] > div > p:first-child{font-size:clamp(1.4rem,6vw,2rem) !important}
  [data-cifras] > div > p:last-child{font-size:0.75rem !important;margin-top:6px !important}
  [data-avales] img{height:24px !important}
  #historia figure[data-stack-768]{grid-template-columns:1fr !important}
  #historia figure[data-stack-768] > div{max-width:320px}
  [data-half-768]{grid-template-columns:1fr 1fr !important}
  [data-half-768] > *{border-left:0 !important;flex-wrap:wrap !important;min-width:0 !important}
  /* En la rejilla de Instagram las fotos quedan de dos en dos y el azulejo de
     "ver todas" pasa a barra completa: en media columna quedaba un hueco. */
  [data-ig-cta]{grid-column:1 / -1 !important;aspect-ratio:auto !important;flex-direction:row !important;gap:12px !important;padding:18px !important}
  /* Foto lateral en celular: se queda al costado (no debajo) y se difumina bajo el texto */
  [data-lateral-txt]{position:relative !important;z-index:1;padding-right:32% !important}
  [data-hero-txt]{padding:26px 0 26px clamp(20px,4vw,64px) !important;padding-right:48% !important;background:linear-gradient(90deg,#FFFFFF 0,#FFFFFF 42%,rgba(255,255,255,0.74) 50%,rgba(255,255,255,0.3) 56%,rgba(255,255,255,0) 62%) !important}
  [data-hero-copy]{font-size:0.8125rem !important;line-height:1.7 !important}
  [data-hero-cta]{margin-right:calc(-46% + 6px) !important}
  [data-hero-foto-caja],[data-foto-lateral-caja]{position:absolute !important;top:0 !important;bottom:0 !important;left:auto !important;right:0 !important;width:78% !important;height:auto !important;min-height:0 !important;margin:0 !important;z-index:0}
  [data-foto-lateral-caja]{right:calc(clamp(20px,4vw,64px) * -1) !important}
  [data-hero-foto-caja]{width:48% !important;overflow:hidden !important;-webkit-mask-image:linear-gradient(90deg,rgba(0,0,0,0) 0,rgba(0,0,0,0.5) 10%,rgba(0,0,0,0.92) 22%,#000 32%),linear-gradient(180deg,#000 34%,rgba(0,0,0,0.9) 52%,rgba(0,0,0,0.68) 66%,rgba(0,0,0,0.4) 79%,rgba(0,0,0,0.16) 90%,rgba(0,0,0,0.04) 97%,rgba(0,0,0,0) 100%) !important;-webkit-mask-composite:source-in !important;mask-image:linear-gradient(90deg,rgba(0,0,0,0) 0,rgba(0,0,0,0.5) 10%,rgba(0,0,0,0.92) 22%,#000 32%),linear-gradient(180deg,#000 34%,rgba(0,0,0,0.9) 52%,rgba(0,0,0,0.68) 66%,rgba(0,0,0,0.4) 79%,rgba(0,0,0,0.16) 90%,rgba(0,0,0,0.04) 97%,rgba(0,0,0,0) 100%) !important;mask-composite:intersect !important}
  [data-hero-foto],[data-foto-lateral]{-webkit-mask-image:linear-gradient(90deg,rgba(0,0,0,0) 0,rgba(0,0,0,0.06) 34%,rgba(0,0,0,0.22) 52%,rgba(0,0,0,0.55) 68%,rgba(0,0,0,0.85) 84%,#000 94%),linear-gradient(180deg,rgba(0,0,0,0) 0,rgba(0,0,0,0.3) 7%,rgba(0,0,0,0.7) 15%,rgba(0,0,0,0.92) 24%,#000 34%,#000 66%,rgba(0,0,0,0.72) 82%,rgba(0,0,0,0.3) 93%,rgba(0,0,0,0) 100%) !important;-webkit-mask-composite:source-in !important;mask-image:linear-gradient(90deg,rgba(0,0,0,0) 0,rgba(0,0,0,0.06) 34%,rgba(0,0,0,0.22) 52%,rgba(0,0,0,0.55) 68%,rgba(0,0,0,0.85) 84%,#000 94%),linear-gradient(180deg,rgba(0,0,0,0) 0,rgba(0,0,0,0.3) 7%,rgba(0,0,0,0.7) 15%,rgba(0,0,0,0.92) 24%,#000 34%,#000 66%,rgba(0,0,0,0.72) 82%,rgba(0,0,0,0.3) 93%,rgba(0,0,0,0) 100%) !important;mask-composite:intersect !important}
  [data-hero-foto]{top:0 !important;bottom:auto !important;left:50% !important;right:auto !important;width:auto !important;max-width:none !important;height:126% !important;transform:translateX(-50%) !important;-webkit-mask-image:none !important;mask-image:none !important}
  [data-foto-lateral]{object-position:72% 20% !important}
  [data-foto-talleres]{object-position:46% 16% !important}
  /* La alumna de la izquierda quedaba casi borrada con la maquina compartida.
     Solo esta foto lleva un desvanecido mas suave para que se le vea la cara.
     El texto sigue por delante con z-index:1 en [data-lateral-txt]. */
  [data-foto-talleres]{-webkit-mask-image:linear-gradient(90deg,rgba(0,0,0,0) 0,rgba(0,0,0,0.12) 24%,rgba(0,0,0,0.40) 42%,rgba(0,0,0,0.70) 58%,rgba(0,0,0,0.92) 74%,#000 86%),linear-gradient(180deg,rgba(0,0,0,0) 0,rgba(0,0,0,0.3) 7%,rgba(0,0,0,0.7) 15%,rgba(0,0,0,0.92) 24%,#000 34%,#000 66%,rgba(0,0,0,0.72) 82%,rgba(0,0,0,0.3) 93%,rgba(0,0,0,0) 100%) !important;mask-image:linear-gradient(90deg,rgba(0,0,0,0) 0,rgba(0,0,0,0.12) 24%,rgba(0,0,0,0.40) 42%,rgba(0,0,0,0.70) 58%,rgba(0,0,0,0.92) 74%,#000 86%),linear-gradient(180deg,rgba(0,0,0,0) 0,rgba(0,0,0,0.3) 7%,rgba(0,0,0,0.7) 15%,rgba(0,0,0,0.92) 24%,#000 34%,#000 66%,rgba(0,0,0,0.72) 82%,rgba(0,0,0,0.3) 93%,rgba(0,0,0,0) 100%) !important}
  [data-hero-h1]{font-size:clamp(1.35rem,6.3vw,1.95rem) !important}
}

/* --- Mural Nuestra Historia: línea de tiempo horizontal --- */
[data-mural]{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));column-gap:clamp(12px,1.4vw,28px)}
[data-mural-item]{position:relative;z-index:1;cursor:pointer}
[data-mural-item]:focus{outline:none}
[data-mural-zoom]{border-radius:4px;transform-origin:left center;transition:scale 420ms var(--efs-ease),box-shadow 420ms var(--efs-ease),background-color 420ms var(--efs-ease),border-color 420ms var(--efs-ease)}
[data-mural-item]:hover,[data-mural-item]:focus-visible,[data-mural-item][data-zoomed]{z-index:2}
[data-mural-item]:hover [data-mural-zoom],[data-mural-item]:focus-visible [data-mural-zoom],[data-mural-item][data-zoomed] [data-mural-zoom]{scale:1.03;background:var(--efs-celeste-soft);border-left-color:var(--efs-celeste);box-shadow:0 14px 34px var(--efs-shadow)}
[data-mural-item]:active [data-mural-zoom]{scale:1.01}
@media (max-width:1023px){
  [data-mural]{grid-template-columns:minmax(0,1fr);column-gap:0}
  [data-mural-zoom]{transform-origin:left top}
  [data-mural] > [data-mural-item]{grid-column:1 !important;grid-row:auto !important;align-self:start !important;padding-bottom:clamp(24px,3vw,34px)}
  [data-mural] > [data-mural-item] > [data-mural-zoom]{padding:0 0 0 24px !important;border-left:1px solid var(--efs-line) !important}
  [data-mural] > [data-mural-bar]{display:none}
}

/* --- Catálogo con riel de filtros (§Talleres) --- */
[data-filter-layout]{display:grid;grid-template-columns:clamp(232px,18vw,272px) minmax(0,1fr);gap:clamp(28px,3.2vw,56px);align-items:start}
[data-filter-rail]{position:sticky;top:96px}
@media (max-width:1079px){
  [data-filter-layout]{grid-template-columns:minmax(0,1fr)}
  [data-filter-rail]{position:static;top:auto}
}

/* --- Slots de fotografía --- */
[data-slot-label]{
  position:absolute;inset:0;display:grid;place-items:center;white-space:nowrap;
  font:500 0.6875rem/1.4 Inter,sans-serif;letter-spacing:0.14em;text-transform:uppercase;
  color:var(--efs-navy-45);pointer-events:none;
}
img[data-slot]{opacity:0;transform:scale(1.03);transition:opacity 900ms var(--efs-ease),transform 900ms var(--efs-ease)}
img[data-slot][data-ready]{opacity:1;transform:scale(1)}
*:has(> img[data-slot][data-ready]) > [data-slot-label]{display:none}
/* En el repositorio las fotos siempre existen: el rótulo del slot es
   una ayuda del canvas y no debe quedar a la vista (con carga diferida
   sobrevivía en las fotos de más abajo). */
html[data-efs-photos] [data-slot-label]{display:none}

/* --- Revelado al entrar en viewport --- */
html[data-efs-motion="on"] [data-reveal]{
  opacity:0;transform:translateY(18px);
  transition:opacity 700ms var(--efs-ease),transform 700ms var(--efs-ease);
}
html[data-efs-motion="on"] [data-reveal][data-in]{opacity:1;transform:none}
/* Revelado automático «cosa por cosa» (efs-site.js · scanAutoReveal) */
html[data-efs-motion="on"] [data-rv]{opacity:0;transform:translate3d(0,26px,0)}
/* Mientras una pieza entra desde su lado (efs-site.js · rvVector), sus propias
   transiciones esperan para no pisar el movimiento. */
html[data-efs-motion="on"] [data-rv-anim]{transition:none !important}
@supports not (overflow:clip){body{overflow-x:hidden}}

/* --- Texto justificado: párrafos en bloque; la última línea respeta su alineación.
   No pisa los bloques que ya fijan su alineación en línea (center/right/left), y en
   móvil se desactiva para evitar los «ríos» de espacio en columnas angostas. --- */
:is(main,footer) :is(p,li,dt,dd,figcaption,blockquote):not([style*="text-align:center"]):not([style*="text-align: center"]):not([style*="text-align:right"]):not([style*="text-align: right"]):not([style*="text-align:end"]):not([style*="text-align: end"]){text-align:justify;-webkit-hyphens:auto;hyphens:auto;hyphenate-limit-chars:10 4 4}
:is(main,footer) a{-webkit-hyphens:manual;hyphens:manual}
[data-nojust]{text-align:left !important;text-align-last:auto !important;-webkit-hyphens:manual !important;hyphens:manual !important}
[style*="text-align:center"],[style*="text-align: center"]{text-align-last:center}
[style*="text-align:right"],[style*="text-align: right"],[style*="text-align:end"],[style*="text-align: end"]{text-align-last:right}
[style*="text-align:left"],[style*="text-align: left"],[style*="text-align:start"],[style*="text-align: start"]{text-align-last:auto}
@media (max-width:600px){
  :is(main,footer) :is(p,li,dt,dd,figcaption,blockquote):not([style*="text-align:center"]):not([style*="text-align: center"]):not([style*="text-align:right"]):not([style*="text-align: right"]):not([style*="text-align:end"]):not([style*="text-align: end"]){text-align:left;-webkit-hyphens:none;hyphens:none}
}

/* --- Hero · «Conoce nuestra historia»: firma editorial con el monograma negro.
   Línea fina con un destello celeste que la recorre; al pasar el mouse la línea
   se llena de celeste, la flecha avanza y el monograma se inclina. --- */
[data-cta-firma]{transition:color 300ms var(--efs-ease)}
[data-cta-logo]{transition:transform 650ms cubic-bezier(.34,1.56,.64,1)}
[data-cta-arrow]{transition:transform 450ms cubic-bezier(.34,1.56,.64,1)}
[data-cta-line]::before{content:"";position:absolute;inset:0;background:var(--efs-celeste);transform:scaleX(0);transform-origin:0 50%;transition:transform 650ms cubic-bezier(.22,1,.36,1)}
[data-cta-line]::after{content:"";position:absolute;top:0;bottom:0;left:0;width:32%;background:linear-gradient(90deg,rgba(0,150,209,0),var(--efs-celeste),rgba(0,150,209,0));transform:translateX(-110%);animation:efs-firma-glint 4.4s cubic-bezier(.45,0,.2,1) 2.6s infinite}
@keyframes efs-firma-glint{0%{transform:translateX(-110%)}50%,100%{transform:translateX(330%)}}
[data-cta-firma]:hover{color:var(--efs-celeste-ink)}
[data-cta-firma]:hover [data-cta-line]::before{transform:scaleX(1)}
[data-cta-firma]:hover [data-cta-arrow]{transform:translateX(5px)}
[data-cta-firma]:hover [data-cta-logo]{transform:rotate(-8deg) scale(1.06)}
[data-cta-firma]:focus-visible{outline:2px solid var(--efs-focus);outline-offset:6px;border-radius:6px}
@media (max-width:420px){
  [data-cta-firma]{gap:12px !important}
  [data-cta-logo]{width:32px !important}
  [data-cta-label]{gap:16px !important;font-size:0.75rem !important;letter-spacing:0.1em !important;white-space:normal !important}
}
@media (prefers-reduced-motion: reduce){[data-cta-line]::after{animation:none;display:none}}

/* --- Sedes: foto ⇄ mapa con fundido --- */
[data-sede-foto]{transition:opacity 700ms var(--efs-ease),transform 900ms var(--efs-ease)}
[data-sede-mapa]{opacity:0;filter:saturate(0.9);transition:opacity 700ms var(--efs-ease)}
[data-sede-tile][data-preview] [data-sede-foto]{opacity:0;transform:scale(1.04)}
[data-sede-tile][data-preview] [data-sede-mapa]{opacity:1}
[data-sede-cta]{transition:transform 500ms var(--efs-ease)}
[data-sede-tile][data-preview] [data-sede-cta]{transform:translateY(-2px)}
[data-sede-hint]{transition:opacity 400ms var(--efs-ease)}
@media (hover:hover){ [data-sede-hint]{display:none} }
[data-sede-tile]:focus-visible{outline:2px solid var(--efs-celeste);outline-offset:3px}
@media (max-width:767px){ [data-sede-tile]{aspect-ratio:4/3 !important} }

/* --- Ganchos de hover padre→hijo --- */
[data-zoom]{transition:transform 700ms var(--efs-ease)}
[data-hover-zoom]:hover{outline:0}
[data-hover-zoom]:focus-visible{outline:2px solid var(--efs-celeste);outline-offset:3px}
[data-hover-zoom]:hover [data-zoom],[data-hover-zoom]:focus-visible [data-zoom]{transform:scale(1.04)}
[data-hover-zoom="600"]:hover [data-zoom]{transform:scale(1.03)}
[data-hover-zoom="700"]:hover [data-zoom]{transform:scale(1.04)}
[data-hover-lift]{transition:transform 300ms var(--efs-ease),box-shadow 300ms var(--efs-ease),border-color 300ms var(--efs-ease)}
[data-hover-lift]:hover{transform:translateY(-3px);box-shadow:0 18px 44px var(--efs-shadow);border-color:var(--efs-line-2)}
[data-veil]{transition:background-color 500ms var(--efs-ease)}
[data-hover-zoom]:hover [data-veil]{background-color:rgba(20,23,26,0.10)}
[data-rise]{transition:transform 500ms var(--efs-ease)}
[data-hover-zoom]:hover [data-rise]{transform:translateY(-2px)}

/* Subrayado animado de enlaces */
[data-underline]{display:block;width:0;height:1px;background:var(--efs-celeste);transition:width 300ms var(--efs-ease)}
[data-navlink]:hover [data-underline],[data-navlink]:focus-visible [data-underline]{width:100%}

/* --- Botones: pastilla pequeña, celeste, sin ruido --- */
[data-btn]{position:relative;overflow:hidden;isolation:isolate;white-space:nowrap;transition:transform 300ms var(--efs-ease),box-shadow 300ms var(--efs-ease),background-color 300ms var(--efs-ease),color 300ms var(--efs-ease)}
[data-btn]::before{
  content:"";position:absolute;inset:0;transform:translateX(-101%);
  transition:transform 620ms var(--efs-ease);
  background:linear-gradient(100deg, transparent 20%, rgba(255,255,255,0.28) 50%, transparent 80%);
}
[data-btn] svg{transition:transform 300ms var(--efs-ease)}
[data-btn]:hover svg{transform:translateX(2px)}
/* Watery: gelatina al hover y aplastado elástico al click */
@keyframes efs-jelly{
  0%{transform:scale(1,1)}
  30%{transform:scale(1.07,0.91) translateY(-1px)}
  55%{transform:scale(0.95,1.06) translateY(-2px)}
  75%{transform:scale(1.03,0.97) translateY(-2px)}
  100%{transform:scale(1.015,1) translateY(-2px)}
}
[data-btn]:hover,[data-jelly]:hover{animation:efs-jelly 700ms cubic-bezier(0.34,1.56,0.64,1) both;box-shadow:0 8px 20px rgba(0,150,209,0.22)}
[data-btn]:hover::before{transform:translateX(101%)}
[data-btn]:active,[data-jelly]:active{animation:none;transform:scale(0.92,0.86);transition:transform 120ms var(--efs-ease);box-shadow:0 3px 10px rgba(0,150,209,0.18)}
[data-jelly]{transition:transform 450ms cubic-bezier(0.34,1.56,0.64,1)}
[data-btn="primary"],[data-btn="invert"]{box-shadow:0 2px 10px rgba(0,150,209,0.16)}
[data-pill-chip]{display:grid;place-items:center;border-radius:2px;transition:background-color 300ms var(--efs-ease),color 300ms var(--efs-ease),transform 300ms var(--efs-ease)}
[data-btn="primary"] [data-pill-chip],[data-btn="invert"] [data-pill-chip]{background:var(--efs-white);color:var(--efs-celeste-ink)}
[data-btn]:hover [data-pill-chip]{transform:translate(2px,-2px)}
[data-btn]:hover [data-pill-chip] svg{transform:none}
/* Botón fantasma: hairline + tinta, para acciones secundarias */
[data-btn="ghost"]{background:var(--efs-white) !important;color:var(--efs-ink) !important;border:1px solid var(--efs-line-2);box-shadow:none}
[data-btn="ghost"]:hover{border-color:var(--efs-celeste);color:var(--efs-celeste-ink) !important;box-shadow:none}
[data-btn="ghost"] [data-pill-chip]{background:var(--efs-celeste-soft);color:var(--efs-celeste-ink)}

/* --- Progreso de lectura --- */
@keyframes efs-tap{0%{opacity:0;transform:translate(-50%,-50%) scale(0.35) rotate(-8deg)}22%{opacity:0.9}100%{opacity:0;transform:translate(-50%,-50%) scale(1.75) rotate(6deg)}}
[data-tap-mark]{position:fixed;z-index:600;width:34px;height:auto;pointer-events:none;will-change:transform,opacity;animation:efs-tap 620ms cubic-bezier(0.22,1,0.36,1) both}
[summary][data-nomarker]{list-style:none}
summary[data-nomarker]{list-style:none}
summary[data-nomarker]::-webkit-details-marker{display:none}
details[open] > summary[data-nomarker] svg{transform:rotate(180deg)}
summary[data-nomarker] svg{transition:transform 220ms var(--efs-ease)}
[data-progress]{position:fixed;top:0;right:0;bottom:0;left:auto;width:3px;z-index:300;background:rgba(0,150,209,0.07);pointer-events:none}
[data-progress-fill]{position:absolute;top:0;right:0;left:auto;width:3px;height:0;background:linear-gradient(180deg,var(--efs-sky) 0%,var(--efs-celeste) 100%);transition:height 120ms linear}
[data-progress-mark]{display:none !important;position:absolute;right:6px;top:0;width:34px;max-width:none;height:auto;transform:translateY(-50%);transition:top 120ms linear;opacity:0.95;filter:drop-shadow(0 2px 5px rgba(20,23,26,0.16))}

/* --- Navbar --- */
.sc-host[data-sc-name="EfsNav"]{display:contents}
[data-nav]{
  position:relative;background:var(--efs-white);color:var(--efs-ink);
  border-bottom:1px solid var(--efs-line);
  transition:box-shadow 300ms var(--efs-ease),background-color 400ms var(--efs-ease),border-color 400ms var(--efs-ease);
}
/* En Home, arriba del todo la cabecera es transparente y deja ver el hero;
   apenas se baja se vuelve sólida (blanca, con desenfoque). Siempre queda fija.
   --efs-head-h: alto de cabecera + riel (efs-site.js lo mide; aquí, el valor previo) */
:root{--efs-head-h:calc(clamp(60px,5.4vw,72px) + 1px)}
@media (max-width:1279px){:root{--efs-head-h:calc(clamp(60px,5.4vw,72px) + 53px)}}
[data-page="home"] [data-nav],[data-page="home"] [data-navrail]{background:rgba(255,255,255,0.94);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:background-color 450ms var(--efs-ease),border-color 450ms var(--efs-ease),box-shadow 450ms var(--efs-ease)}
[data-page="home"] [data-nav-wrap][data-top] [data-nav],[data-page="home"] [data-nav-wrap][data-top] [data-navrail]{background:transparent;border-bottom-color:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
[data-page="home"] main{margin-top:calc(-1 * var(--efs-head-h))}
@media (min-width:1181px){
  [data-page="home"] [data-hv]{padding-top:var(--efs-head-h);min-height:calc(clamp(440px,36vw,620px) + var(--efs-head-h)) !important}
}
[data-nav][data-scrolled]{box-shadow:0 1px 18px var(--efs-shadow)}
/* Aula Virtual: pastilla blanca y discreta (no compite con el contenido) */
[data-nav] [data-pill-aula]{background:#FFFFFF;box-shadow:inset 0 0 0 1px rgba(20,23,26,0.14)}
[data-nav] [data-pill-aula],[data-nav] [data-pill-aula] span{color:var(--efs-ink) !important;-webkit-text-fill-color:currentColor;font-weight:500 !important;text-shadow:none}
[data-nav] [data-pill-aula]:hover{box-shadow:inset 0 0 0 1px var(--efs-celeste),0 6px 16px -8px rgba(0,150,209,0.35)}
[data-nav] [data-pill-aula]:hover,[data-nav] [data-pill-aula]:hover span{color:var(--efs-celeste-ink) !important}
[data-nav-current]{color:var(--efs-celeste-ink)}
[data-nav-current] [data-underline]{width:100%}


/* --- Cabecera en el rango apretado (1280-1439px) ---
   El logo va centrado en su propia columna: si los enlaces superan su caja
   se desbordan hacia el centro y chocan con la marca. En inglés las
   etiquetas son más largas, así que aquí se aprietan separación y tracking. */
@media (min-width:1280px) and (max-width:1439px){
  [data-nav] [data-mainnav]{gap:clamp(10px,1.4vw,20px) !important}
  [data-nav] [data-mainnav] [data-navlink]{letter-spacing:0.08em}
}
@media (min-width:1280px) and (max-width:1365px){
  [data-nav] [data-mainnav]{gap:10px !important}
  /* El monograma grande del hero deja el nav en inglés a 3px de la marca:
     aquí vuelve a su tamaño chico, sólo en el rango apretado. */
  [data-nav] [data-brand-mono]{width:clamp(38px,3.2vw,44px) !important}
}

/* --- Selector de idioma ES / EN ---
   Pastilla segmentada con un indicador que se desliza entre las dos
   opciones. Visible en todos los anchos; en pantallas muy chicas se
   encoge pero nunca se esconde. */
[data-langtoggle]{
  position:relative;display:inline-flex;align-items:center;flex:none;
  padding:3px;border:1px solid transparent;border-radius:999px;
  background:transparent;
  transition:border-color 500ms var(--efs-ease),background-color 500ms var(--efs-ease);
}
[data-langtoggle]:hover,[data-langtoggle]:focus-within{border-color:var(--efs-line);background:var(--efs-white)}
[data-lang-thumb]{
  position:absolute;top:3px;bottom:3px;left:3px;width:calc(50% - 3px);
  border-radius:999px;background:var(--efs-celeste);opacity:0;
  box-shadow:0 3px 10px rgba(0,150,209,0.30);
  transition:transform 600ms cubic-bezier(.16,1,.3,1),opacity 500ms var(--efs-ease);
}
[data-langtoggle]:hover [data-lang-thumb],[data-langtoggle]:focus-within [data-lang-thumb]{opacity:1}
[data-langtoggle][data-lang="en"] [data-lang-thumb]{transform:translateX(100%)}
[data-lang-opt]{
  position:relative;z-index:1;padding:6px 11px;border-radius:999px;
  font:500 0.625rem/1 Inter,sans-serif;letter-spacing:0.12em;text-transform:uppercase;
  color:var(--efs-ink-50,rgba(20,23,26,0.5));transition:color 500ms var(--efs-ease);
}
[data-lang-opt][aria-pressed="true"]{color:var(--efs-ink)}
[data-lang-opt]:hover{color:var(--efs-celeste-ink)}
[data-langtoggle]:hover [data-lang-opt][aria-pressed="true"],[data-langtoggle]:focus-within [data-lang-opt][aria-pressed="true"]{color:var(--efs-white)}
/* La pastilla celeste sigue al idioma que tiene el mouse encima */
[data-langtoggle]:has([data-lang-opt="es"]:hover) [data-lang-thumb]{opacity:1;transform:none}
[data-langtoggle]:has([data-lang-opt="en"]:hover) [data-lang-thumb]{opacity:1;transform:translateX(100%)}
[data-langtoggle]:has([data-lang-opt]:hover) [data-lang-opt]:not(:hover){color:var(--efs-ink-70)}
[data-langtoggle]:has([data-lang-opt]:hover) [data-lang-opt]:hover{color:var(--efs-white)}
/* En el menú móvil se mantiene el toggle completo */
[data-menu] [data-langtoggle]{border-color:var(--efs-line-2);background:var(--efs-white)}
[data-menu] [data-lang-thumb]{opacity:1}
[data-menu] [data-lang-opt][aria-pressed="true"]{color:var(--efs-white)}
@media (max-width:520px){
  [data-lang-opt]{padding:6px 9px;font-size:0.5625rem;letter-spacing:0.08em}
}
/* En el menú móvil a pantalla completa se muestra más grande */
[data-menu] [data-langtoggle]{width:100%}
[data-menu] [data-lang-opt]{flex:1;justify-content:center;display:inline-flex;padding:13px}

/* --- Riel de secciones en móvil y tablet ---
   Los enlaces principales nunca se esconden detrás del menú: viven en una
   fila desplazable que viaja dentro del bloque sticky, así que
   siguen a la vista mientras se hace scroll. En desktop no existe. */
[data-navrail]{display:none;position:relative;background:var(--efs-white);border-bottom:1px solid var(--efs-line)}
@media (max-width:1279px){ [data-navrail]{display:block} }
/* Dos zonas: los enlaces se desplazan, el idioma queda fijo a la derecha
   para que nunca se pierda de vista ni apriete la marca de la cabecera. */
[data-navrail-inner]{display:flex;align-items:center;gap:10px;padding:10px clamp(20px,4vw,64px)}
[data-navrail-track]{
  flex:1;min-width:0;
  display:flex;align-items:center;gap:clamp(18px,4.6vw,30px);
  overflow-x:auto;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;
  padding:2px 0;
}
[data-navrail-lang]{
  flex:none;display:flex;align-items:center;padding-left:10px;
  border-left:1px solid var(--efs-line);
}
/* Degradado que insinúa que la fila continúa */
[data-navrail]::before{
  content:"";position:absolute;top:0;bottom:1px;left:0;width:22px;z-index:2;pointer-events:none;
  background:linear-gradient(90deg,var(--efs-white) 25%,transparent);
  transition:opacity 450ms var(--efs-ease);
}
/* Con la cabecera transparente (Home, arriba del todo) el degradado blanco
   quedaba como una pestaña suelta sobre el hero: se oculta hasta que vuelve el fondo. */
[data-page="home"] [data-nav-wrap][data-top] [data-navrail]::before{opacity:0}
/* Mismo tratamiento que los enlaces del nav de escritorio: texto limpio y
   subrayado celeste que crece. Sin pastillas ni cajas. */
[data-navpill]{
  position:relative;flex:none;display:inline-flex;align-items:center;white-space:nowrap;
  padding:6px 1px;color:var(--efs-ink);
  font:500 0.6875rem/1.4 Inter,sans-serif;letter-spacing:0.16em;text-transform:uppercase;
  transition:color 300ms var(--efs-ease);
}
[data-navpill]::after{
  content:"";position:absolute;left:0;right:100%;bottom:1px;height:1px;
  background:var(--efs-celeste);transition:right 300ms var(--efs-ease);
}
[data-navpill]:hover{color:var(--efs-celeste-ink)}
[data-navpill]:hover::after,[data-navpill]:focus-visible::after{right:0}
[data-navpill][data-nav-current]{color:var(--efs-celeste-ink)}
[data-navpill][data-nav-current]::after{right:0}

/* --- Carrusel de certificados: deriva suave + crecimiento al hover --- */
@keyframes efs-cert-pop{0%{transform:scale(1)}60%{transform:scale(1.2)}100%{transform:scale(1.16)}}
/* 40px basta: la tarjeta mide 463px y el crecimiento al hover (1.16) pide 37px por lado */
[data-autodrift]{padding-top:40px !important;padding-bottom:40px !important}
/* Ese relleno existe sólo para que quepa el crecimiento al hover de las
   tarjetas de certificados. El carrusel de talleres deriva igual pero sus
   tarjetas no crecen, así que recupera su altura normal. */
[data-autodrift][data-drift-flat]{padding-top:6px !important;padding-bottom:6px !important}
/* Con «reducir movimiento» scanAutodrift no clona ni mueve nada y este
   carrusel no tiene flechas, asi que sin barra visible no habria forma
   evidente de llegar a los talleres de mas a la derecha. */
@media (prefers-reduced-motion: reduce){
  [data-drift-flat]{scrollbar-width:auto !important}
  [data-drift-flat]::-webkit-scrollbar{display:block !important;height:8px}
  [data-drift-flat]::-webkit-scrollbar-thumb{background:var(--efs-line-2);border-radius:999px}
}
/* 6px y no 2: el track recorta en vertical (overflow-x:auto obliga a
   overflow-y:auto) y el anillo de foco pide 2px de trazo + 2px de
   separación. Con menos, al tabular la tarjeta el anillo sale cortado. */
[data-autodrift] > div{position:relative;transition:transform 550ms cubic-bezier(0.34,1.56,0.64,1),box-shadow 550ms var(--efs-ease),border-color 550ms var(--efs-ease);transform-origin:center center;background:var(--efs-white)}
[data-autodrift] > div:hover,[data-autodrift] > div:focus-visible{z-index:6;animation:efs-cert-pop 650ms cubic-bezier(0.34,1.56,0.64,1) both;box-shadow:0 26px 64px rgba(0,150,209,0.26);border-color:var(--efs-celeste)}

/* --- Carrusel sin barra visible --- */
[data-noscrollbar]{scrollbar-width:none;-ms-overflow-style:none}
[data-noscrollbar]::-webkit-scrollbar{display:none}

/* --- Formulario: label flotante --- */
[data-field]{position:relative}
[data-field] > label{
  position:absolute;left:14px;top:16px;pointer-events:none;
  font:400 0.9375rem/1 Inter,sans-serif;color:var(--efs-ink-70);
  transition:transform 300ms var(--efs-ease),font-size 300ms var(--efs-ease);
  transform-origin:left center;
}
[data-field] > input:focus + label,
[data-field] > input:not(:placeholder-shown) + label{
  transform:translateY(-9px) scale(0.72);letter-spacing:0.14em;text-transform:uppercase;
}
[data-field="select"] > label{transform:translateY(-9px) scale(0.72);letter-spacing:0.14em;text-transform:uppercase}
[data-field] select option{color:var(--efs-ink)}
[data-field] input,[data-field] select{transition:border-color 240ms var(--efs-ease)}
[data-field] input:focus,[data-field] select:focus{border-color:var(--efs-celeste)}

/* --- Menú móvil a pantalla completa --- */
[data-menu]{transition:opacity 400ms var(--efs-ease),transform 400ms var(--efs-ease)}
[data-menu-link]{opacity:0;transform:translateY(14px);transition:opacity 400ms var(--efs-ease),transform 400ms var(--efs-ease)}
[data-menu][data-open] [data-menu-link]{opacity:1;transform:none}

/* --- Intro: telón blanco, marca y trazo celeste --- */
@keyframes efs-intro-out{to{opacity:0;visibility:hidden}}
@keyframes efs-intro-mark{0%{opacity:0;transform:scale(0.9)}45%{opacity:1;transform:scale(1.01)}100%{opacity:1;transform:scale(1)}}
@keyframes efs-intro-line{0%{transform:scaleX(0)}100%{transform:scaleX(1)}}
@keyframes efs-intro-trace{0%{stroke-dashoffset:0;opacity:0}14%{opacity:1}100%{stroke-dashoffset:-381;opacity:1}}
[data-intro]{
  position:fixed;inset:0;z-index:700;display:grid;place-items:center;
  background:var(--efs-white);
  animation:efs-intro-out 240ms var(--efs-ease) 400ms forwards;
}
[data-intro-mark]{animation:efs-intro-mark 360ms var(--efs-ease) both}
[data-intro-ring]{stroke-dasharray:100 281;animation:efs-intro-trace 520ms linear both}
[data-intro-line]{transform-origin:left center;animation:efs-intro-line 300ms var(--efs-ease) 100ms both}
html[data-efs-ready] [data-intro]{pointer-events:none}
@keyframes efs-pulse{0%{box-shadow:0 0 0 0 rgba(0,150,209,0.35)}70%{box-shadow:0 0 0 8px rgba(0,150,209,0)}100%{box-shadow:0 0 0 0 rgba(0,150,209,0)}}
[data-dot][aria-selected="true"]{animation:efs-pulse 2600ms var(--efs-ease) infinite}
@keyframes efs-spin{to{transform:rotate(360deg)}}
[data-spin]{animation:efs-spin 900ms linear infinite}

/* --- prefers-reduced-motion: una sola media query --- */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  [data-progress-fill]{transition:none !important}
  /* El velo de entrada se quita del todo, sin animacion. Antes se le daba
     `animation:efs-intro-out ... both`, pero la regla `*{animation:none
     !important}` de mas abajo la anulaba y el velo se quedaba opaco para
     siempre: con «reducir movimiento» el sitio entero era una pantalla en
     blanco con el logo. Aqui va !important y sin depender de ninguna
     animacion. */
  [data-intro]{animation:none !important;opacity:0 !important;visibility:hidden !important;pointer-events:none !important}
  [data-intro-mark],[data-intro-ring],[data-intro-line]{animation:none !important}
  *,*::before,*::after{
    animation:none !important;
    transition-property:opacity !important;
    transition-duration:200ms !important;
    scroll-behavior:auto !important;
  }
  html[data-efs-motion="on"] [data-reveal]{transform:none !important}
  img[data-slot]{transform:none !important}
  [data-btn]:hover,[data-hover-lift]:hover,[data-jelly]:hover{animation:none !important;transform:none !important;box-shadow:none !important}
  [data-mural-item]:hover [data-mural-zoom],[data-mural-item]:focus-visible [data-mural-zoom],[data-mural-item][data-zoomed] [data-mural-zoom],[data-mural-item]:active [data-mural-zoom]{scale:1 !important}
  [data-hover-zoom]:hover [data-zoom],[data-hover-zoom]:hover [data-rise]{transform:none !important}
  [data-underline]{width:100% !important;opacity:0.35}
  [data-menu-link]{opacity:1 !important;transform:none !important}
}

/* --- Hero en video (Home) --- */
@keyframes efs-hv-in{from{opacity:0;transform:scale(1.08)}to{opacity:1;transform:scale(1)}}
@keyframes efs-hv-rise{from{opacity:0;transform:translateY(105%)}to{opacity:1;transform:none}}
@keyframes efs-hv-fade{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes efs-hv-line{from{transform:scaleX(0)}to{transform:scaleX(1)}}
[data-hv-video]{opacity:0}
[data-hv-video][data-ready]{animation:efs-hv-in 2600ms cubic-bezier(.16,1,.3,1) forwards}
[data-hv-veil]{opacity:0;pointer-events:none;transition:opacity 900ms cubic-bezier(.4,0,.2,1)}
[data-hv-veil][data-on]{opacity:1}
[data-hv-mask]{display:block;overflow:hidden;padding:0 .12em .1em 0}
[data-hv-rise]{display:block;animation:efs-hv-rise 1400ms cubic-bezier(.16,1,.3,1) both;animation-delay:var(--d,0ms)}
[data-hv-fade]{animation:efs-hv-fade 1200ms cubic-bezier(.16,1,.3,1) both;animation-delay:var(--d,0ms)}
@keyframes efs-hv-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
[data-hv-stroke-path]{stroke-dasharray:1;stroke-dashoffset:1;animation:efs-hv-draw 1600ms cubic-bezier(.4,0,.2,1) both;animation-delay:var(--d,0ms)}
[data-hv-stroke]{animation-delay:var(--d,0ms)}
[data-hv-stroke] [data-hv-stroke-path]{animation-delay:inherit}
@media (max-width:1180px){
  [data-hv]{min-height:0 !important;align-items:flex-end !important}
  [data-hv-media]{right:50% !important;transform:translateX(50%);height:auto !important;width:100% !important;aspect-ratio:16/9;top:var(--efs-head-h,0px) !important;bottom:auto !important;-webkit-mask-image:linear-gradient(180deg,#000 88%,rgba(0,0,0,0)) !important;mask-image:linear-gradient(180deg,#000 88%,rgba(0,0,0,0)) !important}
  [data-hv-glow]{background:linear-gradient(180deg,rgba(244,243,241,0) calc(var(--efs-head-h,0px) + 56.25vw),rgba(244,243,241,0.92) calc(var(--efs-head-h,0px) + 56.25vw + 60px),rgba(244,243,241,0.96) 100%) !important}
  [data-hv-txt]{padding-top:calc(var(--efs-head-h,0px) + 56.25vw + 12px) !important;padding-bottom:clamp(24px,5vw,40px) !important}
  [data-hv-txt] > div{max-width:none}
  [data-hv-txt] h1{font-size:clamp(1.9rem,7.6vw,3.2rem) !important}
  [data-hv-amb],[data-page="home"] [data-hv]::before{display:none !important}
}
@media (max-height:560px) and (max-width:1180px){
  [data-hv]{min-height:0 !important}
}
@media (prefers-reduced-motion: reduce){
  [data-hv-rise],[data-hv-fade],[data-hv-stroke-path]{animation:none !important;stroke-dashoffset:0}
  [data-hv-video]{opacity:1 !important;animation:none !important}
}

/* Avales (JNDA / MinTrabajo): animación continua y sutil */
@keyframes efs-aval-float{0%,100%{transform:translateY(0);box-shadow:0 2px 10px -6px rgba(0,150,209,0.18)}50%{transform:translateY(-4px);box-shadow:0 12px 24px -12px rgba(0,150,209,0.38)}}
@keyframes efs-aval-sheen{0%,62%{transform:translateX(-140%) skewX(-18deg)}100%{transform:translateX(240%) skewX(-18deg)}}
[data-avales] > span{position:relative;overflow:hidden;animation:efs-aval-float 4.8s cubic-bezier(.45,0,.55,1) infinite}
[data-avales] > span:nth-child(2){animation-delay:-2.4s}
[data-avales] > span::after{content:"";position:absolute;top:0;bottom:0;left:0;width:40%;background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,0.75),rgba(255,255,255,0));animation:efs-aval-sheen 5.6s cubic-bezier(.4,0,.2,1) infinite;pointer-events:none}
[data-avales] > span:nth-child(2)::after{animation-delay:-2.8s}
@media (prefers-reduced-motion: reduce){[data-avales] > span,[data-avales] > span::after{animation:none !important}}

/* Isotipo de cada encabezado de sección: siempre animado, sutil */
@keyframes efs-iso-breathe{0%,100%{transform:translateY(0) rotate(0deg) scale(1)}25%{transform:translateY(-3px) rotate(-3deg) scale(1.03)}50%{transform:translateY(0) rotate(0deg) scale(1)}75%{transform:translateY(-2px) rotate(3deg) scale(1.02)}}
main img[src="img/marca/efs-mono-negro.png"][width="52"]{animation:efs-iso-breathe 6s cubic-bezier(.45,0,.55,1) infinite;transform-origin:50% 60%}
main section:nth-of-type(even) img[src="img/marca/efs-mono-negro.png"][width="52"]{animation-delay:-3s}
@media (prefers-reduced-motion: reduce){main img[src="img/marca/efs-mono-negro.png"][width="52"]{animation:none !important}}

/* Hero · "Quiero información": pulso suave y brillo continuo */
@keyframes efs-cta-pulse{0%,100%{box-shadow:0 0 0 0 rgba(0,150,209,0.32)}60%{box-shadow:0 0 0 10px rgba(0,150,209,0)}}
@keyframes efs-cta-sheen{0%,70%{transform:translateX(-160%) skewX(-20deg)}100%{transform:translateX(320%) skewX(-20deg)}}
[data-hv] a[data-btn="ghost"]{position:relative;overflow:hidden;animation:efs-cta-pulse 2.8s cubic-bezier(.4,0,.2,1) infinite;animation-delay:2.2s}
[data-hv] a[data-btn="ghost"]::after{content:"";position:absolute;top:0;bottom:0;left:0;width:34%;background:linear-gradient(90deg,rgba(0,150,209,0),rgba(0,150,209,0.18),rgba(0,150,209,0));animation:efs-cta-sheen 4.2s cubic-bezier(.4,0,.2,1) infinite;animation-delay:2.2s;pointer-events:none}
@media (prefers-reduced-motion: reduce){[data-hv] a[data-btn="ghost"],[data-hv] a[data-btn="ghost"]::after{animation:none !important}}

/* Interacción global: todo lo clicable responde al pasar y al tocar */
main a, main button, main [role="link"], main [role="button"], main [data-action], footer a, header a, header button, main summary, main label[for], main select {
  transition: transform 260ms cubic-bezier(.16,1,.3,1), opacity 220ms ease, color 220ms ease, background-color 220ms ease, border-color 220ms ease, box-shadow 260ms ease;
  -webkit-tap-highlight-color: transparent;
}
@media (hover:hover){
  main a:not([data-sede-tile]):not([data-hover-zoom]):hover, footer a:hover, main button:hover, main summary:hover { transform: translateY(-1px); }
  main [role="link"]:hover, main article[data-hover-lift]:hover { transform: translateY(-3px); box-shadow: 0 18px 40px -22px rgba(0,150,209,0.35); }
  main dd a:hover, main p a:hover, footer p a:hover { color: var(--efs-celeste) !important; }
  main [data-btn]:hover, footer [data-btn]:hover, header [data-btn]:hover { box-shadow: 0 10px 22px -12px rgba(0,150,209,0.55); }
}
main a:active, main button:active, main [role="link"]:active, main [role="button"]:active, main [data-action]:active, footer a:active, header a:active, header button:active, main summary:active {
  transform: scale(0.97) !important; transition-duration: 90ms;
}
main [role="link"]:active, main article[data-hover-lift]:active { transform: scale(0.99) !important; }
main a:focus-visible, main button:focus-visible, main [role="link"]:focus-visible, footer a:focus-visible { outline: 2px solid var(--efs-celeste); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce){
  main a, main button, main [role="link"], main [role="button"], main [data-action], footer a, header a, header button { transition: none !important; }
  main a:active, main button:active, main [role="link"]:active, footer a:active, header a:active, header button:active { transform: none !important; }
}

/* Línea de tiempo viva */
[data-mural-fill]{position:absolute;left:0;top:0;bottom:0;width:0;border-radius:2px;background:linear-gradient(90deg,#1E3D66,var(--efs-celeste));transition:width 260ms cubic-bezier(.16,1,.3,1)}
[data-mural-dot]{position:absolute;top:50%;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:#FFFFFF;border:2px solid var(--efs-line-2);transform:scale(.7);transition:transform 520ms cubic-bezier(.34,1.56,.64,1),border-color 300ms ease,background-color 300ms ease,box-shadow 300ms ease;z-index:2}
[data-mural-dot][data-reached]{transform:scale(1);border-color:var(--efs-celeste);background:var(--efs-celeste);box-shadow:0 0 0 5px rgba(0,150,209,0.16)}
[data-mural-item] [data-mural-zoom]{transition-property:scale,box-shadow,background-color,border-color,opacity}
[data-mural-item]:not([data-reached]) [data-mural-zoom]{opacity:.55}
[data-mural-item][data-reached] [data-mural-zoom]{opacity:1;border-left-color:var(--efs-celeste) !important}
@media (max-width:1023px){
  [data-mural] > [data-mural-item] > [data-mural-zoom]{position:relative;border-left:2px solid var(--efs-line) !important}
  [data-mural] > [data-mural-item][data-reached] > [data-mural-zoom]{border-left-color:var(--efs-celeste) !important}
  [data-mural] > [data-mural-item] > [data-mural-zoom]::before{content:"";position:absolute;left:-8px;top:4px;width:14px;height:14px;border-radius:50%;background:#FFFFFF;border:2px solid var(--efs-line-2);transform:scale(.7);transition:transform 520ms cubic-bezier(.34,1.56,.64,1),background-color 300ms ease,border-color 300ms ease,box-shadow 300ms ease}
  [data-mural] > [data-mural-item][data-reached] > [data-mural-zoom]::before{transform:scale(1);background:var(--efs-celeste);border-color:var(--efs-celeste);box-shadow:0 0 0 5px rgba(0,150,209,0.16)}
}
@media (prefers-reduced-motion: reduce){[data-mural-fill],[data-mural-dot]{transition:none !important}}

/* Línea de tiempo viva · v2: puntos con anillo y líneas suaves conectadas */
@media (min-width:1024px){
  [data-mural] > [data-mural-bar]{height:2px !important;background:var(--efs-line) !important;border-radius:2px}
  [data-mural-fill]{background:linear-gradient(90deg,rgba(0,150,209,0.35),var(--efs-celeste) 60%,#1E3D66) !important;transition:width 900ms cubic-bezier(.22,1,.36,1) !important;box-shadow:0 0 12px rgba(0,150,209,0.35)}
  [data-mural-dot]{width:20px !important;height:20px !important;margin:-10px 0 0 -10px !important;border:1.5px solid var(--efs-line-2) !important;background:#FFFFFF !important;box-shadow:none !important;transform:scale(.8) !important;display:grid;place-items:center}
  [data-mural-dot]::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--efs-celeste);transform:scale(0);transition:transform 600ms cubic-bezier(.34,1.56,.64,1)}
  [data-mural-dot][data-reached]{border-color:var(--efs-celeste) !important;transform:scale(1) !important;animation:efs-dot-ripple 1400ms cubic-bezier(.22,1,.36,1) 1}
  [data-mural-dot][data-reached]::after{transform:scale(1)}
  [data-mural] > [data-mural-item] > [data-mural-zoom]{border-left:0 !important;position:relative}
  [data-mural] > [data-mural-item] > [data-mural-zoom]::before{content:"";position:absolute;left:0;width:2px;border-radius:2px;background:var(--efs-line);transition:background 700ms ease}
  [data-mural] > [data-mural-item][data-mural-pos="top"] > [data-mural-zoom]::before{top:0;bottom:-2px;background:linear-gradient(180deg,rgba(0,150,209,0),var(--efs-line))}
  [data-mural] > [data-mural-item][data-mural-pos="bottom"] > [data-mural-zoom]::before{top:-2px;bottom:0;background:linear-gradient(180deg,var(--efs-line),rgba(0,150,209,0))}
  [data-mural] > [data-mural-item][data-reached][data-mural-pos="top"] > [data-mural-zoom]::before{background:linear-gradient(180deg,rgba(0,150,209,0),var(--efs-celeste))}
  [data-mural] > [data-mural-item][data-reached][data-mural-pos="bottom"] > [data-mural-zoom]::before{background:linear-gradient(180deg,var(--efs-celeste),rgba(0,150,209,0))}
}
@keyframes efs-dot-ripple{0%{box-shadow:0 0 0 0 rgba(0,150,209,0.45)}100%{box-shadow:0 0 0 14px rgba(0,150,209,0)}}
[data-mural-item] [data-mural-zoom]{transition:scale 420ms var(--efs-ease),box-shadow 420ms var(--efs-ease),background-color 420ms var(--efs-ease),opacity 700ms ease}
@media (prefers-reduced-motion: reduce){[data-mural-dot][data-reached]{animation:none !important}}

/* Línea de tiempo móvil: línea continua y punto centrado sobre ella */
@media (max-width:1023px){
  [data-mural] > [data-mural-item]{position:relative}
  [data-mural] > [data-mural-item]::after{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--efs-line);transition:background-color 600ms ease;z-index:0}
  [data-mural] > [data-mural-item][data-reached]::after{background:var(--efs-celeste)}
  [data-mural] > [data-mural-item]:last-of-type::after{bottom:auto;height:20px}
  [data-mural] > [data-mural-item] > [data-mural-zoom]{border-left:0 !important;padding-left:26px !important}
  [data-mural] > [data-mural-item] > [data-mural-zoom]::before{left:-6px !important;top:6px !important;z-index:1}
}

/* --- Graduación (réplica del afiche): foto con borde curvo; en móvil se apila --- */
[data-grad-foto]{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M0 0H85C92 .5 95.5 4 96.5 10C98.5 28 100 45 99.5 55C99 72 97.5 82 95.5 88C93 94 88 98.5 77 100H0Z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M0 0H85C92 .5 95.5 4 96.5 10C98.5 28 100 45 99.5 55C99 72 97.5 82 95.5 88C93 94 88 98.5 77 100H0Z'/%3E%3C/svg%3E");-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}
@media (max-width:900px){
  [data-grad-grid]{min-height:0 !important}
  [data-grad-foto]{aspect-ratio:1/1;min-height:0 !important;-webkit-mask-image:linear-gradient(#000 0,#000 78%,rgba(0,0,0,0) 100%);mask-image:linear-gradient(#000 0,#000 78%,rgba(0,0,0,0) 100%)}
  [data-grad-txt]{padding:8px 20px 64px !important}
  [data-grad-strip]{height:auto !important;aspect-ratio:4.85/1;min-height:76px}
  [data-grad-cta]{width:auto !important;max-width:100%;white-space:normal !important;text-wrap:balance}
}

/* --- Botones: todos en pastilla redondeada; los llenos con degradado celeste --- */
[data-btn]{border-radius:999px !important}
[data-btn="primary"],[data-btn="invert"]{background:linear-gradient(90deg,#0390D4 0%,#0582C9 100%) !important;color:#FFFFFF !important;font-weight:600 !important;letter-spacing:0.12em !important;box-shadow:0 14px 28px -14px rgba(3,132,200,0.75)}
[data-btn]:has(> [data-pill-chip]){padding:14px 20px 14px 26px !important;gap:12px !important}
[data-btn] [data-pill-chip]{background:transparent !important;color:inherit !important;width:auto !important;height:auto !important;border-radius:0 !important}
[data-btn="ghost"]{border:1px solid var(--efs-celeste) !important;color:var(--efs-celeste) !important}
[data-btn="ghost"]:hover{background:var(--efs-celeste-soft) !important}

/* --- Auditoría · móvil fluido y proporcionado --- */
html{scroll-padding-top:96px}
html,body{overflow-x:clip}
[data-track],[data-drift-flat],[data-autodrift]{overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
@media (max-width:900px){
  [data-hv-amb]{display:none !important}
  main img[src="img/marca/efs-mono-negro.png"][width="52"],[data-avales] > span,[data-avales] > span::after,[data-hv] a[data-btn="ghost"],[data-hv] a[data-btn="ghost"]::after{animation:none !important}
  main > section:nth-of-type(n+3){content-visibility:auto;contain-intrinsic-size:auto 900px}
  [data-grad-foto]{aspect-ratio:5/4 !important}
}
@media (max-width:600px){
  [data-taller-card]{display:grid !important;grid-template-columns:40% minmax(0,1fr);align-items:start;gap:12px !important;padding:10px 10px 14px !important}
  [data-taller-card] > div:first-child{aspect-ratio:3/4 !important}
  [data-taller-card] h3{font-size:1.0625rem !important}
  [data-taller-card] p{font-size:0.875rem !important;line-height:1.5 !important}
}

/* --- Historia en móvil: línea de tiempo deslizable y retratos compactos --- */
@media (max-width:900px){
  [data-mural]{display:flex !important;gap:12px !important;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin-left:calc(-1*clamp(20px,4vw,64px)) !important;margin-right:calc(-1*clamp(20px,4vw,64px)) !important;padding:4px clamp(20px,4vw,64px) 18px !important;scroll-padding-inline:clamp(20px,4vw,64px)}
  [data-mural]::-webkit-scrollbar{display:none}
  [data-mural] > [data-mural-bar]{display:none !important}
  [data-mural] > [data-mural-item]{flex:0 0 min(80vw,340px) !important;scroll-snap-align:start;grid-column:auto !important;grid-row:auto !important;align-self:stretch !important}
  [data-mural] > [data-mural-item]::after{display:none !important}
  [data-mural] > [data-mural-item] > [data-mural-zoom]{height:100%;box-sizing:border-box;border:1px solid rgba(0,150,209,0.14) !important;border-radius:16px;background:#FFFFFF;padding:16px !important;box-shadow:0 18px 36px -30px rgba(0,90,160,0.5);opacity:1 !important}
  [data-mural] > [data-mural-item] > [data-mural-zoom]::before{display:none !important}
  [data-mural-foto]{max-width:none !important;aspect-ratio:16/10 !important;border-radius:10px !important}
  /* Fotos históricas en móvil: cada caja toma una proporción cercana a su foto real
     para no decapitar caras. La vertical (gremio-2002) va en caja vertical; las
     horizontales con las caras arriba, en caja un poco más alta. */
  [data-mural-foto]:has(img[src*="gremio-2002"]){aspect-ratio:3/4 !important}
  [data-mural-foto]:has(img[src*="reconocimiento-1980"]),
  [data-mural-foto]:has(img[src*="reunion-1982"]){aspect-ratio:5/4 !important}
  #historia figure[data-stack-768]{grid-template-columns:34% minmax(0,1fr) !important;align-items:start !important;gap:14px !important}
  #historia figure[data-stack-768] figcaption p:last-child{font-size:0.9375rem !important;line-height:1.55 !important;margin-top:10px !important}
}

/* --- Buscador con IA (lupa de la cabecera · EfsNav) --- */
/* Asistente: punto verde «en línea» con un halo que late suave */
[data-online-dot]::after{content:"";position:absolute;inset:-3px;border-radius:50%;border:2px solid rgba(34,195,94,0.55);pointer-events:none;animation:efs-online 2.4s cubic-bezier(.2,.7,.2,1) infinite}
@keyframes efs-online{0%{transform:scale(1);opacity:.9}70%,100%{transform:scale(1.9);opacity:0}}
@media (prefers-reduced-motion: reduce){[data-online-dot]::after{animation:none;display:none}}
/* En celular la lupa comparte la derecha con «Aula» y el menú: se aprietan
   separaciones para que nada toque el monograma centrado. */
@media (max-width:520px){
  [data-nav-right]{gap:4px !important}
  [data-nav] [data-search-btn]{width:36px !important;height:36px !important}
  [data-nav] [data-pill-aula]{padding-left:11px !important}
}
[data-nav] [data-pill-aula]{flex:none}
@media (max-width:400px){
  [data-nav] [data-pill-aula] > span:last-child{display:none}
  [data-nav] [data-pill-aula]{padding:7px 12px !important}
}
@media (max-width:380px){
  [data-nav] > div{padding:0 14px !important}
  [data-nav] > div > div{gap:8px !important}
  [data-nav] [data-search-btn]{width:32px !important;height:32px !important}
}
[data-search-panel]{animation:efs-search-in 420ms cubic-bezier(.16,1,.3,1) both}
@keyframes efs-search-in{from{opacity:0;transform:translateY(-12px) scale(.985)}to{opacity:1;transform:none}}
[data-search-hit]{transition:background-color 240ms var(--efs-ease)}
[data-search-hit]:hover,[data-search-hit][data-sel="1"]{background:#F1F8FD}
[data-search-panel] input::placeholder{color:var(--efs-ink-50,rgba(20,23,26,0.5))}
[data-ia-dots] i{display:block;width:5px;height:5px;border-radius:50%;background:var(--efs-celeste);animation:efs-ia-dot 1.1s ease-in-out infinite}
[data-ia-dots] i:nth-child(2){animation-delay:.15s}
[data-ia-dots] i:nth-child(3){animation-delay:.3s}
@keyframes efs-ia-dot{0%,80%,100%{opacity:.25;transform:none}40%{opacity:1;transform:translateY(-3px)}}
[data-ia-skel]{display:block;height:12px;border-radius:999px;background:linear-gradient(90deg,#E6F2FA 0%,#F6FBFE 50%,#E6F2FA 100%);background-size:200% 100%;animation:efs-ia-skel 1.4s linear infinite}
@keyframes efs-ia-skel{from{background-position:200% 0}to{background-position:-200% 0}}
@media (max-width:640px){
  [data-search-panel]{width:100% !important;height:100%;max-height:none !important;margin:0 !important;border-radius:0 !important}
}
@media (prefers-reduced-motion: reduce){[data-search-panel],[data-ia-dots] i,[data-ia-skel]{animation:none !important}}

/* --- Línea de tiempo · cada hito brota de la línea (efs-site.js · scanMural) --- */
[data-mural-fill]{width:100% !important;transform-origin:0 50%;transform:scaleX(0);transition:none !important;will-change:transform}
[data-mural-head]{position:absolute;left:0;top:50%;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:#FFFFFF;box-shadow:0 0 0 3px rgba(0,150,209,0.42),0 0 18px 5px rgba(0,150,209,0.5);opacity:0;transition:opacity 500ms ease;pointer-events:none;z-index:2;will-change:transform}
[data-mural-zoom] > :nth-child(2){--o:1}
[data-mural-zoom] > :nth-child(3){--o:2}
[data-mural-zoom] > :nth-child(4){--o:3}
html[data-efs-motion="on"] [data-mural-anim] > [data-mural-item]:not([data-shown]){pointer-events:none}
html[data-efs-motion="on"] [data-mural-anim] [data-mural-zoom] > *{opacity:0;transform:translate3d(0,var(--my,16px),0);filter:blur(5px);transition:opacity 800ms cubic-bezier(.22,1,.36,1),transform 1100ms cubic-bezier(.16,1,.3,1),filter 900ms cubic-bezier(.22,1,.36,1);transition-delay:calc(var(--md,0ms) + var(--m0,180ms) + var(--o,0) * 120ms)}
/* El título en cursiva se escribe de izquierda a derecha */
html[data-efs-motion="on"] [data-mural-anim] [data-mural-zoom] > p:nth-child(2){width:fit-content;transform:none;filter:none;clip-path:inset(-40% 100% -40% -12%);transition:opacity 260ms ease,clip-path 1300ms cubic-bezier(.65,0,.35,1);transition-delay:calc(var(--md,0ms) + var(--m0,180ms) + var(--o,0) * 120ms)}
/* La foto se descubre como una cortina y se asienta */
html[data-efs-motion="on"] [data-mural-anim] [data-mural-zoom] > [data-mural-foto]{opacity:1;transform:none;filter:none;clip-path:inset(0 0 100% 0);transition:clip-path 1200ms cubic-bezier(.65,0,.35,1);transition-delay:calc(var(--md,0ms) + var(--m0,180ms) + var(--o,0) * 120ms)}
html[data-efs-motion="on"] [data-mural-anim] [data-mural-foto] img{transform:scale(1.16);transition:transform 1800ms cubic-bezier(.16,1,.3,1);transition-delay:inherit}
@media (min-width:1024px){
  [data-mural-pos="top"] > [data-mural-zoom]{--my:18px}
  [data-mural-pos="bottom"] > [data-mural-zoom]{--my:-18px}
  [data-mural-pos="top"] > [data-mural-zoom] > :nth-child(1){--o:3}
  [data-mural-pos="top"] > [data-mural-zoom] > :nth-child(2){--o:2}
  [data-mural-pos="top"] > [data-mural-zoom] > :nth-child(3){--o:1}
  [data-mural-pos="top"] > [data-mural-zoom] > :nth-child(4){--o:0}
  html[data-efs-motion="on"] [data-mural-anim] [data-mural-pos="top"] > [data-mural-zoom] > [data-mural-foto]{clip-path:inset(100% 0 0 0)}
  html[data-efs-motion="on"] [data-mural-anim] > [data-mural-item] > [data-mural-zoom]::before{transform:scaleY(0);transition:transform 800ms cubic-bezier(.22,1,.36,1),background 700ms ease}
  html[data-efs-motion="on"] [data-mural-anim] > [data-mural-item][data-mural-pos="top"] > [data-mural-zoom]::before{transform-origin:50% 100%}
  html[data-efs-motion="on"] [data-mural-anim] > [data-mural-item][data-mural-pos="bottom"] > [data-mural-zoom]::before{transform-origin:50% 0}
  html[data-efs-motion="on"] [data-mural-anim] > [data-mural-item][data-shown] > [data-mural-zoom]::before{transform:none}
}
@media (min-width:901px) and (max-width:1023px){
  html[data-efs-motion="on"] [data-mural-anim] > [data-mural-item]::after{transform:scaleY(0);transform-origin:50% 0;transition:transform 900ms cubic-bezier(.22,1,.36,1),background-color 600ms ease}
  html[data-efs-motion="on"] [data-mural-anim] > [data-mural-item][data-shown]::after{transform:none}
}
@media (max-width:900px){
  [data-mural]{position:relative}
  [data-mural] > [data-mural-item]{transform-origin:50% 60%;will-change:transform,opacity}
  html[data-efs-motion="on"] [data-mural-anim] > [data-mural-item] > [data-mural-zoom]{--m0:280ms;opacity:0 !important;transform:scale(.9);transform-origin:50% 50%;transition:opacity 700ms cubic-bezier(.22,1,.36,1) var(--md,0ms),transform 1000ms cubic-bezier(.16,1,.3,1) var(--md,0ms),scale 420ms var(--efs-ease),box-shadow 420ms var(--efs-ease),background-color 420ms var(--efs-ease)}
  html[data-efs-motion="on"] [data-mural-anim] > [data-mural-item][data-shown] > [data-mural-zoom]{opacity:1 !important;transform:none}
}
html[data-efs-motion="on"] [data-mural-anim] > [data-mural-item][data-shown] [data-mural-zoom] > *{opacity:1;transform:none;filter:none}
html[data-efs-motion="on"] [data-mural-anim] > [data-mural-item][data-shown] [data-mural-zoom] > p:nth-child(2){clip-path:inset(-40% -12% -40% -12%)}
html[data-efs-motion="on"] [data-mural-anim] > [data-mural-item][data-shown] [data-mural-zoom] > [data-mural-foto]{clip-path:inset(0 0 0 0)}
html[data-efs-motion="on"] [data-mural-anim] > [data-mural-item][data-shown] [data-mural-foto] img{transform:none}

/* --- Footer oscuro en grilla (réplica del footer del spa, con contenido EFS) --- */
[data-ft-waves]{position:absolute;left:0;right:0;top:0;height:260px;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='26' viewBox='0 0 96 26'%3E%3Cpath d='M0 13c12 0 12-9 24-9s12 9 24 9 12-9 24-9 12 9 24 9' fill='none' stroke='%230096D1' stroke-opacity='0.12' stroke-width='1.4'/%3E%3C/svg%3E");background-size:96px 26px;-webkit-mask-image:linear-gradient(180deg,#000 0%,rgba(0,0,0,0) 100%);mask-image:linear-gradient(180deg,#000 0%,rgba(0,0,0,0) 100%)}
@media (max-width:1099px){[data-ft-grid]{grid-template-columns:repeat(3,minmax(0,1fr)) !important}}
@media (max-width:599px){[data-ft-grid]{grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:36px 20px !important}}
[data-ft] :is(p,a){text-align:left !important}
[data-pacha] img{filter:drop-shadow(0 0 6px rgba(79,184,232,0.45));transition:filter 300ms ease,transform 300ms ease}
[data-pacha]:hover img{filter:drop-shadow(0 0 10px rgba(79,184,232,0.85));transform:translateY(-1px) rotate(-4deg)}
[data-pacha]:hover strong{text-shadow:0 0 14px rgba(79,184,232,0.75)}
/* Sedes plegables */
[data-ft-sede] > summary{list-style:none}
[data-ft-sede] > summary::-webkit-details-marker{display:none}
[data-ft-sede] > summary:hover{color:var(--efs-celeste) !important}
[data-ft-chev]{transition:transform 320ms cubic-bezier(.22,1,.36,1)}
[data-ft-sede][open] > summary{color:var(--efs-ink) !important}
[data-ft-sede][open] [data-ft-chev]{transform:rotate(180deg)}
[data-ft-sede][open] [data-ft-sede-info]{animation:efs-ft-open 420ms cubic-bezier(.22,1,.36,1)}
@keyframes efs-ft-open{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
[data-ft-sede-info] a:hover{color:var(--efs-celeste) !important}
@media (prefers-reduced-motion: reduce){[data-ft-sede][open] [data-ft-sede-info]{animation:none}}
