/* Liceo Euler — temporada navideña: capa decorativa aislada y reversible (v3.35.0).
 * Desarrollado por LEMA Digital Agency.
 * Todo queda bajo html.euler-xmas (la clase la pone el servidor según «Diseño de temporada»). Cada sección se habilita
 * con su propia clase: xm-a encabezado · xm-b portada · xm-c portal de maestros · xm-d portal de estudiantes · xm-e Vida
 * · xm-f Admisiones abiertas. Quitar la clase y los nodos [data-euler-xmas]
 * devuelve la base intacta. Ninguna regla toca transform/animation/opacity de elementos animados originales. */

html.euler-xmas [data-euler-xmas]{pointer-events:none;user-select:none}
html.euler-xmas [data-euler-xmas] img{display:block;max-width:none;height:auto;-webkit-user-drag:none}
.euler-xmas-abs{position:absolute}

/* ---------- efectos compartidos ---------- */
.euler-xmas-flakes{position:absolute;inset:0;overflow:hidden;z-index:0}
.euler-xmas-flake{position:absolute;top:-12px;left:var(--x);width:var(--s);height:var(--s);border-radius:50%;background:#fff;opacity:0;
  box-shadow:0 0 6px rgba(255,255,255,.7);animation:euler-xmas-fall var(--d) linear var(--t) infinite}
@keyframes euler-xmas-fall{0%{transform:translate3d(0,0,0);opacity:0}12%{opacity:var(--o)}88%{opacity:var(--o)}100%{transform:translate3d(var(--dx),var(--fh,600px),0);opacity:0}}
.euler-xmas-glint{position:absolute;left:var(--x);top:var(--y);width:var(--s,10px);height:var(--s,10px);margin:calc(var(--s,10px)/-2) 0 0 calc(var(--s,10px)/-2);border-radius:50%;opacity:0;
  background:radial-gradient(circle,#fff 0,rgba(255,244,214,.95) 22%,rgba(255,214,140,0) 70%);animation:euler-xmas-tw var(--d,4s) ease-in-out var(--t,0s) infinite}
.euler-xmas-glint--cool{background:radial-gradient(circle,#fff 0,rgba(214,232,255,.95) 22%,rgba(190,170,255,0) 70%)}
@keyframes euler-xmas-tw{0%,100%{opacity:0;transform:scale(.55)}50%{opacity:.95;transform:scale(1.15)}}
.euler-xmas-enter{animation:euler-xmas-in 1.1s cubic-bezier(.2,.8,.2,1) .35s both}
@keyframes euler-xmas-in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}

/* Pausa: fuera de pantalla, pestaña oculta o pausa de revisión. Solo afecta a los añadidos. */
html.euler-xmas-hidden [data-euler-xmas] *,html.euler-xmas-frozen [data-euler-xmas] *,[data-euler-xmas].is-off *{animation-play-state:paused!important}
html.euler-xmas-hidden [data-euler-xmas] .euler-xmas-enter,html.euler-xmas-frozen [data-euler-xmas] .euler-xmas-enter,[data-euler-xmas].is-off .euler-xmas-enter{animation-play-state:running!important}

/* ======================= A. ENCABEZADO (v3.35.0) ======================= */
/* Blanco perlado con matiz hielo; franja superior (--xs) con el trineo; nieve SOLO entre franja y menú; borde inferior limpio. */
html.euler-xmas.xm-a .site-header{--xs:66px;--th:46px;--snow:18px;background:linear-gradient(180deg,#f6f9ff 0%,#fbfdff 60%,#f1f6fd 100%);
  box-shadow:0 10px 28px -22px rgba(20,50,120,.45);border-bottom:1px solid rgba(160,190,235,.35)}
html.euler-xmas.xm-a .site-header.scrolled{background:linear-gradient(180deg,rgba(246,249,255,.96),rgba(251,253,255,.94))}
.euler-xmas-hd{position:absolute;left:0;right:0;bottom:0;top:var(--xs);z-index:0;pointer-events:none;overflow:hidden}
/* El encabezado crece la altura de la franja: --nav-h incluye --xs para que menú móvil, sticky y compensaciones del sitio
   sigan quedando justo debajo (escritorio 76 + 66; móvil usa el alto real medido, --hd-h). */
html.euler-xmas{--nav-h:142px}
html.euler-xmas.xm-a .site-header>.header-inner{height:76px}
html.euler-xmas.xm-a .mobile-nav{inset:var(--hd-h,var(--nav-h)) 0 0}
html.euler-xmas.xm-a .site-header>.header-inner{position:relative;z-index:1}
.euler-xmas-hd .x-hcopo{position:absolute;height:auto;opacity:.45;translate:-50% -50%;animation:xsSpin 24s linear infinite,xsTw 4s ease-in-out infinite;filter:drop-shadow(0 0 2px rgba(150,190,240,.35))}
.euler-xmas-hd .x-hcopo--b{animation-name:xsTw2!important}
.euler-xmas-hd .x-hcopo--s{opacity:0;filter:drop-shadow(0 0 2px rgba(140,185,240,.7));animation:xgSpark var(--d,4s) ease-in-out var(--t,0s) infinite!important}
/* Ambiente de la fila del menú: escarcha suave en los extremos + cajas recortadas en los huecos libres. */
.euler-xmas-hd{background:radial-gradient(260px 120% at 0 60%,rgba(170,205,245,.28),transparent 70%),radial-gradient(260px 120% at 100% 60%,rgba(170,205,245,.28),transparent 70%),
  radial-gradient(600px 90% at 50% 120%,rgba(200,222,250,.22),transparent 70%)}
.euler-xmas-hd .x-gap{position:absolute;overflow:hidden;z-index:0}
.euler-xmas-hd .x-gap i{position:absolute;top:-6px;border-radius:50%;background:#a6c8f0;box-shadow:0 0 3px rgba(150,190,240,.8);opacity:0;
  animation:xgFall var(--d,7s) linear var(--t,0s) infinite}
@keyframes xgFall{0%{transform:translate(0,0);opacity:0}15%{opacity:.85}82%{opacity:.75}100%{transform:translate(var(--dx,0),var(--h,80px));opacity:0}}
.euler-xmas-hd .x-gbig{position:absolute;height:auto;translate:-50% -50%;opacity:.2;animation:xsSpin 60s linear infinite}
.euler-xmas-hd .x-spark{position:absolute;height:auto;translate:-50% -50%;opacity:0;animation:xgSpark var(--d,4s) ease-in-out var(--t,0s) infinite}
@keyframes xgSpark{0%,62%,100%{opacity:0;scale:.3}78%{opacity:.95;scale:1}}
@keyframes xsSpin{to{rotate:360deg}}
@keyframes xsTw2{0%,100%{scale:1}50%{scale:1.06}}
@keyframes xsTw{0%,100%{scale:1}50%{scale:1.12}}
.euler-xmas-sleigh{position:relative;height:var(--xs);overflow:hidden;pointer-events:none;user-select:none;
  background:linear-gradient(180deg,rgba(226,238,252,.55),rgba(246,250,255,0) 80%)}
/* La nieve se desliza de forma continua y moderada (≈ una ondulación cada 7 s) mientras el trineo vuela. */
.euler-xmas-sleigh .xs-snow{position:absolute;left:0;right:0;bottom:0;height:var(--snow);z-index:3;
  background:url(../navidad/hd-nieve.webp) 0 bottom/auto 100% repeat-x;opacity:.95;animation:xsSlide 7s linear infinite}
@keyframes xsSlide{to{background-position-x:calc(var(--snow) * -8)}}
.euler-xmas-sleigh.is-idle *{animation-play-state:paused!important}
.euler-xmas-sleigh .xs-trail i.xs-puff{background:#fff;box-shadow:0 0 3px rgba(190,215,250,.9);z-index:4}
.euler-xmas-sleigh .xs-fl{position:absolute;top:-10px;width:var(--s,8px);height:auto;opacity:0;z-index:1;animation:xsFall var(--d,6s) linear var(--t,0s) infinite}
@keyframes xsFall{0%{opacity:0;transform:translate(0,0) rotate(0)}12%{opacity:.75}85%{opacity:.6}100%{opacity:0;transform:translate(var(--dx,-14px),calc(var(--xs) - var(--snow) + 6px)) rotate(160deg)}}
.euler-xmas-sleigh .xs-team{position:absolute;left:0;top:calc((var(--xs) - var(--th)) / 2 - 4px);z-index:2;will-change:transform;transform:translate3d(-9999px,0,0)}
.euler-xmas-sleigh .xs-team>img,.euler-xmas-sleigh .xs-rn{position:absolute;top:0;display:block}
.euler-xmas-sleigh .xs-team img{width:100%;height:auto;max-width:none}
.euler-xmas-sleigh .xs-sl{z-index:2}
.euler-xmas-sleigh .xs-rn{z-index:2}
.euler-xmas-sleigh .xs-reins{position:absolute;left:0;top:0;overflow:visible;z-index:1}
.euler-xmas-sleigh .xs-reins polyline{fill:none;stroke:#2c5fd6;stroke-width:1.3;stroke-dasharray:1.4 3.2;stroke-linecap:round;opacity:.85}
.euler-xmas-sleigh .xs-nose{position:absolute;width:9px;aspect-ratio:1;transform:translate(-50%,-50%);background:center/contain no-repeat;opacity:.45;animation:xsNose 2.8s ease-in-out infinite}
@keyframes xsNose{0%,100%{opacity:.25}50%{opacity:.7}}
.euler-xmas-sleigh .xs-gifts,.euler-xmas-sleigh .xs-trail{position:absolute;inset:0}
.euler-xmas-sleigh .xs-gifts{z-index:4}
.euler-xmas-sleigh .xs-gift{position:absolute;left:0;top:0;height:auto;opacity:0;will-change:transform,opacity}
.euler-xmas-sleigh .xs-trail{z-index:1}
.euler-xmas-sleigh .xs-trail i{position:absolute;left:0;top:0;border-radius:50%;background:#3b74e0;opacity:0;box-shadow:0 0 3px rgba(80,140,240,.5)}
html.euler-xmas-frozen .euler-xmas-sleigh *{animation-play-state:paused!important}
/* Tablet (≤1260, donde el sitio ya colapsa el menú): botón «Menú» con texto + Portal + Admisiones visibles. */
@media (max-width:1260px){
  html.euler-xmas.xm-a .header-actions .btn--admis{display:inline-flex}
  html.euler-xmas.xm-a .nav-toggle{width:auto;padding:0 16px 0 42px;font:600 .92rem/1 inherit;color:var(--navy-800,#14286b);gap:0;align-items:center;justify-content:center}
  html.euler-xmas.xm-a .nav-toggle::after{content:"Menú"}
  html.euler-xmas.xm-a .nav-toggle span{left:14px;right:auto;width:18px}
  html.euler-xmas.xm-a .nav-toggle span:nth-child(2){left:18px;width:14px}
  html.euler-xmas.xm-a .nav-toggle:hover span:nth-child(2){left:14px;width:18px}
  html.euler-xmas.xm-a .nav-toggle{order:-1}
}
/* Móvil: fila 1 marca + botón de menú (con copo a su derecha); fila 2 Portal y Admisiones. */
@media (max-width:767.98px){
  html.euler-xmas.xm-a .site-header{--xs:48px;--th:32px;--snow:14px}
  .euler-xmas-sleigh .xs-fl--d{display:none}
  html.euler-xmas{--nav-h:176px}
  html.euler-xmas.xm-a .site-header>.header-inner{height:auto;flex-wrap:wrap;row-gap:10px;padding-top:10px;padding-bottom:12px}
  html.euler-xmas.xm-a .header-inner>.brand{flex:1 1 calc(100% - 104px);min-width:0}
  html.euler-xmas.xm-a .header-actions{display:contents}
  html.euler-xmas.xm-a .nav-toggle{order:2;width:44px;padding:0;margin-right:34px}
  html.euler-xmas.xm-a .nav-toggle::after{content:none}
  html.euler-xmas.xm-a .nav-toggle span{left:12px;width:20px}
  html.euler-xmas.xm-a .nav-toggle span:nth-child(2){left:18px;width:14px}
  html.euler-xmas.xm-a .header-actions .btn--portal{order:3;flex:1 1 0;justify-content:center;min-height:44px}
  html.euler-xmas.xm-a .header-actions .btn--portal span{display:inline}
  html.euler-xmas.xm-a .header-actions .btn--admis{order:4;flex:1 1 0;justify-content:center;min-height:44px}
}
@media (prefers-reduced-motion:reduce){.euler-xmas-sleigh .xs-team,.euler-xmas-sleigh .xs-gifts,.euler-xmas-sleigh .xs-trail,.euler-xmas-sleigh .xs-fl{display:none}.euler-xmas-sleigh .xs-snow,.euler-xmas-hd .x-hcopo,.euler-xmas-hd .x-gbig{animation:none}.euler-xmas-hd .x-gap i{display:none}.euler-xmas-hd .x-spark,.euler-xmas-hd .x-hcopo--s{animation:none!important;opacity:.6;scale:1}}


/* Pantallas anchas (≥1367 px): encabezado y portada usan un ancho de contenido proporcional a la pantalla (≈80 %, máx. 1600 px)
   en lugar de quedarse en 1200 px con grandes márgenes laterales. Hasta 1366 px no cambia nada. */
@media (min-width:1367px){
  html.euler-xmas.xm-a .site-header>.header-inner,html.euler-xmas.xm-a .hero-inner{max-width:clamp(1200px,82vw,1600px)}
  /* Las guías largas de la cortina solo ocupan el 30 % exterior de cada columna lateral (perfil medido en cortina-luces.webp);
     el texto arranca al 54–57 % de la columna izquierda. A la derecha se retira la figura 2,2vw para salir de ese 30 % exterior. */
  html.euler-xmas.xm-a .hero-inner{padding-right:calc(var(--gutter) + 2.2vw)}
}
/* ======================= B. PORTADA (cortina de luces) ======================= */
.euler-xmas-curtain{--xh:clamp(92px,13.3vw,250px);--xw:calc(var(--xh) * 4.551);position:absolute;left:0;right:0;top:0;height:var(--xh);z-index:5;overflow:hidden;
  display:grid;grid-template-columns:calc(var(--xw) * .34) minmax(0,1fr) calc(var(--xw) * .34)}
.euler-xmas-curtain .x-cw{position:relative;height:100%;background:url(../navidad/cortina-luces.webp) no-repeat;background-size:auto 100%}
.euler-xmas-curtain .x-cw--l{background-position:left top}
.euler-xmas-curtain .x-cw--r{background-position:right top}
.euler-xmas-curtain .x-cw--c{background:url(../navidad/cortina-centro.webp) center top/auto 100% repeat-x}
.euler-xmas-curtain .euler-xmas-glint{--s:clamp(7px,.8vw,13px)}
.euler-xmas-heroflakes{position:absolute;inset:0;z-index:4;overflow:hidden}
@media (max-width:640px){.euler-xmas-curtain{--xh:84px}}

/* ======================= C. PORTAL DE MAESTROS ======================= */
html.euler-xmas.xm-c .auth__aside{background:#040b29 url(../navidad/cielo-nocturno.webp) center/cover no-repeat;padding-bottom:clamp(52px,16vh,150px)}
html.euler-xmas.xm-c .auth__aside::before{opacity:.45}
html.euler-xmas.xm-c .auth__aside::after{opacity:.3}
html.euler-xmas.xm-c .auth__aside>.euler-xmas-layer{position:absolute;inset:0;z-index:0}
.euler-xmas-sky{overflow:hidden}
.euler-xmas-sky .x-snow{position:absolute;left:0;right:0;bottom:0;height:clamp(84px,15vh,150px);background:url(../navidad/nieve-inferior.webp) center top/max(100%,1100px) 100% no-repeat}
/* Estrella fugaz: cabeza luminosa + estela que se estira y se apaga; recorrido descendente hacia la izquierda.
   euler-xmas.js la dispara con intervalos aleatorios de 12–20 s y posición variable en la franja superior. */
.euler-xmas-sky .x-shoot{position:absolute;left:var(--sx,60%);top:var(--sy,9%);width:var(--len,220px);height:2px;opacity:0;transform:rotate(var(--ang,-20deg));transform-origin:0 50%}
.euler-xmas-sky .x-shoot i{position:absolute;inset:0;border-radius:2px;transform-origin:0 50%;transform:scaleX(.1);
  background:linear-gradient(90deg,#fff 0,rgba(214,232,255,.85) 12%,rgba(150,190,255,.35) 45%,rgba(150,190,255,0) 100%)}
.euler-xmas-sky .x-shoot b{position:absolute;left:-4px;top:-4px;width:10px;height:10px;border-radius:50%;background:#fff;
  box-shadow:0 0 6px 2px #fff,0 0 16px 5px rgba(170,205,255,.85),0 0 34px 12px rgba(110,160,255,.3)}
.euler-xmas-sky .x-shoot b::before,.euler-xmas-sky .x-shoot b::after{content:"";position:absolute;left:50%;top:50%;width:26px;height:1.5px;margin:-.75px 0 0 -13px;border-radius:2px;
  background:linear-gradient(90deg,transparent,#fff,transparent)}
.euler-xmas-sky .x-shoot b::after{transform:rotate(90deg)}
/* Tercera estrella, más lejana: cabeza y estela algo más finas y tenues. */
.euler-xmas-sky .x-shoot--far{height:1.5px}
.euler-xmas-sky .x-shoot--far b{left:-3px;top:-3px;width:7px;height:7px;box-shadow:0 0 5px 1px #fff,0 0 12px 4px rgba(170,205,255,.7),0 0 24px 8px rgba(110,160,255,.22)}
.euler-xmas-sky .x-shoot--far b::before,.euler-xmas-sky .x-shoot--far b::after{width:18px;margin-left:-9px}
.euler-xmas-sky .x-shoot.is-run{animation:euler-xmas-shoot 1.35s cubic-bezier(.3,.1,.35,1) both}
.euler-xmas-sky .x-shoot.is-run i{animation:euler-xmas-tail 1.35s cubic-bezier(.3,.1,.35,1) both}
.euler-xmas-sky .x-shoot.is-run b{animation:euler-xmas-head 1.35s ease-out both}
@keyframes euler-xmas-shoot{0%{opacity:0;transform:rotate(var(--ang)) translateX(0)}12%{opacity:1}72%{opacity:1}100%{opacity:0;transform:rotate(var(--ang)) translateX(calc(var(--dist,300px) * -1))}}
@keyframes euler-xmas-tail{0%{transform:scaleX(.08)}45%{transform:scaleX(1)}100%{transform:scaleX(.25)}}
@keyframes euler-xmas-head{0%{transform:scale(.4)}20%{transform:scale(1)}82%{transform:scale(1.15)}100%{transform:scale(.3)}}
.euler-xmas-owl{position:absolute;right:3%;bottom:clamp(26px,5vh,56px);width:min(35%,340px,40vh);z-index:1}
/* Escudo animado original: en escritorio amplio sube sobre el búho (antes centrado en vertical, quedaba detrás). Solo se cambia la posición del contenedor; su animación interna no se toca. */
@media (min-width:1310px){html.euler-xmas.xm-c .auth__aside>.auth__shield{top:clamp(64px,10vh,150px);right:calc(3% + min(35%,340px,40vh) / 2 - min(28%,290px,30vh) / 2);width:min(28%,290px,30vh);transform:none}}
.euler-xmas-owl>img.x-buho{width:100%}
.euler-xmas-owl .x-baston{position:absolute;left:-12%;bottom:-4%;width:30%}
.euler-xmas-owl .x-gift{position:absolute;right:-16%;bottom:-5%;width:44%}
.euler-xmas-owl .x-bulb{position:absolute;left:83.5%;top:20%;width:34%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;mix-blend-mode:screen;
  background:radial-gradient(circle,rgba(255,240,150,.8),rgba(255,214,80,.25) 40%,rgba(255,214,80,0) 68%);animation:euler-xmas-pulse 3.4s ease-in-out infinite}
@keyframes euler-xmas-pulse{0%,100%{opacity:.35}50%{opacity:1}}
/* Centelleo de estrellas del cielo (v3.28.0): halos suaves sobre estrellas reales del fondo; solo varía la opacidad.
   Iluminación base 0 = el fondo tal cual; en pausa o con movimiento reducido la capa no se muestra y queda el cielo original. */
.euler-xmas-sky .x-stars{position:absolute;pointer-events:none;--k:1}
.euler-xmas-sky .x-star{position:absolute;width:calc(14px * var(--k));height:calc(14px * var(--k));min-width:7px;min-height:7px;border-radius:50%;
  transform:translate(-50%,-50%);opacity:0;background:radial-gradient(closest-side,rgba(255,255,255,.95),rgba(205,225,255,.55) 32%,rgba(150,185,255,.14) 62%,rgba(150,185,255,0));
  animation:euler-xmas-star 5s ease-in-out infinite;will-change:opacity}
.euler-xmas-sky .x-star--big{width:calc(30px * var(--k));height:calc(30px * var(--k));min-width:13px;min-height:13px;
  background:linear-gradient(90deg,rgba(220,235,255,0) 6%,rgba(235,244,255,.75) 50%,rgba(220,235,255,0) 94%) center/100% 1.5px no-repeat,
    linear-gradient(0deg,rgba(220,235,255,0) 6%,rgba(235,244,255,.75) 50%,rgba(220,235,255,0) 94%) center/1.5px 100% no-repeat,
    radial-gradient(closest-side,rgba(255,255,255,.95),rgba(205,225,255,.5) 22%,rgba(150,185,255,.12) 48%,rgba(150,185,255,0))}
@keyframes euler-xmas-star{0%,100%{opacity:0}38%{opacity:.18}52%{opacity:.62}64%{opacity:.3}}
html.euler-xmas-frozen .euler-xmas-sky .x-stars,.euler-xmas-sky.is-off .x-stars{display:none}
@media (prefers-reduced-motion:reduce){.euler-xmas-sky .x-stars{display:none}}
@media (max-width:1280px){html.euler-xmas.xm-c .auth__aside{padding-bottom:200px}.euler-xmas-owl{width:clamp(120px,24%,180px)}}
html.euler-xmas.xm-c .auth__panel{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(160deg,#f4f8fe 0%,#e7f0fc 55%,#eef4fd 100%)}
html.euler-xmas.xm-c .auth__panel>.euler-xmas-layer{position:absolute;inset:0;z-index:0}
html.euler-xmas.xm-c .auth__card{position:relative;z-index:1;max-width:546px;border-radius:32px;padding:clamp(24px,3vw,40px) clamp(20px,3.3vw,58px) clamp(26px,3vw,42px);
  background:rgba(248,251,255,.78);border:1px solid rgba(255,255,255,.95);box-shadow:0 34px 80px -40px rgba(28,60,150,.42),0 1px 0 rgba(255,255,255,.9) inset}
.euler-xmas-panel .x-fr-tl{position:absolute;left:0;top:0;width:clamp(110px,calc((100% - 546px) / 2 + 24px),230px);opacity:.45}
.euler-xmas-panel .x-fr-br{position:absolute;right:0;bottom:0;width:clamp(120px,13vw,230px);opacity:.4;transform:scale(-1,-1)}
/* Guirnalda de pino con tres esferas (referencia 03): ancho proporcional al panel claro; el desplazamiento en % del propio
   recurso recorta las ramas por arriba y por la derecha como en la referencia y deja las esferas completas. */
html.euler-xmas.xm-c .auth__panel>.euler-xmas-pino{position:absolute;z-index:2;right:0;top:0;width:39.9%;aspect-ratio:1280/1229;transform:translate(11.1%,-13.1%);pointer-events:none}
.euler-xmas-pino .x-pino-base{position:absolute;inset:0;width:100%;height:100%;max-width:none;display:block;filter:drop-shadow(3px 6px 7px rgba(40,80,160,.2))}
.euler-xmas-pino span{position:absolute;border-radius:50%;transform:translate(-50%,-50%);aspect-ratio:1;animation-timing-function:ease-in-out;animation-iteration-count:infinite}
.euler-xmas-pino .x-pino-halo{width:6.5%;background:radial-gradient(closest-side,rgba(255,214,140,.6),rgba(255,176,70,.3) 40%,rgba(255,150,50,.08) 70%,rgba(255,140,40,0));animation-name:xnHalo;opacity:.25}
.euler-xmas-pino .x-pino-nucleo{width:2%;background:radial-gradient(closest-side,rgba(255,252,235,1),rgba(255,226,150,.8) 45%,rgba(255,190,90,0));animation-name:xnNucleo;opacity:.35}
html.euler-xmas-frozen .euler-xmas-pino span{animation:none!important;opacity:.45}
@media (prefers-reduced-motion:reduce){.euler-xmas-pino span{animation:none!important;opacity:.45}}
.euler-xmas-panel .x-baston{position:absolute;right:clamp(4px,1vw,20px);bottom:clamp(6px,2vh,28px);width:clamp(84px,7.4vw,140px)}
.euler-xmas-panel .x-owlmini{display:none}
/* Marca del panel oscuro (referencia 03): escudo, separador vertical, nombre y subtítulo con más presencia. */
html.euler-xmas.xm-c .auth__brand{gap:18px}
html.euler-xmas.xm-c .auth__brand img{width:64px}
html.euler-xmas.xm-c .auth__brand>div{padding-left:18px;border-left:1px solid rgba(255,255,255,.42)}
html.euler-xmas.xm-c .auth__brand strong{font-size:1.62rem;font-weight:700;line-height:1.15;letter-spacing:-.01em;color:#fff}
html.euler-xmas.xm-c .auth__brand small{display:block;margin-top:6px;font-size:.8rem;letter-spacing:.16em;color:#d3ddf5}
/* Tarjeta de acceso (referencia 03). Solo color, tamaño y espaciado; formulario, enlaces y animaciones originales intactos. */
html.euler-xmas.xm-c .auth__card .le-crest{margin-bottom:6px}
html.euler-xmas.xm-c .auth__card .le-crest__halo{width:118%;background:radial-gradient(circle,#fff 0 60%,rgba(255,255,255,.75) 64%,rgba(219,232,252,.5) 68%,rgba(219,232,252,0) 72%);filter:none;box-shadow:none}
html.euler-xmas.xm-c .auth__card .le-crest__logo{height:clamp(120px,19vh,178px)}
html.euler-xmas.xm-c .auth__card h2{font-size:clamp(1.75rem,2.1vw,2.15rem);font-weight:800;letter-spacing:-.02em;line-height:1.15;margin:0 0 6px;
  background-image:linear-gradient(100deg,#0f2585,#1b3fc6 55%,#0f2585)}
html.euler-xmas.xm-c .auth__card .sub{color:#1d3f99;font-size:1rem;line-height:1.45;margin-bottom:22px}
html.euler-xmas.xm-c .auth__card .auth__switch{background:#e2ebf8;border-radius:12px;padding:4px;margin-bottom:22px}
html.euler-xmas.xm-c .auth__card .auth__switch a{padding:10px;font-size:.95rem;color:#24407f}
html.euler-xmas.xm-c .auth__card .auth__switch a.on{background:#fff;color:#1c3fd6;font-weight:700;box-shadow:0 6px 16px -8px rgba(28,63,150,.35)}
html.euler-xmas.xm-c .auth__card .field label{color:#1838b8;font-weight:700;font-size:.95rem}
html.euler-xmas.xm-c .auth__card .field input{background:#dfe9fa;border-color:transparent;border-radius:10px;min-height:44px}
html.euler-xmas.xm-c .auth__card .field input:focus{background:#fff;border-color:#35a7e0}
html.euler-xmas.xm-c .auth__card .btn--primary{background:linear-gradient(90deg,#0a2a8e 0%,#1450d6 52%,#1fb2f3 100%);border-radius:10px;min-height:50px;font-size:1.05rem;font-weight:600}
html.euler-xmas.xm-c .auth__card .auth__foot{text-align:center;color:#1d3f99;font-size:.95rem;line-height:1.6;margin-top:22px}
html.euler-xmas.xm-c .auth__card .auth__foot a{color:#1238d8;font-weight:700}
@media (max-width:900px){
  html.euler-xmas.xm-c .auth__panel{padding-bottom:128px}
  .euler-xmas-panel .x-owlmini{display:block;position:absolute;left:12px;bottom:10px;width:92px}
  .euler-xmas-panel .x-owlmini img{width:100%}
  html.euler-xmas.xm-c .auth__panel>.euler-xmas-pino{width:clamp(130px,30%,220px)}
}

/* Portal de maestros · tablet (768–820 px) y móvil (<768 px), v3.33.0. Solo ≤820 px; por encima nada cambia.
   .auth__aside y .auth__panel pasan a display:contents: marca, frase, escudo animado, tarjeta, tarjetas informativas y
   escena quedan en una sola rejilla sobre el cielo nocturno (que se traslada a .auth). Las capas existentes (cielo con
   estrellas y fugaces, guirnalda con sus luces, escarcha) se reposicionan; no se crean copias. */
.euler-xmas-mscene{display:none}
@media (max-width:820.98px){
  html.euler-xmas.xm-c .auth{--px:clamp(16px,5vw,40px);--g:clamp(70px,13vw,112px);--plant:calc(var(--g) * .46);--ow:clamp(150px,42vw,200px);
    position:relative;isolation:isolate;min-height:100vh;min-height:100svh;background:#040b29 url(../navidad/cielo-nocturno.webp) center/cover no-repeat;
    grid-template-columns:minmax(0,1fr) auto clamp(96px,17vw,176px);grid-template-rows:auto auto auto 1fr var(--plant);
    column-gap:clamp(10px,2.4vw,22px);padding:clamp(18px,3.4vw,30px) var(--px) 0;align-items:start;overflow-x:clip}
  html.euler-xmas.xm-c .auth__aside{display:contents}
  html.euler-xmas.xm-c .auth__aside>.euler-xmas-layer{z-index:0}
  html.euler-xmas.xm-c .auth__panel{display:contents}
  html.euler-xmas.xm-c .auth__panel::before{display:none}
  .euler-xmas-sky>.x-snow,.euler-xmas-panel .x-baston,.euler-xmas-panel .x-owlmini,.euler-xmas-panel .x-fr-br{display:none!important}
  .euler-xmas-panel .x-fr-tl{width:clamp(90px,19vw,160px);opacity:.3}
  html.euler-xmas.xm-c .auth__brand{grid-column:1/3;grid-row:1;gap:12px;align-self:start}
  html.euler-xmas.xm-c .auth__brand img{width:clamp(40px,7vw,56px)}
  html.euler-xmas.xm-c .auth__brand>div{padding-left:12px}
  html.euler-xmas.xm-c .auth__brand strong{font-size:clamp(1.1rem,3.4vw,1.5rem)}
  html.euler-xmas.xm-c .auth__brand small{font-size:clamp(.6rem,1.6vw,.74rem);margin-top:3px;letter-spacing:.14em}
  html.euler-xmas.xm-c .auth__hero{grid-column:1;grid-row:2;max-width:none;align-self:center;margin:clamp(14px,3vw,26px) 0}
  html.euler-xmas.xm-c .auth__hero h1{max-width:none;margin:0;font-size:clamp(1.3rem,3.2vw,1.75rem);line-height:1.15;text-wrap:balance}
  html.euler-xmas.xm-c .auth__hero p{display:none}
  html.euler-xmas.xm-c .auth__aside>.auth__shield{position:relative;grid-column:2;grid-row:1/3;align-self:end;justify-self:center;top:auto;right:auto;transform:none;
    width:clamp(76px,17vw,136px);margin:0 0 clamp(6px,1.6vw,14px)}
  html.euler-xmas.xm-c .auth__panel>.euler-xmas-pino{width:clamp(150px,31vw,250px);right:0;top:0}
  html.euler-xmas.xm-c .auth__card{grid-column:1/-1;grid-row:3;justify-self:center;width:100%;max-width:560px;isolation:isolate;
    padding:clamp(20px,3.6vw,30px) clamp(16px,4.6vw,42px) clamp(20px,3.4vw,28px);border-radius:clamp(22px,3.4vw,30px);
    background:linear-gradient(172deg,rgba(240,246,255,.97) 0%,rgba(222,234,252,.96) 60%,rgba(232,241,255,.97) 100%);
    border:1px solid rgba(255,255,255,.95);box-shadow:0 0 0 1px rgba(160,200,255,.35),0 0 46px -6px rgba(110,170,255,.55),0 30px 70px -30px rgba(0,0,0,.6)}
  html.euler-xmas.xm-c .auth__card::before,html.euler-xmas.xm-c .auth__card::after{content:"";position:absolute;z-index:-1;top:0;width:clamp(70px,22%,130px);aspect-ratio:760/658;
    background:url(../navidad/escarcha-esquina.webp) left top/contain no-repeat;opacity:.5;pointer-events:none;border-top-left-radius:inherit}
  html.euler-xmas.xm-c .auth__card::before{left:0}
  html.euler-xmas.xm-c .auth__card::after{right:0;transform:scaleX(-1)}
  html.euler-xmas.xm-c .auth__card .le-crest__logo{height:clamp(84px,14vw,120px)}
  html.euler-xmas.xm-c .auth__card h2{font-size:clamp(1.45rem,4.4vw,1.95rem)}
  html.euler-xmas.xm-c .auth__card .sub{font-size:clamp(.86rem,2.2vw,1rem);margin-bottom:16px}
  html.euler-xmas.xm-c .auth__card .auth__switch{margin-bottom:16px}
  html.euler-xmas.xm-c .auth__card .auth__switch a{font-size:clamp(.8rem,2.1vw,.95rem);padding:9px 6px}
  html.euler-xmas.xm-c .auth__card .field input{background:#fff;border:1px solid #c9daf5}
  html.euler-xmas.xm-c .auth__card .auth__foot{margin-top:16px;font-size:clamp(.8rem,2vw,.92rem)}
  html.euler-xmas.xm-c .auth__feats{grid-column:1/-1;grid-row:4;align-self:end;max-width:none;width:auto;margin-right:calc(var(--ow) * 1.32 + 2%) !important;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:22px 0 0;position:relative;z-index:2}
  html.euler-xmas.xm-c .auth__feat{background:rgba(10,26,78,.72);border:1px solid rgba(143,208,242,.38);align-items:center;padding:12px}
  .euler-xmas-mscene{display:block;position:relative;grid-column:1/-1;grid-row:4/6;align-self:end;margin:0 calc(var(--px) * -1);height:calc(var(--plant) + var(--ow) * 1.2056);pointer-events:none;z-index:1}
  .euler-xmas-mscene>.x-suelo{position:absolute;left:0;right:0;bottom:0;height:var(--g);background:url(../navidad/nieve-inferior.webp) center top/cover no-repeat}
  .euler-xmas-mscene>.x-sombra{position:absolute;right:calc(var(--px) + var(--ow) * .1);width:calc(var(--ow) * .8);bottom:calc(var(--plant) - var(--g) * .08);height:calc(var(--g) * .16);border-radius:50%;
    background:radial-gradient(closest-side,rgba(40,64,128,.36),rgba(40,64,128,.12) 60%,rgba(40,64,128,0))}
  .euler-xmas-mscene .euler-xmas-owl{right:calc(var(--px) + 2%);bottom:var(--plant);width:var(--ow)}
  .euler-xmas-mscene .euler-xmas-owl .x-baston{left:auto;right:-17%;bottom:-1.5%;width:36%;z-index:1}
  .euler-xmas-mscene .euler-xmas-owl .x-gift{right:auto;left:-30%;bottom:-2%;width:58%;z-index:1}
}
@media (max-width:767.98px){
  html.euler-xmas.xm-c .auth{grid-template-columns:minmax(0,1fr) auto clamp(64px,22vw,150px);grid-template-rows:auto auto auto auto 1fr}
  html.euler-xmas.xm-c .auth__hero{margin:clamp(12px,4vw,20px) 0}
  html.euler-xmas.xm-c .auth__hero h1{font-size:clamp(1.2rem,5.4vw,1.7rem)}
  html.euler-xmas.xm-c .auth__feats{grid-column:1/-1;grid-row:4;align-self:start;gap:8px;margin-top:16px;margin-right:0 !important}
  html.euler-xmas.xm-c .auth__feat{padding:9px 10px;gap:8px}
  html.euler-xmas.xm-c .auth__feat svg{width:32px;height:32px;padding:7px}
  html.euler-xmas.xm-c .auth__feat b{font-size:clamp(.8rem,3.4vw,.9rem);line-height:1.2}
  html.euler-xmas.xm-c .auth__feat span{display:none}
  /* Móvil: la escena va pegada a las tarjetas. Si la pantalla es más alta que el contenido, el espacio sobrante se
     convierte en nieve bajo el búho (no en cielo vacío entre tarjetas y búho). */
  .euler-xmas-mscene{--oh:calc(var(--ow) * 1.2056);grid-row:5;align-self:stretch;height:auto;min-height:calc(var(--plant) + var(--oh));margin-top:-6px}
  .euler-xmas-mscene>.x-suelo{top:calc(var(--oh) - var(--g) * .54);height:auto;background-size:max(100%,calc(var(--g) * 8)) auto}
  .euler-xmas-mscene>.x-suelo::after{content:"";position:absolute;left:0;right:0;top:calc(var(--g) - 1px);bottom:0;background:linear-gradient(rgb(119,163,218),rgb(150,186,232) 90px,rgb(186,210,242))}
  .euler-xmas-mscene>.x-sombra{right:auto;left:calc(50% - var(--ow) * .4);bottom:auto;top:calc(var(--oh) - var(--g) * .08)}
  .euler-xmas-mscene .euler-xmas-owl{right:auto;left:calc(50% - var(--ow) * .5);bottom:auto;top:0}
}


/* ======================= D. PORTAL DE ESTUDIANTES ======================= */
/* Medidas tomadas de la referencia aprobada del portal de estudiantes (1672×941) y llevadas a vw para que a cualquier ancho de escritorio
   se mantenga la proporción: información 7,1–38,3 %, árbol 38,3–58,9 %, formulario 58,9–89,1 %. */
html.euler-xmas.xm-d .pt-auth{background:#0a1946 radial-gradient(1300px 760px at 46% 34%,#132b6c 0%,#0c1d50 52%,#08133a 100%)}
.euler-xmas-pt{position:absolute;inset:0;z-index:1;overflow:hidden}
.euler-xmas-pt .x-snow{position:absolute;left:0;right:0;bottom:0;height:clamp(56px,9vw,200px);background:url(../navidad/nieve-inferior.webp) center top/cover no-repeat}
.euler-xmas-pt .x-muneco{position:absolute;left:2.4%;bottom:6.5%;width:clamp(64px,8.65vw,190px)}
.euler-xmas-pt .x-baston{position:absolute;right:1.6%;bottom:8.6%;width:clamp(64px,8.65vw,190px)}
.euler-xmas-pt .x-copo{position:absolute;width:var(--s);opacity:.7}
html.euler-xmas.xm-d .pt-auth>.container{z-index:2}
/* Cielo estrellado + lluvia de estrellas (lienzo detrás del contenido; las zonas del diseño se recortan con máscara). */
.euler-xmas-pt .x-cielo{position:absolute;left:0;top:0;pointer-events:none}
/* Rótulo navideño «LICEO EULER»: base gráfica fiel a la referencia + capas de luz en sus mismas coordenadas.
   aspect-ratio reserva el espacio desde el primer render (sin saltos al cargar). */
html.euler-xmas.xm-d .pt-auth__mark{display:none!important}
.euler-xmas-name{position:relative;display:block;width:min(100%,620px);aspect-ratio:620/162;margin:0 0 clamp(8px,1.4vw,26px);pointer-events:none;user-select:none}
.euler-xmas-name .xn-base{position:absolute;inset:0;width:100%;height:100%;max-width:none;display:block}
.euler-xmas-name .xn-luces{position:absolute;inset:0}
.euler-xmas-name .xn-luces span{position:absolute;border-radius:50%;transform:translate(-50%,-50%);animation-name:xnLuz;animation-timing-function:ease-in-out;animation-iteration-count:infinite;opacity:.18}
.euler-xmas-name .xn-halo{width:6.4%;aspect-ratio:1;background:radial-gradient(closest-side,rgba(255,214,140,.55),rgba(255,170,70,.28) 40%,rgba(255,150,50,.08) 70%,rgba(255,140,40,0));animation-name:xnHalo!important}
.euler-xmas-name .xn-nucleo{width:1.7%;aspect-ratio:1;background:radial-gradient(closest-side,rgba(255,252,235,1),rgba(255,226,150,.85) 45%,rgba(255,190,90,0));animation-name:xnNucleo!important}
.euler-xmas-name .xn-destello{width:1.3%;aspect-ratio:1;background:radial-gradient(closest-side,rgba(255,255,255,.95),rgba(255,255,255,.35) 40%,rgba(255,255,255,0));animation-name:xnDestello!important}
@keyframes xnLuz{0%,100%{opacity:.18}50%{opacity:.7}}
@keyframes xnHalo{0%,100%{opacity:.25}35%{opacity:.95}50%{opacity:.75}65%{opacity:.9}}
@keyframes xnNucleo{0%,100%{opacity:.35}35%{opacity:1}50%{opacity:.8}65%{opacity:.95}}
@keyframes xnDestello{0%,82%,100%{opacity:0}91%{opacity:.85}}
html.euler-xmas-frozen .euler-xmas-name .xn-luces span{animation:none!important;opacity:.45}html.euler-xmas-frozen .euler-xmas-name .xn-luces .xn-destello{opacity:0}
@media (prefers-reduced-motion:reduce){.euler-xmas-name .xn-luces span{animation:none!important;opacity:.45}.euler-xmas-name .xn-luces .xn-destello{opacity:0}}
/* Escritorio: la columna informativa arranca a la altura del rótulo de la referencia (gorro al 13,5 % del alto) en lugar de centrarse. */
@media (min-width:1100px){html.euler-xmas.xm-d .euler-xmas-name{width:37.08vw;max-width:none;margin:0 0 1.35vw -1.6vw}
  html.euler-xmas.xm-d .pt-auth__intro{align-self:start;margin-top:min(2.9vw,5.2svh)}}
.euler-xmas-tree{position:relative;z-index:1;pointer-events:none}
.euler-xmas-tree>img{width:100%}
.euler-xmas-tree .euler-xmas-glint{--s:clamp(8px,1vw,14px)}
/* Alumbrado del árbol: capa con la proporción exacta de arbol-regalos.webp (720×1362) anclada a la esquina de la imagen. */
.euler-xmas-tree .x-luces{position:absolute;left:0;top:0;width:100%;aspect-ratio:720/1362;pointer-events:none}
.euler-xmas-tree .x-luces span{position:absolute;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;opacity:0}
/* Bombilla: núcleo blanco cálido + halo dorado localizado en una sola capa. La opacidad la anima el ciclo de 24 s. */
.euler-xmas-tree .x-bombilla{background:radial-gradient(closest-side,#fffaf0 0,rgba(255,244,214,.95) 11%,rgba(255,226,160,.78) 21%,rgba(255,194,92,.42) 40%,rgba(255,168,62,.13) 68%,rgba(255,150,50,0))}
.euler-xmas-tree .x-destello{border-radius:0;background:
  linear-gradient(90deg,rgba(255,240,205,0),rgba(255,246,222,.95) 50%,rgba(255,240,205,0)) center/100% 5% no-repeat,
  linear-gradient(0deg,rgba(255,240,205,0),rgba(255,246,222,.95) 50%,rgba(255,240,205,0)) center/5% 100% no-repeat,
  radial-gradient(closest-side,rgba(255,250,232,.9),rgba(255,214,140,.25) 22%,rgba(255,200,120,0) 40%)}
.euler-xmas-tree .x-estrella{background:radial-gradient(closest-side,rgba(255,228,165,.5),rgba(255,206,120,.2) 42%,rgba(255,196,110,.06) 72%,rgba(255,190,100,0))}
.euler-xmas-tree .x-luces .x-estrella-luz{position:absolute;overflow:hidden;aspect-ratio:auto;transform:none;border-radius:0;opacity:0;pointer-events:none}
.euler-xmas-tree .x-estrella-luz img{position:absolute;max-width:none;height:auto;filter:brightness(1.45) saturate(1.08)}
.euler-xmas-tree .x-luces.is-run>span{animation:var(--an) 24s linear infinite}
.euler-xmas-tree .x-luces.is-idle>span,html.euler-xmas-hidden .euler-xmas-tree .x-luces>span{animation-play-state:paused}
html.euler-xmas-frozen .euler-xmas-tree .x-luces>span{animation:none}
.euler-xmas-lazo{position:absolute;top:-3.5vw;right:-3.9vw;width:clamp(130px,15.8vw,320px);z-index:3}

/* Escritorio: tres zonas. Antes la causa de la compresión era .container (ancho máximo del sitio) + una columna de
   formulario fija de 440px: la columna informativa quedaba en ~330px y las tarjetas apilaban palabras. */
@media (min-width:1100px){
  html.euler-xmas.xm-d .pt-auth{padding:0}
  html.euler-xmas.xm-d .pt-auth>.container.pt-auth__grid{max-width:none;width:100%;margin:0;padding:clamp(16px,2vw,40px) 10.9vw clamp(24px,4vw,80px) 7.1vw;
    grid-template-columns:minmax(0,1fr) 20.6vw 30.2vw;gap:0;align-items:center}
  html.euler-xmas.xm-d .pt-auth__intro{padding-right:1.2vw}
  html.euler-xmas.xm-d .pt-auth__intro h1{font-size:clamp(2.6rem,3.72vw,4.6rem);line-height:1.08;margin:.1em 0 .16em}
  html.euler-xmas.xm-d .pt-auth__intro>p{max-width:none;font-size:clamp(1.05rem,1.26vw,1.55rem);line-height:1.45;color:#dfe7fb}
  html.euler-xmas.xm-d .pt-auth__cards{max-width:none;gap:clamp(10px,.85vw,16px);margin-top:clamp(18px,1.9vw,38px)}
  html.euler-xmas.xm-d .pt-auth__card{min-height:clamp(84px,5.8vw,116px);padding:clamp(12px,1vw,20px) clamp(14px,1.3vw,26px);gap:clamp(12px,1.15vw,22px);border-radius:clamp(14px,1.1vw,20px)}
  html.euler-xmas.xm-d .pt-auth__card>svg:first-child{width:clamp(46px,3.5vw,68px);height:clamp(46px,3.5vw,68px);padding:clamp(11px,.85vw,16px);border-radius:clamp(12px,1vw,18px)}
  html.euler-xmas.xm-d .pt-auth__card strong{font-size:clamp(1.08rem,1.36vw,1.62rem);font-weight:600}
  html.euler-xmas.xm-d .pt-auth__card small{font-size:clamp(.86rem,.98vw,1.2rem);color:#c3d1f1}
  html.euler-xmas.xm-d .pt-auth__card .go{width:clamp(18px,1.3vw,24px);height:clamp(18px,1.3vw,24px)}
  .euler-xmas-tree{align-self:end;margin:0 0 .9vw}
  html.euler-xmas.xm-d .pt-login{min-height:min(46.6vw,calc(100svh - 90px));padding:2.1vw 2.75vw 1.9vw;display:flex;flex-direction:column}
  html.euler-xmas.xm-d .pt-login>.pt-help{margin-top:auto}
  html.euler-xmas.xm-d .pt-login .le-crest__logo{height:clamp(120px,9.8vw,195px)}
  html.euler-xmas.xm-d .pt-login h2{font-size:clamp(1.7rem,2.05vw,2.5rem)}
  html.euler-xmas.xm-d .pt-login .pt-sub{font-size:clamp(1rem,1.3vw,1.6rem);margin:2px 0 clamp(16px,1.7vw,34px)}
  html.euler-xmas.xm-d .pt-login .field{margin-bottom:clamp(12px,1.2vw,24px)}
  html.euler-xmas.xm-d .pt-login .field label{font-size:clamp(.92rem,1.08vw,1.3rem);margin-bottom:clamp(7px,.7vw,13px)}
  html.euler-xmas.xm-d .pt-login .field input{min-height:clamp(48px,3.3vw,64px);font-size:clamp(1rem,1.2vw,1.4rem);padding:0 clamp(16px,1.3vw,24px)}
  html.euler-xmas.xm-d .pt-login .pt-hint{font-size:clamp(.8rem,.92vw,1.08rem);margin-top:clamp(6px,.7vw,12px)}
  html.euler-xmas.xm-d .pt-login form>.btn--primary{min-height:clamp(52px,3.9vw,76px);font-size:clamp(1.05rem,1.3vw,1.55rem)}
  html.euler-xmas.xm-d .pt-login .pt-help{padding-top:clamp(16px,1.6vw,30px)}
  html.euler-xmas.xm-d .pt-login .pt-help summary{font-size:clamp(1rem,1.3vw,1.55rem)}
}
/* Apariencia de la tarjeta de acceso (todas las anchuras): blanco azulado, borde claro, esquinas amplias y sombra profunda. */
html.euler-xmas.xm-d .pt-login{border:3px solid transparent;border-radius:clamp(24px,2.1vw,40px);
  background:linear-gradient(170deg,#f1f6fe,#e5edfb) padding-box,linear-gradient(160deg,#ffffff,#c9dbf8 60%,#eef4ff) border-box;
  box-shadow:0 40px 90px -36px rgba(0,0,0,.6),0 0 0 1px rgba(150,182,240,.35)}
html.euler-xmas.xm-d .pt-login h2{color:#0f2585;font-weight:700}
html.euler-xmas.xm-d .pt-login .pt-sub{color:#6e85c2}
html.euler-xmas.xm-d .pt-login .field label{color:#1b3fd6;font-weight:600}
html.euler-xmas.xm-d .pt-login .field input{background:#dbe7fb;border-color:transparent;border-radius:14px}
html.euler-xmas.xm-d .pt-login .field input:focus{background:#fff;border-color:#35a7e0}
html.euler-xmas.xm-d .pt-login .pt-hint{color:#4a63a8}
html.euler-xmas.xm-d .pt-login form>.btn--primary{border-radius:999px;background:linear-gradient(90deg,#0b3aa8 0%,#1c66e6 50%,#29b8f6 100%)}
html.euler-xmas.xm-d .pt-login .pt-help{border-top-color:#d3def2}
html.euler-xmas.xm-d .pt-login .pt-help summary{color:#1b3fd6}

/* Tablet (900–1099): dos columnas originales; árbol compacto entre información y formulario no cabe, va al pie de la información. */
@media (max-width:1099.98px){
  .euler-xmas-tree{grid-column:1/-1;order:3;justify-self:center;width:clamp(104px,15vw,150px);margin:4px 0 -14px}
  .euler-xmas-pt .x-copo--b{display:none}
}
@media (max-width:900px){.euler-xmas-lazo{width:118px;right:-14px;top:-24px}}

/* Portal de estudiantes · tablet y móvil (v3.32.0). Solo ≤1024 px; por encima nada cambia.
   La información (.pt-auth__intro) pasa a display:contents para que el rótulo ocupe su propia fila centrada y el resto se
   coloque en la rejilla. La escena (.euler-xmas-scene) es un elemento de la rejilla con altura reservada: árbol, muñeco y
   bastón se apoyan en la misma nieve (--plant), con sombras de contacto. Los recursos están recortados al contenido
   (base del árbol 1357/1362, muñeco 513/515, bastón 408/422 px), así que el borde inferior es el apoyo real. */
.euler-xmas-scene{display:contents}
html.euler-xmas.xm-d .euler-xmas-scene>span,html.euler-xmas.xm-d .euler-xmas-scene>img{display:none}
@media (max-width:1024px){
  html.euler-xmas.xm-d .pt-auth{padding-bottom:0;min-height:0}
  html.euler-xmas.xm-d .pt-auth>.container.pt-auth__grid{--g:clamp(96px,13vw,140px);--tw:clamp(150px,21vw,216px);--mw:clamp(96px,13vw,134px);--cw:clamp(100px,13.5vw,138px);--plant:calc(var(--g) * .5);
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto auto auto auto auto 1fr calc(var(--plant) + var(--cw) * .9 + 14px);
    column-gap:clamp(24px,4vw,48px);row-gap:0;align-items:start;padding-bottom:0}
  html.euler-xmas.xm-d .pt-auth__intro{display:contents}
  html.euler-xmas.xm-d .euler-xmas-pt>.x-snow,html.euler-xmas.xm-d .euler-xmas-pt>img.x-muneco,html.euler-xmas.xm-d .euler-xmas-pt>img.x-baston{display:none}
  html.euler-xmas.xm-d .euler-xmas-name{grid-column:1/-1;grid-row:1;justify-self:center;width:min(56%,500px);margin:0 0 clamp(20px,3.6vw,40px)}
  html.euler-xmas.xm-d .pt-auth__intro>.eyebrow{grid-column:1;grid-row:2;justify-self:start}
  html.euler-xmas.xm-d .pt-auth__intro>h1{grid-column:1;grid-row:3;font-size:clamp(2.1rem,4.9vw,3.1rem);line-height:1.08;margin:.24em 0 .22em}
  html.euler-xmas.xm-d .pt-auth__intro>p{grid-column:1;grid-row:4;margin:0;max-width:46ch;font-size:clamp(1rem,1.75vw,1.14rem);line-height:1.5;color:#dfe7fb}
  html.euler-xmas.xm-d .pt-auth__cards{grid-column:1;grid-row:5;max-width:none;margin-top:clamp(20px,2.8vw,30px);gap:12px}
  html.euler-xmas.xm-d .pt-auth__card{min-height:72px;padding:12px 16px;gap:14px}
  html.euler-xmas.xm-d .pt-auth__card strong{font-size:clamp(1.02rem,1.9vw,1.2rem);font-weight:600;line-height:1.25}
  html.euler-xmas.xm-d .pt-auth__card small{display:none}
  html.euler-xmas.xm-d .pt-login{grid-column:2;grid-row:2/7;align-self:start;justify-self:end;width:100%;max-width:440px}
  .euler-xmas-scene{display:block;position:relative;grid-column:1/-1;grid-row:6/8;align-self:end;height:calc(var(--plant) + var(--tw) * 1.8917);pointer-events:none;z-index:0}
  html.euler-xmas.xm-d .euler-xmas-scene>span,html.euler-xmas.xm-d .euler-xmas-scene>img{display:block;position:absolute}
  .euler-xmas-scene>.x-suelo{left:50%;bottom:0;width:100vw;height:var(--g);transform:translateX(-50%);z-index:1;background:url(../navidad/nieve-inferior.webp) center top/cover no-repeat}
  .euler-xmas-scene>.x-sombra{z-index:2;height:calc(var(--g) * .16);bottom:calc(var(--plant) - var(--g) * .08);transform:translateX(-50%);border-radius:50%;
    background:radial-gradient(closest-side,rgba(40,64,128,.34),rgba(40,64,128,.12) 60%,rgba(40,64,128,0))}
  .euler-xmas-scene>.x-sombra--m{left:calc(2.5% + var(--mw) * .5);width:calc(var(--mw) * .95)}
  .euler-xmas-scene>.x-sombra--a{left:39%;width:calc(var(--tw) * 1.08)}
  .euler-xmas-scene>.x-sombra--b{right:auto;left:calc(97% - var(--cw) * .5);width:calc(var(--cw) * .9)}
  .euler-xmas-scene>.x-muneco-s{left:2.5%;bottom:var(--plant);width:var(--mw);z-index:3}
  .euler-xmas-scene>.x-baston-s{right:3%;bottom:calc(var(--plant) - var(--cw) * .029);width:var(--cw);z-index:3}
  .euler-xmas-scene>.euler-xmas-tree{position:absolute;left:39%;bottom:calc(var(--plant) - var(--tw) * .007);width:var(--tw);margin:0;transform:translateX(-50%);z-index:3}
}
@media (max-width:767.98px){
  html.euler-xmas.xm-d .pt-auth>.container.pt-auth__grid{--g:clamp(62px,17vw,84px);--tw:clamp(96px,29vw,126px);--mw:clamp(58px,17vw,84px);--cw:clamp(64px,19.5vw,94px);
    grid-template-columns:minmax(0,1fr);grid-template-rows:none}
  html.euler-xmas.xm-d .euler-xmas-name{width:min(84%,340px);margin-bottom:14px}
  html.euler-xmas.xm-d .pt-auth__intro>.eyebrow{grid-column:1;justify-self:center}
  html.euler-xmas.xm-d .pt-auth__intro>h1{grid-column:1;text-align:center;font-size:clamp(1.9rem,8.6vw,2.5rem);margin:.2em 0 .18em}
  html.euler-xmas.xm-d .pt-auth__intro>p{grid-column:1;justify-self:center;text-align:center;font-size:.96rem;max-width:40ch}
  html.euler-xmas.xm-d .pt-auth__cards{grid-column:1;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;margin-top:18px}
  html.euler-xmas.xm-d .pt-auth__card{min-height:54px;padding:9px 10px;gap:8px;border-radius:14px}
  html.euler-xmas.xm-d .pt-auth__card>svg:first-child{width:34px;height:34px;padding:8px;border-radius:10px}
  html.euler-xmas.xm-d .pt-auth__card strong{font-size:clamp(.9rem,3.7vw,1rem);line-height:1.2}
  html.euler-xmas.xm-d .pt-auth__intro>p,html.euler-xmas.xm-d.jt .pt-auth__intro>p[data-jl]{text-align:center!important;-webkit-hyphens:manual;hyphens:manual}
  html.euler-xmas.xm-d .pt-auth__card .go,html.euler-xmas.xm-d .pt-auth__card.is-on::after{display:none}
  html.euler-xmas.xm-d .pt-login{grid-column:1;grid-row:6;justify-self:center;max-width:460px;margin-top:20px}
  .euler-xmas-scene{grid-column:1;grid-row:7;margin-top:8px}
  .euler-xmas-scene>.x-sombra--a,.euler-xmas-scene>.euler-xmas-tree{left:50%}
  .euler-xmas-scene>.x-muneco-s{left:0}
  .euler-xmas-scene>.x-sombra--m{left:calc(var(--mw) * .5)}
  .euler-xmas-scene>.x-baston-s{right:0}
  .euler-xmas-scene>.x-sombra--b{left:calc(100% - var(--cw) * .5)}
}
@media (max-width:359.98px){
  html.euler-xmas.xm-d .pt-auth__card{padding:8px;gap:6px}
  html.euler-xmas.xm-d .pt-auth__card>svg:first-child{width:28px;height:28px;padding:6px;border-radius:9px}
}

html.euler-xmas.xm-d .wa-float{transition:opacity .25s ease,transform .25s ease}
html.euler-xmas.xm-d.euler-xmas-wa-off .wa-float{opacity:0;transform:scale(.85);pointer-events:none}

/* ======================= E. VIDA EN EL LICEO EULER ======================= */
html.euler-xmas.xm-e .vida__wrap{position:relative;z-index:1}
.euler-xmas-vida{position:absolute;inset:0;z-index:0;overflow:hidden}
.euler-xmas-vida .x-snow{position:absolute;left:0;right:0;bottom:0;height:clamp(54px,8vw,118px);opacity:.75;background:url(../navidad/nieve-inferior.webp) center top/max(100%,900px) 100% no-repeat}
.euler-xmas-vida .x-pl{position:absolute;left:0;top:0;width:clamp(112px,17.4vw,360px)}
.euler-xmas-vida .x-pr{position:absolute;right:0;top:0;width:clamp(118px,18vw,372px)}
.euler-xmas-vida .x-pueblo{position:absolute;left:clamp(6px,6.2vw,130px);bottom:clamp(12px,2.6vw,40px);width:clamp(104px,14.8vw,300px)}
.euler-xmas-vida .x-reno{position:absolute;right:clamp(6px,6.6vw,140px);bottom:clamp(12px,2.6vw,40px);width:clamp(92px,11.4vw,240px)}
.euler-xmas-vida .x-copo{position:absolute;width:var(--s);opacity:.4}
@media (max-width:700px){html.euler-xmas.xm-e .vida{padding-bottom:calc(clamp(56px,8vh,100px) + 64px)}}

/* ======================= F. ADMISIONES ABIERTAS (v3.34.0) ======================= */
/* Tarjeta azul noche con cielo, pinos, marca y escena en el flujo. Escritorio ≥1025 · tablet 768–1024 · móvil ≤767.
   La nieve es un <img> con 65 % superior transparente: se ancla por su superficie real (--surf) a --vis del borde. */
/* Sección a ancho completo (v3.34.1): el cielo ocupa toda la franja; el contenido se limita a 1240 px centrados. */
html.euler-xmas.xm-f .nx-cta-sec{padding:0;background:#020b23}
html.euler-xmas.xm-f .nx-cta-sec>.container{max-width:none;width:100%;padding:0;margin:0}
html.euler-xmas.xm-f .nx-cta>.nx-cta__edge{display:none}
html.euler-xmas.xm-f .nx-cta{--pw:clamp(170px,19vw,290px);--pl:calc(var(--pw) * .6);--pr:calc(var(--pw) * .46);--padt:clamp(30px,3vw,46px);--vis:clamp(46px,4.6vw,70px);--sink:7px;
  --ow:clamp(210px,18.5vw,280px);--or:calc(var(--gr) + 1%);--surf:.73;
  --gl:max(var(--pl),calc((100vw - 1240px) / 2));--gr:max(var(--pr),calc((100vw - 1240px) / 2));
  max-width:none;width:100%;display:grid;grid-template-columns:minmax(0,1fr) calc(var(--ow) * 1.25);grid-template-rows:auto var(--vis);column-gap:20px;
  padding:var(--padt) var(--gr) 0 var(--gl);text-align:left;border-radius:0;
  background:radial-gradient(110% 120% at 75% 80%,#123f78 0%,#061d43 50%,#020b23 100%);box-shadow:none}
html.euler-xmas.xm-f .nx-cta>.nx-cta__plus,html.euler-xmas.xm-f .nx-cta>.nx-cta__orb,html.euler-xmas.xm-f .nx-cta>.nx-cta__ring{display:none}
html.euler-xmas.xm-f .nx-cta>.euler-xmas-cta{position:absolute;inset:0;z-index:1;border-radius:inherit;overflow:hidden;pointer-events:none}
html.euler-xmas.xm-f .nx-cta>.nx-cta__in{grid-column:1;grid-row:1;align-self:center;z-index:5;padding:0 0 clamp(16px,1.8vw,26px)}
.euler-xmas-ctabrand{display:flex;align-items:center;gap:14px;margin:0 0 clamp(10px,1.2vw,18px);pointer-events:none}
.euler-xmas-ctabrand img{width:clamp(40px,3.6vw,54px);height:auto;filter:drop-shadow(0 6px 14px rgba(0,0,0,.35))}
.euler-xmas-ctabrand span{padding-left:14px;border-left:1px solid rgba(255,255,255,.5);font-weight:700;font-size:clamp(1.1rem,1.5vw,1.45rem);color:#fff;letter-spacing:-.01em}
html.euler-xmas.xm-f .nx-cta h2{margin:0 0 .4em;max-width:none;font-size:clamp(2rem,3.25vw,3.15rem);text-align:left}
html.euler-xmas.xm-f .nx-cta p,html.euler-xmas.xm-f.jt .nx-cta p[data-jl]{margin:0;max-width:54ch;color:#dbe5fb;font-size:clamp(1rem,1.3vw,1.18rem);text-align:left!important;text-align-last:auto!important;-webkit-hyphens:manual;hyphens:manual}
html.euler-xmas.xm-f .nx-cta__acts{justify-content:flex-start;margin-top:clamp(20px,2vw,28px)}
html.euler-xmas.xm-f .nx-cta .nx-btn--ghost{background:rgba(6,20,56,.35)}
/* Cielo */
.euler-xmas-cta .xc-sky{position:absolute;inset:0}
.euler-xmas-cta .xc-stars i{position:absolute;border-radius:50%;transform:translate(-50%,-50%);background:#fff;box-shadow:0 0 4px rgba(190,220,255,.8)}
.euler-xmas-cta .xc-stars i.xc-tw{animation:xcTw 4s ease-in-out infinite}
@keyframes xcTw{0%,100%{opacity:.18}50%{opacity:.95}}
/* Destello en sucesión: la estrella crece un poco, gana halo y vuelve a su brillo (clase puesta por el controlador). */
.euler-xmas-cta .xc-stars i.xc-flash{animation:xcFlash 1.6s ease-in-out both!important}
@keyframes xcFlash{0%,100%{opacity:var(--b,.5);transform:translate(-50%,-50%) scale(1);box-shadow:0 0 4px rgba(190,220,255,.8)}
  45%{opacity:1;transform:translate(-50%,-50%) scale(2.1);box-shadow:0 0 6px 2px #fff,0 0 14px 5px rgba(160,205,255,.55)}}
.euler-xmas-cta .xc-sym{position:absolute;color:#7fa6ee;opacity:.2;font:italic 400 clamp(1.6rem,2.6vw,2.6rem)/1 Georgia,serif;transform:translate(-50%,-50%)}
.euler-xmas-cta .xc-sym--p{font-style:normal;font-size:clamp(1.4rem,2vw,2rem);opacity:.18}
.euler-xmas-cta .xc-met{position:absolute;left:0;top:0;aspect-ratio:512/96;opacity:0;transform-origin:9.375% 50%;will-change:transform,opacity}
.euler-xmas-cta .xc-met img{display:block;width:100%;height:100%}
/* Pinos con luces en las coordenadas del recurso */
.euler-xmas-cta .xc-pino{position:absolute;top:0;width:var(--pw);aspect-ratio:1536/1024;z-index:2}
.euler-xmas-cta .xc-pino>img{width:100%;height:100%;filter:drop-shadow(0 8px 12px rgba(0,0,0,.35))}
.euler-xmas-cta .xc-pino--i{left:0;transform:translate(-7%,-9%)}
.euler-xmas-cta .xc-pino--d{right:0;transform:translate(5%,-9%)}
.euler-xmas-cta .xc-pino span{position:absolute;border-radius:50%;transform:translate(-50%,-50%);aspect-ratio:1;animation:xcLuz 4s ease-in-out infinite}
.euler-xmas-cta .xc-halo{width:9%;background:radial-gradient(closest-side,rgba(255,236,170,.85),rgba(255,193,75,.35) 38%,rgba(255,184,44,0));mix-blend-mode:screen}
.euler-xmas-cta .xc-nucleo{width:2.4%;background:radial-gradient(closest-side,#fffbe6,rgba(255,232,161,.8) 50%,rgba(255,200,90,0))}
.euler-xmas-cta .xc-g1{animation-name:xcLuzB!important}
@keyframes xcLuz{0%,100%{opacity:.2}50%{opacity:1}}
@keyframes xcLuzB{0%,100%{opacity:1}50%{opacity:.22}}
/* Escena: mismo suelo para búho, regalo, bastón, sombras y ramas */
.euler-xmas-ctascene{display:none}
html.euler-xmas.xm-f .euler-xmas-ctascene{display:block;position:relative;z-index:3;grid-column:1/-1;grid-row:1/3;align-self:end;height:calc(var(--vis) + var(--ow) * 1.2056);
  margin:0 calc(var(--gr) * -1) 0 calc(var(--gl) * -1);pointer-events:none}
.euler-xmas-ctascene>*{position:absolute}
.euler-xmas-ctascene .xc-suelo{left:50%;bottom:var(--vis);width:max(100%,900px);max-width:none;height:auto;transform:translate(-50%,calc((1 - var(--surf)) * 100%));z-index:1}
.euler-xmas-ctascene .xc-suelo--front{z-index:6}
.euler-xmas-ctascene .xc-sombra,.euler-xmas-ctascene .xc-refl{translate:0 var(--dyo,0px);z-index:7!important}
.euler-xmas-ctascene .xc-sombra{opacity:.75}
.euler-xmas-ctascene .xc-rama{bottom:calc(var(--vis) - 14px);width:clamp(84px,8.4vw,136px);opacity:.88;z-index:0}
.euler-xmas-ctascene .xc-rama--i{left:-8px}
.euler-xmas-ctascene .xc-rama--d{right:-8px;transform:scaleX(-1)}
.euler-xmas-ctascene .xc-owl{right:var(--or);bottom:calc(var(--vis) - var(--sink));width:var(--ow);z-index:3}
.euler-xmas-ctascene .xc-owl>img{display:block;width:100%;height:auto}
.euler-xmas-ctascene .xc-bulb{position:absolute;left:83.5%;top:20%;width:36%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;mix-blend-mode:screen;
  background:radial-gradient(closest-side,rgba(255,246,190,.85),rgba(255,214,90,.32) 42%,rgba(255,200,70,0));animation:xcBulb 4s ease-in-out infinite}
@keyframes xcBulb{0%,100%{opacity:.35}50%{opacity:1}}
.euler-xmas-ctascene .xc-refl{right:calc(var(--or) + var(--ow) * .165 - 46px);bottom:calc(var(--vis) - 20px);width:92px;height:26px;border-radius:50%;z-index:2;
  background:radial-gradient(closest-side,rgba(255,226,140,.55),rgba(255,210,110,0));animation:xcBulb 4s ease-in-out infinite}
.euler-xmas-ctascene .xc-sombra{right:calc(var(--or) + var(--ow) * .15);width:calc(var(--ow) * .7);bottom:calc(var(--vis) - var(--sink) - 9px);height:20px;border-radius:50%;z-index:2;
  background:radial-gradient(closest-side,rgba(20,40,100,.42),rgba(20,40,100,.14) 60%,rgba(20,40,100,0))}
.euler-xmas-ctascene .xc-gift{right:calc(var(--or) + var(--ow) * .5);width:calc(var(--ow) * .92);bottom:calc(var(--vis) - var(--sink) - var(--ow) * .92 * .0447);z-index:4}
.euler-xmas-ctascene .xc-cane{right:calc(var(--or) - var(--ow) * .42);width:calc(var(--ow) * .6);bottom:calc(var(--vis) - var(--sink) - var(--ow) * .6 * .073);z-index:4}
.euler-xmas-ctascene .xc-dest{width:18px;aspect-ratio:1;background:center/contain no-repeat;opacity:0;z-index:8;animation:xcDest 11s ease-in-out infinite;transform:translate(-50%,-50%)}
.euler-xmas-ctascene .xc-dest--a{right:calc(var(--or) + var(--ow) * .93);bottom:calc(var(--vis) + var(--ow) * .2)}
.euler-xmas-ctascene .xc-dest--b{left:34%;bottom:calc(var(--vis) - 10px);animation-duration:13s;animation-delay:-5s}
.euler-xmas-ctascene .xc-dest--c{left:12%;bottom:calc(var(--vis) - 18px);animation-duration:15s;animation-delay:-9s}
@keyframes xcDest{0%,86%,100%{opacity:0;transform:translate(-50%,-50%) scale(.5)}91%{opacity:.95;transform:translate(-50%,-50%) scale(1)}}
/* Tablet */
@media (max-width:1024px){
  html.euler-xmas.xm-f .nx-cta{--pw:clamp(140px,21vw,210px);--pl:clamp(64px,9vw,110px);--pr:clamp(28px,4vw,44px);--ow:clamp(180px,24vw,240px);--vis:clamp(40px,5vw,56px);--or:calc(var(--gr) + 2%);
    grid-template-columns:minmax(0,1fr) calc(var(--ow) * 1.05);padding-top:clamp(60px,9vw,92px)}
  html.euler-xmas.xm-f .nx-cta h2{font-size:clamp(1.8rem,4vw,2.5rem)}
  html.euler-xmas.xm-f .nx-cta__acts{gap:12px}
  html.euler-xmas.xm-f .nx-cta__acts .nx-btn{padding:.85em 1.35em;font-size:.96rem}
  html.euler-xmas.xm-f .nx-cta__acts .nx-btn--ghost{padding:calc(.85em - 1.5px) 1.3em}
  .euler-xmas-ctascene .xc-cane{right:calc(var(--or) - var(--ow) * .3);width:calc(var(--ow) * .52);bottom:calc(var(--vis) - var(--sink) - var(--ow) * .52 * .073)}
  /* Tablet: el regalo se apoya junto al pie izquierdo del búho; su parte visible (15–85 % del ancho) empieza a la derecha
     de los botones (≥16 px a 768, ≥40 px a 820, ≥130 px a 1024). */
  .euler-xmas-ctascene .xc-gift{right:calc(var(--or) + var(--ow) * .55);width:calc(var(--ow) * .6);bottom:calc(var(--vis) - var(--sink) - var(--ow) * .6 * .0447)}
}
/* Móvil: contenido centrado, botones apilados; escena compacta debajo */
@media (max-width:767.98px){
  /* Móvil: nieve a 640 px de ancho (sus dunas centrales varían ≈7 % de alto); --surf apunta a la cresta más alta y --sink
     hunde las bases lo que mide la duna más baja, así pies, regalo y bastón siempre pisan nieve visible. */
  html.euler-xmas.xm-f .nx-cta{--pw:clamp(96px,28vw,150px);--pl:clamp(18px,5vw,30px);--pr:var(--pl);--ow:clamp(150px,44vw,210px);--vis:clamp(34px,9vw,46px);--surf:.63;--sink:17px;
    grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto;padding-top:clamp(64px,19vw,96px);text-align:center;border-radius:0}
  html.euler-xmas.xm-f .nx-cta>.nx-cta__in{padding-bottom:8px}
  .euler-xmas-ctabrand{justify-content:center;position:absolute;left:50%;top:clamp(14px,4.5vw,24px);transform:translateX(-50%);margin:0;gap:10px}
  html.euler-xmas.xm-f .nx-cta>.nx-cta__in{position:static}
  .euler-xmas-ctabrand img{width:clamp(30px,8vw,40px)}
  .euler-xmas-ctabrand span{padding-left:10px;font-size:clamp(.95rem,4vw,1.1rem)}
  html.euler-xmas.xm-f .nx-cta h2,html.euler-xmas.xm-f .nx-cta p,html.euler-xmas.xm-f.jt .nx-cta p[data-jl]{text-align:center!important;text-align-last:center!important;margin-inline:auto}
  html.euler-xmas.xm-f .nx-cta h2{font-size:clamp(1.5rem,6.6vw,2rem)}
  html.euler-xmas.xm-f .nx-cta p{font-size:clamp(.94rem,3.9vw,1.02rem)}
  html.euler-xmas.xm-f .nx-cta__acts{flex-direction:column;align-items:stretch;gap:10px}
  html.euler-xmas.xm-f .nx-cta__acts .nx-btn{width:100%}
  html.euler-xmas.xm-f .euler-xmas-ctascene{grid-row:2;margin-top:4px}
  .euler-xmas-ctascene .xc-suelo{width:max(100%,640px)}
  .euler-xmas-cta .xc-sym{display:none}
  .euler-xmas-ctascene .xc-owl{right:auto;left:calc(50% - var(--ow) * .5)}
  .euler-xmas-ctascene .xc-gift{right:auto;left:calc(50% - var(--ow) * .5 - var(--ow) * .42);width:calc(var(--ow) * .78);bottom:calc(var(--vis) - var(--sink) - var(--ow) * .78 * .0447)}
  .euler-xmas-ctascene .xc-cane{right:auto;left:calc(50% + var(--ow) * .24);width:calc(var(--ow) * .52);bottom:calc(var(--vis) - var(--sink) - var(--ow) * .52 * .073)}
  .euler-xmas-ctascene .xc-sombra{right:auto;left:calc(50% - var(--ow) * .35)}
  .euler-xmas-ctascene .xc-refl{right:auto;left:calc(50% + var(--ow) * .335 - 46px)}
  .euler-xmas-ctascene .xc-dest--a{right:auto;left:calc(50% - var(--ow) * .7)}
  .euler-xmas-ctascene .xc-suelo--front{z-index:6}
.euler-xmas-ctascene .xc-sombra,.euler-xmas-ctascene .xc-refl{translate:0 var(--dyo,0px);z-index:7!important}
.euler-xmas-ctascene .xc-sombra{opacity:.75}
.euler-xmas-ctascene .xc-rama{width:clamp(64px,19vw,96px)}
}
html.euler-xmas-frozen .euler-xmas-cta *,html.euler-xmas-frozen .euler-xmas-ctascene *{animation:none!important}
html.euler-xmas-frozen .euler-xmas-cta .xc-pino span{opacity:.7}html.euler-xmas-frozen .euler-xmas-ctascene .xc-bulb{opacity:.75}
@media (prefers-reduced-motion:reduce){.euler-xmas-cta .xc-met{display:none}.euler-xmas-cta .xc-pino span{opacity:.7}.euler-xmas-ctascene .xc-bulb,.euler-xmas-ctascene .xc-refl{opacity:.75}}

/* ======================= Movimiento reducido: decoración estática completa ======================= */
@media (prefers-reduced-motion:reduce){
  html.euler-xmas [data-euler-xmas],html.euler-xmas [data-euler-xmas] *{animation:none!important}
  .euler-xmas-flake,.euler-xmas-glint,.euler-xmas-sky .x-shoot{display:none}
  .euler-xmas-owl .x-bulb{opacity:.7}
}
@media print{[data-euler-xmas]{display:none!important}}
