/* =========================================
   Revista ALPHA – CSS Override v3
   Tema por defecto OJS 3.5.0.3
   Arte, Letras y Filosofía — ULagos

   ESTRUCTURA:
   Parte 1  → Variables y tipografía global
   Parte 2  → Cabecera
   Parte 3  → Navegación principal
   Parte 4  → Portada
   Parte 5  → Listado de artículos
   Parte 6  → Vista de artículo individual
   Parte 7  → Sidebar
   Parte 8  → Formularios
   Parte 9  → Footer
   Parte 10 → Responsive
   Parte 11 → Accesibilidad
   Parte 12 → Impresión
   ========================================= */

/* -----------------------------------------
   PARTE 1: VARIABLES Y TIPOGRAFÍA GLOBAL
   ----------------------------------------- */

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400&family=Lora:ital,wght@0,400;0,500;0,600;1,400;1,500&family=Inter:wght@300;400;500;600&display=swap');

:root {
  /* ── Primitivos de color ── */
  --alpha-red:          #BF1E2E;
  --alpha-red-dark:     #991826;
  --alpha-red-alpha-12: rgba(191, 30, 46, 0.12);  /* foco/ring */
  --alpha-red-alpha-20: rgba(191, 30, 46, 0.20);

  /* Fondos */
  --alpha-bg:           #FAFAF9;
  --alpha-surface:      #FFFFFF;
  --alpha-bg-subtle:    #F5F5F3;

  /* Texto */
  --alpha-text:         #1A1A1A;
  --alpha-text-muted:   #6B6B6B;
  --alpha-text-placeholder: #ABABAB;

  /* Bordes */
  --alpha-border:       #E5E5E3;
  --alpha-border-dark:  #D0D0CE;

  /* Navegación y footer */
  --alpha-nav-bg:       #1A1A1A;
  --alpha-white:        #FFFFFF;
  --alpha-text-body:    #4A4A4A;

  /* ── Tipografía ── */
  --alpha-font-serif:   'Playfair Display', Georgia, 'Times New Roman', serif;
  --alpha-font-serif-text: 'Lora', Georgia, 'Times New Roman', serif;
  --alpha-font-sans:    'Inter', 'Segoe UI', system-ui, sans-serif;

  /* ── Componente: Search Bar ── */
  --search-height:      48px;
  --search-radius:      4px;
  --search-font-size:   15px;
  --search-focus-ring:  0 0 0 3px var(--alpha-red-alpha-12);

  /* Transiciones */
  --alpha-transition:   all 0.2s ease;
}

body {
  font-family: var(--alpha-font-sans);
  font-size: 17px;
  line-height: 1.75;
  color: var(--alpha-text);
  background-color: var(--alpha-bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--alpha-font-serif);
  font-weight: 700;
  line-height: 1.3;
  color: var(--alpha-text);
}

p {
  margin: 0 0 1rem;
}

a {
  color: var(--alpha-text);
  text-decoration: none;
  transition: var(--alpha-transition);
}

a:hover,
a:focus {
  color: var(--alpha-red);
}

strong, b {
  font-weight: 600;
}

em, i {
  font-style: italic;
}

/* -----------------------------------------
   PARTE 2: CABECERA
   ----------------------------------------- */

.pkp_structure_head,
#headerNavigationContainer {
  background-color: var(--alpha-red) !important;
  background-image: none !important;
  border-bottom: none !important;
}

.pkp_site_name {
  padding-top: 10px;
  padding-bottom: 10px;
  background-color: var(--alpha-red);
}

.pkp_site_name .is_img img {
  display: block;
  max-height: 72px;
  width: auto;
  height: auto;
}


.pkp_site_name .is_img:focus {
  box-shadow: none;
}

.pkp_site_name a {
  font-family: var(--alpha-font-serif);
  font-size: 1.8rem;
  font-weight: 700;
  color: var(--alpha-white);
  text-decoration: none;
}

.pkp_site_name a:hover {
  color: rgba(255, 255, 255, 0.75);
}

/* -----------------------------------------
   PARTE 3: NAVEGACIÓN PRINCIPAL
   ----------------------------------------- */

.pkp_navigation_primary_row {
  background-color: var(--alpha-nav-bg);
  border-top: 1px solid #2E2E2E;
  border-bottom: 3px solid var(--alpha-red);
}

.pkp_site_nav_menu .pkp_nav_list {
  padding-left: 0;
  margin-left: 0;
}

#navigationPrimary a {
  font-family: var(--alpha-font-sans);
  font-size: 13px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.82);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 14px 16px;
  display: block;
  border-bottom: 3px solid transparent;
  transition: color 0.2s ease, border-bottom-color 0.2s ease, background-color 0.2s ease;
}

#navigationPrimary a:hover,
#navigationPrimary a:focus {
  color: var(--alpha-white);
  background-color: rgba(255, 255, 255, 0.07);
  border-bottom-color: var(--alpha-red);
}

/* Ítem activo: línea roja inferior */
body.pkp_page_issue.pkp_op_current  #navigationPrimary > li > a[href*="/issue/current"],
body.pkp_page_issue.pkp_op_archive  #navigationPrimary > li > a[href*="/issue/archive"],
body.pkp_page_about                  #navigationPrimary > li > a[href*="/about"],
body.pkp_page_search                 #navigationPrimary > li > a[href*="/search"] {
  background-color: transparent !important;
  color: var(--alpha-white) !important;
  border-bottom-color: var(--alpha-red) !important;
}

/* Botón de búsqueda en barra de navegación */
.pkp_navigation_search_wrapper {
  display: flex;
  align-items: center;
  padding: 0 0.5rem;
}

.pkp_navigation_search_wrapper a {
  font-family: var(--alpha-font-sans);
  font-size: 12px;
  font-weight: 500;
  color: var(--alpha-white);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-bottom: 1px solid rgba(255, 255, 255, 0.3) !important;
  border-radius: 3px;
  transition: background-color 0.2s ease, border-color 0.2s ease;
  white-space: nowrap;
}

.pkp_navigation_search_wrapper a:hover,
.pkp_navigation_search_wrapper a:focus {
  background-color: var(--alpha-red);
  border-color: var(--alpha-red) !important;
  color: var(--alpha-white);
  outline: none;
  text-decoration: none;
}

.pkp_navigation_search_wrapper a .fa {
  font-size: 11px;
  opacity: 0.85;
}

.pkp_navigation_user ul {
  width: 14em;
}

.cmp_notification {
  border-left-color: var(--alpha-red);
}

/* Dropdowns de navegación principal y usuario */
#navigationPrimary .dropdown-menu,
#navigationUser .dropdown-menu {
  background-color: var(--alpha-surface);
  border: 1px solid var(--alpha-border);
  border-top: 2px solid var(--alpha-red);
  border-radius: 0;
  padding: 4px 0;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
  animation: alpha-dropdown-in 0.18s ease;
}

@keyframes alpha-dropdown-in {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0); }
}

#navigationPrimary .dropdown-menu a,
#navigationUser .dropdown-menu a {
  color: var(--alpha-text);
  font-size: 13px;
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0.02em;
  padding: 9px 18px 9px 14px;
  border-bottom: none;
  border-left: 3px solid transparent;
  display: block;
  transition: border-left-color 0.15s ease, background-color 0.15s ease, color 0.15s ease;
}

#navigationPrimary .dropdown-menu a:hover,
#navigationPrimary .dropdown-menu a:focus,
#navigationUser .dropdown-menu a:hover,
#navigationUser .dropdown-menu a:focus {
  background-color: var(--alpha-bg-subtle);
  color: var(--alpha-red);
  border-left-color: var(--alpha-red);
  border-bottom-color: transparent;
}

/* -----------------------------------------
   PARTE 4: PORTADA
   ----------------------------------------- */

.pkp_structure_content {
  background-color: var(--alpha-bg);
  padding-top: 2rem;
}

.pkp_page_index .homepageImage {
  width: 100%;
  max-height: 420px;
  object-fit: cover;
  display: block;
  margin-bottom: 2.5rem;
}

.pkp_page_index .additional_content {
  border-top: none;
  padding: 0 0 2rem;
  font-family: var(--alpha-font-sans);
  font-size: 15px;
  color: var(--alpha-text-muted);
  line-height: 1.7;
}

/* ---- Número actual: encabezado ---- */
.current_issue {
  border-top: 3px solid var(--alpha-red);
  padding-top: 1.5rem;
}

.current_issue > h2 {
  display: inline-block;
  font-family: var(--alpha-font-sans);
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--alpha-text);
  margin-bottom: 0.85rem;
  padding-bottom: 6px;
  border-bottom: 2px solid var(--alpha-red);
}

.current_issue_title {
  font-family: var(--alpha-font-serif);
  font-size: 1.45rem;
  font-weight: 700;
  color: var(--alpha-text);
  margin-bottom: 1.5rem;
  line-height: 1.25;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--alpha-border);
}

/* ---- Portada del número + fecha ---- */
.obj_issue_toc .heading {
  display: flex;
  gap: 2rem;
  align-items: flex-start;
  margin-bottom: 2.5rem;
  padding: 1.5rem;
  background: var(--alpha-bg-subtle);
}

.obj_issue_toc .heading .cover {
  flex-shrink: 0;
}

.obj_issue_toc .heading .cover img {
  width: 160px;
  height: auto;
  border: 1px solid var(--alpha-border);
  box-shadow: 3px 4px 14px rgba(0, 0, 0, 0.13);
  display: block;
}

.obj_issue_toc .heading .published {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-self: stretch;
  padding: 0;
}

.obj_issue_toc .heading .published .label {
  font-family: var(--alpha-font-sans);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--alpha-text-muted);
  display: block;
  margin-bottom: 0.25rem;
}

.obj_issue_toc .heading .published .value {
  font-family: var(--alpha-font-sans);
  font-size: 14px;
  color: var(--alpha-text);
}

/* ---- "Ver todos los números" ---- */
.current_issue .read_more {
  display: inline-block;
  margin-top: 0.5rem;
  font-family: var(--alpha-font-sans);
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--alpha-red) !important;
  border-bottom: 1px solid var(--alpha-red);
  padding-bottom: 1px;
}

.obj_announcement_summary {
  background: var(--alpha-surface);
  border-left: 3px solid var(--alpha-red);
  padding: 1.25rem 1.5rem;
  margin-bottom: 1.5rem;
}

.obj_announcement_summary .title {
  font-family: var(--alpha-font-serif);
  font-size: 1.1rem;
  font-weight: 700;
  margin-bottom: 0.5rem;
}

.obj_announcement_summary .title a {
  color: var(--alpha-text);
}

.obj_announcement_summary .title a:hover {
  color: var(--alpha-red);
}

.obj_announcement_summary .date {
  font-family: var(--alpha-font-sans);
  font-size: 12px;
  color: var(--alpha-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 0.75rem;
}

.read_more,
.obj_announcement_summary .read_more,
.obj_announcement_summary .read_more:hover,
.obj_announcement_summary .read_more:focus {
  color: var(--alpha-red) !important;
  font-size: 13px;
  font-weight: 500;
  text-decoration: none;
}

/* -----------------------------------------
   PARTE 5: LISTADO DE ARTÍCULOS
   ----------------------------------------- */

.obj_issue_toc .sections {
  margin-bottom: 3rem;
}

/* OJS usa h3 para los títulos de sección en el índice */
.obj_issue_toc .section > h2,
.obj_issue_toc .section > h3 {
  font-family: var(--alpha-font-sans);
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--alpha-text-muted);
  border-bottom: 1px solid var(--alpha-border);
  padding-bottom: 0.75rem;
  margin-bottom: 1.5rem;
  margin-top: 2.5rem;
}

.obj_article_summary {
  padding: 1.5rem 0;
  border-bottom: 1px solid var(--alpha-border);
}

.obj_article_summary:last-child {
  border-bottom: none;
}

.obj_article_summary .section {
  display: inline-block;
  background-color: var(--alpha-red);
  color: var(--alpha-white);
  font-family: var(--alpha-font-sans);
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  padding: 2px 8px;
  margin-bottom: 0.6rem;
}

.obj_article_summary > .title {
  font-family: var(--alpha-font-serif-text);
  font-size: 1.15rem;
  font-weight: 600;
  line-height: 1.45;
  margin-bottom: 0.3rem;
}

.obj_article_summary > .title a {
  color: var(--alpha-text);
  text-decoration: none;
}

.obj_article_summary > .title a:hover,
.obj_article_summary > .title a:focus {
  color: var(--alpha-red);
}

.obj_article_summary .authors {
  font-family: var(--alpha-font-serif-text);
  font-size: 13px;
  font-weight: 400;
  font-style: italic;
  color: var(--alpha-text-muted);
  text-transform: none;
  letter-spacing: 0;
  margin-bottom: 0.5rem;
}

.obj_article_summary .pages {
  font-family: var(--alpha-font-sans);
  font-size: 11px;
  color: var(--alpha-text-muted);
  letter-spacing: 0.04em;
  margin-bottom: 0.6rem;
}

.obj_article_summary .abstract {
  font-family: var(--alpha-font-sans);
  font-size: 14px;
  color: var(--alpha-text-body);
  line-height: 1.65;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin-bottom: 0.75rem;
}

.obj_galley_link {
  display: inline-block;
  font-family: var(--alpha-font-sans);
  font-size: 11px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--alpha-text) !important;
  background: transparent !important;
  border: 1px solid var(--alpha-text) !important;
  padding: 5px 12px;
  margin-right: 6px;
  border-radius: 4px;
  transition: var(--alpha-transition);
  text-decoration: none !important;
}

.obj_galley_link:hover,
.obj_galley_link:focus {
  background-color: var(--alpha-text) !important;
  color: var(--alpha-white) !important;
}

/* -----------------------------------------
   PARTE 6: VISTA DE ARTÍCULO INDIVIDUAL
   ----------------------------------------- */

.obj_article_details {
  padding-top: 1.5rem;
}

/* Anular el padding lateral del tema base que aprieta el contenido */
.obj_article_details .item {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Título principal */
.obj_article_details .page_title,
.obj_article_details h1.title,
.pkp_structure_main .page_article h1 {
  font-family: var(--alpha-font-serif);
  font-size: 2.1rem;
  font-weight: 700;
  line-height: 1.25;
  color: var(--alpha-text);
  margin-top: 0;
  background: transparent;
  border: none;
  text-transform: none;
  width: auto;
  padding: 0;
  position: static;
  display: block;
}

/* Línea roja decorativa debajo del título */
.obj_article_details .page_title::after,
.obj_article_details h1.title::after {
  content: '';
  display: block;
  width: 60px;
  height: 2px;
  background-color: var(--alpha-red);
  margin-top: 1rem;
  margin-bottom: 1.25rem;
}

/* Layout dos columnas: contenido + metadatos */
.obj_article_details .row {
  display: flex;
  gap: 3rem;
  align-items: flex-start;
  margin-top: 1rem;
}

.obj_article_details .main_entry {
  flex: 1 1 0;
  min-width: 0;
  border-right: none !important;
}

.obj_article_details .entry_details {
  flex: 0 0 240px;
  width: 240px;
  border-left: 1px solid var(--alpha-border);
  border-top: none !important;
  padding-left: 1.75rem;
}

.obj_article_details .entry_details .item {
  border-bottom: none !important;
  border-top: none !important;
  padding: 0 0 1.25rem !important;
}

.obj_article_details .entry_details .item:last-child {
  padding-bottom: 0 !important;
}

/* ---- Autores ---- */
.obj_article_details .item.authors {
  margin-bottom: 1.75rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--alpha-border);
}

.obj_article_details .item.authors h2.pkp_screen_reader {
  display: none;
}

.obj_article_details ul.authors {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  font-family: var(--alpha-font-sans);
}

.obj_article_details ul.authors li {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.obj_article_details ul.authors .name {
  font-size: 13px;
  font-weight: 600;
  color: var(--alpha-text);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  line-height: 1.4;
}

.obj_article_details ul.authors .affiliation {
  font-size: 12px;
  color: var(--alpha-text-muted);
  font-style: normal;
  line-height: 1.4;
}

/* Ocultar la coma entre departamento y universidad */
.obj_article_details ul.authors .affiliation > span + span::before {
  content: ' · ';
  color: var(--alpha-border-dark);
}

.obj_article_details ul.authors .userGroup {
  display: none;
}

/* ---- Abstract ---- */
.obj_article_details .item.abstract {
  background: none;
  border: none;
  border-top: 2px solid var(--alpha-red);
  padding: 1.5rem 0 2rem;
  margin: 2rem 0;
}

/* Texto: Lora (serif de texto) con sangria y linea lateral gris */
.obj_article_details .item.abstract p {
  font-family: var(--alpha-font-serif-text);
  font-size: 15px;
  line-height: 2;
  font-style: italic;
  color: var(--alpha-text);
  margin: 0;
  padding-left: 1.25rem;
  border-left: 2px solid var(--alpha-border-dark);
  background: none;
}

/* ---- Regla base unificada para todos los títulos de sección ---- */
.obj_article_details h2.label,
.obj_article_details .entry_details h2.label,
#articlesBySimilarityList h2.label {
  font-family: var(--alpha-font-sans);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.13em;
  color: var(--alpha-text-muted);
  margin-bottom: 0.75rem;
  margin-top: 0;
  display: block;
  border: none !important;
  padding: 0;
  font-style: normal;
  background: none;
  position: static;
  width: auto;
}

/* Excepción: etiqueta del abstract en rojo */
.obj_article_details .item.abstract h2.label {
  color: var(--alpha-red);
  margin-bottom: 1.25rem;
  padding-top: 0.5rem;
}

/* Excepción: palabras clave en línea con el contenido */
.obj_article_details .item.keywords h2.label {
  display: inline;
  margin-right: 4px;
  margin-bottom: 0;
  letter-spacing: 0.05em;
}

/* Excepción: columna derecha con menos margen inferior */
.obj_article_details .entry_details h2.label {
  margin-bottom: 0.4rem;
}

/* Publicado / Número / Sección / Licencia / Cómo citar — título con línea roja */
.obj_article_details .entry_details .item.published h2.label,
.obj_article_details .entry_details .item.issue h2.label,
.obj_article_details .entry_details .item.section h2.label,
.obj_article_details .entry_details .item.copyright h2.label,
.obj_article_details .item.citation h2.label {
  display: inline-block !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  border-bottom: 2px solid var(--alpha-red) !important;
  padding-bottom: 0.35rem !important;
  margin-bottom: 0.6rem !important;
}

/* ---- Palabras clave ---- */
.obj_article_details .item.keywords {
  margin-bottom: 1.25rem;
  font-family: var(--alpha-font-sans);
}


.obj_article_details .item.keywords .value {
  font-size: 13px;
  color: var(--alpha-text-body);
  display: inline;
}

/* ---- Descargas ---- */
.obj_article_details .item.downloads_chart {
  border-top: 1px solid var(--alpha-border);
  padding-top: 1.25rem;
  margin-top: 1.5rem;
}


/* ---- Referencias ---- */
.obj_article_details .item.references {
  border-top: 1px solid var(--alpha-border);
  padding-top: 1.25rem;
  margin-top: 1.5rem;
}


.obj_article_details .item.references .value {
  font-family: var(--alpha-font-sans);
  font-size: 13px;
  line-height: 1.7;
  color: var(--alpha-text-body);
}

/* ---- Columna derecha: metadatos del artículo ---- */
.obj_article_details .entry_details .sub_item {
  margin-bottom: 1.25rem;
  padding-bottom: 0;
}

.obj_article_details .entry_details .sub_item:last-child {
  margin-bottom: 0;
}


.obj_article_details .entry_details .value {
  font-family: var(--alpha-font-sans);
  font-size: 12px;
  color: var(--alpha-text);
  line-height: 1.5;
}

.obj_article_details .entry_details .value a {
  color: var(--alpha-text);
  text-decoration: none;
}

.obj_article_details .entry_details .value a:hover {
  color: var(--alpha-red);
}

/* ---- Botones de galería (sin archivo = ocultos) ---- */
.obj_article_details .galleys_links {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
  margin-top: 1.5rem;
}

.obj_article_details .galleys_links li {
  margin: 0;
  list-style: none;
}

.obj_article_details .galleys_links .obj_galley_link {
  display: block;
  text-align: center;
  padding: 10px 16px;
  font-size: 12px;
}

.obj_article_details .galleys_links li:first-child .obj_galley_link {
  background-color: var(--alpha-red) !important;
  border-color: var(--alpha-red) !important;
  color: var(--alpha-white) !important;
}

.obj_article_details .galleys_links li:first-child .obj_galley_link:hover {
  background-color: var(--alpha-red-dark) !important;
  border-color: var(--alpha-red-dark) !important;
}

/* ---- Licencia / copyright ---- */

.obj_article_details .item.copyright p {
  font-family: var(--alpha-font-sans);
  font-size: 12px;
  color: var(--alpha-text);
  line-height: 1.5;
  margin-bottom: 0.5rem;
}

.obj_article_details .item.copyright img {
  opacity: 0.8;
  margin-top: 0.25rem;
}

/* ---- Artículos similares ---- */
#articlesBySimilarityList {
  border-top: 1px solid var(--alpha-border);
  padding-top: 2rem;
  margin-top: 2.5rem;
}

#articlesBySimilarityList h2.label {
  margin-bottom: 1rem;
}

#articlesBySimilarityList ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

#articlesBySimilarityList ul li {
  font-family: var(--alpha-font-sans);
  font-size: 14px;
  color: var(--alpha-text-body);
  padding: 0.6rem 0;
  border-bottom: 1px solid var(--alpha-border);
  line-height: 1.5;
}

#articlesBySimilarityList ul li a {
  color: var(--alpha-text);
}

#articlesBySimilarityList ul li a:hover {
  color: var(--alpha-red);
}

#articlesBySimilarityList p {
  font-family: var(--alpha-font-sans);
  font-size: 13px;
  color: var(--alpha-text-muted);
  margin-top: 0.75rem;
}

/* ---- Breadcrumbs ---- */
.cmp_breadcrumbs {
  margin-bottom: 1.5rem;
}

.cmp_breadcrumbs ol {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem;
}

.cmp_breadcrumbs li {
  display: flex;
  align-items: center;
  font-family: var(--alpha-font-sans);
  font-size: 12px;
  color: var(--alpha-text-muted);
}

.cmp_breadcrumbs a {
  color: var(--alpha-text-muted);
  text-decoration: none;
}

.cmp_breadcrumbs a:hover {
  color: var(--alpha-red);
}

.cmp_breadcrumbs .separator {
  margin: 0 0.25rem;
  color: var(--alpha-border-dark);
}

.cmp_breadcrumbs .current span {
  color: var(--alpha-text);
  font-weight: 500;
}

/* ---- Citas en cuerpo HTML del artículo ---- */
blockquote {
  border-left: 3px solid var(--alpha-red);
  padding-left: 1.5rem;
  margin-left: 0;
  font-style: italic;
  color: var(--alpha-text-muted);
}

.obj_article_summary .more {
  font-size: 13px;
  color: var(--alpha-red);
  font-weight: 500;
}

/* ---- DOI ---- */
.obj_article_details .item.doi {
  display: flex;
  align-items: baseline;
  gap: 0.4rem;
  flex-wrap: wrap;
  margin-bottom: 1.25rem;
  font-family: var(--alpha-font-sans);
}

.obj_article_details .item.doi h2.label {
  display: inline;
  margin: 0;
  white-space: nowrap;
  letter-spacing: 0.05em;
}

.obj_article_details .item.doi .value {
  font-size: 13px;
  display: inline;
}

.obj_article_details .item.doi .value a {
  color: var(--alpha-red);
  word-break: break-all;
}

.obj_article_details .item.doi .value a:hover {
  color: var(--alpha-red-dark);
}

/* ---- ORCID ---- */
.obj_article_details .orcid {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-top: 0.2rem;
}

.obj_article_details .orcid .orcid_icon {
  width: 14px;
  height: 14px;
  vertical-align: middle;
  display: inline-block;
  flex-shrink: 0;
}

.obj_article_details .orcid a {
  font-size: 11px;
  color: var(--alpha-text-muted);
  word-break: break-all;
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
  line-height: 1.3;
}

.obj_article_details .orcid a:hover {
  color: #a6ce39;
}

/* ---- ROR icon (identificador de institución) ---- */
.obj_article_details .affiliation a svg {
  width: 20px;
  height: 14px;
  vertical-align: middle;
  display: inline-block;
  margin-left: 5px;
  opacity: 0.5;
}

.obj_article_details .affiliation a svg:hover {
  opacity: 0.9;
}

/* ---- Portada del número en columna derecha ---- */
.obj_article_details .item.cover_image .sub_item {
  border-bottom: none;
  padding-bottom: 0.5rem;
}

.obj_article_details .item.cover_image img {
  width: 100%;
  height: auto;
  display: block;
  border: 1px solid var(--alpha-border);
}

/* ---- Sección "Cómo citar" ---- */
.obj_article_details .item.citation {
  border-top: 1px solid var(--alpha-border);
  padding-top: 1.25rem;
  margin-top: 1.25rem;
}


/* Caja con el texto de la cita */
.csl-bib-body {
  font-family: var(--alpha-font-sans);
  font-size: 11px;
  line-height: 1.6;
  color: var(--alpha-text-body);
  background: var(--alpha-bg-subtle);
  padding: 0.75rem 0.875rem;
  border-left: 2px solid var(--alpha-border-dark);
  margin-bottom: 0.75rem;
}

.csl-entry a {
  color: var(--alpha-text-muted);
  word-break: break-all;
}

/* Botón "Más formatos de cita" */
.citation_formats_button {
  font-family: var(--alpha-font-sans) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  background: transparent !important;
  border: 1px solid var(--alpha-border-dark) !important;
  color: var(--alpha-text-muted) !important;
  padding: 7px 12px !important;
  border-radius: 4px;
  cursor: pointer;
  width: 100%;
  text-align: left;
  box-shadow: none;
}

.citation_formats_button:hover {
  border-color: var(--alpha-text) !important;
  color: var(--alpha-text) !important;
  background: transparent !important;
}

/* Lista desplegable de formatos */
.citation_formats_list {
  margin-top: 0.5rem;
  border: 1px solid var(--alpha-border);
  border-radius: 4px;
  overflow: hidden;
}

.citation_formats_styles {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.citation_formats_styles li {
  border-bottom: 1px solid var(--alpha-border);
  list-style: none !important;
}

.citation_formats_styles li:last-child {
  border-bottom: none;
}

.citation_formats_styles a {
  display: block;
  font-family: var(--alpha-font-sans);
  font-size: 12px;
  color: var(--alpha-text);
  padding: 7px 12px;
  text-decoration: none !important;
  border-bottom: none !important;
}

.citation_formats_styles a:hover {
  background-color: var(--alpha-bg-subtle);
  color: var(--alpha-red);
}

/* Subtítulo "Descargar cita" */
.citation_formats_list .label {
  font-family: var(--alpha-font-sans);
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--alpha-text-muted);
  padding: 8px 12px 4px;
  display: block;
  border-top: 1px solid var(--alpha-border);
  background: var(--alpha-bg-subtle);
}

/* ---- Logo OJS en footer ---- */
.pkp_brand_footer {
  text-align: center;
  padding: 1.5rem;
}

.pkp_brand_footer img {
  opacity: 0.4;
  filter: brightness(10);
  max-height: 32px;
}

/* -----------------------------------------
   PARTE 7: SIDEBAR
   ----------------------------------------- */

.pkp_structure_sidebar {
  background-color: var(--alpha-bg);
}

.pkp_structure_sidebar.left {
  max-width: 300px;
}

.pkp_block {
  margin-bottom: 2rem;
}

.pkp_block h2 {
  font-family: var(--alpha-font-sans);
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--alpha-text-muted);
  margin-bottom: 0.75rem;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid var(--alpha-red);
  display: inline-block;
}

.pkp_block a {
  color: var(--alpha-text);
  font-family: var(--alpha-font-sans);
  font-size: 14px;
}

.pkp_block a:hover,
.pkp_block a:focus {
  color: var(--alpha-red);
  border-bottom: none;
}

.pkp_block .content p {
  line-height: 1.6;
  font-size: 14px;
}

/* Bloque "Navegar" vacío (sin categorías) */
.block_browse {
  display: none;
}

/* Bloque de indexaciones — limpiar estilos inline heredados */
#customblock-indexaciones .content > div {
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
}

img.imgLateral,
img.redLateral {
  padding: 12px;
  border: 1px solid var(--alpha-border);
  margin-bottom: 12px;
  border-radius: 4px;
  width: 100%;
  height: auto;
}

.block_make_submission {
  text-align: center;
}

.cmp_manuscript_button,
.block_make_submission a {
  display: inline-block;
  font-family: var(--alpha-font-sans);
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  background-color: var(--alpha-red) !important;
  color: var(--alpha-white) !important;
  border: 1px solid var(--alpha-red) !important;
  padding: 10px 20px;
  border-radius: 4px;
  transition: var(--alpha-transition);
  text-decoration: none !important;
}

.cmp_manuscript_button:hover,
.block_make_submission a:hover {
  background-color: var(--alpha-red-dark) !important;
  border-color: var(--alpha-red-dark) !important;
}

/* -----------------------------------------
   PARTE 8: FORMULARIOS
   ----------------------------------------- */

input[type="text"],
input[type="email"],
input[type="password"],
input[type="search"],
input[type="url"],
input[type="tel"],
input[type="number"],
textarea,
select {
  font-family: var(--alpha-font-sans);
  font-size: 14px;
  color: var(--alpha-text);
  background-color: var(--alpha-surface);
  border: 1px solid var(--alpha-border-dark);
  border-radius: 4px;
  padding: 9px 12px;
  width: 100%;
  transition: border-color 0.2s ease;
  box-sizing: border-box;
}

input:focus,
textarea:focus,
select:focus {
  outline: none;
  border-color: var(--alpha-red);
  box-shadow: var(--search-focus-ring);
}

::placeholder {
  color: var(--alpha-text-placeholder);
  opacity: 1;
}

.pkp_form label,
label {
  font-family: var(--alpha-font-sans);
  font-size: 13px;
  font-weight: 500;
  color: var(--alpha-text);
  display: block;
  margin-bottom: 5px;
}

/* Botón principal */
.cmp_button,
.cmp_form .buttons button,
.pkp_head_wrapper .pkp_search button,
.page_lost_password .buttons button,
.page_search .submit button {
  font-family: var(--alpha-font-sans) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  background-color: var(--alpha-red) !important;
  border: 1px solid var(--alpha-red) !important;
  color: var(--alpha-white) !important;
  border-radius: 4px;
  padding: 10px 20px;
  cursor: pointer;
  transition: var(--alpha-transition);
  display: inline-block;
  text-decoration: none !important;
  box-shadow: none;
}

.cmp_button:hover,
.cmp_form .buttons button:hover,
.pkp_head_wrapper .pkp_search button:hover,
.page_lost_password .buttons button:hover,
.page_search .submit button:hover {
  background-color: var(--alpha-red-dark) !important;
  border-color: var(--alpha-red-dark) !important;
}

/* Botón secundario */
.cmp_button_wire {
  font-family: var(--alpha-font-sans);
  font-size: 13px;
  font-weight: 500;
  background: transparent !important;
  border: 1px solid var(--alpha-text) !important;
  color: var(--alpha-text) !important;
  border-radius: 4px;
  padding: 10px 20px;
  transition: var(--alpha-transition);
}

.cmp_button_wire:hover,
.cmp_button_wire:focus {
  background-color: var(--alpha-text) !important;
  color: var(--alpha-white) !important;
}

/* Mensajes de error */
.pkp_form .error,
.pkp_form .pkp_form_error,
.error_message {
  color: var(--alpha-red);
  font-family: var(--alpha-font-sans);
  font-size: 13px;
  margin-top: 4px;
}

/* -----------------------------------------
   PARTE 8b: PÁGINA DE BÚSQUEDA
   Tokens usados: --search-height, --search-radius,
   --search-font-size, --search-focus-ring
   ----------------------------------------- */

.page_search {
  max-width: 680px;
}

/* Formulario: bloque apilado */
.page_search form.cmp_form {
  display: block;
  margin-bottom: 2rem;
}

/* Input principal: ancho completo */
.page_search .search_input {
  margin-bottom: 1rem;
}

.page_search .search_input input.query {
  height: var(--search-height);
  font-size: var(--search-font-size);
  padding: 10px 16px;
  border-radius: var(--search-radius) !important;
  transition: border-color 0.2s ease;
}

.page_search .search_input input.query:focus {
  border-color: var(--alpha-red);
  box-shadow: var(--search-focus-ring);
}

/* Filtros avanzados: grid interno
   col izquierda = fechas (Desde/Hasta apilados)
   col derecha   = autores */
.page_search .search_advanced {
  border: 1px solid var(--alpha-border);
  border-radius: var(--search-radius);
  padding: 1rem 1.25rem 1.25rem;
  background: var(--alpha-bg-subtle);
  margin-bottom: 1rem;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0 2rem;
}

/* Leyenda "Filtros avanzados" ocupa ambas columnas */
.page_search .search_advanced > legend {
  grid-column: 1 / -1;
  font-family: var(--alpha-font-sans);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.13em;
  color: var(--alpha-text-muted);
  padding: 0 6px;
  margin-bottom: 0.75rem;
}

/* Fechas: columna izquierda, Desde arriba, Hasta abajo */
.page_search .date_range {
  grid-column: 1;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}

.page_search .date_range .from,
.page_search .date_range .to {
  display: flex;
  flex-direction: column;
}

/* Cada fieldset (Desde/Hasta): grid con legend en fila 1, selects en fila 2 */
.page_search .date_range fieldset {
  display: grid !important;
  grid-template-columns: auto auto auto;
  gap: 0.2rem 0.4rem;
  align-items: center;
  border: none;
  padding: 0;
  margin: 0;
  min-width: 0;
}

.page_search .date_range fieldset > legend {
  grid-column: 1 / -1;
  font-family: var(--alpha-font-sans);
  font-size: 11px;
  font-weight: 600;
  color: var(--alpha-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 0.1rem;
}

/* Labels fuera del flujo (OJS ya los hace absolute, reforzamos) */
.page_search .date_range label {
  position: absolute !important;
  left: -2000px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(1px, 1px, 1px, 1px) !important;
}

/* Selects como grid items en la segunda fila */
.page_search .date_range select {
  width: auto !important;
  max-width: none !important;
  padding: 4px 6px;
  font-size: 13px;
  height: 34px;
}

/* Autores: columna derecha */
.page_search .author {
  grid-column: 2;
  align-self: start;
}

.page_search .author .label {
  font-family: var(--alpha-font-sans);
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--alpha-text-muted);
  margin-bottom: 0.4rem;
  display: block;
}

.page_search .author input {
  height: 36px;
  padding: 6px 10px;
  font-size: 13px;
}

/* Boton Buscar: alineado a la derecha, debajo del fieldset */
.page_search .submit {
  text-align: right;
}

.page_search .submit button {
  height: var(--search-height) !important;
  padding: 10px 22px !important;
  border-radius: var(--search-radius) !important;
  white-space: nowrap;
  display: inline-flex !important;
  align-items: center;
  gap: 8px;
}

/* Icono lupa — Font Awesome f002 cargado por OJS */
.page_search .submit button::before {
  content: "\f002";
  font-family: FontAwesome;
  font-size: 13px;
  line-height: 1;
}

/* Eliminar el icono azul que OJS agrega con ::after */
.page_search .submit button::after {
  display: none !important;
}

/* ── Resultados ── */
.page_search ul.search_results {
  list-style: none;
  padding: 0;
  margin: 0;
}

.page_search .search_results li {
  list-style: none;
}

.page_search .search_results .obj_article_summary {
  padding: 1.25rem 0;
  border-bottom: 1px solid var(--alpha-border);
}

/* Resaltado de término buscado en resultados */
.page_search .search_results mark {
  background: var(--alpha-red-alpha-20);
  color: var(--alpha-text);
  padding: 0 2px;
  border-radius: 2px;
}

/* ── Estado vacío / sin resultados ── */
.cmp_notification.notice {
  font-family: var(--alpha-font-sans);
  font-size: 14px;
  color: var(--alpha-text-muted);
  padding: 1.5rem 0 0.5rem;
  border: none;
  background: none;
}

/* Paso activo en wizard de envío de artículo */
.pkp_form .steps .step.current .label {
  color: var(--alpha-red);
  font-weight: 600;
}

/* -----------------------------------------
   PARTE 9: FOOTER
   ----------------------------------------- */

.pkp_structure_footer_wrapper {
  background: transparent;
}

.pkp_structure_footer {
  background-color: var(--alpha-nav-bg);
  border-top: 3px solid var(--alpha-red);
  margin-top: 3rem;
}

.pkp_footer_content {
  background-color: var(--alpha-nav-bg);
  padding: 0;
  text-align: left;
}

.pkp_footer_content p {
  color: #9A9A9A;
  font-family: var(--alpha-font-sans);
  font-size: 13px;
  line-height: 1.6;
  margin: 0;
}

.pkp_footer_content a {
  color: var(--alpha-white);
  font-family: var(--alpha-font-sans);
  font-size: 13px;
  text-decoration: none;
}

.pkp_footer_content a:hover {
  color: var(--alpha-red);
}

.pkp_brand_footer {
  display: none;
}

img.imagenPie {
  height: 44px;
  width: auto;
  max-width: 160px;
  opacity: 0.65;
  filter: grayscale(100%) brightness(1.6);
  display: block;
  margin-top: 1rem;
}

img.imagenPieRed {
  height: 35px;
  width: auto;
  opacity: 0.6;
  filter: grayscale(100%) brightness(1.4);
}

.fa {
  color: #9A9A9A;
}

/* Footer HTML personalizado (campo de footer en OJS) */
.ojs-custom-footer-wrapper {
  background-color: var(--alpha-nav-bg);
  color: #9A9A9A;
  padding: 48px 60px 28px;
}

.ojs-footer-container {
  display: flex;
  flex-wrap: wrap;
  gap: 40px 30px;
}

.ojs-footer-top-col {
  flex: 1 1 calc(33.33% - 20px);
  min-width: 200px;
}

.ojs-custom-footer-wrapper h3 {
  color: var(--alpha-white);
  font-family: var(--alpha-font-sans);
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-top: 0;
  margin-bottom: 16px;
  border-bottom: 2px solid var(--alpha-red);
  padding-bottom: 6px;
  display: inline-block;
}

.ojs-custom-footer-wrapper p {
  font-size: 13px;
  line-height: 1.6;
  color: #9A9A9A;
}

.ojs-footer-links {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.ojs-footer-links li {
  margin-bottom: 4px !important;
  list-style-type: none !important;
}

.ojs-footer-links a {
  color: #9A9A9A !important;
  font-size: 13px;
  text-decoration: none !important;
  transition: color 0.2s ease;
}

.ojs-footer-links a:hover {
  color: var(--alpha-white) !important;
}

.textPie {
  text-align: left;
}

.logoUnivPie {
  text-align: right;
}

/* -----------------------------------------
   PARTE 10: RESPONSIVE
   ----------------------------------------- */

/* Tablet y móvil: layout OJS con toggle (< 992px) */
@media (max-width: 991px) {
  /* OJS mantiene posición absoluta del logo bajo 992px —
     aumentamos el wrapper y reposicionamos el logo */
  .pkp_site_name_wrapper {
    height: 86px;
  }

  .pkp_site_name {
    position: absolute;
    left: 64px;
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
    padding: 0;
    background-color: transparent;
    overflow: visible;
    white-space: nowrap;
  }

  .pkp_site_name .is_img img {
    max-height: 65px;
    margin: 0;
  }

  /* Botón hamburguesa: sin cuadrado, líneas blancas */
  .pkp_site_nav_toggle {
    width: 56px;
    height: 86px;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
  }

  .pkp_site_nav_toggle > span {
    border-bottom-color: var(--alpha-white) !important;
  }

  .pkp_site_nav_toggle > span::before,
  .pkp_site_nav_toggle > span::after {
    background-color: var(--alpha-white) !important;
  }

  /* Menú desplegado */
  .pkp_navigation_primary_row {
    background-color: var(--alpha-red-dark);
  }

  /* ---- Artículo: colapsar columnas en tablet/móvil ---- */
  /* main_entry va primero en el HTML, así que queda arriba al apilar */
  /* Reset de márgenes negativos de Bootstrap .row que descuadran el contenido */
  .obj_article_details .row {
    flex-direction: column;
    gap: 0;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .obj_article_details .main_entry {
    width: 100%;
  }

  /* entry_details (portada, PDF, fechas, cita) pasa a bloque inferior */
  /* OJS aplica margin-left/right negativos a .entry_details que lo descuadran
     cuando quitamos el padding de los .item — hay que resetearlos */
  .obj_article_details .entry_details {
    flex: 0 0 auto;
    width: 100%;
    border-left: none;
    border-top: 1px solid var(--alpha-border);
    padding-left: 0;
    margin-left: 0 !important;
    margin-right: 0 !important;
    margin-top: 2rem;
    padding-top: 1.5rem;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 1.25rem 2rem;
  }

  /* El bloque de cita ocupa todo el ancho */
  .obj_article_details .entry_details .item.citation {
    grid-column: 1 / -1;
  }

  /* Gráfico de descargas: ancho completo */
  .obj_article_details .item.downloads_chart canvas {
    width: 100% !important;
    max-width: 100%;
    height: auto !important;
  }
}

/* Tablet (768px – 1024px): contenido */
@media (max-width: 1024px) {
  .pkp_structure_sidebar.left {
    max-width: 220px;
  }

  .obj_article_details .page_title,
  .obj_article_details h1.title {
    font-size: 1.7rem;
  }

  .obj_issue_toc .heading .cover img {
    width: 130px;
  }
}

/* Móvil (< 768px) */
@media (max-width: 767px) {
  body {
    font-size: 15px;
  }

  /* ---- Cabecera: reducir tamaño en móvil respecto a tablet ---- */
  .pkp_site_name_wrapper {
    height: 80px;
  }

  .pkp_site_nav_toggle {
    height: 80px;
  }

  .pkp_site_name .is_img img {
    max-height: 58px;
  }

  #navigationPrimary a {
    font-size: 13px;
    padding: 12px 16px;
    color: var(--alpha-white) !important;
  }

  /* ---- Número actual: apilar en móvil ---- */
  .obj_issue_toc .heading {
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 1.25rem;
    gap: 1.25rem;
  }

  .obj_issue_toc .heading .cover img {
    width: 140px;
  }

  .obj_issue_toc .heading .published {
    align-self: auto;
    align-items: center;
  }

  /* ---- Tamaños tipográficos en móvil ---- */
  .obj_article_details .page_title,
  .obj_article_details h1.title {
    font-size: 1.4rem;
  }

  .obj_article_summary > .title {
    font-size: 1.05rem;
  }

  /* entry_details en móvil: portada pequeña + datos en columna */
  .obj_article_details .entry_details {
    display: flex;
    flex-direction: column;
    gap: 1rem;
  }

  /* Portada: tamaño fijo, no 100% del ancho */
  .obj_article_details .item.cover_image img {
    width: 110px;
    max-width: 110px;
  }

  /* Fila compacta: portada + PDF juntos */
  .obj_article_details .item.cover_image,
  .obj_article_details .item.galleys {
    display: inline-block;
    vertical-align: top;
  }

  .obj_article_details .item.cover_image {
    margin-right: 1rem;
  }

  /* Datos de texto: separación por espacio, sin línea */
  .obj_article_details .entry_details .item.published,
  .obj_article_details .entry_details .item.issue,
  .obj_article_details .entry_details .item.copyright {
    padding-top: 0;
  }

  .obj_article_details .entry_details .item.citation {
    border-top: none;
    padding-top: 0;
    margin-top: 0;
  }

  /* ---- Sidebar debajo del contenido ---- */
  .pkp_structure_sidebar.left {
    max-width: 100%;
    padding-top: 1.5rem;
    margin-top: 1.5rem;
    border-top: 1px solid var(--alpha-border);
  }

  /* ---- Pie de página ---- */
  .ojs-footer-top-col {
    flex: 1 1 100%;
  }

  .ojs-custom-footer-wrapper {
    padding: 36px 24px 20px;
  }

  /* ---- Elementos táctiles mínimo 44px ---- */
  .cmp_button,
  .cmp_button_wire,
  .obj_galley_link,
  .cmp_manuscript_button,
  .block_make_submission a {
    min-height: 44px;
    padding: 11px 20px;
  }

  .obj_article_details .abstract {
    padding: 1rem 1.25rem;
  }
}

/* -----------------------------------------
   PARTE 11: ACCESIBILIDAD
   ----------------------------------------- */

a:focus,
button:focus,
input:focus,
select:focus,
textarea:focus {
  outline: 2px solid var(--alpha-red);
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
  }
}

/* -----------------------------------------
   PARTE 12: IMPRESIÓN
   ----------------------------------------- */

@media print {
  .pkp_navigation_primary_row,
  .pkp_structure_sidebar,
  .pkp_structure_footer,
  .pkp_navigation_user,
  .obj_galley_link,
  .block_make_submission {
    display: none !important;
  }

  body {
    font-size: 12pt;
    color: #000;
    background: var(--alpha-white);
  }

  h1, h2, h3 {
    font-family: var(--alpha-font-serif);
    color: #000;
  }

  .obj_article_details .page_title,
  .obj_article_details h1.title {
    font-size: 20pt;
    color: #000;
  }

  .obj_article_details .abstract {
    background: #f5f5f5;
    border-left: 3px solid #000;
  }

  /* URL del DOI visible en impresión */
  .obj_article_details .item.doi .value a::after {
    content: " (" attr(href) ")";
    font-size: 10pt;
    color: var(--alpha-text-muted);
  }
}

/* -----------------------------------------
   PARTE 12: CONTENIDO EDITORIAL (Acerca de)
   ----------------------------------------- */

.alpha-section {
  margin-bottom: 2.5rem;
}

.alpha-section-title {
  font-family: var(--alpha-font-sans);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--alpha-text);
  display: inline-block;
  border-bottom: 2px solid var(--alpha-red);
  padding-bottom: 0.35rem;
  margin: 0 0 1.1rem 0;
}

.alpha-section p {
  font-family: var(--alpha-font-sans);
  font-size: 15px;
  line-height: 1.75;
  color: var(--alpha-text-body);
  margin-bottom: 0.9rem;
}

.alpha-section p:last-child {
  margin-bottom: 0;
}

.alpha-bullets {
  list-style: none;
  padding: 0;
  margin: 0 0 1.25rem 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem 0.6rem;
}

.alpha-bullets li {
  font-family: var(--alpha-font-sans);
  font-size: 12px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--alpha-text);
  padding: 4px 12px;
  border: 1px solid var(--alpha-border-dark);
  border-radius: 2px;
}

.alpha-definition {
  margin-bottom: 1.25rem;
  padding-left: 1rem;
  border-left: 2px solid var(--alpha-border);
}

.alpha-definition strong {
  display: block;
  font-family: var(--alpha-font-sans);
  font-size: 13px;
  font-weight: 600;
  color: var(--alpha-text);
  margin-bottom: 0.25rem;
}

.alpha-definition p {
  font-size: 14px !important;
  color: var(--alpha-text-muted) !important;
  margin-bottom: 0 !important;
}

/* -----------------------------------------
   PARTE 13: CABECERA EDITORIAL (page_masthead)
   ----------------------------------------- */

.page_masthead h1 {
  font-family: var(--alpha-font-serif);
  font-size: 2rem;
  font-weight: 700;
  color: var(--alpha-text);
  margin: 0 0 2rem 0;
  padding-bottom: 1rem;
  border-bottom: 3px solid var(--alpha-red);
}

.page_masthead h2 {
  font-family: var(--alpha-font-sans);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--alpha-text-muted);
  display: inline-block;
  border-bottom: 2px solid var(--alpha-red);
  padding-bottom: 0.35rem;
  margin: 2rem 0 1.1rem 0;
}

.page_masthead h2:first-of-type {
  margin-top: 0;
}

.page_masthead ul.user_listing {
  list-style: none;
  padding: 0;
  margin: 0 0 1rem 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 0.75rem;
}

.page_masthead ul.user_listing li {
  padding: 0.9rem 1.1rem;
  background: var(--alpha-bg-subtle);
  border: 1px solid var(--alpha-border);
  border-radius: 4px;
}

.page_masthead ul.user_listing .name {
  display: block;
  font-family: var(--alpha-font-serif-text);
  font-size: 15px;
  font-weight: 600;
  color: var(--alpha-text);
  margin-bottom: 0.2rem;
}

.page_masthead ul.user_listing .affiliation {
  display: block;
  font-family: var(--alpha-font-sans);
  font-size: 12px;
  color: var(--alpha-text-muted);
}

.page_masthead ul.user_listing .orcid {
  display: inline-block;
  margin-left: 4px;
}

.page_masthead ul.user_listing .orcid_icon {
  width: 13px;
  height: 13px;
  vertical-align: middle;
  opacity: 0.75;
  transition: opacity 0.2s ease;
}

.page_masthead ul.user_listing .orcid_icon:hover {
  opacity: 1;
}

.page_masthead > p {
  font-family: var(--alpha-font-sans);
  font-size: 13px;
  color: var(--alpha-text-muted);
  margin-top: 1.5rem;
}

.page_masthead > p a {
  color: var(--alpha-red);
  text-decoration: none;
}

.page_masthead > p a:hover {
  text-decoration: underline;
}

.page_masthead hr {
  display: none;
}

/* -----------------------------------------
   PARTE 14: HISTÓRICO EDITORIAL (listas de personas)
   ----------------------------------------- */

.page_masthead .alpha-section {
  margin-bottom: 2rem;
}

.alpha-people-list {
  list-style: none;
  padding: 0;
  margin: 0;
  columns: 2;
  column-gap: 2rem;
}

.alpha-people-list li {
  font-family: var(--alpha-font-sans);
  font-size: 13px;
  color: var(--alpha-text);
  padding: 7px 0;
  border-bottom: 1px solid var(--alpha-border);
  break-inside: avoid;
}

.alpha-people-list li:last-child {
  border-bottom: none;
}

@media (max-width: 600px) {
  .alpha-people-list {
    columns: 1;
  }
}

/* -----------------------------------------
   PARTE 15: TARJETAS DE PERSONA (nombre + correo + ORCID)
   ----------------------------------------- */

.alpha-people-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 0.75rem;
  margin: 0 0 1rem 0;
}

.alpha-person-card {
  padding: 0.9rem 1.1rem;
  background: var(--alpha-bg-subtle);
  border: 1px solid var(--alpha-border);
  border-radius: 4px;
}

.alpha-person-name {
  font-family: var(--alpha-font-serif-text);
  font-size: 15px;
  font-weight: 600;
  color: var(--alpha-text);
  margin-bottom: 0.15rem;
}

.alpha-person-affiliation {
  font-family: var(--alpha-font-sans);
  font-size: 12px;
  color: var(--alpha-text-muted);
  margin-bottom: 0.4rem;
}

.alpha-person-meta {
  font-family: var(--alpha-font-sans);
  font-size: 12px;
  line-height: 1.6;
}

.alpha-person-meta a {
  color: var(--alpha-text-muted);
  text-decoration: none;
  word-break: break-all;
}

.alpha-person-meta a:hover {
  color: var(--alpha-red);
}

/* -----------------------------------------
   PARTE 16: CONTACTO (page_contact)
   ----------------------------------------- */

.page_contact h1 {
  font-family: var(--alpha-font-serif);
  font-size: 2rem;
  font-weight: 700;
  color: var(--alpha-text);
  margin: 0 0 2rem 0;
  padding-bottom: 1rem;
  border-bottom: 3px solid var(--alpha-red);
}

.page_contact .contact_section {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1.5rem;
  align-items: start;
}

.page_contact .address {
  grid-column: 1 / -1;
  font-family: var(--alpha-font-sans);
  font-size: 13px;
  line-height: 1.7;
  color: var(--alpha-text-muted);
  padding-bottom: 1.25rem;
  margin-bottom: 0.25rem;
  border-bottom: 1px solid var(--alpha-border);
}

.page_contact .contact {
  padding: 1.25rem 1.4rem;
  background: var(--alpha-bg-subtle);
  border: 1px solid var(--alpha-border);
  border-radius: 4px;
}

.page_contact .contact h2 {
  font-family: var(--alpha-font-sans);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--alpha-text-muted);
  display: inline-block;
  border-bottom: 2px solid var(--alpha-red);
  padding-bottom: 0.3rem;
  margin: 0 0 0.9rem 0;
}

.page_contact .contact .name {
  font-family: var(--alpha-font-serif-text);
  font-size: 16px;
  font-weight: 600;
  color: var(--alpha-text);
  margin-bottom: 0.2rem;
}

.page_contact .contact .affiliation {
  font-family: var(--alpha-font-sans);
  font-size: 12px;
  color: var(--alpha-text-muted);
  margin-bottom: 0.6rem;
}

.page_contact .contact .phone,
.page_contact .contact .email {
  font-family: var(--alpha-font-sans);
  font-size: 13px;
  margin-top: 0.4rem;
}

.page_contact .contact .phone .label {
  display: inline-block;
  min-width: 70px;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--alpha-text-muted);
}

.page_contact .contact .phone .value {
  color: var(--alpha-text);
}

.page_contact .contact .email a {
  color: var(--alpha-red);
  text-decoration: none;
}

.page_contact .contact .email a:hover {
  text-decoration: underline;
}

/* -----------------------------------------
   PARTE 17: ARCHIVO DE NÚMEROS (page_issue_archive)
   ----------------------------------------- */

.page_issue_archive h1 {
  font-family: var(--alpha-font-serif);
  font-size: 2rem;
  font-weight: 700;
  color: var(--alpha-text);
  margin: 0 0 2rem 0;
  padding-bottom: 1rem;
  border-bottom: 3px solid var(--alpha-red);
}

.page_issue_archive .issues_archive {
  list-style: none;
  padding: 0;
  margin: 0;
}

.page_issue_archive .issues_archive > li {
  border-bottom: 1px solid var(--alpha-border);
}

.page_issue_archive .issues_archive > li:last-child {
  border-bottom: none;
}

.page_issue_archive .obj_issue_summary {
  display: flex;
  gap: 1.75rem;
  align-items: flex-start;
  padding: 2rem 0;
}

.page_issue_archive .obj_issue_summary .cover {
  flex: 0 0 140px;
  display: block;
}

.page_issue_archive .obj_issue_summary .cover img {
  width: 140px;
  height: auto;
  display: block;
  border: 1px solid var(--alpha-border);
  box-shadow: 3px 4px 14px rgba(0, 0, 0, 0.1);
  transition: transform 0.2s ease;
}

.page_issue_archive .obj_issue_summary .cover:hover img {
  transform: translateY(-2px);
}

.page_issue_archive .obj_issue_summary h2 {
  margin: 0 0 0.75rem 0;
  line-height: 1.3;
}

.page_issue_archive .obj_issue_summary h2 .title {
  font-family: var(--alpha-font-serif);
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--alpha-text);
  text-decoration: none;
}

.page_issue_archive .obj_issue_summary h2 .title:hover {
  color: var(--alpha-red);
}

.page_issue_archive .obj_issue_summary .series {
  font-family: var(--alpha-font-sans);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--alpha-red);
  margin-top: 0.3rem;
}

.page_issue_archive .obj_issue_summary .description {
  font-family: var(--alpha-font-serif-text);
  font-size: 14px;
  line-height: 1.7;
  color: var(--alpha-text-body);
}

.page_issue_archive .obj_issue_summary .description p {
  margin-bottom: 0.75rem;
}

.page_issue_archive .obj_issue_summary .description p:last-child {
  margin-bottom: 0;
}

@media (max-width: 600px) {
  .page_issue_archive .obj_issue_summary {
    flex-direction: column;
    gap: 1rem;
  }

  .page_issue_archive .obj_issue_summary .cover {
    flex: 0 0 auto;
  }
}
