/*
 * Omnirexis — OJS 3.5 style matched to the supplied OJS 3.3 screenshots
 * Target appearance: full-width blue masthead, compact horizontal menu,
 * centered ~916px white page frame, thin grey vertical borders, simple
 * typography, two-column article detail, broad light-grey PKP footer.
 *
 * Install as the Journal Style Sheet in OJS 3.5.
 * This stylesheet does not replace OJS's Default Theme or fix missing
 * stylesheet links in the generated HTML.
 */

:root {
  --omni-blue: #22658f;
  --omni-blue-hover: #174f74;
  --omni-link: #00689f;
  --omni-text: #292929;
  --omni-muted: #777;
  --omni-border: #dedede;
  --omni-footer: #dedede;
  --omni-white: #fff;
}

html { scroll-behavior: smooth; }

body {
  margin: 0;
  color: var(--omni-text);
  background: #fff;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 16px;
  line-height: 1.65;
}

a {
  color: var(--omni-link);
  text-decoration: none;
  overflow-wrap: anywhere;
}
a:hover, a:focus {
  color: var(--omni-blue-hover);
  text-decoration: underline;
}

h1, h2, h3, h4, h5, h6,
.page_title, .title {
  color: var(--omni-text);
  font-weight: 700;
  line-height: 1.3;
}
h1, .page_title { font-size: 1.8rem; }
h2 { font-size: 1.25rem; }
h3 { font-size: 1.05rem; }
img { max-width: 100%; height: auto; }

/* Full-width blue masthead */
.pkp_structure_head {
  color: #fff;
  background: var(--omni-blue);
  border: 0;
}

.pkp_site_name_wrapper {
  max-width: 1238px;
  margin: 0 auto;
  padding: 47px 0 0;
}

.pkp_site_name {
  margin: 0;
  padding: 0;
  min-height: 39px;
}
.pkp_site_name a,
.pkp_site_name .is_img a {
  color: #fff;
  font-size: 1.75rem;
  font-weight: 700;
  line-height: 1.25;
  text-decoration: none;
}
.pkp_site_name .is_img img {
  display: block;
  max-width: 360px;
  max-height: 66px;
  width: auto;
  object-fit: contain;
  object-position: left center;
}

/* Register / Login row at the top right */
.pkp_navigation_user_wrapper {
  position: absolute;
  top: 98px;
  right: max(calc((100vw - 1238px) / 2), 22px);
  z-index: 5;
  background: transparent;
}
.pkp_navigation_user {
  margin: 0;
  padding: 0;
}
.pkp_navigation_user > li > a,
.pkp_navigation_user > li > button {
  padding: 0 0 0 22px;
  color: #fff;
  font-size: 0.9rem;
}
.pkp_navigation_user > li > a:hover,
.pkp_navigation_user > li > button:hover {
  color: #e7f0f7;
}

/* Compact horizontal primary navigation */
.pkp_navigation_primary_wrapper {
  background: var(--omni-blue);
  border: 0;
}
@media (min-width: 768px) {
  .pkp_navigation_primary_wrapper {
    display: block;
  }
  .pkp_navigation_primary {
    display: flex !important;
    flex-direction: row;
    align-items: center;
    flex-wrap: nowrap;
    max-width: 1238px;
    min-height: 39px;
    margin: 0 auto;
    padding: 0;
  }
  .pkp_navigation_primary > li {
    display: block;
    flex: 0 0 auto;
  }
  .pkp_navigation_primary > li > a,
  .pkp_navigation_primary > li > button {
    white-space: nowrap;
  }
} 
.pkp_navigation_primary {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  max-width: 1238px;
  min-height: 39px;
  margin: 0 auto;
  padding: 0;
}
.pkp_navigation_primary > li { margin: 0; }
.pkp_navigation_primary > li > a,
.pkp_navigation_primary > li > button {
  display: block;
  padding: 6px 16px 8px 0;
  margin-right: 17px;
  color: #fff;
  font-size: 0.96rem;
  font-weight: 400;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.pkp_navigation_primary > li > a:hover,
.pkp_navigation_primary > li > a:focus,
.pkp_navigation_primary > li > button:hover,
.pkp_navigation_primary > li > button:focus {
  color: #fff;
  background: transparent;
  text-decoration: underline;
}
.pkp_navigation_primary > li:first-child > a { padding-left: 0; }
.pkp_navigation_primary ul {
  background: #fff;
  border: 1px solid var(--omni-border);
  box-shadow: 0 5px 12px rgba(0,0,0,.12);
}
.pkp_navigation_primary ul a {
  display: block;
  padding: 8px 14px;
  color: var(--omni-link);
}
.pkp_navigation_search_wrapper {
  margin-left: auto;
}
.pkp_navigation_search_wrapper a,
.pkp_navigation_search_wrapper button {
  color: #fff;
}

/* Main frame: screenshots show a centered white column with thin borders */
.pkp_structure_page {
  width: 100%;
  max-width: none;
  margin: 0;
  background: #fff;
  box-shadow: none;
}
.pkp_structure_content {
  box-sizing: border-box;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 270px;
  column-gap: 0;
  max-width: 1238px;
  min-height: 650px;
  margin: 0 auto;
  padding: 0;
  background: #fff;
  border-left: 1px solid var(--omni-border);
  border-right: 1px solid var(--omni-border);
}
.pkp_structure_main {
  box-sizing: border-box;
  min-width: 0;
  padding: 76px 31px 48px;
}
.pkp_structure_sidebar {
  box-sizing: border-box;
  display: block;
  min-width: 0;
  padding: 28px 22px;
  border-left: 1px solid var(--omni-border);
  background: #fff;
}

/* Make sidebar blocks visible and clearly separated when OJS renders them. */
.pkp_structure_sidebar .pkp_block {
  display: block;
  width: 100%;
  margin: 0 0 24px;
  padding: 0 0 18px;
  border-bottom: 1px solid var(--omni-border);
}
.pkp_structure_sidebar .pkp_block:last-child {
  border-bottom: 0;
}
.pkp_structure_sidebar .pkp_block .title {
  display: block;
  margin: 0 0 12px;
  padding: 0 0 8px;
  color: var(--omni-text);
  font-size: 1.05rem;
  border-bottom: 1px solid var(--omni-border);
}
.pkp_structure_sidebar .pkp_block img {
  display: block;
  max-width: 100%;
  height: auto;
}
.pkp_structure_main > h1:first-child,
.pkp_structure_main > .page_title:first-child {
  margin-top: 0;
}

/* Breadcrumbs match the understated OJS 3.3 presentation */
.cmp_breadcrumbs {
  margin: 0 0 34px;
  color: var(--omni-muted);
  font-size: 0.9rem;
}
.cmp_breadcrumbs a { color: var(--omni-link); }
.cmp_breadcrumbs .current { color: var(--omni-muted); }

/* Homepage / issue page */
.pkp_page_index .current_issue,
.pkp_page_index .cmp_announcements {
  margin: 0;
}
.current_issue .current_issue_title,
.current_issue > h2 {
  margin: 0 0 18px;
  font-size: 1.25rem;
}
.current_issue .current_issue_title,
.current_issue .heading {
  padding: 0;
}
.obj_issue_summary,
.obj_article_summary {
  padding: 18px 0;
  border-bottom: 0;
}
.obj_issue_summary .title,
.obj_article_summary .title {
  color: var(--omni-link);
  font-size: 1rem;
}
.obj_issue_summary .cover img,
.obj_issue_toc .cover img {
  max-width: 150px;
  max-height: 210px;
  object-fit: contain;
}

/* Article page: content left and metadata/PDF panel right */
.obj_article_details {
  display: grid;
  grid-template-columns: minmax(0, 1.85fr) minmax(230px, 1fr);
  margin: 0 -31px;
}
.obj_article_details .page_title,
.obj_article_details > .row {
  grid-column: 1 / -1;
}
.obj_article_details .page_title {
  padding: 0 31px 30px;
  margin: 0;
  border-bottom: 1px solid var(--omni-border);
  font-size: 1.75rem;
}
.obj_article_details .row {
  margin: 0;
}
.obj_article_details .main_entry,
.obj_article_details .entry_details,
.obj_article_details .item {
  min-width: 0;
}
.obj_article_details .main_entry {
  padding: 28px 31px 30px;
}
.obj_article_details .entry_details {
  padding: 0;
  border-left: 1px solid var(--omni-border);
}
.obj_article_details .entry_details .item {
  padding: 20px 21px;
  margin: 0;
  border-bottom: 1px solid var(--omni-border);
}
.obj_article_details .item > h2,
.obj_article_details .item > h3 {
  color: var(--omni-text);
}
.obj_article_details .abstract,
.obj_article_details .item.abstract {
  padding: 0;
  margin-top: 28px;
  background: transparent;
  border: 0;
}
.obj_article_details .abstract h2,
.obj_article_details .item.abstract h2 {
  margin-bottom: 22px;
  font-size: 1.08rem;
}
.obj_article_details .authors {
  margin: 0 0 28px;
}
.obj_article_details .author {
  margin-bottom: 8px;
}
.obj_article_details .galleys_links a,
.obj_article_details .galley_link,
.obj_galley_link {
  display: inline-block;
  padding: 5px 12px;
  color: var(--omni-link);
  background: #fff;
  border: 1px solid var(--omni-link);
  border-radius: 3px;
  font-weight: 400;
}
.obj_article_details .galleys_links a:hover,
.obj_article_details .galley_link:hover,
.obj_galley_link:hover {
  color: #fff;
  background: var(--omni-link);
  text-decoration: none;
}
.obj_article_details .pubid a,
.obj_article_details .doi a { overflow-wrap: anywhere; }

/* Register/login pages: narrow form in the left side of the centered frame */
.page_register .pkp_structure_main,
.page_login .pkp_structure_main,
.page_lost_password .pkp_structure_main {
  max-width: 100%;
}
.page_register form,
.page_login form,
.page_lost_password form {
  max-width: 620px;
}
.page_register label,
.page_login label,
.page_lost_password label {
  font-style: italic;
}
.page_register input[type="text"],
.page_register input[type="email"],
.page_register input[type="password"],
.page_register select,
.page_login input[type="text"],
.page_login input[type="email"],
.page_login input[type="password"] {
  box-sizing: border-box;
  width: 278px;
  max-width: 100%;
}
.page_register .fields,
.page_register .form-group {
  margin-bottom: 25px;
}

/* Sidebar blocks stay quiet and square-edged like the reference */
.pkp_block {
  padding: 0;
  margin: 0 0 24px;
  background: #fff;
  border: 0;
  border-radius: 0;
}
.pkp_block .title {
  margin: 0 0 12px;
  padding: 0 0 8px;
  font-size: 1.05rem;
  border-bottom: 1px solid var(--omni-border);
}
.pkp_block ul { padding-left: 20px; }

/* Inputs and buttons */
input, select, textarea {
  max-width: 100%;
  color: var(--omni-text);
  background: #fff;
  border: 1px solid #aaa;
  border-radius: 3px;
  padding: 6px 8px;
}
input:focus, select:focus, textarea:focus {
  outline: 2px solid rgba(0,104,159,.18);
  border-color: var(--omni-link);
}
button, .pkp_button, .cmp_button {
  border-radius: 3px;
}
.pkp_button, .cmp_button, button.submit {
  color: #fff;
  background: var(--omni-blue);
  border-color: var(--omni-blue);
}
.pkp_button:hover, .cmp_button:hover, button.submit:hover {
  color: #fff;
  background: var(--omni-blue-hover);
  border-color: var(--omni-blue-hover);
}
table { width: 100%; border-collapse: collapse; }
th, td {
  padding: 9px 11px;
  border: 1px solid var(--omni-border);
  vertical-align: top;
}
th { background: #f5f5f5; text-align: left; }

/* Broad light-grey footer with PKP mark aligned right */
.pkp_structure_footer_wrapper {
  color: #222;
  background: var(--omni-footer);
  border: 0;
}
.pkp_structure_footer {
  box-sizing: border-box;
  max-width: 916px;
  min-height: 135px;
  margin: 0 auto;
  padding: 22px 0;
  color: #222;
  text-align: right;
}
.pkp_structure_footer p,
.pkp_structure_footer a { color: #222; }
.pkp_structure_footer a { text-decoration: underline; }
.pkp_brand_footer {
  box-sizing: border-box;
  min-height: 105px;
  padding: 14px max(calc((100vw - 916px) / 2), 18px);
  text-align: right;
  background: var(--omni-footer);
}
.pkp_brand_footer img {
  display: inline-block;
  width: auto;
  max-width: 150px;
  max-height: 70px;
  object-fit: contain;
}

/* Mobile */
@media (max-width: 1280px) {
  .pkp_site_name_wrapper,
  .pkp_navigation_primary {
    margin-left: 24px;
    margin-right: 24px;
  }
  .pkp_navigation_user_wrapper {
    right: 24px;
  }
}
@media (max-width: 767px) {
  body { font-size: 15px; }
  .pkp_site_name_wrapper {
    padding: 30px 16px 0;
    margin: 0;
  }
  .pkp_site_name a { font-size: 1.55rem; }
  .pkp_navigation_user_wrapper {
    top: 8px;
    right: 16px;
  }
  .pkp_navigation_user > li > a,
  .pkp_navigation_user > li > button {
    padding-left: 12px;
    font-size: .85rem;
  }
  .pkp_navigation_primary {
    display: block;
    margin: 0;
    padding: 8px 16px 10px;
  }
  .pkp_navigation_primary > li {
    display: inline-block;
    width: auto;
  }
  .pkp_navigation_primary > li > a,
  .pkp_navigation_primary > li > button {
    display: inline-block;
    width: auto;
    padding: 7px 12px 7px 0;
    margin-right: 10px;
  }
  .pkp_navigation_search_wrapper { margin-left: 0; }
  .pkp_structure_content {
    display: block;
    min-height: 500px;
    border-left: 0;
    border-right: 0;
  }
  .pkp_structure_sidebar {
    display: block;
    width: 100%;
    border-left: 0;
    border-top: 1px solid var(--omni-border);
  }
  .pkp_structure_main {
    padding: 36px 18px 32px;
  }
  .pkp_structure_sidebar {
    padding: 18px;
    border-left: 0;
    border-top: 1px solid var(--omni-border);
  }
  .cmp_breadcrumbs { margin-bottom: 24px; }
  .obj_article_details {
    display: block;
    margin: 0 -18px;
  }
  .obj_article_details .page_title {
    padding: 0 18px 22px;
    font-size: 1.45rem;
  }
  .obj_article_details .main_entry { padding: 22px 18px; }
  .obj_article_details .entry_details {
    border-left: 0;
    border-top: 1px solid var(--omni-border);
  }
  .obj_article_details .entry_details .item { padding: 16px 18px; }
  .pkp_structure_footer { padding: 20px 18px; }
  .pkp_brand_footer { padding: 14px 18px; }
  table { display: block; overflow-x: auto; }
}
