/* PortalGraf Next 0.5.54 — módulo editorial reutilizable. No afecta al cuerpo del artículo ni a la cabecera. */
.pg-next {
  --pg-mod-title: #174d40;
  --pg-mod-copy: #253832;
  --pg-mod-link: #155b95;
  --pg-mod-hover: #0c4675;
  --pg-mod-border: #dce7e0;
  --pg-mod-tint: #f7f9f8;
}
/* Módulos actualmente renderizados por Cassiopeia: conservar geometría, afinar jerarquía. */
.pg-next :is(.pg-sidebar, .pg-primary-content > .moduletable, .pg-main-bottom, .pg-modules-band) :is(.card-header, .card > h2, .card > h3, .moduletable > h2, .moduletable > h3) {
  color: var(--pg-mod-title);
  font-size: clamp(1.075rem, 1.06rem + .15vw, 1.25rem);
  line-height: 1.28;
  font-weight: 700;
  letter-spacing: -.01em;
}
.pg-next :is(.pg-sidebar, .pg-main-bottom, .pg-modules-band) :is(.card-body, .mod-custom, .moduletable) { color: var(--pg-mod-copy); }
.pg-next :is(.pg-sidebar, .pg-main-bottom, .pg-modules-band) a:not(.btn):not(.badge) {
  color: var(--pg-mod-link);
  text-decoration-color: transparent;
  text-underline-offset: .16em;
}
.pg-next :is(.pg-sidebar, .pg-main-bottom, .pg-modules-band) a:not(.btn):not(.badge):is(:hover, :focus-visible) {
  color: var(--pg-mod-hover);
  text-decoration: underline;
}
/* Encabezados Cassiopeia: suavizar la superficie, no alterar la rejilla ni el contenido. */
.pg-next .pg-sidebar .card > .card-header {
  background: #f8faf9;
  border-bottom-color: var(--pg-mod-border);
}
/* Enlaces por defecto: azul editorial distinguible del verde de los títulos.
   Respetar los botones, insignias y cualquier navegación fuera del contenido. */
.pg-next :is(.pg-sidebar, .pg-main-bottom, .pg-modules-band) a:not(.btn):not(.badge):focus-visible {
  outline: 2px solid var(--pg-mod-link);
  outline-offset: 3px;
}
/* Tres estilos optativos (Advanced > Module Style), independientes de la posición. */
.pg-next .pg-module { min-width: 0; color: var(--pg-mod-copy); }
.pg-next .pg-module__title {
  margin: 0 0 .85rem;
  color: var(--pg-mod-title);
  font-size: clamp(1.075rem, 1.06rem + .15vw, 1.25rem);
  line-height: 1.28;
  font-weight: 700;
  letter-spacing: -.012em;
}
.pg-next .pg-module__body { min-width: 0; }
.pg-next .pg-module__body > :last-child { margin-bottom: 0; }
.pg-next .pg-module a:not(.btn):not(.badge) { color: var(--pg-mod-link); text-decoration-color: transparent; text-underline-offset: .16em; }
.pg-next .pg-module a:not(.btn):not(.badge):is(:hover, :focus-visible) { color: var(--pg-mod-hover); text-decoration: underline; }
.pg-next .pg-module--editorial { padding: .2rem 0; background: transparent; border: 0; }
.pg-next .pg-module--editorial .pg-module__title { padding-bottom: .6rem; border-bottom: 1px solid var(--pg-mod-border); }
.pg-next .pg-module--card { padding: 1.1rem; background: #fff; border: 1px solid var(--pg-mod-border); border-radius: 12px; }
.pg-next .pg-module--hybrid .pg-module__title { padding-left: .8rem; border-left: 3px solid #f28c20; }
.pg-next .pg-module--hybrid .pg-module__body { background: var(--pg-mod-tint); border: 1px solid var(--pg-mod-border); border-radius: 10px; padding: 1rem; }
/* Modos de distribución opcionales, sobre el contenido directo que produzca el módulo.
   No fuerzan listados internos de terceros ni provocan desbordamientos. */
.pg-next .pg-module.pg-layout--horizontal .pg-module__body,
.pg-next .pg-module.pg-layout--grid .pg-module__body { display: grid; gap: 1rem; align-items: start; }
.pg-next .pg-module.pg-layout--horizontal .pg-module__body { grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); }
.pg-next .pg-module.pg-layout--grid .pg-module__body { grid-template-columns: repeat(auto-fit, minmax(min(100%, 245px), 1fr)); }
.pg-next .pg-module.pg-layout--horizontal .pg-module__body > *,
.pg-next .pg-module.pg-layout--grid .pg-module__body > * { min-width: 0; }
@media (max-width: 640px) {
  .pg-next .pg-module--card { padding: .95rem; }
  .pg-next .pg-module--hybrid .pg-module__body { padding: .85rem; }
  .pg-next .pg-module.pg-layout--horizontal .pg-module__body,
  .pg-next .pg-module.pg-layout--grid .pg-module__body { grid-template-columns: minmax(0, 1fr); }
}

/* Acentos opcionales POR MÓDULO mediante «Clase CSS del módulo».
   No hay barras CMYK globales repetidas: sólo donde el editor las seleccione. */
.pg-next :is(.pg-module.pg-accent--cmyk, .card.pg-accent--cmyk, .moduletable.pg-accent--cmyk) {
  border-top: 0;
  position: relative;
}
.pg-next :is(.pg-module.pg-accent--cmyk, .card.pg-accent--cmyk, .moduletable.pg-accent--cmyk)::before {
  content: "";
  display: block;
  height: 3px;
  background: linear-gradient(to right, #02a9d5 0 25%, #d92b91 25% 50%, #f0d400 50% 75%, #23282a 75% 100%);
  border-radius: 8px 8px 0 0;
}
.pg-next :is(.pg-module.pg-accent--green, .card.pg-accent--green, .moduletable.pg-accent--green) {
  border-top: 3px solid #258362;
}
.pg-next :is(.pg-module.pg-accent--orange, .card.pg-accent--orange, .moduletable.pg-accent--orange) {
  border-top: 3px solid #d57718;
}
/* El chrome editorial sin marco no debe recibir relleno de tarjeta por el acento. */
.pg-next .pg-module--editorial.pg-accent--cmyk::before { margin-bottom: .7rem; }
.pg-next .pg-module--editorial:is(.pg-accent--green,.pg-accent--orange) { padding-top: .7rem; }

/* v0.5.83 | Chrome Joomla pgRelatedEditorial: visual abierto, acento vertical.
   No modifica pgEditorial/pgHybrid ni módulos que no seleccionen este chrome. */
.pg-next .pg-module--related-editorial {
  padding: .2rem 0; background: transparent; border: 0; box-shadow: none;
}
.pg-next .pg-module--related-editorial .pg-module__title {
  padding: .12rem 0 .12rem .72rem;
  margin: 0 0 .85rem;
  border: 0; border-left: 3px solid #f28c20;
  background: transparent;
}
.pg-next .pg-module--related-editorial .pg-module__body {
  padding: 0; border: 0; background: transparent;
}
/* Lista nativa mod_related_items: separadores discretos, sin cuadros. */
.pg-next .pg-module--related-editorial .pg-module__body ul {
  list-style: none; margin: 0; padding: 0;
}
.pg-next .pg-module--related-editorial .pg-module__body li {
  margin: 0; padding: .62rem 0;
  border-bottom: 1px solid var(--pg-mod-border);
  line-height: 1.45; overflow-wrap: anywhere;
}
.pg-next .pg-module--related-editorial .pg-module__body li:first-child { padding-top: .15rem; }
.pg-next .pg-module--related-editorial .pg-module__body li:last-child { border-bottom: 0; }
.pg-next .pg-module--related-editorial .pg-module__body a {
  display: inline-block; max-width: 100%; font-weight: 400;
}

/* v0.5.86 — Chrome dedicado a PortalGraf Últimos, sin alterar pgRelatedEditorial. */
.pg-next .pg-module--latest-editorial {padding:.2rem 0;background:transparent;border:0;box-shadow:none}
.pg-next .pg-module--latest-editorial .pg-module__title {padding:.12rem 0 .12rem .72rem;margin:0 0 .85rem;border:0;border-left:3px solid #f28c20;background:transparent}
.pg-next .pg-module--latest-editorial .pg-module__body {padding:0;border:0;background:transparent}

/* PortalGraf Next 0.5.102 · Posición derecha reutilizable; flujo natural. */
body.pg-next.pg-sticky-header-enabled .pg-site-header {
  position: sticky;
  top: 0;
  z-index: 100;
}
/* Separación entre posiciones sin reservar alturas: vacío => sin margen. */
body.pg-next .pg-sidebar--right > :is(.pg-sidebar-sticky-position, .pg-sidebar-normal-position) {
  min-width: 0;
  margin: 0;
}
body.pg-next .pg-sidebar--right > .pg-sidebar-normal-position {
  display: grid;
  grid-template-columns: minmax(0,1fr);
  align-content: start;
  row-gap: 20px;
}
body.pg-next .pg-sidebar--right > .pg-sidebar-sticky-position {
  display: grid;
  grid-template-columns: minmax(0,1fr);
  align-content: start;
  row-gap: 20px;
}
body.pg-next .pg-sidebar--right > .pg-sidebar-sticky-position:empty {display:none}
/* Superficie blanca opaca uniforme; sin franja visible bajo la cabecera. */
@media (min-width:1150px) {
  body.pg-next.pg-sticky-right-position-enabled .pg-sidebar--right {
    align-self: stretch;
    display: flex;
    flex-direction: column;
    gap: 20px;
  }
  body.pg-next.pg-sticky-right-position-enabled .pg-sidebar-sticky-position.pg-sticky-eligible {
    position: sticky;
    top: calc(var(--pg-sidebar-sticky-top, 96px) + 12px);
    align-self: stretch;
    z-index: 5;
    isolation: isolate;
    background: #fff;
  }
  /* El borde superior queda cubierto por la misma capa opaca que el módulo.
     Se evita el z-index negativo y el fondo de márgenes externos. */
  body.pg-next.pg-sticky-right-position-enabled .pg-sidebar-sticky-position.pg-sticky-eligible::before {
    content: "";
    position: absolute;
    top: -12px;
    right: 0;
    bottom: -2px;
    left: 0;
    z-index: 0;
    background: #fff;
    pointer-events: none;
  }
  body.pg-next.pg-sticky-right-position-enabled .pg-sidebar-sticky-position.pg-sticky-eligible > * {
    position: relative;
    z-index: 1;
  }

  /* La cabecera y su separación son UNA caja real de pintura. El margen
     original .85rem se convierte en padding del envoltorio, sin variar alturas.
     El acento conserva su altura original al seguir aplicado solo al h2-h6. */
  body.pg-next.pg-sticky-right-position-enabled .pg-sidebar--right.pg-next-heading-enabled
    .pg-sidebar-normal-position > .pg-module > .pg-module__heading-surface {
    position: sticky;
    top: var(--pg-next-heading-top, 400px);
    /* La union visual debe pintar por delante de la posicion superior.
       El solape blanco oculta exclusivamente la costura de redondeo (2px),
       sin alterar geometria ni introducir una sombra visible. */
    z-index: 6;
    box-shadow: 0 -3px 0 #fff;
    padding-bottom: var(--pg-next-heading-gap, .85rem);
    background: #fff;
  }
  body.pg-next.pg-sticky-right-position-enabled .pg-sidebar--right.pg-next-heading-enabled
    .pg-sidebar-normal-position > .pg-module > .pg-module__heading-surface > .pg-module__title {
    margin-bottom: 0;
  }

  /* Ocultar de una vez al agotar el contenido, sin colapsar el modulo. */
  body.pg-next.pg-sticky-right-position-enabled .pg-sidebar--right.pg-next-heading-enabled
    .pg-sidebar-normal-position > .pg-module > .pg-module__heading-surface.pg-next-heading-exhausted {
    visibility: hidden;
  }
}
@media (max-width:1149.98px) {
  body.pg-next .pg-sidebar--right {gap: 20px}
  body.pg-next .pg-sidebar-sticky-position {position: static}
}
