
/* ==========================================================
   OJS CLEAN MODERN JOURNAL THEME
   Visual target: white editorial header + orange/blue accents
   CSS-only, for: Settings > Website > Appearance > Advanced
   ========================================================== */

:root{
  --ej-orange:#ff7a1a;
  --ej-blue:#2d2dff;
  --ej-black:#0c0e12;
  --ej-text:#111216;
  --ej-muted:#6d6f75;
  --ej-line:#e9e9ec;
  --ej-soft:#f5f5f6;
  --ej-width:1160px;
}

/* ---------- GLOBAL ---------- */
html,body{
  margin:0!important;
  background:#fff!important;
  color:var(--ej-text)!important;
  font-family:Arial,Helvetica,sans-serif!important;
  -webkit-font-smoothing:antialiased;
}
*{box-sizing:border-box;}
a{text-decoration:none!important;}

.pkp_structure_page{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  background:#fff!important;
  box-shadow:none!important;
}

/* ---------- TOP ORANGE DEVELOPMENT STRIP ---------- */
body::before{
  content:"• SITE IS IN DEVELOPMENT — CONTENT AND FEATURES MAY CHANGE";
  display:block;
  width:100%;
  padding:6px 15px;
  background:var(--ej-orange);
  color:#fff6ee;
  text-align:center;
  font-family:"Courier New",monospace;
  font-size:10px;
  font-weight:700;
  letter-spacing:1.4px;
  text-transform:uppercase;
}

/* ---------- BLACK ISSN / LOGIN STRIP ---------- */
.pkp_structure_head{
  margin:0!important;
  padding:0!important;
  background:#fff!important;
  border:0!important;
  box-shadow:none!important;
}

.pkp_navigation_user_wrapper{
  position:relative!important;
  width:100%!important;
  max-width:none!important;
  min-height:43px!important;
  margin:0!important;
  padding:0!important;
  background:var(--ej-black)!important;
  border:0!important;
}

.pkp_navigation_user_wrapper::before{
  content:"ISSN 0000-0000  ·  e-ISSN 0000-0000";
  position:absolute;
  left:max(24px,calc((100% - var(--ej-width))/2));
  top:14px;
  color:#a8abb2;
  font-family:"Courier New",monospace;
  font-size:10px;
  letter-spacing:1px;
}

.pkp_navigation_user{
  max-width:var(--ej-width)!important;
  min-height:43px!important;
  margin:0 auto!important;
  padding:0 24px!important;
  display:flex!important;
  justify-content:flex-end!important;
  align-items:center!important;
}

.pkp_navigation_user > li{
  margin:0!important;
}

.pkp_navigation_user > li > a{
  padding:14px 10px!important;
  background:transparent!important;
  color:#aeb1b8!important;
  border:0!important;
  font-family:"Courier New",monospace!important;
  font-size:10px!important;
  font-weight:700!important;
  letter-spacing:1.1px!important;
  text-transform:uppercase!important;
}

.pkp_navigation_user > li > a:hover{
  color:#fff!important;
}

/* ---------- WHITE BRAND AREA ---------- */
.pkp_head_wrapper{
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  background:#fff!important;
}

.pkp_site_name_wrapper{
  width:100%!important;
  margin:0!important;
  padding:26px 0!important;
  background:#fff!important;
  border:0!important;
}

.pkp_site_name{
  position:relative!important;
  max-width:var(--ej-width)!important;
  min-height:86px!important;
  margin:0 auto!important;
  padding:0 24px!important;
  display:flex!important;
  align-items:center!important;
  gap:20px!important;
  overflow:visible!important;
  text-align:left!important;
}

/* Blue dot + orange slash logo mark */
.pkp_site_name::before{
  content:"";
  width:48px;
  height:55px;
  flex:0 0 48px;
  background:
    radial-gradient(circle at 9px 14px,var(--ej-blue) 0 8px,transparent 9px),
    linear-gradient(120deg,transparent 0 42%,var(--ej-orange) 43% 61%,transparent 62%);
}

/* Existing journal title */
.pkp_site_name > a,
.pkp_site_name .is_text{
  display:block!important;
  max-width:560px!important;
  margin:0!important;
  padding:0!important;
  color:#0a0b0e!important;
  background:none!important;
  font-size:32px!important;
  line-height:1.08!important;
  font-weight:800!important;
  letter-spacing:-1.3px!important;
  text-transform:none!important;
  white-space:normal!important;
  overflow:visible!important;
}

/* If journal uses uploaded logo */
.pkp_site_name img{
  max-width:560px!important;
  max-height:95px!important;
  width:auto!important;
  height:auto!important;
  object-fit:contain!important;
}

/* Status badges, like screenshot */
.pkp_site_name::after{
  content:"PEER REVIEWED   OPEN ACCESS   QUARTERLY   DOI REGISTERED";
  margin-left:auto;
  max-width:460px;
  padding:9px 14px;
  border:1px solid #ececef;
  border-radius:22px;
  background:#f8f8f9;
  color:#46474d;
  font-family:"Courier New",monospace;
  font-size:9px;
  font-weight:700;
  letter-spacing:1px;
  word-spacing:8px;
  line-height:1.6;
  text-align:center;
}

/* ---------- NAVIGATION ---------- */
.pkp_navigation_primary_wrapper{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  background:#fff!important;
  border-top:1px solid #f3f3f4!important;
  border-bottom:1px solid var(--ej-line)!important;
  box-shadow:none!important;
}

.pkp_navigation_primary{
  max-width:var(--ej-width)!important;
  margin:0 auto!important;
  padding:0 24px!important;
  display:flex!important;
  align-items:center!important;
  flex-wrap:wrap!important;
}

.pkp_navigation_primary > li{
  position:relative!important;
  margin:0!important;
}

.pkp_navigation_primary > li > a{
  position:relative!important;
  display:block!important;
  padding:17px 16px!important;
  border:0!important;
  background:transparent!important;
  color:#25262b!important;
  font-size:14px!important;
  font-weight:600!important;
  text-transform:none!important;
}

.pkp_navigation_primary > li:first-child > a{
  padding-left:0!important;
}

.pkp_navigation_primary > li > a::after{
  content:"";
  position:absolute;
  left:16px;
  right:16px;
  bottom:0;
  height:2px;
  background:transparent;
}

.pkp_navigation_primary > li:first-child > a::after{
  left:0;
}

.pkp_navigation_primary > li > a:hover::after,
.pkp_navigation_primary > li.current > a::after{
  background:var(--ej-orange);
}

.pkp_navigation_primary ul{
  border:1px solid var(--ej-line)!important;
  border-radius:0 0 8px 8px!important;
  background:#fff!important;
  box-shadow:0 12px 28px rgba(0,0,0,.08)!important;
}

.pkp_navigation_primary ul a{
  padding:10px 14px!important;
  color:#303136!important;
  background:#fff!important;
}

.pkp_navigation_primary ul a:hover{
  background:#f7f7f8!important;
  color:#000!important;
}

.pkp_navigation_search_wrapper a,
.pkp_search{
  color:#24252a!important;
}

.pkp_navigation_search_wrapper a:hover,
.pkp_search:hover{
  color:var(--ej-orange)!important;
}

/* ---------- FULL WIDTH MAIN ---------- */
.pkp_structure_content{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  background:#fff!important;
}

.pkp_structure_main{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:#fff!important;
}

.pkp_structure_sidebar{
  display:none!important;
}

.has_sidebar .pkp_structure_main{
  width:100%!important;
}

/* ---------- HOMEPAGE AIMS & SCOPE HERO ---------- */
/* This styles the standard OJS About-the-Journal block */
.page_index_journal .homepage_about,
.page_index_journal .about_site,
.page_index_journal .additional_content{
  position:relative!important;
  width:100%!important;
  max-width:none!important;
  min-height:430px!important;
  margin:0!important;
  padding:58px max(24px,calc((100% - var(--ej-width))/2)) 55px!important;
  background:var(--ej-soft)!important;
  border:0!important;
}

/* blue dot + orange slash + label */
.page_index_journal .homepage_about::before,
.page_index_journal .about_site::before{
  content:"●  /   AIMS & SCOPE";
  display:block;
  margin:0 0 18px!important;
  color:#232429;
  font-family:"Courier New",monospace;
  font-size:11px;
  font-weight:700;
  letter-spacing:2px;
}

/* Heading */
.page_index_journal .homepage_about > h2,
.page_index_journal .about_site > h2{
  max-width:590px!important;
  margin:0 0 18px!important;
  color:#08090c!important;
  font-size:48px!important;
  line-height:1.08!important;
  font-weight:800!important;
  letter-spacing:-2px!important;
}

/* Description */
.page_index_journal .homepage_about p,
.page_index_journal .about_site p,
.page_index_journal .additional_content p{
  max-width:720px!important;
  margin:0!important;
  color:#54555b!important;
  font-size:15px!important;
  line-height:1.7!important;
}

/* Make links blue */
.page_index_journal .homepage_about a,
.page_index_journal .about_site a,
.page_index_journal .additional_content a{
  color:var(--ej-blue)!important;
}

/* ---------- CURRENT ISSUE ---------- */
.current_issue,
.obj_issue_toc{
  max-width:var(--ej-width)!important;
  margin:0 auto!important;
  padding:48px 24px!important;
  background:#fff!important;
  border:0!important;
}

.current_issue h2,
.obj_issue_toc h2,
.obj_issue_toc .current_issue_title{
  margin:0 0 22px!important;
  color:#111216!important;
  font-size:27px!important;
  line-height:1.2!important;
  font-weight:800!important;
  letter-spacing:-.5px!important;
}

.current_issue .cover img,
.obj_issue_toc .cover img{
  border-radius:4px!important;
  box-shadow:0 8px 24px rgba(0,0,0,.12)!important;
}

/* ---------- ARTICLE LIST ---------- */
.obj_article_summary{
  margin:0!important;
  padding:22px 0!important;
  border:0!important;
  border-bottom:1px solid #eeeeef!important;
  background:#fff!important;
}

.obj_article_summary .title{
  margin:0 0 6px!important;
  font-size:18px!important;
  line-height:1.45!important;
  font-weight:700!important;
}

.obj_article_summary .title a{
  color:#131419!important;
}

.obj_article_summary .title a:hover{
  color:var(--ej-blue)!important;
}

.obj_article_summary .authors{
  color:#696a70!important;
  font-size:13px!important;
}

.obj_galley_link,
.galleys_links a{
  display:inline-block!important;
  padding:7px 12px!important;
  border:1px solid #dadade!important;
  border-radius:5px!important;
  background:#fff!important;
  color:#25262b!important;
  font-size:11px!important;
  font-weight:700!important;
  text-transform:uppercase!important;
  box-shadow:none!important;
}

.obj_galley_link:hover,
.galleys_links a:hover{
  border-color:#17181c!important;
  background:#17181c!important;
  color:#fff!important;
}

/* ---------- INNER PAGES ---------- */
.pkp_page_about .pkp_structure_main,
.pkp_page_issue .pkp_structure_main,
.pkp_page_search .pkp_structure_main,
.pkp_page_article .pkp_structure_main,
.pkp_page_user .pkp_structure_main{
  max-width:var(--ej-width)!important;
  margin:0 auto!important;
  padding:45px 24px!important;
}

.pkp_structure_main h1{
  color:#111216!important;
  font-size:31px!important;
  line-height:1.15!important;
  font-weight:800!important;
  letter-spacing:-1px!important;
}

.pkp_structure_main h2{
  color:#17181c!important;
  font-weight:750!important;
}

/* ---------- FORMS ---------- */
input[type="text"],
input[type="email"],
input[type="password"],
input[type="url"],
select,
textarea{
  border:1px solid #d7d7da!important;
  border-radius:5px!important;
  background:#fff!important;
  box-shadow:none!important;
}

input:focus,
select:focus,
textarea:focus{
  border-color:var(--ej-blue)!important;
  outline:none!important;
  box-shadow:0 0 0 3px rgba(45,45,255,.08)!important;
}

.pkp_button,
.cmp_button,
button.submit,
input[type="submit"]{
  border:1px solid #18191d!important;
  border-radius:5px!important;
  background:#18191d!important;
  color:#fff!important;
  font-weight:700!important;
  box-shadow:none!important;
}

.pkp_button:hover,
.cmp_button:hover,
button.submit:hover,
input[type="submit"]:hover{
  border-color:var(--ej-orange)!important;
  background:var(--ej-orange)!important;
}

/* ---------- FOOTER ---------- */
.pkp_structure_footer_wrapper{
  margin:0!important;
  padding:34px 0!important;
  background:var(--ej-black)!important;
  color:#b7bac1!important;
  border:0!important;
}

.pkp_structure_footer{
  max-width:var(--ej-width)!important;
  margin:0 auto!important;
  padding:0 24px!important;
}

.pkp_structure_footer a{
  color:#d8dae0!important;
}

.pkp_structure_footer a:hover{
  color:#fff!important;
}

.pkp_brand_footer{
  display:none!important;
}

/* ---------- RESPONSIVE ---------- */
@media(max-width:950px){
  .pkp_site_name{
    flex-wrap:wrap!important;
  }

  .pkp_site_name::after{
    margin-left:68px;
  }

  .page_index_journal .homepage_about > h2,
  .page_index_journal .about_site > h2{
    font-size:42px!important;
  }
}

@media(max-width:700px){
  body::before{
    font-size:8px;
  }

  .pkp_navigation_user_wrapper::before{
    display:none;
  }

  .pkp_site_name{
    padding:0 18px!important;
  }

  .pkp_site_name > a,
  .pkp_site_name .is_text{
    font-size:26px!important;
  }

  .pkp_site_name::after{
    width:100%;
    margin:12px 0 0 68px;
    max-width:calc(100% - 68px);
    font-size:8px;
  }

  .pkp_navigation_primary{
    padding:0 18px!important;
  }

  .page_index_journal .homepage_about,
  .page_index_journal .about_site,
  .page_index_journal .additional_content{
    min-height:auto!important;
    padding:45px 18px 48px!important;
  }

  .page_index_journal .homepage_about > h2,
  .page_index_journal .about_site > h2{
    font-size:35px!important;
    letter-spacing:-1px!important;
  }

  .page_index_journal .homepage_about p,
  .page_index_journal .about_site p,
  .page_index_journal .additional_content p{
    font-size:14px!important;
  }

  .current_issue,
  .obj_issue_toc{
    padding:38px 18px!important;
  }
}

@media(max-width:480px){
  .pkp_site_name::before{
    width:38px;
    flex-basis:38px;
  }

  .pkp_site_name::after{
    margin-left:0;
    max-width:100%;
  }

  .pkp_navigation_primary > li > a{
    padding:14px 9px!important;
    font-size:12px!important;
  }

  .page_index_journal .homepage_about > h2,
  .page_index_journal .about_site > h2{
    font-size:31px!important;
  }
}


/* ==========================================================
   USER REQUESTED FIXES
   1) Remove orange development strip
   2) Make black utility bar full width
   3) Remove empty right-side area / sidebar gap
   4) Keep all inner-page content inside centered page lines
   ========================================================== */

/* 1. Remove orange strip completely */
body::before{
  content:none !important;
  display:none !important;
  height:0 !important;
  padding:0 !important;
  margin:0 !important;
}

/* 2. Black top utility bar must span the full viewport */
.pkp_navigation_user_wrapper{
  position:relative !important;
  left:50% !important;
  right:auto !important;
  width:100vw !important;
  max-width:none !important;
  margin-left:-50vw !important;
  margin-right:0 !important;
  padding:0 !important;
  background:var(--ej-black) !important;
  border:0 !important;
  box-shadow:none !important;
}

/* keep ISSN and login/register aligned to same centered content width */
.pkp_navigation_user{
  width:100% !important;
  max-width:var(--ej-width) !important;
  margin:0 auto !important;
  padding:0 24px !important;
  box-sizing:border-box !important;
}

/* 3. Remove blank right column / sidebar / inherited two-column spacing */
.pkp_structure_content,
.pkp_structure_content.has_sidebar{
  display:block !important;
  grid-template-columns:none !important;
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
}

.pkp_structure_sidebar,
.pkp_structure_sidebar.left,
.pkp_structure_sidebar.right{
  display:none !important;
  width:0 !important;
  max-width:0 !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
}

.has_sidebar .pkp_structure_main,
.pkp_structure_content.has_sidebar .pkp_structure_main,
.pkp_structure_main{
  float:none !important;
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding-left:0 !important;
  padding-right:0 !important;
  border-left:0 !important;
  border-right:0 !important;
}

/* Remove stray theme pseudo-elements/vertical separators */
.pkp_structure_content::before,
.pkp_structure_content::after,
.pkp_structure_main::before,
.pkp_structure_main::after,
.pkp_structure_sidebar::before,
.pkp_structure_sidebar::after{
  content:none !important;
  display:none !important;
}

/* 4. Inner pages: keep content neatly inside centered left/right lines */
body:not(.pkp_page_index) .pkp_structure_content{
  max-width:var(--ej-width) !important;
  width:calc(100% - 48px) !important;
  margin:0 auto !important;
  padding:0 !important;
  border-left:1px solid var(--ej-line) !important;
  border-right:1px solid var(--ej-line) !important;
  background:#fff !important;
}

body:not(.pkp_page_index) .pkp_structure_main{
  max-width:none !important;
  width:100% !important;
  margin:0 !important;
  padding:42px 46px 55px !important;
  box-sizing:border-box !important;
}

/* Registration/login/profile/search/article pages should all obey the same container */
.pkp_page_user .pkp_structure_main,
.pkp_page_login .pkp_structure_main,
.pkp_page_register .pkp_structure_main,
.pkp_page_about .pkp_structure_main,
.pkp_page_issue .pkp_structure_main,
.pkp_page_search .pkp_structure_main,
.pkp_page_article .pkp_structure_main{
  max-width:none !important;
  width:100% !important;
  margin:0 !important;
  padding:42px 46px 55px !important;
}

/* Breadcrumb and forms stay within the content line */
.cmp_breadcrumbs,
.cmp_form,
.page_register,
.page_login,
.page_about,
.page_search,
.page_issue,
.page_article{
  max-width:100% !important;
  margin-left:0 !important;
  margin-right:0 !important;
}

/* Fix any inherited fixed/absolute search alignment causing right-side blank box */
.pkp_navigation_search_wrapper,
.pkp_search{
  position:static !important;
  float:none !important;
  right:auto !important;
  left:auto !important;
  width:auto !important;
  margin-left:auto !important;
}

/* Keep the white navigation/header full width and clean */
.pkp_navigation_primary_wrapper{
  left:auto !important;
  width:100% !important;
  margin-left:0 !important;
  margin-right:0 !important;
}

/* Keep content aligned visually with header/nav */
.pkp_navigation_primary,
.pkp_site_name,
.current_issue,
.obj_issue_toc{
  max-width:var(--ej-width) !important;
}

/* Mobile */
@media(max-width:700px){
  body:not(.pkp_page_index) .pkp_structure_content{
    width:calc(100% - 24px) !important;
  }

  body:not(.pkp_page_index) .pkp_structure_main,
  .pkp_page_user .pkp_structure_main,
  .pkp_page_login .pkp_structure_main,
  .pkp_page_register .pkp_structure_main,
  .pkp_page_about .pkp_structure_main,
  .pkp_page_issue .pkp_structure_main,
  .pkp_page_search .pkp_structure_main,
  .pkp_page_article .pkp_structure_main{
    padding:28px 18px 40px !important;
  }
}


/* ==========================================================
   FINAL FIX — FULL-WIDTH BLACK LOGIN / REGISTER BAR ONLY
   No other design/color changes
   ========================================================== */

.pkp_navigation_user_wrapper{
  position:relative !important;
  left:50% !important;
  right:auto !important;
  width:100vw !important;
  max-width:none !important;
  margin-left:-50vw !important;
  margin-right:0 !important;
  padding:0 !important;
  background:#0c0e12 !important;
  border:0 !important;
}

/* keep its inner content aligned with the journal page */
.pkp_navigation_user{
  width:100% !important;
  max-width:1160px !important;
  margin:0 auto !important;
  padding-left:24px !important;
  padding-right:24px !important;
  box-sizing:border-box !important;
}

/* remove any inherited blue/right-side background from parent wrappers */
.pkp_structure_head,
.pkp_head_wrapper{
  background:#ffffff !important;
}


/* ==========================================================
   LOGIN + REGISTER INTERFACE — CLEAN CARD STYLE
   ========================================================== */

/* Keep the existing header/nav design unchanged. Only login/register pages below. */
body.pkp_page_login .pkp_structure_content,
body.pkp_page_register .pkp_structure_content,
body.pkp_page_user.pkp_op_login .pkp_structure_content,
body.pkp_page_user.pkp_op_register .pkp_structure_content{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  background:#fff !important;
}

body.pkp_page_login .pkp_structure_main,
body.pkp_page_register .pkp_structure_main,
body.pkp_page_user.pkp_op_login .pkp_structure_main,
body.pkp_page_user.pkp_op_register .pkp_structure_main{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 0 70px !important;
  border:0 !important;
  background:#fff !important;
}

/* Remove breadcrumb on authentication pages */
body.pkp_page_login .cmp_breadcrumbs,
body.pkp_page_register .cmp_breadcrumbs,
body.pkp_page_user.pkp_op_login .cmp_breadcrumbs,
body.pkp_page_user.pkp_op_register .cmp_breadcrumbs{
  display:none !important;
}

/* Main auth page wrapper */
body.pkp_page_login .page_login,
body.pkp_page_register .page_register,
body.pkp_page_user.pkp_op_login .page_login,
body.pkp_page_user.pkp_op_register .page_register{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
}

/* Light-grey welcome heading panel */
body.pkp_page_login .page_login > h1,
body.pkp_page_register .page_register > h1,
body.pkp_page_user.pkp_op_login .page_login > h1,
body.pkp_page_user.pkp_op_register .page_register > h1{
  width:100% !important;
  margin:0 !important;
  padding:42px max(30px,calc((100% - 1160px)/2)) 28px !important;
  background:#f5f5f6 !important;
  color:#111216 !important;
  font-size:31px !important;
  line-height:1.15 !important;
  font-weight:800 !important;
  letter-spacing:-1px !important;
}

body.pkp_page_login .page_login > h1::before,
body.pkp_page_user.pkp_op_login .page_login > h1::before{
  content:"▰  SIGN IN";
  display:block;
  margin-bottom:11px;
  color:#55585f;
  font-family:"Courier New",monospace;
  font-size:10px;
  font-weight:700;
  letter-spacing:1.5px;
  text-transform:uppercase;
}

body.pkp_page_register .page_register > h1::before,
body.pkp_page_user.pkp_op_register .page_register > h1::before{
  content:"▰  CREATE ACCOUNT";
  display:block;
  margin-bottom:11px;
  color:#55585f;
  font-family:"Courier New",monospace;
  font-size:10px;
  font-weight:700;
  letter-spacing:1.5px;
  text-transform:uppercase;
}

body.pkp_page_login .page_login > h1::after,
body.pkp_page_user.pkp_op_login .page_login > h1::after{
  content:"Sign in to submit manuscripts and track your submissions.";
  display:block;
  margin-top:8px;
  color:#777a80;
  font-size:13px;
  line-height:1.55;
  font-weight:400;
  letter-spacing:0;
}

body.pkp_page_register .page_register > h1::after,
body.pkp_page_user.pkp_op_register .page_register > h1::after{
  content:"Create your account to submit manuscripts and manage your profile.";
  display:block;
  margin-top:8px;
  color:#777a80;
  font-size:13px;
  line-height:1.55;
  font-weight:400;
  letter-spacing:0;
}

/* Centered login/register card */
body.pkp_page_login .page_login .cmp_form,
body.pkp_page_user.pkp_op_login .page_login .cmp_form{
  width:calc(100% - 30px) !important;
  max-width:390px !important;
  margin:26px auto 0 !important;
  padding:24px !important;
  border:1px solid #e5e6e9 !important;
  border-radius:10px !important;
  background:#fff !important;
  box-shadow:0 8px 24px rgba(0,0,0,.06) !important;
}

body.pkp_page_register .page_register .cmp_form,
body.pkp_page_user.pkp_op_register .page_register .cmp_form{
  width:calc(100% - 30px) !important;
  max-width:620px !important;
  margin:26px auto 0 !important;
  padding:24px !important;
  border:1px solid #e5e6e9 !important;
  border-radius:10px !important;
  background:#fff !important;
  box-shadow:0 8px 24px rgba(0,0,0,.06) !important;
}

/* Remove old fieldset lines */
body.pkp_page_login .cmp_form fieldset,
body.pkp_page_register .cmp_form fieldset,
body.pkp_page_user.pkp_op_login .cmp_form fieldset,
body.pkp_page_user.pkp_op_register .cmp_form fieldset{
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
}

body.pkp_page_login .cmp_form legend,
body.pkp_page_register .cmp_form legend,
body.pkp_page_user.pkp_op_login .cmp_form legend,
body.pkp_page_user.pkp_op_register .cmp_form legend{
  margin:0 0 16px !important;
  padding:0 !important;
  color:#111216 !important;
  font-size:15px !important;
  font-weight:700 !important;
}

/* Labels */
body.pkp_page_login .cmp_form label,
body.pkp_page_register .cmp_form label,
body.pkp_page_user.pkp_op_login .cmp_form label,
body.pkp_page_user.pkp_op_register .cmp_form label{
  display:block !important;
  margin:0 0 6px !important;
  color:#25262b !important;
  font-size:11px !important;
  line-height:1.3 !important;
  font-weight:700 !important;
}

/* Form controls */
body.pkp_page_login .cmp_form input[type="text"],
body.pkp_page_login .cmp_form input[type="email"],
body.pkp_page_login .cmp_form input[type="password"],
body.pkp_page_register .cmp_form input[type="text"],
body.pkp_page_register .cmp_form input[type="email"],
body.pkp_page_register .cmp_form input[type="password"],
body.pkp_page_register .cmp_form select,
body.pkp_page_user.pkp_op_login .cmp_form input[type="text"],
body.pkp_page_user.pkp_op_login .cmp_form input[type="email"],
body.pkp_page_user.pkp_op_login .cmp_form input[type="password"],
body.pkp_page_user.pkp_op_register .cmp_form input[type="text"],
body.pkp_page_user.pkp_op_register .cmp_form input[type="email"],
body.pkp_page_user.pkp_op_register .cmp_form input[type="password"],
body.pkp_page_user.pkp_op_register .cmp_form select{
  width:100% !important;
  min-height:40px !important;
  padding:9px 11px !important;
  border:1px solid #e2e3e6 !important;
  border-radius:6px !important;
  background:#fff !important;
  color:#1b1c20 !important;
  font-size:13px !important;
  box-shadow:none !important;
}

body.pkp_page_login .cmp_form input:focus,
body.pkp_page_register .cmp_form input:focus,
body.pkp_page_register .cmp_form select:focus,
body.pkp_page_user.pkp_op_login .cmp_form input:focus,
body.pkp_page_user.pkp_op_register .cmp_form input:focus,
body.pkp_page_user.pkp_op_register .cmp_form select:focus{
  border-color:#3844ef !important;
  outline:none !important;
  box-shadow:0 0 0 3px rgba(56,68,239,.08) !important;
}

/* Buttons */
body.pkp_page_login .cmp_form .buttons,
body.pkp_page_register .cmp_form .buttons,
body.pkp_page_user.pkp_op_login .cmp_form .buttons,
body.pkp_page_user.pkp_op_register .cmp_form .buttons{
  margin-top:13px !important;
  padding:0 !important;
  border:0 !important;
}

body.pkp_page_login .cmp_form button.submit,
body.pkp_page_login .cmp_form input[type="submit"],
body.pkp_page_register .cmp_form button.submit,
body.pkp_page_register .cmp_form input[type="submit"],
body.pkp_page_user.pkp_op_login .cmp_form button.submit,
body.pkp_page_user.pkp_op_login .cmp_form input[type="submit"],
body.pkp_page_user.pkp_op_register .cmp_form button.submit,
body.pkp_page_user.pkp_op_register .cmp_form input[type="submit"]{
  width:100% !important;
  min-height:41px !important;
  margin:0 !important;
  padding:10px 16px !important;
  border:0 !important;
  border-radius:6px !important;
  background:#3844ef !important;
  color:#fff !important;
  font-size:12px !important;
  line-height:1 !important;
  font-weight:700 !important;
  box-shadow:none !important;
  cursor:pointer !important;
}

body.pkp_page_login .cmp_form button.submit:hover,
body.pkp_page_login .cmp_form input[type="submit"]:hover,
body.pkp_page_register .cmp_form button.submit:hover,
body.pkp_page_register .cmp_form input[type="submit"]:hover{
  background:#2935da !important;
}

/* Links */
body.pkp_page_login .page_login a,
body.pkp_page_register .page_register a,
body.pkp_page_user.pkp_op_login .page_login a,
body.pkp_page_user.pkp_op_register .page_register a{
  color:#3844ef !important;
  font-weight:600 !important;
}

body.pkp_page_login .page_login a:hover,
body.pkp_page_register .page_register a:hover{
  color:#232cc0 !important;
}

/* Notifications/errors */
body.pkp_page_login .cmp_notification,
body.pkp_page_register .cmp_notification{
  max-width:620px !important;
  margin:18px auto !important;
  border-radius:7px !important;
}

@media(max-width:700px){
  body.pkp_page_login .page_login > h1,
  body.pkp_page_register .page_register > h1,
  body.pkp_page_user.pkp_op_login .page_login > h1,
  body.pkp_page_user.pkp_op_register .page_register > h1{
    padding-left:20px !important;
    padding-right:20px !important;
    font-size:27px !important;
  }

  body.pkp_page_login .page_login .cmp_form,
  body.pkp_page_register .page_register .cmp_form,
  body.pkp_page_user.pkp_op_login .page_login .cmp_form,
  body.pkp_page_user.pkp_op_register .page_register .cmp_form{
    padding:20px !important;
  }
}


/* ==========================================================
   HEADER / PAGE COLOR FIXES
   Requested:
   - black Login/Register bar directly BELOW navigation
   - remove ISSN text from black bar
   - keep bar content aligned in one line
   - all page content area light grey
   - header/navigation remain white
   ========================================================== */

/* Re-order header pieces: white journal header + nav first, black user bar last */
.pkp_structure_head{
  display:flex !important;
  flex-direction:column !important;
  width:100% !important;
  background:#fff !important;
}

.pkp_head_wrapper{
  order:1 !important;
  width:100% !important;
  background:#fff !important;
}

.pkp_navigation_user_wrapper{
  order:2 !important;
  position:relative !important;
  left:auto !important;
  right:auto !important;
  top:auto !important;
  width:100% !important;
  max-width:none !important;
  min-height:48px !important;
  margin:0 !important;
  padding:0 !important;
  background:#0c0e12 !important;
  border:0 !important;
  box-shadow:none !important;
  z-index:3 !important;
}

/* Remove ISSN/e-ISSN completely */
.pkp_navigation_user_wrapper::before{
  content:none !important;
  display:none !important;
}

/* Keep login/register neatly aligned on one line */
.pkp_navigation_user{
  width:100% !important;
  max-width:1160px !important;
  min-height:48px !important;
  margin:0 auto !important;
  padding:0 24px !important;
  box-sizing:border-box !important;
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:4px !important;
  white-space:nowrap !important;
}

.pkp_navigation_user > li{
  display:block !important;
  margin:0 !important;
  padding:0 !important;
}

.pkp_navigation_user > li > a{
  display:block !important;
  padding:16px 10px !important;
  color:#d1d3d8 !important;
  background:transparent !important;
  border:0 !important;
  font-family:"Courier New",monospace !important;
  font-size:10px !important;
  font-weight:700 !important;
  letter-spacing:1.1px !important;
  text-transform:uppercase !important;
}

.pkp_navigation_user > li > a:hover{
  color:#fff !important;
}

/* Header + navigation stay white */
.pkp_site_name_wrapper,
.pkp_site_name,
.pkp_navigation_primary_wrapper,
.pkp_navigation_primary{
  background:#fff !important;
}

/* All content pages use a soft grey background */
body,
.pkp_structure_page,
.pkp_structure_content,
.pkp_structure_main{
  background:#f3f3f4 !important;
}

/* Keep the entire header area white even though page body is grey */
.pkp_structure_head,
.pkp_head_wrapper,
.pkp_site_name_wrapper,
.pkp_navigation_primary_wrapper{
  background:#fff !important;
}

/* Center inner pages inside clean boundaries */
body:not(.pkp_page_index) .pkp_structure_content{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  background:#f3f3f4 !important;
}

body:not(.pkp_page_index) .pkp_structure_main{
  width:calc(100% - 48px) !important;
  max-width:1160px !important;
  margin:0 auto !important;
  padding:42px 46px 55px !important;
  border-left:1px solid #e0e0e3 !important;
  border-right:1px solid #e0e0e3 !important;
  background:#f3f3f4 !important;
  box-sizing:border-box !important;
}

/* Homepage content remains grey, header white */
.pkp_page_index .pkp_structure_content,
.pkp_page_index .pkp_structure_main{
  background:#f3f3f4 !important;
}

/* Prevent dropdowns from being hidden under black bar */
.pkp_navigation_primary ul{
  z-index:9999 !important;
}

/* Mobile */
@media(max-width:700px){
  .pkp_navigation_user{
    padding-left:18px !important;
    padding-right:18px !important;
  }

  body:not(.pkp_page_index) .pkp_structure_main{
    width:calc(100% - 24px) !important;
    padding:28px 18px 40px !important;
  }
}


/* ==========================================================
   FINAL LOGO + MOBILE HEADER FIX
   Requested changes:
   1) Remove the extra CSS-generated logo mark on desktop.
   2) Keep only the journal's uploaded logo artwork.
   3) Fix mobile header so logo fits cleanly and does not overlap content.
   4) Hide status badges on small screens to save space.
   ========================================================== */

/* REMOVE THE EXTRA LEFT-SIDE CSS LOGO MARK
   This prevents the duplicated blue-dot/orange-slash design. */
.pkp_site_name::before{
  content:none !important;
  display:none !important;
  width:0 !important;
  height:0 !important;
  flex:0 0 0 !important;
  background:none !important;
}

/* Clean desktop brand alignment after removing the extra mark */
.pkp_site_name{
  gap:0 !important;
}

/* Use the actual uploaded journal logo only */
.pkp_site_name img{
  display:block !important;
  max-width:560px !important;
  max-height:95px !important;
  width:auto !important;
  height:auto !important;
  object-fit:contain !important;
  object-position:left center !important;
}

/* If the site uses text instead of an uploaded logo, keep it neat */
.pkp_site_name > a,
.pkp_site_name .is_text{
  margin-left:0 !important;
}

/* ==========================================================
   MOBILE
   ========================================================== */
@media (max-width:700px){

  /* Keep header white and prevent clipping */
  .pkp_structure_head,
  .pkp_head_wrapper,
  .pkp_site_name_wrapper{
    width:100% !important;
    overflow:visible !important;
    background:#fff !important;
  }

  /* Compact, clean logo area */
  .pkp_site_name_wrapper{
    min-height:auto !important;
    padding:12px 0 !important;
  }

  .pkp_site_name{
    width:100% !important;
    min-height:64px !important;
    margin:0 !important;
    padding:0 14px 0 48px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
    flex-wrap:nowrap !important;
    overflow:visible !important;
  }

  /* Make the uploaded logo fully visible on phones */
  .pkp_site_name img{
    display:block !important;
    width:auto !important;
    height:auto !important;
    max-width:min(240px, calc(100vw - 76px)) !important;
    max-height:68px !important;
    margin:0 !important;
    object-fit:contain !important;
    object-position:left center !important;
  }

  /* Text-logo fallback */
  .pkp_site_name > a,
  .pkp_site_name .is_text{
    display:block !important;
    max-width:calc(100vw - 76px) !important;
    font-size:22px !important;
    line-height:1.15 !important;
    letter-spacing:-.5px !important;
    white-space:normal !important;
  }

  /* Hide desktop badges on mobile so they do not push/overlap the logo */
  .pkp_site_name::after{
    content:none !important;
    display:none !important;
  }

  /* Keep hamburger above everything and aligned with logo */
  .pkp_site_nav_toggle,
  .pkp_site_nav_toggle--transform,
  button.pkp_site_nav_toggle{
    position:absolute !important;
    top:12px !important;
    left:8px !important;
    z-index:10050 !important;
    margin:0 !important;
  }

  /* Prevent navigation from covering the first content block */
  .pkp_navigation_primary_wrapper{
    position:relative !important;
    clear:both !important;
    width:100% !important;
  }

  /* On mobile, do not leave a large blank area under the header */
  .page_index_journal .homepage_about,
  .page_index_journal .about_site,
  .page_index_journal .additional_content{
    min-height:auto !important;
    padding:26px 14px 32px !important;
  }

  .page_index_journal .homepage_about::before,
  .page_index_journal .about_site::before{
    margin-bottom:10px !important;
    font-size:9px !important;
    letter-spacing:1.4px !important;
  }

  .page_index_journal .homepage_about > h2,
  .page_index_journal .about_site > h2{
    margin-bottom:10px !important;
    font-size:27px !important;
    line-height:1.12 !important;
    letter-spacing:-.7px !important;
  }

  .page_index_journal .homepage_about p,
  .page_index_journal .about_site p,
  .page_index_journal .additional_content p{
    font-size:12px !important;
    line-height:1.55 !important;
  }
}

/* Extra-small phones */
@media (max-width:420px){
  .pkp_site_name{
    min-height:58px !important;
    padding-left:44px !important;
    padding-right:10px !important;
  }

  .pkp_site_name img{
    max-width:calc(100vw - 64px) !important;
    max-height:58px !important;
  }

  .pkp_site_name > a,
  .pkp_site_name .is_text{
    max-width:calc(100vw - 64px) !important;
    font-size:20px !important;
  }
}


/* ==========================================================
   SEARCH POSITION FIX
   Move Search to the far-right side of the main navigation row
   ========================================================== */

.pkp_navigation_primary_wrapper{
  position:relative !important;
}

.pkp_navigation_primary{
  padding-right:150px !important; /* reserve space for Search */
}

/* Put Search on the right side of the nav bar */
.pkp_navigation_search_wrapper{
  position:absolute !important;
  top:50% !important;
  right:max(24px, calc((100% - var(--ej-width))/2 + 24px)) !important;
  left:auto !important;
  bottom:auto !important;
  transform:translateY(-50%) !important;
  width:auto !important;
  margin:0 !important;
  padding:0 !important;
  float:none !important;
  z-index:20 !important;
}

.pkp_navigation_search_wrapper a{
  display:flex !important;
  align-items:center !important;
  gap:6px !important;
  margin:0 !important;
  padding:12px 0 !important;
  color:#24252a !important;
  font-size:13px !important;
  font-weight:700 !important;
  white-space:nowrap !important;
}

/* Remove any old full-width/search-row spacing */
.pkp_search,
.pkp_navigation_search_wrapper{
  min-height:0 !important;
}

/* Mobile: leave OJS search behavior normal so it does not clash with hamburger menu */
@media(max-width:700px){
  .pkp_navigation_primary{
    padding-right:18px !important;
  }

  .pkp_navigation_search_wrapper{
    position:static !important;
    transform:none !important;
    width:100% !important;
    margin:0 !important;
    padding:0 18px 10px !important;
  }

  .pkp_navigation_search_wrapper a{
    padding:10px 0 !important;
  }
}


/* ==========================================================
   LOGO SIZE + STATUS BADGE UPDATE
   - Make journal logo smaller
   - Show only "QUARTERLY"
   ========================================================== */

/* Smaller desktop logo */
.pkp_site_name img{
  max-width:360px !important;
  max-height:72px !important;
  width:auto !important;
  height:auto !important;
  object-fit:contain !important;
  object-position:left center !important;
}

/* If the site uses text instead of an uploaded logo */
.pkp_site_name > a,
.pkp_site_name .is_text{
  max-width:430px !important;
  font-size:27px !important;
}

/* Only show Quarterly badge */
.pkp_site_name::after{
  content:"QUARTERLY" !important;
  margin-left:auto !important;
  max-width:none !important;
  padding:9px 16px !important;
  border:1px solid #ececef !important;
  border-radius:22px !important;
  background:#f8f8f9 !important;
  color:#46474d !important;
  font-family:"Courier New",monospace !important;
  font-size:9px !important;
  font-weight:700 !important;
  letter-spacing:1px !important;
  word-spacing:0 !important;
  line-height:1.4 !important;
  text-align:center !important;
  white-space:nowrap !important;
}

/* Mobile logo size */
@media(max-width:700px){
  .pkp_site_name img{
    max-width:min(205px, calc(100vw - 76px)) !important;
    max-height:54px !important;
  }

  .pkp_site_name > a,
  .pkp_site_name .is_text{
    max-width:calc(100vw - 76px) !important;
    font-size:20px !important;
  }

  /* hide quarterly badge on small screens for clean header */
  .pkp_site_name::after{
    display:none !important;
    content:none !important;
  }
}


/* ==========================================================
   FINAL GLOBAL / LOGIN / MOBILE FIXES
   Requested:
   - ALL content pages light grey
   - ONE consistent font everywhere, including future/new text
   - Forgot password placed neatly below the password field
   - Mobile menu button/nav visible and usable
   - Mobile journal logo always visible
   ========================================================== */

/* ----------------------------------------------------------
   1) ONE GLOBAL FONT FOR EVERYTHING
   Any future text added in OJS will inherit this font too.
   ---------------------------------------------------------- */
html,
body,
body *,
button,
input,
select,
textarea,
.pkp_structure_page,
.pkp_structure_head,
.pkp_structure_content,
.pkp_structure_main,
.pkp_structure_sidebar,
.pkp_navigation_primary,
.pkp_navigation_user,
.pkp_site_name,
.cmp_form,
.obj_article_summary,
.obj_issue_toc,
.page_index_journal{
  font-family: Arial, Helvetica, sans-serif !important;
}

/* Keep only intentionally monospaced micro-labels as normal sans too */
.pkp_navigation_user > li > a,
.pkp_site_name::after,
.page_index_journal .homepage_about::before,
.page_index_journal .about_site::before{
  font-family: Arial, Helvetica, sans-serif !important;
}

/* ----------------------------------------------------------
   2) LIGHT GREY ON ALL CONTENT PAGES
   Header/nav/logo areas remain white, black account bar unchanged.
   ---------------------------------------------------------- */
html,
body,
.pkp_structure_page{
  background:#f3f3f4 !important;
}

.pkp_structure_content,
.pkp_structure_main,
.pkp_page_index .pkp_structure_content,
.pkp_page_index .pkp_structure_main,
body:not(.pkp_page_index) .pkp_structure_content,
body:not(.pkp_page_index) .pkp_structure_main,
.page_index_journal,
.page_about,
.page_article,
.page_issue,
.page_search,
.page_login,
.page_register,
.page_user,
.current_issue,
.obj_issue_toc,
.obj_article_summary{
  background:#f3f3f4 !important;
}

/* Header always white */
.pkp_structure_head,
.pkp_head_wrapper,
.pkp_site_name_wrapper,
.pkp_site_name,
.pkp_navigation_primary_wrapper,
.pkp_navigation_primary{
  background:#fff !important;
}

/* Keep cards/forms white for contrast on grey pages */
.cmp_form,
body.pkp_page_login .page_login .cmp_form,
body.pkp_page_register .page_register .cmp_form,
body.pkp_page_user.pkp_op_login .page_login .cmp_form,
body.pkp_page_user.pkp_op_register .page_register .cmp_form,
.cmp_notification,
.pkp_block,
.obj_galley_link{
  background:#fff !important;
}

/* Homepage Aims & Scope remains grey, matching all pages */
.page_index_journal .homepage_about,
.page_index_journal .about_site,
.page_index_journal .additional_content{
  background:#f3f3f4 !important;
}

/* ----------------------------------------------------------
   3) LOGIN PAGE — FIX FORGOT PASSWORD POSITION
   Put "Forgot your password?" directly below Password field.
   ---------------------------------------------------------- */

/* Let the password row wrap cleanly instead of placing the link on the right */
body.pkp_page_login .cmp_form .fields > div,
body.pkp_page_user.pkp_op_login .cmp_form .fields > div,
body.pkp_page_login .cmp_form .field,
body.pkp_page_user.pkp_op_login .cmp_form .field{
  width:100% !important;
  display:block !important;
  clear:both !important;
}

/* Password / recovery link should occupy its own line */
body.pkp_page_login .page_login a[href*="lostPassword"],
body.pkp_page_login .page_login a[href*="resetPassword"],
body.pkp_page_login .page_login a[href*="password"],
body.pkp_page_user.pkp_op_login .page_login a[href*="lostPassword"],
body.pkp_page_user.pkp_op_login .page_login a[href*="resetPassword"],
body.pkp_page_user.pkp_op_login .page_login a[href*="password"]{
  display:block !important;
  width:100% !important;
  margin:6px 0 16px !important;
  padding:0 !important;
  float:none !important;
  clear:both !important;
  text-align:left !important;
  font-size:12px !important;
  line-height:1.4 !important;
  color:#3844ef !important;
}

/* OJS sometimes outputs the recovery link through a dedicated class */
body.pkp_page_login .cmp_form .password_forgot,
body.pkp_page_login .cmp_form .forgot_password,
body.pkp_page_login .cmp_form .lost_password,
body.pkp_page_user.pkp_op_login .cmp_form .password_forgot,
body.pkp_page_user.pkp_op_login .cmp_form .forgot_password,
body.pkp_page_user.pkp_op_login .cmp_form .lost_password{
  display:block !important;
  position:static !important;
  width:100% !important;
  margin:6px 0 16px !important;
  float:none !important;
  clear:both !important;
  text-align:left !important;
}

/* Ensure password input is full-width and link cannot sit beside it */
body.pkp_page_login .cmp_form input[type="password"],
body.pkp_page_user.pkp_op_login .cmp_form input[type="password"]{
  display:block !important;
  width:100% !important;
  margin:0 !important;
}

/* Register link stays below login button, aligned to the right */
body.pkp_page_login .page_login a[href*="register"],
body.pkp_page_user.pkp_op_login .page_login a[href*="register"]{
  display:block !important;
  margin:8px 0 0 !important;
  text-align:right !important;
  font-size:12px !important;
}

/* ----------------------------------------------------------
   4) MOBILE LOGO — ALWAYS VISIBLE, CLEAN, NO CLIPPING
   ---------------------------------------------------------- */
@media (max-width:700px){

  .pkp_structure_head,
  .pkp_head_wrapper,
  .pkp_site_name_wrapper{
    position:relative !important;
    width:100% !important;
    overflow:visible !important;
    background:#fff !important;
  }

  .pkp_site_name_wrapper{
    display:block !important;
    min-height:82px !important;
    padding:10px 0 !important;
  }

  .pkp_site_name{
    position:relative !important;
    display:flex !important;
    width:100% !important;
    max-width:none !important;
    min-height:62px !important;
    margin:0 !important;
    padding:0 54px 0 54px !important;
    align-items:center !important;
    justify-content:flex-start !important;
    flex-wrap:nowrap !important;
    overflow:visible !important;
    visibility:visible !important;
    opacity:1 !important;
  }

  .pkp_site_name a{
    display:block !important;
    max-width:100% !important;
    overflow:visible !important;
    visibility:visible !important;
    opacity:1 !important;
  }

  .pkp_site_name img{
    display:block !important;
    width:auto !important;
    height:auto !important;
    max-width:min(225px, calc(100vw - 118px)) !important;
    max-height:58px !important;
    margin:0 !important;
    object-fit:contain !important;
    object-position:left center !important;
    visibility:visible !important;
    opacity:1 !important;
  }

  .pkp_site_name > a,
  .pkp_site_name .is_text{
    max-width:calc(100vw - 118px) !important;
    font-size:20px !important;
    line-height:1.1 !important;
    white-space:normal !important;
  }

  /* Quarterly badge hidden on phones */
  .pkp_site_name::after{
    content:none !important;
    display:none !important;
  }

  /* --------------------------------------------------------
     5) MOBILE MENU — FORCE HAMBURGER / NAV TO BE AVAILABLE
     -------------------------------------------------------- */

  /* OJS hamburger toggle */
  .pkp_site_nav_toggle,
  button.pkp_site_nav_toggle,
  .pkp_site_nav_toggle--transform{
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
    position:absolute !important;
    top:20px !important;
    left:10px !important;
    width:34px !important;
    height:34px !important;
    margin:0 !important;
    padding:0 !important;
    z-index:10050 !important;
    background:#fff !important;
    border:1px solid #d9dadd !important;
    border-radius:3px !important;
    color:#111 !important;
  }

  /* Make the nav container available to OJS JS */
  .pkp_site_nav_menu{
    z-index:10020 !important;
  }

  /* Closed state: let OJS control visibility; do NOT permanently hide menu */
  .pkp_site_nav_menu--isOpen,
  .pkp_site_nav_menu.is_open,
  body.pkp_site_nav_is_open .pkp_site_nav_menu{
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
  }

  /* When menu is opened, make it readable and full-width */
  body.pkp_site_nav_is_open .pkp_site_nav_menu,
  .pkp_site_nav_menu--isOpen{
    position:relative !important;
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:14px 18px 20px !important;
    background:#fff !important;
    border-top:1px solid #e8e8eb !important;
    box-shadow:none !important;
    overflow:visible !important;
  }

  /* Navigation items stack cleanly on mobile */
  body.pkp_site_nav_is_open .pkp_navigation_primary,
  .pkp_site_nav_menu--isOpen .pkp_navigation_primary{
    display:block !important;
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:0 !important;
  }

  body.pkp_site_nav_is_open .pkp_navigation_primary > li,
  .pkp_site_nav_menu--isOpen .pkp_navigation_primary > li{
    display:block !important;
    width:100% !important;
    margin:0 !important;
  }

  body.pkp_site_nav_is_open .pkp_navigation_primary > li > a,
  .pkp_site_nav_menu--isOpen .pkp_navigation_primary > li > a{
    display:block !important;
    width:100% !important;
    padding:12px 4px !important;
    font-size:15px !important;
    color:#222 !important;
  }

  /* Mobile dropdowns must stay inside the opened menu */
  body.pkp_site_nav_is_open .pkp_navigation_primary ul,
  .pkp_site_nav_menu--isOpen .pkp_navigation_primary ul{
    position:static !important;
    display:block !important;
    width:100% !important;
    margin:4px 0 8px !important;
    padding:4px 12px !important;
    border:1px solid #e6e6e9 !important;
    background:#fff !important;
    box-shadow:none !important;
  }

  body.pkp_site_nav_is_open .pkp_navigation_primary ul li,
  .pkp_site_nav_menu--isOpen .pkp_navigation_primary ul li{
    display:block !important;
    width:100% !important;
  }

  body.pkp_site_nav_is_open .pkp_navigation_primary ul a,
  .pkp_site_nav_menu--isOpen .pkp_navigation_primary ul a{
    display:block !important;
    width:100% !important;
    padding:10px 6px !important;
    font-size:13px !important;
  }

  /* Search in opened mobile menu */
  body.pkp_site_nav_is_open .pkp_navigation_search_wrapper,
  .pkp_site_nav_menu--isOpen .pkp_navigation_search_wrapper{
    position:static !important;
    display:block !important;
    width:100% !important;
    margin:8px 0 0 !important;
    padding:0 !important;
    transform:none !important;
  }

  /* Mobile content stays grey */
  .pkp_structure_content,
  .pkp_structure_main,
  .page_index_journal,
  .page_index_journal .homepage_about,
  .page_index_journal .about_site,
  .page_index_journal .additional_content{
    background:#f3f3f4 !important;
  }
}

/* Extra-small devices */
@media (max-width:420px){
  .pkp_site_name{
    padding-left:50px !important;
    padding-right:16px !important;
  }

  .pkp_site_name img{
    max-width:calc(100vw - 88px) !important;
    max-height:54px !important;
  }
}


/* ==========================================================
   SEARCH BUTTON FIX
   - Prevent black background on click/focus
   - Show a magnifying-glass icon
   - Keep the same clean white navigation style
   ========================================================== */

.pkp_navigation_search_wrapper a,
.pkp_navigation_search_wrapper a:link,
.pkp_navigation_search_wrapper a:visited,
.pkp_navigation_search_wrapper a:hover,
.pkp_navigation_search_wrapper a:focus,
.pkp_navigation_search_wrapper a:active,
.pkp_search,
.pkp_search:link,
.pkp_search:visited,
.pkp_search:hover,
.pkp_search:focus,
.pkp_search:active{
  background:transparent !important;
  background-color:transparent !important;
  box-shadow:none !important;
  border:0 !important;
  outline:none !important;
  color:#24252a !important;
}

/* orange only on hover/focus, never a black box */
.pkp_navigation_search_wrapper a:hover,
.pkp_navigation_search_wrapper a:focus,
.pkp_navigation_search_wrapper a:active,
.pkp_search:hover,
.pkp_search:focus,
.pkp_search:active{
  color:var(--ej-orange) !important;
}

/* add search icon */
.pkp_navigation_search_wrapper a::before{
  content:"\1F50D";
  display:inline-block !important;
  margin-right:6px !important;
  font-size:14px !important;
  line-height:1 !important;
  vertical-align:-1px !important;
}

/* keep the search item aligned neatly */
.pkp_navigation_search_wrapper a{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:0 !important;
  padding:10px 0 !important;
  border-radius:0 !important;
}

/* Mobile search */
@media(max-width:700px){
  .pkp_navigation_search_wrapper a{
    display:inline-flex !important;
    align-items:center !important;
    background:transparent !important;
    color:#24252a !important;
  }

  .pkp_navigation_search_wrapper a:hover,
  .pkp_navigation_search_wrapper a:focus,
  .pkp_navigation_search_wrapper a:active{
    background:transparent !important;
    color:var(--ej-orange) !important;
  }
}


/* ==========================================================
   BEAUTIFUL TABLE STYLING
   - Clear visible borders
   - Clean academic look
   - Responsive on mobile
   ========================================================== */

/* All tables */
.pkp_structure_main table,
.page_index_journal table,
.cmp_form table,
.obj_article_details table,
.obj_issue_toc table,
table{
  width:100% !important;
  border-collapse:separate !important;
  border-spacing:0 !important;
  margin:20px 0 !important;
  background:#ffffff !important;
  border:1px solid #d9dde3 !important;
  border-radius:8px !important;
  overflow:hidden !important;
  box-shadow:0 2px 8px rgba(0,0,0,.04) !important;
}

/* Header cells */
.pkp_structure_main table thead th,
.page_index_journal table thead th,
table thead th,
table th{
  padding:11px 13px !important;
  background:#f0f1f3 !important;
  color:#15161a !important;
  border-right:1px solid #d9dde3 !important;
  border-bottom:1px solid #cfd4da !important;
  font-size:13px !important;
  font-weight:700 !important;
  line-height:1.4 !important;
  text-align:left !important;
  vertical-align:middle !important;
}

/* Body cells */
.pkp_structure_main table tbody td,
.page_index_journal table tbody td,
table tbody td,
table td{
  padding:11px 13px !important;
  background:#ffffff !important;
  color:#34363b !important;
  border-right:1px solid #e1e4e8 !important;
  border-bottom:1px solid #e1e4e8 !important;
  font-size:13px !important;
  line-height:1.5 !important;
  vertical-align:top !important;
}

/* Remove extra right border from last column */
table th:last-child,
table td:last-child{
  border-right:0 !important;
}

/* Remove extra bottom border from last row */
table tbody tr:last-child td{
  border-bottom:0 !important;
}

/* Alternate row shading */
table tbody tr:nth-child(even) td{
  background:#f8f9fa !important;
}

/* Row hover */
table tbody tr:hover td{
  background:#f2f5f8 !important;
}

/* First column can be slightly stronger */
table tbody td:first-child{
  color:#202126 !important;
  font-weight:500 !important;
}

/* Captions */
table caption{
  margin-bottom:8px !important;
  color:#2c2e33 !important;
  font-size:14px !important;
  font-weight:700 !important;
  text-align:left !important;
}

/* Links inside tables */
table a{
  color:#3844ef !important;
  font-weight:600 !important;
}

table a:hover{
  color:var(--ej-orange) !important;
}

/* Responsive tables */
@media(max-width:700px){
  .pkp_structure_main table,
  .page_index_journal table,
  table{
    display:block !important;
    width:100% !important;
    overflow-x:auto !important;
    -webkit-overflow-scrolling:touch !important;
    border-radius:6px !important;
  }

  table th,
  table td{
    min-width:110px !important;
    padding:9px 10px !important;
    font-size:12px !important;
    white-space:normal !important;
  }
}


/* ==========================================================
   SEARCH ICON CLEANUP
   Remove the tiny broken-square glyph beside Search.
   Keep the magnifying-glass icon and all other styling unchanged.
   ========================================================== */

/* Hide old/broken theme icon elements that can render as a square */
.pkp_navigation_search_wrapper .fa,
.pkp_navigation_search_wrapper .fas,
.pkp_navigation_search_wrapper .far,
.pkp_navigation_search_wrapper .icon,
.pkp_navigation_search_wrapper [class*="icon-"],
.pkp_navigation_search_wrapper .pkp_screen_reader + span{
  display:none !important;
}

/* Suppress any inherited icon pseudo-element on inner spans */
.pkp_navigation_search_wrapper a > span::before,
.pkp_navigation_search_wrapper a > span::after{
  content:none !important;
  display:none !important;
}

/* Keep only our clean magnifying-glass icon */
.pkp_navigation_search_wrapper a::before{
  content:"\1F50D" !important;
  display:inline-block !important;
  margin-right:6px !important;
  font-size:14px !important;
  line-height:1 !important;
  vertical-align:-1px !important;
}


/* ==========================================================
   CONSISTENT PAGE MARGINS / SIDEBAR-SAFE LAYOUT FIX
   Goal:
   - Keep ALL pages aligned like the good homepage screenshot
   - Restore left/right margins on About, Archives, Policies, etc.
   - Prevent sidebar blocks from forcing full-width/broken layout
   - Remove horizontal overflow/scrollbar
   - Preserve the existing header, logo, nav, colors and fonts
   ========================================================== */

/* Never allow the page to grow wider than the viewport */
html,
body,
.pkp_structure_page,
.pkp_structure_content,
.pkp_structure_main{
  max-width:100% !important;
  overflow-x:hidden !important;
}

/* ----------------------------------------------------------
   MAIN CONTENT WRAPPER
   Use the same visual width on every page.
   ---------------------------------------------------------- */
.pkp_structure_content,
.pkp_structure_content.has_sidebar{
  width:calc(100% - 48px) !important;
  max-width:1160px !important;
  margin:0 auto !important;
  padding:0 !important;
  display:block !important;
  box-sizing:border-box !important;
  background:#f3f3f4 !important;
  border-left:1px solid #e0e0e3 !important;
  border-right:1px solid #e0e0e3 !important;
}

/* Main area always uses the full centered content width */
.pkp_structure_main,
.has_sidebar .pkp_structure_main,
.pkp_structure_content.has_sidebar .pkp_structure_main{
  float:none !important;
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:42px 46px 55px !important;
  box-sizing:border-box !important;
  background:#f3f3f4 !important;
  border:0 !important;
}

/* Homepage gets the same outer alignment but keeps its hero styling */
body.pkp_page_index .pkp_structure_content,
.pkp_page_index .pkp_structure_content{
  width:calc(100% - 48px) !important;
  max-width:1160px !important;
  margin:0 auto !important;
  border-left:1px solid #e0e0e3 !important;
  border-right:1px solid #e0e0e3 !important;
  background:#f3f3f4 !important;
}

body.pkp_page_index .pkp_structure_main,
.pkp_page_index .pkp_structure_main{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
  background:#f3f3f4 !important;
}

/* Keep homepage About/Aims block aligned like the third screenshot */
.page_index_journal .homepage_about,
.page_index_journal .about_site,
.page_index_journal .additional_content{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding-left:64px !important;
  padding-right:64px !important;
  box-sizing:border-box !important;
}

/* ----------------------------------------------------------
   SIDEBAR
   The custom sidebar should not distort the journal layout.
   Hide it visually while retaining the main content full-width.
   ---------------------------------------------------------- */
.pkp_structure_sidebar,
.pkp_structure_sidebar.left,
.pkp_structure_sidebar.right{
  display:none !important;
  float:none !important;
  width:0 !important;
  min-width:0 !important;
  max-width:0 !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
}

/* Remove leftover separator/column artifacts created by sidebar themes */
.pkp_structure_content::before,
.pkp_structure_content::after,
.pkp_structure_main::before,
.pkp_structure_main::after,
.pkp_structure_sidebar::before,
.pkp_structure_sidebar::after{
  content:none !important;
  display:none !important;
}

/* ----------------------------------------------------------
   INNER PAGE ELEMENTS
   Keep breadcrumbs, headings, text and archive lists inside margins.
   ---------------------------------------------------------- */
.cmp_breadcrumbs,
.page_about,
.page_archive,
.page_issue_archive,
.page_search,
.page_article,
.page_issue,
.page_register,
.page_login,
.obj_issue_summary,
.obj_issue_toc,
.current_issue{
  max-width:100% !important;
  margin-left:0 !important;
  margin-right:0 !important;
  box-sizing:border-box !important;
}

/* Archive issue rows: no giant whitespace / no overflow */
.page_issue_archive .issues,
.page_issue_archive ul.issues,
.obj_issue_summary{
  width:100% !important;
  max-width:100% !important;
}

.obj_issue_summary{
  display:flex !important;
  align-items:flex-start !important;
  gap:28px !important;
  padding:20px 0 !important;
  overflow:hidden !important;
}

.obj_issue_summary .cover{
  flex:0 0 180px !important;
  width:180px !important;
  margin:0 !important;
}

.obj_issue_summary .cover img{
  display:block !important;
  width:100% !important;
  max-width:180px !important;
  height:auto !important;
  object-fit:contain !important;
}

.obj_issue_summary .description,
.obj_issue_summary .issue_summary,
.obj_issue_summary > div:not(.cover){
  min-width:0 !important;
  max-width:100% !important;
}

/* No horizontal scrollbars from issue/archive content */
.page_issue_archive,
.page_about,
.pkp_structure_main{
  overflow-x:hidden !important;
}

/* ----------------------------------------------------------
   MOBILE
   Keep a clean edge margin and prevent full-width spill.
   ---------------------------------------------------------- */
@media(max-width:700px){

  .pkp_structure_content,
  .pkp_structure_content.has_sidebar,
  body.pkp_page_index .pkp_structure_content,
  .pkp_page_index .pkp_structure_content{
    width:calc(100% - 20px) !important;
    max-width:none !important;
    margin:0 10px !important;
    border-left:0 !important;
    border-right:0 !important;
  }

  .pkp_structure_main,
  .has_sidebar .pkp_structure_main,
  .pkp_structure_content.has_sidebar .pkp_structure_main{
    width:100% !important;
    padding:28px 18px 40px !important;
  }

  body.pkp_page_index .pkp_structure_main,
  .pkp_page_index .pkp_structure_main{
    padding:0 !important;
  }

  .page_index_journal .homepage_about,
  .page_index_journal .about_site,
  .page_index_journal .additional_content{
    padding-left:18px !important;
    padding-right:18px !important;
  }

  .obj_issue_summary{
    display:block !important;
  }

  .obj_issue_summary .cover{
    width:145px !important;
    max-width:145px !important;
    margin:0 0 16px !important;
  }

  .obj_issue_summary .cover img{
    max-width:145px !important;
  }
}


/* ==========================================================
   REGISTER FORM + REQUIRED ASTERISK + BREADCRUMB HOME FIX
   Requested changes only:
   - Center the registration form
   - Make required * red
   - Replace "Login" below register form with:
     "Already registered? Click here to Login"
   - Center that login text
   - Breadcrumb HOME permanently orange, dark blue on hover
   ========================================================== */

/* ----------------------------------------------------------
   1) CENTER REGISTER FORM / CARD
   ---------------------------------------------------------- */
body.pkp_page_register .page_register,
body.pkp_page_user.pkp_op_register .page_register{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding-left:0 !important;
  padding-right:0 !important;
}

body.pkp_page_register .page_register .cmp_form,
body.pkp_page_user.pkp_op_register .page_register .cmp_form{
  display:block !important;
  width:calc(100% - 32px) !important;
  max-width:620px !important;
  margin-left:auto !important;
  margin-right:auto !important;
  box-sizing:border-box !important;
}

/* Keep register form fields aligned inside the centered card */
body.pkp_page_register .cmp_form .fields,
body.pkp_page_user.pkp_op_register .cmp_form .fields,
body.pkp_page_register .cmp_form fieldset,
body.pkp_page_user.pkp_op_register .cmp_form fieldset{
  width:100% !important;
  max-width:100% !important;
  margin-left:auto !important;
  margin-right:auto !important;
  box-sizing:border-box !important;
}

/* ----------------------------------------------------------
   2) REQUIRED ASTERISKS IN RED
   Covers common OJS required-field markup.
   ---------------------------------------------------------- */
.required,
.required *,
span.required,
abbr.required,
label .required,
label abbr,
.cmp_form .required,
.cmp_form abbr[title*="required" i],
.cmp_form span[aria-hidden="true"].required{
  color:#d93025 !important;
}

/* OJS may use the required icon/asterisk through pseudo-elements */
.required::before,
.required::after,
abbr.required::before,
abbr.required::after,
label .required::before,
label .required::after{
  color:#d93025 !important;
}

/* ----------------------------------------------------------
   3) REGISTER PAGE LOGIN LINK
   Replace visible text using CSS while keeping the actual link working.
   ---------------------------------------------------------- */
body.pkp_page_register .page_register a[href*="login"],
body.pkp_page_user.pkp_op_register .page_register a[href*="login"]{
  display:block !important;
  width:100% !important;
  margin:10px auto 0 !important;
  padding:0 !important;
  text-align:center !important;
  color:transparent !important;
  font-size:0 !important;
  line-height:1.5 !important;
  text-decoration:none !important;
  white-space:normal !important;
}

/* New visible text */
body.pkp_page_register .page_register a[href*="login"]::after,
body.pkp_page_user.pkp_op_register .page_register a[href*="login"]::after{
  content:"Already registered? Click here to Login";
  display:inline-block !important;
  color:#3844ef !important;
  font-family:Arial,Helvetica,sans-serif !important;
  font-size:12px !important;
  font-weight:600 !important;
  line-height:1.5 !important;
  text-align:center !important;
}

/* Hover for the replacement Login text */
body.pkp_page_register .page_register a[href*="login"]:hover::after,
body.pkp_page_user.pkp_op_register .page_register a[href*="login"]:hover::after{
  color:#1f2f7a !important;
}

/* ----------------------------------------------------------
   4) BREADCRUMB "HOME"
   Permanent orange; dark blue on hover/focus.
   ---------------------------------------------------------- */
.cmp_breadcrumbs > ol > li:first-child > a,
.cmp_breadcrumbs > ul > li:first-child > a,
.cmp_breadcrumbs li:first-child a,
.breadcrumbs li:first-child a{
  color:#ff7a1a !important;
  font-weight:600 !important;
  text-decoration:none !important;
}

.cmp_breadcrumbs > ol > li:first-child > a:hover,
.cmp_breadcrumbs > ul > li:first-child > a:hover,
.cmp_breadcrumbs li:first-child a:hover,
.breadcrumbs li:first-child a:hover,
.cmp_breadcrumbs > ol > li:first-child > a:focus,
.cmp_breadcrumbs > ul > li:first-child > a:focus,
.cmp_breadcrumbs li:first-child a:focus,
.breadcrumbs li:first-child a:focus{
  color:#173a72 !important;
}

/* Mobile: keep register card centered */
@media(max-width:700px){
  body.pkp_page_register .page_register .cmp_form,
  body.pkp_page_user.pkp_op_register .page_register .cmp_form{
    width:calc(100% - 24px) !important;
    max-width:none !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }
}

/* ==========================================================
   FULL-BLEED LAYOUT + WORKING RIGHT SIDEBAR
   Appended last on purpose so these rules win over every
   earlier block in this file (same specificity, later wins).

   What this does:
   1) Kills every max-width/auto-margin "centered container"
      pattern used throughout the file (header, nav, footer,
      current issue, inner pages, homepage about, etc.) so
      content runs edge-to-edge, with a small readable gutter
      instead of a big white margin.
   2) Un-hides .pkp_structure_sidebar (earlier blocks in this
      file set display:none on it) and turns .pkp_structure_content
      into a flex row: main content + sidebar on the RIGHT,
      regardless of where OJS puts it in the markup.
   3) Sidebar stacks below main content on mobile.

   To actually get a sidebar: OJS Admin > Website Settings >
   Appearance > Setup, or Journal Manager > Setup > sidebar
   management, add a block/plugin (e.g. Custom HTML Block,
   About block) to the "Sidebar" region. Nothing will render
   in the sidebar column until a block is placed there.
   ========================================================== */

:root{
  --ej-gutter:32px;
  --ej-sidebar-width:300px;
}

/* ---- kill every centered/max-width container site-wide ---- */
.pkp_navigation_user,
.pkp_site_name,
.pkp_navigation_primary,
.pkp_structure_footer,
.current_issue,
.obj_issue_toc,
.pkp_page_about .pkp_structure_main,
.pkp_page_issue .pkp_structure_main,
.pkp_page_search .pkp_structure_main,
.pkp_page_article .pkp_structure_main,
.pkp_page_user .pkp_structure_main,
body:not(.pkp_page_index) .pkp_structure_main,
body:not(.pkp_page_index) .pkp_structure_content{
  max-width:none !important;
  width:100% !important;
  margin:0 !important;
  padding-left:var(--ej-gutter) !important;
  padding-right:var(--ej-gutter) !important;
  box-sizing:border-box !important;
}

.pkp_navigation_user_wrapper::before{
  left:var(--ej-gutter) !important;
}

.page_index_journal .homepage_about,
.page_index_journal .about_site,
.page_index_journal .additional_content{
  padding-left:var(--ej-gutter) !important;
  padding-right:var(--ej-gutter) !important;
}

/* ---- re-enable sidebar (overrides earlier display:none) ---- */
.pkp_structure_content,
.pkp_structure_content.has_sidebar{
  display:flex !important;
  flex-wrap:wrap !important;
  align-items:flex-start !important;
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
}

.pkp_structure_main,
.has_sidebar .pkp_structure_main,
.pkp_structure_content.has_sidebar .pkp_structure_main{
  display:block !important;
  flex:1 1 0 !important;
  min-width:0 !important;
  width:auto !important;
  max-width:none !important;
  order:1 !important;
}

.pkp_structure_sidebar,
.pkp_structure_sidebar.left,
.pkp_structure_sidebar.right{
  display:block !important;
  float:none !important;
  flex:0 0 var(--ej-sidebar-width) !important;
  width:var(--ej-sidebar-width) !important;
  max-width:var(--ej-sidebar-width) !important;
  min-width:0 !important;
  margin:0 !important;
  padding:32px var(--ej-gutter) !important;
  border:0 !important;
  border-left:1px solid var(--ej-line) !important;
  background:#f3f3f3 !important;
  box-sizing:border-box !important;
  order:2 !important; /* forces it to the right no matter what OJS's markup order is */
}

.pkp_structure_sidebar .pkp_block{
  margin:0 0 28px !important;
  background:transparent !important;
}

.pkp_structure_sidebar .pkp_block:last-child{
  margin-bottom:0 !important;
}

.pkp_structure_sidebar .pkp_block h2,
.pkp_structure_sidebar .widget_title{
  margin:0 0 12px !important;
  color:#111216 !important;
  font-size:13px !important;
  font-weight:700 !important;
  letter-spacing:.4px !important;
  text-transform:uppercase !important;
}

.pkp_structure_sidebar a{
  color:var(--ej-blue) !important;
}

/* auth pages (login/register) never show a sidebar */
body.pkp_page_login .pkp_structure_sidebar,
body.pkp_page_register .pkp_structure_sidebar,
body.pkp_page_user.pkp_op_login .pkp_structure_sidebar,
body.pkp_page_user.pkp_op_register .pkp_structure_sidebar{
  display:none !important;
}

/* ---- mobile: sidebar drops below content, edges tighten ---- */
@media(max-width:900px){
  .pkp_structure_content,
  .pkp_structure_content.has_sidebar{
    flex-direction:column !important;
    align-items:stretch !important;
  }

  .pkp_structure_main,
  .has_sidebar .pkp_structure_main,
  .pkp_structure_content.has_sidebar .pkp_structure_main{
    flex:1 1 auto !important;
    width:100% !important;
    max-width:100% !important;
    order:1 !important;
  }

  .pkp_structure_sidebar,
  .pkp_structure_sidebar.left,
  .pkp_structure_sidebar.right{
    flex:1 1 auto !important;
    width:100% !important;
    max-width:100% !important;
    border-left:0 !important;
    border-top:1px solid var(--ej-line) !important;
    order:2 !important;
  }
}

@media(max-width:700px){
  :root{
    --ej-gutter:16px;
  }
}

/* ==========================================================
   JUSTIFY BODY TEXT
   Applied last so it wins. text-justify:inter-word + hyphens
   keeps word-gaps even instead of the stretched, gappy look
   plain "justify" can cause on narrow columns.
   ========================================================== */
p,
.pkp_structure_main p,
.pkp_structure_sidebar p,
.page_index_journal .homepage_about p,
.page_index_journal .about_site p,
.page_index_journal .additional_content p,
.obj_article_summary .article_summary,
.abstract,
.page_article p,
.page_about p,
.cmp_form .description,
.pkp_block p{
  text-align:justify !important;
  text-justify:inter-word !important;
  -webkit-hyphens:auto !important;
  -ms-hyphens:auto !important;
  hyphens:auto !important;
  word-spacing:normal !important;
  letter-spacing:normal !important;
}

/* Never justify short/UI text — it looks broken on 1-2 lines */
h1,h2,h3,h4,h5,h6,
.pkp_navigation_primary a,
.pkp_navigation_user a,
.cmp_breadcrumbs,
.obj_article_summary .title,
.obj_article_summary .authors,
.pkp_structure_sidebar h2,
.pkp_structure_sidebar .widget_title,
.pkp_structure_footer,
button,
input,
select,
textarea,
label{
  text-align:left !important;
}


/* ==========================================================
   SEARCH + AIMS & SCOPE + SIDEBAR COMPACT FIX
   ========================================================== */

/* Search on black user/login bar */
.pkp_structure_head{
  position:relative !important;
}

.pkp_navigation_search_wrapper{
  position:absolute !important;
  top:auto !important;
  bottom:0 !important;
  right:max(110px, calc((100% - 1160px)/2 + 120px)) !important;
  left:auto !important;
  transform:none !important;
  width:auto !important;
  height:48px !important;
  margin:0 !important;
  padding:0 !important;
  z-index:50 !important;
  display:flex !important;
  align-items:center !important;
}

.pkp_navigation_search_wrapper a{
  position:relative !important;
  display:inline-flex !important;
  align-items:center !important;
  min-height:48px !important;
  margin:0 !important;
  padding:0 12px 0 34px !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  color:#ffffff !important;
  font-size:12px !important;
  font-weight:600 !important;
  line-height:1 !important;
}

/* clean CSS magnifier */
.pkp_navigation_search_wrapper a::before{
  content:"" !important;
  position:absolute !important;
  left:11px !important;
  top:50% !important;
  width:12px !important;
  height:12px !important;
  margin-top:-8px !important;
  border:2px solid #ffffff !important;
  border-radius:50% !important;
  background:transparent !important;
  box-sizing:border-box !important;
}

.pkp_navigation_search_wrapper a::after{
  content:"" !important;
  position:absolute !important;
  left:22px !important;
  top:27px !important;
  width:7px !important;
  height:2px !important;
  background:#ffffff !important;
  border-radius:2px !important;
  transform:rotate(45deg) !important;
  transform-origin:left center !important;
}

.pkp_navigation_search_wrapper .fa,
.pkp_navigation_search_wrapper .fas,
.pkp_navigation_search_wrapper .far,
.pkp_navigation_search_wrapper .icon,
.pkp_navigation_search_wrapper [class*="icon-"],
.pkp_navigation_search_wrapper a > span::before,
.pkp_navigation_search_wrapper a > span::after{
  display:none !important;
  content:none !important;
}

.pkp_navigation_search_wrapper a:hover,
.pkp_navigation_search_wrapper a:focus,
.pkp_navigation_search_wrapper a:active{
  background:#173a72 !important;
  color:#ffffff !important;
  outline:none !important;
  box-shadow:none !important;
}

.pkp_navigation_user{
  padding-right:150px !important;
}

.pkp_navigation_primary{
  padding-right:24px !important;
}

/* AIMS & SCOPE permanent orange */
.page_index_journal .homepage_about::before,
.page_index_journal .about_site::before{
  color:var(--ej-orange) !important;
}

/* Sidebar more roomy, less inner margin */
.pkp_structure_content.has_sidebar,
.has_sidebar.pkp_structure_content{
  grid-template-columns:minmax(0,1fr) 300px !important;
  gap:20px !important;
}

.pkp_structure_sidebar,
.pkp_structure_sidebar.right,
.pkp_structure_sidebar.left{
  width:300px !important;
  min-width:300px !important;
  max-width:300px !important;
  margin:18px 8px 24px 0 !important;
  padding:0 !important;
}

.pkp_structure_sidebar .pkp_block{
  margin:0 0 12px !important;
  padding:12px 10px !important;
}

.pkp_structure_sidebar .pkp_block .title{
  margin:0 0 10px !important;
  padding:0 0 8px !important;
}

.pkp_structure_sidebar .pkp_block .content{
  width:100% !important;
  margin:0 !important;
  padding:0 !important;
}

.pkp_structure_sidebar .pkp_block p,
.pkp_structure_sidebar .pkp_block li{
  margin-left:0 !important;
  margin-right:0 !important;
}

/* Mobile */
@media(max-width:700px){
  .pkp_navigation_search_wrapper{
    position:static !important;
    width:100% !important;
    height:auto !important;
    margin:0 !important;
    padding:0 18px 10px !important;
    display:block !important;
  }

  .pkp_navigation_search_wrapper a{
    min-height:40px !important;
    padding-left:34px !important;
    color:#222 !important;
  }

  .pkp_navigation_search_wrapper a::before{
    border-color:#173a72 !important;
  }

  .pkp_navigation_search_wrapper a::after{
    background:#173a72 !important;
  }

  .pkp_navigation_search_wrapper a:hover,
  .pkp_navigation_search_wrapper a:focus{
    background:transparent !important;
    color:#173a72 !important;
  }

  .pkp_navigation_user{
    padding-right:18px !important;
  }

  .pkp_structure_content.has_sidebar,
  .has_sidebar.pkp_structure_content{
    display:block !important;
  }

  .pkp_structure_sidebar,
  .pkp_structure_sidebar.right,
  .pkp_structure_sidebar.left{
    width:auto !important;
    min-width:0 !important;
    max-width:none !important;
    margin:16px 12px 24px !important;
  }
}


/* ==========================================================
   FINAL AUTH BUTTON + LOGIN PAGE REGISTER LINK FIX
   - Center Login/Register text inside blue buttons
   - Change Login-page "Register" link text to "Click here to Register"
   - Keep link neatly aligned below the button
   ========================================================== */

/* Center button text */
body.pkp_page_login .cmp_form button.submit,
body.pkp_page_login .cmp_form input[type="submit"],
body.pkp_page_register .cmp_form button.submit,
body.pkp_page_register .cmp_form input[type="submit"],
body.pkp_page_user.pkp_op_login .cmp_form button.submit,
body.pkp_page_user.pkp_op_login .cmp_form input[type="submit"],
body.pkp_page_user.pkp_op_register .cmp_form button.submit,
body.pkp_page_user.pkp_op_register .cmp_form input[type="submit"]{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  width:100% !important;
  padding-left:15px !important;
  padding-right:15px !important;
}

/* Replace Login-page Register text */
body.pkp_page_login .page_login a[href*="register"],
body.pkp_page_user.pkp_op_login .page_login a[href*="register"]{
  display:block !important;
  width:100% !important;
  margin:10px 0 0 !important;
  padding:0 !important;
  color:transparent !important;
  font-size:0 !important;
  line-height:1.5 !important;
  text-align:center !important;
  float:none !important;
  clear:both !important;
  white-space:normal !important;
}

/* New visible text */
body.pkp_page_login .page_login a[href*="register"]::after,
body.pkp_page_user.pkp_op_login .page_login a[href*="register"]::after{
  content:"Click here to Register";
  display:inline-block !important;
  color:#3844ef !important;
  font-family:Arial,Helvetica,sans-serif !important;
  font-size:12px !important;
  font-weight:600 !important;
  line-height:1.5 !important;
  text-align:center !important;
}

/* Hover */
body.pkp_page_login .page_login a[href*="register"]:hover::after,
body.pkp_page_user.pkp_op_login .page_login a[href*="register"]:hover::after{
  color:#173a72 !important;
}


/* ==========================================================
   FINAL REQUIRED-LINE + FOOTER + SEARCH CLEANUP
   ========================================================== */

/* Required-fields line directly below Login/Register intro */
body.pkp_page_login .page_login > h1,
body.pkp_page_register .page_register > h1,
body.pkp_page_user.pkp_op_login .page_login > h1,
body.pkp_page_user.pkp_op_register .page_register > h1{
  padding-bottom:18px !important;
}

body.pkp_page_login .page_login > p:first-of-type,
body.pkp_page_register .page_register > p:first-of-type,
body.pkp_page_user.pkp_op_login .page_login > p:first-of-type,
body.pkp_page_user.pkp_op_register .page_register > p:first-of-type{
  width:100% !important;
  max-width:1160px !important;
  margin:0 auto !important;
  padding:10px 30px 0 !important;
  box-sizing:border-box !important;
  color:#24262b !important;
  font-size:13px !important;
  line-height:1.5 !important;
  background:#f5f5f6 !important;
}

body.pkp_page_login .page_login > p:first-of-type .required,
body.pkp_page_register .page_register > p:first-of-type .required,
body.pkp_page_user.pkp_op_login .page_login > p:first-of-type .required,
body.pkp_page_user.pkp_op_register .page_register > p:first-of-type .required,
body.pkp_page_login .page_login > p:first-of-type abbr,
body.pkp_page_register .page_register > p:first-of-type abbr{
  color:#d93025 !important;
}

/* Footer grey, black text, centered */
.pkp_structure_footer_wrapper{
  background:#d9d9dc !important;
  color:#111111 !important;
  border:0 !important;
  text-align:center !important;
}

.pkp_structure_footer{
  max-width:1160px !important;
  margin:0 auto !important;
  padding:24px !important;
  text-align:center !important;
  color:#111111 !important;
}

.pkp_structure_footer,
.pkp_structure_footer p,
.pkp_structure_footer div,
.pkp_structure_footer span,
.pkp_structure_footer li{
  color:#111111 !important;
  text-align:center !important;
}

.pkp_structure_footer a,
.pkp_structure_footer a:hover,
.pkp_structure_footer a:focus{
  color:#111111 !important;
}

/* Search: simple icon + text, no hover box/background */
.pkp_navigation_search_wrapper a,
.pkp_navigation_search_wrapper a:link,
.pkp_navigation_search_wrapper a:visited,
.pkp_navigation_search_wrapper a:hover,
.pkp_navigation_search_wrapper a:focus,
.pkp_navigation_search_wrapper a:active{
  background:transparent !important;
  background-color:transparent !important;
  box-shadow:none !important;
  outline:none !important;
  border:0 !important;
  color:#ffffff !important;
}

.pkp_navigation_search_wrapper a::before{
  content:"" !important;
  position:absolute !important;
  left:11px !important;
  top:50% !important;
  width:11px !important;
  height:11px !important;
  margin-top:-7px !important;
  border:2px solid #ffffff !important;
  border-radius:50% !important;
  background:transparent !important;
  box-sizing:border-box !important;
}

.pkp_navigation_search_wrapper a::after{
  content:"" !important;
  position:absolute !important;
  left:21px !important;
  top:26px !important;
  width:6px !important;
  height:2px !important;
  background:#ffffff !important;
  border-radius:2px !important;
  transform:rotate(45deg) !important;
  transform-origin:left center !important;
}

.pkp_navigation_search_wrapper a{
  position:relative !important;
  display:inline-flex !important;
  align-items:center !important;
  min-height:48px !important;
  padding:0 10px 0 32px !important;
  font-size:12px !important;
  font-weight:600 !important;
  letter-spacing:0 !important;
  text-transform:none !important;
}

.pkp_navigation_search_wrapper .fa,
.pkp_navigation_search_wrapper .fas,
.pkp_navigation_search_wrapper .far,
.pkp_navigation_search_wrapper .icon,
.pkp_navigation_search_wrapper [class*="icon-"],
.pkp_navigation_search_wrapper a > span::before,
.pkp_navigation_search_wrapper a > span::after{
  display:none !important;
  content:none !important;
}

@media(max-width:700px){
  body.pkp_page_login .page_login > p:first-of-type,
  body.pkp_page_register .page_register > p:first-of-type,
  body.pkp_page_user.pkp_op_login .page_login > p:first-of-type,
  body.pkp_page_user.pkp_op_register .page_register > p:first-of-type{
    padding-left:20px !important;
    padding-right:20px !important;
  }

  .pkp_navigation_search_wrapper a,
  .pkp_navigation_search_wrapper a:hover,
  .pkp_navigation_search_wrapper a:focus,
  .pkp_navigation_search_wrapper a:active{
    color:#222222 !important;
    background:transparent !important;
  }

  .pkp_navigation_search_wrapper a::before{
    border-color:#222222 !important;
  }

  .pkp_navigation_search_wrapper a::after{
    background:#222222 !important;
  }
}


/* ==========================================================
   FINAL FOOTER HEIGHT + SEARCH VISIBILITY FIX
   - Make footer much shorter
   - Put Search back on the WHITE navigation row
   - Show a simple BLACK CSS magnifier + BLACK text
   - No hover background / no blue box
   ========================================================== */

/* ---------- SHORTER FOOTER ---------- */
.pkp_structure_footer_wrapper{
  padding:14px 0 !important;
  min-height:0 !important;
  background:#d9d9dc !important;
  color:#111111 !important;
}

.pkp_structure_footer{
  padding:10px 24px !important;
  min-height:0 !important;
  line-height:1.45 !important;
  text-align:center !important;
}

.pkp_structure_footer p,
.pkp_structure_footer div,
.pkp_structure_footer span,
.pkp_structure_footer li{
  margin-top:3px !important;
  margin-bottom:3px !important;
  line-height:1.45 !important;
  color:#111111 !important;
  text-align:center !important;
}

/* ---------- SEARCH ON WHITE NAVIGATION ROW ---------- */
.pkp_navigation_primary_wrapper{
  position:relative !important;
}

/* Reserve room for Search on the right */
.pkp_navigation_primary{
  padding-right:145px !important;
}

.pkp_navigation_search_wrapper{
  position:absolute !important;
  top:50% !important;
  right:max(24px, calc((100% - 1160px)/2 + 24px)) !important;
  bottom:auto !important;
  left:auto !important;
  transform:translateY(-50%) !important;
  width:auto !important;
  height:auto !important;
  margin:0 !important;
  padding:0 !important;
  z-index:40 !important;
  display:block !important;
}

/* simple black text */
.pkp_navigation_search_wrapper a,
.pkp_navigation_search_wrapper a:link,
.pkp_navigation_search_wrapper a:visited,
.pkp_navigation_search_wrapper a:hover,
.pkp_navigation_search_wrapper a:focus,
.pkp_navigation_search_wrapper a:active{
  position:relative !important;
  display:inline-flex !important;
  align-items:center !important;
  min-height:40px !important;
  margin:0 !important;
  padding:0 0 0 25px !important;
  background:transparent !important;
  background-color:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  outline:none !important;
  color:#111111 !important;
  font-size:12px !important;
  font-weight:600 !important;
  letter-spacing:0 !important;
  text-transform:none !important;
}

/* black CSS magnifier circle */
.pkp_navigation_search_wrapper a::before{
  content:"" !important;
  position:absolute !important;
  left:1px !important;
  top:50% !important;
  width:11px !important;
  height:11px !important;
  margin-top:-7px !important;
  border:2px solid #111111 !important;
  border-radius:50% !important;
  background:transparent !important;
  box-sizing:border-box !important;
}

/* black magnifier handle */
.pkp_navigation_search_wrapper a::after{
  content:"" !important;
  position:absolute !important;
  left:11px !important;
  top:23px !important;
  width:6px !important;
  height:2px !important;
  background:#111111 !important;
  border-radius:2px !important;
  transform:rotate(45deg) !important;
  transform-origin:left center !important;
}

/* Remove any theme/emoji/duplicate icon */
.pkp_navigation_search_wrapper .fa,
.pkp_navigation_search_wrapper .fas,
.pkp_navigation_search_wrapper .far,
.pkp_navigation_search_wrapper .icon,
.pkp_navigation_search_wrapper [class*="icon-"],
.pkp_navigation_search_wrapper a > span::before,
.pkp_navigation_search_wrapper a > span::after{
  display:none !important;
  content:none !important;
}

/* Search no longer needs reserved space in black user bar */
.pkp_navigation_user{
  padding-right:24px !important;
}

/* Mobile: keep search readable in opened menu */
@media(max-width:700px){
  .pkp_navigation_primary{
    padding-right:18px !important;
  }

  .pkp_navigation_search_wrapper{
    position:static !important;
    transform:none !important;
    width:100% !important;
    margin:0 !important;
    padding:0 18px 10px !important;
  }

  .pkp_navigation_search_wrapper a,
  .pkp_navigation_search_wrapper a:hover,
  .pkp_navigation_search_wrapper a:focus,
  .pkp_navigation_search_wrapper a:active{
    color:#111111 !important;
    background:transparent !important;
  }

  .pkp_navigation_search_wrapper a::before{
    border-color:#111111 !important;
  }

  .pkp_navigation_search_wrapper a::after{
    background:#111111 !important;
  }
}
