/* fichas.es · sistema visual «Recreo»
   Tres registros por edad (clase en <body>): etapa-infantil (3-5 años), etapa-baja (1.º-3.º), etapa-alta (4.º-6.º). */
@font-face{font-family:"Baloo 2";src:url(/assets/fonts/baloo2.woff2) format("woff2");font-weight:500 800;font-display:swap}
@font-face{font-family:"Nunito";src:url(/assets/fonts/nunito.woff2) format("woff2");font-weight:500 800;font-display:swap}

:root{
  --tinta:#23263B;--tinta-2:#4B4F6B;--fondo:#fff;--cielo:#E6F4FF;--gris:#F4F6FB;--linea:#E3E7F1;
  --azul:#1478D4;--azul-osc:#0B5DAA;--sol:#FFCC33;--sol-osc:#D9A400;--coral:#E8403D;--coral-osc:#B92F2C;
  --verde-boton:#0E8A43;--verde-boton-osc:#0A6531;--rosa:#FF8FA3;--menta:#7EE0C3;--morado:#8C6FF7;
  --elegida:#1478D4;--elegida-fondo:#D6EEFF;--bien:#12A150;--bien-fondo:#C9F5DC;--bien-texto:#0B6B37;
  --mal:#E5484D;--mal-fondo:#FFE1E1;--mal-texto:#9F1D22;--pista-fondo:#FFF3C4;--pista-texto:#6B4A00;
  --mates-fondo:#E6F4FF;--mates-texto:#0E5FAF;--lengua-fondo:#FFE9EC;--lengua-texto:#B4232A;
  --ingles-fondo:#EFEBFF;--ingles-texto:#5A3FC0;--medio-fondo:#E2F8F1;--medio-texto:#11735F;--todas-fondo:#FFF3C4;--todas-texto:#7A5300;
  --titulos:"Baloo 2",ui-rounded,"Segoe UI",sans-serif;--texto:"Nunito",system-ui,sans-serif;
  --sombra:0 5px 0 rgba(35,38,59,.16);--borde-juguete:3px solid var(--tinta);--sombra-juguete:0 5px 0 var(--tinta);
}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none !important}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--fondo);color:var(--tinta);font:600 17px/1.55 var(--texto)}
img,svg{max-width:100%}
img{height:auto}
a{color:#0F67BA}a:hover{color:var(--azul-osc)}
h1,h2,h3{font-family:var(--titulos);font-weight:800;line-height:1.08;margin:0 0 .45em;letter-spacing:-.01em}
h1{font-size:clamp(32px,5vw,52px)}
h2{font-size:clamp(24px,3vw,32px)}
h3{font-size:21px}
p{margin:0 0 1em}
button{font:inherit;color:inherit}
button,a,[role="button"]{-webkit-tap-highlight-color:transparent}
:focus-visible{outline:4px solid var(--sol);outline-offset:2px}
.contenedor{max-width:1160px;margin:0 auto;padding:0 18px}
.saltar{position:absolute;left:-9999px}.saltar:focus{left:16px;top:16px;z-index:50;background:#fff;padding:8px 12px}
.franja-pruebas{background:var(--sol);text-align:center;font-weight:800;font-size:13px;padding:3px}
.meta{color:var(--tinta-2);font-size:15px;font-weight:700}
.texto-suave{color:var(--tinta-2)}
.seccion{padding-top:40px;padding-bottom:8px}
.seccion__cabecera{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:14px}
.seccion__cabecera h2{margin:0}
.rejilla-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:32px}
.rejilla-3{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
.rejilla-4{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}
.color-mates{background:var(--mates-fondo);color:var(--mates-texto)}
.color-lengua{background:var(--lengua-fondo);color:var(--lengua-texto)}
.color-ingles{background:var(--ingles-fondo);color:var(--ingles-texto)}
.color-medio{background:var(--medio-fondo);color:var(--medio-texto)}
.color-todas{background:var(--todas-fondo);color:var(--todas-texto)}
.color-cielo{background:var(--cielo);color:var(--tinta)}

/* ------------------------------------------------ cabecera y pie */
.cabecera{background:#fff;position:relative;z-index:10}
.cabecera__fila{display:flex;align-items:center;gap:22px;min-height:70px}
.logo{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--tinta);font:800 26px var(--titulos);letter-spacing:-.5px}
.logo svg{flex:none}
.logo b,.logo-texto b{color:var(--coral);font-weight:800}
.logo-texto{font:800 22px var(--titulos)}
.menu{display:flex;gap:6px;margin-left:auto;font-weight:800;font-size:16px}
.menu a{color:var(--tinta);text-decoration:none;padding:10px 14px;border-radius:999px}
.menu a:hover{background:var(--cielo);color:var(--tinta)}
.boton-icono{width:48px;height:48px;flex:none;border-radius:50%;border:0;background:var(--tinta);color:#fff;display:none;align-items:center;justify-content:center;cursor:pointer}
@media (max-width:900px){
  .menu{display:none;position:absolute;top:100%;left:12px;right:12px;flex-direction:column;gap:0;background:#fff;border-radius:22px;box-shadow:0 12px 30px rgba(35,38,59,.18);padding:8px}
  .menu a{padding:14px 16px}
  .menu-abierto .menu{display:flex}
  .boton-icono{display:flex;margin-left:auto}
  .buscar-abrir + .menu-abrir{margin-left:0}
}
.boton-icono.buscar-abrir{display:flex;background:var(--cielo);color:var(--tinta);flex:none}
.boton-icono.buscar-abrir:hover{background:var(--elegida-fondo)}
.pie{background:var(--gris);margin-top:56px;padding:32px 0;color:var(--tinta-2);font-size:15px}
.pie__fila{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
.pie__marca{display:flex;flex-direction:column;gap:4px}
.pie nav{display:flex;flex-wrap:wrap;gap:8px 20px}
.pie a{color:var(--tinta-2)}

/* ------------------------------------------------ elementos */
.boton{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:56px;padding:0 24px;border-radius:999px;font:800 19px var(--titulos);text-decoration:none;cursor:pointer;border:0}
.boton--primario{background:var(--coral);color:#fff;box-shadow:0 5px 0 var(--coral-osc)}
.boton--primario:hover{color:#fff;filter:brightness(1.05)}
.boton--primario:active{transform:translateY(3px);box-shadow:0 2px 0 var(--coral-osc)}
.boton--azul{background:var(--azul);color:#fff;box-shadow:0 5px 0 var(--azul-osc)}
.boton--borde{background:#fff;color:var(--tinta);border:3px solid var(--tinta);box-shadow:0 4px 0 var(--tinta)}
.boton--suave{background:var(--gris);color:var(--tinta)}
.boton:disabled{background:#C9D3E3;color:#4B4F6B;box-shadow:none;cursor:default}
.etiqueta{display:inline-flex;align-items:center;padding:4px 12px;border-radius:999px;font-weight:800;font-size:14px;background:var(--gris);color:var(--tinta)}
.etiquetas{display:flex;flex-wrap:wrap;gap:8px}
.chip{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 18px;border-radius:999px;border:0;background:var(--gris);color:var(--tinta);font:800 16px var(--texto);text-decoration:none;cursor:pointer}
.chip:hover{background:var(--cielo)}
.chip[aria-selected="true"],.chip[aria-pressed="true"]{background:var(--tinta);color:#fff}
.migas ol{list-style:none;margin:0 0 8px;padding:0;display:flex;flex-wrap:wrap;gap:6px;font-size:14px;font-weight:700;color:var(--tinta-2)}
.migas li:not(:last-child)::after{content:"›";margin-left:6px}
.migas a{color:var(--tinta-2)}
.faq details{border-radius:18px;padding:14px 18px;margin-bottom:10px;background:var(--gris)}
.faq summary{font-weight:800;cursor:pointer}
.faq details > :not(summary){margin-top:10px;color:var(--tinta-2)}
.prosa{color:var(--tinta-2);max-width:760px;font-weight:500}
.prosa strong{color:var(--tinta)}
.texto-seo{padding-top:40px;margin-top:40px;border-top:3px dashed var(--linea)}
.texto-seo h2{font-size:26px}

/* ------------------------------------------------ portada */
.hola{margin:6px auto 0;max-width:1160px;padding:0 12px}
.hola__caja{background:var(--azul);color:#fff;border-radius:32px;padding:28px 22px 26px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;align-items:center}
.hola h1.hola__marca{color:#fff;margin:0 0 4px;font-size:19px;font-weight:800;letter-spacing:.02em;text-transform:uppercase}
.hola p.hola__titulo{font-family:var(--titulos);color:#fff;margin:0 0 6px;font-size:clamp(32px,5vw,54px);line-height:1.1;font-weight:800}
.hola p{margin:0;font-size:19px;font-weight:700}
.edades{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.edad{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:130px;border-radius:26px;text-decoration:none;color:var(--tinta);box-shadow:var(--sombra)}
.edad:hover{color:var(--tinta);transform:translateY(-2px)}
.edad b{font:800 72px/.9 var(--titulos)}
.edad span{font:800 17px var(--texto)}
.edad--3{background:var(--sol)}.edad--4{background:var(--rosa)}.edad--5{background:var(--menta)}
.cursos{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.curso-boton{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:100px;border-radius:22px;text-decoration:none;color:var(--tinta);background:#fff;border:var(--borde-juguete);box-shadow:var(--sombra-juguete)}
.curso-boton:hover{color:var(--tinta);transform:translateY(-2px)}
.curso-boton b{font:800 40px/1 var(--titulos)}
.curso-boton span{font:700 14px var(--texto);color:var(--tinta-2)}
.curso-boton{padding:10px 6px;text-align:center}
.curso-boton span{line-height:1.25}
.curso-boton .curso-boton__extra{font-weight:600;font-size:13px}
.seguir{display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:24px;background:var(--pista-fondo);text-decoration:none;color:var(--tinta)}
.seguir strong{font:800 20px var(--titulos)}
.seguir:hover{color:var(--tinta)}
.seguir__play{width:52px;height:52px;border-radius:50%;background:var(--tinta);display:flex;align-items:center;justify-content:center;flex:none;margin-left:auto}
.familias{background:var(--gris);border-radius:26px;padding:20px 22px}
.familias h2{font-size:22px}
.familias a{display:flex;justify-content:space-between;align-items:center;min-height:48px;color:var(--tinta);font-weight:800;text-decoration:none;border-bottom:2px solid var(--linea)}
.familias a:last-child{border-bottom:0}
@media (max-width:860px){
  .hola__caja{grid-template-columns:1fr;padding:22px 16px}
  .edad{min-height:112px}.edad b{font-size:62px}
  .cursos{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* ------------------------------------------------ tarjetas de ficha */
.tarjeta-ficha{display:flex;flex-direction:column;border-radius:24px;overflow:hidden;text-decoration:none;color:var(--tinta);background:#fff;box-shadow:0 0 0 2px var(--linea),var(--sombra)}
.tarjeta-ficha:hover{color:var(--tinta);transform:translateY(-2px)}
.tarjeta-ficha__img{aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;font:800 46px var(--titulos);overflow:hidden}
.tarjeta-ficha__img img{width:100%;height:100%;object-fit:cover}
.tarjeta-ficha__cuerpo{padding:14px 16px 16px;display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.tarjeta-ficha__cuerpo strong{font:800 20px/1.15 var(--titulos)}
.fila-ficha{display:flex;align-items:center;gap:14px;padding:12px 14px;border-radius:20px;text-decoration:none;color:var(--tinta);background:#fff;box-shadow:0 0 0 2px var(--linea),0 4px 0 rgba(35,38,59,.08)}
.fila-ficha:hover{color:var(--tinta);box-shadow:0 0 0 3px var(--azul),0 4px 0 rgba(35,38,59,.08)}
.fila-ficha__icono{width:54px;height:54px;border-radius:16px;flex:none;display:flex;align-items:center;justify-content:center;font:800 24px var(--titulos)}
.fila-ficha__texto{display:flex;flex-direction:column;gap:1px}
.fila-ficha__texto strong{font:800 19px/1.15 var(--titulos)}
.fila-ficha__tema{display:block;font-size:12px;font-weight:800;color:var(--tinta-2);text-transform:uppercase;letter-spacing:.05em}
@media (max-width:600px){
  .tarjeta-ficha{flex-direction:row;align-items:center}
  .tarjeta-ficha__img{aspect-ratio:auto;width:92px;height:78px;flex:none;margin:10px 0 10px 10px;border-radius:16px;font-size:28px}
  .tarjeta-ficha__cuerpo{padding:12px 14px}
  .tarjeta-ficha__cuerpo strong{font-size:18px}
  .rejilla-3,.rejilla-4{grid-template-columns:1fr;gap:12px}
}

/* ------------------------------------------------ hubs */
.hub-cabecera{padding:18px 0 22px}
.hub-cabecera__caja{border-radius:30px;padding:22px 22px 24px}
.hub-cabecera h1{font-size:clamp(30px,4.6vw,48px);margin-bottom:6px}
.hub-cabecera .entradilla{margin:0;font-size:18px;color:var(--tinta);max-width:680px}
.hub-cabecera .meta{color:var(--tinta)}
.asignaturas{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-bottom:24px}
.asignatura-boton{display:flex;align-items:center;gap:12px;min-height:72px;padding:0 16px;border-radius:22px;border:0;cursor:pointer;font:800 19px var(--titulos);text-align:left;box-shadow:var(--sombra)}
.asignatura-boton .meta{margin-left:auto}
.asignatura-boton[aria-selected="true"]{outline:4px solid var(--tinta);outline-offset:-4px}
.hub-cuerpo{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:32px}
.grupo-tema{margin-bottom:26px}
.grupo-tema h2{font-size:24px}
.lista-fichas{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.filtro-temas{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.hub-lateral{display:flex;flex-direction:column;gap:14px}
.tarjeta-oscura,.tarjeta-borde{display:flex;flex-direction:column;gap:6px;padding:20px;border-radius:24px;text-decoration:none}
.tarjeta-oscura{background:var(--tinta);color:#fff}.tarjeta-oscura:hover{color:#fff}
.tarjeta-oscura span:last-child{color:#D8DCEA}
.tarjeta-oscura strong,.tarjeta-borde strong{font:800 21px/1.15 var(--titulos)}
.antetitulo{font-size:13px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--sol)}
.tarjeta-borde{background:var(--gris);color:var(--tinta)}.tarjeta-borde:hover{color:var(--tinta)}
.tarjeta-borde span{color:var(--tinta-2)}
.rejilla-cursos{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;margin-bottom:32px}
.tarjeta-curso{display:flex;flex-direction:column;gap:2px;padding:20px;border-radius:24px;text-decoration:none;color:var(--tinta);background:#fff;border:var(--borde-juguete);box-shadow:var(--sombra-juguete)}
.tarjeta-curso:hover{color:var(--tinta);transform:translateY(-2px)}
.tarjeta-curso strong{font:800 28px var(--titulos)}
@media (max-width:860px){
  .hub-cuerpo{grid-template-columns:1fr}
  .lista-fichas{grid-template-columns:1fr}
  .asignaturas{grid-template-columns:repeat(2,minmax(0,1fr))}
  .asignatura-boton{min-height:64px;font-size:17px;padding:0 12px}
}

/* ------------------------------------------------ ficha: estructura paso a paso */
.pagina-ficha main{background:var(--cielo);min-height:70vh}
.ficha-barra{display:flex;align-items:center;gap:12px;padding:12px 0}
.ficha-barra__salir{width:48px;height:48px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;box-shadow:var(--sombra);flex:none;color:var(--tinta)}
.ficha-barra__titulo{flex:1;min-width:0}
.ficha-barra__titulo h1{font-size:clamp(20px,3vw,28px);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pagina-ficha .migas li:last-child{display:none}
@media (max-width:600px){
  .ficha-barra{flex-wrap:wrap;row-gap:4px;padding:8px 0 4px}
  .ficha-barra .estrellas{order:3;max-width:none;width:100%;justify-content:flex-start;padding-left:60px;gap:2px}
  .ficha-barra .estrella{width:20px;height:20px}
}
/* Móvil: lo importante es el ejercicio y el botón. Las migas siguen en el HTML (y en el JSON-LD) pero no se pintan;
   las ilustraciones ocupan como mucho un tercio de la pantalla, y Comprobar/Siguiente se queda fija abajo. */
@media (max-width:700px){
  .pagina-ficha .migas{display:none}
  .ficha.paso-a-paso .visual img{width:auto !important;height:auto !important;max-width:100% !important;max-height:25vh !important;margin:0 auto;display:block}
  .ficha-barra__titulo .meta{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ficha-acciones{position:sticky;bottom:0;z-index:20;margin:10px -12px 0;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(230,244,255,.94);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 -6px 16px rgba(35,38,59,.08)}
  .ficha-acciones .boton{min-height:58px;font-size:21px}
  .ficha .paso-feedback{scroll-margin-bottom:96px}
}
.ficha-barra__titulo .meta{font-size:13px}
.estrellas{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end;max-width:50%}
.estrella{width:28px;height:28px}
.estrella path{fill:#fff;stroke:var(--tinta);stroke-width:1.6;stroke-linejoin:round}
.estrella.ganada path{fill:var(--sol)}
.estrella.ganada{animation:rebote .6s}
@keyframes rebote{0%{transform:scale(1)}40%{transform:scale(1.3)}100%{transform:scale(1)}}
@keyframes temblor{0%,100%{transform:translateX(0)}25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}
.ficha-cuerpo{max-width:760px;margin:0 auto;padding:0 12px 24px}
.ficha{position:relative}
.paso-tarjeta{background:#fff;border-radius:30px;padding:22px 20px;box-shadow:0 6px 0 rgba(35,38,59,.1)}
.paso-cabecera{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.escuchar{width:60px;height:60px;flex:none;border:0;border-radius:50%;background:var(--sol);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 0 var(--sol-osc);color:var(--tinta)}
.escuchar:active{transform:translateY(3px);box-shadow:0 1px 0 var(--sol-osc)}
.escuchar.hablando{animation:rebote .8s infinite}
.paso-num{font:800 15px var(--texto);color:var(--tinta-2)}
.paso-feedback{display:flex;align-items:center;gap:12px;margin-top:16px;padding:12px 16px;border-radius:20px;font:800 18px/1.3 var(--texto)}
.paso-feedback.es-bien{background:var(--bien-fondo);color:var(--bien-texto)}
.paso-feedback.es-mal{background:var(--pista-fondo);color:var(--pista-texto)}
.paso-feedback svg{flex:none}
.ficha-acciones{display:flex;gap:10px;margin-top:18px}
.ficha-acciones .boton{flex:1;min-height:64px;font-size:22px}
.ficha-acciones [data-accion]{position:relative;overflow:hidden}
.ficha-acciones [data-accion][data-modo="comprobar"]:not(:disabled){background:var(--azul);box-shadow:0 5px 0 var(--azul-osc)}
.ficha-acciones [data-accion][data-modo="comprobar"]:not(:disabled):active{box-shadow:0 2px 0 var(--azul-osc)}
.ficha-acciones [data-accion][data-modo="siguiente"]{background:var(--verde-boton);box-shadow:0 5px 0 var(--verde-boton-osc)}
.ficha-acciones [data-accion][data-modo="siguiente"]:active{box-shadow:0 2px 0 var(--verde-boton-osc)}
.cuenta-relleno{position:absolute;inset:0;background:rgba(255,255,255,.2);transform-origin:left;transition:transform .2s linear;pointer-events:none}
.cuenta-texto{position:relative}
.cuenta-num{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.25);font-size:17px}
@media (prefers-reduced-motion:reduce){.cuenta-relleno{transition:none}}
.ficha-acciones .boton--suave{flex:0 0 auto;min-width:64px;padding:0 18px}
.ficha-fin{background:#fff;border-radius:30px;padding:30px 20px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px;box-shadow:0 6px 0 rgba(35,38,59,.1)}
.ficha-fin h2{font-size:34px;margin:0}
.ficha-fin p{font-size:19px;color:var(--tinta-2);margin:0}
.ficha-fin .estrellas{max-width:none;justify-content:center}
.ficha-fin .estrella{width:40px;height:40px}
.ficha-herramientas{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:16px}
.panel-familias{background:#fff;border-radius:24px;padding:16px 20px;margin-top:18px}
.panel-familias summary{font:800 18px var(--titulos);cursor:pointer}
.panel-familias ul{color:var(--tinta-2);padding-left:20px;font-weight:600}
/* modo «ver toda la ficha» (adultos e impresión): todos los ejercicios visibles */
.ficha.ver-todo [data-ej]{display:block !important}
.ficha.ver-todo [data-ej] + [data-ej]{margin-top:16px}
.ficha.paso-a-paso [data-ej]{display:none}
.ficha.paso-a-paso [data-ej].activo{display:block}
.ficha .contenedor-preguntas{display:block}
.ficha .instrucciones,.ficha .wordsearch-words-title,.ficha .acciones-wordsearch,.ficha .feedback-wordsearch,.ficha .feedback-memory,.ficha .dragdrop-actions{display:none}

/* ------------------------------------------------ ficha: ejercicios (marcado heredado) */
.ficha .pregunta,.ficha .pregunta-wordsearch,.ficha .pregunta-trazo,.ficha .pregunta-fillblanks{font:800 26px/1.15 var(--titulos);margin:0;color:var(--tinta)}
.ficha .visual{text-align:center;font-size:44px;line-height:1.25;margin:6px 0 16px;word-break:break-word}
.ficha .visual img,.ficha .visual-imagen img{border-radius:18px;max-height:280px;width:auto}
/* Imágenes de las fichas antiguas sin tamaño: se reserva su hueco (4:3) para que la página no salte al cargarlas */
.ficha .visual img:not([width]){height:280px;aspect-ratio:4/3;max-width:100%;object-fit:contain}
.ficha .visual img.ilustracion{width:100%;max-width:480px;height:auto;max-height:none;aspect-ratio:4/3;border-radius:16px;box-shadow:0 4px 0 rgba(35,38,59,.12)}
.ficha .opciones{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px}
.ficha .opcion-btn{min-height:76px;padding:10px 14px;border:var(--borde-juguete);border-radius:22px;background:#fff;font:800 24px/1.15 var(--titulos);color:var(--tinta);cursor:pointer;box-shadow:var(--sombra-juguete);transition:transform .08s}
.ficha .opcion-btn:active{transform:translateY(3px);box-shadow:0 2px 0 var(--tinta)}
.ficha .opcion-btn.seleccionado{border-color:var(--elegida);background:var(--elegida-fondo);box-shadow:0 3px 0 var(--azul-osc);transform:translateY(2px)}
.ficha .opcion-btn.correcto{border-color:var(--bien);background:var(--bien-fondo);color:var(--bien-texto);box-shadow:0 5px 0 var(--bien)}
.ficha .opcion-btn.correcto::before{content:"✓ "}
.ficha .opcion-btn.incorrecto{border-color:var(--mal);background:var(--mal-fondo);color:var(--mal-texto);box-shadow:0 5px 0 var(--mal);animation:temblor .4s}
.ficha .opcion-btn.incorrecto::before{content:"✗ "}
.ficha .opcion-btn:disabled{cursor:default}
.ficha .frase-completar,.ficha .fillblanks-texto{font-size:22px;line-height:2.2;margin:8px 0;font-weight:700}
.ficha .fillblank-input{font:800 24px var(--titulos);text-align:center;border:3px solid var(--tinta);background:#fff;border-radius:14px;padding:2px 8px;min-width:3ch;color:var(--tinta);box-shadow:0 3px 0 var(--tinta)}
.ficha .fillblank-input:focus{outline:none;border-color:var(--elegida);background:var(--elegida-fondo)}
.ficha .fillblank-input.correcto{border-color:var(--bien);background:var(--bien-fondo);color:var(--bien-texto)}
.ficha .fillblank-input.incorrecto{border-color:var(--mal);background:var(--mal-fondo);color:var(--mal-texto)}
.ficha .solucion{display:inline-block;margin-left:6px;font:800 16px var(--texto);color:var(--bien-texto)}
.ficha .dragdrop-container{display:flex;flex-direction:column;gap:16px;margin-top:12px}
.ficha .dragdrop-items{background:var(--gris);border-radius:22px;padding:14px}
.ficha .dragdrop-items-title,.ficha .dragdrop-zone-title{font-weight:800;color:var(--tinta-2);margin-bottom:8px;font-size:15px}
.ficha .dragdrop-items-grid{display:flex;flex-wrap:wrap;gap:10px;min-height:60px}
.ficha .dragdrop-item{display:inline-flex;align-items:center;justify-content:center;min-height:58px;padding:8px 16px;border:var(--borde-juguete);border-radius:18px;background:#fff;font:800 20px var(--titulos);cursor:pointer;user-select:none;touch-action:manipulation;box-shadow:0 4px 0 var(--tinta)}
.ficha .dragdrop-item.drag-selected{border-color:var(--elegida);background:var(--elegida-fondo);box-shadow:0 4px 0 var(--azul-osc);transform:translateY(-3px)}
.ficha .dragdrop-item.correcto{border-color:var(--bien);background:var(--bien-fondo);box-shadow:0 4px 0 var(--bien)}
.ficha .dragdrop-item.incorrecto{border-color:var(--mal);background:var(--mal-fondo);box-shadow:0 4px 0 var(--mal)}
.ficha .dragdrop-zones{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.ficha .dragdrop-zone{border:3px dashed #9FB0CC;border-radius:22px;padding:12px;min-height:120px;cursor:pointer;background:#fff}
.ficha .hay-elegido .dragdrop-zone{border-color:var(--elegida);background:#F2F9FF}
.ficha .dragdrop-zone.drag-over{border-color:var(--elegida);background:var(--elegida-fondo)}
.ficha .dragdrop-zone.correct{border-style:solid;border-color:var(--bien)}
.ficha .dragdrop-zone.incorrect{border-style:solid;border-color:var(--mal)}
.ficha .dragdrop-zone-content{display:flex;flex-wrap:wrap;gap:8px;min-height:60px}
.ficha .memory-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:12px}
.ficha .memory-card{position:relative;aspect-ratio:1;border-radius:20px;cursor:pointer;perspective:600px}
.ficha .memory-card-front,.ficha .memory-card-back{position:absolute;inset:0;border-radius:20px;display:flex;align-items:center;justify-content:center;text-align:center;padding:6px;backface-visibility:hidden;transition:transform .35s;font:800 clamp(14px,2.6vw,22px)/1.1 var(--titulos);overflow:hidden;word-break:break-word}
.ficha .memory-card-front{background:var(--azul);color:var(--sol);font-size:34px;box-shadow:inset 0 -5px 0 rgba(0,0,0,.18)}
.ficha .memory-card-back{background:#fff;border:3px solid var(--tinta);transform:rotateY(180deg)}
.ficha .memory-card.flipped .memory-card-front,.ficha .memory-card.matched .memory-card-front{transform:rotateY(180deg)}
.ficha .memory-card.flipped .memory-card-back,.ficha .memory-card.matched .memory-card-back{transform:rotateY(360deg)}
.ficha .memory-card.matched .memory-card-back{border-color:var(--bien);background:var(--bien-fondo)}
.ficha .memory-stats,.ficha .memory-actions{display:flex;gap:16px;align-items:center;margin-top:12px;color:var(--tinta-2);font-size:15px;font-weight:800}
.ficha .btn-reiniciar-memory,.ficha .btn-borrar-trazo,.ficha .btn-reintentar-wordsearch,.boton-mini{border:0;background:var(--gris);border-radius:999px;min-height:46px;padding:0 18px;font-weight:800;cursor:pointer;margin-top:12px}
.ficha .trazo-canvas-container{position:relative;border:3px dashed #9FB0CC;border-radius:22px;background:#FBFDFF;overflow:hidden;margin-top:12px}
.ficha .trazo-guia{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--titulos);font-weight:800;color:#D2DBEA;pointer-events:none;user-select:none;text-align:center;padding:0 12px}
.ficha .trazo-canvas-container canvas{position:relative;display:block;width:100%;height:220px}
.ficha .wordsearch-container{display:flex;flex-wrap:wrap;gap:18px;align-items:flex-start;margin-top:12px}
.ficha .wordsearch-grid{overflow-x:auto;max-width:100%}
.ficha .wordsearch-table{border-collapse:separate;border-spacing:4px}
.ficha .wordsearch-cell{width:40px;height:40px;text-align:center;font:800 21px var(--titulos);border-radius:10px;background:var(--gris);cursor:pointer;user-select:none}
.ficha .wordsearch-cell.selected{background:var(--elegida-fondo);box-shadow:inset 0 0 0 3px var(--elegida)}
.ficha .wordsearch-cell.found{background:var(--bien-fondo);color:var(--bien-texto)}
.ficha .wordsearch-words-list{display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:0;list-style:none}
.ficha .word-item{padding:6px 14px;border-radius:999px;background:var(--gris);font-weight:800}
.ficha .word-item.found{background:var(--bien-fondo);color:var(--bien-texto);text-decoration:line-through}

.ficha .ficha-regla{background:var(--pista-fondo) !important;color:var(--tinta);border-radius:22px !important;padding:16px 20px !important;margin:0 0 16px;font-weight:600}
.ficha .ficha-regla summary{font:800 18px var(--titulos);cursor:pointer;margin-bottom:6px}
.ficha .ficha-regla:not([open]) summary{margin:0}
.ficha .ficha-regla p{margin:0 0 .5em}.ficha .ficha-regla p:last-child{margin:0}
.ficha .ficha-regla strong{color:var(--tinta)}
.ficha .lectura-texto{text-align:left;font-size:18px;line-height:1.6;font-weight:600;background:var(--gris);border-radius:18px;padding:14px 18px}
.ficha .lectura-texto strong{display:block;font:800 20px var(--titulos);margin-bottom:6px}
.ficha .lectura-repaso{text-align:left;font-size:16px}
.ficha .lectura-repaso summary{cursor:pointer;font-weight:800;color:var(--azul)}
.ficha .visual table{margin:0 auto;border-collapse:collapse;font-size:18px}
.ficha .visual td,.ficha .visual th{border:2px solid var(--linea);padding:6px 12px}

/* ------------------------------------------------ registros por edad */
.etapa-infantil .ficha .opcion-btn{min-height:110px;font-size:46px}
.etapa-infantil .ficha .opciones{grid-template-columns:repeat(auto-fit,minmax(96px,1fr))}
.etapa-infantil .ficha .opciones--texto{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
.etapa-infantil .ficha .opciones--texto .opcion-btn{min-height:76px;font-size:26px}
.ficha .opcion-btn{overflow-wrap:break-word}
.etapa-infantil .ficha .pregunta{font-size:28px}
.etapa-alta{--sombra:0 3px 0 rgba(35,38,59,.12);--sombra-juguete:0 3px 0 var(--tinta);--borde-juguete:2px solid var(--tinta)}
.etapa-alta .ficha .pregunta,.etapa-alta .ficha .pregunta-wordsearch,.etapa-alta .ficha .pregunta-trazo{font-size:22px;font-family:var(--texto);font-weight:800}
.etapa-alta .ficha .opcion-btn{min-height:60px;font:800 19px/1.25 var(--texto);border-radius:16px;text-align:left;padding:12px 16px}
.etapa-alta .ficha .opciones{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.etapa-alta .escuchar{width:46px;height:46px}
.etapa-alta .escuchar svg{width:22px;height:22px}
.etapa-alta .paso-tarjeta,.etapa-alta .ficha-fin{border-radius:22px}
.etapa-alta .paso-feedback{font-size:17px}
.etapa-alta .mascota{display:none}
.etapa-alta .estrella{width:22px;height:22px}

/* ------------------------------------------------ dictados */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.lista-dictados{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;margin-bottom:28px}
.cursos--dictados{margin-bottom:28px}
.dictado-paso{background:#fff;border-radius:30px;padding:22px 20px;box-shadow:0 6px 0 rgba(35,38,59,.1)}
.dictado-audio{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:6px 0 16px}
.dictado-escuchar{min-height:64px;font-size:20px;gap:10px;padding:0 24px}
.dictado-escuchar.sonando,[data-escuchar-todo].sonando{animation:latido 1s infinite}
@keyframes latido{0%,100%{transform:scale(1)}50%{transform:scale(1.04)}}
.dictado-velocidad{display:flex;gap:6px}
.dictado-escribe textarea{width:100%;min-height:110px;resize:vertical;border:3px solid var(--linea);border-radius:20px;padding:14px 16px;font:700 24px/1.45 var(--texto);color:var(--tinta);background:var(--gris)}
.etapa-alta .dictado-escribe textarea{font-size:21px}
.dictado-escribe textarea:focus{outline:none;border-color:var(--azul);background:#fff}
.dictado-resultado{align-items:flex-start;font-weight:700}
.dictado-resultado__texto{flex:1;min-width:0}
.dictado-resultado__titulo{font-weight:800;margin:0 0 6px}
.dictado-escrito{font:700 22px/2.1 var(--texto);margin:0 0 6px;color:var(--tinta)}
.dpal{display:inline-flex;flex-direction:column;align-items:center;line-height:1.2;padding:2px 6px;border-radius:10px;vertical-align:top}
.dpal small{font:800 11px var(--texto);text-transform:uppercase;letter-spacing:.04em;margin-top:1px}
.dpal.es-bien{background:var(--bien-fondo);color:var(--bien-texto)}
.dpal.es-mayuscula,.dpal.es-tilde,.dpal.es-casi{background:#FFE08A;color:#6B4A00}
.dpal.es-mal{background:var(--mal-fondo);color:var(--mal-texto)}
.dpal.es-sobra{background:var(--gris);color:var(--tinta-2);text-decoration:line-through}
.dpal.es-falta{background:var(--mal-fondo);color:var(--mal-texto);min-width:44px}
.dictado-pistas{margin:0 0 6px;padding-left:20px;font-size:16px}
.dictado-resultado__ayuda{font-size:16px;margin:0}
.dictado-correcta{font-size:20px;margin:6px 0 0;color:var(--tinta)}
.dictado-correcta mark,.dictado-repaso mark{background:#FFE08A;border-radius:6px;padding:0 3px;color:inherit}
.enlace{background:none;border:0;padding:0;color:var(--azul);font:inherit;text-decoration:underline;cursor:pointer}
.dictado-repaso{text-align:left;font-size:19px;margin:4px 0;padding-left:24px;max-width:620px}
.dictado-repaso li{margin:4px 0}
.dictado-repaso li.es-bien::marker{color:var(--bien)}

/* ------------------------------------------------ páginas heredadas (evaluación, calendario, legales) */
.pagina-heredada .ficha-card-mini-v2{background:#fff;border:3px solid var(--linea);border-radius:22px;overflow:hidden;transition:border-color .15s}
.pagina-heredada .ficha-card-mini-v2:hover{border-color:var(--azul)}
.pagina-heredada .ficha-card-link-v2{display:flex;flex-direction:column;gap:8px;height:100%;padding:16px;color:var(--tinta);text-decoration:none}
.pagina-heredada .badges-row{display:flex;flex-wrap:wrap;gap:4px}
.pagina-heredada .badges-row span{font:800 12px var(--texto);padding:3px 8px;border-radius:999px;background:var(--cielo);color:var(--mates-texto)}
.pagina-heredada .badges-row .badge-nivel-mini{display:none}
.pagina-heredada .ficha-card-titulo-v2{font:800 19px/1.2 var(--titulos);margin:0;color:var(--tinta)}
.pagina-heredada .ficha-card-meta-v2{display:flex;flex-wrap:wrap;gap:10px;font-size:14px;color:var(--tinta-2)}
.pagina-heredada .meta-item-v2{display:inline-flex;align-items:center;gap:4px}
.pagina-heredada .meta-icon,.pagina-heredada .meta-icon svg{width:16px;height:16px;display:inline-flex;color:var(--tinta-2)}
.pagina-heredada .ficha-card-footer-v2{margin-top:auto}
.pagina-heredada .ficha-card-cta-v2{display:inline-flex;gap:6px;font-weight:800;color:var(--coral)}
.pagina-heredada p:empty{display:none}
.cmplz-fmail-domain{display:none}
.heredada--legal{padding-top:8px;padding-bottom:40px;max-width:820px}
.heredada--legal table{border-collapse:collapse;width:100%;font-size:15px;display:block;overflow-x:auto;margin:8px 0 16px}
.heredada--legal th,.heredada--legal td{border:2px solid var(--linea);padding:8px 10px;text-align:left;vertical-align:top}
.heredada--legal th{background:var(--gris)}

.tarjeta-curso__texto{display:block;font-size:14px;font-weight:600;color:var(--tinta-2);margin-top:4px;line-height:1.35}
.hub-intencion h3{margin-top:22px}
/* ------------------------------------------------ blog */
.rejilla-blog{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px;margin:16px 0 24px}
.tarjeta-articulo{display:flex;flex-direction:column;background:#fff;border:3px solid var(--linea);border-radius:24px;overflow:hidden;color:var(--tinta);text-decoration:none;transition:border-color .15s}
.tarjeta-articulo:hover{border-color:var(--azul);color:var(--tinta)}
.tarjeta-articulo img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;background:var(--gris)}
.tarjeta-articulo__cuerpo{display:flex;flex-direction:column;gap:6px;padding:14px 16px 18px}
.tarjeta-articulo strong{font:800 19px/1.2 var(--titulos)}
.tarjeta-articulo .meta{font-size:14px;color:var(--tinta-2);font-weight:600}
.articulo__cabecera{max-width:820px;padding-top:4px}
.articulo__cabecera h1{font-size:clamp(30px,4.6vw,46px);margin-top:10px}
.articulo__imagen{width:100%;border-radius:24px;margin:8px 0 18px;aspect-ratio:16/9;object-fit:cover}
.articulo__cuerpo{max-width:820px;font-size:18px;line-height:1.7}
.articulo__cuerpo h2{margin-top:1.4em}
.articulo__cuerpo h3{margin-top:1.2em}
.articulo__cuerpo img{border-radius:16px}
.articulo__cuerpo table{border-collapse:collapse;width:100%;font-size:16px;display:block;overflow-x:auto}
.articulo__cuerpo th,.articulo__cuerpo td{border:2px solid var(--linea);padding:8px 10px;text-align:left}
.fichas-blog-summary{background:var(--pista-fondo);border-radius:20px;padding:14px 20px;margin:18px 0}
.fichas-blog-summary h2{font-size:22px;margin:0 0 6px}
.fichas-blog-related{background:var(--cielo);border-radius:20px;padding:14px 20px;margin:24px 0}
.fichas-blog-related h2{font-size:22px;margin:0 0 6px}
.articulo__cta{max-width:820px}

/* ------------------------------------------------ contacto y sobre */
.contacto{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:28px;align-items:start}
@media (max-width:860px){.contacto{grid-template-columns:1fr}}
.contacto__form{background:#fff;border:3px solid var(--linea);border-radius:28px;padding:24px;display:flex;flex-direction:column;gap:18px}
.contacto__form[hidden]{display:none}
.contacto__form label{display:flex;flex-direction:column;gap:6px;font-weight:800}
.contacto__form label .meta{font-weight:600}
.contacto__form input[type=text],.contacto__form input[type=email],.contacto__form input[type=url],.contacto__form textarea{font:600 17px var(--texto);color:var(--tinta);border:3px solid var(--linea);border-radius:16px;padding:12px 14px;background:var(--gris);width:100%}
.contacto__form :is(input,textarea):focus{outline:none;border-color:var(--azul);background:#fff}
.contacto__form fieldset{border:0;margin:0;padding:0;min-width:0}
.contacto__form legend{font:800 22px var(--titulos);padding:0;margin-bottom:12px}
.contacto__form legend .meta{font:600 14px var(--texto)}
.contacto__motivos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.contacto__motivos legend{grid-column:1/-1}
@media (max-width:560px){.contacto__motivos{grid-template-columns:1fr}}
.contacto__form .motivo{position:relative;flex-direction:row;align-items:flex-start;gap:12px;padding:14px 16px;border:3px solid var(--linea);border-radius:20px;background:#fff;cursor:pointer;font-weight:600;transition:border-color .15s,background .15s}
.motivo:hover{border-color:#C9D2E6}
.motivo input{position:absolute;opacity:0;pointer-events:none}
.motivo:has(input:checked){border-color:var(--elegida);background:var(--elegida-fondo)}
.motivo:has(input:focus-visible){outline:4px solid var(--sol);outline-offset:2px}
.motivo__icono{flex:none;display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:var(--gris)}
.motivo:has(input:checked) .motivo__icono{background:#fff}
.motivo__icono svg{width:24px;height:24px;fill:none;stroke:var(--tinta);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.motivo__texto{display:flex;flex-direction:column;gap:2px;color:var(--tinta-2);font-size:15px;line-height:1.35}
.motivo__texto strong{font:800 18px/1.2 var(--titulos);color:var(--tinta)}
.contacto__pista{margin:-4px 0 0;padding:10px 14px;border-radius:14px;background:var(--pista-fondo);color:var(--pista-texto);font-weight:700}
.contacto__form [data-campo-url][hidden]{display:none}
.contacto__perfil{display:flex;flex-wrap:wrap;gap:8px}
.contacto__perfil legend{font:800 17px var(--texto);margin-bottom:8px}
.contacto__form .chip-radio{flex-direction:row;cursor:pointer}
.chip-radio input{position:absolute;opacity:0;pointer-events:none}
.chip-radio span{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border-radius:999px;background:var(--gris);border:2px solid transparent;font:800 16px var(--texto)}
.chip-radio input:checked + span{background:var(--elegida-fondo);border-color:var(--elegida)}
.chip-radio input:focus-visible + span{outline:4px solid var(--sol);outline-offset:2px}
.contacto__fila{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:560px){.contacto__fila{grid-template-columns:1fr}}
.contacto__check{flex-direction:row !important;align-items:flex-start;font-weight:600 !important}
.contacto__check input{width:22px;height:22px;flex:none;margin-top:2px}
.contacto__oculto{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.contacto__enviar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px}
.contacto__enviar .boton{min-height:56px;padding:0 30px;font-size:20px}
.contacto__enviar .boton:disabled{opacity:.6;cursor:wait}
.contacto__enviar .meta{flex:1 1 220px;margin:0}
.contacto__resultado{border-radius:28px;padding:24px;outline:none}
.contacto__resultado h2{margin:0 0 8px;font-size:26px}
.contacto__resultado p{margin:0 0 14px}
.contacto__resultado p:last-child{margin:0}
.contacto__resultado--bien{background:var(--bien-fondo);color:var(--bien-texto);grid-column:1}
.contacto__resultado--mal{background:var(--pista-fondo);color:var(--pista-texto);grid-column:1/-1}
.contacto__resultado--bien h2{color:var(--bien-texto)}
@media (max-width:860px){.contacto__resultado--bien{grid-column:auto}}
.contacto__lateral{display:flex;flex-direction:column;gap:16px}
.contacto__tarjeta{background:var(--gris);border-radius:24px;padding:20px}
.contacto__tarjeta h2{font-size:21px;margin:0 0 8px}
.contacto__tarjeta p{margin:0 0 12px}
.contacto__tarjeta p:last-child{margin:0}
.contacto__tarjeta details{border-top:2px solid var(--linea);padding:10px 0}
.contacto__tarjeta details:last-child{padding-bottom:0}
.contacto__tarjeta summary{font-weight:800;cursor:pointer}
.contacto__tarjeta details p{margin:8px 0 0;color:var(--tinta-2)}
.contacto__tarjeta--correo{background:var(--cielo)}
.contacto__tarjeta--correo .enlace{margin-top:4px}
.aviso-fallo{margin:14px 0 0;color:var(--tinta-2);font-weight:600;text-align:center}
.sobre{max-width:820px}
.sobre__ideas{margin:10px 0 24px}
.sobre__idea{background:#fff;border:3px solid var(--linea);border-radius:22px;padding:16px}
.sobre__idea b{font:800 28px var(--titulos);color:var(--coral)}
.sobre__idea h3{margin:4px 0}
.sobre__idea p{font-size:16px;margin:0}

.pie__cookies{font-size:inherit;color:var(--tinta-2)}
/* ------------------------------------------------ hoja para imprimir (fichas) */
.hoja{display:none}
.dialogo-imprimir{border:0;border-radius:28px;padding:24px;max-width:440px;width:calc(100% - 32px);box-shadow:0 20px 60px rgba(35,38,59,.3)}
.dialogo-imprimir::backdrop{background:rgba(35,38,59,.45)}
.dialogo-imprimir h2{font-size:26px;margin:0 0 6px}
.dialogo-imprimir__opciones{display:flex;flex-direction:column;gap:10px;margin:14px 0 8px}
.dialogo-imprimir__cerrar{display:block;margin:6px auto 0}
@page{size:A4;margin:12mm 13mm 12mm}
@media print{
  body.pagina-ficha{background:#fff;font:400 12pt/1.4 var(--texto);color:#111}
  body.pagina-ficha main > :not(.hoja){display:none !important}
  .pagina-ficha .hoja{display:block}
  .pagina-ficha .hoja--soluciones{display:none}
  .imprimir-soluciones .hoja--soluciones{display:block;break-before:page}
  .hoja--texto{break-before:page}
  .hj-renglones{margin:4pt 0 0;padding-left:20pt;font:800 12pt var(--titulos)}
  .hj-renglones li{padding-top:4pt}
  .hj-renglon{display:block;height:13mm;border-bottom:1.2pt solid #555;background:linear-gradient(transparent 62%,#e3e3e3 62%,#e3e3e3 64%,transparent 64%)}
  .pagina-dictado .hj-renglones li{break-inside:avoid}
  .hj-cab{display:flex;align-items:center;gap:12px;border-bottom:2.5pt solid #1B2440;padding-bottom:6pt;margin-bottom:8pt}
  .hj-marca{display:flex;align-items:center;gap:5pt;font:800 15pt var(--titulos);color:#1B2440;flex:none}
  .hj-marca b{color:#E8403D}
  .hj-titulo{flex:1;min-width:0}
  .hj-titulo h1{font:800 20pt/1.1 var(--titulos);margin:0;color:#111}
  .hj-meta{font:700 9.5pt var(--texto);color:#555;margin:0 0 2pt;text-transform:uppercase;letter-spacing:.04em}
  .hj-qr{display:flex;align-items:center;gap:5pt;flex:none;font:700 8pt/1.2 var(--texto);color:#333;text-align:left}
  .hj-qr svg{width:21mm;height:21mm}
  .hj-cab--sol .hj-titulo h1{font-size:16pt}
  .hj-datos{display:flex;gap:16pt;font:700 11pt var(--texto);margin:0 0 8pt}
  .hj-datos span{display:flex;align-items:flex-end;gap:4pt;flex:1}
  .hj-datos span:last-child{flex:0 0 auto}
  .hj-datos i{flex:1;border-bottom:1pt solid #333;min-width:30mm;height:12pt}
  .hj-datos i.hj-corto{flex:0 0 12mm;min-width:12mm}
  .hj-consigna{font-weight:700;margin:0 0 6pt}
  .hj-regla{border:1.5pt solid #D9A400;background:#FFF6D1;border-radius:8pt;padding:6pt 10pt;margin:0 0 8pt;font-size:11pt}
  .hj-regla > strong{display:block;font:800 11pt var(--titulos)}
  .hj-regla p{margin:2pt 0}
  .hj-ejercicios{margin:0;padding-left:0;list-style:none;counter-reset:ej}
  .hj-ej{counter-increment:ej;position:relative;padding:6pt 0 8pt 26pt;border-bottom:.75pt dashed #bbb;break-inside:avoid}
  .hj-ej:last-child{border-bottom:0}
  .hj-ej::before{content:counter(ej);position:absolute;left:0;top:6pt;width:18pt;height:18pt;border-radius:50%;background:#1B2440;color:#fff;font:800 10pt/18pt var(--titulos);text-align:center;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .hj-enunciado{font:800 12.5pt/1.3 var(--titulos);margin:0 0 3pt}
  .hj-hint{font-size:9pt;color:#666;margin:0 0 4pt;font-style:italic}
  .hj-visual{margin:2pt 0 6pt;text-align:center}
  .hj-visual img{max-height:34mm;width:auto;max-width:100%}
  .hj-leyenda{margin:0 0 4pt;font-size:10.5pt}
  .hj-visual svg{max-height:55mm;width:auto;max-width:100%}
  .hj-visual table{border-collapse:collapse;margin:0 auto;font-size:10.5pt}
  .hj-visual td,.hj-visual th{border:1pt solid #999;padding:3pt 6pt}
  .hj-visual p{text-align:left;margin:2pt 0}
  .hj-opciones{display:flex;flex-wrap:wrap;gap:4pt 18pt;list-style:none;margin:0;padding:0}
  .hj-opciones--lista{flex-direction:column}
  .hj-opciones li,.hj-vf span,.hj-palabras li,.hj-orden li{display:flex;align-items:center;gap:5pt}
  .hj-circulo{width:11pt;height:11pt;border:1.3pt solid #333;border-radius:50%;flex:none}
  .hj-caja{width:11pt;height:11pt;border:1.3pt solid #333;border-radius:2pt;flex:none;display:inline-block}
  .hj-caja--num{width:18pt;height:16pt}
  .hj-vf{display:flex;gap:24pt}
  .hj-huecos p,.hj-huecos .frase-completar{margin:3pt 0}
  .hj-huecos .frase-completar{line-height:2}
  .hj-hueco{display:inline-block;border-bottom:1.2pt solid #333;height:1.1em;vertical-align:baseline;margin:0 3pt}
  .hj-banco{display:flex;flex-wrap:wrap;gap:4pt;margin:2pt 0 6pt}
  .hj-banco span{border:1pt solid #999;border-radius:10pt;padding:1pt 8pt;font-size:10.5pt}
  .hj-grupos{display:grid;grid-template-columns:repeat(auto-fit,minmax(40mm,1fr));gap:6pt}
  .hj-grupo{border:1.2pt solid #555;border-radius:6pt;padding:4pt 8pt 6pt}
  .hj-grupo strong{display:block;font:800 10.5pt var(--titulos);margin-bottom:2pt}
  .hj-linea{display:block;border-bottom:1pt solid #888;height:16pt}
  .hj-unir{display:flex;justify-content:space-between;gap:30mm;max-width:150mm}
  .hj-unir ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7pt}
  .hj-unir ul:first-child li{justify-content:flex-end;text-align:right}
  .hj-unir li{display:flex;align-items:center;gap:6pt;min-height:16pt}
  .hj-unir img{max-height:18mm;width:auto}
  .hj-punto{width:6pt;height:6pt;border-radius:50%;background:#333;flex:none;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .hj-orden{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5pt}
  .hj-sopa-caja{display:flex;gap:14pt;align-items:flex-start}
  .hj-sopa{border-collapse:collapse;font:700 12pt monospace}
  .hj-sopa td{border:.75pt solid #aaa;width:16pt;height:16pt;text-align:center;padding:0}
  .hj-sopa td.hj-sopa-ok{background:#FFE08A;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .hj-palabras{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4pt}
  .hj-trazo{height:20mm;border-top:.75pt solid #bbb;border-bottom:1.2pt solid #555;display:flex;align-items:center;padding-left:4pt;overflow:hidden}
  .hj-trazo--libre{margin-top:4pt}
  .hj-trazo-guia{font:600 17mm/1 var(--titulos);color:transparent;-webkit-text-stroke:.7pt #888;letter-spacing:.06em;white-space:nowrap}
  .hj-pie{display:flex;justify-content:space-between;gap:10pt;border-top:1pt solid #999;margin-top:10pt;padding-top:4pt;font-size:8.5pt;color:#555}
  .hj-soluciones{font-size:11pt;padding-left:22pt}
  .hj-soluciones li{margin:3pt 0;break-inside:avoid}
  .hj-soluciones .hj-sopa{font-size:9pt;margin-top:3pt}
  .hj-soluciones .hj-sopa td{width:12pt;height:12pt}
  .hj-regla,.hj-cab{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .etapa-infantil .hoja{font-size:15pt}
  .etapa-infantil .hj-enunciado{font-size:16pt}
  .etapa-infantil .hj-opciones{gap:6pt 26pt;font-size:16pt}
  .etapa-infantil .hj-circulo{width:15pt;height:15pt}
  .etapa-infantil .hj-visual img{max-height:55mm}
  .etapa-infantil .hj-trazo{height:28mm}
  .etapa-infantil .hj-trazo-guia{font-size:24mm}
  .dialogo-imprimir{display:none !important}
}

/* ------------------------------------------------ anuncios */
.anuncio{margin:24px auto;max-width:970px;text-align:center}
.anuncio--listado-medio{margin:32px auto}
.anuncio-marca{display:block;height:1px}
.anuncio__etiqueta{display:block;font:700 11px var(--texto);letter-spacing:.08em;text-transform:uppercase;color:var(--tinta-2);margin-bottom:4px}
.anuncio__hueco{min-height:90px}
.franja-pruebas ~ main .anuncio__hueco{display:flex;align-items:center;justify-content:center;min-height:120px;border:2px dashed var(--linea);border-radius:16px;background:var(--gris);color:var(--tinta-2);font-size:14px}
.articulo__cuerpo .anuncio{margin:28px 0}
@media print{.anuncio{display:none !important}}

/* ------------------------------------------------ 404 */
.e404{max-width:880px}
.e404__hoja{background:#fff;border:3px solid var(--tinta);border-radius:28px;padding:26px 28px 30px;box-shadow:0 8px 0 rgba(35,38,59,.12);counter-reset:ej404}
.e404__cabecera{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 20px;padding-bottom:14px;margin-bottom:18px;border-bottom:3px solid var(--tinta)}
.e404__sello{display:inline-block;padding:6px 14px;border-radius:999px;background:var(--sol);font:800 16px var(--titulos);transform:rotate(-2deg)}
.e404__datos{display:flex;align-items:baseline;gap:8px;font-weight:800;color:var(--tinta-2)}
.e404__datos i{display:inline-block;width:150px;border-bottom:2px solid var(--tinta-2);margin:0 14px 0 6px}
.e404__datos b{font-weight:600;color:var(--tinta-2)}
.e404 h1{margin:0 0 10px;font-size:clamp(32px,6vw,48px);line-height:1.05}
.e404 .entradilla{margin:0 0 6px;max-width:640px}
.e404__ejercicio{counter-increment:ej404;position:relative;padding:20px 0 4px 46px;border-top:2px dashed var(--linea);margin-top:18px}
.e404__ejercicio[hidden]{display:none}
.e404__ejercicio::before{content:counter(ej404);position:absolute;left:0;top:18px;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--tinta);color:#fff;font:800 16px var(--titulos)}
.e404__ejercicio h2{margin:0 0 10px;font-size:22px}
.e404__ejercicio h2 .meta{font:600 15px var(--texto)}
.e404__ejercicio > p{margin:0 0 10px}
.e404__lista{display:grid;gap:10px;margin-top:10px}
.e404__extra::before{content:"+";background:var(--sol);color:var(--tinta)}
.e404__opciones{display:flex;flex-wrap:wrap;gap:10px}
.opcion-404{min-height:52px;padding:0 20px;border-radius:18px;border:var(--borde-juguete);background:#fff;font:800 18px var(--titulos);color:var(--tinta);cursor:pointer;box-shadow:0 4px 0 var(--tinta)}
.opcion-404:hover{background:var(--gris)}
.opcion-404.es-bien{background:var(--bien-fondo);border-color:var(--bien);box-shadow:0 4px 0 var(--bien)}
.opcion-404.es-mal{background:var(--pista-fondo)}
.e404__aviso{margin:18px 0 0;text-align:center;font-weight:600;color:var(--tinta-2)}
@media (max-width:560px){.e404__hoja{padding:20px 18px 24px}.e404__ejercicio{padding-left:0;padding-top:58px}.e404__ejercicio::before{top:18px}.e404__nombre{display:none}}

/* ------------------------------------------------ impresión: toda la ficha, sin interfaz */
@media print{
  .cabecera,.pie,.franja-pruebas,.ficha-barra,.ficha-acciones,.ficha-herramientas,.paso-feedback,.escuchar,.boton-mini,.seccion,.texto-seo,.panel-familias,.ficha-fin,.trazo-actions,.memory-actions,.memory-stats{display:none !important}
  body,.pagina-ficha main{background:#fff;font-size:12pt}
  .ficha [data-ej]{display:block !important;break-inside:avoid;margin-bottom:12px}
  .paso-tarjeta{box-shadow:none;border:1.5px solid #999;padding:12px}
  .ficha .memory-card-front{display:none}
  .ficha .memory-card-back{transform:none;position:static}
  .ficha .memory-card{aspect-ratio:auto;min-height:60px}
}
.ficha .visual table,.ficha .visual td,.ficha .visual th{overflow-wrap:normal;word-break:normal;hyphens:none}
.ficha-vista-previa{margin:18px 0 0;max-width:420px}
.ficha-vista-previa img{width:100%;height:auto;border-radius:16px;border:2px solid var(--linea)}
.ficha-vista-previa figcaption{font-size:14px;color:var(--tinta-2);margin-top:6px}

/* Buscador */
.buscador{max-width:760px}
.buscador__caja{display:flex;gap:10px;margin:8px 0 14px}
.buscador__caja input{flex:1;min-width:0;font:700 20px var(--texto);padding:14px 18px;border-radius:999px;border:3px solid var(--tinta);background:#fff;color:var(--tinta)}
.buscador__caja input:focus{outline:4px solid var(--sol);outline-offset:2px}
.buscador__filtros{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.buscador__estado{color:var(--tinta-2);margin:4px 0 12px;font-weight:700}
.buscador__grupo{margin:22px 0 10px;font-size:20px}
.buscador__lista{display:grid;gap:10px}
.buscador__sugerencias a{margin:0 6px 6px 0}

/* Cuentas de familias */
.boton--verde{background:var(--verde-boton);color:#fff}
.boton--verde:hover{background:var(--verde-boton-osc);color:#fff}
.boton--rojo{background:var(--mal);color:#fff}
.enlace--peligro{color:var(--mal-texto);margin-top:10px}
.chip--marcado{background:var(--bien-fondo);color:var(--bien-texto)}
.zona-familias{margin-bottom:40px}
.familias__dos{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:20px}
.familias__estrecho{max-width:480px}
.tarjeta-form{background:#fff;border-radius:24px;padding:22px;box-shadow:0 0 0 2px var(--linea),0 6px 0 rgba(35,38,59,.08);display:flex;flex-direction:column;gap:14px}
.tarjeta-form--suave{background:var(--cielo);box-shadow:none}
.tarjeta-form h2{margin:0;font-size:24px}
.tarjeta-form label{display:flex;flex-direction:column;gap:6px;font-weight:800}
.tarjeta-form input[type=email],.tarjeta-form input[type=password],.tarjeta-form input:not([type]),.tarjeta-form select,.dialogo-perfil input:not([type=radio]),.dialogo-perfil select{font:600 17px var(--texto);padding:12px 14px;border-radius:14px;border:2px solid var(--tinta-2);background:#fff;color:var(--tinta)}
.tarjeta-form .casilla{flex-direction:row;align-items:flex-start;gap:10px;font-weight:600}
.tarjeta-form .casilla input{width:22px;height:22px;flex:none;margin-top:2px}
.tarjeta-form .boton{align-self:flex-start}
.familias__lista{margin:0;padding-left:20px;display:grid;gap:6px}
.familias__aviso{padding:14px 18px;border-radius:16px;background:var(--pista-fondo);color:var(--pista-texto);font-weight:700}
.familias__aviso--bien{background:var(--bien-fondo);color:var(--bien-texto)}
.familias__aviso--error{background:var(--mal-fondo);color:var(--mal-texto)}
.familias__importar{background:var(--pista-fondo);border-radius:18px;padding:14px 18px;margin-bottom:16px;display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.familias__importar p{margin:0;flex-basis:100%}
.familias__importar select{appearance:none;-webkit-appearance:none;min-height:56px;min-width:150px;padding:0 48px 0 20px;border:3px solid var(--tinta-2);border-radius:999px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='10' viewBox='0 0 16 10'%3E%3Cpath d='M2 2l6 6 6-6' fill='none' stroke='%2323263B' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 18px center;font:800 19px var(--titulos);color:var(--tinta);cursor:pointer}
.familias__importar select:focus{outline:none;border-color:var(--azul)}
.avatar{border-radius:50%;flex:none;background:var(--gris);height:auto;aspect-ratio:1/1;object-fit:cover;align-self:flex-start}
.perfiles-rejilla{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:16px}
.perfil-tarjeta{display:flex;gap:14px;background:#fff;border-radius:24px;padding:18px;box-shadow:0 0 0 2px var(--linea),0 6px 0 rgba(35,38,59,.08)}
.perfil-tarjeta--activo{box-shadow:0 0 0 3px var(--verde-boton),0 6px 0 rgba(35,38,59,.08)}
.perfil-tarjeta h2{margin:0;font-size:24px}
.perfil-tarjeta p{margin:2px 0}
.perfil-tarjeta__estrellas{font:800 20px var(--titulos);color:var(--sol-osc)}
.perfil-tarjeta__acciones{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}
.perfil-nuevo{border:3px dashed var(--linea);border-radius:24px;background:transparent;font:800 18px var(--texto);color:var(--tinta-2);min-height:140px;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}
.perfil-nuevo span{font-size:40px;line-height:1}
.perfil-nuevo:hover{border-color:var(--azul);color:var(--azul)}
.perfil-detalle{margin-top:28px;background:#fff;border-radius:28px;padding:22px;box-shadow:0 0 0 2px var(--linea)}
.perfil-detalle__cab{display:flex;gap:16px;align-items:center}
.perfil-detalle__cab h2{margin:0}
.perfil-detalle h3{margin:26px 0 10px;font-size:20px}
.nivel{margin:6px 0}
.barra{height:12px;border-radius:999px;background:var(--gris);overflow:hidden;min-width:120px}
.barra span{display:block;height:100%;background:var(--sol);border-radius:999px}
.barra--mates span{background:var(--azul)}.barra--lengua span{background:var(--coral)}.barra--ingles span{background:var(--morado)}.barra--medio span{background:var(--verde-boton)}
.asignaturas-progreso{display:grid;gap:10px}
.asig-fila{display:grid;grid-template-columns:minmax(120px,200px) 1fr auto;gap:12px;align-items:center}
@media (max-width:600px){.asig-fila{grid-template-columns:1fr}}
.asig-fila__nombre{font-weight:800}
.ultimas{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.ultimas li{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline}
.ultimas a{display:inline;min-height:0;font-weight:700}
.ultimas__fecha{display:inline-block;min-width:64px;color:var(--tinta-2);font-weight:700}
.dialogo-perfil{border:0;border-radius:28px;padding:24px;max-width:480px;width:calc(100% - 32px);box-shadow:0 20px 60px rgba(35,38,59,.3)}
.dialogo-perfil form{display:flex;flex-direction:column;gap:14px}
.dialogo-perfil label{display:flex;flex-direction:column;gap:6px;font-weight:800}
.dialogo-perfil h2{margin:0}
.avatares{border:0;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}
.avatares legend{font-weight:800;margin-bottom:6px}
.avatar-opcion{position:relative;cursor:pointer}
.avatar-opcion input{position:absolute;opacity:0}
.avatar-opcion img{border-radius:50%;border:3px solid transparent;display:block}
.avatar-opcion input:checked + img{border-color:var(--verde-boton);box-shadow:0 0 0 3px var(--bien-fondo)}
.avatar-opcion input:focus-visible + img{outline:3px solid var(--sol)}
.dialogo-perfil__acciones{display:flex;gap:14px;align-items:center}
.chip-familia{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--tinta);background:var(--gris);border-radius:999px;padding:4px 14px 4px 4px;font-weight:800;font-size:15px;flex:none;margin-left:auto}
.chip-familia span{white-space:nowrap}
.chip-familia small{display:block;font-size:11px;color:var(--tinta-2);text-transform:uppercase;letter-spacing:.04em;line-height:1}
.chip-familia:not(:has(img)){padding:10px 16px}
.menu + .chip-familia{margin-left:0}
@media (max-width:420px){.cabecera__fila{gap:10px}.chip-familia:not(:has(img)){padding:8px 12px}.chip-familia{font-size:14px}}
@media (max-width:380px){.logo{font-size:22px;gap:6px}}
@media (max-width:900px){.chip-familia{margin-left:auto}.chip-familia ~ .buscar-abrir{margin-left:0}}
@media (max-width:420px){.chip-familia small{display:none}.chip-familia{font-size:14px}}
.toast-familia{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:50;background:var(--tinta);color:#fff;border-radius:18px;padding:10px 18px;display:flex;align-items:center;gap:10px;font-weight:700;box-shadow:0 10px 30px rgba(35,38,59,.3);transition:opacity .5s;max-width:calc(100% - 32px)}
.toast-familia a{color:var(--sol)}
.toast-familia.fuera{opacity:0}
.familias__barra{display:flex;justify-content:flex-end;align-items:center;gap:14px;margin:-8px 0 16px}
.tarjeta-form--peligro{margin-top:28px;max-width:640px;box-shadow:0 0 0 2px var(--mal-fondo),0 6px 0 rgba(35,38,59,.06)}
.tarjeta-form--peligro h2{color:var(--mal-texto)}
