/* ========================================================================
   e-SAINTIKA / LAPiEDRA COMPATIBILITY STYLESHEET v2.4
   e-Saintika journal-level stylesheet for the installed OJS theme.
   Preserves legacy lm-* components and original lp-* sidebar controls.

   No JavaScript required for static page, directory, or photo styling.
   e-Saintika edition: legacy accordion CSS removed; original LP sidebar
   button styling remains theme-controlled. Only native dropdown headers
   receive additional styling here.

   HTML interfaces:
     OJS: .pkp_structure_content, .pkp_structure_main,
          .pkp_structure_sidebar, .page / .page_static
     Directories: .editorial-list, .editorial-item, .team-content,
          .img-profile, .academic-profile, .ico-label
     Sidebar: <nav class="lp-sb-nav"> with <details class="lp-sb-dropdown">,
              <summary>, and <ul class="lp-sb-menu">

   Adjust shared brand tokens at the top, or override per journal.
   ======================================================================== */

/* 01. DESIGN TOKENS: default Lamina / LITPAM palette --------------------- */
:root {
  --lm-page-navy: #112e5b;
  --lm-page-blue: #285f9c;
  --lm-page-jade: #117967;
  --lm-page-ember: #bd6035;
  --lm-page-violet: #7953a6;
  --lm-page-text: #344d69;
  --lm-page-heading: #142e51;
  --lm-page-border: #dce5ef;
  --lm-page-muted: #f2f6fb;
  --lm-page-bg: #ffffff;
  --lm-page-radius: 8px;
  --lm-page-space: clamp(18px, 2.3vw, 36px);
  --lm-profile-size: 88px;
}

/* 02. DESKTOP JOURNAL LAYOUT: ONE CONSISTENT SIDEBAR WIDTH -----------
   Previously two separate grid rules competed, allowing a 470px sidebar
   on editorial/policy pages and different widths elsewhere. This is the
   only grid override for internal journal pages. The home three-column
   layout and article/issue templates are explicitly excluded.

   Width is FIXED AS A COLUMN SIZE, not position: fixed/sticky. That is,
   the sidebar scrolls normally but does not grow on static pages. */
@media screen and (min-width: 1050px) {
  body:not(.pkp_page_index):not(.pkp_page_article):not(.pkp_page_issue)
  .pkp_structure_content:not(:has(.lm-home)):has(> .pkp_structure_main):has(> .pkp_structure_sidebar) {
    --es-content-gutter: clamp(20px, 2.5vw, 48px);
    --es-sidebar-width: 330px;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) var(--es-sidebar-width) !important;
    column-gap: clamp(22px, 2.2vw, 36px) !important;
    align-items: start !important;
    width: calc(100% - 2 * var(--es-content-gutter)) !important;
    max-width: 1780px !important;
    min-width: 0 !important;
    margin-inline: auto !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }

  body:not(.pkp_page_index):not(.pkp_page_article):not(.pkp_page_issue)
  .pkp_structure_content:not(:has(.lm-home)):has(> .pkp_structure_main):has(> .pkp_structure_sidebar)
  > :is(.pkp_structure_main, .pkp_structure_sidebar) {
    display: block !important;
    float: none !important;
    flex: none !important;
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box !important;
  }

  /* Prevent inner blocks from expanding the sidebar grid track. */
  body:not(.pkp_page_index):not(.pkp_page_article):not(.pkp_page_issue)
  .pkp_structure_content:not(:has(.lm-home))
  > .pkp_structure_sidebar :is(.pkp_block, .block_custom,
                              .lp-sb-nav, .lp-sb-menu) {
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }
}

/* Remove nested max-width constraints, without affecting article pages. */
:is(
  body.pkp_page_pages,
  body.pkp_page_about,
  body:has(.pkp_structure_main .page_static),
  body:has(.pkp_structure_main .editorial-list)
) .pkp_structure_main {
  min-width: 0 !important;
  box-sizing: border-box;
}
:is(
  body.pkp_page_pages,
  body.pkp_page_about,
  body:has(.pkp_structure_main .page_static),
  body:has(.pkp_structure_main .editorial-list)
) .pkp_structure_main :is(
  .page_static, .page_custom, .page, .content, .page-content,
  #editorial-groups, #groups, .editorial-list
) {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  box-sizing: border-box;
}

/* 03. UNIVERSAL STATIC-PAGE CANVAS -------------------------------------- */
:is(body.pkp_page_pages, body.pkp_page_about,
    body:has(.pkp_structure_main .page_static),
    body:has(.pkp_structure_main .editorial-list))
  .pkp_structure_main :is(.page_static, .page_custom, .page):not(:has(.obj_article_details)) {
  padding: var(--lm-page-space) !important;
  margin-top: 0 !important;
  border: 1px solid var(--lm-page-border);
  border-top: 4px solid var(--lm-page-blue);
  border-radius: var(--lm-page-radius);
  background: var(--lm-page-bg);
  box-shadow: 0 8px 28px rgb(19 46 83 / 5%);
  overflow-wrap: anywhere;
}

/* Static pages occasionally use only .content (not .page_static). Keep
   content width full without applying a second card around it. */
:is(body.pkp_page_pages, body.pkp_page_about,
    body:has(.pkp_structure_main .page_static))
  .pkp_structure_main :is(.page_static,.page_custom,.page) :is(.content,.page-content) {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
}

/* 04. POLICY / INFORMATION PAGE TYPE ------------------------------------
   Target static pages through OJS markup; do not require route tags from JS.
   Do not convert editor/reviewer cards into ordinary list bullets. */
:is(body.pkp_page_pages, body.pkp_page_about,
    body:has(.pkp_structure_main .page_static))
  .pkp_structure_main :is(.page_static,.page_custom,.page):not(:has(.editorial-list)) {
  color: var(--lm-page-text);
  font-size: 15.5px;
  line-height: 1.75;
}

:is(body.pkp_page_pages, body.pkp_page_about,
    body:has(.pkp_structure_main .page_static))
  .pkp_structure_main :is(.page_static,.page_custom,.page):not(:has(.editorial-list))
  :is(h1,h2,h3,h4) {
  max-width: none;
  color: var(--lm-page-heading);
  overflow-wrap: break-word;
}

:is(body.pkp_page_pages, body.pkp_page_about,
    body:has(.pkp_structure_main .page_static))
  .pkp_structure_main :is(.page_static,.page_custom,.page):not(:has(.editorial-list)) h1 {
  font-size: clamp(28px, 2.9vw, 42px);
  line-height: 1.18;
  font-weight: 800;
  margin: 0 0 24px;
  padding-bottom: 17px;
  border-bottom: 2px solid var(--lm-page-border);
}
:is(body.pkp_page_pages, body.pkp_page_about,
    body:has(.pkp_structure_main .page_static))
  .pkp_structure_main :is(.page_static,.page_custom,.page):not(:has(.editorial-list)) h2 {
  font-size: clamp(21px, 1.6vw, 26px);
  line-height: 1.35;
  margin: 27px 0 15px;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--lm-page-border);
  font-weight: 800;
}
:is(body.pkp_page_pages, body.pkp_page_about,
    body:has(.pkp_structure_main .page_static))
  .pkp_structure_main :is(.page_static,.page_custom,.page):not(:has(.editorial-list)) h3 {
  font-size: clamp(17px, 1.3vw, 20px);
  line-height: 1.45;
  margin: 27px 0 15px;
  padding: 12px 17px;
  border-left: 5px solid var(--lm-page-blue);
  border-radius: 0 5px 5px 0;
  background: var(--lm-page-muted);
  font-weight: 800;
}
:is(body.pkp_page_pages, body.pkp_page_about,
    body:has(.pkp_structure_main .page_static))
  .pkp_structure_main :is(.page_static,.page_custom,.page):not(:has(.editorial-list)) h4 {
  font-size: 16px;
  color: var(--lm-page-jade);
  line-height: 1.4;
  margin: 20px 0 9px;
  font-weight: 800;
}

:is(body.pkp_page_pages, body.pkp_page_about,
    body:has(.pkp_structure_main .page_static))
  .pkp_structure_main :is(.page_static,.page_custom,.page):not(:has(.editorial-list)) p {
  max-width: none !important;
  width: auto !important;
  margin: 0 0 17px;
  line-height: 1.77;
  color: var(--lm-page-text);
  text-align: left;
}
:is(body.pkp_page_pages, body.pkp_page_about,
    body:has(.pkp_structure_main .page_static))
  .pkp_structure_main :is(.page_static,.page_custom,.page):not(:has(.editorial-list))
  :is(ul,ol):not(.editorial-list ul) {
  max-width: none !important;
  width: 100%;
  margin: 12px 0 23px;
  padding-left: 25px;
  box-sizing: border-box;
  list-style-position: outside;
}
:is(body.pkp_page_pages, body.pkp_page_about,
    body:has(.pkp_structure_main .page_static))
  .pkp_structure_main :is(.page_static,.page_custom,.page):not(:has(.editorial-list))
  :is(ul,ol):not(.editorial-list ul) > li {
  margin: 0 0 9px;
  padding: 2px 0;
  line-height: 1.65;
}
:is(body.pkp_page_pages, body.pkp_page_about,
    body:has(.pkp_structure_main .page_static))
  .pkp_structure_main :is(.page_static,.page_custom,.page):not(:has(.editorial-list)) a {
  color: var(--lm-page-blue);
  text-underline-offset: 3px;
  overflow-wrap: anywhere;
}

/* Structured data and long policy tables. */
:is(body.pkp_page_pages, body.pkp_page_about,
    body:has(.pkp_structure_main .page_static))
  .pkp_structure_main :is(.page_static,.page_custom,.page):not(:has(.editorial-list)) table {
  width: 100%;
  max-width: 100%;
  border-collapse: collapse;
  margin: 16px 0 24px;
  background: #fff;
}
:is(body.pkp_page_pages, body.pkp_page_about,
    body:has(.pkp_structure_main .page_static))
  .pkp_structure_main :is(.page_static,.page_custom,.page):not(:has(.editorial-list))
  :is(th,td) {
  padding: 11px 13px;
  border: 1px solid var(--lm-page-border);
  vertical-align: top;
  line-height: 1.55;
}
:is(body.pkp_page_pages, body.pkp_page_about,
    body:has(.pkp_structure_main .page_static))
  .pkp_structure_main :is(.page_static,.page_custom,.page):not(:has(.editorial-list)) th {
  background: #edf4fb;
  color: var(--lm-page-heading);
  font-weight: 800;
}
:is(body.pkp_page_pages, body.pkp_page_about,
    body:has(.pkp_structure_main .page_static))
  .pkp_structure_main :is(.page_static,.page_custom,.page):not(:has(.editorial-list)) img {
  max-width: 100%;
  height: auto;
}
:is(body.pkp_page_pages, body.pkp_page_about,
    body:has(.pkp_structure_main .page_static))
  .pkp_structure_main :is(.page_static,.page_custom,.page):not(:has(.editorial-list)) table {
  display: block;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
:is(body.pkp_page_pages, body.pkp_page_about,
    body:has(.pkp_structure_main .page_static))
  .pkp_structure_main :is(.page_static,.page_custom,.page):not(:has(.editorial-list)) :is([id]) {
  scroll-margin-top: 25px;
}

/* 04b. REUSABLE AIMS/SCOPE CATEGORY CARDS -------------------------------
   Optional enhancement for an existing page wrapper class containing
   "focus-scope" (including legacy journal HTML with prefixes).
   This does not affect the ordinary lists of unrelated policy pages. */
.pkp_structure_main [class*="focus-scope"] > ul:first-of-type {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 13px;
  margin: 14px 0 27px;
  padding: 0 !important;
  list-style: none !important;
}
.pkp_structure_main [class*="focus-scope"] > ul:first-of-type > li {
  min-width: 0;
  margin: 0 !important;
  padding: 15px 17px !important;
  list-style: none !important;
  background: #f8fbff;
  border: 1px solid var(--lm-page-border);
  border-left: 4px solid var(--lm-page-blue);
  border-radius: 0 6px 6px 0;
  line-height: 1.6;
}
.pkp_structure_main [class*="focus-scope"] > ul:first-of-type > li:nth-child(4n+2) { border-left-color: var(--lm-page-jade); background: #f7fcfa; }
.pkp_structure_main [class*="focus-scope"] > ul:first-of-type > li:nth-child(4n+3) { border-left-color: var(--lm-page-ember); background: #fffaf7; }
.pkp_structure_main [class*="focus-scope"] > ul:first-of-type > li:nth-child(4n+4) { border-left-color: var(--lm-page-violet); background: #faf9fd; }
@media (max-width: 1199px) {
  .pkp_structure_main [class*="focus-scope"] > ul:first-of-type { grid-template-columns: minmax(0, 1fr); }
}

/* 05. REVIEWER AND EDITORIAL DIRECTORIES -------------------------------
   Works with the HTML supplied by LITPAM: .editorial-list ul > li...
   Does not depend on any body class or main.js script. */
.pkp_structure_main :is(#editorial-groups,#groups,.editorial-list) {
  width: 100% !important;
  max-width: none !important;
  min-width: 0;
  box-sizing: border-box;
}
.pkp_structure_main #editorial-groups > .group { margin: 0 0 28px; }
.pkp_structure_main #editorial-groups > .group > h2,
.pkp_structure_main #groups > .group > h2,
.pkp_structure_main .ped {
  padding: 13px 18px;
  margin: 23px 0 15px;
  background: var(--lm-page-muted);
  border-left: 5px solid var(--lm-page-blue);
  border-radius: 0 5px 5px 0;
  color: var(--lm-page-heading);
  font-weight: 800;
  font-size: clamp(18px, 1.45vw, 23px);
  line-height: 1.38;
}
.pkp_structure_main #editorial-groups > .group:first-child > h2,
.pkp_structure_main #groups > .group:first-child > h2 { margin-top: 0; }

.pkp_structure_main .editorial-list,
.pkp_structure_main .editorial-list > ul { margin: 0 !important; padding: 0 !important; width: 100% !important; max-width: none !important; list-style: none !important; }
.pkp_structure_main .editorial-list > ul {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr);
  gap: 14px;
}
.pkp_structure_main .editorial-list > ul > li,
.pkp_structure_main .editorial-list .editorial-item {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 17px !important;
  min-width: 0 !important;
  min-height: 114px;
  width: 100% !important;
  margin: 0 !important;
  padding: 15px 17px !important;
  border: 1px solid var(--lm-page-border) !important;
  border-left: 4px solid var(--lm-page-blue) !important;
  border-radius: 7px !important;
  background: #fff !important;
  box-shadow: 0 4px 16px rgb(18 46 80 / 4%);
  list-style: none !important;
  box-sizing: border-box !important;
  overflow: hidden;
}
.pkp_structure_main .editorial-list > ul > li:nth-child(4n + 2) { border-left-color: var(--lm-page-jade) !important; }
.pkp_structure_main .editorial-list > ul > li:nth-child(4n + 3) { border-left-color: var(--lm-page-ember) !important; }
.pkp_structure_main .editorial-list > ul > li:nth-child(4n + 4) { border-left-color: var(--lm-page-violet) !important; }

.pkp_structure_main .editorial-list .team-content {
  order: 2;
  flex: 1 1 auto !important;
  width: auto !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  text-align: left;
}
.pkp_structure_main .editorial-list .editor-name {
  margin: 0 0 6px !important;
  padding: 0 !important;
  font-size: clamp(15px, 1.12vw, 18px);
  line-height: 1.4;
  font-weight: 800;
  color: var(--lm-page-heading);
}
.pkp_structure_main .editorial-list .designation {
  margin: 0 0 7px !important;
  padding: 0 !important;
  font-size: 13.5px;
  line-height: 1.45;
  color: #516b89;
}
.pkp_structure_main .editorial-list .team-aff,
.pkp_structure_main .editorial-list .team-aff p {
  margin: 0 !important;
  padding: 0 !important;
  width: 100%;
  font-size: 12.5px;
  line-height: 1.5;
}
.pkp_structure_main .editorial-list .team-aff :is(p.academic-profile,p:has(.ico-label)) {
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap;
  justify-content: flex-start !important;
  gap: 6px;
  margin: 0 !important;
  padding: 0 !important;
}
.pkp_structure_main .editorial-list .academic-profile strong {
  flex: 0 0 auto;
  margin-right: 4px;
  color: var(--lm-page-heading);
  font-weight: 700;
}
.pkp_structure_main .editorial-list .academic-profile a,
.pkp_structure_main .editorial-list .team-aff p:has(.ico-label) > a {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 18px !important;
  width: 18px !important;
  height: 18px !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1 !important;
  text-decoration: none;
}
.pkp_structure_main .editorial-list .ico-label,
.pkp_structure_main .editorial-list .academic-profile a > img {
  display: block !important;
  width: 18px !important;
  height: 18px !important;
  min-width: 18px !important;
  min-height: 18px !important;
  max-width: 18px !important;
  max-height: 18px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  object-fit: contain !important;
}
.pkp_structure_main .editorial-list .img-profile {
  order: 1;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  flex: 0 0 var(--lm-profile-size) !important;
  width: var(--lm-profile-size) !important;
  height: var(--lm-profile-size) !important;
  min-width: var(--lm-profile-size) !important;
  min-height: var(--lm-profile-size) !important;
  max-width: var(--lm-profile-size) !important;
  max-height: var(--lm-profile-size) !important;
  aspect-ratio: 1 / 1 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  border-radius: 50% !important;
  border: 2px solid #e3eaf2 !important;
  background: #f4f7fb;
  box-sizing: border-box !important;
}
.pkp_structure_main .editorial-list .img-profile > img {
  display: block !important;
  flex: 0 0 100% !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 100% !important;
  min-height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  object-fit: cover !important;
  object-position: center !important;
  border-radius: 0 !important;
}

/* Two profile cards per row only if there is adequate MAIN-COLUMN width.
   Container query rather than viewport query avoids sidebar collisions. */
.pkp_structure_main .editorial-list { container-type: inline-size; }
@container (min-width: 930px) {
  .pkp_structure_main .editorial-list > ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* 06. e-SAINTIKA SIDEBAR: ORIGINAL LP MENU + NATIVE DROPDOWN ----------
   Only the group headers are styled below. The existing Lamina/theme
   .lp-sb-menu, .is-moss, .is-sage, .is-amber and .is-clay button styling
   remains untouched. No legacy accordion selectors are needed. */
.lp-sb-nav .lp-sb-dropdown {
  margin: 0 0 9px;
  padding: 0;
}

.lp-sb-nav .lp-sb-dropdown > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-height: 44px;
  margin: 0;
  padding: 11px 13px;
  list-style: none;
  cursor: pointer;
  color: #244b39;
  background: #f3f6f2;
  border: 1px solid #dde6dc;
  border-radius: 5px;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.4;
  transition: background-color .2s ease;
}

.lp-sb-nav .lp-sb-dropdown > summary::-webkit-details-marker { display: none; }
.lp-sb-nav .lp-sb-dropdown > summary::marker { content: ''; }

.lp-sb-nav .lp-sb-dropdown > summary::after {
  content: '';
  flex: 0 0 7px;
  width: 7px;
  height: 7px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  transition: transform .2s ease;
}

.lp-sb-nav .lp-sb-dropdown[open] > summary::after { transform: rotate(225deg); }
.lp-sb-nav .lp-sb-dropdown > summary:hover { background: #e9f0e8; }
.lp-sb-nav .lp-sb-dropdown > summary:focus-visible {
  outline: 2px solid #517b5d;
  outline-offset: 2px;
}

/* Ensure collapsed lists stay hidden even if theme CSS styles ul display. */
.lp-sb-nav .lp-sb-dropdown:not([open]) > .lp-sb-menu { display: none !important; }
.lp-sb-nav .lp-sb-dropdown[open] > .lp-sb-menu { margin-top: 6px; }

@media (prefers-reduced-motion: reduce) {
  .lp-sb-nav .lp-sb-dropdown > summary,
  .lp-sb-nav .lp-sb-dropdown > summary::after { transition: none; }
}

/* 06b. LEGACY FLAT "ADDITIONAL MENU" COMPATIBILITY ---------------------
   This is a non-dropdown menu component; preserved unchanged because
   its use elsewhere has not been ruled out. */
[id$="-additional-menu"]:has(> ul > li > a) {
  width: 100%;
  max-width: 100%;
  margin: 0 0 22px;
  border: 1px solid var(--lm-page-border);
  border-bottom: 3px solid var(--lm-page-navy);
  background: #f2f5f9;
  box-sizing: border-box;
  overflow: hidden;
}
[id$="-additional-menu"] > .lm-panel-title {
  display: flex;
  gap: 10px;
  align-items: center;
  padding: 15px 19px;
  margin: 0;
  background: var(--lm-page-navy);
  color: #fff;
  font-size: 15px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .5px;
}
[id$="-additional-menu"] > ul {
  display: block;
  list-style: none;
  padding: 12px;
  margin: 0;
  width: 100%;
}
[id$="-additional-menu"] > ul > li {
  display: block;
  list-style: none;
  padding: 0;
  margin: 0 0 8px;
}
[id$="-additional-menu"] > ul > li:last-child { margin-bottom: 0; }
[id$="-additional-menu"] > ul > li > a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 13px 16px;
  min-height: 48px;
  width: 100%;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.4;
  text-transform: uppercase;
  text-decoration: none;
  border: 0;
  border-radius: 0;
}
[id$="-additional-menu"] > ul > li.is-jade > a { background: #e2f2e9; color: #006440; }
[id$="-additional-menu"] > ul > li.is-ember > a { background: #faeadd; color: #9b3509; }
[id$="-additional-menu"] > ul > li.is-violet > a { background: #ece8fa; color: #5326a9; }
[id$="-additional-menu"] > ul > li.is-cobalt > a { background: #e6edfb; color: #06429d; }
[id$="-additional-menu"] > ul > li > a:hover { filter: brightness(.965); }
[id$="-additional-menu"] > ul > li > a:focus-visible { outline: 2px solid var(--lm-page-navy); outline-offset: 2px; }

/* 07. RESPONSIVE: no unwanted horizontal overflow ---------------------- */
@media (max-width: 1049px) {
  :is(body.pkp_page_pages,body.pkp_page_about,
      body:has(.pkp_structure_main .page_static),
      body:has(.pkp_structure_main .editorial-list))
    .pkp_structure_content { max-width: 100%; box-sizing: border-box; }
}
@media (max-width: 767px) {
  :root { --lm-profile-size: 72px; --lm-page-space: 16px; }
  .pkp_structure_main .editorial-list > ul > li,
  .pkp_structure_main .editorial-list .editorial-item { gap: 13px !important; padding: 13px !important; }
  :is(body.pkp_page_pages, body.pkp_page_about,
      body:has(.pkp_structure_main .page_static))
    .pkp_structure_main :is(.page_static,.page_custom,.page):not(:has(.editorial-list)) h1 { font-size: 29px; }
}
@media (max-width: 480px) {
  :root { --lm-profile-size: 72px; }
  .pkp_structure_main .editorial-list > ul > li,
  .pkp_structure_main .editorial-list .editorial-item {
    flex-direction: column !important;
    text-align: center !important;
    padding: 17px 12px !important;
  }
  .pkp_structure_main .editorial-list .team-content { text-align: center; width: 100% !important; }
  .pkp_structure_main .editorial-list .team-aff :is(p.academic-profile,p:has(.ico-label)) { justify-content: center !important; }
  .pkp_structure_main .editorial-list .designation { font-size: 13px; }
}

/* ========================================================================
   08. REUSABLE POLICY HUB + STANDALONE PAGE COMPONENTS | v1.1
   CSS-only, journal-neutral. Does NOT change main.js or OJS controls.
   Add class="lm-policy-page" to the custom-page HTML wrapper.
   Semantic anchors (href="#id") are needed for working navigation.

   Optional journal palette overrides on .lm-policy-page or in journal CSS:
     --lm-policy-deep, --lm-policy-mid, --lm-policy-accent,
     --lm-policy-soft, --lm-policy-stroke.
   CSS alone cannot generate destinations or infer section names.
   ======================================================================== */

.pkp_structure_main .lm-policy-page {
  --lm-policy-deep: #074c50;
  --lm-policy-mid: #08726e;
  --lm-policy-accent: #006a70;
  --lm-policy-soft: #f2f8f7;
  --lm-policy-stroke: #d4e6e5;
  --lm-policy-ink: #073f47;
  --lm-policy-muted: #48697b;
  --lm-policy-radius: 16px;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  color: var(--lm-policy-ink);
  line-height: 1.7;
  box-sizing: border-box;
}
.pkp_structure_main .lm-policy-page,
.pkp_structure_main .lm-policy-page * { box-sizing: border-box; }

/* Flatten only the static OJS page wrapper containing the new template.
   Other informational pages continue to use the established white canvas. */
.pkp_structure_main :is(.page_static,.page_custom,.page):has(.lm-policy-page) {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}
/* Never flatten or restyle an article because it happens to contain a
   sample of the same class in an article body. */
.pkp_structure_main .obj_article_details .lm-policy-page { all: revert; }

/* Optional editorial page title auto-added by OJS, outside our wrapper. */
.pkp_structure_main:has(.lm-policy-page) > h1,
.pkp_structure_main .page:has(.lm-policy-page) > h1 {
  max-width: none !important;
  margin: 0 0 22px !important;
  font-size: clamp(26px, 2.4vw, 38px) !important;
  line-height: 1.22 !important;
  font-weight: 800 !important;
  color: var(--lm-page-heading, #142e51);
}

/* Hero banner (text/links are real HTML rather than CSS-generated). */
.pkp_structure_main .lm-policy-page .lm-policy-hero {
  padding: clamp(24px, 3.3vw, 44px) !important;
  margin: 0 0 22px !important;
  background: linear-gradient(115deg, var(--lm-policy-deep), var(--lm-policy-mid) 65%, #267f74) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: var(--lm-policy-radius) !important;
  box-shadow: none !important;
  overflow: hidden;
}
.pkp_structure_main .lm-policy-page .lm-policy-eyebrow {
  margin: 0 0 9px !important;
  padding: 0 !important;
  color: var(--lm-policy-accent) !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  letter-spacing: .14em;
  line-height: 1.55 !important;
  text-transform: uppercase;
}
.pkp_structure_main .lm-policy-page .lm-policy-hero .lm-policy-eyebrow {
  color: #adf9ee !important;
  margin-bottom: 14px !important;
}
.pkp_structure_main .lm-policy-page .lm-policy-hero :is(h2,h3).lm-policy-hero-title {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 0 13px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #fff !important;
  font-size: clamp(28px, 2.9vw, 42px) !important;
  line-height: 1.17 !important;
  font-weight: 850 !important;
  letter-spacing: -.025em;
}
.pkp_structure_main .lm-policy-page .lm-policy-hero .lm-policy-intro {
  max-width: 850px !important;
  margin: 0 0 20px !important;
  color: #f5fffe !important;
  font-size: clamp(14px, 1.15vw, 16px) !important;
  line-height: 1.8 !important;
}
.pkp_structure_main .lm-policy-page .lm-policy-badges {
  display: flex !important;
  flex-wrap: wrap;
  gap: 9px;
  margin: 0 !important;
  padding: 0 !important;
}
.pkp_structure_main .lm-policy-page .lm-policy-badges > span {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  margin: 0 !important;
  padding: 6px 13px !important;
  color: #fff !important;
  background: rgba(255,255,255,.09);
  border: 1px solid rgba(255,255,255,.43);
  border-radius: 999px;
  font-size: 12.5px;
  font-weight: 750;
  line-height: 1.4;
}

/* Inline navigation panel; keeps native anchor behavior without JS. */
.pkp_structure_main .lm-policy-page .lm-policy-nav {
  container-type: inline-size;
  width: 100% !important;
  margin: 0 0 29px !important;
  padding: clamp(20px, 2.1vw, 29px) !important;
  background: var(--lm-policy-soft) !important;
  border: 1px solid var(--lm-policy-stroke) !important;
  border-radius: var(--lm-policy-radius) !important;
  box-shadow: none !important;
}
.pkp_structure_main .lm-policy-page .lm-policy-nav > h2 {
  margin: 0 0 10px !important;
  padding: 0 !important;
  border: 0 !important;
  background: none !important;
  color: var(--lm-policy-ink) !important;
  font-size: clamp(20px, 1.8vw, 25px) !important;
  line-height: 1.3 !important;
  font-weight: 800 !important;
}
.pkp_structure_main .lm-policy-page .lm-policy-nav > p:not(.lm-policy-eyebrow) {
  max-width: none !important;
  margin: 0 0 16px !important;
  color: var(--lm-policy-muted) !important;
  font-size: 14px !important;
  line-height: 1.65 !important;
}
.pkp_structure_main .lm-policy-page .lm-policy-nav :is(ul,ol).lm-policy-nav-list {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
.pkp_structure_main .lm-policy-page .lm-policy-nav .lm-policy-nav-list > li {
  display: block !important;
  min-width: 0;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  border: 0 !important;
  background: none !important;
}
.pkp_structure_main .lm-policy-page .lm-policy-nav .lm-policy-nav-list > li > a {
  position: relative;
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100% !important;
  min-height: 50px;
  margin: 0 !important;
  padding: 12px 16px !important;
  color: var(--lm-policy-ink) !important;
  background: #fff !important;
  border: 1px solid var(--lm-policy-stroke) !important;
  border-radius: 10px !important;
  box-shadow: 0 1px 1px rgba(0,60,65,.02);
  font-size: 13.5px !important;
  line-height: 1.45 !important;
  font-weight: 750 !important;
  text-decoration: none !important;
  overflow-wrap: anywhere;
  transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}
.pkp_structure_main .lm-policy-page .lm-policy-nav .lm-policy-nav-list > li > a::after {
  content: '\2197';
  flex: 0 0 auto;
  color: var(--lm-policy-accent);
  font-size: 17px;
  font-weight: 800;
  line-height: 1;
}
.pkp_structure_main .lm-policy-page .lm-policy-nav .lm-policy-nav-list > li > a:is(:hover,:focus-visible) {
  border-color: var(--lm-policy-accent) !important;
  box-shadow: 0 5px 16px rgba(0,70,75,.075);
  transform: translateY(-1px);
}
@container (max-width: 760px) {
  .pkp_structure_main .lm-policy-page .lm-policy-nav :is(ul,ol).lm-policy-nav-list { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@container (max-width: 490px) {
  .pkp_structure_main .lm-policy-page .lm-policy-nav :is(ul,ol).lm-policy-nav-list { grid-template-columns: 1fr !important; }
}

/* Group heading with number, independent of journal identity. */
.pkp_structure_main .lm-policy-page .lm-policy-section {
  width: 100%;
  min-width: 0;
  margin: 0 0 31px !important;
  padding: 0 !important;
}
.pkp_structure_main .lm-policy-page .lm-policy-section-heading {
  display: flex !important;
  align-items: flex-start;
  gap: 15px;
  margin: 0 0 18px !important;
}
.pkp_structure_main .lm-policy-page .lm-policy-section-number {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 43px;
  min-height: 43px;
  padding: 6px 9px;
  border-radius: 12px;
  background: var(--lm-policy-accent);
  color: #fff;
  font-weight: 800;
  font-size: 16px;
  line-height: 1.1;
}
.pkp_structure_main .lm-policy-page .lm-policy-section-heading h2 {
  margin: 0 0 4px !important;
  padding: 0 !important;
  background: none !important;
  border: 0 !important;
  color: var(--lm-policy-ink) !important;
  font-size: clamp(20px, 1.8vw, 27px) !important;
  font-weight: 850 !important;
  line-height: 1.32 !important;
}
.pkp_structure_main .lm-policy-page .lm-policy-section-heading p {
  margin: 0 !important;
  padding: 0 !important;
  color: var(--lm-policy-muted) !important;
  font-size: 14px !important;
  line-height: 1.65 !important;
}
.pkp_structure_main .lm-policy-page .lm-policy-cards {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr);
  gap: 18px;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}
.pkp_structure_main .lm-policy-page .lm-policy-cards.lm-policy-cards-compact { container-type: inline-size; }

/* Content cards are inset panels, not regular lists. */
.pkp_structure_main .lm-policy-page .lm-policy-card {
  min-width: 0;
  width: 100%;
  margin: 0 !important;
  padding: clamp(20px, 2.15vw, 31px) !important;
  background: #fff !important;
  border: 1px solid var(--lm-policy-stroke) !important;
  border-radius: var(--lm-policy-radius) !important;
  box-shadow: 0 4px 18px rgba(0,59,64,.025);
  overflow-wrap: anywhere;
  scroll-margin-top: 100px;
}
.pkp_structure_main .lm-policy-page .lm-policy-card:target,
.pkp_structure_main .lm-policy-page .lm-policy-section:target {
  border-color: var(--lm-policy-accent) !important;
  box-shadow: 0 0 0 3px rgba(0,117,121,.11);
}
.pkp_structure_main .lm-policy-page .lm-policy-card .lm-policy-card-label {
  margin: 0 0 8px !important;
  padding: 0 !important;
  color: var(--lm-policy-accent) !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  letter-spacing: .115em;
  line-height: 1.55 !important;
  text-transform: uppercase;
}
.pkp_structure_main .lm-policy-page .lm-policy-card > :is(h2,h3,h4) {
  display: block !important;
  margin: 0 0 12px !important;
  padding: 0 !important;
  background: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  color: var(--lm-policy-ink) !important;
  font-size: clamp(20px, 1.75vw, 25px) !important;
  line-height: 1.36 !important;
  font-weight: 850 !important;
}
.pkp_structure_main .lm-policy-page .lm-policy-card > :is(p,div) {
  max-width: none !important;
}
.pkp_structure_main .lm-policy-page .lm-policy-card p:not(.lm-policy-card-label) {
  margin: 0 0 14px !important;
  color: #244b60 !important;
  font-size: clamp(14.5px, 1.08vw, 16px) !important;
  line-height: 1.78 !important;
}
.pkp_structure_main .lm-policy-page .lm-policy-card :is(ul,ol):not(.lm-policy-tags) {
  margin: 12px 0 18px !important;
  padding: 0 0 0 23px !important;
  width: 100% !important;
  list-style-position: outside !important;
}
.pkp_structure_main .lm-policy-page .lm-policy-card :is(ul,ol):not(.lm-policy-tags) > li {
  margin: 0 0 8px !important;
  padding: 0 0 0 2px !important;
  line-height: 1.65;
}
.pkp_structure_main .lm-policy-page .lm-policy-tags {
  display: flex !important;
  flex-wrap: wrap;
  gap: 9px;
  width: 100% !important;
  padding: 0 !important;
  margin: 12px 0 !important;
  list-style: none !important;
}
.pkp_structure_main .lm-policy-page .lm-policy-tags > li {
  display: inline-flex !important;
  margin: 0 !important;
  padding: 6px 11px !important;
  color: var(--lm-policy-ink);
  background: #e9f7f4;
  border: 1px solid #cfe9e4;
  border-radius: 7px;
  font-size: 12.5px;
  font-weight: 750;
  list-style: none !important;
}
.pkp_structure_main .lm-policy-page .lm-policy-card-footer {
  display: flex;
  justify-content: flex-end;
  margin: 20px 0 0 !important;
  padding: 14px 0 0 !important;
  border-top: 1px solid #e8efef;
}
.pkp_structure_main .lm-policy-page .lm-policy-card-footer > a {
  color: var(--lm-policy-accent) !important;
  font-size: 12.5px !important;
  font-weight: 800 !important;
  line-height: 1.45;
  text-decoration: none !important;
}
.pkp_structure_main .lm-policy-page .lm-policy-card-footer > a:is(:hover,:focus-visible) { text-decoration: underline !important; }

/* Floating Back to Top link. HTML href="#" returns to the document
   top without JavaScript; section backlinks still use #lm-policy-nav. */
.pkp_structure_main .lm-policy-page #lm-policy-top,
.pkp_structure_main .lm-policy-page #lm-policy-nav,
.pkp_structure_main .lm-policy-page [id^="lm-policy-"] { scroll-margin-top: 95px; }
.pkp_structure_main .lm-policy-page .lm-policy-back-top {
  position: fixed;
  right: clamp(15px, 2vw, 32px);
  bottom: 96px;
  z-index: 40;
  display: inline-flex !important;
  justify-content: center;
  align-items: center;
  gap: 7px;
  min-width: 49px;
  min-height: 49px;
  padding: 11px 14px !important;
  margin: 0 !important;
  border-radius: 999px !important;
  background: var(--lm-policy-accent) !important;
  color: #fff !important;
  text-decoration: none !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  box-shadow: 0 6px 19px rgba(0,70,75,.2);
  transition: transform .18s ease, box-shadow .18s ease;
}
.pkp_structure_main .lm-policy-page .lm-policy-back-top:is(:hover,:focus-visible) {
  transform: translateY(-3px);
  box-shadow: 0 8px 23px rgba(0,70,75,.28);
}
.pkp_structure_main .lm-policy-page :is(a,button):focus-visible {
  outline: 3px solid #f0ae3e !important;
  outline-offset: 3px !important;
}
/* Fallback: fixed Top link is always available. In browsers supporting
   CSS scroll-driven animation it fades in only after the first 180px.
   This progressive enhancement needs no JavaScript. */
html:has(.pkp_structure_main .lm-policy-page) { scroll-behavior: smooth; }
@keyframes lm-policy-top-reveal {
  from { opacity: 0; visibility: hidden; }
  to { opacity: 1; visibility: visible; }
}
@supports (animation-timeline: scroll()) {
  .pkp_structure_main .lm-policy-page .lm-policy-back-top {
    animation-name: lm-policy-top-reveal;
    animation-duration: 1s;
    animation-timing-function: linear;
    animation-fill-mode: both;
    animation-timeline: scroll(root block);
    animation-range: 0px 180px;
  }
}
@media (max-width: 767px) {
  .pkp_structure_main .lm-policy-page .lm-policy-hero { border-radius: 12px !important; }
  .pkp_structure_main .lm-policy-page .lm-policy-nav { border-radius: 12px !important; }
  .pkp_structure_main .lm-policy-page .lm-policy-card { border-radius: 12px !important; }
  .pkp_structure_main .lm-policy-page .lm-policy-section-heading { gap: 10px; }
  .pkp_structure_main .lm-policy-page .lm-policy-section-number { min-width: 37px; min-height: 37px; font-size: 14px; border-radius: 10px; }
  .pkp_structure_main .lm-policy-page .lm-policy-back-top { right: 14px; bottom: 80px; padding: 11px 12px !important; }
}
@media print {
  .pkp_structure_main .lm-policy-page .lm-policy-back-top,
  .pkp_structure_main .lm-policy-page .lm-policy-nav { display: none !important; }
  .pkp_structure_main .lm-policy-page .lm-policy-hero { background: none !important; color: #111 !important; border: 1px solid #bbb !important; }
  .pkp_structure_main .lm-policy-page .lm-policy-hero :is(h2,h3).lm-policy-hero-title,
  .pkp_structure_main .lm-policy-page .lm-policy-hero p { color: #111 !important; }
  .pkp_structure_main .lm-policy-page .lm-policy-card { break-inside: avoid; }
}
@media (prefers-reduced-motion: reduce) {
  html:has(.pkp_structure_main .lm-policy-page) { scroll-behavior: auto; }
  .pkp_structure_main .lm-policy-page :is(.lm-policy-back-top, .lm-policy-nav-list > li > a) { transition: none !important; animation: none !important; }
}
/* ======================================================================
   e-SAINTIKA POLICY & DIRECTORY CONTENT WIDTH HELPERS
   CSS only. Retained for the original lm-policy-page and directories.

   Why: v1.1 layout depended on body route classes and an OJS .page_static
   wrapper; some live custom pages do not have either. This version relies
   on the policy markup .lm-policy-page and editorial markup itself.
   Does not affect articles, archive pages, or the homepage.
   ====================================================================== */

/* Desktop two-column positioning is now handled exclusively in section 02.
   The following rules retain existing full-width policy/editorial content. */

/* 2. Release every common nested width cap in the main OJS column.
      This is the critical fix for the 770px-wide hero in the screenshot. */
body .pkp_structure_main:has(.lm-policy-page),
body .pkp_structure_main:has(.lm-policy-page) :is(
  .page, .page_static, .page_custom, .content, .page-content,
  .lm-policy-page, .lm-policy-hero, .lm-policy-nav,
  .lm-policy-section, .lm-policy-cards, .lm-policy-card
),
body .pkp_structure_main:has(.lm-policy-page) > :is(div, section):has(.lm-policy-page),
body .pkp_structure_main:has(.lm-policy-page) > :is(div, section):has(.lm-policy-page)
  > :is(div, section):has(.lm-policy-page) {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

/* Wider directories follow the same principle, independent of journal. */
body .pkp_structure_main:has(.editorial-list),
body .pkp_structure_main:has(.editorial-list) :is(
  .page, .page_static, .page_custom, .content, .page-content,
  #editorial-groups, #groups, .editorial-list, .editorial-list > ul
) {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

/* 3. Cover OJS templates where the policy sits in an anonymous wrapper. */
.pkp_structure_main :is(div, section):has(> .lm-policy-page) {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  box-sizing: border-box !important;
}

/* 4. Ensure badge spacing survives common OJS HTML-editor changes.
      A <ul><li> badge list is recommended because OJS may strip plain <span>. */
.pkp_structure_main .lm-policy-page :is(div, ul).lm-policy-badges {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
.pkp_structure_main .lm-policy-page .lm-policy-badges > :is(span, li) {
  display: inline-flex !important;
  flex: 0 0 auto !important;
  align-items: center !important;
  width: auto !important;
  min-height: 33px !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 6px 12px !important;
  border: 1px solid rgba(255,255,255,.45) !important;
  border-radius: 999px !important;
  color: #fff !important;
  background: rgba(255,255,255,.09) !important;
  font-size: 12.5px !important;
  font-weight: 750 !important;
  line-height: 1.4 !important;
  list-style: none !important;
  white-space: normal;
}

/* 5. Tablet/phone: do not force a two-column grid or horizontal scroll. */
@media screen and (max-width: 1049px) {
  body .pkp_structure_main:has(.lm-policy-page),
  body .pkp_structure_main:has(.lm-policy-page) .lm-policy-page,
  body .pkp_structure_main:has(.editorial-list) {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
  }
}

/* ======================================================================
   09. LITPAM HOMEPAGE ADDITIONAL CONTENT | v1.3
   Neutral and reusable across LITPAM Lamina journals.
   Opt-in only: add .lm-home-info to Website > Advanced > Additional Content.
   No changes to issue/article layout, theme JS, directories, or policies.
   ====================================================================== */
.lm-home-info {
  --lm-home-deep: #075359;
  --lm-home-accent: #08716f;
  --lm-home-ink: #153b4c;
  --lm-home-muted: #50687a;
  --lm-home-border: #d9e7e8;
  --lm-home-tint: #f1f8f7;
  --lm-home-radius: 14px;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin: 16px 0 28px;
  color: var(--lm-home-ink);
  font-size: 15px;
  line-height: 1.72;
  overflow-wrap: anywhere;
  container-type: inline-size;
}
.lm-home-info, .lm-home-info * { box-sizing: border-box; }
.lm-home-info :is(#lm-home-about, #publication-schedule, #journal-information) { scroll-margin-top: 90px; }
.lm-home-info a { color: var(--lm-home-accent); text-decoration: none; }
.lm-home-info a:hover { text-decoration: underline; }
.lm-home-info a:focus-visible { outline: 3px solid #e4b25e; outline-offset: 3px; }
.lm-home-info .lm-home-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 16px;
  padding: 12px;
  background: var(--lm-home-tint);
  border: 1px solid var(--lm-home-border);
  border-radius: 12px;
}
.lm-home-info .lm-home-nav a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 14px;
  min-height: 37px;
  border: 1px solid #cee5e3;
  border-radius: 9px;
  background: #fff;
  color: var(--lm-home-deep);
  font-weight: 750;
  font-size: 13px;
  line-height: 1.45;
}
.lm-home-info .lm-home-nav a:is(:hover,:focus-visible) {
  border-color: var(--lm-home-accent);
  background: #e8f4f1;
  text-decoration: none;
}
.lm-home-info .lm-home-panel {
  margin: 0 0 17px;
  padding: clamp(17px, 2.5vw, 29px);
  border: 1px solid var(--lm-home-border);
  border-radius: var(--lm-home-radius);
  background: #fff;
  box-shadow: 0 6px 24px rgb(17 67 78 / 4%);
}
.lm-home-info .lm-home-introduction { border-top: 4px solid var(--lm-home-accent); }
.lm-home-info .lm-home-intro-layout {
  display: grid;
  grid-template-columns: minmax(120px, 185px) minmax(0, 1fr);
  gap: clamp(17px, 2.4vw, 28px);
  align-items: start;
}
.lm-home-info .lm-home-cover-wrap { max-width: 185px; min-width: 0; }
.lm-home-info .lm-home-cover {
  display: block;
  width: 100%;
  max-width: 185px;
  height: auto;
  border-radius: 7px;
  border: 1px solid #d8e2e8;
  box-shadow: 0 10px 26px rgb(14 52 70 / 13%);
}
.lm-home-info .lm-home-intro-copy { min-width: 0; }
.lm-home-info .lm-home-kicker {
  margin: 0 0 6px;
  color: var(--lm-home-accent);
  font-weight: 800;
  font-size: 11px;
  letter-spacing: .11em;
  line-height: 1.55;
  text-transform: uppercase;
}
.lm-home-info h2 {
  margin: 0 0 13px;
  padding: 0;
  font-size: clamp(21px, 2vw, 26px);
  line-height: 1.3;
  font-weight: 800;
  color: var(--lm-home-deep);
  border: 0;
}
.lm-home-info p { margin: 0 0 12px; line-height: 1.72; }
.lm-home-info .lm-home-intro-copy > p:last-of-type { margin-bottom: 14px; }
.lm-home-info .lm-home-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: 14px;
}
.lm-home-info .lm-home-actions a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 9px 13px;
  border: 1px solid #cde4df;
  border-radius: 8px;
  background: #eff9f6;
  color: var(--lm-home-deep);
  font-size: 12.5px;
  font-weight: 750;
}
.lm-home-info .lm-home-actions a:hover { background: #e3f4ef; text-decoration: none; }
.lm-home-info .lm-home-section-head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 15px;
  padding-bottom: 13px;
  border-bottom: 1px solid #e8eef0;
}
.lm-home-info .lm-home-section-head .lm-home-kicker { margin: 0 0 2px; }
.lm-home-info .lm-home-section-head h2 { margin: 0; }
.lm-home-info .lm-home-section-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 38px;
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: var(--lm-home-deep);
  color: #fff;
  font-weight: 850;
  font-size: 14px;
  letter-spacing: .04em;
}
.lm-home-info .lm-home-issue-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 15px 0 18px;
  padding: 0;
  list-style: none;
}
.lm-home-info .lm-home-issue-grid > li {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 13px 15px;
  border: 1px solid #d0e9e5;
  border-radius: 9px;
  background: var(--lm-home-tint);
  list-style: none;
}
.lm-home-info .lm-home-issue-caption {
  color: var(--lm-home-muted);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .045em;
}
.lm-home-info .lm-home-issue-grid strong {
  color: var(--lm-home-deep);
  font-size: 18px;
  font-weight: 850;
}
.lm-home-info .lm-home-table-scroll { width: 100%; max-width: 100%; overflow-x: auto; }
.lm-home-info .lm-home-information-table {
  width: 100%;
  max-width: none;
  border: 1px solid #e1eaeb;
  border-collapse: separate;
  border-spacing: 0;
  border-radius: 10px;
  overflow: hidden;
  color: var(--lm-home-ink);
  font-size: 13.5px;
  line-height: 1.55;
  background: #fff;
}
.lm-home-info .lm-home-information-table th,
.lm-home-info .lm-home-information-table td {
  padding: 11px 14px;
  text-align: left;
  vertical-align: top;
  border: 0;
  border-bottom: 1px solid #e3ecee;
  overflow-wrap: anywhere;
}
.lm-home-info .lm-home-information-table tr:last-child > :is(th,td) { border-bottom: 0; }
.lm-home-info .lm-home-information-table th {
  width: 32%;
  min-width: 140px;
  color: var(--lm-home-deep);
  background: #f3f8f8;
  font-weight: 800;
}
.lm-home-info .lm-home-information-table tr:nth-child(even) td { background: #fafcfc; }
.lm-home-info .lm-home-index-links span { color: #93afb4; margin: 0 4px; }
.lm-home-info .lm-home-return {
  margin: 16px 0 0;
  padding-top: 12px;
  border-top: 1px solid #e6eeee;
  text-align: right;
  font-size: 12.5px;
  font-weight: 800;
}
.lm-home-info .lm-home-return a { color: var(--lm-home-accent); }
@container (max-width: 710px) {
  .lm-home-info .lm-home-intro-layout { grid-template-columns: minmax(0, 1fr); }
  .lm-home-info .lm-home-cover-wrap { width: 145px; max-width: 40%; }
  .lm-home-info .lm-home-nav a { flex: 1 1 auto; }
}
@container (max-width: 390px) {
  .lm-home-info .lm-home-issue-grid { grid-template-columns: 1fr; }
  .lm-home-info .lm-home-information-table th,
  .lm-home-info .lm-home-information-table td { padding: 9px; font-size: 12px; }
  .lm-home-info .lm-home-information-table th { min-width: 105px; }
  .lm-home-info .lm-home-nav { padding: 9px; }
  .lm-home-info .lm-home-nav a { flex-basis: 100%; }
}
@media (prefers-reduced-motion: no-preference) {
  html:has(.lm-home-info) { scroll-behavior: smooth; }
}
@media print {
  .lm-home-info .lm-home-nav,
  .lm-home-info .lm-home-actions,
  .lm-home-info .lm-home-return { display: none; }
  .lm-home-info .lm-home-panel { box-shadow: none; break-inside: avoid; }
}

/* =========================================================
   LITPAM LAMINA - NAVY HEADERS (v1.3.2)
   WhatsApp & Manuscript Template
   Add after existing journal stylesheet.
   ========================================================= */
.lm-home .lm-rail > section.lm-panel.is-jade > .lm-panel-title,
.lm-home .lm-rail > section.lm-panel.is-cobalt > .lm-panel-title {
    background: #112e5b !important;
    background-color: #112e5b !important;
    background-image: none !important;
    color: #ffffff !important;
}
.lm-home .lm-rail > section.lm-panel.is-jade > .lm-panel-title svg,
.lm-home .lm-rail > section.lm-panel.is-cobalt > .lm-panel-title svg {
    color: #ffffff !important;
    stroke: currentColor;
}

/* ========================================================================
   10. LAPiEDRA | UNIVERSAL INTERNAL PAGE BANNER CONTRAST v2.2

   Covers built-in OJS pages (About, Privacy, Editorial Team, Contact,
   Submissions, Search, Publisher/Ownership) AND other dark LP banners.
   Does NOT depend on OJS route/page classes for matching internal pages.
   Explicitly excludes the homepage and light/pale banner variants.

   This section replaces previous v2.0/v2.1 banner color overrides.
   It does NOT change hero backgrounds, columns, fonts, page layouts,
   lm-policy-* pages, the original sidebar or homepage components.
   ======================================================================== */

/* Home is already accessible; never recolor its banner or its 3 columns.
   Light custom LP banners should carry is-pale, is-light or is-white. */
body:not(.pkp_page_index):not(:has(.lm-home))
  :is(.lp-pg-banner, .lp-search-hero, .lp-search-banner):where(:not(.is-pale, .is-light, .is-white)) {
  --es-banner-heading: #ffffff;
  --es-banner-copy: #e6f4ee;
  --es-banner-link: #bdf6d7;
  color: var(--es-banner-copy) !important;
  -webkit-text-fill-color: var(--es-banner-copy) !important;
}

/* Reach nested content in both LEFT and RIGHT green sections, not just the
   first child. In particular this covers names, address, email, ISSN,
   dates, publisher labels and explanatory copy. Forms are not restyled. */
body:not(.pkp_page_index):not(:has(.lm-home))
  :is(.lp-pg-banner, .lp-search-hero, .lp-search-banner):where(:not(.is-pale, .is-light, .is-white))
  :is(div, section, aside, header, address, p, small, span, strong, b,
      em, i, label, dt, dd, li, time, .lp-pg-kicker, .lp-pg-lead) {
  color: var(--es-banner-copy) !important;
  -webkit-text-fill-color: var(--es-banner-copy) !important;
}

/* Headings and values in dark areas receive maximum contrast. */
body:not(.pkp_page_index):not(:has(.lm-home))
  :is(.lp-pg-banner, .lp-search-hero, .lp-search-banner):where(:not(.is-pale, .is-light, .is-white))
  :is(h1, h2, h3, h4, h5, h6, .lp-pg-title, .lp-pg-banner-title) {
  color: var(--es-banner-heading) !important;
  -webkit-text-fill-color: var(--es-banner-heading) !important;
}

/* General links on dark green must be legible, too (mailto, publisher URL,
   contact address). Excludes controls by leaving backgrounds unchanged. */
body:not(.pkp_page_index):not(:has(.lm-home))
  :is(.lp-pg-banner, .lp-search-hero, .lp-search-banner):where(:not(.is-pale, .is-light, .is-white))
  a {
  color: var(--es-banner-link) !important;
  -webkit-text-fill-color: var(--es-banner-link) !important;
}

/* CRITICAL EXCEPTION: light Submissions status/login/registration card.
   Detect the right-hand card by its actual action URLs, not the OJS page
   class, and restore dark text on the white background. */
body:not(.pkp_page_index):not(:has(.lm-home)) .lp-pg-banner
  > :is(div, aside, section):not(:first-child):has(
    :is(a[href*="/login"], a[href*="/register"], a[href*="/submission"])
  ),
body:not(.pkp_page_index):not(:has(.lm-home)) .lp-pg-banner
  > :is(div, aside, section):not(:first-child):has(
    :is(a[href*="/login"], a[href*="/register"], a[href*="/submission"])
  ) :is(div, section, aside, p, small, span, strong, b, em, i,
         label, h1, h2, h3, h4, h5, h6, li, time) {
  color: #244335 !important;
  -webkit-text-fill-color: #244335 !important;
}

/* Secondary links on a white status card remain dark blue. */
body:not(.pkp_page_index):not(:has(.lm-home)) .lp-pg-banner
  > :is(div, aside, section):not(:first-child):has(
    :is(a[href*="/login"], a[href*="/register"], a[href*="/submission"])
  ) a {
  color: #18518c !important;
  -webkit-text-fill-color: #18518c !important;
}

/* Main Login and new-submission CTA use green filled buttons with white text.
   Class-based rules catch button widgets without whitening plain text links. */
body:not(.pkp_page_index):not(:has(.lm-home)) .lp-pg-banner
  > :is(div, aside, section):not(:first-child):has(
    :is(a[href*="/login"], a[href*="/register"], a[href*="/submission"])
  ) :is(a.button, a.btn, a[class*="button"], a[class*="primary"],
        a[href*="/login"]),
body:not(.pkp_page_index):not(:has(.lm-home)) .lp-pg-banner
  > :is(div, aside, section):not(:first-child):has(
    :is(a[href*="/login"], a[href*="/register"], a[href*="/submission"])
  ) :is(a.button, a.btn, a[class*="button"], a[class*="primary"],
        a[href*="/login"]) :is(span, strong, i) {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

/* Other explicitly white content cards on dark banners. Avoid overriding
   general dark right-hand panels such as Publisher and General Enquiries. */
body:not(.pkp_page_index):not(:has(.lm-home)) .lp-pg-banner
  :is(.lp-pg-status-card, .lp-pg-white-card, .lp-pg-cta-card),
body:not(.pkp_page_index):not(:has(.lm-home)) .lp-pg-banner
  :is(.lp-pg-status-card, .lp-pg-white-card, .lp-pg-cta-card)
  :is(div, p, span, strong, small, h2, h3, h4, li, label) {
  color: #244335 !important;
  -webkit-text-fill-color: #244335 !important;
}

/* Printing dark banners on white paper should still be readable. */
@media print {
  body:not(.pkp_page_index):not(:has(.lm-home))
    :is(.lp-pg-banner, .lp-search-hero, .lp-search-banner)
    :where(:not(.is-pale, .is-light, .is-white))
    :is(h1,h2,h3,h4,h5,h6,p,small,span,strong,em,address,dt,dd,li,a) {
    color: #111111 !important;
    -webkit-text-fill-color: #111111 !important;
  }
}

/* ========================================================================
   11. e-SAINTIKA | PUBLISHER ADDRESS CONTRAST v2.4
   Uses inspected OJS markup:
     <div class="lp-pg-head">
       <h2>Publisher name</h2>
       <address><p>Postal address and contact details</p></address>
     </div>

   Scope is deliberately narrow: only .lp-pg-head elements with a direct
   <address> child. Ordinary split-section headings and the homepage are
   not recolored. Obsolete closing-band color rules removed.
   ======================================================================== */

/* The publisher block sits on a dark green panel. */
body:not(.pkp_page_index) .lp-pg .lp-pg-head:has(> address) {
  color: #e6f4ee !important;
  -webkit-text-fill-color: #e6f4ee !important;
}

/* Publisher name. */
body:not(.pkp_page_index) .lp-pg .lp-pg-head:has(> address) > h2 {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  opacity: 1 !important;
}

/* Publisher address (including nested paragraphs and any strong/span text). */
body:not(.pkp_page_index) .lp-pg .lp-pg-head:has(> address) > address,
body:not(.pkp_page_index) .lp-pg .lp-pg-head:has(> address) > address :is(p,span,small,strong,b,em) {
  color: #e6f4ee !important;
  -webkit-text-fill-color: #e6f4ee !important;
  opacity: 1 !important;
  font-style: normal;
}

/* Contact links, when they are provided inside the address. */
body:not(.pkp_page_index) .lp-pg .lp-pg-head:has(> address) address a {
  color: #bdf6d7 !important;
  -webkit-text-fill-color: #bdf6d7 !important;
  opacity: 1 !important;
}
body:not(.pkp_page_index) .lp-pg .lp-pg-head:has(> address) address a:is(:hover,:focus-visible) {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  text-decoration: underline;
}

/* Printed copies may have white page backgrounds. */
@media print {
  body:not(.pkp_page_index) .lp-pg .lp-pg-head:has(> address),
  body:not(.pkp_page_index) .lp-pg .lp-pg-head:has(> address) :is(h2,address,p,span,small,strong,a) {
    color: #111111 !important;
    -webkit-text-fill-color: #111111 !important;
  }
}
