/**
 * БОЛОВСРОЛ сэтгүүл theme: a shadcn/ui-style skin over OJS's default theme
 * (neutral zinc palette, white surfaces, 1px borders, rounded cards, system UI
 * type). Loaded after the parent stylesheet.
 *
 * Layout note: the parent sizes .pkp_structure_main and the article page's two
 * columns with floats and fixed pixel widths. This file replaces that with CSS
 * grid (see "layout"), so padding and borders can't knock columns out of place.
 */
:root {
  --ej-bg: #ffffff;
  --ej-fg: #09090b;          /* zinc-950 */
  --ej-text: #27272a;        /* zinc-800 */
  --ej-muted: #71717a;       /* zinc-500 */
  --ej-muted-2: #52525b;     /* zinc-600 */
  --ej-subtle: #f4f4f5;      /* zinc-100 */
  --ej-subtle-2: #fafafa;    /* zinc-50 */
  --ej-border: #e4e4e7;      /* zinc-200 */
  --ej-border-2: #d4d4d8;    /* zinc-300 */
  --ej-primary: #18181b;     /* zinc-900 */
  --ej-primary-hover: #27272a;
  --ej-ring: rgba(161, 161, 170, .45);
  --ej-accent: #1d4ed8;      /* links inside prose */
  --ej-radius: 12px;
  --ej-radius-sm: 8px;
  --ej-shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);
  --ej-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .08), 0 2px 4px -2px rgba(0, 0, 0, .06);
  --ej-container: 1120px;
  --ej-gutter: 24px;
  --ej-font: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", "Helvetica Neue", Arial, sans-serif;
}

/* ---------- base ---------- */
html, body { background: var(--ej-bg); }
body {
  font-family: var(--ej-font);
  font-size: 15px;
  line-height: 1.6;
  color: var(--ej-text);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
.pkp_structure_page { background: transparent; }
h1, h2, h3, h4, .page_title {
  font-family: var(--ej-font);
  color: var(--ej-fg);
  letter-spacing: -0.015em;
}
a { color: var(--ej-fg); text-underline-offset: 3px; }
a:hover, a:focus { color: var(--ej-fg); }
:focus-visible { outline: 2px solid var(--ej-fg); outline-offset: 2px; border-radius: 4px; }

/* ---------- top bar (institution + language + account) ---------- */
.ej_topbar { background: var(--ej-fg); color: #d4d4d8; font-size: 12.5px; }
.ej_topbar_inner {
  max-width: var(--ej-container);
  margin: 0 auto;
  padding: 0 var(--ej-gutter);
  min-height: 38px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px 16px;
  flex-wrap: wrap;
}
.ej_topbar a { color: #e4e4e7; text-decoration: none; }
.ej_topbar a:hover, .ej_topbar a:focus { color: #fff; text-decoration: underline; }
.ej_topbar_org { font-weight: 500; }
.ej_topbar_sep { margin: 0 6px; color: #71717a; }
.ej_topbar_place { color: #a1a1aa; }
.ej_topbar_right { display: flex; align-items: center; gap: 16px; }
.ej_lang { display: inline-flex; border: 1px solid #3f3f46; border-radius: 6px; overflow: hidden; }
.ej_lang a { padding: 2px 9px; font-weight: 600; color: #a1a1aa; }
.ej_lang a.is_current { background: #3f3f46; color: #fff; }
.ej_lang a:hover { text-decoration: none; color: #fff; }

/* the account menu now lives in the top bar */
/* The parent positions this wrapper absolutely with a fixed 1160px width and a
   negative left margin; in the top bar it must be a plain inline group. */
.ej_topbar .pkp_navigation_user_wrapper {
  position: static !important;
  display: block !important;
  width: auto !important;
  max-width: none;
  margin: 0 !important;
  padding: 0;
  left: auto;
  right: auto;
  top: auto;
  transform: none;
  background: none;
  border: 0;
}
.ej_topbar .pkp_navigation_user { display: flex; gap: 14px; width: auto !important; margin: 0; padding: 0; float: none; list-style: none; }
.ej_topbar .pkp_navigation_user > li { position: relative; float: none; margin: 0; }
.ej_topbar .pkp_navigation_user > li > a { display: inline-block; padding: 0; font-size: 12.5px; font-weight: 500; color: #e4e4e7; }
.ej_topbar .pkp_navigation_user .task_count { margin-left: 4px; padding: 0 6px; border-radius: 999px; background: #3f3f46; color: #fff; font-size: 11px; }
.ej_topbar .pkp_navigation_user ul {
  position: absolute;
  right: 0;
  top: calc(100% + 10px);
  z-index: 1000;
  min-width: 200px;
  margin: 0;
  padding: 4px;
  list-style: none;
  background: #fff;
  border: 1px solid var(--ej-border);
  border-radius: var(--ej-radius-sm);
  box-shadow: var(--ej-shadow-md);
}
.ej_topbar .pkp_navigation_user ul a { display: block; padding: 7px 10px; border-radius: 6px; color: var(--ej-text); font-size: 14px; }
.ej_topbar .pkp_navigation_user ul a:hover { background: var(--ej-subtle); color: var(--ej-fg); text-decoration: none; }

/* ---------- header ---------- */
.pkp_structure_head {
  background: #fff;
  border-bottom: 1px solid var(--ej-border);
  box-shadow: none;
}
.pkp_head_wrapper {
  position: relative;
  max-width: var(--ej-container);
  width: auto;
  margin: 0 auto;
  padding: 0 var(--ej-gutter);
}
.pkp_site_name_wrapper { position: static; width: auto; height: auto; padding: 0; background: none; }
.pkp_site_name { position: static; width: auto; margin: 0; padding: 14px 0; }
.ej_brand { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; color: var(--ej-fg); }
.ej_brand:hover, .ej_brand:focus { color: var(--ej-fg); text-decoration: none; }
.ej_brand_logo { width: 44px; height: 44px; object-fit: contain; border-radius: 50%; border: 1px solid var(--ej-border); background: #fff; }
.ej_brand_text { display: flex; flex-direction: column; line-height: 1.2; }
.ej_brand_name { font-size: 19px; font-weight: 700; letter-spacing: -0.02em; color: var(--ej-fg); }
.ej_brand_sub { margin-top: 2px; font-size: 12.5px; color: var(--ej-muted); }

/* primary navigation */
.pkp_site_nav_menu, .pkp_navigation_primary_row, .pkp_navigation_primary_wrapper { background: transparent; border: 0; }
.pkp_navigation_primary { margin: 0; padding: 0; }
.pkp_navigation_primary > li > a {
  display: inline-block;
  margin: 0;
  padding: 8px 12px;
  border: 0;
  border-radius: 6px;
  color: var(--ej-muted-2);
  font-size: 14.5px;
  font-weight: 500;
  text-decoration: none;
}
.pkp_navigation_primary > li > a:hover,
.pkp_navigation_primary > li > a:focus,
.pkp_navigation_primary > li:focus-within > a { background: var(--ej-subtle); color: var(--ej-fg); border: 0; }
.pkp_navigation_primary ul {
  min-width: 220px;
  padding: 4px;
  background: #fff;
  border: 1px solid var(--ej-border);
  border-radius: var(--ej-radius-sm);
  box-shadow: var(--ej-shadow-md);
}
.pkp_navigation_primary ul li { margin: 0; }
.pkp_navigation_primary ul a {
  display: block;
  padding: 7px 10px;
  border: 0;
  border-radius: 6px;
  color: var(--ej-text);
  font-size: 14px;
  text-decoration: none;
}
.pkp_navigation_primary ul a:hover, .pkp_navigation_primary ul a:focus { background: var(--ej-subtle); color: var(--ej-fg); border: 0; }
.pkp_navigation_search_wrapper { margin: 0; padding: 0; border: 0; }
.pkp_navigation_search_wrapper a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 36px;
  padding: 0 14px;
  border: 1px solid var(--ej-border);
  border-radius: var(--ej-radius-sm);
  background: #fff;
  color: var(--ej-muted);
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
  box-shadow: var(--ej-shadow-sm);
}
.pkp_navigation_search_wrapper a:hover, .pkp_navigation_search_wrapper a:focus { color: var(--ej-fg); border-color: var(--ej-border-2); text-decoration: none; }

@media (min-width: 992px) {
  .pkp_head_wrapper { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 72px; }
  .pkp_site_nav_toggle { display: none; }
  .pkp_site_nav_menu { position: static; display: block; width: auto; padding: 0; }
  .pkp_navigation_primary_row { padding: 0; }
  .pkp_navigation_primary_wrapper { display: flex; align-items: center; gap: 12px; width: auto; padding: 0; }
  .pkp_navigation_primary { display: flex; align-items: center; gap: 2px; }
  .pkp_navigation_primary > li { position: relative; }
}
@media (max-width: 991px) {
  .pkp_head_wrapper { min-height: 64px; display: flex; align-items: center; }
  .pkp_site_name { padding: 10px 52px 10px 0; }
  .ej_brand_logo { width: 38px; height: 38px; }
  .ej_brand_name { font-size: 17px; }
  .ej_brand_sub { font-size: 11.5px; }
  .pkp_site_nav_toggle {
    position: absolute;
    top: 50%;
    right: var(--ej-gutter);
    left: auto;
    transform: translateY(-50%);
    width: 40px;
    height: 40px;
    margin: 0;
    padding: 0;
    border: 1px solid var(--ej-border);
    border-radius: var(--ej-radius-sm);
    background-color: #fff;
    background-image: linear-gradient(var(--ej-fg), var(--ej-fg)), linear-gradient(var(--ej-fg), var(--ej-fg)), linear-gradient(var(--ej-fg), var(--ej-fg));
    background-size: 18px 2px;
    background-repeat: no-repeat;
    background-position: center calc(50% - 6px), center, center calc(50% + 6px);
    box-shadow: var(--ej-shadow-sm);
  }
  .pkp_site_nav_toggle span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .pkp_site_nav_toggle::before, .pkp_site_nav_toggle::after, .pkp_site_nav_toggle span::before, .pkp_site_nav_toggle span::after { display: none; }
  .pkp_site_nav_menu {
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    z-index: 999;
    padding: 8px var(--ej-gutter) 16px;
    background: #fff;
    border-bottom: 1px solid var(--ej-border);
    box-shadow: var(--ej-shadow-md);
  }
  .pkp_navigation_primary > li > a { display: block; padding: 10px 12px; }
  .pkp_navigation_primary ul { position: static; box-shadow: none; border: 0; padding: 0 0 0 12px; }
  .pkp_navigation_search_wrapper { margin-top: 8px; }
}

/* ---------- layout ---------- */
.pkp_structure_content {
  max-width: var(--ej-container);
  width: auto;
  margin: 0 auto;
  padding: 40px var(--ej-gutter) 72px;
}
.pkp_structure_main {
  float: none;
  width: auto;
  min-width: 0;
  margin: 0;
  padding: 0;
  background: none;
  border: 0;
  box-shadow: none;
}
.pkp_structure_main::before, .pkp_structure_main::after { display: none; }
.pkp_structure_content.has_sidebar { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 48px; }
@media (max-width: 991px) { .pkp_structure_content.has_sidebar { grid-template-columns: 1fr; } }
.pkp_structure_sidebar { float: none; width: auto; margin: 0; padding: 0; }
.pkp_structure_sidebar .pkp_block {
  margin-bottom: 16px;
  padding: 16px 18px;
  border: 1px solid var(--ej-border);
  border-radius: var(--ej-radius);
  background: #fff;
}
.pkp_structure_sidebar .pkp_block .title { font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--ej-muted); }

/* breadcrumbs */
.cmp_breadcrumbs { margin: 0 0 20px; }
.cmp_breadcrumbs ol { margin: 0; padding: 0; font-size: 13.5px; color: var(--ej-muted); }
.cmp_breadcrumbs a { color: var(--ej-muted); text-decoration: none; }
.cmp_breadcrumbs a:hover { color: var(--ej-fg); text-decoration: underline; }
.cmp_breadcrumbs .separator { color: var(--ej-border-2); }

/* page titles + prose */
.page_title, .pkp_structure_main h1 {
  margin: 0 0 20px;
  font-size: clamp(28px, 3.2vw, 36px);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.025em;
}
.pkp_structure_main h2 { font-size: 22px; font-weight: 600; margin: 32px 0 12px; }
.pkp_structure_main h3 { font-size: 18px; font-weight: 600; margin: 24px 0 10px; }
.page_about, .page_submissions, .page_privacy, .page_contact, .page_information, .page_static, .page_editorial_masthead,
.page_issue_archive, .page_login, .page_register, .page_lost_password { margin: 0 auto; }
.page_about, .page_submissions, .page_privacy, .page_contact, .page_information, .page_static, .page_editorial_masthead { max-width: 760px; }
.page_about p, .page_submissions p, .page_privacy p, .page_information p, .page_static p, .page_contact p,
.page_about li, .page_submissions li, .page_information li, .page_static li { font-size: 16px; line-height: 1.75; color: var(--ej-text); }
.page_about a, .page_submissions a, .page_privacy a, .page_contact a, .page_information a, .page_static a { color: var(--ej-accent); }
.page_about ul, .page_submissions ul, .page_information ul, .page_static ul { padding-left: 22px; }

/* ---------- homepage hero ---------- */
.page_index_journal .ej_hero {
  margin: 0 0 48px;
  padding: 8px 0 40px;
  border-bottom: 1px solid var(--ej-border);
}
.ej_badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  padding: 4px 12px;
  border: 1px solid var(--ej-border);
  border-radius: 999px;
  background: #fff;
  font-size: 13px;
  font-weight: 500;
  color: var(--ej-muted-2);
  box-shadow: var(--ej-shadow-sm);
}
.ej_badge_dot { width: 8px; height: 8px; border-radius: 50%; background: #16a34a; box-shadow: 0 0 0 3px rgba(22, 163, 74, .15); }
.page_index_journal .ej_hero .ej_hero_title {
  margin: 20px 0 14px;
  font-size: clamp(36px, 5.2vw, 58px);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -0.035em;
  color: var(--ej-fg);
}
.ej_hero_lead { max-width: 680px; margin: 0; font-size: 18px; line-height: 1.6; color: var(--ej-muted-2); }
.ej_hero_actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.ej_hero_publisher { margin: 20px 0 0; font-size: 14px; color: var(--ej-muted); }
.ej_hero_publisher a { color: var(--ej-fg); font-weight: 500; }
.ej_stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 36px 0 0;
  border: 1px solid var(--ej-border);
  border-radius: var(--ej-radius);
  overflow: hidden;
  background: #fff;
}
.ej_stat { padding: 16px 20px; border-left: 1px solid var(--ej-border); }
.ej_stat:first-child { border-left: 0; }
.ej_stat dt { margin: 0; font-size: 12px; font-weight: 500; letter-spacing: .04em; text-transform: uppercase; color: var(--ej-muted); }
.ej_stat dd { margin: 4px 0 0; font-size: 15px; font-weight: 600; color: var(--ej-fg); }
@media (max-width: 767px) {
  .ej_stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ej_stat:nth-child(3) { border-left: 0; }
  .ej_stat:nth-child(n+3) { border-top: 1px solid var(--ej-border); }
  .ej_hero_lead { font-size: 16.5px; }
}

/* ---------- buttons ---------- */
.ej_btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 42px;
  padding: 0 20px;
  border-radius: var(--ej-radius-sm);
  font-size: 15px;
  font-weight: 500;
  text-decoration: none;
  transition: background-color .15s, border-color .15s, color .15s;
}
.ej_btn_primary { background: var(--ej-primary); color: #fafafa; border: 1px solid var(--ej-primary); }
.ej_btn_primary:hover, .ej_btn_primary:focus { background: var(--ej-primary-hover); color: #fff; text-decoration: none; }
.ej_btn_outline { background: #fff; color: var(--ej-fg); border: 1px solid var(--ej-border); box-shadow: var(--ej-shadow-sm); }
.ej_btn_outline:hover, .ej_btn_outline:focus { background: var(--ej-subtle); color: var(--ej-fg); text-decoration: none; }

.cmp_button, .cmp_form .buttons button, .cmp_form .buttons .submit, button.submit, .pkp_button_primary {
  display: inline-flex;
  align-items: center;
  height: 40px;
  padding: 0 18px;
  border: 1px solid var(--ej-primary);
  border-radius: var(--ej-radius-sm);
  background: var(--ej-primary);
  color: #fafafa;
  font-family: var(--ej-font);
  font-size: 14.5px;
  font-weight: 500;
  box-shadow: none;
  text-shadow: none;
  cursor: pointer;
}
.cmp_button:hover, .cmp_form .buttons button:hover, .cmp_form .buttons .submit:hover, button.submit:hover {
  background: var(--ej-primary-hover);
  border-color: var(--ej-primary-hover);
  color: #fff;
}
.obj_galley_link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 32px;
  padding: 0 12px;
  border: 1px solid var(--ej-border);
  border-radius: 6px;
  background: #fff;
  color: var(--ej-fg);
  font-size: 13px;
  font-weight: 500;
  text-decoration: none;
  box-shadow: var(--ej-shadow-sm);
}
.obj_galley_link:hover, .obj_galley_link:focus { background: var(--ej-subtle); color: var(--ej-fg); border-color: var(--ej-border-2); }
.obj_galley_link::before { color: var(--ej-muted); }

/* ---------- current issue / issue TOC ---------- */
.page_index_journal .current_issue > h2 {
  margin: 0 0 4px;
  font-size: 24px;
  font-weight: 700;
  letter-spacing: -0.02em;
  border: 0;
}
.current_issue_title { margin-bottom: 20px; color: var(--ej-muted); font-size: 14.5px; font-weight: 500; }
.obj_issue_toc .heading {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 0 0 8px;
  padding: 16px;
  border: 1px solid var(--ej-border);
  border-radius: var(--ej-radius);
  background: var(--ej-subtle-2);
}
.obj_issue_toc .heading .cover { flex: 0 0 auto; float: none; width: auto; margin: 0; }
.obj_issue_toc .heading .cover img { width: 64px; height: 64px; object-fit: contain; border-radius: 8px; background: #fff; border: 1px solid var(--ej-border); }
.obj_issue_toc .heading .published, .obj_issue_toc .heading .description { margin: 0; color: var(--ej-muted-2); font-size: 14px; }
.obj_issue_toc .heading .published .label { font-weight: 600; color: var(--ej-fg); }
.obj_issue_toc .sections { margin: 0; }
.obj_issue_toc .sections .section { margin: 28px 0 0; padding: 0; }
.obj_issue_toc .sections .section::before, .obj_issue_toc .sections .section > h2::before, .obj_issue_toc .sections .section > h2::after { display: none; }
.obj_issue_toc .sections .section > h2 {
  position: static;
  margin: 0 0 12px;
  padding: 0;
  background: none;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--ej-muted);
}
.cmp_article_list { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.cmp_article_list > li { margin: 0; padding: 0; }
.obj_article_summary {
  padding: 18px 22px;
  border: 1px solid var(--ej-border);
  border-radius: var(--ej-radius);
  background: #fff;
  box-shadow: var(--ej-shadow-sm);
  transition: border-color .15s, box-shadow .15s;
}
.obj_article_summary:hover { border-color: var(--ej-border-2); box-shadow: var(--ej-shadow-md); }
.obj_article_summary > .title { margin: 0; font-size: 17px; font-weight: 600; line-height: 1.45; letter-spacing: -0.01em; }
.obj_article_summary > .title a { color: var(--ej-fg); text-decoration: none; }
.obj_article_summary > .title a:hover { text-decoration: underline; }
.obj_article_summary .meta { margin-top: 6px; font-size: 14px; color: var(--ej-muted); }
.obj_article_summary .galleys_links { display: flex; gap: 8px; margin: 14px 0 0; padding: 0; }
.page_index_journal .read_more { display: inline-flex; align-items: center; gap: 4px; margin-top: 16px; font-size: 14.5px; font-weight: 500; color: var(--ej-fg); text-decoration: none; }
.page_index_journal .read_more:hover { text-decoration: underline; }

/* ---------- archive ---------- */
.issues_archive { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
.issues_archive > li { margin: 0; padding: 0; }
.obj_issue_summary {
  height: 100%;
  padding: 18px;
  border: 1px solid var(--ej-border);
  border-radius: var(--ej-radius);
  background: #fff;
  box-shadow: var(--ej-shadow-sm);
}
.obj_issue_summary .cover { float: none; width: auto; margin: 0 0 14px; display: block; }
.obj_issue_summary .cover img { width: 72px; height: 72px; object-fit: contain; border-radius: 8px; border: 1px solid var(--ej-border); background: #fff; }
.obj_issue_summary h2 { margin: 0; font-size: 16.5px; font-weight: 600; line-height: 1.4; }
.obj_issue_summary h2 a, .obj_issue_summary .title { color: var(--ej-fg); text-decoration: none; }
.obj_issue_summary .series { display: block; margin-top: 4px; font-size: 13.5px; color: var(--ej-muted); }

/* ---------- article page ---------- */
.obj_article_details .page_title { margin-bottom: 8px; font-size: clamp(28px, 3.4vw, 40px); font-weight: 700; line-height: 1.2; letter-spacing: -0.03em; }
.obj_article_details .subtitle { margin: 0 0 8px; font-size: 18px; color: var(--ej-muted-2); }
.obj_article_details .row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 48px;
  margin: 28px 0 0;
  border: 0;
}
.obj_article_details .main_entry, .obj_article_details .entry_details {
  float: none;
  width: auto;
  margin: 0;
  padding: 0;
  border: 0;
}
.obj_article_details .main_entry .item { margin: 0 0 28px; padding: 0; border: 0; }
.obj_article_details .item .label,
.obj_article_details .main_entry .item .label,
.obj_article_details .entry_details .item .label,
.obj_article_details .main_entry .item.abstract h2 {
  margin: 0 0 8px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--ej-muted);
}
.obj_article_details .item.authors ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 6px; }
.obj_article_details .item.authors .name { font-weight: 600; color: var(--ej-fg); }
.obj_article_details .item.authors .affiliation { font-size: 14px; color: var(--ej-muted); }
.obj_article_details .item.abstract p, .obj_article_details .item.abstract { font-size: 16px; line-height: 1.8; color: var(--ej-text); }
.obj_article_details .entry_details {
  position: sticky;
  top: 20px;
  align-self: start;
  border: 1px solid var(--ej-border);
  border-radius: var(--ej-radius);
  background: #fff;
  box-shadow: var(--ej-shadow-sm);
  overflow: hidden;
}
.obj_article_details .entry_details .item { margin: 0; padding: 16px 20px; border: 0; border-top: 1px solid var(--ej-border); }
.obj_article_details .entry_details .item:first-child { border-top: 0; }
.obj_article_details .entry_details .item .sub_item { margin: 0 0 12px; }
.obj_article_details .entry_details .item .sub_item:last-child { margin-bottom: 0; }
/* The issue "cover" is the university seal; it adds nothing on the article page. */
.obj_article_details .entry_details .item.cover_image { display: none; }
.obj_article_details .entry_details .item.cover_image + .item { border-top: 0; }
.obj_article_details .entry_details .item.galleys .value { margin: 0; padding: 0; }
.obj_article_details .entry_details .item.galleys .obj_galley_link {
  width: 100%;
  justify-content: center;
  height: 40px;
  background: var(--ej-primary);
  border-color: var(--ej-primary);
  color: #fafafa;
  font-size: 14.5px;
}
.obj_article_details .entry_details .item.galleys .obj_galley_link:hover { background: var(--ej-primary-hover); }
.obj_article_details .entry_details .item.galleys .obj_galley_link::before { color: #a1a1aa; }
.obj_article_details .entry_details .item.views .value { font-size: 24px; font-weight: 700; letter-spacing: -0.02em; color: var(--ej-fg); }
.obj_article_details .entry_details .value, .obj_article_details .entry_details .item { font-size: 14px; }
@media (max-width: 991px) {
  .obj_article_details .row { grid-template-columns: 1fr; gap: 28px; }
  .obj_article_details .entry_details { position: static; }
}

/* ---------- forms (login, register, lost password) ---------- */
.page_login, .page_lost_password { max-width: 440px; }
.page_register { max-width: 620px; }
.cmp_form fieldset { margin: 0 0 24px; padding: 0; border: 0; }
.cmp_form legend { margin-bottom: 12px; font-size: 16px; font-weight: 600; color: var(--ej-fg); }
.cmp_form .fields > div { margin-bottom: 16px; }
.cmp_form label .label, .cmp_form .label { font-size: 14px; font-weight: 500; color: var(--ej-fg); }
.cmp_form input[type="text"], .cmp_form input[type="email"], .cmp_form input[type="password"],
.cmp_form input[type="url"], .cmp_form input[type="tel"], .cmp_form select, .cmp_form textarea {
  width: 100%;
  max-width: none;
  height: 40px;
  margin-top: 6px;
  padding: 0 12px;
  border: 1px solid var(--ej-border);
  border-radius: var(--ej-radius-sm);
  background: #fff;
  font-family: var(--ej-font);
  font-size: 15px;
  color: var(--ej-fg);
  box-shadow: var(--ej-shadow-sm);
}
.cmp_form textarea { height: auto; min-height: 100px; padding: 10px 12px; }
.cmp_form input:focus, .cmp_form select:focus, .cmp_form textarea:focus {
  outline: none;
  border-color: var(--ej-border-2);
  box-shadow: 0 0 0 3px var(--ej-ring);
}
.cmp_form input[type="checkbox"], .cmp_form input[type="radio"] { accent-color: var(--ej-primary); }
.cmp_form .buttons { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 8px; }
.cmp_form .buttons a { font-size: 14.5px; font-weight: 500; color: var(--ej-fg); }
.cmp_form .required, .cmp_form abbr.required { color: #dc2626; text-decoration: none; border: 0; }
.page_login .login_message, .cmp_notification {
  margin: 0 0 20px;
  padding: 12px 16px;
  border: 1px solid #fde68a;
  border-radius: var(--ej-radius-sm);
  background: #fffbeb;
  color: #78350f;
  font-size: 14.5px;
}
.pkp_form_error, .cmp_form .pkp_form_error {
  margin: 0 0 20px;
  padding: 12px 16px;
  border: 1px solid #fecaca;
  border-radius: var(--ej-radius-sm);
  background: #fef2f2;
  color: #991b1b;
  font-size: 14.5px;
}

/* ---------- footer ---------- */
.pkp_structure_footer_wrapper {
  background: var(--ej-subtle-2);
  border-top: 1px solid var(--ej-border);
  color: var(--ej-muted-2);
}
.pkp_structure_footer {
  max-width: var(--ej-container);
  width: auto;
  margin: 0 auto;
  padding: 48px var(--ej-gutter) 28px;
}
.pkp_footer_content { padding: 0; font-size: 14px; color: inherit; }
.pkp_footer_content a { color: var(--ej-muted-2); text-decoration: none; }
.pkp_footer_content a:hover { color: var(--ej-fg); text-decoration: underline; }
.ej_footer { display: grid; gap: 32px; grid-template-columns: 1fr; line-height: 1.65; }
@media (min-width: 768px) { .ej_footer { grid-template-columns: 1.6fr 1fr 1fr 1.2fr; } }
.ej_footer h3 { margin: 0 0 12px; font-size: 13px; font-weight: 600; letter-spacing: .02em; color: var(--ej-fg); }
.ej_footer ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 6px; }
.ej_footer p { margin: 0 0 10px; }
.ej_footer_name { font-size: 17px; font-weight: 700; letter-spacing: -0.02em; color: var(--ej-fg); }
.ej_footer_meta { font-size: 13px; color: var(--ej-muted); }
.ej_footer_bottom {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 8px 24px;
  margin-top: 36px;
  padding-top: 20px;
  border-top: 1px solid var(--ej-border);
  font-size: 13px;
  color: var(--ej-muted);
}
.pkp_brand_footer { float: none; margin: 20px 0 0; padding: 0; text-align: left; opacity: .55; }
.pkp_brand_footer img { width: 84px; height: auto; filter: grayscale(1); }
.pkp_brand_footer:hover { opacity: .85; }

/* ---------- structural resets ----------
   The parent theme sets padding/margins/widths on these containers inside media
   queries with more specific selectors (e.g. 30px top padding on the header for
   its old floating account menu, centring margins on the brand block, a 40px top
   margin on full-width pages). These resets win over all of them. */
.pkp_structure_head .pkp_head_wrapper { padding: 0 var(--ej-gutter) !important; margin: 0 auto !important; width: auto !important; max-width: var(--ej-container) !important; }
.pkp_structure_head .pkp_site_name_wrapper { margin: 0 !important; width: auto !important; height: auto !important; }
.pkp_structure_head .pkp_site_name { margin: 0 !important; }
.pkp_structure_content .pkp_structure_main,
.pkp_structure_main:first-child:last-child { margin: 0 !important; padding: 0 !important; float: none !important; width: auto !important; }
.page_index_journal .ej_hero p { margin: 0; }
.page_index_journal .ej_hero .ej_hero_lead { margin-top: 0; }
.page_index_journal .ej_hero .ej_hero_title { margin: 20px 0 14px; }
.page_index_journal .ej_hero .ej_hero_publisher { margin-top: 20px; }
@media (min-width: 992px) {
  .pkp_structure_head .pkp_site_name_wrapper { flex: 0 1 auto; }
  .pkp_structure_head .pkp_site_nav_menu { flex: 0 0 auto; margin: 0 !important; width: auto !important; }
}

/* The parent adds clearfix ::before/::after to these containers. Once they are
   flex or grid, the pseudo-elements become real items: with space-between they
   took a share of the spacing (pushing the brand ~110px right), and in grids they
   would take cells. */
.pkp_head_wrapper::before, .pkp_head_wrapper::after,
.pkp_navigation_primary_wrapper::before, .pkp_navigation_primary_wrapper::after,
.pkp_navigation_primary::before, .pkp_navigation_primary::after,
.pkp_structure_content::before, .pkp_structure_content::after,
.obj_article_details .row::before, .obj_article_details .row::after,
.cmp_article_list::before, .cmp_article_list::after,
.issues_archive::before, .issues_archive::after,
.obj_issue_toc .heading::before, .obj_issue_toc .heading::after { content: none !important; display: none !important; }

.page_index_journal .current_issue .read_more { color: var(--ej-fg); }
.obj_article_details .entry_details .item.galleys .galleys_links { display: block; margin: 0; padding: 0; list-style: none; }
.obj_article_details .entry_details .item.galleys .galleys_links li { display: block; margin: 0 0 8px; }
.obj_article_details .entry_details .item.galleys .galleys_links li:last-child { margin-bottom: 0; }

/* archive: drop the parent's full-width dividers around the issue list */
.page_issue_archive .issues_archive, .issues_archive { margin: 0 !important; border: 0 !important; }
.issues_archive > li { border: 0 !important; padding: 0 !important; }
.page_issue_archive .cmp_pagination { border: 0; margin-top: 24px; }

/* auth pages as a centred card, inputs full width */
.page_login, .page_register, .page_lost_password, .page_reset_password {
  margin: 8px auto 0;
  padding: 32px;
  border: 1px solid var(--ej-border);
  border-radius: var(--ej-radius);
  background: #fff;
  box-shadow: var(--ej-shadow-sm);
}
@media (max-width: 600px) {
  .page_login, .page_register, .page_lost_password, .page_reset_password { padding: 22px 18px; }
}
.page_login .cmp_breadcrumbs, .page_register .cmp_breadcrumbs, .page_lost_password .cmp_breadcrumbs { display: none; }
.page_login h1, .page_register h1, .page_lost_password h1 { font-size: 26px; margin-bottom: 6px; }
.page_login form > p, .page_register form > p, .page_lost_password p { color: var(--ej-muted); font-size: 14px; }
.cmp_form .fields input[type="text"], .cmp_form .fields input[type="email"],
.cmp_form .fields input[type="password"], .cmp_form .fields select,
.page_login input[type="text"], .page_login input[type="password"], .page_lost_password input[type="text"],
.page_lost_password input[type="email"] { width: 100% !important; max-width: none !important; }
.cmp_form .fields > div, .page_login .fields .username, .page_login .fields .password { margin: 0 0 16px !important; }
.page_login .password a { display: inline-block; margin-top: 6px; font-size: 13.5px; color: var(--ej-muted-2); }
.page_login .remember { margin-bottom: 4px !important; }
/* the parent caps auth forms at ~255px and pads each field group by 30px */
.page_login .cmp_form, .page_register .cmp_form, .page_lost_password .cmp_form, .page_reset_password .cmp_form,
.page_login .cmp_form .fields, .page_lost_password .cmp_form .fields { width: auto !important; max-width: none !important; }
.cmp_form .fields > div { padding-bottom: 0 !important; }
.cmp_form .fields label { display: block; }
/* top bar on phones: institution on one line, language + account on the next */
.ej_topbar .pkp_navigation_user, .ej_topbar .pkp_navigation_user > li, .ej_topbar .pkp_navigation_user > li > a { border: 0 !important; box-shadow: none; }
@media (max-width: 600px) {
  .ej_topbar_inner { padding-top: 6px; padding-bottom: 6px; }
  .ej_topbar_sep, .ej_topbar_place { display: none; }
  .ej_topbar_org { width: 100%; }
  .ej_topbar_right { width: 100%; justify-content: space-between; }
}

/* ---------- homepage "platform" section (journal setting additionalHomeContent) ---------- */
.page_index_journal .additional_content { margin: 56px 0 0; padding: 0; }
.ej_platform {
  padding: 32px;
  border: 1px solid var(--ej-border);
  border-radius: var(--ej-radius);
  background: var(--ej-subtle-2);
}
.ej_platform .ej_platform_kicker {
  margin: 0 0 6px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--ej-muted);
}
.pkp_structure_main .ej_platform h2 { margin: 0 0 10px; font-size: 22px; font-weight: 700; letter-spacing: -0.02em; }
.ej_platform p { max-width: 720px; margin: 0; font-size: 15.5px; line-height: 1.7; color: var(--ej-muted-2); }
.ej_platform p a { color: var(--ej-fg); font-weight: 500; }
.ej_platform .ej_platform_label { margin: 20px 0 10px; font-size: 13px; font-weight: 500; color: var(--ej-muted); }
.ej_platform_list { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.ej_platform_list li {
  padding: 6px 12px;
  border: 1px solid var(--ej-border);
  border-radius: 999px;
  background: #fff;
  font-size: 13.5px;
  font-weight: 500;
  color: var(--ej-fg);
  box-shadow: var(--ej-shadow-sm);
}
@media (max-width: 600px) { .ej_platform { padding: 22px 18px; } }
.ej_footer_bottom a { color: var(--ej-muted-2); }
