/*
 * CUALO — Revista Latino-Euro-Americana de Educación, Ciencia, Tecnología y Humanidades
 * CSS personalizado para OJS 3.5.x (tema por defecto)
 * Sociedad Mexicana de Historia de la Ciencia y de la Tecnología, A.C.
 *
 * Instrucciones: Pegar en Configuración > Sitio web > Apariencia > CSS personalizado
 * O bien subir como archivo .css en "Hoja de estilos de la revista"
 */

/* ============================================================
   0. IMPORTAR TIPOGRAFÍAS
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=DM+Sans:opsz,wght@9..40,300;9..40,400;9..40,500;9..40,600;9..40,700&display=swap');

/* ============================================================
   1. VARIABLES Y RESET BASE
   ============================================================ */
:root {
  /* Primarios */
  --cualo-verde: #006B3F;
  --cualo-verde-hover: #004D2C;
  --cualo-verde-claro: #E8F5EE;
  --cualo-verde-10: rgba(0, 107, 63, 0.1);

  /* Secundarios */
  --cualo-terracota: #7B241C;
  --cualo-terracota-hover: #5C1A14;
  --cualo-terracota-claro: #F9EEEC;
  --cualo-azul: #2874A6;
  --cualo-azul-hover: #1B5276;
  --cualo-ocre: #C9903A;
  --cualo-ocre-claro: #FFF3E0;

  /* Neutros */
  --cualo-crema: #F5EFE6;
  --cualo-blanco: #FFFFFF;
  --cualo-texto: #2C2418;
  --cualo-texto-secundario: #6B6358;
  --cualo-texto-terciario: #9A9288;
  --cualo-borde: #DDD5CA;
  --cualo-borde-suave: #E8E2D8;

  /* Tipografía */
  --fuente-display: 'DM Serif Display', Georgia, 'Times New Roman', serif;
  --fuente-cuerpo: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  /* Espaciado */
  --radio-borde: 6px;
  --sombra-suave: 0 1px 3px rgba(44, 36, 24, 0.06), 0 1px 2px rgba(44, 36, 24, 0.04);
  --sombra-media: 0 4px 12px rgba(44, 36, 24, 0.08), 0 2px 4px rgba(44, 36, 24, 0.04);
  --transicion: 0.2s ease;
}

/* ============================================================
   2. FONDO Y TIPOGRAFÍA GENERAL
   ============================================================ */
body {
  font-family: var(--fuente-cuerpo) !important;
  color: var(--cualo-texto) !important;
  background-color: var(--cualo-crema) !important;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4,
.page_title,
.pkp_page_title,
.article_title,
.obj_article_summary .title,
.section .title {
  font-family: var(--fuente-display) !important;
  color: var(--cualo-texto) !important;
  font-weight: 400;
  line-height: 1.3;
  letter-spacing: -0.01em;
}

p, li, td, th, dd, dt, span, label, input, textarea, select {
  font-family: var(--fuente-cuerpo) !important;
}

a {
  color: var(--cualo-azul) !important;
  text-decoration: none;
  transition: color var(--transicion);
}

a:hover,
a:focus {
  color: var(--cualo-azul-hover) !important;
  text-decoration: underline;
}

a:visited {
  color: var(--cualo-terracota) !important;
}

/* ============================================================
   3. CABECERA Y NAVEGACIÓN PRINCIPAL
   ============================================================ */
.pkp_structure_head {
  background-color: var(--cualo-verde-hover) !important;
  border-bottom: 3px solid var(--cualo-verde) !important;
  box-shadow: 0 2px 8px rgba(0, 77, 44, 0.15);
}

/* Logo / nombre del sitio */
.pkp_site_name a,
.pkp_site_name .is_text {
  color: var(--cualo-blanco) !important;
  font-family: var(--fuente-display) !important;
  font-size: 1.5rem !important;
  letter-spacing: 0.02em;
}

.pkp_site_name a:hover {
  color: var(--cualo-verde-claro) !important;
  text-decoration: none !important;
}

/* Navegación principal */
.pkp_navigation_primary a {
  color: rgba(255, 255, 255, 0.8) !important;
  font-family: var(--fuente-cuerpo) !important;
  font-weight: 500 !important;
  font-size: 0.875rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  transition: color var(--transicion) !important;
}

.pkp_navigation_primary a:hover,
.pkp_navigation_primary a:focus,
.pkp_navigation_primary .current a {
  color: var(--cualo-blanco) !important;
  text-decoration: none !important;
}

.pkp_navigation_primary .current a {
  border-bottom: 2px solid var(--cualo-ocre) !important;
  padding-bottom: 2px;
}

/* Navegación de usuario (login, registro) */
.pkp_navigation_user a {
  color: rgba(255, 255, 255, 0.7) !important;
  font-size: 0.8125rem !important;
}

.pkp_navigation_user a:hover {
  color: var(--cualo-blanco) !important;
}

/* ============================================================
   4. CONTENIDO PRINCIPAL
   ============================================================ */
.pkp_structure_main {
  background-color: var(--cualo-blanco) !important;
  border-radius: var(--radio-borde);
  box-shadow: var(--sombra-suave);
  margin-top: 1.5rem;
  padding: 2rem 2.5rem !important;
}

/* Títulos de página */
.pkp_page_title,
.page_title {
  font-size: 1.75rem !important;
  color: var(--cualo-texto) !important;
  margin-bottom: 1.5rem !important;
  padding-bottom: 0.75rem;
  border-bottom: 2px solid var(--cualo-verde) !important;
}

/* ============================================================
   5. LISTADO DE ARTÍCULOS
   ============================================================ */
.obj_article_summary {
  padding: 1.25rem 0 !important;
  border-bottom: 1px solid var(--cualo-borde-suave) !important;
  transition: background-color var(--transicion);
}

.obj_article_summary:hover {
  background-color: var(--cualo-verde-10);
  padding-left: 0.75rem !important;
  margin-left: -0.75rem;
  border-radius: var(--radio-borde);
}

.obj_article_summary .title a {
  color: var(--cualo-texto) !important;
  font-family: var(--fuente-display) !important;
  font-size: 1.125rem !important;
  line-height: 1.4 !important;
}

.obj_article_summary .title a:hover {
  color: var(--cualo-verde) !important;
  text-decoration: none !important;
}

.obj_article_summary .meta .authors {
  color: var(--cualo-texto-secundario) !important;
  font-size: 0.875rem !important;
  font-weight: 400;
}

/* Etiquetas de sección en listado */
.obj_article_summary .meta .section {
  display: inline-block;
  background-color: var(--cualo-verde-claro);
  color: var(--cualo-verde-hover) !important;
  font-size: 0.75rem !important;
  font-weight: 600;
  padding: 2px 10px;
  border-radius: 20px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

/* Encabezados de sección en tabla de contenidos */
.section .title {
  font-size: 1.25rem !important;
  color: var(--cualo-verde-hover) !important;
  margin-top: 2rem !important;
  padding-top: 1.5rem;
  border-top: 2px solid var(--cualo-verde-claro) !important;
}

/* ============================================================
   6. VISTA DE ARTÍCULO
   ============================================================ */
.article_title {
  font-size: 2rem !important;
  line-height: 1.25 !important;
  margin-bottom: 0.5rem !important;
}

.article_subtitle {
  font-family: var(--fuente-display) !important;
  font-style: italic;
  font-size: 1.25rem !important;
  color: var(--cualo-texto-secundario) !important;
}

.authors .name {
  font-weight: 600 !important;
  color: var(--cualo-texto) !important;
}

.authors .affiliation {
  color: var(--cualo-texto-secundario) !important;
  font-size: 0.875rem !important;
}

/* Resumen / Abstract */
.article_abstract {
  background-color: var(--cualo-crema) !important;
  padding: 1.5rem 2rem !important;
  border-radius: var(--radio-borde);
  border-left: 4px solid var(--cualo-verde) !important;
  margin: 1.5rem 0 !important;
}

.article_abstract h2,
.article_abstract .label {
  font-family: var(--fuente-cuerpo) !important;
  font-size: 0.8125rem !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  color: var(--cualo-verde) !important;
  margin-bottom: 0.5rem !important;
}

/* Palabras clave */
.keywords .value {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.keywords .keyword {
  display: inline-block;
  background-color: var(--cualo-verde-claro);
  color: var(--cualo-verde-hover) !important;
  font-size: 0.8125rem !important;
  padding: 3px 12px;
  border-radius: 20px;
  font-weight: 500;
}

/* Metadatos del artículo (DOI, fechas, etc.) */
.item.doi .value a {
  color: var(--cualo-azul) !important;
  font-family: var(--fuente-cuerpo) !important;
  font-size: 0.875rem;
}

/* Enlaces a galeradas (PDF, HTML, etc.) */
.galley_link {
  display: inline-block !important;
  background-color: var(--cualo-terracota) !important;
  color: var(--cualo-blanco) !important;
  padding: 0.5rem 1.25rem !important;
  border-radius: var(--radio-borde) !important;
  font-size: 0.875rem !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
  transition: background-color var(--transicion) !important;
  border: none !important;
}

.galley_link:hover {
  background-color: var(--cualo-terracota-hover) !important;
  color: var(--cualo-blanco) !important;
  text-decoration: none !important;
}

/* ============================================================
   7. BARRA LATERAL
   ============================================================ */
.pkp_structure_sidebar {
  font-size: 0.9rem;
}

.pkp_block {
  background-color: var(--cualo-blanco) !important;
  border-radius: var(--radio-borde) !important;
  padding: 1.25rem !important;
  margin-bottom: 1rem !important;
  box-shadow: var(--sombra-suave) !important;
  border: 1px solid var(--cualo-borde-suave) !important;
}

.pkp_block .title {
  font-family: var(--fuente-cuerpo) !important;
  font-size: 0.75rem !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  color: var(--cualo-verde) !important;
  border-bottom: 1px solid var(--cualo-borde-suave) !important;
  padding-bottom: 0.5rem !important;
  margin-bottom: 0.75rem !important;
}

.pkp_block ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.pkp_block li {
  padding: 0.35rem 0;
  border-bottom: 1px solid var(--cualo-borde-suave);
}

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

.pkp_block a {
  color: var(--cualo-texto) !important;
  font-size: 0.875rem !important;
}

.pkp_block a:hover {
  color: var(--cualo-verde) !important;
}

/* ============================================================
   8. BOTONES
   ============================================================ */
/* Botón primario */
.cmp_button,
.pkp_button,
a.pkp_button,
button.pkp_button,
input[type="submit"],
.submit {
  background-color: var(--cualo-verde) !important;
  color: var(--cualo-blanco) !important;
  border: none !important;
  border-radius: var(--radio-borde) !important;
  font-family: var(--fuente-cuerpo) !important;
  font-weight: 600 !important;
  font-size: 0.875rem !important;
  padding: 0.6rem 1.5rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
  transition: all var(--transicion) !important;
  cursor: pointer;
  box-shadow: 0 1px 2px rgba(0, 107, 63, 0.2);
}

.cmp_button:hover,
.pkp_button:hover,
a.pkp_button:hover,
button.pkp_button:hover,
input[type="submit"]:hover,
.submit:hover {
  background-color: var(--cualo-verde-hover) !important;
  color: var(--cualo-blanco) !important;
  text-decoration: none !important;
  box-shadow: 0 2px 4px rgba(0, 77, 44, 0.25);
  transform: translateY(-1px);
}

/* Botón de envío de artículo (CTA especial) */
.pkp_navigation_primary .cmp_button_new_submission,
a[href*="submission/wizard"] {
  background-color: var(--cualo-terracota) !important;
  color: var(--cualo-blanco) !important;
}

a[href*="submission/wizard"]:hover {
  background-color: var(--cualo-terracota-hover) !important;
}

/* ============================================================
   9. PORTADA DE NÚMERO / ISSUE
   ============================================================ */
.obj_issue_summary {
  background-color: var(--cualo-blanco);
  border-radius: var(--radio-borde);
  padding: 1.5rem;
  margin-bottom: 1.5rem;
  box-shadow: var(--sombra-suave);
  border: 1px solid var(--cualo-borde-suave);
  transition: box-shadow var(--transicion);
}

.obj_issue_summary:hover {
  box-shadow: var(--sombra-media);
}

.obj_issue_summary .title {
  font-family: var(--fuente-display) !important;
  font-size: 1.25rem !important;
  color: var(--cualo-texto) !important;
}

.obj_issue_summary .title a:hover {
  color: var(--cualo-verde) !important;
}

.obj_issue_summary .series {
  color: var(--cualo-texto-secundario);
  font-size: 0.875rem;
}

/* Número actual destacado */
.current_issue {
  border-left: 4px solid var(--cualo-verde) !important;
  padding-left: 1.5rem;
}

.current_issue .title {
  font-size: 1.5rem !important;
}

/* ============================================================
   10. FORMULARIOS (envío, registro, login)
   ============================================================ */
input[type="text"],
input[type="email"],
input[type="password"],
input[type="url"],
textarea,
select {
  font-family: var(--fuente-cuerpo) !important;
  border: 1px solid var(--cualo-borde) !important;
  border-radius: var(--radio-borde) !important;
  padding: 0.6rem 0.75rem !important;
  font-size: 0.9375rem !important;
  color: var(--cualo-texto) !important;
  background-color: var(--cualo-blanco) !important;
  transition: border-color var(--transicion), box-shadow var(--transicion);
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="password"]:focus,
input[type="url"]:focus,
textarea:focus,
select:focus {
  border-color: var(--cualo-verde) !important;
  box-shadow: 0 0 0 3px var(--cualo-verde-10) !important;
  outline: none !important;
}

label {
  font-weight: 500 !important;
  color: var(--cualo-texto) !important;
  font-size: 0.9375rem !important;
}

/* ============================================================
   11. PIE DE PÁGINA
   ============================================================ */
.pkp_structure_footer_wrapper {
  background-color: var(--cualo-verde-hover) !important;
  color: rgba(255, 255, 255, 0.75) !important;
  margin-top: 3rem;
  padding: 2rem 0 !important;
}

.pkp_structure_footer_wrapper a {
  color: var(--cualo-verde-claro) !important;
}

.pkp_structure_footer_wrapper a:hover {
  color: var(--cualo-blanco) !important;
}

.pkp_footer_content {
  font-size: 0.8125rem !important;
  line-height: 1.6;
}

/* ============================================================
   12. NOTIFICACIONES Y ALERTAS
   ============================================================ */
.pkp_notification {
  border-radius: var(--radio-borde) !important;
  font-family: var(--fuente-cuerpo) !important;
  font-size: 0.9rem;
}

/* Éxito */
.pkp_notification.is_success,
.pkp_notification.success {
  background-color: var(--cualo-verde-claro) !important;
  color: var(--cualo-verde-hover) !important;
  border: 1px solid var(--cualo-verde) !important;
}

/* Advertencia */
.pkp_notification.is_warning,
.pkp_notification.warning {
  background-color: var(--cualo-ocre-claro) !important;
  color: #7A5B1F !important;
  border: 1px solid var(--cualo-ocre) !important;
}

/* Error */
.pkp_notification.is_error,
.pkp_notification.error {
  background-color: var(--cualo-terracota-claro) !important;
  color: var(--cualo-terracota) !important;
  border: 1px solid var(--cualo-terracota) !important;
}

/* ============================================================
   13. BÚSQUEDA
   ============================================================ */
.pkp_search_form input[type="text"] {
  border: 2px solid var(--cualo-borde) !important;
  border-radius: 24px !important;
  padding: 0.5rem 1rem !important;
  font-size: 0.9375rem !important;
}

.pkp_search_form input[type="text"]:focus {
  border-color: var(--cualo-verde) !important;
}

.pkp_search_form .pkp_button {
  border-radius: 24px !important;
}

/* ============================================================
   14. TABLA DE CONTENIDOS DEL NÚMERO
   ============================================================ */
.obj_issue_toc {
  margin-top: 1rem;
}

.obj_issue_toc .section {
  margin-bottom: 1.5rem;
}

.obj_issue_toc .section > .title {
  display: inline-block;
  background-color: var(--cualo-verde-claro);
  color: var(--cualo-verde-hover) !important;
  padding: 0.4rem 1.25rem;
  border-radius: 20px;
  font-family: var(--fuente-cuerpo) !important;
  font-size: 0.8125rem !important;
  font-weight: 600 !important;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  border-top: none !important;
}

/* ============================================================
   15. PÁGINA "ACERCA DE"
   ============================================================ */
.about_section {
  margin-bottom: 2rem;
}

.about_section h2 {
  font-size: 1.375rem !important;
  color: var(--cualo-verde-hover) !important;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid var(--cualo-verde-claro);
  margin-bottom: 1rem;
}

.about_section p {
  line-height: 1.75;
  color: var(--cualo-texto);
}

/* ============================================================
   16. BREADCRUMBS
   ============================================================ */
.pkp_breadcrumbs {
  font-size: 0.8125rem !important;
  color: var(--cualo-texto-terciario) !important;
  margin-bottom: 1rem;
}

.pkp_breadcrumbs a {
  color: var(--cualo-texto-secundario) !important;
}

.pkp_breadcrumbs a:hover {
  color: var(--cualo-verde) !important;
}

/* ============================================================
   17. PAGINACIÓN
   ============================================================ */
.cmp_pagination {
  text-align: center;
  margin: 2rem 0;
}

.cmp_pagination a,
.cmp_pagination .current {
  display: inline-block;
  padding: 0.4rem 0.75rem;
  margin: 0 0.15rem;
  border-radius: var(--radio-borde);
  font-size: 0.875rem;
  font-weight: 500;
}

.cmp_pagination .current {
  background-color: var(--cualo-verde) !important;
  color: var(--cualo-blanco) !important;
}

.cmp_pagination a:hover {
  background-color: var(--cualo-verde-claro);
  text-decoration: none !important;
}

/* ============================================================
   18. TABLAS GENERALES
   ============================================================ */
table {
  border-collapse: collapse;
  width: 100%;
}

th {
  background-color: var(--cualo-verde-hover) !important;
  color: var(--cualo-blanco) !important;
  font-family: var(--fuente-cuerpo) !important;
  font-size: 0.8125rem !important;
  font-weight: 600 !important;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 0.75rem 1rem !important;
  text-align: left;
}

td {
  padding: 0.625rem 1rem !important;
  border-bottom: 1px solid var(--cualo-borde-suave) !important;
  font-size: 0.9375rem;
}

tr:hover td {
  background-color: var(--cualo-verde-10);
}

/* ============================================================
   19. BADGES DE IDIOMA
   ============================================================ */
.galley_link[href*="pdf"],
.galley_link[href*="PDF"] {
  background-color: var(--cualo-terracota) !important;
}

.galley_link[href*="html"],
.galley_link[href*="HTML"] {
  background-color: var(--cualo-azul) !important;
}

.galley_link[href*="xml"],
.galley_link[href*="XML"] {
  background-color: var(--cualo-verde) !important;
}

/* ============================================================
   20. ANUNCIOS
   ============================================================ */
.obj_announcement_summary {
  background-color: var(--cualo-blanco);
  border: 1px solid var(--cualo-borde-suave);
  border-left: 4px solid var(--cualo-ocre) !important;
  border-radius: var(--radio-borde);
  padding: 1rem 1.25rem;
  margin-bottom: 1rem;
  transition: box-shadow var(--transicion);
}

.obj_announcement_summary:hover {
  box-shadow: var(--sombra-suave);
}

.obj_announcement_summary .title a {
  color: var(--cualo-texto) !important;
  font-family: var(--fuente-display) !important;
}

.obj_announcement_summary .date {
  color: var(--cualo-texto-terciario);
  font-size: 0.8125rem;
}

/* ============================================================
   21. RESPONSIVE
   ============================================================ */
@media (max-width: 768px) {
  .pkp_structure_main {
    padding: 1rem 1.25rem !important;
    margin-top: 0.75rem;
    border-radius: 0;
  }

  .pkp_page_title,
  .page_title {
    font-size: 1.375rem !important;
  }

  .article_title {
    font-size: 1.5rem !important;
  }

  .article_abstract {
    padding: 1rem 1.25rem !important;
  }

  .pkp_block {
    padding: 1rem !important;
  }

  .pkp_site_name a,
  .pkp_site_name .is_text {
    font-size: 1.125rem !important;
  }
}

@media (max-width: 480px) {
  .galley_link {
    display: block !important;
    text-align: center;
    margin-bottom: 0.5rem;
  }

  .obj_article_summary .title a {
    font-size: 1rem !important;
  }
}

/* ============================================================
   22. UTILIDADES AUXILIARES
   ============================================================ */

/* Separador visual para secciones largas */
hr {
  border: none;
  border-top: 1px solid var(--cualo-borde-suave);
  margin: 2rem 0;
}

/* Ocultar el "Powered by OJS" genérico — opcional */
/*
.pkp_footer_content .pkp_brand_footer {
  opacity: 0.4;
  font-size: 0.7rem;
}
*/

/* Scrollbar personalizado (Webkit) */
::-webkit-scrollbar {
  width: 8px;
}

::-webkit-scrollbar-track {
  background: var(--cualo-crema);
}

::-webkit-scrollbar-thumb {
  background: var(--cualo-borde);
  border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
  background: var(--cualo-texto-terciario);
}

/* Selección de texto */
::selection {
  background-color: var(--cualo-verde-claro);
  color: var(--cualo-verde-hover);
}
