/* ══════════════════════════════════════════════════════════════════════════
   editorial.css — Páginas editoriales (gestor editorial, 2026-10-20)

   HTML generado por php/editorial.inc.php (ed_render_*). Lo cargan la web
   pública (editorial/index.php: Zona de Cata y demás secciones), la intranet
   logic (logic/editorial.php, que además carga logic/editorial-logic.css con
   las variables y clases genéricas de main.css que allí no existen) y la
   vista previa del CMS.

   1) Zona de Cata: las reglas .zc-* de siempre, MOVIDAS tal cual desde
      css/main.css (§17 y «ZC Card») para que valgan en los dos sitios.
   2) Gestor editorial: bloques nuevos (galería, cita, tabla, pasos,
      preguntas, productos, documentos, llamada a la acción, vídeo) y las
      variantes de cada plantilla (ed-art--{plantilla}).
   Los textos con formato llevan además .descripcion__larga
   (assets/css/descripcion-larga.css): mismas clases dl-* que el catálogo.
   ══════════════════════════════════════════════════════════════════════════ */

/* ── ZC Card (editorial) ── */
.zc-card{
  border-radius: var(--rP);
  overflow: hidden;
  background: white;
  border: 2px solid white;
  transition: border-color .2s ease, outline-color .2s ease;
}

.zc-card:hover{
  border-color: var(--rC);
  outline: 1px solid var(--rC);
  outline-offset: 2px;
}

.zc-card:hover h2{ color: var(--r); }

.zc-card-link{
  display: flex;
  flex-direction: column;
  height: 100%;
  text-decoration: none;
  color: inherit;
}

.zc-card-media img{
  width: 100%;
  height: 190px;
  object-fit: cover;
  display: block;
}

.zc-card-texto{
  padding: var(--eL);
  display: flex;
  flex-direction: column;
  gap: var(--eS);
  flex: 1;
}

.zc-card-text{ padding: var(--eM) var(--eL); }

.zc-card-categoria{
  font-size: var(--fXS);
  line-height: var(--lhXS);
  text-transform: uppercase;
  opacity: .75;
  margin: 0;
}

.zc-card-titulo{
  margin: 0;
  font-size: var(--fL);
  font-weight: 500;
  padding-bottom: var(--eM);
}

.zc-card-excerpt{
  margin: 0;
  opacity: .85;
  font-size: var(--fXS);
  line-height: var(--lhXS);
  padding-bottom: var(--eM);
}

.zc-card-meta{
  display: flex;
  justify-content: space-between;
  gap: var(--eS);
  margin-top: var(--eL);
  font-size: var(--fXS);
  line-height: var(--lhXS);
  opacity: .7;
}

.zc-rel-cta{ margin-bottom: var(--eXL); }


/* ==========================================================================
   17) ZONA DE CATA · MOBILE FIRST
   ========================================================================== */

/* --- Base (móvil) --- */

body[data-pagina="zonaCata"] .principal{
  background: var(--rC3);
  border-top: 1px solid var(--rC2);
  border-radius: 0 0 var(--rM) var(--rM);
  padding: var(--eL);
}

.ruta-ZC{ max-width: 1200px; margin: 0 auto; padding-top: var(--eXL); }

.articuloZC .hero-titulo{
  font-weight: 500;
  text-underline-offset: 15px;
  text-decoration: underline var(--rC2) double 4px;
}
.articuloZC .hero-frase{ padding-top: var(--eL); }
.articuloZC .hero-titulo, .articuloZC .hero-frase{ text-align: center; }

/* Hero listado */
.zc-hero{ position: relative; text-align: center; padding: var(--eL) 0 var(--eM); }
.zc-hero__logo{ position: absolute; width: 60px; left: calc(50% - var(--eXL)); top: -40%; display: block; }
.ZC-titulo{ margin: var(--eS) 0 0; padding-bottom: 0; }
.zc-hero__lead{ margin: var(--eS) auto 0; max-width: 72ch; opacity: .85; font-size: var(--fS); line-height: var(--lhS); }

/* Filtros */
.zc-filtros{ margin: 0 0 var(--eL) 0; }
.zc-filtros__bar{ display: flex; justify-content: center; }
.zc-filtros__bar .contenedor-filtros-chip{ justify-content: center; }
.zc-filtros__estado{ margin-top: var(--eS); font-size: var(--fS); line-height: var(--lhS); color: var(--g2); opacity: .9; text-align: center; }
.zc-empty{ opacity: .8; font-size: var(--fS); line-height: var(--lhS); }

/* Grid listado */
.zc-grid{ display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: var(--eL); }

/* Artículo hero */
.zc-hero-layout{ position: relative; margin-top: var(--eL); }
.zc-hero-layout .hero-titulo{ margin: 0 0 var(--eS); }
.zc-hero-layout .hero-frase{ margin: 0 0 var(--eL); opacity: .9; }
.zc-hero-media{ margin: 0 0 var(--eXL); }
.zc-hero-media img{ width: 100%; height: auto; display: block; border-radius: var(--rM); }

/* Meta (fecha + lectura) */
.zc-meta{
  position: static; margin-top: var(--eS); border-radius: var(--rP);
  display: inline-flex; gap: var(--eS); align-items: center;
  background: white; padding: var(--eXS) var(--eM);
  font-size: var(--fXS); line-height: var(--lhXS); color: var(--g2);
  box-shadow: var(--shadowC);
}

/* Índice móvil */
.zc-indice-movil{
  display: block; margin: var(--eL) auto 0; width: min(980px, 92vw);
}
.zc-indice-movil__summary{
  cursor: pointer; list-style: none;
  padding: var(--eS) var(--eM); border: 1px solid var(--gC); border-radius: var(--rP);
  background: white; font-size: var(--fS); line-height: var(--lhS);
}
.zc-indice-movil__summary::-webkit-details-marker{ display: none; }

/* Índice desktop (aside) */
.zc-indice{ display: flex; flex-direction: column; gap: var(--eXS); margin-bottom: var(--eXL); }
.zc-indice h3{ margin: 0 0 var(--eS); font-size: var(--fM); font-weight: 600; }
.zc-indice__link{
  display: block;
  padding: var(--eXS) 0;
  font-size: var(--fS);
  line-height: var(--lhS);
  color: var(--g);
  text-decoration: none;
  border-bottom: 1px solid var(--gC2);
}
.zc-indice__link:hover{ color: var(--r); }

/* Relacionados (aside) */
.zc-rel{ margin-bottom: var(--eXL); }
.zc-rel__titulo{ margin: 0 0 var(--eM); font-size: var(--fM); font-weight: 600; }
.zc-rel__lista{
  display: flex;
  flex-direction: column;
  gap: var(--eXS);
}
.zc-rel__lista a{
  display: block;
  padding: var(--eS) 0;
  font-size: var(--fS);
  line-height: var(--lhS);
  color: var(--r);
  text-decoration: none;
  border-bottom: 1px dotted var(--gC2);
}
.zc-rel__lista a:hover{ text-decoration: underline; }
.zc-rel__cta{
  display: inline-block;
  margin-top: var(--eM);
  font-size: var(--fS);
  font-weight: 600;
  color: var(--r);
  text-decoration: none;
}
.zc-rel__cta:hover{ text-decoration: underline; }

/* Layout artículo: columna única en móvil */
.zc-art-layout{
  display: flex; flex-direction: column;
  gap: var(--eXL); width: min(980px, 92vw); margin: 0 auto; align-items: flex-start;
}
.zc-art-cuerpo{ flex: 2.5 1 0; min-width: 0; }
.zc-art-layout .resumen{ flex: .75 1 0; min-width: 0; }

/* Bloques */
.zc-bloque{ padding-right: 0; border-right: 0; }
.zc-bloque:not(:first-of-type){ padding-top: var(--eXL); }
.zc-bloque__title{ font-size: var(--f2XL); line-height: var(--lh2XL); font-weight: 300; margin: 0 0 var(--eL); color: var(--gO); }

/* Media (texto + figura) — columna en móvil */
.zc-bloque__media{ display: flex; flex-direction: column; gap: var(--eXL); align-items: flex-start; }
.zc-bloque__figura{ flex: 1 1 0; margin: 0; max-width: 300px; align-self: center; }
.zc-bloque__figura img{ width: 100%; height: auto; display: block; border-radius: var(--rP); }
.zc-bloque__figura figcaption{ margin-top: var(--eS); font-size: var(--fXS); line-height: var(--lhXS); text-align: center; color: var(--gM); }
.zc-bloque__col{ flex: 1.5 1 0; display: flex; flex-direction: column; gap: var(--eL); color: var(--g); min-width: 0; }
.zc-bloque__texto p{ margin: 0; padding-bottom: var(--eM); font-size: var(--fS); line-height: var(--lhS); }
.zc-bloque__texto p strong{ font-weight: 600; color: var(--gO); }

/* Lista bloque */
.zc-bloque__lista{ display: flex; flex-direction: column; gap: var(--eS); padding-left: var(--eL); margin: 0; }
.zc-bloque__lista li::marker{ color: var(--rC); }
.zc-bloque__lista .resaltar{ color: var(--gO); font-weight: 600; }

/* Resumen final */
.zc-resumen{ background: var(--gC2); margin-top: var(--eXL); padding: var(--eXL); border-radius: var(--rP) var(--rP) 0 0; }
.zc-resumen h2{ margin: 0; font-size: var(--f2XL); line-height: var(--lh2XL); border-bottom: 2px solid white; padding-bottom: var(--eS); }
.zc-resumen p:first-of-type{ margin-top: var(--eL); }
.zc-resumen p{ margin: 0; padding-bottom: var(--eL); font-size: var(--fS); line-height: var(--lhS); }
.zc-resumen p span{ font-weight: 700; color: var(--gO); }

/* Relacionados (aside) */
.zc-rel{ margin-top: var(--eL); border-top: 2px solid white; padding-top: var(--eL); }
.zc-rel h3{ margin: 0 0 var(--eL); font-weight: 600; }
.zc-rel__cta{ padding-top: var(--eXL); }
.zc-rel__footer{ margin: var(--eM) 0; padding-top: var(--eM); border-top: 1px solid rgba(0,0,0,.08); }
.zc-aside__footer{ margin-top: var(--eL); }

/* Cierre editorial */
.zc-art-cierre__acciones{ margin: var(--eL) 0; display: flex; justify-content: space-between; gap: var(--eM); flex-wrap: wrap; align-items: center; }
.zc-art-cierre__ico{ fill: var(--rC); width: 1em; height: 1em; transform: scale(.7); transform-origin: center; }
.zc-art-cierre__ico--izq{ transform: rotate(180deg) scale(.7); transform-origin: center; }

/* --- min-width: 741px (artículo: media en fila, meta absoluta) --- */
@media (min-width: 741px){
  body[data-pagina="zonaCata"] .principal{ padding: revert; }
  .zc-bloque__media{ flex-direction: row; }
  .zc-bloque__figura{ max-width: none; align-self: flex-start; }
  .zc-meta{
    position: absolute; left: 0; bottom: var(--eM);
    margin-top: 0; border-radius: 0 var(--rP) var(--rP) 0;
  }
}

/* --- min-width: 981px (artículo: layout 2 columnas, índice oculto) --- */
@media (min-width: 981px){
  .zc-art-layout{ flex-direction: row; }
  .zc-bloque{ padding-right: var(--eXL); border-right: 2px dotted var(--rC2); }
  .zc-indice-movil{ display: none; }
}

/* ==========================================================================
   2) GESTOR EDITORIAL · bloques y plantillas (2026-10-20)
   ========================================================================== */

/* ── Índice ── */
.ed-card__chip{
  display: inline-block; margin: 0 var(--eS) var(--eS) 0; padding: 1px 8px;
  border-radius: var(--rB, 999px); background: var(--r); color: #fff;
  font-size: var(--fXS); line-height: var(--lhXS); font-weight: 600;
}
@media (min-width: 741px){
  .ed-grid .ed-card--destacada{ grid-column: span 2; }
  .ed-card--destacada .zc-card-media img{ height: 300px; }
  .ed-card--destacada .zc-card-titulo{ font-size: var(--fXL); line-height: var(--lhXL); }
}

/* ── Artículo: cabecera, entradilla, aviso de vista previa ── */
.ed-cabecera__categoria{
  display: block; text-align: center; margin-bottom: var(--eS);
  font-size: var(--fXS); line-height: var(--lhXS); text-transform: uppercase;
  letter-spacing: .06em; color: var(--r); font-weight: 600;
}
/* Sin subtítulo, el subrayado doble del título no debe pisar la portada */
.ed-cabecera .hero-titulo:last-child{ margin-bottom: var(--eXL); }
.ed-meta__autor::before{ content: "· "; }
.zc-meta > .ed-meta__autor:first-child::before{ content: ""; }
.ed-entradilla{
  margin: 0 0 var(--eXL); font-size: var(--fL); line-height: var(--lhL); color: var(--gO);
}
.ed-aviso-previa{
  margin: var(--eM) 0; padding: var(--eS) var(--eM); border-radius: var(--rP);
  background: #fff8e1; border: 1px solid #f0c060; color: #5a4500;
  font-size: var(--fS); line-height: var(--lhS);
}

/* Texto con formato dentro de los bloques: el ritmo de la Zona de Cata */
.ed-texto{ color: var(--g); font-size: var(--fS); line-height: var(--lhS); }
.zc-bloque__texto.ed-texto p{ margin: 0; }
.zc-bloque__texto.ed-texto ul, .zc-bloque__texto.ed-texto ol{ margin: 0 0 var(--eM); }
.zc-bloque__texto.ed-texto h3, .zc-bloque__texto.ed-texto h4{ margin-top: var(--eM); }
.ed-bloque > .ed-texto{ margin-bottom: var(--eL); }

/* Texto + imagen con la foto a la izquierda */
@media (min-width: 741px){
  .zc-bloque__media.ed-media--izq{ flex-direction: row-reverse; }
}

/* ── Imagen ── */
.ed-imagen{ margin: 0 auto; max-width: 720px; }
.ed-imagen--completo .ed-imagen{ max-width: none; }
.ed-imagen img{ display: block; width: 100%; height: auto; border-radius: var(--rP); }
.ed-imagen figcaption,
.ed-galeria figcaption,
.ed-video figcaption{
  margin-top: var(--eS); font-size: var(--fXS); line-height: var(--lhXS);
  text-align: center; color: var(--gM);
}

/* ── Galería ── */
.ed-galeria{ display: grid; gap: var(--eM); grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ed-galeria__foto{ margin: 0; }
.ed-galeria__foto img{ display: block; width: 100%; height: auto; border-radius: var(--rP); }
/* Foto con enlace (bloques imagen y galería) */
.ed-imagen a,
.ed-galeria__foto a{ display: block; border-radius: var(--rP); }
.ed-imagen a img,
.ed-galeria__foto a img{ transition: opacity .2s ease; }
.ed-imagen a:hover img,
.ed-galeria__foto a:hover img{ opacity: .85; }
.ed-imagen a:focus-visible,
.ed-galeria__foto a:focus-visible{ outline: 2px solid var(--r, #c00); outline-offset: 3px; }
@media (min-width: 741px){
  .ed-galeria--3{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ed-galeria--4{ grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* ── Cita ── */
.ed-cita{
  position: relative; margin: 0; padding: var(--eL) var(--eL) var(--eL) calc(var(--eL) + 2.4rem);
  border-left: 3px solid var(--rC); background: #fff; border-radius: 0 var(--rP) var(--rP) 0;
}
.ed-cita::before{
  content: "\201C"; position: absolute; left: var(--eM); top: -.1em;
  font-size: 4rem; line-height: 1; color: var(--rC);
}
.ed-cita p{ margin: 0; font-size: var(--fXL); line-height: var(--lhXL); color: var(--gO); font-weight: 300; }
.ed-cita cite{ display: block; margin-top: var(--eS); font-style: normal; font-size: var(--fS); color: var(--g2); }
.ed-cita cite::before{ content: "\2014\00A0"; }

/* ── Tabla ── */
.ed-tabla{ overflow-x: auto; -webkit-overflow-scrolling: touch; }
.ed-tabla table{ width: 100%; border-collapse: collapse; background: #fff; font-size: var(--fS); line-height: var(--lhS); }
.ed-tabla th, .ed-tabla td{ padding: var(--eS) var(--eM); border-bottom: 1px solid var(--gC); text-align: left; vertical-align: top; }
.ed-tabla thead th{ background: var(--rC2); color: var(--gO); font-weight: 600; white-space: nowrap; }
.ed-tabla tbody tr:nth-child(even) td{ background: var(--w2); }
.ed-nota{ margin: var(--eS) 0 0; font-size: var(--fXS); line-height: var(--lhXS); color: var(--g2); }

/* ── Pasos ── */
.ed-pasos{ list-style: none; margin: 0; padding: 0; counter-reset: edpaso; display: flex; flex-direction: column; gap: var(--eL); }
.ed-pasos__paso{ position: relative; padding-left: 3rem; counter-increment: edpaso; }
.ed-pasos__paso::before{
  content: counter(edpaso); position: absolute; left: 0; top: 0;
  width: 2.1rem; height: 2.1rem; border-radius: 50%; background: var(--r); color: #fff;
  display: flex; align-items: center; justify-content: center; font-weight: 600;
}
.ed-pasos__titulo{ margin: .2rem 0 var(--eS); font-size: var(--fM); line-height: var(--lhM); color: var(--gO); font-weight: 600; }

/* ── Preguntas frecuentes ── */
.ed-faq{ display: flex; flex-direction: column; gap: var(--eS); }
.ed-faq__item{ background: #fff; border: 1px solid var(--rC2); border-radius: var(--rP); }
.ed-faq__item summary{
  cursor: pointer; list-style: none; padding: var(--eM) 2.5rem var(--eM) var(--eL); position: relative;
  font-size: var(--fS); line-height: var(--lhS); font-weight: 600; color: var(--gO);
}
.ed-faq__item summary::-webkit-details-marker{ display: none; }
.ed-faq__item summary::after{ content: "+"; position: absolute; right: var(--eL); top: 50%; transform: translateY(-50%); font-size: 1.3em; color: var(--r); }
.ed-faq__item[open] summary::after{ content: "\2212"; }
.ed-faq__item .ed-texto{ padding: 0 var(--eL) var(--eM); }

/* ── Productos ── */
.ed-bloque--productos .grid-productos{ padding-bottom: 0; }
.ed-slider{ margin-top: var(--eS); }
/* Cards de los artículos del ERP de la empresa (intranet logic) */
.ed-prods{ display: grid; gap: var(--eM); grid-template-columns: repeat(auto-fill, minmax(min(11rem, 100%), 1fr)); }
.ed-prods > *{ min-width: 0; }   /* las descripciones del ERP traen palabras larguísimas */
.ed-prods--carrusel{
  display: flex; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: var(--eS);
  -webkit-overflow-scrolling: touch;
}
.ed-prods--carrusel > *{ flex: 0 0 13rem; scroll-snap-align: start; }
.ed-prod{
  display: flex; flex-direction: column; background: #fff; border: 1px solid var(--gC);
  border-radius: var(--rP); overflow: hidden; transition: border-color .15s ease;
}
.ed-prod:hover{ border-color: var(--rC); }
.ed-prod__img{ display: block; aspect-ratio: 1 / 1; background: #fff; }
.ed-prod__img img{ width: 100%; height: 100%; object-fit: contain; display: block; }
.ed-prod__sinfoto{
  display: flex; align-items: center; justify-content: center; height: 100%;
  background: var(--gC2); color: var(--gM); font-size: var(--fXS);
}
.ed-prod__cuerpo{ padding: var(--eS) var(--eM) var(--eM); display: flex; flex-direction: column; gap: 2px; }
.ed-prod__titulo{ margin: 0; font-size: var(--fS); line-height: var(--lhS); font-weight: 600; overflow-wrap: anywhere; }
.ed-prod__titulo a{ color: var(--gO); text-decoration: none; }
.ed-prod__titulo a:hover{ color: var(--r); }
.ed-prod__meta{ margin: 0; font-size: var(--fXS); line-height: var(--lhXS); color: var(--g2); }
/* Cards de la tienda de logic dentro de un artículo */
.ed-bloque--productos .tnd-grid{ margin: 0; }
.ed-tnd-carrusel{ display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: var(--eM); padding-bottom: var(--eS); }
.ed-tnd-carrusel > .tnd-card{ flex: 0 0 15rem; scroll-snap-align: start; }

/* ── Documentos PDF ── */
.ed-docs{ list-style: none; margin: 0; padding: 0; display: grid; gap: var(--eS); grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); }
.ed-doc{
  display: flex; align-items: center; gap: var(--eM); height: 100%;
  padding: var(--eM); background: #fff; border: 1px solid var(--rC2); border-radius: var(--rP);
  color: var(--gO); text-decoration: none; transition: border-color .15s ease, background-color .15s ease;
}
.ed-doc:hover{ border-color: var(--r); background: var(--rC3); }
.ed-doc__icono{
  flex: 0 0 auto; padding: 4px 6px; border-radius: 4px; background: var(--r); color: #fff;
  font-size: .72rem; font-weight: 700; letter-spacing: .04em;
}
.ed-doc__titulo{ font-size: var(--fS); line-height: var(--lhS); }

/* ── Llamada a la acción ── */
.ed-cta{
  padding: var(--eXL); border-radius: var(--rM); background: #fff; border: 1px solid var(--rC2);
  text-align: center; display: flex; flex-direction: column; align-items: center; gap: var(--eM);
}
.ed-cta__titulo{ margin: 0; font-size: var(--f2XL); line-height: var(--lh2XL); font-weight: 300; color: var(--gO); }
.ed-cta .ed-texto{ max-width: 60ch; }
.ed-cta__boton{
  display: inline-block; padding: .6em 1.4em; border-radius: var(--rP); border: 1px solid var(--r);
  font-weight: 600; text-decoration: none; transition: background-color .15s ease, color .15s ease;
}
.ed-cta__boton--principal{ background: var(--r); color: #fff; }
.ed-cta__boton--principal:hover{ background: var(--rO, #6a1724); border-color: var(--rO, #6a1724); color: #fff; }
.ed-cta__boton--secundario{ background: #fff; color: var(--r); }
.ed-cta__boton--secundario:hover{ background: var(--rC3); color: var(--r); }

/* ── Vídeo ── */
.ed-video{ margin: 0; }
.ed-video__marco{ position: relative; aspect-ratio: 16 / 9; border-radius: var(--rP); overflow: hidden; background: #000; }
.ed-video__marco iframe{ position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* ── Resumen («Lo esencial») ── */
.ed-resumen .ed-texto{ margin-top: var(--eL); }
.ed-resumen .ed-texto p{ margin: 0; }   /* el ritmo lo da .zc-resumen p (padding-bottom) */

/* ── Etiquetas ── */
.ed-etiquetas{ margin: var(--eXL) 0; display: flex; gap: var(--eS); flex-wrap: wrap; align-items: center; }
.ed-etiquetas__rotulo{ font-weight: 600; }

/* ── Solo con sesión / no encontrado ── */
.ed-solo-sesion{ max-width: 720px; margin: var(--eXL) auto; text-align: center; }
.ed-solo-sesion__aviso{ margin: var(--eL) 0; padding: var(--eM); border-radius: var(--rP); background: #fff; border: 1px solid var(--rC2); }
.ed-404__sug{ margin-top: var(--eXL); }

/* ── Tira de últimos artículos (inicio de logic) ── */
.ed-tira{ margin: var(--eXL) 0; }
.ed-tira__cab{ display: flex; justify-content: space-between; align-items: baseline; gap: var(--eM); flex-wrap: wrap; margin-bottom: var(--eM); }
.ed-tira__cab h2{ margin: 0; font-size: var(--f2XL); line-height: var(--lh2XL); font-weight: 500; }

/* El cuerpo ocupa todo el ancho también en móvil/tablet (.zc-art-layout es una
   columna con align-items: flex-start: sin esto las rejillas de productos y las
   galerías se encogían al ancho de su contenido) */
.zc-art-layout > .zc-art-cuerpo{ align-self: stretch; }
/* En una columna (< 981 px) el reparto flex «.75 1 0» de la caja lateral la
   aplastaba: .resumen (main.css) lleva overflow: hidden y su alto mínimo es 0
   (salía como una barra de 30 px con «Índice» cortado). Cada parte, su alto. */
@media (max-width: 980px){
  .zc-art-layout > .zc-art-cuerpo,
  .zc-art-layout > .resumen{ flex: none; width: 100%; }
}

/* ── Plantillas ── */
/* Sin columna lateral: una columna más estrecha y sin el filete punteado */
.ed-art--sin-aside .zc-art-layout{ width: min(860px, 92vw); }
@media (min-width: 981px){
  .ed-art--sin-aside .zc-bloque{ padding-right: 0; border-right: 0; }
}
/* Selección de productos y campaña: ancho para las rejillas de productos */
.ed-art--seleccion .zc-art-layout,
.ed-art--campana .zc-art-layout{ width: min(1200px, 94vw); }
.ed-art--noticia .zc-art-layout{ width: min(760px, 92vw); }
.ed-art--seleccion .ed-bloque--productos .zc-bloque__title,
.ed-art--campana .ed-bloque--productos .zc-bloque__title{ border-bottom: 1px dotted var(--rC); padding-bottom: var(--eS); }
.ed-art--guia .ed-bloque--pasos{ background: #fff; border-radius: var(--rM); padding: var(--eXL); margin-top: var(--eXL); }
.ed-art--entrevista .ed-cita p{ font-size: var(--f2XL); line-height: var(--lh2XL); }

/* Portada en banda (campaña): imagen a todo el ancho con el título encima */
.ed-art--portada-banda .zc-hero-layout{ display: flex; flex-direction: column-reverse; }
.ed-art--portada-banda .zc-hero-media img{ aspect-ratio: 21 / 9; object-fit: cover; }
@media (min-width: 741px){
  .ed-art--portada-banda .zc-hero-layout{ display: block; position: relative; }
  .ed-art--portada-banda .zc-hero-media{ margin: 0 0 var(--eXL); }
  .ed-art--portada-banda .zc-hero-layout .hero-texto{
    position: absolute; left: 0; right: 0; bottom: var(--eXL); z-index: 1;
    padding: var(--e2XL) var(--eXL) var(--eXL);
    border-radius: 0 0 var(--rM) var(--rM);
    background: linear-gradient(to top, rgba(0,0,0,.78) 0%, rgba(0,0,0,.5) 55%, rgba(0,0,0,0) 100%);
  }
  /* Más específico que «.ed-raiz .hero-titulo» de logic, que lo pone gris */
  .ed-art--portada-banda .zc-hero-layout .hero-titulo,
  .ed-art--portada-banda .zc-hero-layout .hero-frase,
  .ed-art--portada-banda .zc-hero-layout .ed-cabecera__categoria{
    color: #fff; text-decoration-color: rgba(255,255,255,.5); text-shadow: 0 1px 8px rgba(0,0,0,.45);
  }
  .ed-art--portada-banda .zc-meta{ top: var(--eM); bottom: auto; }
}

/* ── No encontrado / mantenimiento ── */
.zc-404{ max-width: 980px; margin: var(--eXL) auto; text-align: center; }
.zc-404__title{ margin: 0 0 var(--eM); }
.zc-404__lead{ margin: 0 0 var(--eL); }
.ed-404 .ed-grid{ text-align: left; margin-top: var(--eL); }
