@import url("https://fonts.googleapis.com/css2?family=Archivo:wdth,wght@75..100,400..800&family=Noto+Kufi+Arabic:wght@500..700&family=Noto+Naskh+Arabic:wght@400..700&display=swap");

/* =====================================================================
   JRCB · Journal of Research in Contracts and Business Law
   مجلة البحوث في العقود وقانون الأعمال
   Feuille de style de la revue (Journal Stylesheet)
   Cible : OJS 3.4.x, thème par défaut (Default Theme)
   Emplacement : Paramètres > Site Web > Apparence > Avancé > Feuille de style de la revue
   Version 1.3 · octobre 2026 (logos uniformisés ; logo CC BY 4.0 de la page d'accueil masqué)
   ===================================================================== */


/* 1. Palette et typographie ------------------------------------------ */

:root {
  --jrcb-maroon: #5A1C20;        /* couleur de l'en-tête */
  --jrcb-maroon-deep: #3F1114;   /* survol, pied de page */
  --jrcb-maroon-tint: #F6EFEF;   /* fonds légers */
  --jrcb-ink: #231B1C;           /* texte principal */
  --jrcb-muted: #66595A;         /* texte secondaire (contraste 6,5:1) */
  --jrcb-line: #E6DDDD;          /* filets */
  --jrcb-ground: #F3EFEE;        /* fond hors page */
  --jrcb-paper: #FFFFFF;

  --jrcb-ui: "Archivo", "Noto Kufi Arabic", "Helvetica Neue", Arial, sans-serif;
  --jrcb-text: "Noto Serif", "Noto Naskh Arabic", Georgia, "Times New Roman", serif;
  --jrcb-ar-ui: "Noto Kufi Arabic", "Archivo", Tahoma, sans-serif;
  --jrcb-ar-text: "Noto Naskh Arabic", "Noto Serif", "Traditional Arabic", serif;
}


/* 2. Base ----------------------------------------------------------- */

body {
  background: var(--jrcb-ground);
  color: var(--jrcb-ink);
  font-family: var(--jrcb-text);
}

.pkp_structure_page {
  margin-top: 0 !important;
  background: var(--jrcb-paper);
  box-shadow: 0 0 0 1px var(--jrcb-line), 0 12px 40px rgba(63, 17, 20, 0.08);
}

::selection {
  background: #E9D3D4;
  color: var(--jrcb-ink);
}

a {
  color: var(--jrcb-maroon);
  transition: color 0.15s ease, background-color 0.15s ease, border-color 0.15s ease;
}

a:hover,
a:focus {
  color: var(--jrcb-maroon-deep);
}

.pkp_structure_main a {
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}

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


/* 3. En-tête : image pleine largeur, sans déformation ---------------- */
/* Annule les hauteurs fixes et les aspect-ratio imposés par la feuille
   de style commune de la plateforme. */

.pkp_structure_head {
  background: var(--jrcb-paper);
  border-bottom: 0;
}

.pkp_head_wrapper,
.has_site_logo .pkp_head_wrapper {
  height: auto !important;
  padding: 0 !important;
}

.pkp_site_name_wrapper {
  background: var(--jrcb-paper);
  padding: 0 !important;
}

.pkp_site_name {
  padding: 0 !important;
}

.pkp_site_name .is_img {
  display: block;
  margin: 0;
  line-height: 0;
}

.pkp_site_name .is_img img {
  display: block;
  width: 100%;
  height: auto !important;
  max-width: 100% !important;
  max-height: none !important;
  aspect-ratio: auto !important;
  padding: 0 !important;
}


/* 4. Navigation (ordinateur) ----------------------------------------- */

.pkp_site_nav_menu {
  background: var(--jrcb-maroon);
}

@media (min-width: 992px) {

  /* Liens « Login / Register » posés sur le panneau bordeaux de l'en-tête.
     L'en-tête garde ce panneau à droite dans toutes les langues. */
  .pkp_navigation_user_wrapper {
    top: 6px !important;
    right: 0 !important;
    left: auto !important;
    padding: 0 2.6% 0 0 !important;
  }

  #navigationUser > li > a {
    color: #FFFFFF;
    font-family: var(--jrcb-ui);
    font-weight: 700;
    font-size: 14px;
    letter-spacing: 0.01em;
  }

  #navigationUser > li > a:hover,
  #navigationUser > li > a:focus {
    color: #FFFFFF;
    text-decoration: underline;
    text-underline-offset: 3px;
  }

  .pkp_navigation_primary_row {
    background: var(--jrcb-maroon);
    box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.2);
  }

  /* le thème cible le menu par son identifiant (#navigationPrimary) :
     il faut la même spécificité pour le remplacer */
  #navigationPrimary > li > a,
  .pkp_navigation_search_wrapper a {
    color: #FFFFFF;
    font-family: var(--jrcb-ui);
    font-weight: 600;
    font-size: 13px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    border-bottom: 3px solid transparent;
  }

  #navigationPrimary > li > a:hover,
  #navigationPrimary > li > a:focus,
  #navigationPrimary > li > a[aria-expanded="true"],
  .pkp_navigation_search_wrapper a:hover,
  .pkp_navigation_search_wrapper a:focus {
    color: #FFFFFF;
    border-bottom-color: #FFFFFF;
  }

  #navigationPrimary > li > a:focus-visible,
  .pkp_navigation_search_wrapper a:focus-visible,
  #navigationUser > li > a:focus-visible {
    outline-color: #FFFFFF;
  }

  /* petite flèche des menus déroulants */
  #navigationPrimary > li > a[data-toggle="dropdown"]::after {
    border-top-color: rgba(255, 255, 255, 0.75);
  }

  #navigationPrimary .dropdown-menu,
  #navigationUser .dropdown-menu {
    min-width: 15rem;
    padding: 6px 0;
    background: var(--jrcb-paper);
    border: 1px solid var(--jrcb-line);
    border-top: 3px solid var(--jrcb-maroon-deep);
    border-radius: 0 0 2px 2px;
    box-shadow: 0 10px 24px rgba(35, 27, 28, 0.14);
  }

  #navigationPrimary .dropdown-menu a,
  #navigationUser .dropdown-menu a {
    color: var(--jrcb-ink);
    font-family: var(--jrcb-ui);
    font-size: 14px;
    letter-spacing: 0;
    text-transform: none;
    padding: 8px 18px;
    border-inline-start: 3px solid transparent;
  }

  #navigationPrimary .dropdown-menu a:hover,
  #navigationPrimary .dropdown-menu a:focus,
  #navigationUser .dropdown-menu a:hover,
  #navigationUser .dropdown-menu a:focus {
    background: var(--jrcb-maroon-tint);
    color: var(--jrcb-maroon);
    border-inline-start-color: var(--jrcb-maroon);
  }
}


/* 5. Navigation et en-tête (tablette et téléphone) ------------------- */

@media (max-width: 991px) {

  .pkp_site_name_wrapper {
    display: flex;
    flex-direction: column;
    height: auto !important;
  }

  .pkp_site_name {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    width: 100%;
    height: auto !important;
    order: 0;
  }

  /* bouton menu : barre bordeaux pleine largeur sous l'image */
  .pkp_site_nav_toggle {
    position: relative !important;
    order: 1;
    width: 100% !important;
    height: 44px !important;
    background: var(--jrcb-maroon) !important;
  }

  .pkp_site_nav_menu {
    background: var(--jrcb-maroon);
  }

  .pkp_navigation_primary a,
  .pkp_navigation_user a,
  .pkp_navigation_search_wrapper a {
    color: #FFFFFF;
    font-family: var(--jrcb-ui);
  }
}


/* 6. Contenu principal --------------------------------------------- */

.pkp_structure_main {
  font-size: 15px;
  line-height: 1.7;
}

.pkp_structure_main::before,
.pkp_structure_main::after {
  background: var(--jrcb-line);
}

.pkp_structure_main h1,
.pkp_structure_main h2,
.pkp_structure_main h3,
.pkp_structure_main h4,
.pkp_block .title {
  font-family: var(--jrcb-ui);
}

.pkp_structure_main h1,
.pkp_structure_main .page_title {
  color: var(--jrcb-ink);
  font-weight: 700;
  font-size: 1.85rem;
  line-height: 1.25;
  text-wrap: balance;
}

/* titres de section : accueil et pages statiques */
.page_index_journal > section > h2,
.pkp_structure_main .page > h1 {
  position: relative;
  color: var(--jrcb-ink);
  font-weight: 700;
  font-size: 1.3rem;
  line-height: 1.3;
  padding-bottom: 10px;
  margin-bottom: 20px;
  border-bottom: 1px solid var(--jrcb-line);
}

.page_index_journal > section > h2::after,
.pkp_structure_main .page > h1::after {
  content: "";
  position: absolute;
  inset-inline-start: 0;
  bottom: -1px;
  width: 56px;
  height: 3px;
  background: var(--jrcb-maroon);
}

.page_index_journal .homepage_about strong {
  color: var(--jrcb-ink);
}


/* 7. Fil d'Ariane --------------------------------------------------- */

.cmp_breadcrumbs {
  font-family: var(--jrcb-ui);
  font-size: 12.5px;
  letter-spacing: 0.02em;
  color: var(--jrcb-muted);
}

.cmp_breadcrumbs a {
  color: var(--jrcb-muted);
}

.cmp_breadcrumbs a:hover,
.cmp_breadcrumbs a:focus {
  color: var(--jrcb-maroon);
}

.cmp_breadcrumbs .current {
  color: var(--jrcb-ink);
  font-weight: 600;
}

.cmp_breadcrumbs .separator {
  color: #BFB3B3;
}


/* 8. Numéro en cours et sommaires ----------------------------------- */

.current_issue_title {
  font-family: var(--jrcb-ui);
  font-weight: 600;
  font-size: 1.1rem;
  color: var(--jrcb-maroon);
}

.obj_issue_toc .published,
.obj_issue_toc .pub_id {
  font-family: var(--jrcb-ui);
  font-size: 13px;
  color: var(--jrcb-muted);
  font-variant-numeric: tabular-nums;
}

.obj_issue_toc .cover img,
.obj_issue_summary .cover img {
  border: 1px solid var(--jrcb-line);
  box-shadow: 0 1px 2px rgba(35, 27, 28, 0.12), 0 8px 20px rgba(35, 27, 28, 0.1);
}

.obj_issue_toc .sections .section > h2,
.obj_issue_toc .sections .section > h3 {
  font-family: var(--jrcb-ui);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--jrcb-maroon);
  padding-bottom: 8px;
  border-bottom: 1px solid var(--jrcb-line);
}

.cmp_article_list > li {
  padding-block: 14px;
  margin-bottom: 0;
  border-bottom: 1px solid var(--jrcb-line);
}

.cmp_article_list > li:last-child {
  border-bottom: 0;
}

.obj_article_summary > .title {
  font-family: var(--jrcb-ui);
  font-size: 16px;
  font-weight: 600;
  line-height: 1.4;
}

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

.obj_article_summary > .title a:hover,
.obj_article_summary > .title a:focus {
  color: var(--jrcb-maroon);
  text-decoration: underline;
}

.obj_article_summary .meta {
  font-family: var(--jrcb-ui);
  font-size: 13.5px;
  color: var(--jrcb-muted);
}

.obj_article_summary .pages {
  font-variant-numeric: tabular-nums;
}

/* bouton PDF dans les listes : contour bordeaux */
.obj_galley_link {
  background: var(--jrcb-paper);
  color: var(--jrcb-maroon);
  border: 0;
  border-radius: 2px;
  box-shadow: inset 0 0 0 1.5px var(--jrcb-maroon);
  font-family: var(--jrcb-ui);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.08em;
}

.obj_galley_link:hover,
.obj_galley_link:focus {
  background: var(--jrcb-maroon);
  color: #FFFFFF;
}

.current_issue .read_more,
.cmp_pagination a {
  color: var(--jrcb-maroon);
  font-family: var(--jrcb-ui);
}

.cmp_pagination .current {
  color: var(--jrcb-ink);
  font-weight: 700;
}


/* 8 b. Logos de la page d'accueil (champ « Additional Content ») ------ */
/* Chaque image reçoit le même cadre de 180 x 72 px ; les logos sont
   alignés en rangées centrées. Cette zone est pensée pour des logos :
   un paragraphe de texte s'y afficherait dans la rangée. */

.page_index_journal .additional_content {
  text-align: center;
  padding-block: 24px;
  border-top: 1px solid var(--jrcb-line);
}

.page_index_journal .additional_content > p {
  display: inline;
  margin: 0;
}

.page_index_journal .additional_content > p:has(img) {
  display: inline-block;
  vertical-align: middle;
  margin: 10px 14px;
}

.page_index_journal .additional_content img {
  display: block;
  width: 180px;       /* largeur du cadre */
  max-width: 100%;
  height: 72px;       /* hauteur du cadre */
  object-fit: contain;
  object-position: center;
}

/* Logo « CC BY 4.0 » (fichier mceclip7.png) masqué, en anglais et en arabe.
   Il contredit la licence déclarée par la revue (CC BY-NC 4.0).
   Pour le réafficher, supprimer ces deux règles. */
.page_index_journal .additional_content > p:has(img[src$="/mceclip7.png"]),
.page_index_journal .additional_content img[src$="/mceclip7.png"] {
  display: none !important;
}


/* 9. Archives -------------------------------------------------------- */

.obj_issue_summary .title {
  font-family: var(--jrcb-ui);
  font-weight: 600;
  font-size: 16px;
}

.obj_issue_summary .title a {
  color: var(--jrcb-ink);
}

.obj_issue_summary .title a:hover,
.obj_issue_summary .title a:focus {
  color: var(--jrcb-maroon);
}

.obj_issue_summary .series {
  font-family: var(--jrcb-ui);
  font-size: 13px;
  color: var(--jrcb-muted);
}


/* 10. Page article --------------------------------------------------- */

.obj_article_details .page_title {
  font-size: 1.85rem;
}

.obj_article_details .subtitle {
  font-family: var(--jrcb-ui);
  color: var(--jrcb-muted);
}

.obj_article_details .item .label {
  font-family: var(--jrcb-ui);
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--jrcb-maroon);
}

.obj_article_details .item.authors .name {
  font-family: var(--jrcb-ui);
  font-weight: 600;
}

.obj_article_details .item.authors .affiliation {
  color: var(--jrcb-muted);
  font-size: 14px;
}

.obj_article_details .item.abstract {
  line-height: 1.75;
}

.obj_article_details .item.doi .value,
.obj_article_details .item.keywords .value {
  overflow-wrap: anywhere;
}

.obj_article_details .entry_details,
.obj_article_details .entry_details .item {
  border-color: var(--jrcb-line);
}

/* bouton PDF principal de l'article : plein */
.obj_article_details .item.galleys .obj_galley_link,
.obj_article_details .supplementary_galleys_links .obj_galley_link {
  background: var(--jrcb-maroon);
  color: #FFFFFF;
  box-shadow: none;
}

.obj_article_details .item.galleys .obj_galley_link:hover,
.obj_article_details .item.galleys .obj_galley_link:focus {
  background: var(--jrcb-maroon-deep);
}


/* 11. Annonces ------------------------------------------------------- */

.obj_announcement_summary .title a,
.obj_announcement_summary h2 a,
.obj_announcement_summary h3 a {
  font-family: var(--jrcb-ui);
  color: var(--jrcb-ink);
}

.obj_announcement_summary .title a:hover,
.obj_announcement_summary h2 a:hover,
.obj_announcement_summary h3 a:hover {
  color: var(--jrcb-maroon);
}

.obj_announcement_summary .date,
.obj_announcement_full .date {
  font-family: var(--jrcb-ui);
  font-size: 13px;
  color: var(--jrcb-muted);
  font-variant-numeric: tabular-nums;
}


/* 12. Barre latérale ------------------------------------------------ */

.pkp_block .title {
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--jrcb-maroon);
  border-bottom: 2px solid var(--jrcb-maroon);
  padding-bottom: 7px;
  margin-bottom: 14px;
}

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

.pkp_block .content li {
  padding-block: 7px;
  border-bottom: 1px solid var(--jrcb-line);
}

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

.pkp_block .content a {
  color: var(--jrcb-ink);
  font-family: var(--jrcb-ui);
  font-size: 14px;
  text-decoration: none;
}

.pkp_block .content a:hover,
.pkp_block .content a:focus {
  color: var(--jrcb-maroon);
  text-decoration: underline;
}

.block_language .current,
.block_language .current a {
  color: var(--jrcb-maroon);
  font-weight: 700;
}

/* Blocs de logos (blocs personnalisés de la barre latérale) :
   chaque image est placée dans un cadre identique de 220 x 72 px,
   quelle que soit sa taille d'origine ou la taille fixée dans l'éditeur.
   Pour changer la taille de tous les logos, modifier ces deux valeurs. */

.pkp_structure_sidebar .block_custom .content {
  text-align: center;
  font-family: var(--jrcb-ui);
  font-size: 13px;
  line-height: 1.45;
  color: var(--jrcb-muted);
}

.pkp_structure_sidebar .block_custom .content p {
  margin: 0;
}

.pkp_structure_sidebar .block_custom .content a:has(img) {
  display: block;
  border-radius: 2px;
}

.pkp_structure_sidebar .block_custom .content img {
  display: block;
  width: 100%;
  max-width: 220px;   /* largeur du cadre */
  height: 72px;       /* hauteur du cadre */
  object-fit: contain;
  object-position: center;
  margin: 10px auto;
}

/* bloc « Soumettre un article » */
.pkp_block .block_make_submission_link {
  display: block;
  text-align: center;
  background: var(--jrcb-maroon);
  color: #FFFFFF;
  border: 0;
  border-radius: 2px;
  font-family: var(--jrcb-ui);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-decoration: none;
}

.pkp_block .block_make_submission_link:hover,
.pkp_block .block_make_submission_link:focus {
  background: var(--jrcb-maroon-deep);
  color: #FFFFFF;
  text-decoration: none;
}


/* 13. Boutons, formulaires, notifications ---------------------------- */

.cmp_button,
.cmp_form .buttons button,
.page_search .submit button,
.page_login .buttons button,
.page_register .buttons button {
  background: var(--jrcb-maroon);
  color: #FFFFFF;
  border: 1px solid var(--jrcb-maroon);
  border-radius: 2px;
  box-shadow: none;
  text-shadow: none;
  font-family: var(--jrcb-ui);
  font-weight: 600;
  letter-spacing: 0.03em;
}

.cmp_button:hover,
.cmp_button:focus,
.cmp_form .buttons button:hover,
.cmp_form .buttons button:focus,
.page_search .submit button:hover,
.page_search .submit button:focus {
  background: var(--jrcb-maroon-deep);
  border-color: var(--jrcb-maroon-deep);
  color: #FFFFFF;
}

.cmp_button_wire {
  background: transparent;
  color: var(--jrcb-maroon);
  border: 1px solid var(--jrcb-maroon);
  border-radius: 2px;
  font-family: var(--jrcb-ui);
}

.cmp_button_wire:hover,
.cmp_button_wire:focus {
  background: var(--jrcb-maroon);
  color: #FFFFFF;
}

.cmp_form input[type="text"],
.cmp_form input[type="email"],
.cmp_form input[type="password"],
.cmp_form input[type="url"],
.cmp_form input[type="tel"],
.cmp_form input[type="search"],
.cmp_form select,
.cmp_form textarea,
.page_search input[type="text"],
.page_search select {
  border: 1px solid #CFC4C4;
  border-radius: 2px;
}

.cmp_form input:focus,
.cmp_form select:focus,
.cmp_form textarea:focus,
.page_search input:focus,
.page_search select:focus {
  border-color: var(--jrcb-maroon);
  box-shadow: 0 0 0 3px rgba(90, 28, 32, 0.15);
  outline: 0;
}

.cmp_notification {
  background: var(--jrcb-maroon-tint);
  border-inline-start-color: var(--jrcb-maroon);
}


/* 14. Pied de page -------------------------------------------------- */

.pkp_structure_footer_wrapper {
  background: var(--jrcb-maroon-deep);
  border-top: 4px solid var(--jrcb-maroon);
  border-bottom: 0;
  color: rgba(255, 255, 255, 0.88);
}

.pkp_structure_footer {
  padding: 28px 30px;
  font-family: var(--jrcb-ui);
  font-size: 13.5px;
  line-height: 1.6;
}

.pkp_structure_footer a {
  color: #FFFFFF;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.pkp_brand_footer img {
  filter: brightness(0) invert(1);
  opacity: 0.8;
}


/* 15. Interface en arabe -------------------------------------------- */
/* L'espacement des lettres casse la liaison des lettres arabes. */

[lang^="ar"],
[lang^="ar"] * {
  letter-spacing: 0 !important;
}

html[lang^="ar"] body {
  font-family: var(--jrcb-ar-text);
}

html[lang^="ar"] .pkp_structure_main {
  font-size: 16px;
  line-height: 1.85;
}

html[lang^="ar"] .pkp_structure_main h1,
html[lang^="ar"] .pkp_structure_main h2,
html[lang^="ar"] .pkp_structure_main h3,
html[lang^="ar"] .pkp_structure_main h4,
html[lang^="ar"] .pkp_block .title,
html[lang^="ar"] #navigationPrimary a,
html[lang^="ar"] .pkp_navigation_search_wrapper a,
html[lang^="ar"] #navigationUser a,
html[lang^="ar"] .cmp_breadcrumbs,
html[lang^="ar"] .obj_article_summary > .title,
html[lang^="ar"] .obj_article_summary .meta,
html[lang^="ar"] .obj_article_details .item .label,
html[lang^="ar"] .pkp_block .content a,
html[lang^="ar"] .pkp_structure_footer {
  font-family: var(--jrcb-ar-ui);
  text-transform: none;
}

html[lang^="ar"] .obj_article_details .item.abstract {
  text-align: justify;
}


/* 16. Impression ---------------------------------------------------- */

@media print {
  body {
    background: #FFFFFF;
  }

  .pkp_site_nav_menu,
  .pkp_site_nav_toggle,
  .pkp_navigation_user_wrapper,
  .pkp_structure_sidebar,
  .pkp_structure_footer_wrapper,
  .cmp_breadcrumbs,
  .cmp_skip_to_content {
    display: none !important;
  }

  .pkp_structure_page {
    box-shadow: none;
    max-width: none;
  }

  .pkp_structure_main {
    width: auto !important;
    float: none !important;
    padding: 0 !important;
  }

  .pkp_structure_main::before,
  .pkp_structure_main::after {
    display: none;
  }

  a {
    color: #000000;
  }
}


/* 17. Animations réduites ------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
  * {
    transition: none !important;
  }
}
