
/* 
 * This CSS file will be applied after all the built in styles.
 * 
 * CSS files are loaded in alphabetic order, hence the  "zzz" in 
 * the filename to force it to load after the other css files!
 * 
 * Add any local over-rides here. 
 * 
 * To totally replace a system css file, create a file of the same 
 * name in this directory. eg. messages.css
 * 
*/

a,
a:hover,
a:focus {
    color: #75bad7;
}




/* Deposit page: hide download table and actions */
.ep_summary_content_main > table,
.ep_summary_page_actions {
  display: none;
}

/* Deposit page: hide empty altmetric/funder rows to remove whitespace above abstract */
.journal #altmetric:not(:has(img[src])) {
  display: none;
}
.journal #funder:empty {
  display: none;
}
/* Add top margin to the abstract/resumen block on deposit pages */
.journal #resume {
  margin-top: 1.5rem !important;
  padding-top: 4px;
}

/* Sticky sidebars with independent scroll on desktop */
@media (min-width: 992px) {
  .region-content--main {
    align-items: start;
  }
  .sidebar-left,
  .sidebar-right {
    position: sticky;
    top: 0;
    max-height: 100vh;
    overflow-y: auto;
    overflow-x: hidden;
    scrollbar-width: none;
    -ms-overflow-style: none;
  }
  .sidebar-left::-webkit-scrollbar,
  .sidebar-right::-webkit-scrollbar {
    display: none;
  }
  .sidebar-left {
    padding-right: 10px;
  }
  .sidebar-right {
    padding-left: 10px;
  }
}

/* Home: no right sidebar, expand main content to fill the space */
.region-content--main.no-sidebar-right {
  grid-template-columns: minmax(100px, 200px) 1fr !important;
  grid-template-areas: "sidebar-left main-content" !important;
}

/* --- Client-side pagination --- */
.bd-pagination {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  justify-content: center;
  align-items: center;
  padding: 1rem 0;
  margin-top: 0.5rem;
}
.bd-pagination .bd-page-link {
  display: inline-block;
  padding: 0.55rem 1.1rem;
  border: 1px solid #d0d4d9;
  border-radius: 6px;
  background: #fff;
  color: #006d68;
  cursor: pointer;
  text-decoration: none;
  font-size: 1.35rem;
  transition: background 0.15s, border-color 0.15s;
}
.bd-pagination .bd-page-link:hover {
  background: #f0f4f5;
  border-color: #006d68;
}
.bd-pagination .bd-page-link.active {
  background: #006d68;
  color: #fff;
  border-color: #006d68;
  cursor: default;
}
.bd-pagination .bd-page-ellipsis {
  padding: 0.55rem 0.6rem;
  color: #999;
  font-size: 1.35rem;
}

/* Hide EPrints native search controls completely (search uses bd-pagination) */
.ep_search_controls,
.ep_search_controls_bottom {
  display: none !important;
}

/* --- Anti-FOUC loading -----------------------------------------------------
   Un script inline del template pone html.ct-boot antes del primer pintado.
   Header y footer se pintan de inmediato; toda la zona de contenido
   (menu + contenido + filtros) queda oculta con un spinner del color de la
   universidad hasta que ct-mkt.js termina (revealDesign) o salta el timeout. */
.ep_toolbox, .ep_view_menu, .ep_summary_page_actions, .ep_summary_content h3,
.main-content > table, .fa-navicon { display: none; }

/* Barra de scroll siempre presente: sin bandazos horizontales al cargar */
html { overflow-y: scroll; }

/* Home y paginas de autor no llevan sidebar derecho */
html.ct-nosbr .sidebar-right { display: none !important; }
html.ct-nosbr .region-content--main {
  grid-template-columns: minmax(100px, 200px) 1fr !important;
  grid-template-areas: "sidebar-left main-content" !important;
}

/* Zona de contenido oculta y con altura acotada mientras carga: el servidor
   manda todos los resultados y la paginacion luego deja 10; sin el tope el
   scroll creceria y se contraeria de golpe */
html.ct-boot .region-content--main {
  visibility: hidden;
  position: relative;
  overflow: hidden;
  min-height: 100vh;
  max-height: 100vh;
}

/* Spinner (el pseudo-elemento reactiva su visibility) */
html.ct-boot .region-content--main::before {
  content: "" !important;
  visibility: visible;
  position: absolute;
  z-index: 9;
  top: 25vh; left: 50%;
  width: 46px; height: 46px;
  margin-left: -23px;
  border: 4px solid rgba(0, 0, 0, 0.08);
  border-top-color: #75bad7;
  border-radius: 50%;
  animation: ct-spin 0.8s linear infinite;
}

html.ct-reveal .region-content--main { animation: ct-fadein 0.25s ease-out; }

@keyframes ct-spin { to { transform: rotate(360deg); } }
@keyframes ct-fadein { from { opacity: 0.35; } to { opacity: 1; } }

/* --- Movil: todos los menus arriba y el contenido debajo -----------------
   El theme maqueta .region-content--main con grid y, segun la plantilla
   (default vs default_internal), en <992px el sidebar-left acaba DEBAJO del
   contenido (p.ej. en resultados de busqueda quedaba a 2700px). Forzamos
   una sola columna con orden explicito: menus izquierda, filtros, contenido. */
@media (max-width: 991px) {
  .region-content--main {
    display: grid !important;
    grid-template-columns: 1fr !important;
    grid-template-areas: none !important;
  }
  .region-content--main > .sidebar-left  { grid-area: auto !important; order: 1; }
  .region-content--main > .sidebar-right { grid-area: auto !important; order: 2; }
  .region-content--main > .main-content  { grid-area: auto !important; order: 3; }
}
