/* Duditopia · Ejercicios (/ejercicios/**) y Fichas (/fichas/). Copiado por tools/duditopia/build_ejercicios_dudi.js.
   Va con /dt/cabecera.css + /dt/sitio.css (los añade build_web.py: banda de acuarela, grano de papel, cabecera y pie).
   Tarjetas de papel, aros de lápiz finos, marcadores de cera; acento suave por materia en <body class="t-<materia>">. */
body{--acc:#f2b84b;--acc-l:#f8ebc8;--acc-d:#6b5a2e;--ink:#1f2b25;--ink2:#3a4a42;--moss:#2f4a3a;--coral:#a5462f;--card:#f8f4ea;
  --aro:0 0 0 1.4px rgba(31,43,37,.55) inset;--aro-s:1.5px 2px 0 -.4px rgba(31,43,37,.28);
  --carta:0 0 0 1px rgba(60,50,30,.10),0 18px 30px -24px rgba(50,40,20,.55)}
.t-mates,.s-mates{--acc:#8fb3d1;--acc-l:#e3edf5;--acc-d:#2c5470}
.t-lengua,.s-lengua{--acc:#e3866b;--acc-l:#f6ddd2;--acc-d:#a5462f}
.t-ingles,.s-ingles{--acc:#a58fc9;--acc-l:#ebe4f3;--acc-d:#5b4486}
.t-naturales,.s-naturales{--acc:#9cbf86;--acc-l:#dfe8d6;--acc-d:#3d5a3a}
.t-sociales,.s-sociales{--acc:#f2b84b;--acc-l:#f8ebc8;--acc-d:#6b5a2e}
.t-logica,.s-logica{--acc:#a9cbd6;--acc-l:#e3edf0;--acc-d:#2f5f6e}
.skip{position:absolute;left:12px;top:-60px;z-index:40;background:var(--moss);color:#fff!important;padding:10px 16px;border-radius:8px;text-decoration:none}
.skip:focus{top:12px}
b,strong{font-weight:700}
img{max-width:100%}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- cabecera ilustrada (sobre la banda de acuarela de sitio.css) ---------- */
.hero-in{max-width:1140px;margin:0 auto;padding:10px clamp(16px,4vw,40px) 26px;display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,400px);gap:40px;align-items:center}
.h-txt{min-width:0}
.migas ol{list-style:none;display:flex;flex-wrap:wrap;gap:2px;padding:0;margin:0 0 12px;font-size:14.5px;font-weight:600;color:var(--ink2)}
.migas li+li::before{content:"›";margin:0 7px 0 3px;opacity:.6}
body .migas a{color:var(--ink2);text-decoration:none}body .migas a:hover{text-decoration:underline;color:var(--ink)}
.migas li[aria-current]{color:var(--ink)}
h1{font:650 clamp(2rem,4.2vw,3.1rem)/1.06 var(--dt-disp);letter-spacing:-.025em;margin:4px 0 14px;overflow-wrap:anywhere}
.lead{font-size:18.5px;color:var(--ink2);margin:0 0 6px;max-width:40em}
.h-art{position:relative;justify-self:end;width:100%}
.h-img{display:block;width:100%;height:auto;border-radius:7px 10px 8px 12px;box-shadow:var(--carta);transform:rotate(.6deg);background:#f6f1e4}
.h-art .mochila{position:absolute;right:-12px;top:-22px;transform:rotate(7deg);filter:drop-shadow(0 6px 8px rgba(50,40,20,.18))}
.h-dudi{position:absolute;left:-30px;bottom:-26px;width:104px;height:auto;filter:drop-shadow(0 6px 8px rgba(50,40,20,.15))}
.mochila{position:relative;display:inline-block;width:var(--w);flex:none;line-height:0}
.mochila img{display:block;width:100%;height:auto}
.mochila b{position:absolute;left:31%;right:31%;top:43.5%;height:17%;display:grid;place-items:center;font:800 calc(var(--w)*.15)/1 var(--dt-disp);color:var(--moss);letter-spacing:-.02em;white-space:nowrap;line-height:1}

/* ---------- cuerpo ---------- */
.wrap{max-width:1140px;margin:0 auto;padding:6px clamp(16px,4vw,40px) 30px}
h2{font:650 24px/1.2 var(--dt-disp);letter-spacing:-.02em;margin:0 0 10px}
h2.tit{font-size:clamp(26px,3vw,34px);margin:44px 0 20px;display:flex;align-items:center;gap:12px}
h2.tit::before{content:"";width:34px;height:12px;flex:none;background:url(/assets/marcador-amarillo.webp) center/100% 100% no-repeat;opacity:.9}
h3{font:650 19px/1.25 var(--dt-disp);margin:14px 0 8px}
body h3 a,body h2 a{color:var(--ink);text-decoration:none}body h3 a:hover,body h2 a:hover{text-decoration:underline;color:var(--ink)}
.card{position:relative;background:var(--card) url(/dt/grano.webp);border-radius:6px 9px 7px 10px;box-shadow:var(--carta);padding:22px 24px;margin:24px 0}
.card p:first-of-type{margin-top:0}.card p:last-child{margin-bottom:0}
.card-h{display:flex;align-items:center;gap:14px;margin-bottom:12px;padding-bottom:10px;background:url(/assets/linea.webp) repeat-x left bottom/160px 4px}
.card-h h2{margin:0}
.card-h .ico{flex:none;line-height:0}.card-h .ico img{width:52px;height:auto}
.ctas{display:flex;flex-wrap:wrap;gap:12px;margin:20px 0 4px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:50px;padding:10px 22px;border-radius:999px;border:0;
  font:650 16.5px/1.15 var(--dt-disp);text-decoration:none;text-align:center;cursor:pointer;transition:transform .2s}
.btn:hover{transform:translateY(-2px)}
body .btn.pri,body .btn.pri:hover{background:#a5462f;color:#fff9f2;box-shadow:0 0 0 1.2px rgba(80,24,12,.55) inset,1.5px 2px 0 -.4px rgba(80,24,12,.3),0 10px 24px -12px rgba(120,40,20,.6)}
body .btn.sec,body .btn.sec:hover{background:rgba(247,242,231,.92);color:var(--ink);box-shadow:var(--aro),var(--aro-s)}
.btn .bi{width:22px;height:22px;flex:none}
.btn.sm{min-height:42px;padding:7px 16px;font-size:15px}.btn.sm .bi{width:18px;height:18px}

/* ejercicio resuelto + truco de Dudi */
.como{background-color:#fbf7ee}
.ej-res{background:#fffdf7;border-radius:10px;box-shadow:0 0 0 1.4px rgba(31,43,37,.35) inset;padding:12px 16px;margin-bottom:12px;border:1.5px dashed transparent}
.pasos{counter-reset:p;list-style:none;padding:0;margin:14px 0}
.pasos li{counter-increment:p;position:relative;padding:4px 0 4px 42px;min-height:32px}
.pasos li::before{content:counter(p);position:absolute;left:0;top:2px;width:29px;height:29px;border-radius:50% 46% 52% 48%;background:var(--acc-l);
  box-shadow:0 0 0 1.4px rgba(31,43,37,.5) inset;color:var(--ink);text-align:center;font:700 15px/29px var(--dt-disp)}
.solu{font-size:18px;font-weight:600;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ok-ico{width:26px;height:26px;flex:none}
.dudi-tip{display:flex;align-items:flex-end;gap:12px;margin-top:14px}
.dudi-tip .dudi{width:96px;height:auto;flex:none;margin-bottom:-6px}
.bocadillo{position:relative;flex:1;margin:0 0 18px;background:#fffdf7;border-radius:14px 16px 14px 18px;padding:12px 16px;box-shadow:0 0 0 1.4px rgba(31,43,37,.45) inset,var(--aro-s);color:var(--ink2)}
.bocadillo::before{content:"";position:absolute;left:-9px;bottom:14px;width:16px;height:16px;background:#fffdf7;transform:rotate(45deg);box-shadow:-1.4px 1.4px 0 0 rgba(31,43,37,.45)}
.bocadillo b{color:var(--coral)}
.vis{display:flex;justify-content:center;margin:10px 0}
.vis svg{max-width:100%;height:auto;max-height:300px}

/* lista de ejercicios */
.ejs{list-style:none;padding:0;margin:0;display:grid;gap:20px;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
.ej{background:#fffdf7 url(/dt/grano.webp);border-radius:7px 10px 8px 11px;padding:16px 20px 18px;min-width:0;box-shadow:var(--carta)}
.ej-cab{display:flex;align-items:center;gap:10px;margin-bottom:4px}
.num{min-width:36px;height:36px;padding:0 6px;border-radius:50% 46% 52% 48%;background:var(--acc);box-shadow:0 0 0 1.4px rgba(31,43,37,.55) inset,var(--aro-s);
  color:var(--ink);display:grid;place-items:center;font:700 18px/1 var(--dt-disp)}
.nivel{font:700 12px/1.2 var(--dt-letra);letter-spacing:.08em;text-transform:uppercase;padding:5px 11px 4px;border-radius:999px;box-shadow:0 0 0 1.2px currentColor inset}
.nivel.facil{background:#dfe8d6;color:#3d5a3a}.nivel.medio{background:#f8ebc8;color:#6b5a2e}.nivel.reto{background:#f6ddd2;color:#a5462f}
.enun{font-size:19px;font-weight:600;margin:8px 0;overflow-wrap:anywhere}
.hueco{display:inline-block;min-width:2.6em;height:1.25em;border-bottom:2.5px solid var(--ink);vertical-align:-3px;background:#f8ebc8;border-radius:6px 6px 0 0}
.opts{display:flex;flex-wrap:wrap;gap:10px 12px;padding:0;margin:12px 0;list-style:none;counter-reset:o}
.opts li{counter-increment:o;border-radius:10px;padding:7px 14px 7px 8px;background:#fff;display:flex;align-items:center;gap:8px;font-weight:600;box-shadow:var(--aro),var(--aro-s)}
.opts li::before{content:counter(o,upper-alpha);font:700 13px/22px var(--dt-disp);color:var(--ink);background:var(--acc-l);border-radius:50%;min-width:24px;text-align:center}
.mini{display:inline-flex;vertical-align:middle}.mini svg{width:64px;height:64px}
.opts-svg .mini svg{width:72px;height:72px}
.lbl{color:#4f5c54}
.fichas{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:6px 0}
.fichas li{border-radius:8px;padding:5px 12px;background:#f8ebc8;font-weight:700;box-shadow:var(--aro)}
.huecos{margin:8px 0;padding-left:26px}.huecos li{margin:7px 0}
.huecos .mini svg{width:auto;height:56px}
.parejas{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px 24px}
.parejas ol{margin:4px 0;padding-left:28px}.parejas li{margin:6px 0}
.resp{margin:10px 0}.linea{display:inline-block;width:8em;border-bottom:2px solid var(--ink)}
.hint{margin:8px 0 2px;color:#4f5c54;font-size:15.5px;font-weight:600}
details.sol{margin-top:12px}
details.sol summary{cursor:pointer;display:inline-flex;align-items:center;gap:8px;min-height:42px;list-style:none;background:rgba(247,242,231,.92);color:var(--moss);
  box-shadow:var(--aro),var(--aro-s);border-radius:999px;padding:7px 16px;font:650 15px/1.1 var(--dt-disp)}
details.sol summary::before{content:"+";font:700 19px/1 var(--dt-disp)}
details.sol[open] summary::before{content:"−"}
details.sol summary::-webkit-details-marker{display:none}
details.sol>div{margin-top:12px;background:#eef3e8;border-radius:10px;padding:12px 16px;box-shadow:0 0 0 1.2px rgba(61,90,58,.5) inset}
.orden,.pares{margin:4px 0}
.print-sol{display:none}

/* final, practica, relacionados, FAQ */
.cta-fin{display:flex;gap:18px;align-items:center;background-color:#f1f4e8}
.dudi-fin{width:120px;height:auto;flex:none}
.cta-fin .ctas{margin:12px 0 0}
.practica h2{margin-bottom:14px}
.pr-g{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
body a.pr{display:flex;flex-direction:column;text-decoration:none;color:var(--ink);background:#fffdf7;border-radius:7px 10px 8px 11px;overflow:hidden;box-shadow:var(--aro),var(--aro-s);transition:transform .2s}
body a.pr:hover{transform:translateY(-3px) rotate(-.3deg);color:var(--ink)}
.pr img{width:100%;height:auto;aspect-ratio:16/11;object-fit:contain;background:#f6f1e4}
.pr span{display:flex;flex-direction:column;gap:3px;padding:10px 14px 14px}
.pr b{font:650 17px/1.2 var(--dt-disp)}.pr small{font-size:14.5px;color:var(--ink2)}
.rel h3{margin-top:12px;font-size:16.5px;color:var(--ink2)}
.chips{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:8px 0}
body .chips a,.chips span{display:inline-flex;align-items:center;min-height:42px;padding:7px 15px;border-radius:999px;background:rgba(247,242,231,.92);box-shadow:var(--aro);
  text-decoration:none;color:var(--ink);font:600 15px/1.15 var(--dt-letra)}
body .chips a:hover{background:#f8ebc8;color:var(--ink)}
.chips span[aria-current]{background:var(--moss);color:#f6f1e4;box-shadow:none}
.hero .chips{margin-top:18px}
.mas{font-size:15.5px;font-weight:600}
.faq details{padding:12px 0;background:url(/assets/linea.webp) repeat-x left top/160px 3px}.faq details:first-of-type{background:none}
.faq summary{cursor:pointer;font-size:17.5px;font-weight:600;list-style:none;display:flex;gap:12px;align-items:flex-start}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"+";flex:none;width:26px;height:26px;border-radius:50%;background:var(--acc-l);box-shadow:0 0 0 1.3px rgba(31,43,37,.5) inset;font:700 17px/26px var(--dt-disp);text-align:center}
.faq details[open] summary::before{content:"−"}
.faq p{margin:8px 0 2px 38px;color:var(--ink2)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr));gap:22px}
.grid .card{margin:0}
.mats-g{align-items:start}
.tema-card{display:flex;flex-direction:column;border-top:6px solid var(--acc)}
.tema-card h3{margin-top:0}.tema-card p{font-size:15.5px;color:var(--ink2)}
.curso-card{display:flex;gap:14px;align-items:flex-start}
.curso-card>div{min-width:0}.curso-card h3{margin-top:2px}
.mat{padding:0;overflow:hidden}
.mat-h{display:flex;align-items:center;gap:12px;padding:12px 20px;background:var(--acc-l)}
.mat-h .ico-m{width:64px;height:64px;flex:none}
.mat-h h2,.mat-h h3{margin:0;font-size:22px}
.mat h2 small{display:block;font:600 14px/1.3 var(--dt-letra);color:var(--ink2);letter-spacing:0;margin-top:2px}
.mat-p{margin:14px 20px 0;color:var(--ink2);font-size:15.5px}
.lista{margin:10px 0 0;padding:0 20px 18px 40px}.lista li{margin:6px 0}
.lista li::marker{color:var(--acc-d)}
.mats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;align-items:start}
.mats .card{margin:0}
.cur{color:#4f5c54;font-size:13.5px;font-weight:600}
body a.pdfmini{font:700 11.5px/1 var(--dt-letra);color:var(--ink);background:#f8ebc8;text-decoration:none;border-radius:6px;padding:4px 6px;margin-left:4px;white-space:nowrap;vertical-align:2px;box-shadow:0 0 0 1.1px rgba(31,43,37,.5) inset}
body a.pdfmini:hover{background:#f2b84b;color:var(--ink)}
.cursos-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:14px}
body a.curso-btn{display:flex;flex-direction:column;align-items:center;text-decoration:none;color:var(--ink);padding:16px 8px 14px;transition:transform .2s}
body a.curso-btn:hover{transform:translateY(-4px) rotate(-.4deg);color:var(--ink)}
.curso-btn b{font:700 24px/1.1 var(--dt-disp);margin-top:6px}.curso-btn span{color:var(--ink2);font-weight:600;font-size:15px}.curso-btn small{color:#4f5c54;font-weight:600}
.ejemplo{color:var(--ink2);font-size:15.5px}.acc{display:flex;gap:10px;flex-wrap:wrap;margin-top:auto;padding-top:6px}
.ico-d{width:52px;height:auto}

/* nota final sobre el pie */
.pie-a{max-width:1140px;margin:20px auto 0;padding:0 clamp(16px,4vw,40px);font-size:15px;color:var(--ink2)}
.pie-a p{display:flex;align-items:center;gap:12px;margin:10px 0}
.pie-a p img{width:40px;height:40px;flex:none}
.pie-a .mapa{gap:6px;flex-wrap:wrap;font-weight:600}

@media (max-width:980px){
  .ejs{grid-template-columns:minmax(0,1fr)}
  .cursos-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .pr-g{grid-template-columns:minmax(0,1fr)}
  body a.pr{flex-direction:row;align-items:center}.pr img{width:120px;flex:none}
}
@media (max-width:760px){
  .hero-in{grid-template-columns:minmax(0,1fr);gap:18px;padding-top:4px}
  .h-art{order:-1;max-width:340px;justify-self:center;margin:6px 18px 10px}
  .h-art .mochila{--w:70px!important;right:-14px;top:-16px}
  .h-dudi{width:78px;left:-18px;bottom:-18px}
  h1{font-size:30px}
  .lead{font-size:17px}
  .ctas .btn{flex:1 1 100%}
  .card{padding:18px 16px}.ej{padding:14px}
  .mat{padding:0}
  .mats{grid-template-columns:minmax(0,1fr)}
  .parejas{grid-template-columns:minmax(0,1fr)}
  .enun{font-size:18px}
  .cursos-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .cta-fin{flex-direction:column;align-items:flex-start}.dudi-fin{width:90px}
  .dudi-tip .dudi{width:84px}
  .curso-card{flex-direction:column}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
@media print{
  @page{margin:14mm}
  body.dt-sitio,body{background:#fff!important;font-size:12pt;color:#000;display:block}
  .dt-cab,.dt-pie,.pie-a,.skip,.ctas,.cta-fin,.rel,.faq,.migas,details.sol,.intro,.acc,.h-art,.practica,.dudi-tip{display:none!important}
  .hero-in{display:block;padding:0;max-width:none}
  .wrap{max-width:none;padding:0}
  h1{font-size:20pt;margin-top:0}h2.tit{font-size:15pt;margin:14pt 0 8pt}h2.tit::before{display:none}
  .card,.ej{background:#fff!important;box-shadow:none;border:1.2px solid #999;border-radius:8px}
  .ejs{gap:8px}
  .num,.nivel,.opts li::before,.pasos li::before{background:#fff!important;color:#000!important;box-shadow:0 0 0 1px #000 inset}
  .hueco{background:#fff}
  .opts li{box-shadow:0 0 0 1px #777 inset}
  .fichas li{background:#fff;box-shadow:0 0 0 1px #777 inset}
  .ej,.como{break-inside:avoid}
  a{color:inherit;text-decoration:none}
  .print-sol{display:block;break-before:page}
  .print-sol ol{font-size:10.5pt}
}
