/**
 * OJS 3.4.0-10 Custom Stylesheet
 * Theme: Modern Minimal Academic — Deep Navy / Indigo
 *
 * Installation:
 *   Dashboard → Settings → Website → Appearance → Custom Stylesheet
 *   Upload this file.
 *
 * Palette
 *   Navy       #0F1F3D   (primary brand)
 *   Indigo     #2D3F7B   (secondary / hover)
 *   Sky        #4A6FA5   (links / interactive)
 *   Mist       #E8EDF6   (tinted surfaces)
 *   Bone       #F7F8FA   (page background)
 *   Ink        #1A1E2E   (body text)
 *   Slate      #5C6375   (muted / metadata)
 *   Hairline   #D4D9E8   (borders)
 *   White      #FFFFFF
 *   Gold       #B8943C   (accent / DOI badge)
 */

/* ─────────────────────────────────────────
   0. Tokens
──────────────────────────────────────────*/
:root {
  --c-navy:      #0F1F3D;
  --c-indigo:    #2D3F7B;
  --c-sky:       #4A6FA5;
  --c-mist:      #E8EDF6;
  --c-bone:      #F7F8FA;
  --c-ink:       #1A1E2E;
  --c-slate:     #5C6375;
  --c-hair:      #D4D9E8;
  --c-white:     #FFFFFF;
  --c-gold:      #B8943C;

  --font-display: 'EB Garamond', 'Palatino Linotype', Georgia, serif;
  --font-body:    'Source Serif 4', 'Lora', Georgia, serif;
  --font-ui:      'DM Sans', 'Trebuchet MS', sans-serif;
  --font-mono:    'JetBrains Mono', 'Fira Code', monospace;

  --radius-sm:   3px;
  --radius-md:   6px;
  --radius-lg:   10px;

  --shadow-card: 0 1px 3px rgba(15,31,61,.07), 0 4px 14px rgba(15,31,61,.06);
  --shadow-lift: 0 4px 20px rgba(15,31,61,.13);

  --transition: 200ms ease;
}

/* ─────────────────────────────────────────
   1. Google Fonts import
──────────────────────────────────────────*/
@import url('https://fonts.googleapis.com/css2?family=EB+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&family=Source+Serif+4:ital,opsz,wght@0,8..60,300;0,8..60,400;0,8..60,500;1,8..60,300;1,8..60,400&family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,400&display=swap');

/* ─────────────────────────────────────────
   2. Base reset
──────────────────────────────────────────*/
*, *::before, *::after { box-sizing: border-box; }

html {
  background: var(--c-bone);
  color: var(--c-ink);
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.75;
  -webkit-font-smoothing: antialiased;
}

body {
  background: var(--c-bone);
  color: var(--c-ink);
  font-family: var(--font-body);
  margin: 0;
}

/* ─────────────────────────────────────────
   3. Header & Site Identity
──────────────────────────────────────────*/
#headerBar,
.pkp_structure_head,
header.pkp_structure_head {
  background: var(--c-navy) !important;
  border-bottom: none !important;
  box-shadow: 0 2px 12px rgba(15,31,61,.25);
}

/* Journal name */
.pkp_structure_head .pkpHeader,
.pkp_structure_head .site-name,
.pkp_structure_head h1,
.pkp_site_name h1,
.pkp_site_name a {
  font-family: var(--font-display) !important;
  font-size: 1.55rem !important;
  font-weight: 500 !important;
  color: var(--c-white) !important;
  letter-spacing: 0.02em;
  text-decoration: none !important;
}

/* Journal tagline / subtitle */
.pkp_site_name .tagline,
.pkp_site_summary,
.pkpHeader .tagline {
  font-family: var(--font-ui);
  font-size: 0.72rem;
  font-weight: 300;
  color: rgba(255,255,255,.55);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin-top: 2px;
}

/* Site logo */
.pkp_site_name img { max-height: 52px; width: auto; }

/* ─────────────────────────────────────────
   4. Primary Navigation
──────────────────────────────────────────*/
.pkp_navigation_primary,
nav.pkp_navigation_primary,
#navigationPrimary {
  background: var(--c-navy) !important;
  border-top: 1px solid rgba(255,255,255,.08);
  padding: 0 1.5rem;
}

.pkp_navigation_primary ul,
#navigationPrimary ul {
  display: flex;
  flex-wrap: wrap;
  margin: 0;
  padding: 0;
  list-style: none;
  gap: 0;
}

.pkp_navigation_primary li a,
#navigationPrimary li a,
.pkp_navigation_primary .nav-item > a {
  font-family: var(--font-ui) !important;
  font-size: 0.8rem !important;
  font-weight: 400 !important;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(255,255,255,.72) !important;
  text-decoration: none !important;
  padding: 0.85rem 1.1rem;
  display: block;
  border-bottom: 2px solid transparent;
  transition: color var(--transition), border-color var(--transition);
}

.pkp_navigation_primary li a:hover,
.pkp_navigation_primary li.current > a,
.pkp_navigation_primary li.active > a {
  color: var(--c-white) !important;
  border-bottom-color: var(--c-gold) !important;
}

/* Dropdown */
.pkp_navigation_primary .pkp_dropdown,
#navigationPrimary .dropdown-menu {
  background: var(--c-indigo) !important;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-lift);
  padding: 0.4rem 0;
  min-width: 200px;
}

.pkp_navigation_primary .pkp_dropdown a,
#navigationPrimary .dropdown-menu a {
  color: rgba(255,255,255,.8) !important;
  font-size: 0.8rem !important;
  padding: 0.55rem 1.2rem;
  letter-spacing: 0.03em;
  text-transform: none;
  border-bottom: none !important;
}

.pkp_navigation_primary .pkp_dropdown a:hover {
  background: rgba(255,255,255,.08);
  color: var(--c-white) !important;
}

/* ─────────────────────────────────────────
   5. User Navigation (top-right bar)
──────────────────────────────────────────*/
.pkp_navigation_user,
#navigationUser {
  background: var(--c-navy) !important;
  border-bottom: none !important;
}

.pkp_navigation_user a,
#navigationUser a {
  font-family: var(--font-ui);
  font-size: 0.75rem;
  color: rgba(255,255,255,.6) !important;
  text-decoration: none !important;
  letter-spacing: 0.04em;
  transition: color var(--transition);
}

.pkp_navigation_user a:hover { color: var(--c-white) !important; }

/* ─────────────────────────────────────────
   6. Page Layout & Wrapper
──────────────────────────────────────────*/
.pkp_structure_content,
#pkp_content_main,
main.pkp_structure_main {
  max-width: 1120px;
  margin: 0 auto;
  padding: 3rem 1.5rem 4rem;
}

/* Two-column: main + sidebar */
.pkp_structure_main { flex: 1 1 680px; min-width: 0; }
.pkp_structure_sidebar { flex: 0 0 260px; }

/* ─────────────────────────────────────────
   7. Page headings
──────────────────────────────────────────*/
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  font-weight: 500;
  color: var(--c-navy);
  line-height: 1.3;
  margin-top: 2em;
  margin-bottom: 0.5em;
}

h1 { font-size: 2.1rem; margin-top: 0; }
h2 { font-size: 1.55rem; }
h3 { font-size: 1.2rem; }
h4 { font-size: 1rem; font-family: var(--font-ui); font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; font-size: 0.78rem; color: var(--c-slate); }

/* Page-level section title (e.g. "Current Issue") */
.pkp_page_title,
.page_title {
  font-family: var(--font-display) !important;
  font-size: 2rem !important;
  font-weight: 500 !important;
  color: var(--c-navy) !important;
  border-bottom: 1px solid var(--c-hair);
  padding-bottom: 0.6rem;
  margin-bottom: 2rem;
}

/* ─────────────────────────────────────────
   8. Article listings (issue TOC / index)
──────────────────────────────────────────*/
.obj_article_summary,
.article-summary {
  background: var(--c-white);
  border: 1px solid var(--c-hair);
  border-radius: var(--radius-lg);
  padding: 1.6rem 1.8rem;
  margin-bottom: 1rem;
  box-shadow: var(--shadow-card);
  transition: box-shadow var(--transition), border-color var(--transition);
}

.obj_article_summary:hover,
.article-summary:hover {
  box-shadow: var(--shadow-lift);
  border-color: var(--c-sky);
}

/* Article title in listing */
.obj_article_summary .title a,
.article-summary .title a,
.obj_article_summary h3 a {
  font-family: var(--font-display) !important;
  font-size: 1.2rem !important;
  font-weight: 500 !important;
  color: var(--c-navy) !important;
  text-decoration: none !important;
  line-height: 1.4;
  transition: color var(--transition);
}

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

/* Authors in listing */
.obj_article_summary .authors,
.article-summary .authors {
  font-family: var(--font-ui);
  font-size: 0.82rem;
  color: var(--c-slate);
  margin-top: 0.35rem;
  font-style: normal;
}

/* Abstract excerpt in listing */
.obj_article_summary .abstract,
.obj_article_summary p {
  font-size: 0.88rem;
  color: var(--c-slate);
  margin-top: 0.5rem;
  line-height: 1.65;
}

/* Section label (e.g. "Articles", "Reviews") */
.pkp_structure_main .section,
.issue_toc .section_title,
h2.section_title {
  font-family: var(--font-ui) !important;
  font-size: 0.7rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--c-gold) !important;
  border-bottom: 1px solid var(--c-hair);
  padding-bottom: 0.4rem;
  margin: 2.5rem 0 1.2rem;
}

/* ─────────────────────────────────────────
   9. Article detail page
──────────────────────────────────────────*/
.obj_article_details,
.article-details {
  background: var(--c-white);
  border: 1px solid var(--c-hair);
  border-radius: var(--radius-lg);
  padding: 2.6rem 3rem;
  box-shadow: var(--shadow-card);
  max-width: 780px;
}

/* Article title (detail) */
.obj_article_details h1.title,
.article-details .article_title,
.pkp_structure_main h1 {
  font-family: var(--font-display) !important;
  font-size: 2rem !important;
  font-weight: 500 !important;
  color: var(--c-navy) !important;
  line-height: 1.3;
  margin-top: 0;
  margin-bottom: 0.8rem;
}

/* Authors (detail) */
.obj_article_details .authors,
.article-details .article_authors {
  font-family: var(--font-ui);
  font-size: 0.88rem;
  color: var(--c-slate);
  margin-bottom: 1.4rem;
}

.obj_article_details .authors a { color: var(--c-sky) !important; text-decoration: none; }
.obj_article_details .authors a:hover { text-decoration: underline; }

/* Abstract heading */
.obj_article_details .abstract h2,
.article-details h2.label {
  font-family: var(--font-ui) !important;
  font-size: 0.72rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--c-slate) !important;
  margin-bottom: 0.5rem;
}

/* Abstract body */
.obj_article_details .abstract p,
.article-details .abstract {
  font-family: var(--font-body);
  font-size: 0.95rem;
  line-height: 1.8;
  color: var(--c-ink);
  border-left: 3px solid var(--c-mist);
  padding-left: 1.2rem;
  margin-left: 0;
}

/* Keywords */
.obj_article_details .keywords,
.article-details .keywords {
  margin-top: 1.4rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  align-items: center;
}

.obj_article_details .keywords .label,
.article-details .keywords .label {
  font-family: var(--font-ui);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--c-slate);
  margin-right: 0.3rem;
}

.obj_article_details .keyword,
.article-details .keyword,
.obj_article_details .keywords a {
  display: inline-block;
  background: var(--c-mist);
  color: var(--c-indigo) !important;
  font-family: var(--font-ui);
  font-size: 0.75rem;
  font-weight: 500;
  padding: 0.25rem 0.7rem;
  border-radius: 20px;
  text-decoration: none !important;
  transition: background var(--transition), color var(--transition);
}

.obj_article_details .keyword:hover,
.article-details .keyword:hover {
  background: var(--c-indigo);
  color: var(--c-white) !important;
}

/* DOI / metadata row */
.obj_article_details .doi,
.obj_article_details .article_coverage,
.article-details .doi {
  font-family: var(--font-ui);
  font-size: 0.78rem;
  color: var(--c-slate);
  margin-top: 1.2rem;
  padding: 0.7rem 1rem;
  background: var(--c-bone);
  border: 1px solid var(--c-hair);
  border-radius: var(--radius-md);
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}

.obj_article_details .doi a { color: var(--c-gold) !important; font-weight: 500; }

/* ─────────────────────────────────────────
   10. Galleys / Download buttons
──────────────────────────────────────────*/
.obj_galley_link a,
.galleys_links a,
a.obj_galley_link {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-family: var(--font-ui) !important;
  font-size: 0.78rem !important;
  font-weight: 500;
  color: var(--c-white) !important;
  background: var(--c-navy) !important;
  border: none !important;
  border-radius: var(--radius-md);
  padding: 0.5rem 1.1rem !important;
  text-decoration: none !important;
  letter-spacing: 0.04em;
  transition: background var(--transition), box-shadow var(--transition);
}

.obj_galley_link a:hover,
.galleys_links a:hover {
  background: var(--c-indigo) !important;
  box-shadow: 0 2px 10px rgba(45,63,123,.35);
}

/* PDF label in particular */
.obj_galley_link.pdf a,
a.obj_galley_link.pdf {
  background: var(--c-indigo) !important;
}

/* ─────────────────────────────────────────
   11. Sidebar blocks
──────────────────────────────────────────*/
.pkp_block,
.block,
aside .pkp_block {
  background: var(--c-white);
  border: 1px solid var(--c-hair);
  border-radius: var(--radius-lg);
  padding: 1.3rem 1.5rem;
  box-shadow: var(--shadow-card);
  margin-bottom: 1.25rem;
}

.pkp_block .title,
.block .title,
.pkp_block h2 {
  font-family: var(--font-ui) !important;
  font-size: 0.7rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  color: var(--c-slate) !important;
  border-bottom: 1px solid var(--c-hair);
  padding-bottom: 0.5rem;
  margin: 0 0 0.9rem;
}

.pkp_block ul { padding-left: 0; margin: 0; list-style: none; }
.pkp_block li {
  font-family: var(--font-body);
  font-size: 0.85rem;
  padding: 0.3rem 0;
  border-bottom: 1px solid var(--c-bone);
  color: var(--c-ink);
}
.pkp_block li:last-child { border-bottom: none; }
.pkp_block a { color: var(--c-sky) !important; text-decoration: none; transition: color var(--transition); }
.pkp_block a:hover { color: var(--c-navy) !important; }

/* ─────────────────────────────────────────
   12. Issue cover & archive
──────────────────────────────────────────*/
.obj_issue_summary,
.issue-summary {
  background: var(--c-white);
  border: 1px solid var(--c-hair);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-card);
  transition: box-shadow var(--transition);
  display: flex;
  flex-direction: column;
}

.obj_issue_summary:hover { box-shadow: var(--shadow-lift); }

.obj_issue_summary .cover img,
.issue-summary .cover img {
  width: 100%;
  object-fit: cover;
  aspect-ratio: 3/4;
  display: block;
}

.obj_issue_summary .title a,
.issue-summary .title a {
  font-family: var(--font-display) !important;
  font-size: 1.1rem !important;
  font-weight: 500 !important;
  color: var(--c-navy) !important;
  text-decoration: none !important;
}

.obj_issue_summary .published,
.obj_issue_summary .description {
  font-family: var(--font-ui);
  font-size: 0.78rem;
  color: var(--c-slate);
}

/* ─────────────────────────────────────────
   13. Search
──────────────────────────────────────────*/
.pkp_block_search form,
.search_form form {
  display: flex;
  gap: 0;
  border: 1px solid var(--c-hair);
  border-radius: var(--radius-md);
  overflow: hidden;
  background: var(--c-white);
}

.pkp_block_search input[type="text"],
.pkp_block_search input[type="search"],
.search_form input[type="text"] {
  border: none !important;
  outline: none;
  flex: 1;
  padding: 0.6rem 0.9rem;
  font-family: var(--font-ui);
  font-size: 0.82rem;
  color: var(--c-ink);
  background: transparent;
}

.pkp_block_search button,
.search_form button {
  background: var(--c-navy);
  color: var(--c-white);
  border: none;
  padding: 0 1rem;
  font-family: var(--font-ui);
  font-size: 0.8rem;
  font-weight: 500;
  cursor: pointer;
  transition: background var(--transition);
}

.pkp_block_search button:hover,
.search_form button:hover { background: var(--c-indigo); }

/* ─────────────────────────────────────────
   14. Forms (submission, login, register)
──────────────────────────────────────────*/
.pkpFormField input[type="text"],
.pkpFormField input[type="email"],
.pkpFormField input[type="password"],
.pkpFormField textarea,
.pkpFormField select,
input[type="text"],
input[type="email"],
input[type="password"],
select,
textarea {
  border: 1px solid var(--c-hair) !important;
  border-radius: var(--radius-md) !important;
  padding: 0.55rem 0.85rem !important;
  font-family: var(--font-ui) !important;
  font-size: 0.88rem !important;
  color: var(--c-ink) !important;
  background: var(--c-white) !important;
  transition: border-color var(--transition), box-shadow var(--transition);
  width: 100%;
}

input:focus, textarea:focus, select:focus {
  border-color: var(--c-sky) !important;
  box-shadow: 0 0 0 3px rgba(74,111,165,.14) !important;
  outline: none !important;
}

label {
  font-family: var(--font-ui);
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--c-navy);
  display: block;
  margin-bottom: 0.35rem;
}

/* ─────────────────────────────────────────
   15. Buttons
──────────────────────────────────────────*/
.pkpButton,
button.pkpButton,
a.pkpButton,
input[type="submit"],
button[type="submit"],
.btn,
.button {
  font-family: var(--font-ui) !important;
  font-size: 0.82rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.04em;
  padding: 0.6rem 1.4rem !important;
  border-radius: var(--radius-md) !important;
  border: none !important;
  cursor: pointer;
  text-decoration: none !important;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  transition: background var(--transition), box-shadow var(--transition), color var(--transition);
}

/* Primary */
.pkpButton--isPrimary,
button[type="submit"],
input[type="submit"] {
  background: var(--c-navy) !important;
  color: var(--c-white) !important;
}

.pkpButton--isPrimary:hover,
button[type="submit"]:hover,
input[type="submit"]:hover {
  background: var(--c-indigo) !important;
  box-shadow: 0 3px 12px rgba(45,63,123,.3);
}

/* Secondary / outlined */
.pkpButton:not(.pkpButton--isPrimary) {
  background: var(--c-white) !important;
  color: var(--c-navy) !important;
  border: 1px solid var(--c-hair) !important;
}

.pkpButton:not(.pkpButton--isPrimary):hover {
  border-color: var(--c-sky) !important;
  color: var(--c-sky) !important;
}

/* ─────────────────────────────────────────
   16. Tables (statistics, metadata)
──────────────────────────────────────────*/
table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--font-ui);
  font-size: 0.85rem;
}

thead th {
  background: var(--c-navy);
  color: var(--c-white);
  font-weight: 500;
  padding: 0.7rem 1rem;
  text-align: left;
  letter-spacing: 0.04em;
}

thead th:first-child { border-radius: var(--radius-sm) 0 0 0; }
thead th:last-child  { border-radius: 0 var(--radius-sm) 0 0; }

tbody tr {
  border-bottom: 1px solid var(--c-hair);
  transition: background var(--transition);
}

tbody tr:hover { background: var(--c-mist); }
tbody tr:last-child { border-bottom: none; }

td {
  padding: 0.65rem 1rem;
  color: var(--c-ink);
  vertical-align: top;
}

/* ─────────────────────────────────────────
   17. Notifications / alerts
──────────────────────────────────────────*/
.pkp_notification,
.notifySuccess,
.notifyError,
.notifyWarning,
.notifyInfo,
.alert {
  font-family: var(--font-ui);
  font-size: 0.85rem;
  border-radius: var(--radius-md);
  padding: 0.8rem 1.2rem;
  border-left: 3px solid;
  margin-bottom: 1rem;
}

.notifySuccess { background: #edf7f0; border-color: #3a9f5f; color: #1c5933; }
.notifyError   { background: #fdf0f0; border-color: #c9403a; color: #6b1a17; }
.notifyWarning { background: #fff8ed; border-color: var(--c-gold); color: #6b4a10; }
.notifyInfo,
.pkp_notification { background: var(--c-mist); border-color: var(--c-sky); color: var(--c-indigo); }

/* ─────────────────────────────────────────
   18. Breadcrumbs
──────────────────────────────────────────*/
.pkp_structure_content > .breadcrumb,
ol.breadcrumb,
.breadcrumb {
  font-family: var(--font-ui);
  font-size: 0.76rem;
  color: var(--c-slate);
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  padding: 0;
  margin: 0 0 1.6rem;
}

.breadcrumb li + li::before { content: "›"; color: var(--c-hair); margin-right: 0.3rem; }
.breadcrumb a { color: var(--c-sky) !important; text-decoration: none; }
.breadcrumb a:hover { text-decoration: underline; }

/* ─────────────────────────────────────────
   19. Pagination
──────────────────────────────────────────*/
.pkp_pagination,
.pagination {
  display: flex;
  justify-content: center;
  gap: 0.3rem;
  margin-top: 2.5rem;
  font-family: var(--font-ui);
  font-size: 0.82rem;
}

.pagination a,
.pkp_pagination a,
.pagination .page-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  padding: 0 0.6rem;
  border: 1px solid var(--c-hair);
  border-radius: var(--radius-md);
  color: var(--c-navy) !important;
  text-decoration: none !important;
  background: var(--c-white);
  transition: all var(--transition);
}

.pagination a:hover,
.pkp_pagination a:hover,
.pagination .page-link:hover {
  background: var(--c-navy);
  color: var(--c-white) !important;
  border-color: var(--c-navy);
}

.pagination .active a,
.pkp_pagination .current,
.pagination .page-item.active .page-link {
  background: var(--c-navy) !important;
  color: var(--c-white) !important;
  border-color: var(--c-navy) !important;
}

/* ─────────────────────────────────────────
   20. Footer
──────────────────────────────────────────*/
.pkp_structure_footer,
footer.pkp_structure_footer {
  background: var(--c-navy) !important;
  color: rgba(255,255,255,.55) !important;
  font-family: var(--font-ui);
  font-size: 0.78rem;
  padding: 2.2rem 1.5rem;
  margin-top: 4rem;
}

.pkp_structure_footer a { color: rgba(255,255,255,.65) !important; text-decoration: none; }
.pkp_structure_footer a:hover { color: var(--c-white) !important; text-decoration: underline; }

.pkp_structure_footer .pkp_footer_logo img { max-height: 28px; opacity: 0.5; filter: brightness(10); }

/* Footer columns */
.pkp_structure_footer .footer_columns {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 2rem;
  max-width: 1120px;
  margin: 0 auto 1.5rem;
}

.pkp_structure_footer .footer_columns h4 {
  font-family: var(--font-ui);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255,255,255,.35);
  margin: 0 0 0.7rem;
}

/* ─────────────────────────────────────────
   21. Submission wizard / steps
──────────────────────────────────────────*/
.pkpSteps__step--isCurrent .pkpSteps__stepLabel,
.pkp_form_step.current .step_label {
  color: var(--c-navy) !important;
  font-weight: 600 !important;
}

.pkpSteps__step--isCompleted .pkpSteps__stepLabel {
  color: var(--c-sky) !important;
}

/* ─────────────────────────────────────────
   22. Author bio / affiliation
──────────────────────────────────────────*/
.obj_article_details .author_bios,
.article-details .author_bios {
  border-top: 1px solid var(--c-hair);
  margin-top: 2rem;
  padding-top: 1.5rem;
}

.obj_article_details .author_bios .label {
  font-family: var(--font-ui) !important;
  font-size: 0.7rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  color: var(--c-slate) !important;
}

.obj_article_details .author_bios p {
  font-size: 0.85rem;
  line-height: 1.7;
  color: var(--c-slate);
}

/* ─────────────────────────────────────────
   23. Statistics / citations
──────────────────────────────────────────*/
.stat_counter,
.article_citations {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-family: var(--font-ui);
  font-size: 0.76rem;
  color: var(--c-slate);
  padding: 0.3rem 0.7rem;
  background: var(--c-bone);
  border: 1px solid var(--c-hair);
  border-radius: 20px;
}

/* ─────────────────────────────────────────
   24. General links
──────────────────────────────────────────*/
a {
  color: var(--c-sky);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
  transition: color var(--transition);
}

a:hover { color: var(--c-indigo); }

/* ─────────────────────────────────────────
   25. Reading typography
──────────────────────────────────────────*/
.obj_article_details .article-full-text,
.article_full_text {
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.85;
  color: var(--c-ink);
  max-width: 68ch;
}

/* ─────────────────────────────────────────
   26. Responsive
──────────────────────────────────────────*/
@media (max-width: 900px) {
  .pkp_structure_content,
  #pkp_content_main {
    flex-direction: column;
    padding: 1.5rem 1rem 3rem;
  }
  .pkp_structure_sidebar { flex-basis: auto; }

  .obj_article_details,
  .article-details { padding: 1.6rem 1.4rem; }
}

@media (max-width: 600px) {
  html { font-size: 15px; }
  h1   { font-size: 1.6rem; }
  h2   { font-size: 1.25rem; }

  .pkp_navigation_primary li a {
    padding: 0.65rem 0.75rem;
    font-size: 0.72rem !important;
  }

  .obj_article_details,
  .article-details { padding: 1.2rem 1rem; }
}

/* ─────────────────────────────────────────
   27. Print
──────────────────────────────────────────*/
@media print {
  .pkp_structure_head,
  .pkp_structure_footer,
  .pkp_structure_sidebar,
  .obj_galley_link { display: none !important; }

  body { font-size: 11pt; color: #000; background: #fff; }

  h1, h2, h3 { color: #000; font-family: Georgia, serif; }

  a { color: #000; text-decoration: none; }
  a[href]::after { content: " (" attr(href) ")"; font-size: 0.75em; color: #555; }
}
