/* Duditopia · Novedades (GENERADO por tools/duditopia/novedades_dudi.py: no editar aquí). Página /novedades/,
   aviso «¡Hay novedades!» (tarjeta en la portada, pastilla en el resto) y puntito junto al enlace «Novedades». */
.dt-nov-punto{display:inline-block;width:8px;height:8px;margin-left:5px;vertical-align:.45em;border-radius:50%;background:#e3866b;
  box-shadow:0 0 0 2px rgba(248,244,234,.9)}
.dt-cab-menu{position:relative}
.dt-cab-menu .dt-nov-punto{position:absolute;top:5px;right:5px;margin:0}
.dt-nov-oculto{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media (max-width:860px){.top .nav a.dt-nov-enlace{display:inline-block;font-size:14.5px;padding:6px 2px}}
@media (max-width:380px){.top .nav a.dt-nov-enlace{display:none}}

/* ---------- aviso ---------- */
.dt-nov-aviso{position:fixed;z-index:60;right:clamp(12px,3vw,28px);bottom:clamp(12px,3vw,28px);width:min(380px,calc(100vw - 24px));
  font:400 15.5px/1.45 "DM Sans",system-ui,sans-serif;color:#1f2b25;background:#f8f4ea url(/dt/grano.webp);border-radius:10px 14px 11px 15px;
  padding:16px 18px 16px;box-shadow:0 0 0 1.4px rgba(31,43,37,.55) inset,2px 3px 0 -.4px rgba(31,43,37,.25),0 26px 40px -22px rgba(50,40,20,.6);
  animation:dtNovEntra .45s cubic-bezier(.2,.9,.3,1.2) both}
.dt-nov-aviso h2{margin:0 0 2px;padding-right:26px;font:700 1.22rem/1.15 "Bricolage Grotesque",ui-rounded,system-ui,sans-serif;letter-spacing:-.02em}
.dt-nov-aviso .dt-nov-cab{display:flex;gap:12px;align-items:center;margin-bottom:8px}
.dt-nov-aviso .dt-nov-cab img{flex:none;width:72px;height:72px;margin:-6px -2px -4px -6px}
.dt-nov-aviso .dt-nov-v{margin:0;font-size:13.5px;color:#4f5c54}
.dt-nov-aviso ul{list-style:none;margin:6px 0 12px;padding:0}
.dt-nov-aviso li{margin:0;padding:7px 0 6px;background:url(/assets/linea.webp) repeat-x left bottom/160px 3px}
.dt-nov-aviso li:last-child{background:none}
.dt-nov-aviso li a{display:flex;gap:9px;align-items:center;color:#1f2b25;text-decoration:none;font-weight:600}
.dt-nov-aviso li a:hover{text-decoration:underline;text-underline-offset:3px}
.dt-nov-aviso li svg{flex:none;width:26px;height:26px}
.dt-nov-aviso .dt-nov-btns{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.dt-nov-aviso a.dt-nov-ver{display:inline-block;padding:9px 16px;border-radius:999px;background:#2f4a3a;color:#f6f1e4;font-weight:650;text-decoration:none;
  box-shadow:1.5px 2px 0 -.4px rgba(31,43,37,.35)}
.dt-nov-aviso a.dt-nov-ver:hover{filter:brightness(1.1);color:#f6f1e4}
.dt-nov-aviso button{font:inherit;cursor:pointer;border:0;background:none;color:#3a4a42}
.dt-nov-aviso .dt-nov-luego{padding:9px 8px;text-decoration:underline;text-underline-offset:3px}
.dt-nov-aviso .dt-nov-x{position:absolute;top:8px;right:8px;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-size:22px;line-height:1}
.dt-nov-aviso .dt-nov-x:hover{background:rgba(31,43,37,.08)}
.dt-nov-aviso :focus-visible{outline:2px solid #1f2b25;outline-offset:2px}
.dt-nov-aviso.dt-nov-pastilla{width:auto;max-width:calc(100vw - 24px);left:clamp(12px,3vw,28px);right:auto;padding:6px 6px 6px 8px;border-radius:999px;
  display:flex;align-items:center;gap:8px}
.dt-nov-pastilla img{width:38px;height:38px;flex:none;margin:-4px 0}
.dt-nov-pastilla a{color:#1f2b25;font-weight:650;text-decoration:none;padding:6px 2px}
.dt-nov-pastilla a:hover{text-decoration:underline;text-underline-offset:3px}
.dt-nov-pastilla .dt-nov-x{position:static;width:32px;height:32px;font-size:19px}
.dt-nov-aviso.dt-nov-sale{animation:dtNovSale .25s ease-in both}
@keyframes dtNovEntra{from{opacity:0;transform:translateY(18px) rotate(1deg)}to{opacity:1;transform:none}}
@keyframes dtNovSale{to{opacity:0;transform:translateY(12px)}}
@media (max-width:560px){.dt-nov-aviso:not(.dt-nov-pastilla){right:12px;left:12px;width:auto;bottom:12px}}
@media (prefers-reduced-motion:reduce){.dt-nov-aviso,.dt-nov-aviso.dt-nov-sale{animation:none}}
@media print{.dt-nov-aviso{display:none}}

/* ---------- página /novedades/ ---------- */
.nv-saltar{position:absolute;left:-9999px}.nv-saltar:focus{left:16px;top:8px;z-index:99;background:#f8f4ea;padding:8px 12px;border-radius:6px}
.nv-pagina main{max-width:1120px;margin:0 auto;padding:0 clamp(16px,4vw,40px)}
.nv-hero{margin:4px 0 26px}
.nv-lamina{position:relative;border-radius:14px 18px 12px 20px;overflow:hidden;line-height:0;
  box-shadow:0 0 0 1px rgba(60,50,30,.12),0 22px 34px -24px rgba(50,40,20,.6)}
.nv-lamina .nv-fondo{display:block;width:100%;height:auto;aspect-ratio:16/5;object-fit:cover}
.nv-dudi{position:absolute;left:38%;bottom:-2%;width:clamp(120px,17vw,210px);height:auto;transform:rotate(-3deg);
  filter:drop-shadow(0 8px 10px rgba(50,40,20,.18));animation:nvBote 3.2s ease-in-out infinite}
@keyframes nvBote{0%,100%{transform:rotate(-3deg) translateY(0)}50%{transform:rotate(-1deg) translateY(-6px)}}
.nv-hero-tx{text-align:center;max-width:720px;margin:18px auto 0}
.nv-kicker{margin:0;font-weight:650;font-size:14px;letter-spacing:.06em;text-transform:uppercase;color:#a5462f}
.nv-hero-tx h1{margin:4px 0 6px;font-size:clamp(2rem,5vw,3.1rem);line-height:1.05}
.nv-hero-tx p{margin:0;color:#3a4a42}
.nv-ultima{position:relative;margin:0 0 44px;padding:26px clamp(18px,3vw,34px) 30px;background:#f8f4ea url(/dt/grano.webp);border-radius:8px;
  border:0;border-image:url(/ninos/super/lapiz/ui/marco.webp) 52 64 64 52/26px 32px 32px 26px/0 6px 6px 0 stretch;scroll-margin-top:16px}
.nv-meta{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin:0 0 8px;font-size:14.5px;color:#4f5c54}
.nv-sello{display:inline-block;padding:4px 12px 3px;border-radius:999px;background:#2f4a3a;color:#f6f1e4;font-weight:700;letter-spacing:.02em}
.nv-nuevo{display:inline-block;padding:3px 10px;border-radius:6px 8px 5px 9px;background:#f8ebc8;color:#6b5a2e;font-weight:700;transform:rotate(-2deg);
  box-shadow:0 0 0 1.2px rgba(107,90,46,.45) inset}
.nv-ultima h2{margin:0 0 4px;font-size:clamp(1.6rem,3.6vw,2.3rem);line-height:1.1}
.nv-ultima h2 a,.nv-ultima h2 a:hover{color:#1f2b25;text-decoration:none}
.nv-ultima h2 a:hover{text-decoration:underline;text-decoration-thickness:1.5px}
.nv-resumen{margin:0 0 18px;color:#3a4a42;font-size:1.06rem}
.nv-items{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:18px}
.nv-item a{display:flex;flex-direction:column;height:100%;text-decoration:none;color:#1f2b25;background:#fbf8f1;border-radius:10px 12px 9px 13px;overflow:hidden;
  box-shadow:0 0 0 1.3px rgba(31,43,37,.45) inset,1.5px 2px 0 -.4px rgba(31,43,37,.22);transition:transform .2s,box-shadow .2s}
.nv-item a:hover{transform:translateY(-3px) rotate(-.4deg);box-shadow:0 0 0 1.5px rgba(31,43,37,.6) inset,2px 4px 0 -.4px rgba(31,43,37,.22),0 16px 24px -18px rgba(50,40,20,.55);color:#1f2b25}
.nv-fig{display:block;aspect-ratio:16/10;background:#fff;line-height:0;border-bottom:1px solid rgba(60,50,30,.12)}
.nv-fig img{width:100%;height:100%;object-fit:cover}
.nv-fig-ico{display:grid;place-items:center;background:#f3ede0 url(/dt/grano.webp)}
.nv-fig-ico svg{width:72px;height:72px}
.nv-bd{display:flex;flex-direction:column;gap:4px;padding:12px 14px 14px;flex:1}
.nv-para{align-self:flex-start;font-size:12.5px;font-weight:700;padding:2px 9px;border-radius:999px;background:#dfe8d6;color:#3d5a3a}
.nv-para-peques{background:#f8ebc8;color:#6b5a2e}.nv-para-familias{background:#e3edf0;color:#2f4a5a}
.nv-it{display:flex;align-items:center;gap:7px;font:700 1.08rem/1.2 "Bricolage Grotesque",ui-rounded,system-ui,sans-serif;letter-spacing:-.015em}
.nv-it .nv-ico{flex:none}
.nv-tx{color:#3a4a42;font-size:15px;line-height:1.45}
.nv-ir{margin-top:auto;padding-top:4px;font-weight:650;color:#2f4a3a;font-size:14.5px}
.nv-archivo h2{font-size:clamp(1.4rem,3vw,1.9rem);margin:0 0 2px}
.nv-arch-tx{margin:0 0 16px;color:#4f5c54}
.nv-linea{list-style:none;margin:0;padding:0 0 0 30px;position:relative}
.nv-linea::before{content:"";position:absolute;left:11px;top:10px;bottom:18px;width:3px;border-radius:3px;
  background:repeating-linear-gradient(to bottom,rgba(47,74,58,.45) 0 9px,transparent 9px 14px)}
.nv-v{position:relative;margin:0 0 14px;scroll-margin-top:16px}
.nv-v::before{content:"";position:absolute;left:-27px;top:20px;width:15px;height:15px;border-radius:50% 46% 52% 48%;background:#f2b84b;
  box-shadow:0 0 0 1.5px rgba(31,43,37,.6) inset}
.nv-v details{background:#f8f4ea;border-radius:9px 12px 8px 13px;box-shadow:0 0 0 1.3px rgba(31,43,37,.42) inset,1.5px 2px 0 -.4px rgba(31,43,37,.2)}
.nv-v summary{display:flex;align-items:center;gap:14px;padding:12px 16px;cursor:pointer;list-style:none;border-radius:inherit}
.nv-v summary::-webkit-details-marker{display:none}
.nv-v summary::after{content:"";flex:none;width:10px;height:10px;margin-left:4px;border-right:2px solid #2f4a3a;border-bottom:2px solid #2f4a3a;transform:rotate(45deg) translateY(-3px);transition:transform .2s}
.nv-v details[open] summary::after{transform:rotate(225deg) translateY(-2px)}
.nv-v summary:hover{background:rgba(242,184,75,.12)}
.nv-v summary:focus-visible{outline:2px solid #1f2b25;outline-offset:2px}
.nv-num{flex:none;min-width:52px;text-align:center;font:800 1.15rem/1 "Bricolage Grotesque",ui-rounded,system-ui,sans-serif;color:#2f4a3a;
  padding:8px 6px 7px;border-radius:8px 10px 7px 11px;background:#e3e9dc}
.nv-sum{flex:1;display:flex;flex-direction:column;min-width:0}
.nv-sum b{font:700 1.08rem/1.2 "Bricolage Grotesque",ui-rounded,system-ui,sans-serif;letter-spacing:-.015em}
.nv-sum time{font-size:14px;color:#4f5c54}
.nv-cuantas{flex:none;font-size:13.5px;color:#4f5c54}
.nv-det{padding:2px 16px 16px}
.nv-mini{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.nv-perma{margin:12px 0 0;font-size:14px}
.nv-v:target details{box-shadow:0 0 0 2px #e3866b inset,1.5px 2px 0 -.4px rgba(31,43,37,.2)}
.nv-nota{margin:34px auto 0;max-width:720px;text-align:center;color:#4f5c54;font-size:15px}
@media (max-width:640px){
  .nv-lamina .nv-fondo{aspect-ratio:900/420}
  .nv-dudi{left:auto;right:6%;width:118px}
  .nv-items{grid-template-columns:1fr}
  .nv-item a{flex-direction:row}
  .nv-fig{flex:none;width:112px;aspect-ratio:auto;border-bottom:0;border-right:1px solid rgba(60,50,30,.12)}
  .nv-fig-ico svg{width:52px;height:52px}
  .nv-mini .nv-item a{flex-direction:column}
  .nv-linea{padding-left:24px}.nv-linea::before{left:7px}.nv-v::before{left:-24px}
  .nv-v summary{gap:10px;padding:11px 12px}.nv-cuantas{display:none}.nv-num{min-width:44px}
}
@media (prefers-reduced-motion:reduce){.nv-dudi{animation:none}.nv-item a,.nv-v summary::after{transition:none}.nv-item a:hover{transform:none}}
