/* =========================================================
   PortalGraf - user.css consolidado
   Fecha: 2026-07-14
   Revisión: fase 4B · editorial y relacionados consolidados
   Base: Cassiopeia / Cassiopeia Extended
   ========================================================= */


/* =========================================================
   1. Variables PortalGraf
   ========================================================= */

:root {
  --pg-teal: #1d7989;
  --pg-teal-dark: #145f6c;
  --pg-teal-mid: #176b78;
  --pg-orange: #de710d;
  --pg-orange-dark: #b95508;
  --pg-text: #172033;
  --pg-muted: #667085;
  --pg-border: rgba(0, 0, 0, .10);
  --pg-soft-shadow: 0 8px 22px rgba(15, 23, 42, .04);

  --pg-header-menu-bg: var(--headerbg, #1d7989);
  --pg-header-menu-bg-dark: #145f6c;
  --pg-header-menu-accent: var(--btnbg, #de710d);
  --pg-header-menu-text: #ffffff;
  --pg-header-menu-text-soft: rgba(255, 255, 255, 0.86);
  --pg-header-menu-border: rgba(255, 255, 255, 0.18);

  --pg-top-menu-font-size: 0.8rem;
  --pg-main-menu-font-size: 0.86rem;
  --pg-top-menu-gap: 0.02rem;
  --pg-main-menu-gap: 0.12rem;

  --pg-header-menu-bg-3d-top: #1a7482;
  --pg-header-menu-bg-3d-mid: #176b78;
  --pg-header-menu-bg-3d-bottom: #145f6c;
}


/* =========================================================
   1.1 Contextos visuales por ítem de menú
   Usados por blogs, artículos y vistas auxiliares
   ========================================================= */

body.itemid-101 { --pg-page-context: "PortalGraf · Artes gráficas"; }
body.itemid-111 { --pg-page-context: "PortalGraf · Noticias"; }
body.itemid-112 { --pg-page-context: "PortalGraf · Historia"; }
body.itemid-114 { --pg-page-context: "PortalGraf · Contacto"; }
body.itemid-118 { --pg-page-context: "PortalGraf · Mapa web"; }
body.itemid-134 { --pg-page-context: "PortalGraf · Eventos"; }
body.itemid-161 { --pg-page-context: "PortalGraf · Enlaces"; }
body.itemid-184 { --pg-page-context: "PortalGraf · Descargas"; }
body.itemid-236 { --pg-page-context: "PortalGraf · Calidad"; }
body.itemid-237 { --pg-page-context: "PortalGraf · Empleo"; }
body.itemid-238 { --pg-page-context: "PortalGraf · Directorio"; }
body.itemid-239 { --pg-page-context: "PortalGraf · Compra venta"; }
body.itemid-338 { --pg-page-context: "PortalGraf · Foro"; }
body.itemid-364 { --pg-page-context: "PortalGraf · Recursos"; }
body.itemid-365 { --pg-page-context: "PortalGraf · Cuenta"; }

body.itemid-107,
body.itemid-108,
body.itemid-109,
body.itemid-110 {
  --pg-page-context: "PortalGraf · Artículos técnicos";
}


/* =========================================================
   1.2 Estructura global y protección horizontal
   ========================================================= */

html,
body.site {
  max-width: 100%;
  overflow-x: clip;
}

@supports not (overflow: clip) {
  html,
  body.site {
    overflow-x: hidden;
  }
}

/* Evita que los fondos extendidos con 100vw generen ancho extra. */
body.site .container-header,
body.site .site-grid,
body.site .container-footer {
  max-width: 100%;
}


/* =========================================================
   2. Tablas técnicas globales en artículos
   ========================================================= */

.com-content-article__body .pg-table-wrap {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  overflow-x: auto;
  margin: 1.6rem 0;
  border: 1px solid #d9e1e5;
  border-radius: 10px;
  background: #ffffff;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.com-content-article__body .pg-table {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
  border-collapse: collapse;
  table-layout: auto;
  box-sizing: border-box;
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.45;
  background: #ffffff;
}

.com-content-article__body .pg-table caption {
  caption-side: top;
  text-align: left;
  padding: 0.75rem 1rem;
  font-weight: 700;
  color: var(--pg-teal);
  background: #f6fafb;
  border-bottom: 1px solid #d9e1e5;
}

.com-content-article__body .pg-table tr {
  height: auto !important;
}

.com-content-article__body .pg-table th,
.com-content-article__body .pg-table td {
  width: auto !important;
  height: auto !important;
  overflow-wrap: anywhere;
  word-break: normal;
  white-space: normal;
  vertical-align: top;
}

.com-content-article__body .pg-table th {
  padding: 0.75rem 0.9rem;
  background: var(--pg-teal);
  color: #ffffff;
  border: 1px solid #166575;
  text-align: left;
  font-weight: 700;
}

.com-content-article__body .pg-table td {
  padding: 0.7rem 0.9rem;
  border: 1px solid #d9e1e5;
}

.com-content-article__body .pg-table tbody tr:nth-child(even) {
  background: #f8fbfc;
}

.com-content-article__body .pg-table tbody tr:hover {
  background: #eef6f8;
}

.com-content-article__body .pg-table td:first-child {
  font-weight: 600;
}

.com-content-article__body .pg-table td strong {
  color: var(--pg-teal);
}

.com-content-article__body .pg-table.pg-table--compact th,
.com-content-article__body .pg-table.pg-table--compact td {
  padding: 0.5rem 0.65rem;
  font-size: 0.9rem;
}

.com-content-article__body .pg-table.pg-table--diagnosis th {
  background: var(--pg-orange);
  border-color: #b95b08;
}

.com-content-article__body .pg-table.pg-table--diagnosis td:first-child {
  font-weight: 700;
  color: var(--pg-teal);
}

@media (max-width: 760px) {
  .com-content-article__body .pg-table {
    font-size: .84rem;
    line-height: 1.38;
  }

  .com-content-article__body .pg-table caption {
    padding: .65rem .75rem;
  }

  .com-content-article__body .pg-table th {
    padding: .55rem .5rem;
  }

  .com-content-article__body .pg-table td {
    padding: .52rem .5rem;
  }

  .com-content-article__body .pg-table.pg-table--compact th,
  .com-content-article__body .pg-table.pg-table--compact td {
    padding: .45rem .4rem;
    font-size: .82rem;
  }
}

@media (max-width: 460px) {
  .com-content-article__body .pg-table {
    font-size: .78rem;
    line-height: 1.32;
  }

  .com-content-article__body .pg-table caption {
    padding: .55rem .6rem;
    font-size: .86rem;
  }

  .com-content-article__body .pg-table th {
    padding: .46rem .36rem;
  }

  .com-content-article__body .pg-table td {
    padding: .44rem .36rem;
  }

  .com-content-article__body .pg-table.pg-table--compact th,
  .com-content-article__body .pg-table.pg-table--compact td {
    padding: .4rem .32rem;
    font-size: .76rem;
  }
}


/* =========================================================
   3. Menús de cabecera
   ========================================================= */

.container-header {
  position: relative;
  z-index: 1000;
  overflow: visible;
  background:
    linear-gradient(
      135deg,
      #176b78 0%,
      #1d7989 46%,
      #2a7f84 68%,
      #bd5a0d 100%
    ) #176b78 !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, .08);
}

.container-header .grid-child,
.container-header .container-below-top,
.container-header .container-nav {
  background: transparent !important;
}

.container-header .container-below-top,
.container-header .container-nav {
  position: relative;
  z-index: 1;
  overflow: visible;
  clip-path: none !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.14),
    inset 0 -1px 0 rgba(0, 0, 0, 0.22) !important;
}

.container-header .container-below-top::before,
.container-header .container-nav::before {
  content: "";
  position: absolute;
  inset-block: 0;
  left: 50%;
  width: 100vw;
  transform: translateX(-50%);
  background:
    linear-gradient(
      to bottom,
      var(--pg-header-menu-bg-3d-top) 0%,
      var(--pg-header-menu-bg-3d-mid) 55%,
      var(--pg-header-menu-bg-3d-bottom) 100%
    ) !important;
  z-index: 0;
  pointer-events: none;
}

.container-header .container-below-top > *,
.container-header .container-nav > * {
  position: relative;
  z-index: 2;
}

.container-header .navbar,
.container-header .navbar-collapse,
.container-header .mod-menu,
.container-header .metismenu-item {
  overflow: visible;
}

.container-header .navbar-brand {
  background: transparent;
  border-radius: 0;
  padding: 0;
  box-shadow: none;
}

.container-header .mod-menu > li > a,
.container-header .mod-menu > li > span,
.container-header .navbar-toggler,
.container-header .mm-toggler {
  color: #ffffff !important;
}

/* Fallback para enlaces raíz no cubiertos por los selectores específicos de cada menú. */
.container-header .mod-menu > li > a:hover {
  background: rgba(255, 255, 255, .14);
}

.container-header .navbar-toggler {
  border-color: rgba(255, 255, 255, .35);
}

/* Estado activo común: aplica solo a los ítems raíz de ambos menús. */
.container-header .mod-menu > li.current > a,
.container-header .mod-menu > li.active > a,
.container-header .mod-menu > li > a[aria-current="page"],
.container-header .mod-menu > li > a[aria-current="location"] {
  color: #ffffff !important;
  background: rgba(255, 255, 255, .14) !important;
  border-radius: 999px;
  font-weight: 700;
  box-shadow:
    inset 0 -3px 0 rgba(222, 113, 13, .95),
    0 2px 7px rgba(0, 0, 0, .10);
  text-shadow: 0 1px 1px rgba(0, 0, 0, .25);
}

.container-header .mod-menu > li.current > a:hover,
.container-header .mod-menu > li.active > a:hover,
.container-header .mod-menu > li > a[aria-current="page"]:hover,
.container-header .mod-menu > li > a[aria-current="location"]:hover {
  color: #ffffff !important;
  background: rgba(255, 255, 255, .20) !important;
}

/* El menú principal necesita neutralizar el borde y el desplazamiento del hover base. */
.container-header .container-nav .mod-menu > li.level-1.current > a,
.container-header .container-nav .mod-menu > li.level-1.active > a,
.container-header .container-nav .mod-menu > li.level-1 > a[aria-current="page"],
.container-header .container-nav .mod-menu > li.level-1 > a[aria-current="location"] {
  border-color: transparent !important;
  box-shadow:
    inset 0 -3px 0 rgba(222, 113, 13, .95),
    0 2px 7px rgba(0, 0, 0, .10) !important;
  transform: none !important;
}

.container-header .container-nav .mod-menu > li.level-1.current > a:hover,
.container-header .container-nav .mod-menu > li.level-1.active > a:hover,
.container-header .container-nav .mod-menu > li.level-1 > a[aria-current="page"]:hover,
.container-header .container-nav .mod-menu > li.level-1 > a[aria-current="location"]:hover,
.container-header .container-nav .mod-menu > li.level-1.current > a:focus,
.container-header .container-nav .mod-menu > li.level-1.active > a:focus,
.container-header .container-nav .mod-menu > li.level-1 > a[aria-current="page"]:focus,
.container-header .container-nav .mod-menu > li.level-1 > a[aria-current="location"]:focus {
  color: #ffffff !important;
  background: rgba(255, 255, 255, .20) !important;
  border-color: transparent !important;
  box-shadow:
    inset 0 -3px 0 rgba(222, 113, 13, .95),
    0 2px 7px rgba(0, 0, 0, .10) !important;
  transform: none !important;
}

.container-header .container-below-top {
  min-height: 32px;
  padding-block: 0.18rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.14);
}

.container-header .container-nav {
  padding-block: 0.38rem;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
  border-bottom: 1px solid rgba(0, 0, 0, 0.14);
}

.container-header .container-below-top .navbar,
.container-header .container-nav .navbar {
  width: 100%;
  padding-block: 0;
}

.container-header .container-below-top .navbar-collapse,
.container-header .container-nav .navbar-collapse {
  justify-content: center;
}

@media (min-width: 992px) {
  .container-header .container-below-top {
    z-index: 3000;
  }

  .container-header .container-nav {
    z-index: 2000;
  }

  .container-header .navbar-brand {
    position: relative;
    z-index: 1000;
  }

  .container-header .container-below-top .mod-menu,
  .container-header .container-nav .mod-menu {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
  }

  .container-header .container-below-top .mod-menu {
    gap: var(--pg-top-menu-gap);
  }

  .container-header .container-nav .mod-menu {
    gap: var(--pg-main-menu-gap);
  }

  .container-header .container-below-top .metismenu-item > a {
    color: var(--pg-header-menu-text-soft);
    font-size: var(--pg-top-menu-font-size);
    line-height: 1.2;
    text-decoration: none;
    padding: 0.3rem 0.44rem;
    border-radius: 999px;
    transition: background-color 0.18s ease, color 0.18s ease;
  }

  .container-header .container-below-top .metismenu-item > a:hover,
  .container-header .container-below-top .metismenu-item > a:focus {
    color: var(--pg-header-menu-text);
    background: rgba(255, 255, 255, 0.13);
  }

  .container-header .container-nav .metismenu-item > a {
    color: var(--pg-header-menu-text);
    font-size: var(--pg-main-menu-font-size);
    line-height: 1.2;
    font-weight: 600;
    letter-spacing: 0.01em;
    text-decoration: none;
    padding: 0.44rem 0.56rem;
    border-radius: 999px;
    border: 1px solid var(--pg-header-menu-border);
    background: rgba(255, 255, 255, 0.08);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12);
    transition:
      background-color 0.18s ease,
      border-color 0.18s ease,
      color 0.18s ease,
      box-shadow 0.18s ease,
      transform 0.18s ease;
  }

  .container-header .container-nav .metismenu-item > a:hover,
  .container-header .container-nav .metismenu-item > a:focus {
    color: #ffffff;
    background: var(--pg-header-menu-accent);
    border-color: rgba(255, 255, 255, 0.34);
    box-shadow: 0 6px 14px rgba(0, 0, 0, 0.16);
    transform: translateY(-1px);
  }

  .container-header .container-below-top .mm-toggler,
  .container-header .container-nav .mm-toggler {
    color: #ffffff;
    border: 0;
    opacity: 0.9;
    margin-left: -0.24rem;
    padding-inline: 0.12rem;
  }

  .container-header .container-below-top .mm-toggler:hover,
  .container-header .container-nav .mm-toggler:hover {
    opacity: 1;
  }

  .container-header .container-below-top .metismenu-item,
  .container-header .container-nav .metismenu-item {
    position: relative;
  }

  .container-header .container-below-top .metismenu-item > ul,
  .container-header .container-nav .metismenu-item > ul {
    background: #ffffff;
    border: 1px solid rgba(20, 95, 108, 0.16);
    border-radius: 0.85rem;
    padding: 0.35rem;
    box-shadow: 0 14px 30px rgba(0, 0, 0, 0.18);
  }

  .container-header .container-below-top .metismenu-item > ul,
  .container-header .container-below-top .mm-collapse {
    z-index: 5000;
  }

  .container-header .container-nav .metismenu-item > ul,
  .container-header .container-nav .mm-collapse {
    z-index: 2000;
  }

  .container-header .container-below-top .level-2 > a,
  .container-header .container-nav .level-2 > a {
    color: #184f59;
    font-size: 0.86rem;
    line-height: 1.25;
    padding: 0.46rem 0.66rem;
    border-radius: 0.6rem;
    text-decoration: none;
    background: transparent;
    border: 0;
    box-shadow: none;
    transform: none;
  }

  .container-header .container-below-top .level-2 > a:hover,
  .container-header .container-nav .level-2 > a:hover,
  .container-header .container-below-top .level-2 > a:focus,
  .container-header .container-nav .level-2 > a:focus {
    color: #ffffff;
    background: var(--pg-header-menu-bg);
  }
}

@media (min-width: 992px) and (max-width: 1100px) {
  .container-header .container-nav .mod-menu {
    gap: 0.04rem;
  }

  .container-header .container-nav .metismenu-item > a {
    font-size: 0.79rem;
    padding: 0.4rem 0.46rem;
    letter-spacing: 0;
  }

  .container-header .container-nav .mm-toggler {
    margin-left: -0.32rem;
    padding-inline: 0.08rem;
  }
}

@media (max-width: 991.98px) {
  .container-header .container-below-top,
  .container-header .container-nav {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0.42rem !important;
    padding-bottom: 0.42rem !important;
  }

  .container-header .container-below-top .navbar,
  .container-header .container-nav .navbar {
    min-height: 36px;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    align-items: center;
  }

  .container-header .container-below-top .navbar {
    justify-content: flex-end;
  }

  .container-header .container-nav .navbar {
    justify-content: flex-end;
  }

  .container-header .container-below-top .navbar-toggler,
  .container-header .container-nav .navbar-toggler {
    min-width: 42px;
    min-height: 36px;
    border-radius: 0.65rem;
    color: #ffffff;
    border-color: rgba(255, 255, 255, 0.45);
    background: rgba(255, 255, 255, 0.08);
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    align-self: center;
    line-height: 1;
    transform: none !important;
  }

  .container-header .container-below-top .navbar-toggler {
    margin-left: 0;
    margin-right: auto;
  }

  .container-header .container-nav .navbar-toggler {
    margin-left: auto;
    margin-right: 0;
  }

  .container-header .container-below-top .navbar-toggler:hover,
  .container-header .container-nav .navbar-toggler:hover,
  .container-header .container-below-top .navbar-toggler:focus,
  .container-header .container-nav .navbar-toggler:focus {
    background: rgba(255, 255, 255, 0.12);
  }

  .container-header .container-below-top .navbar-toggler:focus,
  .container-header .container-nav .navbar-toggler:focus {
    box-shadow: 0 0 0 0.16rem rgba(255, 255, 255, 0.22);
  }

  .container-header .container-below-top .navbar-collapse,
  .container-header .container-nav .navbar-collapse {
    width: 100%;
    text-align: left;
  }

  .container-header .container-below-top .navbar-collapse:not(.show):not(.collapsing),
  .container-header .container-nav .navbar-collapse:not(.show):not(.collapsing) {
    margin-top: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    border-radius: 0 !important;
  }

  .container-header .container-below-top .navbar-collapse.show,
  .container-header .container-nav .navbar-collapse.show,
  .container-header .container-below-top .navbar-collapse.collapsing,
  .container-header .container-nav .navbar-collapse.collapsing {
    margin-top: 0.55rem !important;
    padding: 0.55rem !important;
    background: var(--pg-header-menu-bg-dark, #145f6c);
    border-radius: 0.85rem;
    box-shadow: 0 14px 28px rgba(0, 0, 0, 0.22);
    position: relative;
    z-index: 4000;
  }

  .container-header .container-below-top .mod-menu,
  .container-header .container-nav .mod-menu {
    width: 100%;
    align-items: stretch;
    padding-block: 0.25rem;
  }

  .container-header .container-below-top .metismenu-item,
  .container-header .container-nav .metismenu-item {
    width: 100%;
  }

  .container-header .container-below-top .metismenu-item > a,
  .container-header .container-nav .metismenu-item > a {
    display: block;
    width: 100%;
    color: #ffffff;
    font-size: 0.94rem;
    line-height: 1.25;
    text-align: left;
    text-decoration: none;
    padding: 0.58rem 0.8rem;
    border-radius: 0.65rem;
  }

  .container-header .container-below-top .metismenu-item > a:hover,
  .container-header .container-nav .metismenu-item > a:hover,
  .container-header .container-below-top .metismenu-item > a:focus,
  .container-header .container-nav .metismenu-item > a:focus {
    background: rgba(255, 255, 255, 0.14);
  }

  .container-header .container-below-top .mm-toggler,
  .container-header .container-nav .mm-toggler {
    color: #ffffff !important;
    opacity: 1;
  }

  .container-header .container-below-top .mm-collapse,
  .container-header .container-nav .mm-collapse {
    width: 100%;
    background: #0f4f5a !important;
    border-left: 3px solid var(--pg-header-menu-accent, #de710d);
    border-radius: 0.7rem;
    padding: 0.35rem;
    margin: 0.25rem 0 0.5rem;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
    z-index: 2000;
  }

  .container-header .container-below-top .level-2 > a,
  .container-header .container-nav .level-2 > a {
    display: block;
    color: #ffffff !important;
    background: #176b78 !important;
    border: 1px solid rgba(255, 255, 255, 0.14);
    font-size: 0.9rem;
    line-height: 1.25;
    text-align: left;
    padding: 0.5rem 0.75rem 0.5rem 1.05rem;
    margin: 0.14rem 0;
    border-radius: 0.55rem;
    text-decoration: none;
  }

  .container-header .container-below-top .level-2 > a:hover,
  .container-header .container-nav .level-2 > a:hover,
  .container-header .container-below-top .level-2 > a:focus,
  .container-header .container-nav .level-2 > a:focus {
    color: #ffffff !important;
    background: var(--pg-header-menu-accent, #de710d) !important;
    border-color: rgba(255, 255, 255, 0.28);
  }
}

@media (max-width: 767.98px) {
  .container-header .container-below-top,
  .container-header .container-nav {
    padding-top: 0.42rem !important;
    padding-bottom: 0.42rem !important;
  }

  .container-header .container-below-top .navbar,
  .container-header .container-nav .navbar {
    min-height: 36px;
  }
}


/* =========================================================
   PortalGraf - Footer global
   ========================================================= */

.container-footer.footer {
  margin-top: 2.5rem;
  padding: 0;
  background:
    linear-gradient(135deg, rgba(29, 121, 137, 1) 0%, rgba(20, 92, 105, 1) 55%, rgba(15, 68, 80, 1) 100%);
  color: #ffffff;
  border-top: 4px solid #de710d;
  box-shadow: 0 -8px 24px rgba(0, 0, 0, .08);
}

.container-footer.footer > .grid-child {
  max-width: 1180px;
  margin: 0 auto;
  padding: 1.35rem 1rem 1.15rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .75rem;
  text-align: center;
}

/* Menú legal del footer */
.container-footer.footer .mod-menu.nav {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: .45rem .65rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.container-footer.footer .mod-menu.nav > li {
  display: inline-flex !important;
  width: auto !important;
  margin: 0;
  padding: 0;
}

/* Botones legales suaves */
.container-footer.footer .mod-menu.nav > li > a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .32rem .72rem;
  color: rgba(255, 255, 255, .92);
  text-decoration: none;
  font-size: .92rem;
  font-weight: 500;
  line-height: 1.25;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, .16);
  background: rgba(255, 255, 255, .07);
  transition:
    background-color .18s ease,
    border-color .18s ease,
    color .18s ease,
    transform .18s ease;
}

.container-footer.footer .mod-menu.nav > li > a:hover,
.container-footer.footer .mod-menu.nav > li > a:focus-visible {
  color: #ffffff;
  background: rgba(222, 113, 13, .95);
  border-color: rgba(222, 113, 13, 1);
  text-decoration: none;
  transform: translateY(-1px);
}

/* Sin separadores: los propios botones ya separan visualmente */
.container-footer.footer .mod-menu.nav > li + li::before {
  content: none;
}

/* Texto copyright */
.container-footer.footer .mod-custom {
  margin: 0;
  padding-top: .55rem;
  border-top: 1px solid rgba(255, 255, 255, .16);
  width: 100%;
  max-width: 760px;
}

.container-footer.footer .mod-custom p {
  margin: 0;
  color: rgba(255, 255, 255, .86);
  font-size: .9rem;
  line-height: 1.45;
}

.container-footer.footer a {
  color: #ffffff;
}

.container-footer.footer a:hover,
.container-footer.footer a:focus-visible {
  color: #ffffff;
}

/* Footer en móvil */
@media (max-width: 575.98px) {
  .container-footer.footer {
    margin-top: 2rem;
  }

  .container-footer.footer > .grid-child {
    padding: 1.15rem .85rem 1rem;
    gap: .65rem;
  }

  .container-footer.footer .mod-menu.nav {
    gap: .38rem;
  }

  .container-footer.footer .mod-menu.nav > li > a {
    padding: .28rem .58rem;
    font-size: .88rem;
    border-radius: 999px;
  }

  .container-footer.footer .mod-custom p {
    font-size: .84rem;
  }
}

/* =========================================================
   5. Módulos RSFiles y valoraciones
   ========================================================= */

.pg-rsf-latest {
  margin: 0;
  padding: 0;
}

.pg-rsf-latest__item {
  margin-bottom: .7rem;
}

.pg-rsf-latest__title {
  line-height: 1.28;
}

.pg-rsf-latest__meta {
  font-size: .78rem;
}

.pg-rsf-latest__badge {
  font-size: .68rem;
  letter-spacing: .03em;
}

.pg-rsfiles-card__rating,
.pg-rsfiles-card__rating .fa-star,
.pg-rsfiles-card__rating .fas {
  color: var(--link-hover-color, #de710d);
}

.pg-rsfiles-card__rating .far {
  color: rgba(222, 113, 13, .35);
}

.rsfiles-layout #rsfiles-rating a,
.rsfiles-layout #rsfiles-rating .fa-star {
  color: var(--link-hover-color, #de710d);
  text-decoration: none;
}

.rsfiles-layout #rsfiles-rating a:hover {
  color: var(--pg-orange-dark);
}

/* Ajuste móvil: valoración RSFiles en una sola columna, con estrellas alineadas a la derecha */
@media (max-width: 767.98px) {
  .rsfiles-layout #rsfiles-rating,
  .rsfiles-layout .rsfiles-rating,
  .rsfiles-layout .rating:has(#rsfiles-rating) {
    float: none !important;
    clear: both !important;
    display: flex !important;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: .12rem;
    width: 100% !important;
    max-width: 100% !important;
    margin: .35rem 0 .75rem;
    padding: 0;
    text-align: right !important;
    line-height: 1.25;
  }

  .rsfiles-layout :is(div, p, li, dd, td, th):has(#rsfiles-rating) {
    float: none !important;
    clear: both !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    text-align: left !important;
  }

  .rsfiles-layout tr:has(#rsfiles-rating) {
    display: block !important;
    width: 100% !important;
  }

  .rsfiles-layout tr:has(#rsfiles-rating) > th,
  .rsfiles-layout tr:has(#rsfiles-rating) > td {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    text-align: left !important;
  }

  .rsfiles-layout .row:has(#rsfiles-rating) {
    display: block !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .rsfiles-layout .row:has(#rsfiles-rating) > [class*="col-"] {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .rsfiles-layout #rsfiles-rating a {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 1.25rem;
    height: 1.25rem;
    margin: 0;
    line-height: 1;
  }

  .rsfiles-layout #rsfiles-rating .fa-star,
  .rsfiles-layout #rsfiles-rating .fas,
  .rsfiles-layout #rsfiles-rating .far {
    font-size: 1rem;
    line-height: 1;
  }
}


/* =========================================================
   6. Breadcrumbs
   ========================================================= */

.mod-breadcrumbs__wrapper {
  margin: 0 0 1rem;
  padding-bottom: .45rem;
  border-bottom: 1px solid rgba(29, 121, 137, .16);
}

.mod-breadcrumbs.breadcrumb {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  column-gap: .35rem;
  row-gap: .25rem;
  overflow-x: visible;
  padding: .25rem 0;
  margin: 0;
  background: transparent;
  border: 0;
  font-size: .85rem;
  color: #6b7280;
}

.mod-breadcrumbs .mod-breadcrumbs__divider,
.mod-breadcrumbs .breadcrumb-item {
  flex: 0 0 auto;
  min-width: 0;
}

.mod-breadcrumbs__here {
  color: var(--pg-teal);
  font-weight: 600;
  margin-right: .25rem;
}

.mod-breadcrumbs .breadcrumb-item a {
  color: var(--pg-teal);
  text-decoration: none;
  white-space: nowrap;
}

.mod-breadcrumbs .breadcrumb-item a:hover {
  color: var(--pg-orange);
  text-decoration: underline;
}

.mod-breadcrumbs .breadcrumb-item.active {
  flex: 1 1 18rem;
  color: var(--pg-orange);
  font-weight: 600;
  overflow-wrap: break-word;
}

.mod-breadcrumbs .breadcrumb-item + .breadcrumb-item::before {
  content: "›";
  color: #9ca3af;
  padding-right: .45rem;
}

@media (max-width: 640px) {
  .mod-breadcrumbs__here {
    display: none;
  }

  .mod-breadcrumbs.breadcrumb {
    font-size: .78rem;
    padding: .15rem 0;
    white-space: normal;
  }

  .mod-breadcrumbs .mod-breadcrumbs__item:not(.active) {
    display: none;
  }

  .mod-breadcrumbs .mod-breadcrumbs__divider + .mod-breadcrumbs__item {
    display: list-item;
  }

  .mod-breadcrumbs .breadcrumb-item.active {
    flex-basis: 100%;
  }
}


/* =========================================================
   7. Módulos laterales
   ========================================================= */

.sidebar-left.card,
.sidebar-right.card {
  border: 1px solid var(--pg-border);
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 8px 22px rgba(15, 23, 42, .035);
}

.sidebar-left.card > .card-header,
.sidebar-right.card > .card-header {
  position: relative;
  overflow: hidden;
  border-bottom: 1px solid rgba(0, 0, 0, .08);
  background:
    linear-gradient(135deg, rgba(29, 121, 137, .08), rgba(222, 113, 13, .06)),
    #fff;
  color: var(--pg-text);
  font-size: .98rem;
  font-weight: 700;
  letter-spacing: .01em;
  padding: .75rem 3.75rem .75rem 1.15rem;
}

.sidebar-left.card > .card-header::before,
.sidebar-right.card > .card-header::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 3px;
  background: linear-gradient(
    90deg,
    #00aeef 0 25%,
    #ec008c 25% 50%,
    #fff200 50% 75%,
    #231f20 75% 100%
  );
}

.sidebar-left.card > .card-header::after,
.sidebar-right.card > .card-header::after {
  content: "";
  position: absolute;
  right: .75rem;
  top: 50%;
  width: 2.55rem;
  height: .42rem;
  transform: translateY(-50%);
  border-radius: 999px;
  opacity: .55;
  background:
    linear-gradient(
      90deg,
      #00aeef 0 .42rem,
      transparent .42rem .55rem,
      #ec008c .55rem .97rem,
      transparent .97rem 1.10rem,
      #fff200 1.10rem 1.52rem,
      transparent 1.52rem 1.65rem,
      #231f20 1.65rem 2.07rem,
      transparent 2.07rem 100%
    );
}

.sidebar-left.card .card-body,
.sidebar-right.card .card-body {
  background: #fff;
}

@media (max-width: 640px) {
  .sidebar-left.card > .card-header,
  .sidebar-right.card > .card-header {
    padding-right: 1rem;
  }

  .sidebar-left.card > .card-header::after,
  .sidebar-right.card > .card-header::after {
    display: none;
  }
}


/* =========================================================
   8. Cabecera común para hubs editoriales
   ========================================================= */

.pg-section {
  --pg-section-border: var(--pg-border);
  --pg-section-muted: var(--pg-muted);
  --pg-section-title: var(--pg-text);
  --pg-section-link: var(--link-color, #1d7989);
  --pg-section-hover: var(--link-hover-color, #de710d);
}

.pg-section-context,
.pg-rsfiles-context {
  display: block;
  margin: 0 0 .65rem;
  font-size: .84rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .045em;
  color: var(--pg-section-link, var(--link-color, #1d7989));
}

.pg-section-hero,
.pg-rsfiles-hero {
  border: 1px solid var(--pg-section-border, rgba(0, 0, 0, .10));
  border-radius: 1rem;
  padding: 1.15rem 1.25rem;
  margin: 0 0 1rem;
  background: linear-gradient(135deg, rgba(29, 121, 137, .08), rgba(222, 113, 13, .08));
  box-shadow: var(--pg-soft-shadow);
}

.pg-section-hero__title,
.pg-rsfiles-hero__title {
  margin: 0 0 .35rem;
  font-size: clamp(1.35rem, 2vw, 1.85rem);
  line-height: 1.2;
  color: var(--pg-section-title, #172033);
}

.pg-section-hero__text,
.pg-rsfiles-hero__text {
  margin: 0;
  color: var(--pg-section-muted, #667085);
  max-width: 74ch;
  line-height: 1.55;
}

.pg-section-hero__text + .pg-section-hero__text {
  margin-top: .45rem;
}

.pg-section-hero a {
  color: var(--pg-section-link);
  text-decoration-thickness: .08em;
  text-underline-offset: .18em;
}

.pg-section-hero a:hover,
.pg-section-hero a:focus {
  color: var(--pg-section-hover);
}

.pg-section--articles,
.pg-section--quality,
.pg-section--history {
  margin-bottom: 1rem;
}

@media (max-width: 760px) {
  .pg-section-context,
  .pg-rsfiles-context {
    margin-bottom: .55rem;
    font-size: .78rem;
    letter-spacing: .035em;
  }
}

@media (max-width: 640px) {
  .pg-section-hero,
  .pg-rsfiles-hero {
    padding: 1rem;
    border-radius: .9rem;
  }

  .pg-section-hero__title,
  .pg-rsfiles-hero__title {
    font-size: 1.35rem;
  }

  .pg-section-hero__text,
  .pg-rsfiles-hero__text {
    font-size: .96rem;
  }
}


/* =========================================================
   8.1 Etiquetas comunes de com_content
   ========================================================= */

body.com_content .container-component ul.tags {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .24rem .32rem;
  margin: 0;
  padding-left: 0;
  list-style: none;
}

body.com_content .container-component ul.tags li,
body.com_content .container-component ul.tags .list-inline-item {
  margin: 0;
  padding: 0;
}

body.com_content .container-component ul.tags a {
  display: inline-flex;
  align-items: center;
  min-height: 1.38rem;
  padding: .08rem .42rem;
  border: 1px solid rgba(29, 121, 137, .22);
  border-radius: 999px;
  background: rgba(29, 121, 137, .045);
  color: var(--pg-teal, #1d7989);
  font-size: .72rem;
  font-weight: 500;
  line-height: 1.1;
  text-decoration: none;
  box-shadow: none;
}

body.com_content .container-component ul.tags a:hover,
body.com_content .container-component ul.tags a:focus {
  border-color: rgba(222, 113, 13, .42);
  background: rgba(222, 113, 13, .075);
  color: var(--pg-orange, #de710d);
  text-decoration: none;
  box-shadow: none;
}


/* =========================================================
   9. Tarjetas de subcategorías en hubs editoriales
   Inspiradas en las tarjetas de Descargas
   ========================================================= */

.pg-category-cards {
  display: grid;
  gap: 1rem;
  margin-top: 1rem;
}

.pg-category-card {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(29, 121, 137, .18);
  border-radius: 1.1rem;
  background: #fff;
  padding: 1rem 1.1rem 1rem 1.25rem;
  box-shadow: 0 10px 24px rgba(15, 23, 42, .055);
  transition:
    border-color .18s ease,
    box-shadow .18s ease,
    transform .18s ease;
}

.pg-category-card::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: linear-gradient(180deg, var(--pg-teal), var(--pg-orange));
  opacity: .75;
}

.pg-category-card:hover {
  border-color: rgba(222, 113, 13, .38);
  box-shadow: 0 14px 30px rgba(15, 23, 42, .085);
  transform: translateY(-1px);
}

.pg-category-card__header {
  margin-bottom: .45rem;
}

.pg-category-card__title {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  margin: 0;
  font-size: 1.12rem;
  line-height: 1.28;
}

.pg-category-card__title a {
  min-width: 0;
  color: var(--pg-text);
  text-decoration: none;
}

.pg-category-card__title a:hover,
.pg-category-card__title a:focus {
  color: var(--pg-orange);
  text-decoration: underline;
  text-decoration-thickness: .08em;
  text-underline-offset: .18em;
}

.pg-category-card__count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-left: auto;
  padding: .35rem .62rem;
  border: 1px solid rgba(29, 121, 137, .16);
  border-radius: 999px;
  background: #eef2f4 !important;
  color: var(--pg-muted) !important;
  font-size: .78rem;
  font-weight: 700;
  line-height: 1.15;
  white-space: nowrap;
}

.pg-category-card:hover .pg-category-card__count {
  border-color: rgba(222, 113, 13, .24);
  background: rgba(222, 113, 13, .08) !important;
  color: var(--pg-orange) !important;
}

.pg-category-card__description {
  margin-top: .45rem;
  color: var(--pg-muted);
  font-size: .96rem;
  line-height: 1.62;
}

.pg-category-card__description > h2:first-child {
  display: none;
}

.pg-category-card__description p {
  margin-bottom: 0;
}

.pg-category-card__description a,
.pg-category-card__description .glosTip {
  text-decoration-thickness: .08em;
  text-underline-offset: .18em;
}

@media (max-width: 640px) {
  .pg-category-card {
    padding: .95rem .95rem .95rem 1.1rem;
    border-radius: .95rem;
  }

  .pg-category-card__title {
    flex-direction: column;
    align-items: flex-start;
    gap: .45rem;
    font-size: 1.05rem;
  }

  .pg-category-card__count {
    margin-left: 0;
  }
}


/* =========================================================
   10. Vista categoría tipo tabla/listado
   Solo para .content-category, no para blog
   ========================================================= */

body.com_content.view-category .content-category {
  --pg-cat-border: var(--pg-border);
  --pg-cat-muted: var(--pg-muted);
  --pg-cat-title: var(--pg-text);
  --pg-cat-hover: var(--link-hover-color, #de710d);
  display: flex;
  flex-direction: column;
}

body.com_content.view-category .content-category > h1 {
  order: 1;
  margin: 0;
  border: 1px solid var(--pg-cat-border);
  border-bottom: 0;
  border-radius: 1rem;
  padding: 1.15rem 1.25rem .35rem;
  background: linear-gradient(135deg, rgba(29, 121, 137, .08), rgba(222, 113, 13, .08));
  color: var(--pg-cat-title);
  font-size: clamp(1.35rem, 2vw, 1.85rem);
  line-height: 1.2;
  box-shadow: var(--pg-soft-shadow);
}

body.com_content.view-category .content-category > .category-desc {
  order: 2;
}

body.com_content.view-category .content-category > .tags {
  order: 3;
}

body.com_content.view-category .content-category > .tags,
.pg-content-category .pg-category-tags .tags {
  padding: 0;
  border: 0;
  background: transparent;
}

body.com_content.view-category .content-category > form.com-content-category__articles {
  order: 4;
}

body.com_content.view-category .content-category > .category-desc:not(:has(.pg-section)) {
  margin: 0 0 1rem;
  border: 1px solid var(--pg-cat-border);
  border-top: 0;
  border-radius: 0 0 1rem 1rem;
  padding: 0 1.25rem 1.1rem;
  background: linear-gradient(135deg, rgba(29, 121, 137, .08), rgba(222, 113, 13, .08));
  color: var(--pg-cat-muted);
  box-shadow: var(--pg-soft-shadow);
}

body.com_content.view-category .content-category > .category-desc:has(.pg-section) {
  margin: 0 0 1rem;
  border: 0;
  border-radius: 0;
  padding: 0;
  background: transparent;
  box-shadow: none;
}

body.com_content.view-category .content-category > .category-desc h2:first-child {
  margin: 0 0 .35rem;
  color: var(--pg-cat-title);
  font-size: 1.05rem;
  line-height: 1.3;
}

body.com_content.view-category .content-category > .category-desc p {
  max-width: 74ch;
  margin-bottom: 0;
  line-height: 1.6;
}

/* Selector de cantidad: se mantiene nativo; solo separación */
body.com_content.view-category .com-content-category__pagination.btn-group.float-end {
  margin-bottom: .75rem;
}

/* Tabla/listado de artículos */
body.com_content.view-category .com-content-category__articles {
  margin-top: 1rem;
}

body.com_content.view-category .com-content-category__table {
  clear: both;
  width: 100%;
  max-width: 100%;
  border: 1px solid #d9e1e5;
  border-radius: 10px;
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
  background: #ffffff;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);

  --bs-table-bg: #ffffff;
  --bs-table-striped-bg: #f8fbfc;
  --bs-table-hover-bg: #eef6f8;
}

body.com_content.view-category .com-content-category__table.table {
  margin: 0 0 1rem;
}

body.com_content.view-category .com-content-category__table thead th {
  padding: 0.75rem 0.9rem;
  background: var(--pg-teal);
  color: #ffffff;
  border: 1px solid #166575;
  text-align: left;
  font-weight: 700;
  vertical-align: top;
  font-size: .92rem;
  line-height: 1.35;
  white-space: nowrap;
}

body.com_content.view-category .com-content-category__table thead th a {
  color: #ffffff;
  text-decoration: none;
}

body.com_content.view-category .com-content-category__table thead th a:hover,
body.com_content.view-category .com-content-category__table thead th a:focus {
  color: #ffffff;
  text-decoration: underline;
  text-decoration-thickness: .08em;
  text-underline-offset: .18em;
}

body.com_content.view-category .com-content-category__table td,
body.com_content.view-category .com-content-category__table th.list-title {
  padding: 0.7rem 0.9rem;
  border: 1px solid #d9e1e5;
  vertical-align: top;
}

body.com_content.view-category .com-content-category__table tbody tr:nth-child(even) > * {
  background-color: #f8fbfc;
}

body.com_content.view-category .com-content-category__table tbody tr:hover > * {
  background-color: #eef6f8;
}

body.com_content.view-category .com-content-category__table .list-title a {
  color: var(--pg-cat-title);
  font-weight: 700;
  text-decoration: none;
}

body.com_content.view-category .com-content-category__table .list-title a:hover,
body.com_content.view-category .com-content-category__table .list-title a:focus {
  color: var(--pg-cat-hover);
  text-decoration: underline;
  text-decoration-thickness: .08em;
  text-underline-offset: .18em;
}

body.com_content.view-category .com-content-category__table .list-author {
  color: var(--pg-cat-muted);
  font-size: .92rem;
}

body.com_content.view-category .com-content-category__table .list-hits {
  text-align: center;
  white-space: nowrap;
}

body.com_content.view-category .com-content-category__table .list-hits .badge {
  min-width: 2.25rem;
  border-radius: 999px;
  background: rgba(29, 121, 137, .10) !important;
  color: var(--pg-teal);
  font-size: .78rem;
  font-weight: 700;
}

/* La paginación se unifica globalmente en la sección 15. */

@media (max-width: 760px) {
  body.com_content.view-category .content-category > h1 {
    padding: 1rem 1rem .35rem;
    font-size: 1.35rem;
  }

  body.com_content.view-category .content-category > .category-desc:not(:has(.pg-section)) {
    padding: 0 1rem 1rem;
  }

  body.com_content.view-category .com-content-category__table {
    display: block;
    width: 100%;
    overflow-x: auto;
    border-radius: .9rem;
  }

  body.com_content.view-category .com-content-category__table th,
  body.com_content.view-category .com-content-category__table td {
    white-space: nowrap;
  }

  body.com_content.view-category .com-content-category__table .list-title a {
    display: inline-block;
    min-width: 16rem;
    white-space: normal;
  }
}


/* =========================================================
   11. Vistas blog Joomla
   Noticias, Calidad blog y portada destacados
   ========================================================= */

body.com_content.view-category .com-content-category-blog,
body.com_content.view-featured .blog-featured,
body.com_content.view-featured .com-content-featured {
  --pg-blog-border: var(--pg-border, rgba(0, 0, 0, .10));
  --pg-blog-muted: var(--pg-muted, #667085);
  --pg-blog-title: var(--pg-text, #172033);
  --pg-blog-link: var(--link-color, #1d7989);
  --pg-blog-hover: var(--link-hover-color, #de710d);
  --pg-blog-shadow: var(--pg-soft-shadow, 0 8px 22px rgba(15, 23, 42, .04));

  display: flex;
  flex-direction: column;
}

/* Texto superior identitario */
body.com_content.view-category .com-content-category-blog::before,
body.com_content.view-featured .blog-featured::before,
body.com_content.view-featured .com-content-featured::before {
  content: var(--pg-page-context, "PortalGraf");
  display: block;
  order: 0;
  margin: 0 0 .65rem;
  font-size: .84rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .045em;
  color: var(--pg-blog-link);
}

/* Cabecera blog con H1 directo */
body.com_content.view-category .com-content-category-blog > h1 {
  order: 1;
  margin: 0 0 1rem;
  border: 1px solid var(--pg-blog-border);
  border-radius: 1rem;
  padding: 1.15rem 1.25rem;
  background: linear-gradient(135deg, rgba(29, 121, 137, .08), rgba(222, 113, 13, .08));
  color: var(--pg-blog-title);
  font-size: clamp(1.35rem, 2vw, 1.85rem);
  line-height: 1.2;
  box-shadow: var(--pg-blog-shadow);
}

/* Cabecera blog con .page-header */
body.com_content.view-category .com-content-category-blog > .page-header,
body.com_content.view-featured .blog-featured > .page-header,
body.com_content.view-featured .com-content-featured > .page-header {
  order: 1;
  margin: 0 0 1rem;
  border: 1px solid var(--pg-blog-border);
  border-radius: 1rem;
  padding: 1.15rem 1.25rem;
  background: linear-gradient(135deg, rgba(29, 121, 137, .08), rgba(222, 113, 13, .08));
  box-shadow: var(--pg-blog-shadow);
}

body.com_content.view-category .com-content-category-blog > .page-header h1,
body.com_content.view-featured .blog-featured > .page-header h1,
body.com_content.view-featured .com-content-featured > .page-header h1 {
  margin: 0;
  color: var(--pg-blog-title);
  font-size: clamp(1.35rem, 2vw, 1.85rem);
  line-height: 1.2;
}

/* Cuando el blog tiene descripción real, la cabecera se une con la descripción */
body.com_content.view-category .com-content-category-blog:has(> .category-desc > *) > h1,
body.com_content.view-category .com-content-category-blog:has(> .category-desc > *) > .page-header {
  margin-bottom: 0;
  border-bottom: 0;
  border-radius: 1rem 1rem 0 0;
  padding-bottom: .35rem;
  box-shadow: none;
}

body.com_content.view-category .com-content-category-blog > .category-desc {
  order: 2;
  margin: 0 0 1rem;
  border: 1px solid var(--pg-blog-border);
  border-top: 0;
  border-radius: 0 0 1rem 1rem;
  padding: 0 1.25rem 1.1rem;
  background: linear-gradient(135deg, rgba(29, 121, 137, .08), rgba(222, 113, 13, .08));
  color: var(--pg-blog-muted);
  box-shadow: var(--pg-blog-shadow);
}

body.com_content.view-category .com-content-category-blog > .category-desc:not(:has(> *)) {
  display: none;
}

body.com_content.view-category .com-content-category-blog > .category-desc h2:first-child {
  margin: 0 0 .35rem;
  color: var(--pg-blog-title);
  font-size: 1.05rem;
  line-height: 1.3;
}

body.com_content.view-category .com-content-category-blog > .category-desc p {
  max-width: 74ch;
  margin-bottom: 0;
  line-height: 1.6;
}

/* Etiquetas blog */
body.com_content.view-category .com-content-category-blog > .tags,
body.com_content.view-featured .blog-featured > .tags,
body.com_content.view-featured .com-content-featured > .tags {
  order: 3;
  margin: .2rem 0 .85rem;
  padding: 0;
  border: 0;
  background: transparent;
}

/* Contenedores de artículos */
body.com_content.view-category .com-content-category-blog__items,
body.com_content.view-featured .blog-items,
body.com_content.view-featured .items-leading {
  order: 4;
  display: grid;
  gap: 1rem;
  margin: 0 0 1rem;
}

body.com_content.view-category .com-content-category-blog__items + .com-content-category-blog__items {
  margin-top: 0;
}

/* Mantener columnas en portada si Joomla imprime columns-2 / columns-3 */
@media (min-width: 760px) {
  body.com_content.view-featured .blog-items.columns-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.com_content.view-featured .blog-items.columns-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* Tarjetas de artículo */
body.com_content.view-category .com-content-category-blog__item,
body.com_content.view-featured .blog-item {
  border: 1px solid var(--pg-blog-border);
  border-radius: 1rem;
  background: #ffffff;
  padding: 1rem 1.1rem;
  box-shadow: var(--pg-blog-shadow);
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

body.com_content.view-category .com-content-category-blog__item:hover,
body.com_content.view-featured .blog-item:hover {
  border-color: rgba(29, 121, 137, .22);
  box-shadow: 0 10px 26px rgba(15, 23, 42, .07);
  transform: translateY(-1px);
}

body.com_content.view-category .com-content-category-blog__item .item-content,
body.com_content.view-featured .blog-item .item-content {
  display: block;
}

/* Títulos de artículos */
body.com_content.view-category .com-content-category-blog__item .page-header,
body.com_content.view-featured .blog-item .page-header {
  margin: 0 0 .55rem;
  padding: 0;
  border: 0;
}

body.com_content.view-category .com-content-category-blog__item .page-header h2,
body.com_content.view-featured .blog-item .page-header h2,
body.com_content.view-featured .blog-item .item-title {
  margin: 0 0 .55rem;
  font-size: clamp(1.12rem, 1.7vw, 1.35rem);
  line-height: 1.28;
}

body.com_content.view-category .com-content-category-blog__item .page-header h2 a,
body.com_content.view-featured .blog-item .page-header h2 a,
body.com_content.view-featured .blog-item .item-title a {
  color: var(--pg-blog-title);
  text-decoration: none;
}

body.com_content.view-category .com-content-category-blog__item .page-header h2 a:hover,
body.com_content.view-category .com-content-category-blog__item .page-header h2 a:focus,
body.com_content.view-featured .blog-item .page-header h2 a:hover,
body.com_content.view-featured .blog-item .page-header h2 a:focus,
body.com_content.view-featured .blog-item .item-title a:hover,
body.com_content.view-featured .blog-item .item-title a:focus {
  color: var(--pg-blog-hover);
  text-decoration: underline;
  text-decoration-thickness: .08em;
  text-underline-offset: .18em;
}

/* Metadatos */
body.com_content.view-category .com-content-category-blog__item .article-info,
body.com_content.view-featured .blog-item .article-info {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem .75rem;
  margin: 0 0 .75rem;
  padding: 0;
  color: var(--pg-blog-muted);
  font-size: .86rem;
  line-height: 1.35;
}

body.com_content.view-category .com-content-category-blog__item .article-info dd,
body.com_content.view-featured .blog-item .article-info dd {
  margin: 0;
}

body.com_content.view-category .com-content-category-blog__item .article-info .icon-fw,
body.com_content.view-featured .blog-item .article-info .icon-fw {
  color: var(--pg-blog-link);
  opacity: .85;
}

/* Tiempo de lectura */
body.com_content.view-category .com-content-category-blog__item .alert.alert-info,
body.com_content.view-featured .blog-item .alert.alert-info {
  display: inline-block;
  margin: 0 0 .85rem;
  padding: .38rem .65rem;
  border: 1px solid rgba(29, 121, 137, .16);
  border-radius: 999px;
  background: rgba(29, 121, 137, .08);
  color: var(--pg-blog-link);
  font-size: .82rem;
  font-weight: 700;
  line-height: 1.25;
}

/* Extracto */
body.com_content.view-category .com-content-category-blog__item p,
body.com_content.view-featured .blog-item p {
  color: var(--pg-blog-muted);
  line-height: 1.62;
}

body.com_content.view-category .com-content-category-blog__item p:last-child,
body.com_content.view-featured .blog-item p:last-child {
  margin-bottom: 0;
}

body.com_content.view-category .com-content-category-blog__item img,
body.com_content.view-featured .blog-item img {
  max-width: 100%;
  height: auto;
  border-radius: .85rem;
}

body.com_content.view-category .com-content-category-blog__item figure,
body.com_content.view-featured .blog-item figure {
  margin: 0 0 1rem;
}

body.com_content.view-category .com-content-category-blog__item figcaption,
body.com_content.view-featured .blog-item figcaption {
  margin-top: .45rem;
  color: var(--pg-blog-muted);
  font-size: .86rem;
  line-height: 1.4;
  text-align: center;
}

/* Botón leer más */
body.com_content.view-category .com-content-category-blog__item .readmore,
body.com_content.view-featured .blog-item .readmore {
  margin-top: .95rem;
}

body.com_content.view-category .com-content-category-blog__item .readmore .btn,
body.com_content.view-featured .blog-item .readmore .btn {
  border: 1px solid rgba(29, 121, 137, .22);
  border-radius: 999px;
  background: var(--pg-blog-link);
  color: #ffffff;
  font-size: .9rem;
  font-weight: 700;
  padding: .5rem .8rem;
  text-decoration: none;
}

body.com_content.view-category .com-content-category-blog__item .readmore .btn:hover,
body.com_content.view-category .com-content-category-blog__item .readmore .btn:focus,
body.com_content.view-featured .blog-item .readmore .btn:hover,
body.com_content.view-featured .blog-item .readmore .btn:focus {
  border-color: rgba(222, 113, 13, .35);
  background: var(--pg-blog-hover);
  color: #ffffff;
}

/* RSFiles embebido dentro de extractos */
body.com_content.view-category .com-content-category-blog__item .rsfiles-layout,
body.com_content.view-featured .blog-item .rsfiles-layout {
  margin: 1rem 0;
  overflow-x: auto;
}

body.com_content.view-category .com-content-category-blog__item .rsfiles-layout table,
body.com_content.view-featured .blog-item .rsfiles-layout table {
  margin-bottom: 0;
  border: 1px solid rgba(29, 121, 137, .14);
  border-radius: .85rem;
  overflow: hidden;
  background: #ffffff;
}

body.com_content.view-category .com-content-category-blog__item .rsfiles-layout .rsfiles-file,
body.com_content.view-featured .blog-item .rsfiles-layout .rsfiles-file {
  color: var(--pg-blog-title);
  font-weight: 700;
  text-decoration: none;
}

body.com_content.view-category .com-content-category-blog__item .rsfiles-layout .rsfiles-file:hover,
body.com_content.view-featured .blog-item .rsfiles-layout .rsfiles-file:hover {
  color: var(--pg-blog-hover);
  text-decoration: underline;
  text-decoration-thickness: .08em;
  text-underline-offset: .18em;
}

/* Más enlaces en blog */
body.com_content.view-category .items-more {
  order: 5;
  margin: .25rem 0 1rem;
  padding: 1rem 1.1rem;
  border: 1px solid var(--pg-blog-border);
  border-radius: 1rem;
  background: #ffffff;
  box-shadow: var(--pg-blog-shadow);
}

body.com_content.view-category .items-more ol,
body.com_content.view-category .items-more ul {
  margin-bottom: 0;
}

/* Paginación blog: estructura nativa Joomla; estilo unificado en la sección 15. */
body.com_content.view-category .com-content-category-blog__navigation,
body.com_content.view-category .com-content-category-blog__pagination {
  order: 6;
  margin-top: .75rem;
}

body.com_content.view-category .com-content-category-blog__counter {
  color: var(--pg-blog-muted);
  font-size: .92rem;
}

/* Responsive blog */
@media (max-width: 760px) {
  body.com_content.view-category .com-content-category-blog::before,
  body.com_content.view-featured .blog-featured::before,
  body.com_content.view-featured .com-content-featured::before {
    margin-bottom: .55rem;
    font-size: .78rem;
    letter-spacing: .035em;
  }

  body.com_content.view-category .com-content-category-blog > h1,
  body.com_content.view-category .com-content-category-blog > .page-header,
  body.com_content.view-featured .blog-featured > .page-header,
  body.com_content.view-featured .com-content-featured > .page-header {
    padding: 1rem;
    font-size: 1.35rem;
  }

  body.com_content.view-category .com-content-category-blog > .category-desc {
    padding: 0 1rem 1rem;
  }

  body.com_content.view-category .com-content-category-blog__item,
  body.com_content.view-featured .blog-item {
    padding: .95rem;
    border-radius: .9rem;
  }

  body.com_content.view-category .com-content-category-blog__item .article-info,
  body.com_content.view-featured .blog-item .article-info {
    display: block;
  }

  body.com_content.view-category .com-content-category-blog__item .article-info dd,
  body.com_content.view-featured .blog-item .article-info dd {
    margin-bottom: .25rem;
  }

}

/* =========================================================
   12. Vista artículo Joomla
   com_content view-article
   Estilo PortalGraf para artículos técnicos/noticias/calidad
   ========================================================= */

body.com_content.view-article .com-content-article {
  --pg-article-border: var(--pg-border, rgba(0, 0, 0, .10));
  --pg-article-muted: var(--pg-muted, #667085);
  --pg-article-title: var(--pg-text, #172033);
  --pg-article-link: var(--link-color, #1d7989);
  --pg-article-hover: var(--link-hover-color, #de710d);
  --pg-article-shadow: var(--pg-soft-shadow, 0 8px 22px rgba(15, 23, 42, .04));

  display: flex;
  flex-direction: column;
}

/* Contexto superior: PortalGraf · Calidad / Noticias / etc. */
body.com_content.view-article .com-content-article::before {
  content: var(--pg-page-context, "PortalGraf");
  display: block;
  order: 0;
  margin: 0 0 .65rem;
  font-size: .84rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .045em;
  color: var(--pg-article-link);
}

/* Cabecera del artículo */
body.com_content.view-article .com-content-article > .page-header {
  order: 1;
  margin: 0 0 1rem;
  border: 1px solid var(--pg-article-border);
  border-radius: 1rem;
  padding: 1.15rem 1.25rem;
  background: linear-gradient(135deg, rgba(29, 121, 137, .08), rgba(222, 113, 13, .08));
  box-shadow: var(--pg-article-shadow);
}

body.com_content.view-article .com-content-article > .page-header h1 {
  margin: 0;
  color: var(--pg-article-title);
  font-size: clamp(1.55rem, 2.4vw, 2.15rem);
  line-height: 1.18;
}

/* Metadatos */
body.com_content.view-article .com-content-article > .article-info {
  order: 2;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .35rem .75rem;
  margin: 0 0 .8rem;
  padding: 0;
  color: var(--pg-article-muted, #667085) !important;
  font-size: .88rem;
  line-height: 1.35;
}

body.com_content.view-article .com-content-article > .article-info dd {
  display: inline-flex;
  align-items: center;
  gap: .18rem;
  margin: 0;
  padding: 0;
}

body.com_content.view-article .com-content-article > .article-info .icon-fw {
  color: var(--pg-article-link, #1d7989);
  opacity: .85;
}

body.com_content .article-info > .article-info-term {
  display: none;
}

body.com_content .article-info > dd {
  margin-left: 0;
}

body.com_content .article-info > dd.pg-reading-time .icon-clock {
  color: inherit;
  font-size: inherit;
  line-height: inherit;
}

/* Tiempo de lectura */
body.com_content.view-article .com-content-article > .alert.alert-info {
  order: 3;
  display: inline-block;
  align-self: flex-start;
  margin: 0 0 1rem;
  padding: .38rem .65rem;
  border: 1px solid rgba(29, 121, 137, .16);
  border-radius: 999px;
  background: rgba(29, 121, 137, .08);
  color: var(--pg-article-link);
  font-size: .82rem;
  font-weight: 700;
  line-height: 1.25;
}

/* Cuerpo del artículo */
body.com_content.view-article .com-content-article__body {
  order: 4;
  border: 1px solid var(--pg-article-border);
  border-radius: 1rem;
  padding: 1.25rem;
  background: #ffffff;
  box-shadow: var(--pg-article-shadow);
}

body.com_content.view-article .com-content-article__body p,
body.com_content.view-article .com-content-article__body li {
  color: var(--pg-article-title);
  line-height: 1.72;
}

body.com_content.view-article .com-content-article__body p {
  margin-bottom: 1rem;
}

body.com_content.view-article .com-content-article__body p:last-child {
  margin-bottom: 0;
}

body.com_content.view-article .com-content-article__body h2 {
  margin: 1.75rem 0 .75rem;
  padding-left: .75rem;
  border-left: 4px solid var(--pg-article-link);
  color: var(--pg-article-title);
  font-size: clamp(1.25rem, 2vw, 1.55rem);
  line-height: 1.25;
}

body.com_content.view-article .com-content-article__body h2:first-child {
  margin-top: 0;
}

body.com_content.view-article .com-content-article__body h3 {
  margin: 1.35rem 0 .65rem;
  color: var(--pg-article-title);
  font-size: 1.18rem;
  line-height: 1.3;
}

body.com_content.view-article .com-content-article__body a {
  color: var(--pg-article-link);
  text-decoration-thickness: .08em;
  text-underline-offset: .18em;
}

body.com_content.view-article .com-content-article__body a:hover,
body.com_content.view-article .com-content-article__body a:focus {
  color: var(--pg-article-hover);
}

/* Imágenes y figuras */
body.com_content.view-article .com-content-article__body img {
  max-width: 100%;
  height: auto;
  border-radius: .85rem;
}

body.com_content.view-article .com-content-article__body figure {
  margin: 0 0 1.15rem;
}

body.com_content.view-article .com-content-article__body .pg-figure {
  max-width: 760px;
  margin: 0 0 1.15rem;
  padding: 1rem;
  border: 1px solid rgba(29, 121, 137, .18);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.05);
}

body.com_content.view-article .com-content-article__body figcaption {
  margin-top: .45rem;
  color: var(--pg-article-muted);
  font-size: .88rem;
  line-height: 1.45;
  text-align: center;
}

@media (max-width: 767.98px) {
  body.com_content.view-article .com-content-article__body .pg-figure {
    padding: .65rem;
    border-radius: 10px;
  }
}

/* Cajas editoriales */
.com-content-article__body .pg-note,
.com-content-article__body .pg-tip,
.com-content-article__body .pg-warning,
.com-content-article__body .pg-comment,
.com-content-article__body .pg-editorial-note {
  margin: 1.4rem 0;
  padding: 1rem 1.1rem;
  border-left: 5px solid var(--link-color, #1d7989);
  border-radius: 10px;
  background: rgba(29, 121, 137, .07);
  line-height: 1.65;
}

.com-content-article__body .pg-warning {
  border-left-color: var(--btnbg, #de710d);
  background: rgba(222, 113, 13, .08);
}

.com-content-article__body .pg-tip {
  border-left-color: #1d7989;
  background: rgba(29, 121, 137, .06);
}

.com-content-article__body .pg-note strong,
.com-content-article__body .pg-tip strong,
.com-content-article__body .pg-warning strong,
.com-content-article__body .pg-comment strong,
.com-content-article__body .pg-editorial-note strong {
  color: var(--template-special-color, #001B4C);
}

@media (max-width: 767.98px) {
  .com-content-article__body .pg-note,
  .com-content-article__body .pg-tip,
  .com-content-article__body .pg-warning,
  .com-content-article__body .pg-comment,
  .com-content-article__body .pg-editorial-note {
    margin: 1.1rem 0;
    padding: .85rem;
    border-radius: 8px;
  }
}

/* Fichas técnicas de diagnóstico */
.com-content-article__body .pg-diagnosis-card,
.com-content-category-blog .pg-diagnosis-card {
  margin: 1.8rem 0;
  padding: 1.25rem 1.35rem;
  border: 1px solid rgba(29, 121, 137, .18);
  border-left: 5px solid #de710d;
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(29, 121, 137, .055), rgba(222, 113, 13, .045));
  box-shadow: 0 8px 22px rgba(0, 0, 0, .035);
  transition:
    box-shadow .18s ease,
    transform .18s ease,
    border-color .18s ease,
    background .18s ease;
}

.com-content-article__body .pg-diagnosis-card h3,
.com-content-category-blog .pg-diagnosis-card h3 {
  margin-top: 0;
  margin-bottom: .7rem;
  color: #176b78;
}

.com-content-article__body .pg-diagnosis-description,
.com-content-category-blog .pg-diagnosis-description {
  margin-bottom: 1rem;
  padding-bottom: .85rem;
  border-bottom: 1px solid rgba(29, 121, 137, .14);
}

.com-content-article__body .pg-diagnosis-grid,
.com-content-category-blog .pg-diagnosis-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.com-content-article__body .pg-diagnosis-block,
.com-content-category-blog .pg-diagnosis-block {
  padding: .9rem 1rem;
  border: 1px solid rgba(29, 121, 137, .12);
  border-radius: 12px;
  background: rgba(255, 255, 255, .78);
}

.com-content-article__body .pg-diagnosis-block h4,
.com-content-category-blog .pg-diagnosis-block h4 {
  margin-top: 0;
  margin-bottom: .55rem;
  color: #1d7989;
  font-size: 1rem;
}

.com-content-article__body .pg-diagnosis-block ul,
.com-content-category-blog .pg-diagnosis-block ul {
  margin-bottom: 0;
  padding-left: 1.2rem;
}

@media (max-width: 700px) {
  .com-content-article__body .pg-diagnosis-grid,
  .com-content-category-blog .pg-diagnosis-grid {
    grid-template-columns: 1fr;
  }
}

@media (hover: hover) and (pointer: fine) {
  .com-content-article__body .pg-diagnosis-card:hover,
  .com-content-category-blog .pg-diagnosis-card:hover {
    transform: translateY(-2px);
    border-color: rgba(29, 121, 137, .28);
    background: linear-gradient(135deg, rgba(29, 121, 137, .075), rgba(222, 113, 13, .055));
    box-shadow: 0 12px 28px rgba(0, 0, 0, .075);
  }
}

@media (prefers-reduced-motion: reduce) {
  .com-content-article__body .pg-diagnosis-card,
  .com-content-category-blog .pg-diagnosis-card {
    transition: none;
  }

  .com-content-article__body .pg-diagnosis-card:hover,
  .com-content-category-blog .pg-diagnosis-card:hover {
    transform: none;
  }
}

/* Fórmulas y datos técnicos */
.com-content-article__body .formula-tecnica {
  margin: 1rem 0 1.25rem;
  padding: .9rem 1.1rem;
  border-left: .28rem solid #de710d;
  border-radius: .75rem;
  background: #f7fafb;
  color: #263238;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  font-size: .98rem;
  font-weight: 600;
  line-height: 1.6;
  white-space: pre-wrap;
  overflow-x: auto;
  box-shadow: inset 0 0 0 1px rgba(29, 121, 137, .16);
  break-inside: avoid;
  page-break-inside: avoid;
}

.com-content-article__body .formula-tecnica code {
  padding: 0;
  background: transparent;
  color: inherit;
  font: inherit;
}

.com-content-article__body .dato-tecnico {
  margin: .65rem 0 .85rem;
  padding: .65rem .85rem;
  border-left: .22rem solid #1d7989;
  border-radius: .65rem;
  background: #f8fbfa;
  color: #263238;
  line-height: 1.55;
  box-shadow: inset 0 0 0 1px rgba(29, 121, 137, .13);
  break-inside: avoid;
  page-break-inside: avoid;
}

.com-content-article__body .dato-tecnico strong {
  color: #1d7989;
}

@media (max-width: 720px) {
  .com-content-article__body .formula-tecnica {
    padding: .8rem .9rem;
    font-size: .92rem;
  }

  .com-content-article__body .dato-tecnico {
    padding: .6rem .75rem;
  }
}

/* Listas */
body.com_content.view-article .com-content-article__body ul,
body.com_content.view-article .com-content-article__body ol {
  margin-bottom: 1rem;
  padding-left: 1.35rem;
}

body.com_content.view-article .com-content-article__body li + li {
  margin-top: .25rem;
}

/* Etiquetas del artículo, debajo del cuerpo */
body.com_content.view-article .pg-article-tags {
  order: 5;
  position: static;
  float: none;
  clear: both;
  margin: 1.15rem 0 1rem;
  padding: 0;
}

body.com_content.view-article .pg-article-tags ul.tags {
  margin: 0;
}

body.com_content .pg-category-tags ul.tags {
  margin: 0;
}

/* Navegación artículo anterior/siguiente */
body.com_content.view-article .pagenavigation {
  order: 6;
  margin-top: 1rem;
}

body.com_content.view-article .pagenavigation .pagination {
  display: flex;
  justify-content: flex-end;
  margin: 0;
}

body.com_content.view-article .pagenavigation .btn {
  border: 1px solid rgba(29, 121, 137, .22);
  border-radius: 999px;
  background: var(--pg-article-link);
  color: #ffffff;
  font-size: .9rem;
  font-weight: 700;
  padding: .5rem .8rem;
  text-decoration: none;
}

body.com_content.view-article .pagenavigation .btn:hover,
body.com_content.view-article .pagenavigation .btn:focus {
  border-color: rgba(222, 113, 13, .35);
  background: var(--pg-article-hover);
  color: #ffffff;
}

/* =========================================================
   13. Artículos relacionados
   Módulo nativo y JO Related Articles / main-bottom
   ========================================================= */

body.com_content.view-article .container-component > .main-bottom.card {
  --pg-related-teal: #1d7989;
  --pg-related-teal-dark: #176b78;
  --pg-related-orange: #bd5a0d;
  --pg-related-border: rgba(29, 121, 137, .16);
  --pg-related-shadow: 0 8px 22px rgba(0, 0, 0, .045);

  margin: 1.2rem 0 0;
  border: 1px solid var(--pg-related-border);
  border-radius: .95rem;
  background: #fff;
  box-shadow: var(--pg-related-shadow);
  overflow: hidden;
}

body.com_content.view-article .container-component > .main-bottom.card + .main-bottom.card {
  margin-top: 1rem;
}

body.com_content.view-article .container-component > .main-bottom.card:last-of-type {
  margin-bottom: 1.2rem;
}

/* Cabeceras comunes: módulo nativo + JO Related Articles */
body.com_content.view-article .container-component > .main-bottom.card > .card-header,
body.com_content.view-article .container-component > .main-bottom.card .jo-related-articles > .main-title {
  margin: 0;
  padding: .9rem 1rem;
  border: 0;
  border-left: 0;
  color: #fff;
  background:
    linear-gradient(
      135deg,
      #176b78 0%,
      #1d7989 58%,
      #2a7f84 78%,
      #bd5a0d 100%
    );
  font-size: 1.08rem;
  font-weight: 750;
  line-height: 1.25;
}

body.com_content.view-article .container-component > .main-bottom.card > .card-body {
  padding: 1rem;
  background:
    linear-gradient(180deg, rgba(29, 121, 137, .035), rgba(255, 255, 255, 0) 55%);
}

/* Lecturas relacionadas · lista nativa */
body.com_content.view-article .container-component > .main-bottom.card .mod-relateditems.relateditems {
  display: grid;
  grid-template-columns: 1fr;
  gap: .55rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

body.com_content.view-article .container-component > .main-bottom.card .mod-relateditems.relateditems li {
  margin: 0;
  padding: 0;
  list-style: none;
}

body.com_content.view-article .container-component > .main-bottom.card .mod-relateditems.relateditems a {
  display: block;
  padding: .75rem .9rem;
  border: 1px solid rgba(29, 121, 137, .13);
  border-radius: .75rem;
  background: linear-gradient(180deg, #fff 0%, rgba(29, 121, 137, .035) 100%);
  color: var(--pg-related-teal-dark);
  font-weight: 700;
  line-height: 1.35;
  text-decoration: none;
  transition:
    transform .16s ease,
    border-color .16s ease,
    box-shadow .16s ease,
    color .16s ease,
    background-color .16s ease;
}

body.com_content.view-article .container-component > .main-bottom.card .mod-relateditems.relateditems a::before {
  content: none;
  display: none;
}

body.com_content.view-article .container-component > .main-bottom.card .mod-relateditems.relateditems a:hover,
body.com_content.view-article .container-component > .main-bottom.card .mod-relateditems.relateditems a:focus {
  transform: translateY(-1px);
  border-color: rgba(189, 90, 13, .38);
  background: linear-gradient(180deg, #fff 0%, rgba(29, 121, 137, .06) 100%);
  color: var(--pg-related-orange);
  box-shadow: 0 6px 16px rgba(0, 0, 0, .05);
  text-decoration: none;
}

/* También puede interesarte · JO Related Articles */
body.com_content.view-article .container-component > .main-bottom.card .jo-related-articles {
  margin: 0;
}

body.com_content.view-article .container-component > .main-bottom.card .jo-related-articles > .main-title {
  margin: -1rem -1rem 1rem;
}

body.com_content.view-article .container-component > .main-bottom.card .jo-related-articles .row {
  display: flex;
  flex-wrap: wrap;
  row-gap: .9rem;
  --bs-gutter-x: .9rem;
  --bs-gutter-y: .9rem;
  margin-top: 0;
}

body.com_content.view-article .container-component > .main-bottom.card .jo-related-articles .row > [class*="col-"] {
  margin-bottom: 0 !important;
}

body.com_content.view-article .container-component > .main-bottom.card .jo-related-articles .article-item {
  height: 100%;
  padding: .9rem;
  border: 1px solid rgba(29, 121, 137, .13);
  border-radius: .85rem;
  background: #fff;
  box-shadow: 0 4px 14px rgba(0, 0, 0, .035);
  transition:
    transform .16s ease,
    border-color .16s ease,
    box-shadow .16s ease,
    background-color .16s ease;
}

body.com_content.view-article .container-component > .main-bottom.card .jo-related-articles .article-item:hover,
body.com_content.view-article .container-component > .main-bottom.card .jo-related-articles .article-item:focus-within {
  transform: translateY(-1px);
  border-color: rgba(189, 90, 13, .38);
  background: linear-gradient(180deg, #fff 0%, rgba(29, 121, 137, .045) 100%);
  box-shadow: 0 8px 20px rgba(0, 0, 0, .055);
}

/* Width y height prevalecen sobre el estilo inline del módulo. */
body.site.com_content.view-article .container-component > .main-bottom.card .jo-related-articles .article-item img.jo-related-thumbnail {
  display: block;
  width: 100% !important;
  max-width: 100%;
  aspect-ratio: 1200 / 630;
  height: auto !important;
  margin: 0 0 .75rem !important;
  border: 1px solid rgba(29, 121, 137, .10);
  border-radius: .75rem;
  background: #f8fafc;
  object-fit: cover;
  object-position: center center;
}

body.com_content.view-article .container-component > .main-bottom.card .jo-related-articles .article-title {
  margin: 0;
  font-size: 1rem;
  line-height: 1.35;
}

body.com_content.view-article .container-component > .main-bottom.card .jo-related-articles .article-title a {
  color: var(--pg-related-teal-dark);
  font-weight: 750;
  text-decoration: none;
}

body.com_content.view-article .container-component > .main-bottom.card .jo-related-articles .article-title a:hover,
body.com_content.view-article .container-component > .main-bottom.card .jo-related-articles .article-title a:focus {
  color: var(--pg-related-orange);
  text-decoration: none;
  text-decoration-thickness: .08em;
  text-underline-offset: .18em;
}

@media (max-width: 767.98px) {
  body.com_content.view-article .container-component > .main-bottom.card {
    margin-top: 1rem;
    border-radius: .9rem;
  }

  body.com_content.view-article .container-component > .main-bottom.card > .card-header,
  body.com_content.view-article .container-component > .main-bottom.card .jo-related-articles > .main-title {
    padding: .85rem 1rem;
  }

  body.com_content.view-article .container-component > .main-bottom.card > .card-body {
    padding: .85rem;
  }

  body.com_content.view-article .container-component > .main-bottom.card .jo-related-articles > .main-title {
    margin: -.85rem -.85rem .85rem;
  }
}

/* Responsive artículo */
@media (max-width: 760px) {
  body.com_content.view-article .com-content-article::before {
    margin-bottom: .55rem;
    font-size: .78rem;
    letter-spacing: .035em;
  }

  body.com_content.view-article .com-content-article > .page-header {
    padding: 1rem;
    border-radius: .9rem;
  }

  body.com_content.view-article .com-content-article > .page-header h1 {
    font-size: 1.45rem;
  }

  body.com_content.view-article .com-content-article > .article-info {
    display: block;
  }

  body.com_content.view-article .com-content-article > .article-info dd {
    display: flex;
    margin-bottom: .25rem;
  }

  body.com_content.view-article .com-content-article__body {
    padding: 1rem;
    border-radius: .9rem;
  }

  body.com_content.view-article .com-content-article__body h2 {
    font-size: 1.25rem;
  }

  body.com_content.view-article .pagenavigation .pagination {
    justify-content: flex-start;
  }
}

/* =========================================================
   14. Vistas auxiliares PortalGraf
   OSMap, Weblinks y Contacto
   ========================================================= */

/* ---------------------------------------------------------
   14.1 Base visual común para vistas auxiliares
   --------------------------------------------------------- */

body.com_weblinks.view-category .com-weblinks-category,
body.com_contact.view-contact .com-contact {
  --pg-aux-border: var(--pg-border, rgba(0, 0, 0, .10));
  --pg-aux-muted: var(--pg-muted, #667085);
  --pg-aux-title: var(--pg-text, #172033);
  --pg-aux-link: var(--link-color, #1d7989);
  --pg-aux-hover: var(--link-hover-color, #de710d);
  --pg-aux-shadow: var(--pg-soft-shadow, 0 8px 22px rgba(15, 23, 42, .04));
}

body.com_weblinks.view-category .com-weblinks-category::before,
body.com_contact.view-contact .com-contact::before {
  content: var(--pg-page-context, "PortalGraf");
  display: block;
  margin: 0 0 .55rem;
  font-size: .84rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .045em;
  color: var(--pg-aux-link);
}


/* ---------------------------------------------------------
   14.2 OSMap / Mapa web
   Bloque definitivo integrado; prevalece sobre sitemap_html.min.css
   --------------------------------------------------------- */

body.site.com_osmap.view-html #osmap {
  --pg-aux-border: var(--pg-border, rgba(0, 0, 0, .10));
  --pg-aux-muted: var(--pg-muted, #667085);
  --pg-aux-title: var(--pg-text, #172033);
  --pg-aux-link: var(--link-color, #1d7989);
  --pg-aux-hover: var(--link-hover-color, #de710d);
  --pg-aux-shadow: var(--pg-soft-shadow, 0 8px 22px rgba(15, 23, 42, .04));
  --pg-map-teal: var(--pg-teal, #1d7989);
  --pg-map-teal-dark: var(--pg-teal-dark, #145f6c);
  --pg-map-orange: var(--pg-orange, #de710d);
  --pg-map-text: var(--pg-text, #172033);
  --pg-map-muted: var(--pg-muted, #667085);
  margin: 0;
}

body.site.com_osmap.view-html #osmap::before {
  content: var(--pg-page-context, "PortalGraf · Mapa web");
  display: block;
  margin: 0 0 .55rem;
  color: var(--pg-map-teal);
  font-size: .84rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: .045em;
  text-transform: uppercase;
}

body.site.com_osmap.view-html #osmap .osmap-items::before {
  content: "Mapa web de PortalGraf";
  display: block;
  margin: 0 0 1rem;
  padding: 1.15rem 1.25rem;
  border: 1px solid rgba(29, 121, 137, .16);
  border-radius: 1rem;
  background:
    linear-gradient(135deg, rgba(29, 121, 137, .08), rgba(222, 113, 13, .08)),
    #fff;
  box-shadow: var(--pg-soft-shadow, 0 8px 22px rgba(15, 23, 42, .04));
  color: var(--pg-map-text);
  font-size: clamp(1.35rem, 2vw, 1.85rem);
  font-weight: 700;
  line-height: 1.2;
}

body.site.com_osmap.view-html #osmap .osmap-items > h2 {
  margin: 1.35rem 0 .65rem;
  padding: .7rem .9rem;
  border: 1px solid rgba(29, 121, 137, .14);
  border-left: 4px solid var(--pg-map-teal);
  border-radius: .7rem;
  background: rgba(29, 121, 137, .045);
  color: var(--pg-map-teal-dark);
  font-size: 1rem;
  line-height: 1.3;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: none;
}

body.site.com_osmap.view-html #osmap .osmap-items > h2:first-of-type {
  margin-top: 0;
}

body.site.com_osmap.view-html #osmap #osmap-menu-uid-mainmenu {
  font-size: 0;
}

body.site.com_osmap.view-html #osmap #osmap-menu-uid-mainmenu::after {
  content: "Contenido principal";
  font-size: 1rem;
}

body.site.com_osmap.view-html #osmap ul,
body.site.com_osmap.view-html #osmap li {
  list-style: none;
}

body.site.com_osmap.view-html #osmap .level_0 {
  position: relative;
  overflow: hidden;
  margin: 0 0 1.1rem;
  padding: .15rem .85rem;
  border: 1px solid rgba(29, 121, 137, .12);
  border-radius: .85rem;
  background: #fff;
  box-shadow: 0 4px 14px rgba(15, 23, 42, .025);
  transition:
    border-color .18s ease,
    box-shadow .18s ease,
    transform .18s ease,
    background-color .18s ease;
}

body.site.com_osmap.view-html #osmap .level_0::before {
  content: none;
  display: none;
}

body.site.com_osmap.view-html #osmap .level_0:hover,
body.site.com_osmap.view-html #osmap .level_0:focus-within {
  transform: translateY(-1px);
}

body.site.com_osmap.view-html #osmap .level_0 > li {
  margin: 0;
  padding: .55rem 0;
  border: 0;
  border-bottom: 1px solid rgba(15, 23, 42, .075);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

body.site.com_osmap.view-html #osmap .level_0 > li:last-child {
  border-bottom: 0;
}

body.site.com_osmap.view-html #osmap .level_0 > li::before {
  content: none;
  display: none;
}

body.site.com_osmap.view-html #osmap .level_1,
body.site.com_osmap.view-html #osmap .level_2,
body.site.com_osmap.view-html #osmap .level_3 {
  margin: .42rem 0 .08rem .45rem;
  padding: .12rem 0 .12rem .9rem;
  border: 0;
  border-left: 2px solid rgba(29, 121, 137, .16);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

body.site.com_osmap.view-html #osmap li li {
  margin: .18rem 0;
  padding: 0;
  background: transparent;
}

body.site.com_osmap.view-html #osmap a.osmap-link {
  display: inline;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: var(--pg-map-teal);
  line-height: 1.45;
  text-decoration: none;
  overflow-wrap: anywhere;
}

body.site.com_osmap.view-html #osmap .level_0 > li > a.osmap-link {
  color: var(--pg-map-text);
  font-size: 1rem;
  font-weight: 650;
}

body.site.com_osmap.view-html #osmap .level_1 a.osmap-link,
body.site.com_osmap.view-html #osmap .level_2 a.osmap-link,
body.site.com_osmap.view-html #osmap .level_3 a.osmap-link {
  font-size: .93rem;
  font-weight: 400;
}

body.site.com_osmap.view-html #osmap a.osmap-link::before {
  content: none;
  display: none;
}

body.site.com_osmap.view-html #osmap a.osmap-link:hover,
body.site.com_osmap.view-html #osmap a.osmap-link:focus-visible {
  color: var(--pg-map-orange);
  background: transparent;
  text-decoration: underline;
  text-decoration-thickness: .08em;
  text-underline-offset: .18em;
}

/* ---------------------------------------------------------
   14.4 Weblinks / Enlaces
   Tarjetas alineadas con el estilo PortalGraf / Descargas
   --------------------------------------------------------- */

body.com_weblinks.view-category .com-weblinks-category {
  margin: 0;
}

body.com_weblinks.view-category .weblink-category {
  display: flex;
  flex-direction: column;
}

body.com_weblinks.view-category .weblink-category > h1 {
  order: 1;
  margin: 0;
  border: 1px solid var(--pg-aux-border);
  border-bottom: 0;
  border-radius: 1rem 1rem 0 0;
  padding: 1.15rem 1.25rem .35rem;
  background:
    linear-gradient(135deg, rgba(29, 121, 137, .09), rgba(222, 113, 13, .08)),
    #ffffff;
  color: var(--pg-aux-title);
  font-size: clamp(1.35rem, 2vw, 1.85rem);
  line-height: 1.2;
  box-shadow: var(--pg-aux-shadow);
}

body.com_weblinks.view-category .weblink-category > .category-desc {
  order: 2;
  margin: 0 0 1rem;
  border: 1px solid var(--pg-aux-border);
  border-top: 0;
  border-radius: 0 0 1rem 1rem;
  padding: 0 1.25rem 1.1rem;
  background:
    linear-gradient(135deg, rgba(29, 121, 137, .09), rgba(222, 113, 13, .08)),
    #ffffff;
  color: var(--pg-aux-muted);
  box-shadow: var(--pg-aux-shadow);
}

body.com_weblinks.view-category .weblink-category > .category-desc h2:first-child {
  margin: 0 0 .35rem;
  color: var(--pg-aux-title);
  font-size: 1.05rem;
  line-height: 1.3;
}

body.com_weblinks.view-category .weblink-category > .category-desc p {
  max-width: 74ch;
  margin-bottom: 0;
  line-height: 1.6;
}

body.com_weblinks.view-category .com-weblinks-category__items {
  order: 3;
}

body.com_weblinks.view-category .com-weblinks-category__items ul.category {
  display: grid;
  gap: 1rem;
  margin: 0 0 1rem;
  padding: 0;
}

body.com_weblinks.view-category .com-weblinks-category__items li.list-group {
  margin-top: 0 !important;
}

body.com_weblinks.view-category .list-title.list-group-item {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--pg-aux-border);
  border-radius: 1.1rem;
  background: #ffffff;
  padding: 1rem 1.1rem 1rem 1.25rem;
  box-shadow: var(--pg-aux-shadow);
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

body.com_weblinks.view-category .list-title.list-group-item::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: linear-gradient(180deg, var(--pg-aux-link), var(--pg-aux-hover));
  opacity: .75;
}

body.com_weblinks.view-category .list-title.list-group-item:hover {
  border-color: rgba(222, 113, 13, .38);
  box-shadow: 0 14px 30px rgba(15, 23, 42, .085);
  transform: translateY(-1px);
}

body.com_weblinks.view-category .list-title .icon-globe {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  margin: 0 .55rem .15rem 0;
  border-radius: .8rem;
  background: linear-gradient(135deg, rgba(29, 121, 137, .10), rgba(222, 113, 13, .10));
  color: var(--pg-aux-link);
  font-size: 1rem;
  vertical-align: middle;
}

body.com_weblinks.view-category .list-title a.category {
  display: inline;
  color: var(--pg-aux-title);
  font-size: 1.05rem;
  font-weight: 700;
  line-height: 1.3;
  text-decoration: none;
}

body.com_weblinks.view-category .list-title a.category:hover,
body.com_weblinks.view-category .list-title a.category:focus {
  color: var(--pg-aux-hover);
  text-decoration: underline;
  text-decoration-thickness: .08em;
  text-underline-offset: .18em;
}

body.com_weblinks.view-category .list-title .mt-2.mb-2 {
  clear: both;
  margin: .7rem 0 0 !important;
  padding-top: .65rem;
  border-top: 1px solid rgba(29, 121, 137, .12);
}

body.com_weblinks.view-category .list-title p {
  margin-bottom: 0;
  color: var(--pg-aux-muted);
  line-height: 1.58;
}

body.com_weblinks.view-category .list-title p + p {
  margin-top: .55rem;
}

body.com_weblinks.view-category .list-hits.badge {
  border-radius: 999px;
  border: 1px solid rgba(29, 121, 137, .16);
  background: rgba(29, 121, 137, .08) !important;
  color: var(--pg-aux-link);
  font-size: .76rem;
  font-weight: 700;
  line-height: 1.2;
  padding: .34rem .58rem;
}

body.com_weblinks.view-category .list-title.list-group-item:hover .list-hits.badge {
  border-color: rgba(222, 113, 13, .28);
  background: rgba(222, 113, 13, .08) !important;
  color: var(--pg-aux-hover);
}

body.com_weblinks.view-category .com-weblinks-category__counter {
  margin-top: 1rem;
}

body.com_weblinks.view-category .com-weblinks-category__counter.counter {
  color: var(--pg-aux-muted);
  font-size: .92rem;
}


/* ---------------------------------------------------------
   14.5 Contacto
   Formulario alineado con el estilo PortalGraf / Descargas
   --------------------------------------------------------- */

body.com_contact.view-contact .com-contact {
  margin: 0;
}

body.com_contact.view-contact .com-contact > h2 {
  margin: 0 0 1rem;
  border: 1px solid var(--pg-aux-border);
  border-radius: 1rem;
  padding: 1.15rem 1.25rem;
  background:
    linear-gradient(135deg, rgba(29, 121, 137, .09), rgba(222, 113, 13, .08)),
    #ffffff;
  color: var(--pg-aux-title);
  font-size: clamp(1.35rem, 2vw, 1.85rem);
  line-height: 1.2;
  box-shadow: var(--pg-aux-shadow);
}

body.com_contact.view-contact .com-contact__thumbnail,
body.com_contact.view-contact .com-contact__miscinfo,
body.com_contact.view-contact .com-contact__address,
body.com_contact.view-contact .com-contact__form {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--pg-aux-border);
  border-radius: 1.1rem;
  background: #ffffff;
  padding: 1rem 1.1rem 1rem 1.25rem;
  box-shadow: var(--pg-aux-shadow);
}

body.com_contact.view-contact .com-contact__thumbnail::before,
body.com_contact.view-contact .com-contact__miscinfo::before,
body.com_contact.view-contact .com-contact__address::before,
body.com_contact.view-contact .com-contact__form::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: linear-gradient(180deg, var(--pg-aux-link), var(--pg-aux-hover));
  opacity: .75;
}

body.com_contact.view-contact .com-contact__thumbnail,
body.com_contact.view-contact .com-contact__miscinfo,
body.com_contact.view-contact .com-contact__address {
  margin: 0 0 1rem;
}

body.com_contact.view-contact .com-contact__thumbnail img {
  max-width: 100%;
  height: auto;
  border-radius: .9rem;
}

body.com_contact.view-contact .com-contact__miscinfo h3,
body.com_contact.view-contact .com-contact__address h3,
body.com_contact.view-contact .com-contact__form legend {
  margin: 0 0 .85rem;
  color: var(--pg-aux-title);
  font-size: 1.05rem;
  font-weight: 700;
  line-height: 1.3;
}

body.com_contact.view-contact .com-contact__miscinfo p,
body.com_contact.view-contact .com-contact__address p,
body.com_contact.view-contact .com-contact__address dd {
  color: var(--pg-aux-muted);
  line-height: 1.58;
}

body.com_contact.view-contact .com-contact__form form {
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

body.com_contact.view-contact .com-contact__form fieldset {
  margin: 0 0 1rem !important;
  padding: 0;
}

body.com_contact.view-contact .com-contact__form fieldset:last-of-type {
  margin-bottom: 0 !important;
}

body.com_contact.view-contact .com-contact__form .control-group {
  margin-bottom: .95rem;
}

body.com_contact.view-contact .com-contact__form .control-label {
  margin-bottom: .35rem;
}

body.com_contact.view-contact .com-contact__form label {
  color: var(--pg-aux-title);
  font-weight: 700;
}

body.com_contact.view-contact .com-contact__form .form-control,
body.com_contact.view-contact .com-contact__form textarea,
body.com_contact.view-contact .com-contact__form input[type="text"],
body.com_contact.view-contact .com-contact__form input[type="email"] {
  border-radius: .78rem;
  border-color: rgba(29, 121, 137, .24);
}

body.com_contact.view-contact .com-contact__form .form-control:focus,
body.com_contact.view-contact .com-contact__form textarea:focus,
body.com_contact.view-contact .com-contact__form input[type="text"]:focus,
body.com_contact.view-contact .com-contact__form input[type="email"]:focus {
  border-color: rgba(29, 121, 137, .48);
  box-shadow: 0 0 0 .18rem rgba(29, 121, 137, .12);
}

body.com_contact.view-contact .com-contact__form .form-check-label {
  color: var(--pg-aux-muted);
  font-weight: 400;
  line-height: 1.5;
}

body.com_contact.view-contact .com-contact__form .btn,
body.com_contact.view-contact .com-contact__form button.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .38rem;
  min-height: 2.2rem;
  border-radius: 999px;
  font-size: .9rem;
  font-weight: 700;
  line-height: 1.15;
  padding: .42rem .9rem;
}

body.com_contact.view-contact .com-contact__form .btn-primary,
body.com_contact.view-contact .com-contact__form button.btn-primary {
  border-color: var(--pg-aux-link);
  background: var(--pg-aux-link);
  color: #ffffff;
}

body.com_contact.view-contact .com-contact__form .btn-primary:hover,
body.com_contact.view-contact .com-contact__form .btn-primary:focus,
body.com_contact.view-contact .com-contact__form button.btn-primary:hover,
body.com_contact.view-contact .com-contact__form button.btn-primary:focus {
  border-color: var(--pg-aux-hover);
  background: var(--pg-aux-hover);
  color: #ffffff;
}

body.com_contact.view-contact .com-contact__form .btn-secondary,
body.com_contact.view-contact .com-contact__form button.btn-secondary {
  border-color: rgba(29, 121, 137, .32);
  background: #ffffff;
  color: var(--pg-aux-link);
}

body.com_contact.view-contact .com-contact__form .btn-secondary:hover,
body.com_contact.view-contact .com-contact__form .btn-secondary:focus,
body.com_contact.view-contact .com-contact__form button.btn-secondary:hover,
body.com_contact.view-contact .com-contact__form button.btn-secondary:focus {
  border-color: var(--pg-aux-hover);
  background: rgba(222, 113, 13, .07);
  color: var(--pg-aux-hover);
}


/* ---------------------------------------------------------
   14.6 Responsive vistas auxiliares
   --------------------------------------------------------- */

@media (max-width: 991.98px) {
  body.com_weblinks.view-category .com-weblinks-category,
  body.com_contact.view-contact .com-contact {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }

  body.com_weblinks.view-category .weblink-category > h1 {
    box-sizing: border-box;
    display: block;
    width: 100%;
    margin: 0;
    padding: 1rem 1.1rem .35rem;
    border: 1px solid rgba(29, 121, 137, .16);
    border-bottom: 0;
    border-radius: .9rem .9rem 0 0;
    background:
      linear-gradient(135deg, rgba(29, 121, 137, .08), rgba(222, 113, 13, .07)),
      #ffffff;
    color: #172033;
    font-size: 1.35rem;
    line-height: 1.22;
    font-weight: 700;
    box-shadow: none;
  }

  body.com_weblinks.view-category .weblink-category > .category-desc {
    box-sizing: border-box;
    display: block;
    width: 100%;
    margin: 0 0 1rem;
    padding: .35rem 1.1rem 1rem;
    border: 1px solid rgba(29, 121, 137, .16);
    border-top: 0;
    border-radius: 0 0 .9rem .9rem;
    background:
      linear-gradient(135deg, rgba(29, 121, 137, .08), rgba(222, 113, 13, .07)),
      #ffffff;
    box-shadow: none;
  }

  body.com_weblinks.view-category .weblink-category > .category-desc::before,
  body.com_weblinks.view-category .weblink-category > .category-desc::after {
    content: none;
    display: none;
  }

  body.com_weblinks.view-category .weblink-category > .category-desc h2:first-child {
    margin: 0 0 .45rem;
    padding: 0;
    border: 0;
    background: transparent;
    color: #1d7989;
    font-size: 1.05rem;
    line-height: 1.3;
  }

  body.com_weblinks.view-category .weblink-category > .category-desc p {
    margin: 0;
    color: #4f5b67;
    font-size: .96rem;
    line-height: 1.55;
  }

  body.com_contact.view-contact .com-contact > h2 {
    box-sizing: border-box;
    display: block;
    width: 100%;
    max-width: 100%;
    margin: 0 0 1rem;
    padding: 1rem 1.1rem;
    border: 1px solid rgba(29, 121, 137, .16);
    border-radius: .9rem;
    background:
      linear-gradient(135deg, rgba(29, 121, 137, .08), rgba(222, 113, 13, .07)),
      #ffffff;
    color: #172033;
    font-size: 1.35rem;
    line-height: 1.22;
    font-weight: 700;
  }
}

@media (max-width: 767.98px) {
  body.com_osmap .container-component,
  body.com_contact .container-component {
    min-width: 0;
  }

  body.com_contact .container-component main {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }

  body.site.com_osmap.view-html #osmap {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }

  body.site.com_osmap.view-html #osmap::before {
    font-size: .78rem;
  }

  body.site.com_osmap.view-html #osmap .osmap-items::before {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    padding: 1rem;
    border-radius: .9rem;
    font-size: 1.35rem;
  }

  body.site.com_osmap.view-html #osmap .osmap-items > h2 {
    margin-top: 1.1rem;
    padding: .65rem .75rem;
  }

  body.site.com_osmap.view-html #osmap .level_0 {
    padding: .1rem .7rem;
    border-radius: .75rem;
  }

  body.site.com_osmap.view-html #osmap .level_1,
  body.site.com_osmap.view-html #osmap .level_2,
  body.site.com_osmap.view-html #osmap .level_3 {
    margin-left: .15rem;
    padding-left: .7rem;
  }

  body.com_weblinks.view-category .com-weblinks-category::before,
  body.com_contact.view-contact .com-contact::before {
    font-size: .78rem;
    letter-spacing: .035em;
  }

  body.com_weblinks.view-category .list-title.list-group-item,
  body.com_contact.view-contact .com-contact__form {
    padding: .95rem;
    border-radius: .9rem;
  }

  body.com_weblinks.view-category .list-hits.badge {
    float: none !important;
    display: inline-block;
    margin-top: .5rem;
  }
}

/* =========================================================
   15. Paginación global PortalGraf
   Estilo compacto inspirado en el glosario
   ========================================================= */

.pagination__wrapper {
  margin: .35rem 0 1rem;
}

.pagination,
.pagination__wrapper .pagination,
.com-content-category-blog__pagination .pagination,
.com-content-category__pagination .pagination {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .25rem;
  margin-left: 0;
}

.pagination .page-item {
  margin: 0;
}

.pagination .page-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.15rem;
  min-height: 2.15rem;
  padding: .42rem .62rem;
  border: 1px solid rgba(29, 121, 137, .18);
  border-radius: .65rem;
  background: #ffffff;
  color: var(--pg-teal, #1d7989);
  font-size: .9rem;
  font-weight: 700;
  line-height: 1.15;
  text-align: center;
  text-decoration: none;
  box-shadow: 0 3px 10px rgba(15, 23, 42, .035);
}

.pagination .page-link:hover,
.pagination .page-link:focus {
  border-color: rgba(222, 113, 13, .32);
  background: rgba(222, 113, 13, .08);
  color: var(--pg-orange, #de710d);
  text-decoration: none;
}

.pagination .active > .page-link,
.pagination .page-item.active .page-link {
  border-color: var(--pg-teal, #1d7989);
  background: var(--pg-teal, #1d7989);
  color: #ffffff;
  box-shadow: 0 5px 14px rgba(29, 121, 137, .18);
}

.pagination .disabled > .page-link,
.pagination .page-item.disabled .page-link {
  border-color: rgba(0, 0, 0, .08);
  background: #f3f5f7;
  color: #9ca3af;
  box-shadow: none;
  pointer-events: none;
}

.pagination .page-link .icon-angle-left,
.pagination .page-link .icon-angle-right,
.pagination .page-link .icon-angle-double-left,
.pagination .page-link .icon-angle-double-right {
  line-height: 1;
}

.com-content-category-blog__counter,
.com-content-category__counter,
.pagination__wrapper + .counter {
  color: var(--pg-muted, #667085);
}

/* Recorte visual de listas largas: conserva inicio, página activa y controles finales */
.pagination__wrapper .pagination .page-item:nth-child(n+8):not(:nth-last-child(-n+2)):not(.active),
.com-content-category-blog__pagination .pagination .page-item:nth-child(n+8):not(:nth-last-child(-n+2)):not(.active) {
  display: none;
}

.pagination__wrapper .pagination .page-item:nth-child(7):not(:nth-last-child(-n+2))::after,
.com-content-category-blog__pagination .pagination .page-item:nth-child(7):not(:nth-last-child(-n+2))::after {
  content: "…";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.6rem;
  min-height: 2.15rem;
  color: var(--pg-muted, #667085);
  font-weight: 700;
}

/* Selector de cantidad: situado después del listado y junto a la navegación. */
body.com_content.view-category form.com-content-category__articles,
body.com_content.view-category .com-content-category-blog,
body.com_aglossary #termsForm {
  display: flex;
  flex-direction: column;
}

body.com_content.view-category form.com-content-category__articles > .com-content-category__pagination.btn-group.float-end,
body.com_content.view-category .com-content-category-blog > .com-content-category__pagination.btn-group.float-end,
body.com_content.view-category .com-content-category-blog > .com-content-category-blog__pagination.btn-group.float-end,
body.com_aglossary #termsForm > .com-content-category__pagination.btn-group.float-end {
  order: 99;
  float: none !important;
  width: auto;
  clear: both;
  display: inline-flex;
  align-self: flex-end;
  justify-content: flex-end;
  margin: .5rem 0 1rem auto;
}

body.com_content.view-category form.com-content-category__articles > .com-content-category__pagination.btn-group.float-end .form-select,
body.com_content.view-category .com-content-category-blog > .com-content-category__pagination.btn-group.float-end .form-select,
body.com_content.view-category .com-content-category-blog > .com-content-category-blog__pagination.btn-group.float-end .form-select,
body.com_aglossary #termsForm > .com-content-category__pagination.btn-group.float-end .form-select {
  width: auto;
  min-width: 5.5rem;
  border-color: rgba(29, 121, 137, .18);
  border-radius: .75rem;
  color: var(--pg-text, #172033);
  font-size: .92rem;
  box-shadow: 0 3px 10px rgba(15, 23, 42, .035);
}

body.com_content.view-category form.com-content-category__articles > .com-content-category__pagination.btn-group.float-end .form-select:focus,
body.com_content.view-category .com-content-category-blog > .com-content-category__pagination.btn-group.float-end .form-select:focus,
body.com_content.view-category .com-content-category-blog > .com-content-category-blog__pagination.btn-group.float-end .form-select:focus,
body.com_aglossary #termsForm > .com-content-category__pagination.btn-group.float-end .form-select:focus {
  border-color: rgba(29, 121, 137, .45);
  box-shadow: 0 0 0 .16rem rgba(29, 121, 137, .12);
}

@media (max-width: 760px) {
  .pagination,
  .pagination__wrapper .pagination,
  .com-content-category-blog__pagination .pagination,
  .com-content-category__pagination .pagination {
    gap: .18rem;
  }

  .pagination .page-link {
    min-width: 2rem;
    min-height: 2rem;
    padding: .38rem .55rem;
    border-radius: .58rem;
    font-size: .84rem;
  }

  .pagination__wrapper .pagination .page-item:not(:first-child):not(:nth-child(2)):not(:nth-last-child(1)):not(:nth-last-child(2)):not(.active),
  .com-content-category-blog__pagination .pagination .page-item:not(:first-child):not(:nth-child(2)):not(:nth-last-child(1)):not(:nth-last-child(2)):not(.active) {
    display: none;
  }

  .pagination__wrapper .pagination .page-item:nth-child(7)::after,
  .com-content-category-blog__pagination .pagination .page-item:nth-child(7)::after {
    display: none;
  }

  body.com_content.view-category form.com-content-category__articles > .com-content-category__pagination.btn-group.float-end,
  body.com_content.view-category .com-content-category-blog > .com-content-category__pagination.btn-group.float-end,
  body.com_content.view-category .com-content-category-blog > .com-content-category-blog__pagination.btn-group.float-end,
  body.com_aglossary #termsForm > .com-content-category__pagination.btn-group.float-end {
    width: 100%;
    align-self: stretch;
    justify-content: flex-start;
    margin-top: .75rem;
    margin-left: 0;
  }
}


/* =========================================================
   16. Glosario Alter Glossary
   16.1 Vista principal /glosario en tarjetas PortalGraf
   ========================================================= */

body.com_aglossary {
  --pg-glossary-border: rgba(29, 121, 137, .18);
  --pg-glossary-muted: var(--pg-muted, #667085);
  --pg-glossary-title: var(--pg-text, #172033);
  --pg-glossary-link: var(--link-color, #1d7989);
  --pg-glossary-hover: var(--link-hover-color, #de710d);
  --pg-glossary-shadow: 0 10px 24px rgba(15, 23, 42, .055);
  --pg-glossary-shadow-hover: 0 14px 30px rgba(15, 23, 42, .085);
  --pg-glossary-soft: #f7f9fb;
}

body.com_aglossary .glossary-category-list {
  display: flex;
  flex-direction: column;
}

body.com_aglossary .glossary-category-list::before {
  content: "PortalGraf · Glosario";
  order: 0;
  margin: 0 0 .55rem;
  font-size: .84rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .045em;
  color: var(--pg-glossary-link);
}

body.com_aglossary .glossary-category-list > h1 {
  order: 1;
  position: relative;
  margin: 0;
  border: 1px solid var(--pg-glossary-border);
  border-bottom: 0;
  border-radius: 1rem 1rem 0 0;
  padding: 1.15rem 1.25rem .45rem;
  background:
    linear-gradient(135deg, rgba(29, 121, 137, .075), rgba(222, 113, 13, .055)),
    #ffffff;
  color: var(--pg-glossary-title);
  font-size: clamp(1.35rem, 2vw, 1.85rem);
  line-height: 1.2;
  box-shadow: none;
}

body.com_aglossary .glossary-category-list > .category-desc {
  order: 2;
  margin: 0 0 1rem;
  border: 1px solid var(--pg-glossary-border);
  border-top: 0;
  border-radius: 0 0 1rem 1rem;
  padding: .15rem 1.25rem 1.1rem;
  background:
    linear-gradient(135deg, rgba(29, 121, 137, .075), rgba(222, 113, 13, .055)),
    #ffffff;
  color: var(--pg-glossary-muted);
  box-shadow: var(--pg-glossary-shadow);
}

body.com_aglossary .glossary-category-list > .category-desc h2:first-child {
  margin: .35rem 0 .35rem;
  color: var(--pg-glossary-title);
  font-size: 1.05rem;
  line-height: 1.3;
}

body.com_aglossary .glossary-category-list > .category-desc p {
  max-width: 74ch;
  margin-bottom: .45rem;
  line-height: 1.6;
}

body.com_aglossary .glossary-category-list > .category-desc p:last-child {
  margin-bottom: 0;
}

body.com_aglossary .glossary-category-list > .category-desc p + h2 {
  margin-top: .8rem;
}

body.com_aglossary #termsForm {
  order: 3;
}

/* Buscador del glosario */
body.com_aglossary .articles-search {
  position: relative;
  overflow: hidden;
  margin: 0 0 1rem;
  border: 1px solid var(--pg-glossary-border);
  border-radius: 1.1rem;
  padding: 1rem 1.1rem;
  background: #ffffff;
  box-shadow: var(--pg-glossary-shadow);
}

body.com_aglossary .articles-search::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: linear-gradient(180deg, var(--pg-teal, #1d7989), var(--pg-orange, #de710d));
  opacity: .75;
}

body.com_aglossary .articles-search .row {
  gap: .6rem 0;
}

body.com_aglossary .articles-search .col-md-4 {
  width: min(100%, 28rem);
}

body.com_aglossary .articles-search .input-group {
  overflow: hidden;
  border-radius: 999px;
  box-shadow: 0 3px 10px rgba(15, 23, 42, .04);
}

body.com_aglossary .articles-search input[type="text"] {
  min-height: 2.35rem;
  border-color: rgba(29, 121, 137, .22);
  border-radius: 999px 0 0 999px;
  padding-inline: .95rem;
}

body.com_aglossary .articles-search input[type="text"]:focus {
  border-color: rgba(29, 121, 137, .45);
  box-shadow: 0 0 0 .16rem rgba(29, 121, 137, .12);
}

body.com_aglossary .articles-search .btn,
body.com_aglossary .articles-search .btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.55rem;
  min-height: 2.35rem;
  border-color: var(--pg-glossary-link);
  border-radius: 0 999px 999px 0;
  background: var(--pg-glossary-link);
  color: #ffffff;
}

body.com_aglossary .articles-search .btn:hover,
body.com_aglossary .articles-search .btn:focus,
body.com_aglossary .articles-search .btn-primary:hover,
body.com_aglossary .articles-search .btn-primary:focus {
  border-color: var(--pg-glossary-hover);
  background: var(--pg-glossary-hover);
  color: #ffffff;
}

body.com_aglossary .articles-search label.radio-inline,
body.com_aglossary .articles-search .radio-inline {
  color: var(--pg-glossary-muted);
  font-size: .92rem;
}

body.com_aglossary .articles-search input[type="radio"] {
  accent-color: var(--pg-glossary-link);
}

/* Navegación alfabética */
body.com_aglossary .articles-abc.card {
  overflow: hidden;
  margin: 0 0 1rem !important;
  border: 1px solid var(--pg-glossary-border);
  border-radius: 1.1rem;
  background: #ffffff;
  box-shadow: var(--pg-glossary-shadow);
}

body.com_aglossary .articles-abc .card-body {
  padding: .9rem 1rem;
}

body.com_aglossary .articles-abc h4 {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .35rem;
  margin: 0;
  font-size: 1rem;
  line-height: 1.2;
}

body.com_aglossary .articles-abc h4 a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2rem;
  min-height: 2rem;
  border: 1px solid rgba(29, 121, 137, .16);
  border-radius: 999px;
  background: rgba(29, 121, 137, .06);
  color: var(--pg-glossary-link);
  font-size: .86rem;
  font-weight: 700;
  text-decoration: none;
}

body.com_aglossary .articles-abc h4 a:hover,
body.com_aglossary .articles-abc h4 a:focus {
  border-color: rgba(222, 113, 13, .28);
  background: rgba(222, 113, 13, .08);
  color: var(--pg-glossary-hover);
  text-decoration: none;
}

/* Listado de términos: tabla nativa transformada visualmente en tarjetas */
body.com_aglossary .category-terms {
  margin: 0 0 1rem;
}

body.com_aglossary .category-terms .table-responsive {
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

body.com_aglossary .glossary-terms-table,
body.com_aglossary .glossary-terms-table.table,
body.com_aglossary .glossary-terms-table.table-hover {
  display: block;
  width: 100%;
  margin: 0;
  border: 0;
  border-collapse: separate;
  border-spacing: 0;
  background: transparent;

  --bs-table-bg: transparent;
  --bs-table-striped-bg: transparent;
  --bs-table-hover-bg: transparent;
}

body.com_aglossary .glossary-terms-table thead {
  display: none;
}

body.com_aglossary .glossary-terms-table tbody {
  display: grid;
  gap: 1rem;
  width: 100%;
}

body.com_aglossary .glossary-terms-table tbody tr {
  position: relative;
  display: grid;
  grid-template-columns: minmax(9.5rem, 24%) minmax(0, 1fr);
  gap: .7rem 1rem;
  overflow: hidden;
  border: 1px solid var(--pg-glossary-border);
  border-radius: 1.1rem;
  background: #ffffff;
  padding: 1rem 1.1rem 1rem 1.25rem;
  box-shadow: var(--pg-glossary-shadow);
  transition:
    border-color .18s ease,
    box-shadow .18s ease,
    transform .18s ease;
}

body.com_aglossary .glossary-terms-table tbody tr::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: linear-gradient(180deg, var(--pg-teal, #1d7989), var(--pg-orange, #de710d));
  opacity: .75;
}

body.com_aglossary .glossary-terms-table tbody tr:hover {
  border-color: rgba(222, 113, 13, .38);
  box-shadow: var(--pg-glossary-shadow-hover);
  transform: translateY(-1px);
}

body.com_aglossary .glossary-terms-table tbody tr > td,
body.com_aglossary .glossary-terms-table tbody tr:nth-child(even) > td,
body.com_aglossary .glossary-terms-table tbody tr:hover > td {
  display: block;
  min-width: 0;
  padding: 0;
  border: 0;
  background: transparent;
  vertical-align: top;
}

body.com_aglossary .glossary-terms-table tbody tr > td:first-child {
  padding-right: .85rem;
  border-right: 1px solid rgba(29, 121, 137, .12);
}

/* Anula el hover interno nativo de Bootstrap/Joomla en celdas del glosario.
   El resaltado debe aplicarse solo a la tarjeta completa (tr), no al interior de cada celda. */
body.com_aglossary .glossary-terms-table.table-hover > tbody > tr > *,
body.com_aglossary .glossary-terms-table.table-hover > tbody > tr:hover > *,
body.com_aglossary .glossary-terms-table.table-hover > tbody > tr:hover > td,
body.com_aglossary .glossary-terms-table.table-hover > tbody > tr:hover > th {
  --bs-table-bg-state: transparent;
  --bs-table-color-state: inherit;
  background-color: transparent;
  box-shadow: none;
}

body.com_aglossary .glossary-terms-table h4 {
  margin: 0;
  font-size: 1.08rem;
  line-height: 1.3;
}

body.com_aglossary .glossary-terms-table h4 a {
  color: var(--pg-glossary-title);
  font-weight: 800;
  text-decoration: none;
}

body.com_aglossary .glossary-terms-table h4 a::after {
  content: "›";
  display: inline-block;
  margin-left: .35rem;
  color: var(--pg-glossary-link);
  font-weight: 700;
  transition: transform .18s ease, color .18s ease;
}

body.com_aglossary .glossary-terms-table h4 a:hover,
body.com_aglossary .glossary-terms-table h4 a:focus {
  color: var(--pg-glossary-hover);
  text-decoration: underline;
  text-decoration-thickness: .08em;
  text-underline-offset: .18em;
}

body.com_aglossary .glossary-terms-table h4 a:hover::after,
body.com_aglossary .glossary-terms-table h4 a:focus::after {
  color: var(--pg-glossary-hover);
  transform: translateX(2px);
}

body.com_aglossary .term-description {
  color: var(--pg-glossary-muted);
  font-size: .96rem;
  line-height: 1.62;
}

body.com_aglossary .term-description p {
  margin-bottom: .55rem;
}

body.com_aglossary .term-description p:last-child {
  margin-bottom: 0;
}

/* Navegación del glosario; selector compartido en la sección 15. */
body.com_aglossary .com-content-category-blog__navigation {
  margin-top: .75rem;
}

body.com_aglossary .com-content-category-blog__counter {
  color: var(--pg-glossary-muted);
  font-size: .92rem;
}

@media (max-width: 760px) {
  body.com_aglossary .glossary-category-list::before {
    font-size: .78rem;
    letter-spacing: .035em;
  }

  body.com_aglossary .glossary-category-list > h1 {
    padding: 1rem 1rem .45rem;
    font-size: 1.35rem;
  }

  body.com_aglossary .glossary-category-list > .category-desc {
    padding: .15rem 1rem 1rem;
  }

  body.com_aglossary .articles-search {
    padding: .95rem;
    border-radius: .9rem;
  }

  body.com_aglossary .articles-search .row {
    display: block;
  }

  body.com_aglossary .articles-search .col-md-4,
  body.com_aglossary .articles-search .col-auto {
    width: 100%;
  }

  body.com_aglossary .articles-search .col-auto {
    margin-top: .65rem;
  }

  body.com_aglossary .articles-abc h4 {
    justify-content: flex-start;
  }

  body.com_aglossary .articles-abc h4 a {
    min-width: 1.85rem;
    min-height: 1.85rem;
    font-size: .8rem;
  }

  body.com_aglossary .glossary-terms-table tbody {
    gap: .85rem;
  }

  body.com_aglossary .glossary-terms-table tbody tr {
    grid-template-columns: 1fr;
    gap: .45rem;
    padding: .95rem .95rem .95rem 1.1rem;
    border-radius: .95rem;
  }

  body.com_aglossary .glossary-terms-table tbody tr > td:first-child {
    padding-right: 0;
    padding-bottom: .35rem;
    border-right: 0;
    border-bottom: 1px solid rgba(29, 121, 137, .12);
  }

  body.com_aglossary .glossary-terms-table h4 {
    font-size: 1.05rem;
  }

}

/* ---------------------------------------------------------
   16.2 Ficha individual de término
   com_aglossary.view-article · rutas tipo /glosario/a-sangre
   --------------------------------------------------------- */

body.com_aglossary.view-article .container-component main > .com-aglossary-article {
  --pg-glossary-teal: #1d7989;
  --pg-glossary-teal-dark: #176b78;
  --pg-glossary-orange: #bd5a0d;
  --pg-glossary-border: rgba(29, 121, 137, .16);
  --pg-glossary-shadow: 0 8px 22px rgba(0, 0, 0, .045);
}

body.com_aglossary.view-article .container-component main > .com-aglossary-article::before {
  content: "PortalGraf · Glosario";
  display: block;
  margin: 0 0 .45rem;
  color: var(--pg-glossary-teal);
  font-size: .82rem;
  font-weight: 700;
  letter-spacing: .045em;
  text-transform: uppercase;
}

body.com_aglossary.view-article .com-aglossary-article > .page-header {
  margin: 0 0 1.1rem;
  padding: 0;
  border: 0;
}

body.com_aglossary.view-article .com-aglossary-article > .page-header h1 {
  margin: 0;
  padding: 1.15rem 1.25rem 1.2rem;
  border: 1px solid rgba(29, 121, 137, .18);
  border-left: 6px solid var(--pg-glossary-orange);
  border-radius: .95rem;
  background:
    linear-gradient(
      135deg,
      #176b78 0%,
      #1d7989 52%,
      #2a7f84 74%,
      #bd5a0d 100%
    );
  color: #fff;
  box-shadow: var(--pg-glossary-shadow);
  font-size: clamp(1.65rem, 2vw, 2rem);
  font-weight: 750;
  line-height: 1.18;
}

body.com_aglossary.view-article .com-aglossary-article > .page-header h1::after {
  content: "Definición técnica del glosario de artes gráficas de PortalGraf.";
  display: block;
  max-width: 58rem;
  margin-top: .55rem;
  color: rgba(255, 255, 255, .92);
  font-size: .98rem;
  font-weight: 400;
  line-height: 1.55;
  letter-spacing: 0;
  text-transform: none;
}

body.com_aglossary.view-article .term-description {
  margin: 0 0 1rem;
  padding: 1.15rem 1.25rem;
  border: 1px solid var(--pg-glossary-border);
  border-radius: .95rem;
  background:
    linear-gradient(180deg, rgba(29, 121, 137, .045), rgba(255, 255, 255, 0) 60%),
    #fff;
  box-shadow: 0 4px 14px rgba(0, 0, 0, .035);
}

body.com_aglossary.view-article .com-aglossary-article__body {
  color: #2f3a3d;
  font-size: 1rem;
  line-height: 1.72;
}

body.com_aglossary.view-article .com-aglossary-article__body p {
  margin: 0 0 .95rem;
}

body.com_aglossary.view-article .com-aglossary-article__body p:last-child {
  margin-bottom: 0;
}

body.com_aglossary.view-article .term-next-prev {
  margin-top: 1rem !important;
  padding: .9rem 1rem;
  border: 1px solid var(--pg-glossary-border);
  border-radius: .9rem;
  background: #fff;
  box-shadow: 0 4px 14px rgba(0, 0, 0, .03);
  align-items: center;
}

body.com_aglossary.view-article .term-next-prev a {
  color: var(--pg-glossary-teal-dark);
  font-weight: 700;
  text-decoration: none;
}

body.com_aglossary.view-article .term-next-prev a:hover,
body.com_aglossary.view-article .term-next-prev a:focus {
  color: var(--pg-glossary-orange);
  text-decoration: none;
}

body.com_aglossary.view-article .term-next-prev .back a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.35rem;
  padding: .45rem .95rem;
  border: 1px solid rgba(29, 121, 137, .22);
  border-radius: 999px;
  background: rgba(29, 121, 137, .055);
  color: var(--pg-glossary-teal-dark);
}

body.com_aglossary.view-article .term-next-prev .back a:hover,
body.com_aglossary.view-article .term-next-prev .back a:focus {
  border-color: rgba(189, 90, 13, .34);
  background: rgba(189, 90, 13, .08);
  color: var(--pg-glossary-orange);
}

@media (max-width: 767.98px) {
  body.com_aglossary.view-article .com-aglossary-article > .page-header h1 {
    padding: 1rem 1rem 1.05rem;
  }

  body.com_aglossary.view-article .term-description {
    padding: 1rem;
  }

  body.com_aglossary.view-article .term-next-prev {
    display: grid;
    grid-template-columns: 1fr;
    gap: .65rem;
    text-align: center;
  }

  body.com_aglossary.view-article .term-next-prev .prev,
  body.com_aglossary.view-article .term-next-prev .back,
  body.com_aglossary.view-article .term-next-prev .next {
    text-align: center !important;
  }
}

/* =========================================================
   16. PortalGraf · RSFiles
   Descargas, búsqueda y marcadores
   ========================================================= */

body.com_rsfiles {
  --pg-rsf-teal: #1d7989;
  --pg-rsf-teal-dark: #145f6c;
  --pg-rsf-orange: #de710d;
  --pg-rsf-orange-dark: #832320;
  --pg-rsf-dark: #172033;
  --pg-rsf-muted: #667085;
  --pg-rsf-border: rgba(29, 121, 137, .18);
  --pg-rsf-border-strong: rgba(29, 121, 137, .30);
  --pg-rsf-soft: #f7f9fb;
  --pg-rsf-shadow: 0 10px 24px rgba(15, 23, 42, .055);
}

body.com_rsfiles .container-component main {
  min-width: 0;
}

body.com_rsfiles .rsfiles-layout {
  color: var(--pg-rsf-dark);
}

body.com_rsfiles .rsfiles-layout a {
  text-decoration-thickness: .08em;
  text-underline-offset: .18em;
}

/* ---------------------------------------------------------
   Portada /descargas
   --------------------------------------------------------- */

body.com_rsfiles.no-layout .pg-rsfiles-context {
  margin: 0 0 .55rem;
  color: var(--pg-rsf-teal);
  font-size: .82rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .045em;
}

body.com_rsfiles.no-layout .pg-rsfiles-hero {
  margin: 0 0 1rem;
  padding: 1.2rem 1.3rem;
  border: 1px solid var(--pg-rsf-border);
  border-radius: 1.15rem;
  background:
    linear-gradient(135deg, rgba(29, 121, 137, .09), rgba(222, 113, 13, .08)),
    #fff;
  box-shadow: var(--pg-rsf-shadow);
}

body.com_rsfiles.no-layout .pg-rsfiles-hero__title {
  margin: 0 0 .35rem;
  color: var(--pg-rsf-dark);
  font-size: clamp(1.35rem, 2vw, 1.85rem);
  line-height: 1.18;
}

body.com_rsfiles.no-layout .pg-rsfiles-hero__text {
  max-width: 74ch;
  margin: 0;
  color: var(--pg-rsf-muted);
}

body.com_rsfiles.no-layout .pg-rsfiles-toolbar {
  margin: .25rem 0 1rem;
  padding-top: .85rem;
  border-top: 1px solid var(--pg-rsf-border);
}

/* ---------------------------------------------------------
   Vistas auxiliares funcionales: buscar y marcadores
   --------------------------------------------------------- */

body.com_rsfiles.layout-search .rsfiles-layout,
body.com_rsfiles.layout-bookmarks .rsfiles-layout {
  overflow: hidden;
  padding: 1rem;
  border: 1px solid rgba(29, 121, 137, .16);
  border-radius: 1rem;
  background: #fff;
  box-shadow: 0 8px 22px rgba(0, 0, 0, .045);
}

body.com_rsfiles.layout-search .rsfiles-layout::before,
body.com_rsfiles.layout-bookmarks .rsfiles-layout::before {
  display: block;
  margin: -1rem -1rem 1rem;
  padding: .9rem 1rem;
  color: #fff;
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1.25;
  background: linear-gradient(135deg, var(--pg-rsf-teal), var(--pg-rsf-teal-dark));
}

body.com_rsfiles.layout-search .rsfiles-layout::before {
  content: "Buscar descargas";
}

body.com_rsfiles.layout-bookmarks .rsfiles-layout::before {
  content: "Marcadores de descargas";
}

body.com_rsfiles.layout-search .rsfiles-layout > ul.list-inline,
body.com_rsfiles.layout-bookmarks .rsfiles-layout form > .clearfix {
  display: flex;
  align-items: center;
  gap: .75rem;
  margin: .25rem 0 1rem;
  padding: .85rem 0;
  border-top: 1px solid var(--pg-rsf-border);
  border-bottom: 1px solid rgba(29, 121, 137, .14);
}

body.com_rsfiles.layout-search .rsfiles-layout > ul.list-inline {
  justify-content: flex-start;
  padding-left: 0;
}

body.com_rsfiles.layout-bookmarks .rsfiles-layout form > .clearfix {
  justify-content: space-between;
}

body.com_rsfiles.layout-search .rsfiles-layout .list-inline-item {
  margin-right: .25rem;
}

body.com_rsfiles.layout-bookmarks .rsfiles-layout .float-start,
body.com_rsfiles.layout-bookmarks .rsfiles-layout .float-end {
  float: none !important;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .45rem;
}

/* ---------------------------------------------------------
   Botones RSFiles: tamaño único, ovalado y compacto
   --------------------------------------------------------- */

body.com_rsfiles .rsfiles-layout .btn,
body.com_rsfiles .rsfiles-layout button.btn,
body.com_rsfiles .rsfiles-layout a.btn {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: .35rem;
  min-height: 2.1rem;
  padding: .34rem .72rem;
  border-radius: 999px !important;
  font-size: .85rem;
  font-weight: 600;
  line-height: 1.15;
  white-space: nowrap;
  box-shadow: none;
}

/* Botones solo con icono: Inicio, Buscar, Volver, Marcadores, vista previa y guardar marcador */
body.com_rsfiles.no-layout .pg-rsfiles-actions .btn,
body.com_rsfiles.layout-search .rsfiles-layout > ul.list-inline .btn,
body.com_rsfiles.layout-bookmarks .rsfiles-layout .float-start .btn,
body.com_rsfiles.no-layout .pg-rsfiles-card__icon-actions a {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 2.35rem !important;
  min-width: 2.35rem !important;
  max-width: 2.35rem !important;
  height: 2.1rem !important;
  min-height: 2.1rem !important;
  padding: 0 !important;
  border: 1px solid var(--pg-rsf-border-strong);
  border-radius: 999px !important;
  background: #fff;
  color: var(--pg-rsf-teal);
  font-size: .85rem;
  line-height: 1;
  text-decoration: none;
  box-shadow: 0 4px 12px rgba(15, 23, 42, .045);
}

body.com_rsfiles.no-layout .pg-rsfiles-actions .btn:hover,
body.com_rsfiles.no-layout .pg-rsfiles-actions .btn:focus,
body.com_rsfiles.layout-search .rsfiles-layout > ul.list-inline .btn:hover,
body.com_rsfiles.layout-search .rsfiles-layout > ul.list-inline .btn:focus,
body.com_rsfiles.layout-bookmarks .rsfiles-layout .float-start .btn:hover,
body.com_rsfiles.layout-bookmarks .rsfiles-layout .float-start .btn:focus,
body.com_rsfiles.no-layout .pg-rsfiles-card__icon-actions a:hover,
body.com_rsfiles.no-layout .pg-rsfiles-card__icon-actions a:focus {
  border-color: var(--pg-rsf-orange);
  background: rgba(222, 113, 13, .06);
  color: var(--pg-rsf-orange);
}

body.com_rsfiles .rsfiles-layout .btn-primary,
body.com_rsfiles .rsfiles-layout button.btn-primary {
  border-color: var(--pg-rsf-orange);
  background: var(--pg-rsf-orange);
  color: #fff;
}

body.com_rsfiles .rsfiles-layout .btn-primary:hover,
body.com_rsfiles .rsfiles-layout .btn-primary:focus,
body.com_rsfiles .rsfiles-layout button.btn-primary:hover,
body.com_rsfiles .rsfiles-layout button.btn-primary:focus {
  border-color: var(--pg-rsf-orange-dark);
  background: var(--pg-rsf-orange-dark);
  color: #fff;
}

body.com_rsfiles .rsfiles-layout .btn-secondary,
body.com_rsfiles .rsfiles-layout .btn-outline-secondary,
body.com_rsfiles .rsfiles-layout .btn-info {
  border-color: var(--pg-rsf-border-strong);
  background: #fff;
  color: var(--pg-rsf-teal);
}

body.com_rsfiles .rsfiles-layout .btn-secondary:hover,
body.com_rsfiles .rsfiles-layout .btn-secondary:focus,
body.com_rsfiles .rsfiles-layout .btn-outline-secondary:hover,
body.com_rsfiles .rsfiles-layout .btn-outline-secondary:focus,
body.com_rsfiles .rsfiles-layout .btn-info:hover,
body.com_rsfiles .rsfiles-layout .btn-info:focus {
  border-color: var(--pg-rsf-orange);
  background: rgba(222, 113, 13, .07);
  color: var(--pg-rsf-orange);
}

body.com_rsfiles .rsfiles-layout .btn-danger {
  border-color: #b02a37;
  color: #fff;
}

body.com_rsfiles .rsfiles-layout .btn i,
body.com_rsfiles .rsfiles-layout .btn span.fa,
body.com_rsfiles .rsfiles-layout .pg-rsfiles-card__icon-actions i {
  font-size: .85rem;
  line-height: 1;
}

/* ---------------------------------------------------------
   Tarjetas de recursos en /descargas
   --------------------------------------------------------- */

body.com_rsfiles.no-layout .pg-rsfiles-list {
  display: grid;
  gap: 1rem;
  margin: 1rem 0;
}

body.com_rsfiles.no-layout .pg-rsfiles-card {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 1rem;
  overflow: hidden;
  padding: 1rem;
  border: 1px solid var(--pg-rsf-border);
  border-radius: 1.1rem;
  background: #fff;
  box-shadow: var(--pg-rsf-shadow);
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

body.com_rsfiles.no-layout .pg-rsfiles-card::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: linear-gradient(180deg, var(--pg-rsf-teal), var(--pg-rsf-orange));
  opacity: .75;
}

body.com_rsfiles.no-layout .pg-rsfiles-card:hover {
  border-color: rgba(222, 113, 13, .38);
  box-shadow: 0 14px 30px rgba(15, 23, 42, .085);
  transform: translateY(-1px);
}

body.com_rsfiles.no-layout .pg-rsfiles-card__icon {
  display: grid;
  place-items: center;
  width: 3.25rem;
  height: 3.25rem;
  border-radius: .95rem;
  background: linear-gradient(135deg, rgba(29, 121, 137, .10), rgba(222, 113, 13, .10));
  color: var(--pg-rsf-teal);
  font-size: 1.5rem;
}

body.com_rsfiles.no-layout .pg-rsfiles-card__body {
  min-width: 0;
}

body.com_rsfiles.no-layout .pg-rsfiles-card__title {
  margin: 0 0 .35rem;
  font-size: 1.12rem;
  line-height: 1.3;
}

body.com_rsfiles.no-layout .pg-rsfiles-card__title a {
  color: var(--pg-rsf-dark);
  text-decoration: none;
}

body.com_rsfiles.no-layout .pg-rsfiles-card__title a:hover,
body.com_rsfiles.no-layout .pg-rsfiles-card__title a:focus {
  color: var(--pg-rsf-orange);
  text-decoration: underline;
}

body.com_rsfiles.no-layout .pg-rsfiles-card__badges,
body.com_rsfiles.no-layout .pg-rsfiles-card__meta,
body.com_rsfiles.no-layout .pg-rsfiles-card__actions,
body.com_rsfiles.no-layout .pg-rsfiles-card__rating,
body.com_rsfiles.no-layout .pg-rsfiles-card__icon-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}

body.com_rsfiles.no-layout .pg-rsfiles-card__badges {
  gap: .45rem;
  margin: .35rem 0;
}

body.com_rsfiles.no-layout .pg-rsfiles-card__badges .badge {
  border-radius: 999px;
  padding: .35rem .55rem;
  font-weight: 700;
  letter-spacing: .01em;
}

body.com_rsfiles.no-layout .pg-rsfiles-card__badges .bg-success {
  background-color: var(--pg-rsf-teal) !important;
}

body.com_rsfiles.no-layout .pg-rsfiles-card__badges .bg-info {
  background-color: var(--pg-rsf-orange) !important;
  color: #fff !important;
}

body.com_rsfiles.no-layout .pg-rsfiles-card__badges .bg-secondary {
  background-color: #eef2f4 !important;
  color: var(--pg-rsf-muted) !important;
}

body.com_rsfiles.no-layout .pg-rsfiles-card__rating {
  gap: .08rem;
  margin-left: .1rem;
  color: var(--pg-rsf-orange);
}

body.com_rsfiles.no-layout .pg-rsfiles-card__rating .far {
  color: rgba(222, 113, 13, .35);
}

body.com_rsfiles.no-layout .pg-rsfiles-card__meta {
  gap: .45rem .85rem;
  margin: .55rem 0 0;
  color: var(--pg-rsf-muted);
  font-size: .91rem;
}

body.com_rsfiles.no-layout .pg-rsfiles-card__meta span {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
}

body.com_rsfiles.no-layout .pg-rsfiles-card__actions {
  gap: .5rem;
  margin-top: .9rem;
}

body.com_rsfiles.no-layout .pg-rsfiles-card__actions .btn {
  min-height: 2.1rem;
  padding: .34rem .78rem;
  font-size: .85rem;
}

body.com_rsfiles.no-layout .pg-rsfiles-card__icon-actions {
  gap: .4rem;
}

/* ---------------------------------------------------------
   Formulario de búsqueda RSFiles
   --------------------------------------------------------- */

body.com_rsfiles.layout-search .rsfiles-layout .card.rsfiles-horizontal,
body.com_rsfiles.layout-search .rsfiles-layout .rsfiles-horizontal {
  margin: 0;
  border: 1px solid rgba(29, 121, 137, .14);
  border-radius: .95rem;
  background: #fff;
  box-shadow: var(--pg-rsf-shadow);
}

body.com_rsfiles.layout-search .rsfiles-layout .card-body,
body.com_rsfiles.layout-search .rsfiles-layout .rsfiles-horizontal .card-body {
  padding: 1rem;
}

body.com_rsfiles.layout-search .rsfiles-layout .control-group {
  display: grid;
  grid-template-columns: minmax(8rem, 11rem) minmax(0, 1fr);
  gap: .45rem 1rem;
  align-items: center;
  margin-bottom: .9rem;
}

body.com_rsfiles.layout-search .rsfiles-layout .control-group:last-child {
  margin-bottom: 0;
}

body.com_rsfiles.layout-search .rsfiles-layout .control-label,
body.com_rsfiles.layout-search .rsfiles-layout .control-label label,
body.com_rsfiles.layout-search .rsfiles-layout label {
  margin: 0;
  color: var(--pg-rsf-dark);
  font-weight: 700;
}

body.com_rsfiles.layout-search .rsfiles-layout .controls {
  min-width: 0;
}

body.com_rsfiles.layout-search .rsfiles-layout .form-control,
body.com_rsfiles.layout-search .rsfiles-layout select {
  border-color: rgba(29, 121, 137, .28);
  border-radius: .75rem;
}

body.com_rsfiles.layout-search .rsfiles-layout .form-control:focus,
body.com_rsfiles.layout-search .rsfiles-layout select:focus {
  border-color: var(--pg-rsf-teal);
  box-shadow: 0 0 0 .18rem rgba(29, 121, 137, .14);
}

body.com_rsfiles.layout-search .rsfiles-layout select + select {
  margin-left: .4rem;
}

/* ---------------------------------------------------------
   Tabla de marcadores
   --------------------------------------------------------- */

body.com_rsfiles.layout-bookmarks #bookmarksTable,
body.com_rsfiles.layout-bookmarks .rsfiles-layout table {
  overflow: hidden;
  margin: 0;
  border: 1px solid rgba(29, 121, 137, .14);
  border-radius: .95rem;
  border-collapse: separate;
  border-spacing: 0;
  background: #fff;
  box-shadow: var(--pg-rsf-shadow);
}

body.com_rsfiles.layout-bookmarks #bookmarksTable thead th,
body.com_rsfiles.layout-bookmarks .rsfiles-layout table thead th {
  color: var(--pg-rsf-dark);
  background: linear-gradient(135deg, rgba(29, 121, 137, .08), rgba(222, 113, 13, .06));
  border-bottom: 1px solid rgba(29, 121, 137, .18);
  font-weight: 700;
  vertical-align: middle;
}

body.com_rsfiles.layout-bookmarks #bookmarksTable td,
body.com_rsfiles.layout-bookmarks #bookmarksTable th {
  padding: .75rem;
}

body.com_rsfiles.layout-bookmarks .rsfiles-layout table tbody td {
  vertical-align: middle;
}

body.com_rsfiles.layout-bookmarks #bookmarksTable .form-check-input {
  border-color: rgba(29, 121, 137, .45);
}

body.com_rsfiles.layout-bookmarks #bookmarksTable .form-check-input:checked {
  background-color: var(--pg-rsf-teal);
  border-color: var(--pg-rsf-teal);
}

/* ---------------------------------------------------------
   Responsive RSFiles
   --------------------------------------------------------- */

@media (max-width: 640px) {
  body.com_rsfiles.no-layout .pg-rsfiles-card {
    grid-template-columns: 1fr;
  }

  body.com_rsfiles.no-layout .pg-rsfiles-card__icon {
    width: 2.8rem;
    height: 2.8rem;
  }

  body.com_rsfiles.no-layout .pg-rsfiles-card__actions {
    align-items: stretch;
  }

  body.com_rsfiles.no-layout .pg-rsfiles-card__actions .btn {
    width: 100%;
    justify-content: center;
  }

  body.com_rsfiles.layout-search .rsfiles-layout,
  body.com_rsfiles.layout-bookmarks .rsfiles-layout {
    padding: .85rem;
    border-radius: .85rem;
  }

  body.com_rsfiles.layout-search .rsfiles-layout::before,
  body.com_rsfiles.layout-bookmarks .rsfiles-layout::before {
    margin: -.85rem -.85rem .85rem;
    padding: .8rem .85rem;
    font-size: 1.05rem;
  }

  body.com_rsfiles.layout-search .rsfiles-layout > ul.list-inline,
  body.com_rsfiles.layout-bookmarks .rsfiles-layout form > .clearfix,
  body.com_rsfiles.layout-bookmarks .rsfiles-layout .float-start,
  body.com_rsfiles.layout-bookmarks .rsfiles-layout .float-end {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
  }

  body.com_rsfiles.layout-bookmarks .rsfiles-layout .float-end {
    gap: .5rem;
    margin-top: .75rem;
  }

  body.com_rsfiles.layout-search .rsfiles-layout > ul.list-inline .btn,
  body.com_rsfiles.layout-bookmarks .rsfiles-layout .float-start .btn {
    width: 2.35rem !important;
    min-width: 2.35rem !important;
    max-width: 2.35rem !important;
  }

  body.com_rsfiles.layout-bookmarks .rsfiles-layout .float-end .btn {
    width: 100%;
    justify-content: center;
    white-space: normal;
  }

  body.com_rsfiles.layout-search .rsfiles-layout .control-group {
    grid-template-columns: 1fr;
    gap: .35rem;
  }

  body.com_rsfiles.layout-search .rsfiles-layout select {
    width: 100%;
  }

  body.com_rsfiles.layout-search .rsfiles-layout select + select {
    margin-top: .5rem;
    margin-left: 0;
  }

  body.com_rsfiles.layout-bookmarks #bookmarksTable {
    display: block;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}

/* =========================================================
   PortalGraf · iCagenda / Eventos
   Bloque limpio final: listado + ficha pública
   ========================================================= */

body.com_icagenda #icagenda {
  --pg-ic-border: var(--pg-border, rgba(15, 23, 42, .10));
  --pg-ic-border-soft: rgba(29, 121, 137, .13);
  --pg-ic-muted: var(--pg-muted, #667085);
  --pg-ic-title: var(--pg-text, #172033);
  --pg-ic-link: var(--link-color, #1d7989);
  --pg-ic-hover: var(--link-hover-color, #de710d);
  --pg-ic-teal-dark: var(--pg-teal-dark, #145f6c);
  --pg-ic-soft: rgba(29, 121, 137, .045);
  --pg-ic-soft-strong: rgba(29, 121, 137, .075);
  --pg-ic-shadow: var(--pg-soft-shadow, 0 8px 22px rgba(15, 23, 42, .045));
  --pg-ic-shadow-hover: 0 12px 30px rgba(15, 23, 42, .075);
  margin: 0;
  color: var(--pg-ic-title);
  font-family: inherit !important;
  font-size: 1rem;
  line-height: 1.55;
}

body.com_icagenda #icagenda *,
body.com_icagenda #icagenda *::before,
body.com_icagenda #icagenda *::after {
  box-sizing: border-box;
}

body.com_icagenda #icagenda a {
  color: var(--pg-ic-link);
}

body.com_icagenda #icagenda a:hover,
body.com_icagenda #icagenda a:focus {
  color: var(--pg-ic-hover);
}

body.com_icagenda.view-events #icagenda::before,
body.com_icagenda.view-event #icagenda::before {
  content: "PortalGraf · Eventos";
  display: block;
  margin: 0 0 .55rem;
  color: var(--pg-ic-link);
  font-family: inherit !important;
  font-size: .84rem;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: .045em;
  text-transform: uppercase;
}

body.com_icagenda #icagenda form {
  margin: 0;
}

/* Cabecera PortalGraf: igual en listado, categoría filtrada y ficha */
body.com_icagenda.view-events #icagenda .ic-header-container,
body.com_icagenda.view-event #icagenda .ic-event-header {
  position: relative;
  overflow: hidden;
  margin: 0 0 1.15rem;
  border: 1px solid var(--pg-ic-border);
  border-radius: 1rem;
  padding: 1.15rem 1.25rem;
  background:
    linear-gradient(135deg, rgba(29, 121, 137, .10), rgba(222, 113, 13, .075)),
    #ffffff !important;
  box-shadow: var(--pg-ic-shadow);
}

body.com_icagenda.view-events #icagenda .ic-header-container::before,
body.com_icagenda.view-events #icagenda .ic-header-container::after,
body.com_icagenda.view-event #icagenda .ic-event-header::before,
body.com_icagenda.view-event #icagenda .ic-event-header::after {
  content: none !important;
  display: none !important;
}

body.com_icagenda.view-events #icagenda .ic-header-container + br {
  display: none;
}

body.com_icagenda.view-events #icagenda .ic-header-title,
body.com_icagenda.view-event #icagenda .ic-event-header h1 {
  margin: 0;
  padding: 0;
  border: 0;
  background: none !important;
  color: var(--pg-ic-title);
  font-family: inherit !important;
  font-size: clamp(1.35rem, 2vw, 1.85rem);
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: 0;
}

body.com_icagenda.view-events #icagenda .ic-header-title {
  margin-bottom: .45rem;
}

body.com_icagenda.view-events #icagenda .ic-header-subtitle {
  margin: 0;
  color: var(--pg-ic-muted);
  font-family: inherit !important;
  font-size: .98rem;
  line-height: 1.5;
}

body.com_icagenda.view-events #icagenda .ic-subtitle-string {
  display: inline-flex;
  align-items: center;
  gap: .42rem;
  border: 1px solid rgba(29, 121, 137, .18);
  border-radius: 999px;
  background: rgba(255, 255, 255, .72);
  color: var(--pg-ic-link);
  font-size: .86rem;
  font-weight: 700;
  line-height: 1.25;
  padding: .38rem .68rem;
}

body.com_icagenda.view-events #icagenda .ic-subtitle-string::before {
  content: "\f073";
  font-family: "Font Awesome 6 Free", "Font Awesome 5 Free", "FontAwesome";
  font-size: .82rem;
  font-weight: 900;
  line-height: 1;
}

/* Listado: tarjeta compacta aceptada */
body.com_icagenda.view-events #icagenda .ic-list-events {
  display: grid;
  gap: .9rem;
  margin-top: 1rem;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

body.com_icagenda.view-events #icagenda .ic-list-event,
body.com_icagenda.view-events #icagenda .ic-list-event:nth-child(2n+1),
body.com_icagenda.view-events #icagenda .ic-list-event:nth-child(2n) {
  margin: 0;
  padding: 0 !important;
  overflow: visible;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

body.com_icagenda.view-events #icagenda .ic-list-event::before,
body.com_icagenda.view-events #icagenda .ic-list-event::after {
  content: none !important;
  display: none !important;
}

body.com_icagenda.view-events #icagenda .ic-box {
  position: relative;
  display: flex;
  align-items: stretch;
  gap: 1rem;
  min-height: 0;
  margin: 0;
  padding: 1rem;
  overflow: hidden;
  border: 1px solid var(--pg-ic-border);
  border-radius: 1rem;
  background: #ffffff !important;
  box-shadow: var(--pg-ic-shadow);
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

body.com_icagenda.view-events #icagenda .ic-box::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 5px;
  background: linear-gradient(180deg, rgba(29, 121, 137, .78), rgba(222, 113, 13, .72));
  opacity: .9;
}

body.com_icagenda.view-events #icagenda .ic-box::after {
  content: none !important;
  display: none !important;
}

body.com_icagenda.view-events #icagenda .ic-list-event:hover .ic-box,
body.com_icagenda.view-events #icagenda .ic-list-event:focus-within .ic-box,
body.com_icagenda.view-events #icagenda .ic-box:hover {
  border-color: rgba(29, 121, 137, .22);
  box-shadow: var(--pg-ic-shadow-hover);
  transform: translateY(-1px);
}

body.com_icagenda.view-events #icagenda .ic-box-date {
  position: relative;
  float: none !important;
  display: flex;
  flex: 0 0 84px;
  align-items: center;
  justify-content: center;
  width: 84px !important;
  height: 84px !important;
  min-width: 84px;
  min-height: 84px;
  margin: 0 !important;
  padding: .55rem .45rem !important;
  border: 0 !important;
  border-top: 0 !important;
  border-radius: 1rem !important;
  outline: 0 !important;
  box-sizing: border-box !important;
  overflow: hidden;
  color: #ffffff !important;
  background: var(--pg-teal, #1d7989) !important;
  background-color: var(--pg-teal, #1d7989) !important;
  background-image: none !important;
  box-shadow: 0 8px 18px rgba(29, 121, 137, .14) !important;
  text-align: center;
}

body.com_icagenda.view-events #icagenda .ic-box-date::before,
body.com_icagenda.view-events #icagenda .ic-box-date::after,
body.com_icagenda.view-events #icagenda .ic-box-date .ic-date::before,
body.com_icagenda.view-events #icagenda .ic-box-date .ic-date::after,
body.com_icagenda.view-events #icagenda .ic-box-date .ic-day::before,
body.com_icagenda.view-events #icagenda .ic-box-date .ic-day::after,
body.com_icagenda.view-events #icagenda .ic-box-date .ic-current-period::before,
body.com_icagenda.view-events #icagenda .ic-box-date .ic-current-period::after {
  content: none !important;
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  background-image: none !important;
}

body.com_icagenda.view-events #icagenda .ic-date {
  position: relative;
  z-index: 1;
  display: flex;
  min-height: 100%;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  font-family: inherit !important;
  line-height: 1 !important;
  text-align: center;
  text-shadow: 0 1px 1px rgba(0, 0, 0, .14);
}

body.com_icagenda.view-events #icagenda .ic-day {
  display: block;
  margin: 0;
  font-size: 2rem;
  font-weight: 800;
  line-height: .95 !important;
  letter-spacing: -.03em;
}

body.com_icagenda.view-events #icagenda .ic-month {
  display: block;
  margin: .18rem 0 0 !important;
  font-size: .86rem;
  font-weight: 700;
  line-height: 1 !important;
  letter-spacing: .03em;
  text-transform: uppercase;
}

body.com_icagenda.view-events #icagenda .ic-year,
body.com_icagenda.view-events #icagenda .ic-time {
  display: block;
  margin: .15rem 0 0 !important;
  font-size: .72rem;
  font-weight: 700;
  line-height: 1 !important;
  letter-spacing: .06em;
  opacity: .95;
}

body.com_icagenda.view-events #icagenda .ic-content {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  padding: 0;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

body.com_icagenda.view-events #icagenda .ic-content > div {
  margin: 0;
  padding: 0;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

body.com_icagenda.view-events #icagenda .ic-cat {
  margin: 0 0 .35rem;
  color: var(--pg-ic-muted);
  font-family: inherit !important;
  font-size: .78rem;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: .035em;
  text-transform: uppercase;
}

body.com_icagenda.view-events #icagenda .ic-cat a {
  color: var(--pg-ic-link);
  text-decoration: none;
}

body.com_icagenda.view-events #icagenda .ic-cat a:hover,
body.com_icagenda.view-events #icagenda .ic-cat a:focus {
  color: var(--pg-ic-hover);
  text-decoration: underline;
  text-decoration-thickness: .08em;
  text-underline-offset: .18em;
}

body.com_icagenda.view-events #icagenda .ic-content h1,
body.com_icagenda.view-events #icagenda .ic-content h2,
body.com_icagenda.view-events #icagenda .ic-content h3 {
  margin: 0 0 .55rem;
  padding: 0;
  color: var(--pg-ic-title);
  font-family: inherit !important;
  font-size: clamp(1.12rem, 1.55vw, 1.38rem);
  font-weight: 800;
  line-height: 1.25;
}

body.com_icagenda.view-events #icagenda .ic-content h1 a,
body.com_icagenda.view-events #icagenda .ic-content h2 a,
body.com_icagenda.view-events #icagenda .ic-content h3 a {
  color: var(--pg-ic-title);
  text-decoration: none;
}

body.com_icagenda.view-events #icagenda .ic-content h1 a:hover,
body.com_icagenda.view-events #icagenda .ic-content h1 a:focus,
body.com_icagenda.view-events #icagenda .ic-content h2 a:hover,
body.com_icagenda.view-events #icagenda .ic-content h2 a:focus,
body.com_icagenda.view-events #icagenda .ic-content h3 a:hover,
body.com_icagenda.view-events #icagenda .ic-content h3 a:focus {
  color: var(--pg-ic-hover);
  text-decoration: underline;
  text-decoration-thickness: .08em;
  text-underline-offset: .18em;
}

body.com_icagenda.view-events #icagenda .ic-place,
body.com_icagenda.view-events #icagenda .ic-descshort {
  margin: .3rem 0 0;
  color: var(--pg-ic-muted);
  font-family: inherit !important;
  font-size: .94rem;
  line-height: 1.5;
}

body.com_icagenda.view-events #icagenda .ic-place strong {
  color: var(--pg-ic-title);
  font-weight: 700;
}

body.com_icagenda.view-events #icagenda .ic-descshort {
  max-width: 70ch;
}

body.com_icagenda.view-events #icagenda .ic-actionbar {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: .5rem;
  margin-top: .65rem;
  padding: 0;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

body.com_icagenda.view-events #icagenda .ic-actionbar-readmore {
  margin: 0;
}

body.com_icagenda.view-events #icagenda .ic-actionbar-readmore .btn,
body.com_icagenda.view-events #icagenda .ic-actionbar .btn {
  border-color: var(--pg-ic-link);
  border-radius: 999px;
  background: var(--pg-ic-link);
  color: #ffffff;
  font-family: inherit !important;
  font-size: .86rem;
  font-weight: 700;
  padding: .42rem .78rem;
}

body.com_icagenda.view-events #icagenda .ic-actionbar-readmore .btn:hover,
body.com_icagenda.view-events #icagenda .ic-actionbar-readmore .btn:focus,
body.com_icagenda.view-events #icagenda .ic-actionbar .btn:hover,
body.com_icagenda.view-events #icagenda .ic-actionbar .btn:focus {
  border-color: var(--pg-ic-hover);
  background: var(--pg-ic-hover);
  color: #ffffff;
}

body.com_icagenda.view-events #icagenda .ic-list-events:empty {
  position: relative;
  display: block;
  min-height: 0;
  border: 1px dashed rgba(29, 121, 137, .24);
  border-radius: 1rem;
  padding: 1rem 1.1rem 1rem 3.35rem;
  background: #ffffff !important;
  color: var(--pg-ic-muted);
  box-shadow: var(--pg-ic-shadow);
}

body.com_icagenda.view-events #icagenda .ic-list-events:empty::before {
  content: "\f1da";
  position: absolute;
  left: 1rem;
  top: 1rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: .78rem;
  background: linear-gradient(135deg, rgba(29, 121, 137, .12), rgba(222, 113, 13, .10));
  color: var(--pg-ic-link);
  font-family: "Font Awesome 6 Free", "Font Awesome 5 Free", "FontAwesome";
  font-size: .9rem;
  font-weight: 900;
}

body.com_icagenda.view-events #icagenda .ic-list-events:empty::after {
  content: "No hay eventos publicados en este momento. Cuando se añadan ferias, exposiciones o citas del sector gráfico aparecerán en esta sección.";
  display: block;
  line-height: 1.55;
}

/* Ficha pública del evento: estructura limpia */
body.com_icagenda.view-event #icagenda.ic-event-view,
body.com_icagenda.view-event #icagenda .ic-event-view {
  max-width: 100%;
}

body.com_icagenda.view-event #icagenda .ic-top-buttons {
  display: none;
}

body.com_icagenda.view-event #icagenda .ic-event-buttons {
  margin: -.35rem 0 1rem;
  padding: 0;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

body.com_icagenda.view-event #icagenda .ic-event-registration,
body.com_icagenda.view-event #icagenda .ic-event-registration.ic-float-right {
  float: none !important;
  display: flex;
  justify-content: flex-end;
  width: 100%;
  margin: 0;
}

body.com_icagenda.view-event #icagenda .ic-registration-box {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: .5rem;
  width: auto;
  margin: 0;
  border: 1px solid var(--pg-ic-border-soft);
  border-radius: 999px;
  padding: .35rem;
  background: #ffffff !important;
  box-shadow: 0 4px 12px rgba(15, 23, 42, .045);
}

body.com_icagenda.view-event #icagenda .ic-button-box {
  margin: 0 !important;
  padding: 0 !important;
}

body.com_icagenda.view-event #icagenda .ic-info {
  position: relative;
  overflow: hidden;
  margin: 0;
  border: 1px solid var(--pg-ic-border);
  border-radius: 1rem;
  padding: 1.05rem 1.15rem 1.15rem;
  background: #ffffff !important;
  box-shadow: var(--pg-ic-shadow);
}

body.com_icagenda.view-event #icagenda .ic-info::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 5px;
  background: linear-gradient(180deg, rgba(29, 121, 137, .72), rgba(222, 113, 13, .58));
  opacity: .9;
}

body.com_icagenda.view-event #icagenda .ic-info > * {
  position: relative;
  z-index: 1;
}

body.com_icagenda.view-event #icagenda .ic-info > div:empty,
body.com_icagenda.view-event #icagenda .ic-info > div:not([class]) {
  display: none !important;
}

body.com_icagenda.view-event #icagenda .ic-details,
body.com_icagenda.view-event #icagenda .ic-divTable {
  width: 100%;
  margin: 0;
  padding: 0;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

body.com_icagenda.view-event #icagenda .ic-divTable {
  display: grid;
  gap: .62rem;
}

body.com_icagenda.view-event #icagenda .ic-divRow {
  display: grid;
  grid-template-columns: minmax(7.5rem, 10rem) minmax(0, 1fr);
  gap: .75rem;
  align-items: center;
  margin: 0;
  border: 1px solid rgba(29, 121, 137, .105);
  border-radius: .85rem;
  padding: .78rem .9rem;
  background: rgba(29, 121, 137, .028) !important;
}

body.com_icagenda.view-event #icagenda .ic-divRow.ic-event-date {
  align-items: center;
  border-color: rgba(29, 121, 137, .18);
  background:
    linear-gradient(135deg, rgba(29, 121, 137, .075), rgba(222, 113, 13, .045)),
    #ffffff !important;
}

body.com_icagenda.view-event #icagenda .ic-label,
body.com_icagenda.view-event #icagenda .ic-value {
  display: block;
  float: none !important;
  width: auto !important;
  min-width: 0;
  margin: 0;
  padding: 0;
  font-family: inherit !important;
  line-height: 1.45;
}

body.com_icagenda.view-event #icagenda .ic-label {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  color: var(--pg-ic-title);
  font-size: .84rem;
  font-weight: 800;
  letter-spacing: .025em;
  text-transform: uppercase;
}

body.com_icagenda.view-event #icagenda .ic-label::before {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: .65rem;
  background: rgba(29, 121, 137, .10);
  color: var(--pg-ic-link);
  font-family: "Font Awesome 6 Free", "Font Awesome 5 Free", "FontAwesome";
  font-size: .78rem;
  font-weight: 900;
  line-height: 1;
}

body.com_icagenda.view-event #icagenda .ic-details-cat .ic-label::before { content: "\f02b"; }
body.com_icagenda.view-event #icagenda .ic-event-date .ic-label::before { content: "\f073"; }
body.com_icagenda.view-event #icagenda .ic-info-phone .ic-label::before { content: "\f095"; }
body.com_icagenda.view-event #icagenda .ic-info-email .ic-label::before { content: "\f0e0"; }
body.com_icagenda.view-event #icagenda .ic-info-website .ic-label::before { content: "\f0ac"; }

body.com_icagenda.view-event #icagenda .ic-event-date .ic-label {
  font-size: 0;
}

body.com_icagenda.view-event #icagenda .ic-event-date .ic-label::after {
  content: "Fecha";
  font-size: .84rem;
}

body.com_icagenda.view-event #icagenda .ic-value {
  color: var(--pg-ic-muted);
  font-size: .96rem;
  overflow-wrap: anywhere;
}

body.com_icagenda.view-event #icagenda .ic-value a {
  font-weight: 700;
  text-decoration: none;
  overflow-wrap: anywhere;
  word-break: break-word;
}

body.com_icagenda.view-event #icagenda .ic-value a:hover,
body.com_icagenda.view-event #icagenda .ic-value a:focus {
  text-decoration: underline;
  text-decoration-thickness: .08em;
  text-underline-offset: .18em;
}

body.com_icagenda.view-event #icagenda .ic-value h2 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .35rem;
  margin: 0;
  padding: 0;
  color: var(--pg-ic-title);
  font-family: inherit !important;
  font-size: .98rem;
  font-weight: 700;
  line-height: 1.35;
}

body.com_icagenda.view-event #icagenda .ic-period-startdate,
body.com_icagenda.view-event #icagenda .ic-period-enddate,
body.com_icagenda.view-event #icagenda .ic-period-starttime,
body.com_icagenda.view-event #icagenda .ic-period-endtime,
body.com_icagenda.view-event #icagenda .evttime {
  display: inline-flex;
  align-items: center;
  min-height: 1.8rem;
  border-radius: 999px;
  padding: .28rem .6rem;
  background: rgba(255, 255, 255, .78);
  color: var(--pg-ic-title);
  border: 1px solid rgba(29, 121, 137, .13);
  font-size: .9rem;
  font-weight: 700;
  line-height: 1.2;
}

body.com_icagenda.view-event #icagenda .ic-period-starttime,
body.com_icagenda.view-event #icagenda .ic-period-endtime,
body.com_icagenda.view-event #icagenda .evttime {
  color: var(--pg-ic-link);
  background: rgba(29, 121, 137, .075);
}

body.com_icagenda.view-event #icagenda .ic-datetime-separator {
  color: transparent;
  font-size: 0;
}

body.com_icagenda.view-event #icagenda .ic-datetime-separator::after {
  content: "→";
  color: var(--pg-ic-muted);
  font-size: .95rem;
  font-weight: 700;
}

body.com_icagenda.view-event #icagenda .ic-short-description:empty {
  display: none;
}

body.com_icagenda.view-event #icagenda .ic-short-description,
body.com_icagenda.view-event #icagenda .ic-full-description {
  margin: 1rem 0 0;
  color: var(--pg-ic-title);
  font-family: inherit !important;
  font-size: 1rem;
  line-height: 1.62;
  overflow-wrap: anywhere;
}

body.com_icagenda.view-event #icagenda .ic-full-description {
  border: 1px solid rgba(29, 121, 137, .105);
  border-radius: .9rem;
  padding: 1rem 1.05rem;
  background: #ffffff !important;
}

body.com_icagenda.view-event #icagenda .ic-full-description::before {
  content: "Descripción del evento";
  display: block;
  margin: 0 0 .5rem;
  color: var(--pg-ic-title);
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.3;
}

body.com_icagenda.view-event #icagenda .ic-full-description p:last-child,
body.com_icagenda.view-event #icagenda .ic-short-description p:last-child {
  margin-bottom: 0;
}

body.com_icagenda.view-event #icagenda #ic-list-of-dates {
  margin: 1rem 0 0;
  border: 1px solid rgba(29, 121, 137, .13);
  border-radius: .9rem;
  background: rgba(29, 121, 137, .035) !important;
  padding: .9rem 1rem;
}

body.com_icagenda.view-event #icagenda #ic-list-of-dates h3 {
  display: flex;
  align-items: center;
  gap: .45rem;
  margin: 0 0 .55rem;
  color: var(--pg-ic-title);
  font-family: inherit !important;
  font-size: 1.05rem;
  font-weight: 800;
  line-height: 1.3;
}

body.com_icagenda.view-event #icagenda #ic-list-of-dates h3::before {
  content: "\f274";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: .65rem;
  background: rgba(29, 121, 137, .10);
  color: var(--pg-ic-link);
  font-family: "Font Awesome 6 Free", "Font Awesome 5 Free", "FontAwesome";
  font-size: .78rem;
  font-weight: 900;
}

body.com_icagenda.view-event #icagenda .ic-all-dates ul,
body.com_icagenda.view-event #icagenda .ic-dates-list ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

body.com_icagenda.view-event #icagenda .ic-all-dates li,
body.com_icagenda.view-event #icagenda .ic-dates-list li {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
  align-items: center;
  margin: 0;
  color: var(--pg-ic-muted);
  font-size: .95rem;
  line-height: 1.45;
}

body.com_icagenda.view-event #icagenda .ic-period-text-from,
body.com_icagenda.view-event #icagenda .ic-period-text-to {
  color: var(--pg-ic-muted);
  font-weight: 700;
}

body.com_icagenda.view-event #icagenda #ic-detail-map,
body.com_icagenda.view-event #icagenda .ic-map {
  overflow: hidden;
  margin-top: 1rem;
  border: 1px solid var(--pg-ic-border-soft);
  border-radius: .9rem;
}

body.com_icagenda #icagenda .btn,
body.com_icagenda #icagenda button,
body.com_icagenda #icagenda input[type="submit"] {
  border-radius: 999px;
  font-family: inherit !important;
}

body.com_icagenda.view-event #icagenda .btn-primary,
body.com_icagenda.view-event #icagenda .btn-secondary {
  border-color: var(--pg-ic-link);
  background: var(--pg-ic-link);
  color: #ffffff;
  font-weight: 700;
}

body.com_icagenda.view-event #icagenda .btn-primary:hover,
body.com_icagenda.view-event #icagenda .btn-primary:focus,
body.com_icagenda.view-event #icagenda .btn-secondary:hover,
body.com_icagenda.view-event #icagenda .btn-secondary:focus {
  border-color: var(--pg-ic-hover);
  background: var(--pg-ic-hover);
  color: #ffffff;
}

body.com_icagenda.view-event #icagenda .btn-light.disabled,
body.com_icagenda.view-event #icagenda .btn-light:disabled {
  border-color: rgba(29, 121, 137, .14);
  background: rgba(29, 121, 137, .055);
  color: var(--pg-ic-title);
  opacity: 1;
}

@media (max-width: 760px) {
  body.com_icagenda.view-events #icagenda::before,
  body.com_icagenda.view-event #icagenda::before {
    font-size: .78rem;
    letter-spacing: .035em;
  }

  body.com_icagenda.view-events #icagenda .ic-header-container,
  body.com_icagenda.view-event #icagenda .ic-event-header,
  body.com_icagenda.view-event #icagenda .ic-info {
    padding: 1rem;
    border-radius: .9rem;
  }

  body.com_icagenda.view-events #icagenda .ic-header-title,
  body.com_icagenda.view-event #icagenda .ic-event-header h1 {
    font-size: 1.35rem;
  }

  body.com_icagenda.view-events #icagenda .ic-box {
    gap: .85rem;
    padding: .9rem;
    border-radius: .9rem;
  }

  body.com_icagenda.view-events #icagenda .ic-box-date {
    flex-basis: 76px;
    width: 76px !important;
    height: 76px !important;
    min-width: 76px;
    min-height: 76px;
    border-radius: .85rem !important;
    padding: .48rem .4rem !important;
  }

  body.com_icagenda.view-events #icagenda .ic-content {
    padding: 0;
  }

  body.com_icagenda.view-events #icagenda .ic-day {
    font-size: 1.75rem;
  }

  body.com_icagenda.view-events #icagenda .ic-month {
    font-size: .78rem;
  }

  body.com_icagenda.view-events #icagenda .ic-year,
  body.com_icagenda.view-events #icagenda .ic-time {
    font-size: .66rem;
  }

  body.com_icagenda.view-event #icagenda .ic-event-registration,
  body.com_icagenda.view-event #icagenda .ic-event-registration.ic-float-right {
    justify-content: flex-start;
  }

  body.com_icagenda.view-event #icagenda .ic-registration-box {
    width: 100%;
    justify-content: flex-start;
    border-radius: .9rem;
  }

  body.com_icagenda.view-event #icagenda .ic-divRow {
    grid-template-columns: 1fr;
    gap: .35rem;
    padding: .75rem;
  }

  body.com_icagenda.view-event #icagenda .ic-value h2 {
    gap: .3rem;
  }
}

@media (max-width: 460px) {
  body.com_icagenda.view-events #icagenda .ic-box {
    flex-direction: column;
  }

  body.com_icagenda.view-events #icagenda .ic-box-date {
    width: 100% !important;
    height: auto !important;
    min-width: 100%;
    min-height: 74px;
  }

  body.com_icagenda.view-events #icagenda .ic-actionbar {
    justify-content: flex-start;
  }

  body.com_icagenda.view-event #icagenda .ic-period-startdate,
  body.com_icagenda.view-event #icagenda .ic-period-enddate,
  body.com_icagenda.view-event #icagenda .ic-period-starttime,
  body.com_icagenda.view-event #icagenda .ic-period-endtime,
  body.com_icagenda.view-event #icagenda .evttime {
    width: auto;
  }
}

/* =========================================================
   PortalGraf · Buscar / com_finder · bloque consolidado
   Página: /buscar
   Equivalencia visual con la versión estable de 2026-07-14
   ========================================================= */

body.com_finder.view-search.itemid-309 .com-finder {
  --pg-finder-teal: #1d7989;
  --pg-finder-teal-dark: #176b78;
  --pg-finder-orange: #de710d;
  --pg-finder-border: rgba(29, 121, 137, .16);
  position: relative;
  overflow: visible !important;
}

/* Contexto superior */
body.com_finder.view-search.itemid-309 .container-component main::before {
  content: "PortalGraf · Buscar";
  display: block;
  margin: 0 0 .45rem;
  color: var(--pg-teal, #1d7989) !important;
  font-size: .82rem;
  font-weight: 700;
  letter-spacing: .045em;
  text-transform: uppercase;
}

/* Neutraliza decoraciones heredadas */
body.com_finder.view-search.itemid-309 .com-finder::before,
body.com_finder.view-search.itemid-309 .com-finder::after,
body.com_finder.view-search.itemid-309 .com-finder__form::before,
body.com_finder.view-search.itemid-309 .com-finder__form::after,
body.com_finder.view-search.itemid-309 #search-form::before,
body.com_finder.view-search.itemid-309 #search-form::after,
body.com_finder.view-search.itemid-309 .com-finder > h1::before {
  content: none !important;
  display: none !important;
}

/* Cabecera funcional */
body.com_finder.view-search.itemid-309 .com-finder > h1 {
  display: block;
  margin: 0 0 0;
  padding: 1.25rem 1.45rem 1.15rem;
  border: 0 !important;
  border-left: 5px solid var(--pg-finder-orange) !important;
  border-radius: 1rem !important;
  overflow: hidden;
  background:
    radial-gradient(
      circle at 92% 18%,
      rgba(222, 113, 13, .26) 0%,
      rgba(222, 113, 13, .13) 28%,
      transparent 52%
    ),
    linear-gradient(
      135deg,
      #1d7989 0%,
      #207c88 46%,
      #267883 72%,
      #cf7018 100%
    );
  color: #fff !important;
  box-shadow: 0 10px 24px rgba(29, 121, 137, .18);
  font-size: clamp(1.55rem, 4.6vw, 2.05rem);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -.02em;
}

body.com_finder.view-search.itemid-309 .com-finder > h1::after {
  content: "Busca contenidos sobre artes gráficas, impresión, preimpresión, postimpresión, calidad, descargas, empleo y recursos técnicos.";
  display: block;
  max-width: 52rem;
  margin-top: .85rem;
  padding-top: .85rem;
  border-top: 1px solid rgba(255, 255, 255, .28);
  color: rgba(255, 255, 255, .90);
  font-size: clamp(.92rem, 2.7vw, 1rem);
  font-weight: 400;
  line-height: 1.45;
  letter-spacing: 0;
}

/* Tarjeta del formulario */
body.com_finder.view-search.itemid-309 .com-finder__form {
  position: relative;
  z-index: 20;
  overflow: visible !important;
  margin: 1rem 0 0;
  padding: 1.15rem 1.45rem 1.35rem;
  border: 1px solid var(--pg-finder-border);
  border-radius: 1rem;
  background:
    linear-gradient(180deg, rgba(29, 121, 137, .045), rgba(255, 255, 255, 0) 58%),
    #fff;
  box-shadow: 0 8px 22px rgba(0, 0, 0, .045);
}

body.com_finder.view-search.itemid-309 #search-form,
body.com_finder.view-search.itemid-309 .com-finder__search,
body.com_finder.view-search.itemid-309 .form-inline,
body.com_finder.view-search.itemid-309 .input-group {
  overflow: visible !important;
}

body.com_finder.view-search.itemid-309 .com-finder__search {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}

body.com_finder.view-search.itemid-309 .com-finder__search label {
  display: block;
  margin: 0 0 .5rem;
  color: #172033;
  font-weight: 700;
}

/* Campo y botón */
body.com_finder.view-search.itemid-309 .com-finder .input-group {
  position: relative;
  z-index: 30;
  display: flex;
  gap: .6rem;
  width: 100%;
}

body.com_finder.view-search.itemid-309 .com-finder input[type="text"],
body.com_finder.view-search.itemid-309 .com-finder .form-control {
  min-height: 2.8rem;
  border: 1px solid rgba(29, 121, 137, .25);
  border-radius: .8rem !important;
  background: #fff;
  box-shadow: none;
}

body.com_finder.view-search.itemid-309 .com-finder input[type="text"]:focus,
body.com_finder.view-search.itemid-309 .com-finder .form-control:focus {
  border-color: rgba(29, 121, 137, .68);
  box-shadow: 0 0 0 .18rem rgba(29, 121, 137, .14);
}

body.com_finder.view-search.itemid-309 .com-finder .btn-primary {
  min-height: 2.8rem;
  padding-inline: 1.2rem;
  border: 0;
  border-radius: .8rem !important;
  background: var(--pg-finder-orange);
  color: #fff;
  font-weight: 700;
  box-shadow: 0 8px 18px rgba(222, 113, 13, .18);
}

body.com_finder.view-search.itemid-309 .com-finder .btn-primary:hover,
body.com_finder.view-search.itemid-309 .com-finder .btn-primary:focus {
  background: #b85d0a;
  color: #fff;
}

/* Sugerencias Awesomplete */
body.com_finder.view-search.itemid-309 .com-finder .awesomplete {
  position: relative;
  z-index: 40;
  display: block;
  flex: 1 1 auto;
  min-width: 0;
}

body.com_finder.view-search.itemid-309 .com-finder .awesomplete > input {
  width: 100%;
}

body.com_finder.view-search.itemid-309 .com-finder .awesomplete > ul {
  z-index: 9999;
  margin-top: .35rem;
  border: 1px solid rgba(29, 121, 137, .18);
  border-radius: .85rem;
  background: #fff;
  box-shadow: 0 14px 30px rgba(15, 23, 42, .16);
  overflow: hidden;
}

body.com_finder.view-search.itemid-309 .com-finder .awesomplete > ul::before {
  display: none;
}

/* Resultados */
body.com_finder.view-search.itemid-309 .com-finder__results {
  margin-top: 1rem;
}

body.com_finder.view-search.itemid-309 .result__item,
body.com_finder.view-search.itemid-309 .result {
  margin-top: .75rem;
  padding: 1rem 1.1rem;
  border: 1px solid rgba(29, 121, 137, .14);
  border-radius: .9rem;
  background: #fff;
  box-shadow: 0 6px 16px rgba(0, 0, 0, .035);
}

body.com_finder.view-search.itemid-309 .result__title a,
body.com_finder.view-search.itemid-309 .result-title a {
  color: var(--pg-finder-teal);
  font-weight: 700;
  text-decoration: none;
}

body.com_finder.view-search.itemid-309 .result__title a:hover,
body.com_finder.view-search.itemid-309 .result-title a:hover {
  color: var(--pg-finder-orange);
  text-decoration: underline;
}

/* Responsive */
@media (max-width: 575.98px) {
  body.com_finder.view-search.itemid-309 .com-finder > h1 {
    padding: 1.05rem 1rem;
    border-left-width: 4px !important;
    border-radius: .85rem;
    font-size: 1.45rem;
  }

  body.com_finder.view-search.itemid-309 .com-finder > h1::after {
    margin-top: .75rem;
    padding-top: .75rem;
    font-size: .9rem;
    line-height: 1.42;
  }

  body.com_finder.view-search.itemid-309 .com-finder__form {
    margin-top: .85rem;
    padding: .95rem;
    border-radius: .85rem;
  }

  body.com_finder.view-search.itemid-309 .com-finder .input-group {
    display: grid;
    grid-template-columns: 1fr;
    gap: .55rem;
  }

  body.com_finder.view-search.itemid-309 .com-finder .input-group > .form-control,
  body.com_finder.view-search.itemid-309 .com-finder .input-group > .btn,
  body.com_finder.view-search.itemid-309 .com-finder .btn-primary {
    width: 100%;
    border-radius: .65rem !important;
  }
}

/* =========================================================
   PortalGraf · RSFiles insertado en artículos Joomla
   Tarjeta técnica tipo cabecera + guiño CMYK / marca de registro
   Aplica en ficha de artículo y en vistas de categoría/blog
   No afecta a la vista principal de RSFiles (/descargas)
   ========================================================= */

body.com_content .rsfiles-layout {
  position: relative;
  clear: both;
  margin: 1.8rem 0 2.1rem;
  padding: 1rem 1.05rem;
  overflow: hidden;
  border-radius: 1rem;
  border: 1px solid rgba(29, 121, 137, .18);
  border-left: 5px solid #bd5a0d;
  background:
    linear-gradient(135deg, rgba(23, 107, 120, .97) 0%, rgba(29, 121, 137, .96) 55%, rgba(189, 90, 13, .92) 135%) !important;
  box-shadow: 0 8px 20px rgba(0, 0, 0, .07);
}

/* Puntos CMYK decorativos */
body.com_content .rsfiles-layout::after {
  content: "";
  position: absolute;
  top: .85rem;
  right: .95rem;
  width: 4.2rem;
  height: .75rem;
  opacity: .82;
  pointer-events: none;
  background:
    radial-gradient(circle at .35rem 50%, #00a3e0 0 .27rem, transparent .29rem),
    radial-gradient(circle at 1.35rem 50%, #e6007e 0 .27rem, transparent .29rem),
    radial-gradient(circle at 2.35rem 50%, #ffd200 0 .27rem, transparent .29rem),
    radial-gradient(circle at 3.35rem 50%, #1d1d1b 0 .27rem, transparent .29rem);
}

/* Marca de registro discreta */
body.com_content .rsfiles-layout::before {
  content: "";
  position: absolute;
  right: 1rem;
  bottom: .85rem;
  width: 1.05rem;
  height: 1.05rem;
  opacity: .22;
  pointer-events: none;
  background:
    linear-gradient(#fff, #fff) center / 100% 1px no-repeat,
    linear-gradient(#fff, #fff) center / 1px 100% no-repeat;
  border: 1px solid rgba(255, 255, 255, .7);
  border-radius: 50%;
}

/* Limpieza total del aspecto tabla/listado */
body.com_content .rsfiles-layout table.rsf_files {
  position: relative;
  z-index: 1;
  width: 100%;
  margin: 0 !important;
  border: 0 !important;
  border-collapse: collapse;
  background: transparent !important;
}

body.com_content .rsfiles-layout table.rsf_files tbody,
body.com_content .rsfiles-layout table.rsf_files tr {
  display: block;
  background: transparent !important;
}

body.com_content .rsfiles-layout table.rsf_files tr {
  display: grid;
  grid-template-columns: 1fr !important;
  gap: .65rem 1rem;
  align-items: center;
  padding: 0 !important;
  border: 0 !important;
}

body.com_content .rsfiles-layout table.rsf_files td {
  display: block;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

/* Neutralizar rayado de Bootstrap/RSFiles */
body.com_content .rsfiles-layout table.rsf_files.table-striped > tbody > tr:nth-of-type(odd) > *,
body.com_content .rsfiles-layout table.rsf_files.table-striped > tbody > tr:nth-of-type(even) > * {
  --bs-table-bg-type: transparent;
  --bs-table-accent-bg: transparent;
  background-color: transparent !important;
  box-shadow: none !important;
}

/* Columna principal */
body.com_content .rsfiles-layout .rsfiles-download-info {
  min-width: 0;
  padding-right: 4.4rem !important;
}

/* Etiqueta editorial superior */
body.com_content .rsfiles-layout .rsfiles-download-info::before {
  content: "Descarga técnica";
  display: block;
  width: fit-content;
  margin: 0 0 .38rem;
  padding: .18rem .52rem;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: 999px;
  background: rgba(255, 255, 255, .10);
  color: rgba(255, 255, 255, .82);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .025em;
  text-transform: uppercase;
}

/* Enlace principal del archivo */
body.com_content .rsfiles-layout a.rsfiles-file {
  display: block !important;
  max-width: 100%;
  white-space: normal;
  color: #ffffff !important;
  font-size: 1.03rem;
  font-weight: 850;
  line-height: 1.35;
  text-decoration: none !important;
  text-shadow: 0 1px 1px rgba(0, 0, 0, .10);
}

body.com_content .rsfiles-layout a.rsfiles-file:hover,
body.com_content .rsfiles-layout a.rsfiles-file:focus {
  color: #ffffff !important;
  text-decoration: underline !important;
  text-underline-offset: .2em;
}

/* Ocultar icono de tipo de archivo */
body.com_content .rsfiles-layout .rsfiles-file-icon {
  display: none !important;
}

/* Ocultar estrellas, fecha y saltos internos heredados */
body.com_content .rsfiles-layout .float-end,
body.com_content .rsfiles-layout table.rsf_files td:nth-child(2),
body.com_content .rsfiles-layout br {
  display: none !important;
}

/* Badges integrados */
body.com_content .rsfiles-layout .badge {
  display: inline-flex;
  align-items: center;
  gap: .25rem;
  margin: .55rem .28rem 0 0;
  padding: .27rem .5rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, .22);
  background: rgba(255, 255, 255, .14) !important;
  color: #ffffff !important;
  font-size: .74rem;
  font-weight: 700;
  line-height: 1;
}

/* Badge Popular */
body.com_content .rsfiles-layout .badge.bg-success,
body.com_content .rsfiles-layout .badge-success {
  background: rgba(255, 255, 255, .20) !important;
  color: #ffffff !important;
  border-color: rgba(255, 255, 255, .28);
}

/* Badges técnicos: versión / tamaño */
body.com_content .rsfiles-layout .badge.bg-secondary {
  background: rgba(255, 255, 255, .105) !important;
  color: rgba(255, 255, 255, .82) !important;
  border-color: rgba(255, 255, 255, .16);
  font-weight: 650;
}

/* Iconos dentro de badges */
body.com_content .rsfiles-layout .badge i {
  opacity: .72;
}

/* Acciones debajo del título/badges */
body.com_content .rsfiles-layout table.rsf_files td:nth-child(3) {
  grid-column: 1 / -1 !important;
  display: flex !important;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start !important;
  gap: .4rem;
  margin-top: .65rem;
  white-space: nowrap;
}

/* Botones de acción */
body.com_content .rsfiles-layout table.rsf_files td:nth-child(3) a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.15rem;
  height: 2.15rem;
  padding: 0 .58rem;
  border: 1px solid rgba(255, 255, 255, .34);
  border-radius: 999px;
  background: rgba(255, 255, 255, .14);
  color: #ffffff !important;
  text-decoration: none !important;
  backdrop-filter: blur(2px);
}

/* Botón principal: Descargar */
body.com_content .rsfiles-layout table.rsf_files td:nth-child(3) a:first-child {
  background: #ffffff;
  border-color: #ffffff;
  color: #176b78 !important;
  font-weight: 800;
}

body.com_content .rsfiles-layout table.rsf_files td:nth-child(3) a:first-child::after {
  content: "Descargar";
  margin-left: .35rem;
  font-size: .82rem;
  font-weight: 800;
}

body.com_content .rsfiles-layout table.rsf_files td:nth-child(3) a:first-child:hover,
body.com_content .rsfiles-layout table.rsf_files td:nth-child(3) a:first-child:focus {
  background: #ffd7a3;
  border-color: #ffd7a3;
  color: #174f58 !important;
}

/* Botón secundario: Detalles */
body.com_content .rsfiles-layout table.rsf_files td:nth-child(3) a:nth-child(2) {
  background: rgba(255, 255, 255, .10);
  border-color: rgba(255, 255, 255, .26);
  color: rgba(255, 255, 255, .84) !important;
  opacity: 1;
}

body.com_content .rsfiles-layout table.rsf_files td:nth-child(3) a:nth-child(2):hover,
body.com_content .rsfiles-layout table.rsf_files td:nth-child(3) a:nth-child(2):focus {
  background: rgba(255, 255, 255, .20);
  border-color: rgba(255, 255, 255, .46);
  color: #ffffff !important;
}

/* Móvil */
@media (max-width: 575.98px) {
  body.com_content .rsfiles-layout {
    margin: 1.55rem 0 1.9rem;
    padding: .95rem;
    border-radius: .85rem;
  }

  body.com_content .rsfiles-layout::after {
    top: .7rem;
    right: .75rem;
    transform: scale(.88);
    transform-origin: top right;
  }

  body.com_content .rsfiles-layout .rsfiles-download-info {
    padding-right: 3.2rem !important;
  }

  body.com_content .rsfiles-layout table.rsf_files td:nth-child(3) {
    margin-top: .55rem;
  }

  body.com_content .rsfiles-layout a.rsfiles-file {
    font-size: .97rem;
  }
}

/* RSFiles · listado de descargas · valoración alineada a la derecha */
.com_rsfiles.view-rsfiles .pg-rsfiles.pg-rsfiles--listing .pg-rsfiles-card__badges {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: .4rem !important;
  width: 100% !important;
}

.com_rsfiles.view-rsfiles .pg-rsfiles.pg-rsfiles--listing .pg-rsfiles-card__badges .badge {
  flex: 0 0 auto !important;
}

.com_rsfiles.view-rsfiles .pg-rsfiles.pg-rsfiles--listing .pg-rsfiles-card__rating {
  margin-left: auto !important;
  display: inline-flex !important;
  flex: 0 0 auto !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: .06rem !important;
  white-space: nowrap !important;
  color: #de710d !important;
  text-align: right !important;
}

.com_rsfiles.view-rsfiles .pg-rsfiles.pg-rsfiles--listing .pg-rsfiles-card__rating i {
  color: #de710d !important;
  flex: 0 0 auto !important;
}

.com_rsfiles.view-rsfiles .pg-rsfiles.pg-rsfiles--listing .pg-rsfiles-card__rating .far {
  opacity: .45 !important;
}

/* RSFiles Hits · módulo Recursos más consultados */
.rsfiles-hits-module.pg-rsf-module--hits {
  --pg-rsf-border: rgba(0, 0, 0, .10);
  --pg-rsf-muted: #667085;
  --pg-rsf-title: #172033;
  --pg-rsf-teal: #1d7989;
  --pg-rsf-orange: #de710d;
}

.rsfiles-hits-module.pg-rsf-module--hits .pg-rsf-list {
  display: grid !important;
  gap: .65rem !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.rsfiles-hits-module.pg-rsf-module--hits .pg-rsf-list__item {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.rsfiles-hits-module.pg-rsf-module--hits .pg-rsf-list__link {
  display: grid !important;
  grid-template-columns: 1.35rem minmax(0, 1fr) !important;
  gap: .55rem !important;
  align-items: flex-start !important;
  position: relative !important;
  padding: .72rem .78rem .72rem 1rem !important;
  border: 1px solid var(--pg-rsf-border) !important;
  border-radius: .85rem !important;
  background: #fff !important;
  color: inherit !important;
  text-decoration: none !important;
  box-shadow: 0 6px 18px rgba(15, 23, 42, .045) !important;
  overflow: hidden !important;
  transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease !important;
}

/* Línea degradada izquierda */
.rsfiles-hits-module.pg-rsf-module--hits .pg-rsf-list__link::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 auto 0 0 !important;
  width: .28rem !important;
  background: linear-gradient(180deg, var(--pg-rsf-teal), var(--pg-rsf-orange)) !important;
  opacity: .95 !important;
  pointer-events: none !important;
}

.rsfiles-hits-module.pg-rsf-module--hits .pg-rsf-list__link:hover,
.rsfiles-hits-module.pg-rsf-module--hits .pg-rsf-list__link:focus {
  border-color: rgba(29, 121, 137, .32) !important;
  box-shadow: 0 8px 22px rgba(15, 23, 42, .075) !important;
  transform: translateY(-1px) !important;
}

/* Icono limpio con halo circular suave */
.rsfiles-hits-module.pg-rsf-module--hits .pg-rsf-list__icon {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 1.35rem !important;
  min-width: 1.35rem !important;
  height: 1.35rem !important;
  margin-top: .04rem !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  background-image: none !important;
  color: var(--pg-rsf-teal) !important;
  font-size: .95rem !important;
  line-height: 1 !important;
  box-shadow: none !important;
  position: relative !important;
  z-index: 1 !important;
  overflow: visible !important;
}

/* Halo naranja PortalGraf invertido: centro suave, anillo exterior más visible y borde difuminado */
.rsfiles-hits-module.pg-rsf-module--hits .pg-rsf-list__icon::before {
  content: "" !important;
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  width: 1.65rem !important;
  height: 1.65rem !important;
  transform: translate(-50%, -50%) !important;
  border-radius: 999px !important;
  background: radial-gradient(
    circle,
    rgba(222, 113, 13, .12) 0%,
    rgba(222, 113, 13, .18) 34%,
    rgba(222, 113, 13, .34) 64%,
    rgba(222, 113, 13, .24) 78%,
    rgba(222, 113, 13, 0) 100%
  ) !important;
  border: 0 !important;
  box-shadow: none !important;
  pointer-events: none !important;
  z-index: 0 !important;
}

.rsfiles-hits-module.pg-rsf-module--hits .pg-rsf-list__icon i,
.rsfiles-hits-module.pg-rsf-module--hits .pg-rsf-list__icon .fa {
  position: relative !important;
  z-index: 1 !important;
  background: transparent !important;
  background-image: none !important;
  color: inherit !important;
  box-shadow: none !important;
  border: 0 !important;
}

.rsfiles-hits-module.pg-rsf-module--hits .pg-rsf-list__icon i::before {
  background: transparent !important;
  background-image: none !important;
  color: inherit !important;
  box-shadow: none !important;
  border: 0 !important;
}

.rsfiles-hits-module.pg-rsf-module--hits .pg-rsf-list__icon::after {
  display: none !important;
  content: none !important;
}

.rsfiles-hits-module.pg-rsf-module--hits .pg-rsf-list__content {
  display: flex !important;
  flex-direction: column !important;
  min-width: 0 !important;
  width: 100% !important;
  position: relative !important;
  z-index: 1 !important;
}

.rsfiles-hits-module.pg-rsf-module--hits .pg-rsf-list__title {
  display: block !important;
  margin: 0 !important;
  color: var(--pg-rsf-title) !important;
  font-weight: 700 !important;
  font-size: .94rem !important;
  line-height: 1.28 !important;
  min-width: 0 !important;
  overflow-wrap: anywhere !important;
}

.rsfiles-hits-module.pg-rsf-module--hits .pg-rsf-list__link:hover .pg-rsf-list__title,
.rsfiles-hits-module.pg-rsf-module--hits .pg-rsf-list__link:focus .pg-rsf-list__title {
  color: var(--pg-rsf-orange) !important;
  text-decoration: underline !important;
  text-decoration-thickness: .08em !important;
  text-underline-offset: .18em !important;
}

.rsfiles-hits-module.pg-rsf-module--hits .pg-rsf-list__meta {
  display: flex !important;
  justify-content: flex-end !important;
  align-items: center !important;
  width: 100% !important;
  margin-top: .38rem !important;
  color: var(--pg-rsf-muted) !important;
  font-size: .82rem !important;
  line-height: 1.2 !important;
}

.rsfiles-hits-module.pg-rsf-module--hits .pg-rsf-list__stat {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin-left: auto !important;
  padding: .18rem .48rem !important;
  border-radius: 999px !important;
  background: rgba(29, 121, 137, .08) !important;
  color: var(--pg-rsf-muted) !important;
  text-align: right !important;
  white-space: nowrap !important;
  font-weight: 600 !important;
}

.rsfiles-hits-module.pg-rsf-module--hits .pg-rsf-list__clear {
  display: none !important;
}

@media (max-width: 480px) {
  .rsfiles-hits-module.pg-rsf-module--hits .pg-rsf-list__link {
    grid-template-columns: 1.25rem minmax(0, 1fr) !important;
    gap: .5rem !important;
    padding: .68rem .7rem .68rem .95rem !important;
  }

  .rsfiles-hits-module.pg-rsf-module--hits .pg-rsf-list__icon {
    width: 1.25rem !important;
    min-width: 1.25rem !important;
    height: 1.25rem !important;
    font-size: .9rem !important;
  }

  .rsfiles-hits-module.pg-rsf-module--hits .pg-rsf-list__icon::before {
    width: 1.5rem !important;
    height: 1.5rem !important;
  }
}

/* =========================================================
   PortalGraf · Temas / com_tags · bloque consolidado
   Índice: /temas
   Tema:   /temas/{etiqueta}
   Equivalencia visual con la versión estable de 2026-07-14
   ========================================================= */

/* Variables comunes */
body.com_tags.view-tags .container-component main > .com-tags,
body.com_tags.view-tag .container-component main > .com-tags-tag {
  --pg-tags-teal: #1d7989;
  --pg-tags-teal-dark: #176b78;
  --pg-tags-orange: #de710d;
  --pg-tags-border: rgba(29, 121, 137, .16);
  --pg-tags-shadow: 0 8px 22px rgba(0, 0, 0, .045);
}

/* Contexto superior */
body.com_tags.view-tags .container-component main > .com-tags::before,
body.com_tags.view-tag .container-component main > .com-tags-tag::before {
  display: block;
  margin: 0 0 .45rem;
  color: var(--pg-tags-teal);
  font-size: .82rem;
  font-weight: 700;
  letter-spacing: .045em;
  text-transform: uppercase;
}

body.com_tags.view-tags .container-component main > .com-tags::before {
  content: "PortalGraf · Temas";
}

body.com_tags.view-tag .container-component main > .com-tags-tag::before {
  content: "PortalGraf · Tema";
}

/* Normalización del contenedor page-header */
body.com_tags.view-tags .com-tags > .page-header,
body.com_tags.view-tag .com-tags-tag > .page-header {
  margin: 0;
  padding: 0;
  border: 0;
}

/* Cabecera funcional común */
body.com_tags.view-tags .com-tags > h1,
body.com_tags.view-tags .com-tags > .page-header h1,
body.com_tags.view-tag .com-tags-tag > h1,
body.com_tags.view-tag .com-tags-tag > .page-header h1 {
  margin: 0 0 1.1rem;
  padding: 1.15rem 1.25rem 1.2rem;
  border: 0 !important;
  border-left: 5px solid var(--pg-tags-orange) !important;
  border-radius: 1rem !important;
  background:
    linear-gradient(
      135deg,
      rgba(29, 121, 137, .98),
      rgba(29, 121, 137, .84) 48%,
      rgba(222, 113, 13, .9)
    ) !important;
  color: #fff;
  box-shadow: var(--pg-tags-shadow) !important;
  font-size: clamp(1.65rem, 2vw, 2rem);
  line-height: 1.18;
}

/* Textos auxiliares de cabecera */
body.com_tags.view-tags .com-tags > h1::after,
body.com_tags.view-tags .com-tags > .page-header h1::after,
body.com_tags.view-tag .com-tags-tag > h1::after,
body.com_tags.view-tag .com-tags-tag > .page-header h1::after {
  display: block;
  max-width: 58rem;
  margin-top: .55rem;
  color: rgba(255, 255, 255, .92);
  font-size: .98rem;
  font-weight: 400;
  line-height: 1.55;
  letter-spacing: 0;
  text-transform: none;
}

body.com_tags.view-tags .com-tags > h1::after,
body.com_tags.view-tags .com-tags > .page-header h1::after {
  content: "Explora contenidos agrupados por temas técnicos de impresión, preimpresión, postimpresión, calidad, normas y recursos profesionales de artes gráficas.";
}

body.com_tags.view-tag .com-tags-tag > h1::after,
body.com_tags.view-tag .com-tags-tag > .page-header h1::after {
  content: "Contenidos relacionados con este tema dentro de PortalGraf.";
}

/* Contenedor de contenido */
body.com_tags.view-tags .com-tags__items,
body.com_tags.view-tag .com-tags__items {
  display: block;
}

/* Formulario: estructura transparente */
body.com_tags.view-tags .com-tags__items > form#adminForm,
body.com_tags.view-tag .com-tags__items > form#adminForm {
  display: grid !important;
  grid-template-columns: 1fr;
  gap: .85rem !important;
  align-items: start;
  margin: 0 0 1rem !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

/* Caja visual del filtro */
body.com_tags.view-tags .com-tags-tags__filter.btn-group,
body.com_tags.view-tag .com-tags-tags__filter.btn-group {
  display: flex !important;
  flex-wrap: wrap;
  align-items: center !important;
  gap: .45rem;
  width: 100%;
  margin: 0 !important;
  padding: .85rem .9rem !important;
  border: 1px solid var(--pg-tags-border) !important;
  border-radius: .85rem;
  background: #fff !important;
  box-shadow: 0 4px 14px rgba(0, 0, 0, .035) !important;
}

/* Campo y acciones del filtro */
body.com_tags.view-tags .com-tags-tags__filter .inputbox,
body.com_tags.view-tag .com-tags-tags__filter .inputbox {
  flex: 1 1 18rem;
  min-width: min(100%, 18rem);
  min-height: 2.45rem;
  padding: .375rem .75rem;
  border: 1px solid rgba(29, 121, 137, .22);
  border-radius: .45rem;
  background: #fff;
  box-shadow: none;
}

body.com_tags.view-tags .com-tags-tags__filter .btn,
body.com_tags.view-tag .com-tags-tags__filter .btn {
  display: inline-flex;
  align-items: center;
  min-height: 2.45rem;
  border-radius: .45rem;
}

/* Selector de cantidad separado, debajo y a la derecha */
body.com_tags.view-tags .com-tags__items > form#adminForm > .btn-group.float-end,
body.com_tags.view-tag .com-tags__items > form#adminForm > .btn-group.float-end {
  float: none !important;
  justify-self: end;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end;
  width: auto;
  margin: .15rem 0 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.com_tags.view-tags .com-tags__items > form#adminForm > .btn-group.float-end .form-select,
body.com_tags.view-tag .com-tags__items > form#adminForm > .btn-group.float-end .form-select {
  display: flex;
  align-items: center;
  width: auto;
  min-width: 5.5rem;
  max-width: 8rem;
  min-height: 2.45rem;
  padding-top: .375rem;
  padding-bottom: .375rem;
  border: 1px solid rgba(29, 121, 137, .22);
  border-radius: .45rem;
  background-color: #fff;
}

/* Índice /temas: cuadrícula de etiquetas */
body.com_tags.view-tags .com-tags__category {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(215px, 1fr));
  gap: .75rem;
  margin: 0 0 .75rem;
  padding: 0;
  list-style: none;
}

body.com_tags.view-tags .com-tags__category > .list-group-item {
  display: block;
  padding: 0;
  border: 1px solid var(--pg-tags-border);
  border-radius: .85rem;
  background: #fff;
  box-shadow: 0 4px 14px rgba(0, 0, 0, .035);
  transition:
    transform .16s ease,
    box-shadow .16s ease,
    border-color .16s ease,
    background-color .16s ease;
}

body.com_tags.view-tags .com-tags__category > .list-group-item:hover,
body.com_tags.view-tags .com-tags__category > .list-group-item:focus-within {
  transform: translateY(-1px);
  border-color: rgba(222, 113, 13, .38);
  background: linear-gradient(180deg, #fff 0%, rgba(29, 121, 137, .045) 100%);
  box-shadow: 0 8px 20px rgba(0, 0, 0, .055);
}

body.com_tags.view-tags .com-tags__category h3 {
  margin: 0;
  font-size: 1rem;
  line-height: 1.35;
}

body.com_tags.view-tags .com-tags__category h3 a {
  display: block;
  padding: .78rem .92rem;
  color: var(--pg-tags-teal-dark);
  font-weight: 700;
  text-decoration: none;
}

body.com_tags.view-tags .com-tags__category h3 a::before {
  content: "#";
  margin-right: .22rem;
  color: var(--pg-tags-orange);
  font-weight: 800;
}

body.com_tags.view-tags .com-tags__category h3 a:hover,
body.com_tags.view-tags .com-tags__category h3 a:focus {
  color: var(--pg-tags-orange);
  text-decoration: none;
}

/* Tema individual: contenidos relacionados */
body.com_tags.view-tag .com-tags-tag__category,
body.com_tags.view-tag .com-tags__category {
  display: grid;
  grid-template-columns: 1fr;
  gap: .75rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

body.com_tags.view-tag .com-tags-tag__category > .list-group-item,
body.com_tags.view-tag .com-tags__category > .list-group-item {
  display: block;
  padding: .95rem 1rem;
  border: 1px solid var(--pg-tags-border);
  border-radius: .85rem;
  background: #fff;
  box-shadow: 0 4px 14px rgba(0, 0, 0, .035);
  transition:
    transform .16s ease,
    box-shadow .16s ease,
    border-color .16s ease,
    background-color .16s ease;
}

body.com_tags.view-tag .com-tags-tag__category > .list-group-item:hover,
body.com_tags.view-tag .com-tags-tag__category > .list-group-item:focus-within,
body.com_tags.view-tag .com-tags__category > .list-group-item:hover,
body.com_tags.view-tag .com-tags__category > .list-group-item:focus-within {
  transform: translateY(-1px);
  border-color: rgba(222, 113, 13, .38);
  background: linear-gradient(180deg, #fff 0%, rgba(29, 121, 137, .045) 100%);
  box-shadow: 0 8px 20px rgba(0, 0, 0, .055);
}

body.com_tags.view-tag .com-tags-tag__category h3,
body.com_tags.view-tag .com-tags__category h3 {
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.35;
}

body.com_tags.view-tag .com-tags-tag__category h3 a,
body.com_tags.view-tag .com-tags__category h3 a {
  color: var(--pg-tags-teal-dark);
  font-weight: 700;
  text-decoration: none;
}

body.com_tags.view-tag .com-tags-tag__category h3 a:hover,
body.com_tags.view-tag .com-tags-tag__category h3 a:focus,
body.com_tags.view-tag .com-tags__category h3 a:hover,
body.com_tags.view-tag .com-tags__category h3 a:focus {
  color: var(--pg-tags-orange);
  text-decoration: none;
}

/* Paginación */
body.com_tags.view-tags .com-tags__pagination,
body.com_tags.view-tag .com-tags__pagination {
  margin-top: .85rem;
}

body.com_tags.view-tags .com-tags__pagination .counter,
body.com_tags.view-tag .com-tags__pagination .counter {
  margin: 0 0 .65rem;
  color: #666;
  font-size: .88rem;
}

body.com_tags.view-tags .pagination__wrapper,
body.com_tags.view-tag .pagination__wrapper {
  clear: both;
}

/* Responsive */
@media (max-width: 767.98px) {
  body.com_tags.view-tags .com-tags-tags__filter.btn-group,
  body.com_tags.view-tag .com-tags-tags__filter.btn-group {
    display: grid !important;
    grid-template-columns: 1fr;
    gap: .5rem;
  }

  body.com_tags.view-tags .com-tags-tags__filter .inputbox,
  body.com_tags.view-tag .com-tags-tags__filter .inputbox,
  body.com_tags.view-tags .com-tags-tags__filter .btn,
  body.com_tags.view-tag .com-tags-tags__filter .btn {
    width: 100%;
  }

  body.com_tags.view-tags .com-tags__items > form#adminForm > .btn-group.float-end,
  body.com_tags.view-tag .com-tags__items > form#adminForm > .btn-group.float-end {
    justify-self: end;
    width: auto;
  }

  body.com_tags.view-tags .com-tags > h1,
  body.com_tags.view-tags .com-tags > .page-header h1,
  body.com_tags.view-tag .com-tags-tag > h1,
  body.com_tags.view-tag .com-tags-tag > .page-header h1 {
    padding: 1rem;
    border-radius: .9rem !important;
    font-size: 1.45rem;
  }

  body.com_tags.view-tags .com-tags > h1::after,
  body.com_tags.view-tags .com-tags > .page-header h1::after,
  body.com_tags.view-tag .com-tags-tag > h1::after,
  body.com_tags.view-tag .com-tags-tag > .page-header h1::after {
    font-size: .94rem;
  }
}

/* Landing Foro de artes gráficas: CTA final */
body.itemid-338 .pg-forum-final-cta {
  margin-top: 1.35rem;
}

body.itemid-338 .pg-forum-final-cta .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .68rem 1.05rem;
  border: 1px solid rgba(29, 121, 137, .28);
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(29, 121, 137, .08), rgba(222, 113, 13, .06));
  color: #1d7989;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
  box-shadow: none;
}

body.itemid-338 .pg-forum-final-cta .btn:hover,
body.itemid-338 .pg-forum-final-cta .btn:focus {
  border-color: rgba(222, 113, 13, .45);
  background: linear-gradient(90deg, rgba(29, 121, 137, .12), rgba(222, 113, 13, .10));
  color: #832320;
  text-decoration: none;
  box-shadow: 0 4px 12px rgba(15, 23, 42, .08);
}


/* =========================================================
   RSFiles / Bootstrap modal
   Evitar salto lateral por compensación automática de scrollbar
   ========================================================= */

body.com_rsfiles.modal-open,
body.com_rsfiles[style*="padding-right"] {
  padding-right: 0 !important;
}

/* =========================================================
   PortalGraf · Login general Joomla
   Vista: com_users.view-login
   ========================================================= */

body.com_users.view-login .container-component main {
  margin-top: 0;
}

/* Cabecera visual PortalGraf */
body.com_users.view-login .container-component .page-header {
  position: relative;
  margin: 0 0 1.25rem;
  padding: 2.55rem clamp(1.1rem, 2.6vw, 1.6rem) 1.25rem;
  border: 0;
  border-left: .28rem solid #de710d;
  border-radius: 1rem;
  background:
    linear-gradient(112deg, #176b78 0%, #1d7989 53%, #2a7f84 72%, #bd5a0d 100%);
  box-shadow: 0 .24rem .7rem rgba(18, 53, 60, .08);
  color: #fff;
}

body.com_users.view-login .container-component .page-header::before {
  content: var(--pg-page-context, "PortalGraf · Cuenta");
  position: absolute;
  top: 1rem;
  left: clamp(1.1rem, 2.6vw, 1.6rem);
  font-size: .78rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .84);
}

body.com_users.view-login .container-component .page-header h1 {
  margin: 0;
  color: #fff;
  font-size: clamp(1.55rem, 2vw, 2rem);
  font-weight: 700;
  line-height: 1.18;
}

/* Contenedor del login */
body.com_users.view-login .com-users-login.login {
  max-width: 46rem;
}

/* Tarjeta del formulario */
body.com_users.view-login .com-users-login__form {
  margin: 0 0 1rem;
  padding: clamp(1.15rem, 2.5vw, 1.45rem);
  border: 1px solid rgba(29, 121, 137, .16);
  border-radius: 1rem;
  background: #fff;
  box-shadow: 0 .15rem .6rem rgba(22, 52, 58, .045);
}

body.com_users.view-login .com-users-login__form fieldset {
  margin: 0;
}

body.com_users.view-login .com-users-login__input {
  margin-bottom: 1rem;
}

body.com_users.view-login .com-users-login__input .control-label {
  margin-bottom: .38rem;
}

body.com_users.view-login .com-users-login__input label {
  color: #283b3f;
  font-weight: 650;
}

body.com_users.view-login .com-users-login__input .star {
  color: #de710d;
}

/* Campos */
body.com_users.view-login .com-users-login__form .form-control {
  min-height: 2.7rem;
  border-color: rgba(29, 121, 137, .24);
  border-radius: .62rem;
  background: #fff;
}

body.com_users.view-login .com-users-login__form .form-control:focus {
  border-color: #1d7989;
  box-shadow: 0 0 0 .2rem rgba(29, 121, 137, .14);
}

/* Botón mostrar contraseña */
body.com_users.view-login .password-group .input-password-toggle {
  border-color: rgba(29, 121, 137, .24);
  border-radius: 0 .62rem .62rem 0;
  background: #f4f8f8;
  color: #1d7989;
}

body.com_users.view-login .password-group .input-password-toggle:hover,
body.com_users.view-login .password-group .input-password-toggle:focus {
  border-color: #1d7989;
  background: rgba(29, 121, 137, .09);
  color: #176b78;
}

/* Recordarme */
body.com_users.view-login .com-users-login__remember {
  margin: .2rem 0 1.15rem;
}

body.com_users.view-login .com-users-login__remember .form-check-input:checked {
  border-color: #1d7989;
  background-color: #1d7989;
}

/* Acción principal */
body.com_users.view-login .com-users-login__submit .btn-primary {
  min-width: 9.5rem;
  padding: .66rem 1.25rem;
  border: 1px solid #de710d;
  border-radius: .65rem;
  background: #de710d;
  font-weight: 650;
}

body.com_users.view-login .com-users-login__submit .btn-primary:hover,
body.com_users.view-login .com-users-login__submit .btn-primary:focus {
  border-color: #833020;
  background: #833020;
}

/* Opciones inferiores */
body.com_users.view-login .com-users-login__options {
  display: grid;
  gap: .45rem;
  margin-top: 1rem;
  border: 0;
}

body.com_users.view-login .com-users-login__options .list-group-item {
  padding: .72rem .9rem;
  border: 1px solid rgba(29, 121, 137, .14);
  border-radius: .65rem !important;
  background: #fff;
  color: #1d7989;
  transition: background-color .16s ease, border-color .16s ease, color .16s ease;
}

body.com_users.view-login .com-users-login__options .list-group-item:hover,
body.com_users.view-login .com-users-login__options .list-group-item:focus {
  border-color: rgba(222, 113, 13, .34);
  background: rgba(222, 113, 13, .055);
  color: #de710d;
}

/* Responsive */
@media (max-width: 575.98px) {
  body.com_users.view-login .container-component .page-header {
    padding-top: 2.4rem;
  }

  body.com_users.view-login .com-users-login__form {
    padding: 1rem;
  }

  body.com_users.view-login .com-users-login__submit .btn-primary {
    width: 100%;
  }
}

/* Texto introductorio del login */
body.com_users.view-login .com-users-login__description.login-description {
  margin: 0 0 1rem;
  padding: .82rem 1rem;
  border: 1px solid rgba(29, 121, 137, .14);
  border-left: .22rem solid #de710d;
  border-radius: .68rem;
  background: rgba(29, 121, 137, .045);
  color: #43555a;
  font-size: .97rem;
  line-height: 1.58;
}

body.com_users.view-login .com-users-login__description.login-description p {
  margin: 0;
}

/* =========================================================
   20.1 Login general producción · estructura real de Joomla
   Ruta: /login · Itemid 365
   ========================================================= */

/* El layout actual no imprime .page-header: contexto sobre el contenedor real. */
body.com_users.view-login.itemid-365 .com-users-login.login::before {
  content: var(--pg-page-context, "PortalGraf · Cuenta");
  display: block;
  margin: 0 0 .55rem;
  font-size: .84rem;
  font-weight: 700;
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: .045em;
  color: var(--pg-teal, #1d7989);
}

/* La descripción nativa funciona como cabecera visible de la página. */
body.com_users.view-login.itemid-365 .com-users-login__description.login-description {
  position: relative;
  margin: 0 0 1rem;
  padding: 3.15rem 1.25rem 1.1rem;
  border: 1px solid rgba(29, 121, 137, .16);
  border-radius: 1rem;
  background: linear-gradient(135deg, rgba(29, 121, 137, .08), rgba(222, 113, 13, .08));
  box-shadow: var(--pg-soft-shadow, 0 8px 22px rgba(15, 23, 42, .04));
  color: var(--pg-muted, #667085);
  font-size: .97rem;
  line-height: 1.58;
}

/* H1 visual: la vista actual de com_users no lo incorpora en el HTML. */
body.com_users.view-login.itemid-365 .com-users-login__description.login-description::before {
  content: "Iniciar sesión";
  position: absolute;
  top: 1.05rem;
  left: 1.25rem;
  right: 1.25rem;
  color: var(--pg-text, #172033);
  font-size: clamp(1.35rem, 2vw, 1.85rem);
  font-weight: 700;
  line-height: 1.2;
}

body.com_users.view-login.itemid-365 .com-users-login.login {
  max-width: 46rem;
}

@media (max-width: 640px) {
  body.com_users.view-login.itemid-365 .com-users-login.login::before {
    font-size: .78rem;
    letter-spacing: .035em;
  }

  body.com_users.view-login.itemid-365 .com-users-login__description.login-description {
    padding: 2.95rem 1rem 1rem;
    border-radius: .9rem;
  }

  body.com_users.view-login.itemid-365 .com-users-login__description.login-description::before {
    top: .95rem;
    left: 1rem;
    right: 1rem;
    font-size: 1.35rem;
  }
}

/* =========================================================
   PortalGraf · RSFiles · estilos extraídos de overrides PHP
   Fase 3 · listado, ficha, detalles y validación CAPTCHA
   ========================================================= */

/* Listado /descargas */
body.com_rsfiles .pg-rsfiles { --pg-rsf-border: rgba(0,0,0,.10); --pg-rsf-muted: #667085; --pg-rsf-soft: #f7f9fb; --pg-rsf-title: #172033; }
body.com_rsfiles .pg-rsfiles a { text-decoration-thickness: .08em; text-underline-offset: .18em; }
body.com_rsfiles .pg-rsfiles-context { margin: 0 0 .55rem; font-size: .84rem; font-weight: 700; text-transform: uppercase; letter-spacing: .045em; color: var(--link-color, #1d7989); }
body.com_rsfiles .pg-rsfiles-hero { border: 1px solid var(--pg-rsf-border); border-radius: 1rem; padding: 1.15rem 1.25rem; margin: 0 0 1rem; background: linear-gradient(135deg, rgba(29,121,137,.08), rgba(222,113,13,.08)); box-shadow: 0 8px 22px rgba(15, 23, 42, .04); }
body.com_rsfiles .pg-rsfiles-hero__title { margin: 0 0 .35rem; font-size: clamp(1.35rem, 2vw, 1.85rem); line-height: 1.2; color: var(--pg-rsf-title); }
body.com_rsfiles .pg-rsfiles-hero__text { margin: 0; color: var(--pg-rsf-muted); max-width: 74ch; }
body.com_rsfiles .pg-rsfiles-toolbar { border-top: 1px solid var(--pg-rsf-border); padding-top: .85rem; margin: .25rem 0 1rem; }
body.com_rsfiles .pg-rsfiles-toolbar > ul { margin-bottom: .65rem; }
body.com_rsfiles .pg-rsfiles .com-rsfiles-files_navigation { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; justify-content: space-between; margin: 1rem 0; }
body.com_rsfiles .pg-rsfiles .com-rsfiles-files_counter { margin: 0; color: var(--pg-rsf-muted); }
body.com_rsfiles .pg-rsfiles-list { display: grid; gap: 1rem; margin: 1rem 0; }
body.com_rsfiles .pg-rsfiles-card { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 1rem; border: 1px solid var(--pg-rsf-border); border-radius: 1rem; background: #fff; padding: 1rem; box-shadow: 0 8px 22px rgba(15, 23, 42, .04); }
body.com_rsfiles .pg-rsfiles-card__icon { width: 3.25rem; height: 3.25rem; border-radius: .9rem; display: grid; place-items: center; background: var(--pg-rsf-soft); color: var(--link-color, #1d7989); font-size: 1.5rem; }
body.com_rsfiles .pg-rsfiles-card__body { min-width: 0; }
body.com_rsfiles .pg-rsfiles-card__title { margin: 0 0 .35rem; font-size: 1.15rem; line-height: 1.3; }
body.com_rsfiles .pg-rsfiles-card__title a { color: inherit; text-decoration: none; }
body.com_rsfiles .pg-rsfiles-card__title a:hover { color: var(--link-hover-color, #de710d); text-decoration: underline; }
body.com_rsfiles .pg-rsfiles-card__badges, body.com_rsfiles .pg-rsfiles-card__meta, body.com_rsfiles .pg-rsfiles-card__actions, body.com_rsfiles .pg-rsfiles-card__rating { display: flex; flex-wrap: wrap; gap: .45rem; align-items: center; }
body.com_rsfiles .pg-rsfiles-card__badges { margin: .35rem 0; }
body.com_rsfiles .pg-rsfiles-card__meta { margin: .55rem 0 0; color: var(--pg-rsf-muted); font-size: .92rem; }
body.com_rsfiles .pg-rsfiles-card__meta span { display: inline-flex; gap: .3rem; align-items: center; }
body.com_rsfiles .pg-rsfiles-card__actions { margin-top: .85rem; }
body.com_rsfiles .pg-rsfiles-card__actions .btn { border-radius: 999px; }
body.com_rsfiles .pg-rsfiles-card__icon-actions a { display: inline-flex; align-items: center; justify-content: center; width: 2.15rem; height: 2.15rem; border: 1px solid var(--pg-rsf-border); border-radius: 999px; color: var(--pg-rsf-muted); text-decoration: none; }
body.com_rsfiles .pg-rsfiles-card__icon-actions a:hover { color: var(--link-hover-color, #de710d); border-color: currentColor; }
body.com_rsfiles .pg-rsfiles-empty { border: 1px dashed var(--pg-rsf-border); border-radius: 1rem; padding: 1rem; background: var(--pg-rsf-soft); }
@media (max-width: 640px) { .pg-rsfiles-card { grid-template-columns: 1fr; } .pg-rsfiles-card__icon { width: 2.8rem; height: 2.8rem; } }

/* Detalles layout-details */
body.com_rsfiles .pg-rsfiles-detail { --pg-rsf-border: rgba(0,0,0,.10); --pg-rsf-muted: #667085; --pg-rsf-soft: #f7f9fb; --pg-rsf-title: #172033; }
body.com_rsfiles .pg-rsfiles-context { margin: 0 0 .55rem; font-size: .84rem; font-weight: 700; text-transform: uppercase; letter-spacing: .045em; color: var(--link-color, #1d7989); }
body.com_rsfiles .pg-rsfiles-detail__hero { border: 1px solid var(--pg-rsf-border); border-radius: 1rem; padding: 1.15rem 1.25rem; margin: 0 0 1rem; background: linear-gradient(135deg, rgba(29,121,137,.08), rgba(222,113,13,.08)); box-shadow: 0 8px 22px rgba(15, 23, 42, .04); }
body.com_rsfiles .pg-rsfiles-detail__title { margin: 0 0 .35rem; font-size: clamp(1.35rem, 2vw, 1.85rem); line-height: 1.2; color: var(--pg-rsf-title); }
body.com_rsfiles .pg-rsfiles-detail__text { margin: 0; color: var(--pg-rsf-muted); max-width: 74ch; }
body.com_rsfiles .pg-rsfiles-detail__toolbar { border-top: 1px solid var(--pg-rsf-border); padding-top: .85rem; margin: .25rem 0 1rem; }
body.com_rsfiles .pg-rsfiles-detail__grid { display: grid; grid-template-columns: 1fr; gap: 1rem; align-items: start; }
body.com_rsfiles .pg-rsfiles-detail__card { border: 1px solid var(--pg-rsf-border); border-radius: 1rem; background: #fff; padding: 1rem; box-shadow: 0 8px 22px rgba(15, 23, 42, .04); }
body.com_rsfiles .pg-rsfiles-detail__card--meta { background: #fff; }
body.com_rsfiles .pg-rsfiles-detail__card h2 { margin: 0 0 .75rem; font-size: 1.15rem; }
body.com_rsfiles .pg-rsfiles-detail__description { color: #2f3948; }
body.com_rsfiles .pg-rsfiles-detail__description > :last-child { margin-bottom: 0; }
body.com_rsfiles .pg-rsfiles-detail__meta { display: grid; grid-template-columns: 1fr; gap: .65rem; margin: 0; }
body.com_rsfiles .pg-rsfiles-detail__meta-row { display: block; padding: .8rem .85rem; border: 1px solid rgba(0,0,0,.07); border-radius: .75rem; background: var(--pg-rsf-soft); min-width: 0; }
body.com_rsfiles .pg-rsfiles-detail__meta-row:last-child { border-bottom: 1px solid rgba(0,0,0,.07); padding-bottom: .7rem; }
body.com_rsfiles .pg-rsfiles-detail__meta dt { display: block; margin: 0 0 .2rem; font-weight: 700; color: #344054; font-size: .9rem; line-height: 1.25; }
body.com_rsfiles .pg-rsfiles-detail__meta dd { display: block; margin: 0; color: var(--pg-rsf-muted); overflow-wrap: anywhere; word-break: normal; line-height: 1.35; }
body.com_rsfiles .pg-rsfiles-detail__thumb { text-align: center; margin-bottom: 1rem; }
body.com_rsfiles .pg-rsfiles-detail__thumb img { max-width: 100%; height: auto; border-radius: .75rem; }
@media (max-width: 640px) { .pg-rsfiles-detail__hero { padding: 1rem; } }

/* Ficha layout-download */
body.com_rsfiles .pg-rsfiles-info { --pg-rsf-border: rgba(0,0,0,.10); --pg-rsf-muted: #667085; --pg-rsf-soft: #f7f9fb; --pg-rsf-title: #172033; }
body.com_rsfiles .pg-rsfiles-info a { text-decoration-thickness: .08em; text-underline-offset: .18em; }
body.com_rsfiles .pg-rsfiles-context { margin: 0 0 .55rem; font-size: .84rem; font-weight: 700; text-transform: uppercase; letter-spacing: .045em; color: var(--link-color, #1d7989); }
body.com_rsfiles .pg-rsfiles-info__hero { border: 1px solid var(--pg-rsf-border); border-radius: 1rem; padding: 1.15rem 1.25rem; margin: 0 0 1rem; background: linear-gradient(135deg, rgba(29,121,137,.08), rgba(222,113,13,.08)); box-shadow: 0 8px 22px rgba(15, 23, 42, .04); }
body.com_rsfiles .pg-rsfiles-info__title { margin: 0 0 .35rem; font-size: clamp(1.35rem, 2vw, 1.9rem); line-height: 1.2; color: var(--pg-rsf-title); }
body.com_rsfiles .pg-rsfiles-info__lead { margin: 0; color: var(--pg-rsf-muted); max-width: 74ch; }
body.com_rsfiles .pg-rsfiles-info__toolbar { border-top: 1px solid var(--pg-rsf-border); padding-top: .85rem; margin: .25rem 0 1rem; }
body.com_rsfiles .pg-rsfiles-info__toolbar > ul { margin-bottom: .65rem; }
body.com_rsfiles .pg-rsfiles-info__stack { display: grid; gap: 1rem; }
body.com_rsfiles .pg-rsfiles-info__card { border: 1px solid var(--pg-rsf-border); border-radius: 1rem; background: #fff; padding: 1rem; box-shadow: 0 8px 22px rgba(15, 23, 42, .04); }
body.com_rsfiles .pg-rsfiles-info__card h2 { margin: 0 0 .75rem; font-size: 1.15rem; color: var(--pg-rsf-title); }
body.com_rsfiles .pg-rsfiles-info__download { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 1rem; align-items: center; background: #fff; }
body.com_rsfiles .pg-rsfiles-info__download-text { margin: 0; color: var(--pg-rsf-muted); }
body.com_rsfiles .pg-rsfiles-info__download-actions { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; justify-content: flex-end; }
body.com_rsfiles .pg-rsfiles-info__download-actions .btn { border-radius: 999px; }
body.com_rsfiles .pg-rsfiles-info__meta-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: .65rem; margin: 0; }
body.com_rsfiles .pg-rsfiles-info__meta-item { display: block; padding: .8rem .85rem; border: 1px solid rgba(0,0,0,.07); border-radius: .75rem; background: var(--pg-rsf-soft); min-width: 0; }
body.com_rsfiles .pg-rsfiles-info__meta-item dt { margin: 0 0 .22rem; font-weight: 700; color: #344054; font-size: .9rem; line-height: 1.25; }
body.com_rsfiles .pg-rsfiles-info__meta-item dd { margin: 0; color: var(--pg-rsf-muted); overflow-wrap: anywhere; line-height: 1.35; }
body.com_rsfiles .pg-rsfiles-info__description { color: #2f3948; }
body.com_rsfiles .pg-rsfiles-info__description > :last-child { margin-bottom: 0; }
body.com_rsfiles .pg-rsfiles-info__screenshots { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: .75rem; margin: 0; padding: 0; list-style: none; }
body.com_rsfiles .pg-rsfiles-info__screenshots a { display: block; border: 1px solid var(--pg-rsf-border); border-radius: .75rem; overflow: hidden; background: var(--pg-rsf-soft); }
body.com_rsfiles .pg-rsfiles-info__screenshots img { width: 100%; height: auto; display: block; }
body.com_rsfiles .pg-rsfiles-info__notice { margin: 0; color: var(--pg-rsf-muted); }
@media (max-width: 720px) { .pg-rsfiles-info__download { grid-template-columns: 1fr; } .pg-rsfiles-info__download-actions { justify-content: flex-start; } .pg-rsfiles-info__hero { padding: 1rem; } }

/* =========================================================
   PortalGraf · RSFiles · Marcadores
   Vista: layout-bookmarks
   ========================================================= */

body.com_rsfiles.layout-bookmarks .container-component main > .rsfiles-layout {
  --pg-rsf-border: rgba(29, 121, 137, .16);
  --pg-rsf-muted: #667085;
  --pg-rsf-teal: var(--pg-teal, #1d7989);
  --pg-rsf-orange: var(--pg-orange, #de710d);
  overflow: hidden;
  border: 1px solid var(--pg-rsf-border);
  border-radius: 1rem;
  background: #fff;
  box-shadow: 0 8px 22px rgba(15, 23, 42, .04);
}

body.com_rsfiles.layout-bookmarks .rsfiles-layout > form {
  margin: 0;
}

body.com_rsfiles.layout-bookmarks .rsfiles-layout > form > .clearfix {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .65rem;
  margin: 0 1rem;
  padding: 1rem 0;
  border-bottom: 1px solid rgba(29, 121, 137, .14);
}

body.com_rsfiles.layout-bookmarks .rsfiles-layout > form > .clearfix .float-start,
body.com_rsfiles.layout-bookmarks .rsfiles-layout > form > .clearfix .float-end {
  float: none !important;
}

body.com_rsfiles.layout-bookmarks .rsfiles-layout > form > .clearfix .float-end {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin-left: auto;
}

body.com_rsfiles.layout-bookmarks .rsfiles-layout > form > br {
  display: none;
}

body.com_rsfiles.layout-bookmarks .rsfiles-layout .btn {
  border-radius: 999px;
}

body.com_rsfiles.layout-bookmarks .rsfiles-layout .btn-info {
  border: 1px solid rgba(29, 121, 137, .24);
  background: #fff;
  color: var(--pg-rsf-teal);
}

body.com_rsfiles.layout-bookmarks .rsfiles-layout .btn-info:hover,
body.com_rsfiles.layout-bookmarks .rsfiles-layout .btn-info:focus {
  border-color: var(--pg-rsf-teal);
  background: rgba(29, 121, 137, .07);
  color: var(--pg-rsf-teal);
}

body.com_rsfiles.layout-bookmarks .rsfiles-layout .btn-danger {
  border-color: #c62828;
  background: #c62828;
  color: #fff;
}

body.com_rsfiles.layout-bookmarks #bookmarksTable {
  width: calc(100% - 2rem);
  margin: 1rem;
  border: 1px solid rgba(29, 121, 137, .12);
  border-collapse: separate;
  border-spacing: 0;
  border-radius: .85rem;
  overflow: hidden;
  background: #fff;
}

body.com_rsfiles.layout-bookmarks #bookmarksTable thead th {
  padding: .75rem .8rem;
  border: 0;
  background:
    linear-gradient(90deg, rgba(29, 121, 137, .045), rgba(222, 113, 13, .055)),
    #fff;
  color: #172033;
  font-weight: 700;
  vertical-align: middle;
}

body.com_rsfiles.layout-bookmarks #bookmarksTable tbody td {
  padding: .75rem .8rem;
  vertical-align: middle;
}

body.com_rsfiles.layout-bookmarks #bookmarksTable tbody:empty::after {
  content: "No hay archivos guardados en marcadores.";
  display: table-cell;
  padding: 1rem;
  color: var(--pg-rsf-muted);
  text-align: center;
}

@media (max-width: 767.98px) {
  body.com_rsfiles.layout-bookmarks .rsfiles-layout > form > .clearfix {
    align-items: stretch;
  }

  body.com_rsfiles.layout-bookmarks .rsfiles-layout > form > .clearfix .float-start,
  body.com_rsfiles.layout-bookmarks .rsfiles-layout > form > .clearfix .float-end {
    width: 100%;
  }

  body.com_rsfiles.layout-bookmarks .rsfiles-layout > form > .clearfix .float-end {
    display: grid;
    grid-template-columns: 1fr;
    margin-left: 0;
  }

  body.com_rsfiles.layout-bookmarks .rsfiles-layout > form > .clearfix .float-end .btn {
    width: 100%;
  }

  body.com_rsfiles.layout-bookmarks #bookmarksTable {
    display: block;
    width: auto;
    margin: .85rem;
    overflow-x: auto;
  }
}
