/* b3-ficha.css — SE GENERA con generar-ficha-css.py. No editar a mano:
   editar fuente/ficha-b3.css (o el extractor) y volver a generar. */
/* Generado por extraer-heredado.py: reglas de public.css que visten la ficha,
   con ámbito .ed-b3. No editar a mano: editar la fuente y volver a generar. */
.ed-b3 .wrap{max-width:1160px;margin:0 auto;padding:0 clamp(18px,4vw,40px)}
.ed-b3 header.site .wrap{display:flex;align-items:center;gap:14px;padding:14px clamp(18px,4vw,40px)}
.ed-b3 header.site .nombre{font-family:var(--serif);color:#F7F3EA;font-size:16px;letter-spacing:.06em}
.ed-b3 header.site .nombre b{color:var(--oros);font-weight:400}
.ed-b3 .hero .k{font-size:12px;font-weight:700;letter-spacing:.32em;text-transform:uppercase;color:var(--oro);
  display:flex;gap:14px;align-items:center;margin-bottom:16px}
.ed-b3 .hero .k::before{content:"";width:38px;height:2px;background:var(--oro)}
.ed-b3 .libro-hero{background:radial-gradient(120% 85% at 70% 10%,var(--navy2),var(--navy) 55%,#060F18);color:#F7F3EA;padding:clamp(40px,6vw,70px) 0}
.ed-b3 .doi-principal{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;margin-top:12px;font-size:13px}
.ed-b3 .doi-principal span{color:#cfc6b4}
.ed-b3 .doi-principal a{color:var(--oros);font-weight:600;overflow-wrap:anywhere}
.ed-b3 .libro-grid{display:grid;grid-template-columns:280px 1fr;gap:clamp(30px,5vw,64px);align-items:start}
@media (max-width:720px) {
.ed-b3 .libro-grid{grid-template-columns:1fr;justify-items:center;text-align:center}
.ed-b3 .libro-grid > picture, .ed-b3 .libro-grid > .libro-cover{max-width:210px}
.ed-b3 .libro-grid > div{display:flex;flex-direction:column}
.ed-b3 .libro-hero .botones{order:1;justify-content:center}
.ed-b3 .libro-hero .gancho{order:2;margin-top:26px}
.ed-b3 .libro-hero .metricas-obra{order:3}
.ed-b3 .libro-hero .autor-line{margin-bottom:18px}
}
.ed-b3 .libro-cover{width:100%;height:auto;border-radius:10px;box-shadow:0 24px 60px rgba(0,0,0,.45);border:1px solid rgba(200,162,75,.35)}
.ed-b3 .libro-col{font-size:12px;font-weight:700;letter-spacing:.3em;text-transform:uppercase;margin-bottom:14px}
.ed-b3 .libro-hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(28px,4.4vw,44px);line-height:1.12;margin:0 0 10px}
.ed-b3 .libro-hero .sub{font-family:var(--serif);font-style:italic;font-size:19px;color:#cfc6b4;margin-bottom:22px}
.ed-b3 .libro-hero .autor-line{font-size:15px;letter-spacing:.06em;color:var(--oros);text-transform:uppercase;font-weight:600;margin-bottom:26px}
.ed-b3 .libro-hero .gancho{font-family:var(--serif);font-style:italic;font-size:21px;color:var(--oros);line-height:1.4;
  border-left:3px solid var(--oro);padding-left:18px;margin-bottom:26px;max-width:44ch}
.ed-b3 .libro-hero .botones{display:flex;gap:14px;flex-wrap:wrap}
.ed-b3 .btn{display:inline-flex;align-items:center;gap:9px;padding:13px 26px;border-radius:8px;font-size:14px;font-weight:700;
  text-decoration:none;cursor:pointer;border:2px solid transparent;letter-spacing:.02em;font-family:var(--sans);
  background:transparent;appearance:none;-webkit-appearance:none;color:inherit}
.ed-b3 .btn-oro{background:var(--oro);color:var(--navy)}
.ed-b3 .btn-oro:hover{background:var(--oros)}
.ed-b3 .hero-acciones .btn{padding:13px 26px;font-size:15px}
.ed-b3 .ruta .wrap{max-width:1120px;margin:0 auto;padding:0 22px}
@media (max-width:520px) {
.ed-b3 .hero-acciones .btn{text-align:center}
}
.ed-b3 .btn-out{background:transparent;border-color:rgba(229,197,110,.6);color:#F7F3EA}
.ed-b3 .btn-out:hover{border-color:var(--oros);color:var(--oros)}
.ed-b3 .libro-indice{margin-top:44px;padding-top:32px;border-top:1px solid #e4dcc6;max-width:70ch}
.ed-b3 .libro-indice h2{font-family:var(--serif);font-weight:400;font-size:21px;color:var(--navy);margin:0 0 16px}
.ed-b3 .libro-indice-lista{list-style:none;margin:0;padding:0}
.ed-b3 .libro-indice-lista li{padding:9px 0;border-bottom:1px solid #efe8d6}
.ed-b3 .libro-indice-lista li:last-child{border-bottom:0}
.ed-b3 .libro-indice-lista li b{display:block;font-size:12px;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--orod);margin-bottom:3px}
.ed-b3 .libro-indice-lista li span{font-family:var(--serif);font-size:16px;line-height:1.4;color:#2e2b26}
.ed-b3 .libro-indice-lista .idx-parte{margin-top:18px;padding-top:14px;border-top:2px solid var(--oro)}
.ed-b3 .libro-indice-lista .idx-parte:first-child{margin-top:0;padding-top:0;border-top:0}
.ed-b3 .libro-indice-lista .idx-parte b{color:var(--navy)}
.ed-b3 .libro-indice-lista .idx-parte span{font-style:italic;color:var(--gris);font-size:15px}
.ed-b3 .libro-indice-lista .idx-cap{padding-left:16px}
.ed-b3 .libro-body{padding:clamp(36px,6vw,60px) 0 90px}
.ed-b3 .libro-body .sinopsis{font-size:16.5px;line-height:1.75;max-width:70ch}
.ed-b3 .libro-body .sinopsis p+p{margin-top:16px}
.ed-b3 .autor-box{display:flex;gap:22px;align-items:center;margin-top:44px;padding-top:32px;border-top:1px solid #e4dcc6;max-width:70ch}
.ed-b3 .autor-box .foto{width:88px;height:88px;border-radius:50%;object-fit:cover;border:3px solid var(--oro);flex:0 0 auto;background:var(--navy)}
.ed-b3 .autor-box .foto.vacia{display:flex;align-items:center;justify-content:center;color:var(--grisc);font-size:11px}
.ed-b3 .autor-box b{color:var(--navy);font-size:16px}
.ed-b3 header.site nav a.on{color:var(--oros);border-bottom:2px solid var(--oro);
  padding-bottom:2px;padding-top:4px}
@media (max-width:860px) {
.ed-b3 header.site .nombre{font-size:14px}
}
.ed-b3 .hero-home .wrap{position:relative;z-index:2}
.ed-b3 .seccion{padding:clamp(44px,7vw,80px) 0}
.ed-b3 .seccion.claro{background:var(--crema)}
.ed-b3 .seccion.papel{background:var(--crema2)}
.ed-b3 .seccion.oscuro{background:var(--navy);color:#F7F3EA}
.ed-b3 .seccion .k{font-size:11.5px;font-weight:700;letter-spacing:.3em;text-transform:uppercase;color:var(--orod);
  display:flex;gap:14px;align-items:center;margin-bottom:14px}
.ed-b3 .seccion .k::before{content:"";width:34px;height:2px;background:var(--orod)}
.ed-b3 .seccion.oscuro .k{color:var(--oro)}
.ed-b3 .seccion.oscuro .k::before{background:var(--oro)}
.ed-b3 .seccion h2{font-family:var(--serif);font-weight:400;font-size:clamp(24px,3.6vw,38px);line-height:1.14;
  color:var(--navy);margin-bottom:14px;max-width:22ch}
.ed-b3 .seccion.oscuro h2{color:#F7F3EA}
.ed-b3 .seccion .intro{font-size:16px;color:var(--gris);max-width:68ch;line-height:1.7}
.ed-b3 .seccion.oscuro .intro{color:#cfc6b4}
.ed-b3 .seccion .wrap > *:last-child{margin-bottom:0}
.ed-b3 .seccion.oscuro .hito .num{background:var(--navy);color:var(--oros)}
.ed-b3 .seccion.oscuro .hito .t-tarjeta{color:#F7F3EA}
.ed-b3 .seccion.oscuro .hito p{color:#a8bcc8}
.ed-b3 .pagina a:not(.btn){color:var(--orod)}
.ed-b3 .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}
.ed-b3 .salto-contenido{position:absolute;left:-9999px;top:0;z-index:200;background:var(--oro);
  color:var(--navy);font-weight:700;font-size:14px;padding:12px 20px;border-radius:0 0 8px 0;
  text-decoration:none}
.ed-b3 .salto-contenido:focus{left:0}
.ed-b3 .hero :focus-visible, .ed-b3 .seccion.oscuro :focus-visible, .ed-b3 footer.site :focus-visible, .ed-b3 .cta-final :focus-visible, .ed-b3 .visor-bar :focus-visible{outline-color:#F7F3EA;
  box-shadow:0 0 0 6px rgba(11,30,44,.95)}
@media (max-width:860px) {
.ed-b3 header.site .wrap{flex-wrap:nowrap}
.ed-b3 header.site nav a.on{border-bottom:0;padding-top:13px;border-left:3px solid var(--oro);
    padding-left:17px}
}
@media (max-width:400px) {
.ed-b3 header.site .nombre{font-size:12px;letter-spacing:.01em;white-space:nowrap}
.ed-b3 header.site .wrap>a:first-child{gap:9px}
}
.ed-b3 .cubierta picture, .ed-b3 .libro-hero picture{display:block;line-height:0}
.ed-b3 h1, .ed-b3 h2, .ed-b3 h3, .ed-b3 .hero h1, .ed-b3 .seccion h2{text-wrap:balance}
.ed-b3 .tabla-datos, .ed-b3 .card-libro .meta, .ed-b3 .libro-hero .autor-line, .ed-b3 #lec-campo-pagina, .ed-b3 .lec-barra .estado{font-variant-numeric:lining-nums tabular-nums}
.ed-b3 .metricas-obra{display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px;
  margin: 18px 0 0;
  font-size: 14px;
  color: #cfc6b4;
  letter-spacing: .02em;}
.ed-b3 .metricas-obra strong{color: #E5C56E;
  font-weight: 700;
  font-variant-numeric: tabular-nums;}
.ed-b3 .ed-resenas{margin-top: 34px; padding-top: 26px; border-top: 1px solid #e4dcc6;}
.ed-b3 .ed-res-h{font-family: var(--serif, Georgia, serif);
  font-weight: 400; font-size: 21px; color: var(--navy, #0B1E2C);
  margin: 0 0 6px; display: flex; align-items: center; gap: 10px;}
.ed-b3 .ed-res-n{font-family: inherit; font-size: 13px; font-weight: 700;
  background: #0B1E2C; color: #E5C56E; border-radius: 11px; padding: 2px 9px;}
.ed-b3 .ed-res-prom{margin: 0 0 18px; font-size: 14px; color: #5c5648;}
.ed-b3 .ed-res-prom b{color: var(--navy, #0B1E2C); font-size: 16px;}
.ed-b3 .ed-res-estrellas{color: #A8843A; letter-spacing: .08em;}
.ed-b3 .ed-res{background: #fff; border: 1px solid #e4dcc6; border-radius: 8px;
  padding: 16px 18px; margin-bottom: 14px;}
.ed-b3 .ed-res-cab{display: flex; justify-content: space-between; align-items: baseline;
  gap: 14px; flex-wrap: wrap;}
.ed-b3 .ed-res-cab b{color: var(--navy, #0B1E2C);}
.ed-b3 .ed-res-cargo{display: block; font-size: 13px; color: #6E6555; margin-top: 2px;}
.ed-b3 .ed-res-t{font-size: 15px; margin: 10px 0 0; color: var(--navy, #0B1E2C);}
.ed-b3 .ed-res-txt{font-size: 14.5px; line-height: 1.65; margin: 8px 0 0; color: #3f3a30;}
.ed-b3 .ed-res-resp{margin-top: 12px; padding: 11px 14px;
  background: #FBF8F0; border-left: 3px solid #C8A24B; border-radius: 0 4px 4px 0;}
.ed-b3 .ed-res-resp span{display: block; font-size: 11px; letter-spacing: .1em; text-transform: uppercase;
  color: #8B6D2A; margin-bottom: 5px;}
.ed-b3 .ed-res-resp p{margin: 0; font-size: 14px; line-height: 1.6; color: #3f3a30;}
.ed-b3 .ed-res-pie{margin-top: 10px; font-size: 12.5px; color: #8a8172;}
.ed-b3 .ed-res-form{margin-top: 20px;}
.ed-b3 .ed-res-form > summary{cursor: pointer; font-weight: 600; color: var(--navy, #0B1E2C);
  padding: 12px 16px; background: #fff; border: 1px solid #e4dcc6; border-radius: 8px;
  list-style: none;}
.ed-b3 .ed-res-form > summary::-webkit-details-marker{display: none;}
.ed-b3 .ed-res-form > summary::before{content: "✎ "; color: #A8843A;}
.ed-b3 .ed-res-form[open] > summary{border-radius: 8px 8px 0 0; border-bottom: 0;}
.ed-b3 .ed-res-f{border: 1px solid #e4dcc6; border-top: 0; border-radius: 0 0 8px 8px;
  background: #fff; padding: 18px; display: flex; flex-direction: column; gap: 14px;
  position: relative;}
.ed-b3 .ed-res-aviso{margin: 0; font-size: 13px; line-height: 1.6; color: #5c5648;
  background: #FBF8F0; border-left: 3px solid #C8A24B; padding: 11px 14px;}
.ed-b3 .ed-res-aviso a{color: #8B6D2A;}
.ed-b3 .ed-res-fila{display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px;}
.ed-b3 .ed-res-f label{display: block; font-size: 13.5px; font-weight: 600; color: var(--navy, #0B1E2C);}
.ed-b3 .ed-res-f input[type="text"], .ed-b3 .ed-res-f input[type="email"], .ed-b3 .ed-res-f textarea{display: block; width: 100%; margin-top: 5px; padding: 9px 11px;
  border: 1px solid #d8cfb8; border-radius: 4px; font: inherit; font-size: 14px;
  font-weight: 400; color: #2a2620; background: #FFFDF8;}
.ed-b3 .ed-res-f textarea{resize: vertical; line-height: 1.55;}
.ed-b3 .ed-res-f input:focus-visible, .ed-b3 .ed-res-f textarea:focus-visible{outline: 2px solid #C8A24B; outline-offset: 1px; border-color: #C8A24B;}
.ed-b3 .ed-res-f small{display: block; margin-top: 4px; font-weight: 400; font-size: 12.5px; color: #8a8172;}
.ed-b3 .ed-res-estrellas-campo{border: 0; padding: 0; margin: 0; display: flex; flex-direction: row-reverse; justify-content: flex-end; align-items: center; gap: 2px;}
.ed-b3 .ed-res-estrellas-campo legend{font-size: 13.5px; font-weight: 600; color: var(--navy, #0B1E2C); float: left; width: 100%; margin-bottom: 6px;}
.ed-b3 .ed-res-estrellas-campo input{position: absolute; opacity: 0; width: 1px; height: 1px;}
.ed-b3 .ed-res-estrellas-campo label{font-size: 27px; line-height: 1; color: #d8cfb8; cursor: pointer; padding: 0 1px;}
.ed-b3 .ed-res-estrellas-campo input:checked ~ label, .ed-b3 .ed-res-estrellas-campo label:hover, .ed-b3 .ed-res-estrellas-campo label:hover ~ label{color: #C8A24B;}
.ed-b3 .ed-res-estrellas-campo input:focus-visible + label{outline: 2px solid #C8A24B; outline-offset: 2px;}
.ed-b3 .ed-res-estrellas-campo .vo{position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0);}
.ed-b3 .ed-res-check{display: flex; gap: 9px; align-items: flex-start; font-weight: 400 !important; font-size: 13px !important; line-height: 1.5;}
.ed-b3 .ed-res-check input{margin-top: 3px; flex-shrink: 0;}
.ed-b3 .ed-res-err{margin: 0; padding: 10px 13px; background: #FDECEA; border-left: 3px solid #B3261E; color: #7A1B15; font-size: 13.5px; border-radius: 0 4px 4px 0;}
.ed-b3 .ed-res-ok{padding: 14px 16px; background: #F0F7F2; border-left: 3px solid #2F6B4F; border-radius: 0 4px 4px 0;}
.ed-b3 .ed-res-ok b{color: #1F4A36;}
.ed-b3 .ed-res-ok p{margin: 6px 0 0; font-size: 14px; line-height: 1.6; color: #33503f;}
@media (max-width: 560px) {
.ed-b3 .ed-res-fila{grid-template-columns: 1fr;}
}
.ed-b3 .cat-autor-botones .btn-out{color: var(--navy, #0B1E2C); border-color: #b9ab8a;}
.ed-b3 .cat-autor-botones .btn-out:hover{border-color: #8B6D2A; color: #8B6D2A;}
.ed-b3 .cat-autor-botones .btn{white-space: normal; text-align: center;}
@media (max-width: 520px) {
.ed-b3 .cat-autor-botones .btn{flex: 1 1 100%;}
}
.ed-b3 .libro-podcast{margin-top: 36px;
  padding-top: 28px;
  border-top: 1px solid #e4dcc6;
  max-width: 70ch;}
.ed-b3 .libro-podcast .k{margin-bottom: 6px;}
.ed-b3 .libro-podcast h2{font-family: var(--serif);
  font-weight: 400;
  font-size: 22px;
  color: var(--navy);
  margin: 0 0 16px;}
.ed-b3 .libro-podcast-contenedor{border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(11, 30, 44, 0.12);
  border: 1px solid #e4dcc6;
  background: #000;}
.ed-b3 .youtube-lite-embed{position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  border: 0;
  display: block;
  background-color: #000;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  cursor: pointer;
  padding: 0;
  color: #fff;
  overflow: hidden;}
.ed-b3 .youtube-lite-embed::before{content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at center, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.55) 100%);
  transition: opacity 0.2s ease;}
.ed-b3 .youtube-lite-embed:hover::before{opacity: 0.8;}
.ed-b3 .youtube-lite-play{position: absolute;
  top: 50%;
  left: 50%;
  z-index: 2;
  width: 68px;
  height: 68px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #ff0000;
  color: #fff;
  transform: translate(-50%, -50%);
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);}
.ed-b3 .youtube-lite-play svg{margin-left: 3px;
  fill: #fff;}
.ed-b3 .youtube-lite-embed:hover .youtube-lite-play{transform: translate(-50%, -50%) scale(1.1);
  background: #cc0000;
  box-shadow: 0 14px 32px rgba(255, 0, 0, 0.45);}
.ed-b3 .youtube-lite-embed:focus{outline: 3px solid #C8A24B;
  outline-offset: -3px;}
.ed-b3 .libro-podcast iframe{width: 100%;
  aspect-ratio: 16 / 9;
  border: 0;
  display: block;}
.ed-b3 .libro-podcast-pie{margin-top: 10px;
  font-size: 13.5px;
  color: var(--gris);
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;}
.ed-b3 .libro-podcast-pie a{color: var(--orod);
  text-decoration: none;
  font-weight: 600;}
.ed-b3 .libro-podcast-pie a:hover{text-decoration: underline;}
.ed-b3 .ed-res-f small{color:var(--gris)}
.ed-b3 .ed-res-estrellas-campo label{color:#9d8a5c}
.ed-b3 .ed-res-estrellas-campo label span[aria-hidden="true"]{font-size:0}
.ed-b3 .ed-res-estrellas-campo label span[aria-hidden="true"]::before{content:"☆";font-size:27px;
  display:inline-block;width:1.1em;text-align:center;line-height:1}
.ed-b3 .ed-res-estrellas-campo input:checked ~ label span[aria-hidden="true"]::before, .ed-b3 .ed-res-estrellas-campo label:hover span[aria-hidden="true"]::before, .ed-b3 .ed-res-estrellas-campo label:hover ~ label span[aria-hidden="true"]::before{content:"★"}
@media (max-width:720px) {
.ed-b3 .ed-res-f input[type=checkbox]{width:22px;height:22px;flex:0 0 auto}
.ed-b3 .ed-res-estrellas-campo label{padding:9px 1px}
.ed-b3 .seccion .intro, .ed-b3 .ruta-sub, .ed-b3 .ruta-card p, .ed-b3 .ruta-pie{font-size:15.5px}
.ed-b3 .doi-pill .doi-tag, .ed-b3 .doi-pill .doi-val, .ed-b3 .libro-col, .ed-b3 .et-q, .ed-b3 .footer-grid .f-tit, .ed-b3 .card-libro .col-badge, .ed-b3 .card-libro .col-badge.col-carmin, .ed-b3 .seccion .k, .ed-b3 .hero .k, .ed-b3 .ruta-card .etq, .ed-b3 .indice-lat .idx-tit, .ed-b3 .comparacion th, .ed-b3 .libro-indice-lista li b, .ed-b3 .col-badge{font-size:12px}
.ed-b3 .f-legal, .ed-b3 .ed-res-f small{font-size:12.5px}
.ed-b3 .doi-principal a, .ed-b3 .autor-box a, .ed-b3 .libro-podcast-pie a{display:inline-block;padding:6px 0;min-height:32px}
}
.ed-b3 .hero h1, .ed-b3 .hero-home .claim, .ed-b3 .seccion h2, .ed-b3 .ruta h2, .ed-b3 .libro-hero h1, .ed-b3 .libro-indice h2{text-wrap:balance}
@media (min-width:861px) and (max-width:1180px) {
.ed-b3 header.site .nombre{font-size:14px;letter-spacing:.04em}
}
@media (min-width:861px) and (max-width:980px) {
.ed-b3 header.site .nombre{font-size:13px;letter-spacing:.02em;white-space:nowrap}
}
@media (min-width:861px) and (max-width:900px) {
.ed-b3 header.site .wrap{gap:10px}
.ed-b3 header.site .nombre{font-size:12px;letter-spacing:0}
}

/* Ficha del libro en la composición B3. Va DESPUÉS de ficha-heredada.css: aquella conserva
   lo que ya funcionaba (reseñas, formularios, podcast, índice) y esta cambia la composición
   y el ritmo para que la ficha se lea como la portada y el catálogo.
   Fuente de este fichero: se edita aquí y se genera con generar-ficha-css.py. */

/* ---------- lienzo y ritmo ---------- */
.ed-b3 .libro-hero{
  background:var(--navy);color:var(--crema);
  padding:var(--s-corto) 0 var(--s-medio);
  border-bottom:1px solid rgba(200,162,75,.28);
}
.ed-b3 .libro-hero .wrap{max-width:var(--ancho);display:grid;gap:clamp(24px,4vw,56px);
  grid-template-columns:minmax(240px,320px) minmax(0,1fr);align-items:start}
.ed-b3 .libro-body{background:var(--crema);padding:var(--s-medio) 0 var(--s-largo)}
.ed-b3 .libro-body .wrap{max-width:var(--ancho)}
.ed-b3 .libro-body > .wrap > section{margin-top:var(--s-corto)}
.ed-b3 .libro-body > .wrap > section:first-child{margin-top:0}

/* ---------- cubierta ---------- */
.ed-b3 .libro-cover img{width:100%;height:auto;display:block;border-radius:var(--r1);
  box-shadow:0 18px 44px rgba(0,0,0,.42)}

/* ---------- cabecera de la obra ---------- */
.ed-b3 .libro-hero .k{color:var(--oros);font-family:var(--sans);font-size:11px;font-weight:600;
  letter-spacing:.26em;text-transform:uppercase;margin-bottom:var(--e2)}
.ed-b3 .libro-hero h1{font-family:var(--serif);font-weight:400;font-size:var(--t-h1);
  line-height:var(--lh-h1);color:var(--crema);margin:0 0 var(--e1);max-width:20ch}
.ed-b3 .libro-hero .sub{font-family:var(--serif);font-style:italic;font-size:var(--t-h3);
  line-height:var(--lh-h3);color:#E9E2D2;margin:0 0 var(--e3);max-width:32ch}
.ed-b3 .libro-hero .autores,
.ed-b3 .libro-hero .libro-idioma-obra{font-family:var(--sans);font-size:var(--t-dato);
  letter-spacing:.1em;text-transform:uppercase;color:var(--oro)}
.ed-b3 .libro-hero .gancho{font-family:var(--serif);font-style:italic;font-size:var(--t-h3);
  line-height:var(--lh-lead);color:var(--crema);border-left:3px solid var(--oro);
  padding-left:var(--e3);margin:var(--e4) 0}
.ed-b3 .doi-principal{font-family:var(--sans);font-size:13px;color:#CFC6B4;margin-top:var(--e2)}
.ed-b3 .doi-principal a{color:var(--oros)}
.ed-b3 .metricas-obra{font-family:var(--sans);font-size:13px;color:#CFC6B4;margin-top:var(--e3)}
.ed-b3 .metricas-obra b{color:var(--crema)}

/* ---------- botones ---------- */
.ed-b3 .libro-hero .btn{font-family:var(--sans);font-size:15px;font-weight:600;border-radius:var(--r1);
  padding:13px 22px;min-height:48px;display:inline-flex;align-items:center;gap:8px;text-decoration:none}
.ed-b3 .libro-hero .btn-oro{background:var(--oro);color:var(--navy);border:1px solid var(--oro)}
.ed-b3 .libro-hero .btn-oro:hover{background:var(--oros);border-color:var(--oros)}
.ed-b3 .libro-hero .btn-out{background:transparent;color:var(--crema);border:1px solid rgba(251,248,241,.45)}
.ed-b3 .libro-hero .btn-out:hover{border-color:var(--oros);color:var(--oros)}
/* Con cuatro botones, la fila entera cabia por 7 px. Mientras llega Plex Sans, la letra de
   respaldo es mas ancha: los botones se parten en dos filas y, al entrar la definitiva, se
   despartan y el hero encoge 62 px (CLS 0,1314 medido por QC, reproducido 3/3). Apurar el
   margen no vale: cualquier rotulo o traduccion lo vuelve a voltear. Asi que a partir de tres
   botones la reja fija DOS columnas y el alto deja de depender del ancho de la letra. */
.ed-b3 .libro-hero .botones > script{display:none}
/* SOLO de 721 px en adelante. Dos columnas max-content no encogen: en movil median 401 px en
   espanol y 427 en ingles contra 354 utiles, y la pagina se iba de lado hasta 41 px (QC, v2).
   En movil el CLS nunca fue el problema: 0,0036 frente a 0,014 en produccion. */
@media (min-width:721px){
  .ed-b3 .libro-hero .botones:has(.btn:nth-of-type(3)){display:grid;grid-template-columns:repeat(2,max-content);
    justify-content:start;align-items:stretch}
  .ed-b3 .libro-hero .botones:has(.btn:nth-of-type(3)) .btn{justify-content:center}
}

/* ---------- cuerpo ---------- */
.ed-b3 .libro-body h2{font-family:var(--serif);font-weight:400;font-size:var(--t-h2);
  line-height:var(--lh-h2);color:var(--navy);margin:0 0 var(--e2)}
.ed-b3 .libro-body .k{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.26em;
  text-transform:uppercase;color:var(--orod);margin-bottom:var(--e1)}
.ed-b3 .sinopsis{font-size:var(--t-base);line-height:var(--lh-lectura);color:var(--tinta,#1A1713);
  max-width:var(--medida)}
.ed-b3 .sinopsis p{margin:0 0 var(--e2)}

/* Datos de la obra y cómo citar: dos fichas sobre el crema, no párrafos sueltos. */
.ed-b3 .libro-datos,
.ed-b3 .libro-cita{background:#fff;border:1px solid #E6DEC9;border-radius:var(--r1);
  padding:clamp(18px,2.4vw,28px)}
.ed-b3 .libro-datos h2,
.ed-b3 .libro-cita h2{font-size:var(--t-h3);margin-bottom:var(--e2)}

/* Índice de la obra */
.ed-b3 .libro-indice-lista{border-top:1px solid #E6DEC9}
.ed-b3 .libro-indice-lista .idx-cap,
.ed-b3 .libro-indice-lista .idx-parte{border-bottom:1px solid #E6DEC9;padding:10px 0}
.ed-b3 .libro-indice-lista .idx-parte{font-family:var(--sans);font-size:11px;letter-spacing:.24em;
  text-transform:uppercase;color:var(--orod)}

/* Podcast */
.ed-b3 .libro-podcast-contenedor{border-radius:var(--r1);overflow:hidden;box-shadow:0 10px 30px rgba(11,30,44,.16)}

/* Reseñas: se conserva su maquinaria y solo se ajusta el marco */
.ed-b3 .ed-resenas{border-top:1px solid #E6DEC9;padding-top:var(--s-corto)}
.ed-b3 .ed-res-h{font-family:var(--serif);font-weight:400;color:var(--navy)}

/* ---------- móvil ---------- */
@media (max-width:860px){
  .ed-b3 .libro-hero .wrap{grid-template-columns:minmax(0,1fr);gap:var(--e4)}
  .ed-b3 .libro-cover{max-width:260px}
  .ed-b3 .libro-hero h1,
  .ed-b3 .libro-hero .sub,
  .ed-b3 .libro-hero .gancho{max-width:none}
}

/* ---------- datos de la obra y cómo citar ---------- */
/* El marcado traía los estilos dentro de la etiqueta (ganan a cualquier hoja); en el candidato
   se sustituyeron por estas clases, sin tocar el contenido. */
.ed-b3 .libro-datos{margin-top:var(--s-corto);padding:clamp(20px,2.6vw,30px);background:#fff;
  border:1px solid #E6DEC9;border-radius:var(--r1);max-width:none}
.ed-b3 .libro-datos-t{font-family:var(--serif);font-weight:400;font-size:var(--t-h3);color:var(--navy);margin:0 0 var(--e2)}
.ed-b3 .libro-datos-t2{margin-top:var(--e4)}
.ed-b3 .libro-datos-tabla{width:100%;border-collapse:collapse;font-family:var(--sans);font-size:14px}
.ed-b3 .libro-datos-tabla tr + tr td{border-top:1px solid #F0E9D8}
.ed-b3 .libro-datos-tabla td{padding:9px 0}
.ed-b3 .libro-datos-tabla .dato-k{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--gris);
  width:34%;padding-right:18px;vertical-align:baseline}
/* A 390 px la etiqueta en mayusculas con letter-spacing llegaba a tocar su valor (0 px en
   «Publicacion»). El relleno de la celda era solo vertical. QC lo midio el 22-09-2026. */
.ed-b3 .libro-datos-tabla td{vertical-align:baseline}
/* Un DOI no tiene donde partirse y desbordaba la tarjeta 5 px a 390 px; el scrollWidth de la
   pagina no lo delata, porque desborda la tarjeta y no el documento. */
.ed-b3 .libro-datos-tabla td:not(.dato-k),
.ed-b3 .libro-cita-apa,
.ed-b3 .doi-principal{overflow-wrap:anywhere}
/* Solo en las celdas de valor: en la etiqueta partia «PUBLICACION» a mitad de palabra. */
.ed-b3 .libro-cita-apa{font-size:14px;line-height:var(--lh-lectura);background:var(--crema);
  border:1px solid #E6DEC9;border-left:3px solid var(--oro);border-radius:var(--r1);padding:14px 16px;margin:0}

/* ---------- Detalles pedidos por la dueña (24-09-2026, «arréglalo de una») ---------- */
/* 1) Rótulo del hero con el idioma de la obra («CLASSROOM SERIES · Nº 1 · BOOK IN SPANISH»): separador propio y el
   idioma como un bloque que no se parte; si no cabe, baja ENTERO a la línea siguiente. */
.ed-b3 .libro-col .libro-idioma-obra{display:inline-block;white-space:nowrap}
.ed-b3 .libro-col .libro-idioma-obra::before{content:"·";margin:0 .55em 0 .25em}
/*    Hasta 720 px la cabecera de la obra va en una columna centrada: ahí el idioma va en su propia línea y sin punto
    (un «·» al principio de línea queda suelto). */
@media (max-width:720px){
  .ed-b3 .libro-col .libro-idioma-obra{display:block;margin-top:.35em}
  .ed-b3 .libro-col .libro-idioma-obra::before{content:none}
}
/* 2) Autor en pantallas estrechas: la foto arriba y la biografía a todo el ancho (antes, columna de ~245 px). */
@media (max-width:560px){
  .ed-b3 .autor-box{flex-direction:column;align-items:flex-start;gap:14px}
}
/* 3) Título del bloque «Novedades»: el tope de 22ch de .seccion h2 lo dejaba en 3 líneas cortas; aquí manda el
   ancho del bloque (62ch). Única .seccion.papel de la ficha, y esta hoja solo la carga la ficha. */
.ed-b3 .seccion.papel h2{max-width:none}
