/* ====================================================================
   MJBS — Proposition de feuille de style pour OJS 3.4 (theme Default)
   Palette : blanc, noir, bleu #0018A8
   Usage : personnalisation de l'affichage PUBLIC de la revue.

   IMPORTANT : si une feuille CSS est deja installee sur votre OJS,
   FUSIONNEZ les deux fichiers avant tout remplacement.
   Les selecteurs peuvent varier si un autre theme OJS est active.
   ==================================================================== */

:root {
  --mjbs-ink: #101010;
  --mjbs-blue: #0018A8;
  --mjbs-blue-soft: #F2F5FF;
  --mjbs-border: #DCE4FF;
  --mjbs-paper: #FFFFFF;
}

/* 1. Typographie et lisibilite */
body {
  background-color: var(--mjbs-paper);
  color: var(--mjbs-ink);
  font-family: Arial, Helvetica, sans-serif;
  -webkit-font-smoothing: antialiased;
}

.pkp_structure_main p,
.pkp_structure_main li {
  line-height: 1.7;
}

.pkp_structure_main p {
  overflow-wrap: break-word;
}

.pkp_structure_main h1,
.pkp_structure_main h2,
.pkp_structure_main h3 {
  color: var(--mjbs-ink);
  font-family: Arial, Helvetica, sans-serif;
  letter-spacing: -0.012em;
  line-height: 1.3;
}

.pkp_structure_main h1 {
  font-size: clamp(1.6rem, 3vw, 2.1rem);
}

.pkp_structure_main h2 {
  font-size: clamp(1.3rem, 2.3vw, 1.65rem);
}

/* 2. Couleurs des liens et navigation clavier */
.pkp_structure_main a,
.pkp_structure_sidebar a {
  color: var(--mjbs-blue);
  text-underline-offset: 3px;
}

.pkp_structure_main a:hover,
.pkp_structure_sidebar a:hover {
  color: var(--mjbs-blue);
  text-decoration: underline;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 2px solid var(--mjbs-blue);
  outline-offset: 3px;
}

/* 3. En-tete et logo de la revue */
.pkp_structure_head {
  background-color: var(--mjbs-paper);
  border-bottom: 3px solid var(--mjbs-blue);
  box-shadow: none;
}

.pkp_site_name .is_text,
.pkp_structure_head .pkp_site_name a {
  color: var(--mjbs-ink);
  font-weight: 700;
}

.pkp_site_name .is_img img {
  width: auto;
  height: auto;
  object-fit: contain;
}

/* 4. Menus principaux, sous-menus et recherche */
.pkp_site_nav_menu {
  background-color: var(--mjbs-paper);
}

.pkp_navigation_primary > li > a,
.pkp_navigation_search_wrapper > a,
.pkp_site_nav_menu a {
  color: var(--mjbs-ink);
}

.pkp_navigation_primary > li > a:hover,
.pkp_navigation_primary > li > a:focus,
.pkp_navigation_search_wrapper > a:hover,
.pkp_navigation_search_wrapper > a:focus {
  color: var(--mjbs-blue);
  border-bottom-color: var(--mjbs-blue);
}

/* Register / Login : texte blanc sur le bandeau noir.
   Uniquement les liens de premier niveau : les sous-menus restent lisibles. */
.pkp_structure_head .pkp_navigation_user > li > a,
.pkp_structure_head .pkp_navigation_user > li > a:link,
.pkp_structure_head .pkp_navigation_user > li > a:visited,
.pkp_structure_head .pkp_navigation_user > li > a:hover,
.pkp_structure_head .pkp_navigation_user > li > a:focus {
  color: #FFFFFF !important;
}

.pkp_structure_head .pkp_navigation_user > li > a:hover,
.pkp_structure_head .pkp_navigation_user > li > a:focus-visible {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.pkp_navigation_primary .dropdown-menu,
.pkp_navigation_user .dropdown-menu {
  background: var(--mjbs-paper);
  border: 1px solid var(--mjbs-border);
  box-shadow: 0 8px 22px rgba(0, 24, 168, 0.08);
}

.pkp_navigation_primary .dropdown-menu a,
.pkp_navigation_user .dropdown-menu a {
  color: var(--mjbs-ink);
}

.pkp_navigation_primary .dropdown-menu a:hover,
.pkp_navigation_user .dropdown-menu a:hover {
  color: var(--mjbs-blue);
  background: var(--mjbs-blue-soft);
}

/* 5. Contenu de la page d'accueil */
.pkp_page_index .homepage_about,
.page_index_journal .homepage_about,
.pkp_page_index .additional_content,
.page_index_journal .additional_content {
  margin-bottom: 2rem;
}

.pkp_structure_main .page > h1 {
  padding-bottom: 0.75rem;
  border-bottom: 2px solid var(--mjbs-border);
}

/* 6. Sommaires, couvertures et listes d'articles */
.obj_issue_toc .heading,
.page_index_journal .current_issue {
  margin-bottom: 1.5rem;
}

.obj_issue_toc .cover img,
.page_index_journal .current_issue .cover img {
  display: block;
  max-width: 100%;
  height: auto;
}

.cmp_article_list > li {
  padding: 1.2rem 0;
  border-bottom: 1px solid var(--mjbs-border);
}

.obj_article_summary .title,
.obj_article_summary .title a {
  color: var(--mjbs-ink);
  font-weight: 700;
  line-height: 1.4;
}

.obj_article_summary .title a:hover {
  color: var(--mjbs-blue);
}

.obj_article_summary .meta,
.obj_article_summary .authors {
  line-height: 1.6;
}

/* 7. Annonces et appels a contributions */
.obj_announcement_summary {
  padding: 1.1rem 1.25rem;
  margin-bottom: 1rem;
  border: 1px solid var(--mjbs-border);
  border-left: 4px solid var(--mjbs-blue);
  border-radius: 4px;
  background: var(--mjbs-paper);
}

.obj_announcement_summary h2,
.obj_announcement_summary h3 {
  margin-top: 0;
}

.obj_announcement_full img,
.obj_announcement_summary img,
.pkp_structure_main .additional_content img {
  max-width: 100%;
  height: auto;
}

/* 8. Barre laterale */
.pkp_structure_sidebar .pkp_block {
  padding-bottom: 1.25rem;
  margin-bottom: 1.5rem;
  border-bottom: 1px solid var(--mjbs-border);
}

.pkp_structure_sidebar .pkp_block .title {
  color: var(--mjbs-ink);
  font-weight: 700;
}

/* 9. Boutons publics */
.pkp_structure_main .cmp_button,
.pkp_structure_main a.cmp_button,
.pkp_structure_sidebar .block_make_submission a {
  border: 1px solid var(--mjbs-blue);
  border-radius: 4px;
  background: var(--mjbs-blue);
  color: var(--mjbs-paper);
  font-weight: 700;
  transition: background-color 0.15s ease, color 0.15s ease;
}

.pkp_structure_main .cmp_button:hover,
.pkp_structure_main a.cmp_button:hover,
.pkp_structure_sidebar .block_make_submission a:hover {
  background: var(--mjbs-paper);
  color: var(--mjbs-blue);
  text-decoration: none;
}

/* 10. Pied de page */
.pkp_structure_footer {
  background: var(--mjbs-ink);
  color: var(--mjbs-paper);
  border-top: 3px solid var(--mjbs-blue);
}

.pkp_structure_footer a {
  color: var(--mjbs-paper);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.pkp_structure_footer a:hover {
  color: #C9D3FF;
}

/* 11. Affichage sur ordinateur */
@media (min-width: 992px) {
  .pkp_site_name .is_img img {
    max-height: 92px;
  }

  .pkp_navigation_primary > li > a {
    font-size: 0.95rem;
    font-weight: 700;
  }
}

/* 12. Affichage sur tablette et telephone */
@media (max-width: 991px) {
  .pkp_site_nav_menu {
    border-bottom: 1px solid var(--mjbs-border);
  }

  .pkp_structure_main {
    overflow-wrap: anywhere;
  }

  .pkp_structure_main img,
  .pkp_structure_main iframe {
    max-width: 100%;
  }

  .obj_announcement_summary {
    padding: 1rem;
  }
}

/* 13. Respect de la preference de reduction des animations */
@media (prefers-reduced-motion: reduce) {
  .pkp_structure_main .cmp_button,
  .pkp_structure_sidebar .block_make_submission a {
    transition: none;
  }
}
