  /*
  * ═══════════════════════════════════════════════════════════════════════
  * AJMS Theme — Main Stylesheet  v5.0
  * African Journal of Media & Society  ·  OJS 3.4 Standalone Theme
  * ═══════════════════════════════════════════════════════════════════════
  *
  * FONT-SIZE TOKEN REFERENCE
  * ─────────────────────────────────────────────────────────────────────
  * All font sizes are controlled via CSS custom properties in :root.
  * Edit values there to update the entire type scale in one place.
  *
  *  Micro / chrome
  *    --fs-2xs   10px  Micro labels, badges, galley chips
  *    --fs-xs    11px  Secondary labels, footer note, breadcrumb
  *    --fs-sm    12px  Captions, helper text, button text
  *    --fs-base  13px  Default body / list text
  *    --fs-md    14px  Primary body copy, form inputs
  *    --fs-lg    15px  About-page prose
  *    --fs-close 24px  Mobile-menu close icon
  *
  *  Display / headings (rem)
  *    --fs-article-num   0.9rem   Issue article counter
  *    --fs-quote         0.95rem  Pull-quote body
  *    --fs-article-link  1.05rem  Issue TOC article title
  *    --fs-article-name  1.1rem   Author name, card title
  *    --fs-section-num   1.15rem  Article card title
  *    --fs-sub-heading   1.2rem   Publisher box h3, article subtitle
  *    --fs-issue-num     1.3rem   Issue card h3
  *    --fs-cta-title     1.4rem   CTA box title, archive empty heading
  *    --fs-issue-title   1.6rem   Issue/section h2, current-issue title
  *    --fs-mobile-sub    1.8rem   Mobile nav sub-links
  *    --fs-vol-num       2rem     Issue volume-number display
  *
  *  Fluid (clamp)
  *    --fs-section-title  clamp(1.4rem, 2.5vw, 2rem)   Section headers
  *    --fs-page-title     clamp(1.8rem, 3vw, 2.8rem)   Article detail h1
  *    --fs-hero           clamp(2rem, 4vw, 3.2rem)      Page heroes
  *    --fs-home-sub       clamp(1rem, 1.6vw, 1.25rem)  Home subtitle
  *    --fs-home-hero      clamp(3rem, 6vw, 5.2rem)      Home main title
  *    --fs-mobile-hero    clamp(2.2rem, 8vw, 3rem)      Mobile hero title
  *
  * NOTE: The single instance of `font-size: 0.9em` in
  * .obj_article_summary .title .subtitle is intentionally relative
  * to its parent element and is not tokenised.
  * ═══════════════════════════════════════════════════════════════════════
  */

  /* ── RESET & ROOT ─────────────────────────────────────── */
  *,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

  :root {
    /* ── Brand Colours ─────────────────────────────────────────────────── */
    --ink:          #0d0c0a;
    --red:          #9b1616;
    --red-dark:     #7f1010;
    --green:        #166534;
    --gold:         #c17f3b;
    --cream:        #faf8f4;
    --muted:        #3d3a37;
    --border:       #3a3936c9;
    --bg:           #fff;
    --panel:        #f5f2ee;

    /* ── Spacing & Layout ──────────────────────────────────────────────── */
    --gutter:       2rem;
    --hero-py:      5rem;
    --hero-pb:      4rem;
    --body-pad:     4rem var(--gutter);
    --section-gap:  3rem;
    --max-body:     860px;
    --max-content:  1100px;
    --max-home:     1280px;

  

  
    /* ── Type Scale (px — body copy & UI chrome) ───────────────────────── */
    --fs-2xs:       10.5px;   /* micro labels, badges, galley chips         */
    --fs-xs:        12px;   /* secondary labels, footer note, breadcrumb  */
    --fs-sm:        13px;   /* captions, helper text, button text         */
    --fs-base:      14px;   /* default body / list text                   */
    --fs-md:        16px;   /* primary body copy, form inputs             */
    --fs-lg:        18px;   /* about-page prose                           */
    --fs-close:     24px;   /* mobile-menu close icon                     */

    /* ── Type Scale (rem — display & heading rhythm) ───────────────────── */
    --fs-article-num:  0.9rem;   /* issue article counter                 */
    --fs-quote:        0.95rem;  /* pull-quote body                       */
    --fs-article-link: 1.05rem;  /* issue TOC article title               */
    --fs-article-name: 1.1rem;   /* author name / card title              */
    --fs-section-num:  1.15rem;  /* article card title                    */
    --fs-sub-heading:  1.2rem;   /* publisher box h3, article subtitle    */
    --fs-issue-num:    1.3rem;   /* issue card h3                         */
    --fs-cta-title:    1.4rem;   /* CTA box title, archive empty h        */
    --fs-issue-title:  1.6rem;   /* issue/section h2, ci-title            */
    --fs-mobile-sub:   1.8rem;   /* mobile nav sub-links                  */
    --fs-vol-num:      2rem;     /* issue vol number display              */

    /* ── Fluid / Clamp Sizes ────────────────────────────────────────────── */
    --fs-section-title: clamp(1.4rem, 2.5vw, 2rem);    /* section header   */
    --fs-page-title:    clamp(1.8rem, 3vw, 2.8rem);    /* article detail   */
    --fs-hero:          clamp(2rem, 4vw, 3.2rem);       /* page heroes      */
    --fs-home-sub:      clamp(1rem, 1.6vw, 1.25rem);   /* home subtitle    */
    --fs-home-hero:     clamp(3rem, 6vw, 5.2rem);      /* home main title  */
    --fs-mobile-hero:   clamp(2.2rem, 8vw, 3rem);      /* mobile hero      */
  }

  html{scroll-behavior:smooth}
  body{
    font-family:'DM Sans',sans-serif;
    color:var(--ink);
    background:var(--bg);
    line-height:1.6;
  }

  h1,h2,h3,h4{
    font-family:'Cormorant Garamond',Georgia,serif;
    font-weight:300;
  }

  a{color:var(--red);text-decoration:none}
  a:hover{color:var(--red-dark)}

  img{max-width:100%;height:auto}

  /* ── TOPBAR ───────────────────────────────────────────── */
  .ajms-topbar{
    background:var(--ink);
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:0 var(--gutter);
    height:36px;
    font-size: var(--fs-md);
    text-transform:uppercase;
    letter-spacing:0.06em;
  }
  .ajms-topbar-inner{
    display:flex;align-items:center;justify-content:space-between;
    max-width:var(--max-home);width:100%;
  }
  .ajms-topbar-left{
    display:flex;align-items:center;gap:1.5rem;
    color:rgba(255,255,255,0.4);
    font-size: var(--fs-sm);letter-spacing:0.1em;text-transform:uppercase;
  }
  .ajms-topbar-right{display:flex;align-items:center;gap:1rem}
  .ajms-topbar a{color:rgba(255,255,255,0.75);text-decoration:none;transition:color 0.2s}
  .ajms-topbar a:hover{color:#fff}
  .ajms-topbar-login{
    background:var(--red);
    color:#fff !important;
    padding:4px 14px;
    font-size: var(--fs-xs);letter-spacing:0.1em;text-transform:uppercase;
    font-weight:500;transition:background 0.2s;
    text-decoration:none;display:inline-block;
  }
  .ajms-topbar-login:hover{background:var(--red-dark) !important}
  .ajms-topbar-search{
    display:flex;align-items:center;gap:6px;
    background:rgba(255,255,255,0.1);
    border:0.5px solid rgba(255,255,255,0.2);
    padding:3px 10px;
  }
  .ajms-topbar-search input{
    background:none;border:none;outline:none;
    color:#fff;font-size: var(--fs-xs);width:140px;
    font-family:'DM Sans',sans-serif;
  }
  .ajms-topbar-search input::placeholder{color:rgba(255,255,255,0.45)}
  .ajms-topbar-search svg{width:12px;height:12px;stroke:#fff;opacity:0.6;flex-shrink:0}

  /* ── FLAG STRIPE ──────────────────────────────────────── */
  .ajms-flag-stripe{display:flex;height:4px;width:100%}
  .ajms-flag-stripe span{flex:1}
  .fs-r{background:var(--red)}
  .fs-b{background:var(--ink)}
  .fs-g{background:var(--green)}

  /* ── NAVBAR ───────────────────────────────────────────── */
  .ajms-navbar{
    display:flex;align-items:center;justify-content:space-between;
    padding:0 var(--gutter);height:70px;
    border-bottom:1px solid var(--border);
    background:#fff;
    position:sticky;top:0;z-index:100;
  }
  /* Inner content constrained to match page max-width */
  .ajms-navbar-inner{
    display:flex;align-items:center;justify-content:space-between;
    max-width:var(--max-home);width:100%;margin:0 auto;
  }
  .ajms-nav-logo img{
    height:44px;width:auto;
    mix-blend-mode:multiply;display:block;
  }
  .ajms-nav-menu{display:flex;align-items:center;gap:0;list-style:none}
  .ajms-nav-menu li{position:relative}
  .ajms-nav-menu a{
    display:block;padding:0 1.1rem;
    font-size: var(--fs-base);font-weight:500;
    color:var(--ink);text-decoration:none;
    letter-spacing:0.04em;line-height:70px;
    transition:color 0.2s;white-space:nowrap;
  }
  .ajms-nav-menu a:hover,
  .ajms-nav-menu a.active{color:var(--red)}
  .ajms-nav-menu a.active{border-bottom:2px solid var(--red)}
  .ajms-nav-menu li:hover .ajms-dropdown{display:block}
  .ajms-dropdown{
    display:none;position:absolute;top:70px;left:0;
    background:#fff;border:0.5px solid var(--border);
    min-width:160px;z-index:200;
    box-shadow:0 8px 24px rgba(0,0,0,0.08);
  }
  .ajms-dropdown a{
    line-height:1;padding:12px 16px;
    font-size: var(--fs-sm);border-bottom:0.5px solid var(--border);
    display:block;color:var(--ink);
  }
  .ajms-dropdown a:last-child{border-bottom:none}
  .ajms-dropdown a:hover{color:var(--red)}
  .ajms-hamburger{
    display:none;background:none;border:none;cursor:pointer;padding:4px;
  }
  .ajms-hamburger span{
    display:block;width:22px;height:1.5px;
    background:var(--ink);margin:5px 0;transition:all 0.3s;
  }

  /* ── MOBILE NAV ───────────────────────────────────────── */
  .ajms-mobile-menu{
    display:none;position:fixed;inset:0;
    background:#fff;z-index:500;
    flex-direction:column;padding:2rem;
    overflow-y:auto;
  }
  .ajms-mobile-menu.open{display:flex}
  .ajms-mobile-menu-close{
    align-self:flex-end;background:none;border:none;
    font-size: var(--fs-close);cursor:pointer;color:var(--ink);margin-bottom:2rem;
  }
  .ajms-mobile-menu a{
    font-family:'Cormorant Garamond',serif;
    font-size: var(--fs-mobile-sub);font-weight:300;
    color:var(--ink);text-decoration:none;
    padding:0.8rem 0;border-bottom:0.5px solid var(--border);
    display:block;
  }
  .ajms-mobile-menu a:hover{color:var(--red)}
  .ajms-mobile-sub{padding-left:1.5rem}
  .ajms-mobile-sub a{font-size: var(--fs-issue-num);color:var(--muted)}

  /* ── BUTTONS ──────────────────────────────────────────── */
  .btn{
    display:inline-flex;align-items:center;gap:8px;
    padding:12px 24px;font-size: var(--fs-sm);
    letter-spacing:0.12em;text-transform:uppercase;
    font-weight:500;text-decoration:none;
    transition:all 0.2s;cursor:pointer;border:none;
    font-family:'DM Sans',sans-serif;
  }
  .btn-dark{background:var(--ink);color:#fff}
  .btn-dark:hover{background:var(--red);color:#fff}
  .btn-outline{background:none;border:1px solid var(--ink);color:var(--ink)}
  .btn-outline:hover{background:var(--ink);color:#fff}
  .btn-red{background:var(--red);color:#fff}
  .btn-red:hover{background:var(--red-dark);color:#fff}
  .btn-sm{font-size: var(--fs-xs) !important;padding:9px 18px !important}
  .btn-full{width:100%;justify-content:center}
  .hero-btns{display:flex;gap:1rem;flex-wrap:wrap}
  
  li {
  list-style: none;
}

  
  /* ── ONLINE FIRST ─────────────────────────────────────────── */

.ajms-onlinefirst-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  background: var(--muted);
  border: 1px solid var(--border);
  margin: 0 var(--gutter) var(--section-gap);
}

.ajms-of-card {
  background: #fff;
  padding: 1.45rem 1.55rem 1.35rem;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  border-left: 3px solid transparent;
  transition: background 0.2s ease, border-color 0.2s ease;
}

.ajms-of-card:hover {
  background: var(--cream);
  border-left-color: var(--red);
}

/* Metadata row */
.ajms-of-badge-row {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  flex-wrap: wrap;
  margin-bottom: 0.15rem;
}

.ajms-of-badge {
  display: inline-block;
  font-size: var(--fs-2xs);
  font-weight: 500;
  letter-spacing: 0.13em;
  line-height: 1;
  text-transform: uppercase;
  color: var(--red);
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: 0;
  padding: 5px 9px 4px;
}

.ajms-of-date {
  font-size: var(--fs-xs);
  letter-spacing: 0.055em;
  color: var(--muted);
  text-transform: uppercase;
}

/* Article title */
.ajms-of-title {
  margin: 0;
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(1.25rem, 1.45vw, 1.55rem);
  font-weight: 400;
  line-height: 1.22;
}

.ajms-of-title a {
  color: var(--ink);
  text-decoration: none;
}

.ajms-of-title a:hover {
  color: var(--red);
}

/* Authors */
.ajms-of-meta {
  margin: 0.05rem 0 0;
  font-size: var(--fs-sm);
  line-height: 1.4;
  color: var(--muted);
}

/* CTA */
.ajms-of-link {
  display: inline-block;
  align-self: flex-start;
  margin-top: 0.35rem;
  font-size: var(--fs-xs);
  letter-spacing: 0.1em;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--red);
  text-decoration: none;
  font-weight: 500;
}

.ajms-of-link:hover {
  text-decoration: underline;
}


/* ── RESPONSIVE ───────────────────────────────────────────── */

@media (max-width: 700px) {
  .ajms-onlinefirst-grid {
    grid-template-columns: 1fr;
  }

  .ajms-of-card {
    padding: 1.35rem;
  }

  .ajms-of-title {
    font-size: 1.35rem;
  }
}
  
  /* ── PAGE HERO (shared) ───────────────────────────────── */
  .ajms-page-hero{
    background:var(--ink);color:#fff;
    min-height: 40vh;
    padding:var(--hero-py) var(--gutter) var(--hero-pb);
    position:relative;overflow:hidden;
  }
  .ajms-page-hero::before{
    content:'';position:absolute;inset:0;
    background:repeating-linear-gradient(
      135deg,
      rgba(255,255,255,0.015) 0px,
      rgba(255,255,255,0.015) 1px,
      transparent 1px,
      transparent 40px
    );pointer-events:none;
  }
  .ajms-page-hero-inner{
    max-width:var(--max-content);
    margin:0 auto;position:relative;
  }
  .ajms-page-hero h1{
    font-family:'Cormorant Garamond',serif;
    font-size: var(--fs-hero);font-weight:300;
    margin-bottom:1rem;
  }
  .ajms-page-hero p{
    font-size: var(--fs-md);color:rgba(255,255,255,0.65);
    max-width:580px;line-height:1.8;
  }
  .ajms-page-hero--red{border-top:3px solid var(--red)}
  .ajms-page-hero--green{border-top:3px solid var(--green)}
  .ajms-page-hero--gold{border-top:3px solid var(--gold)}
  .ajms-page-hero--compact{padding-top:3rem;padding-bottom:2.5rem}

  /* ── HOME HERO ────────────────────────────────────────── */
  .ajms-home-hero{
    background: var(--cream);
    padding:3rem var(--gutter) 0;
    display:flex;
    flex-direction:column;
    position:relative;
    align-content: center;
    min-height: 70vh;
  }
  .ajms-home-hero::before{
    content:"";
    position:absolute;
    inset:0;
    background:url('/hero.png') center top / cover no-repeat;
    opacity:0.15;
    pointer-events:none;
    z-index:0;
  }
  .ajms-home-hero > *{
    position:relative;
    z-index:1;
  }

  .ajms-home-hero-inner{max-width:var(--max-home);margin:0 auto;min-height: 60vh;}
  .ajms-hm-meta{
    display:flex;align-items:center;gap:1.5rem;
    font-size: var(--fs-2xs);letter-spacing:0.14em;text-transform:uppercase;
    color:var(--muted);margin-bottom:1.8rem;flex-wrap:wrap;
  }
  .ajms-hm-meta-dot{color:var(--border)}
  .ajms-hm-meta strong{color:var(--red)}
  .ajms-hm-title{
    font-family:'Cormorant Garamond',serif;
    font-size: var(--fs-home-hero);
    font-weight:300;line-height:1.05;
    color:var(--ink);letter-spacing:-0.01em;
    margin-bottom:0.6rem;
  }
  .ajms-hm-subtitle{
    font-family:'Cormorant Garamond',serif;
    font-size: var(--fs-home-sub);
    font-style:italic;color:var(--muted);
    margin-bottom:2rem;
  }
  .ajms-hm-divider{height:3px;margin-bottom:0}
  .ajms-hm-body{
    display:grid;
    grid-template-columns:1fr 340px 1fr;
    gap:0;
  }
  .ajms-hm-col{
    padding-top: 2.5rem;
    padding-right: 0.25rem;
    padding-bottom: 2.5rem;
    padding-left: 0.25rem;
    
  }
  .ajms-hm-col:last-child{border-right:none}
  /* .ajms-hm-desc removed — description no longer shown in hero */
  .ajms-hm-col-image{
    padding:0;overflow:hidden;
    background:var(--ink);
    position:relative;min-height:340px;
  }
  .ajms-hm-col-image img{
    width:100%;height:100%;
    object-fit:cover;object-position:center top;
    opacity:0.8;mix-blend-mode:luminosity;display:block;
  }
  .ajms-hm-col-image-overlay{
    position:absolute;inset:0;
    background:linear-gradient(160deg,rgba(155,22,22,0.25) 0%,rgba(22,101,52,0.2) 100%);
  }
  .ajms-hm-cta-box{
    background:var(--ink);color:#fff;
    padding:1.8rem;margin-bottom:1.5rem;
  }
  .ajms-hm-cta-label{
    font-size: var(--fs-2xs);letter-spacing:0.16em;text-transform:uppercase;
    color:var(--gold);font-weight:500;margin-bottom:0.8rem;
  }
  .ajms-hm-cta-title{
    font-family:'Cormorant Garamond',serif;
    font-size: var(--fs-cta-title);font-weight:300;line-height:1.2;
    color:#fff;margin-bottom:0.8rem;
  }
  .ajms-hm-cta-desc{
    font-size: var(--fs-sm);line-height:1.7;
    color:rgba(255,255,255,0.6);margin-bottom:1.2rem;
  }
  .ajms-hm-quote{border-left:2px solid var(--gold);padding-left:1rem}
  .ajms-hm-quote p{
    font-family:'Cormorant Garamond',serif;
    font-size: var(--fs-quote);font-weight:300;font-style:italic;
    line-height:1.5;color:var(--muted);margin-bottom:0.4rem;
  }
  .ajms-hm-quote small{
    font-size: var(--fs-2xs);letter-spacing:0.1em;text-transform:uppercase;color:var(--border);
  }

  /* ── HOME SECTIONS WRAPPER ────────────────────────────── */
  .ajms-home-sections{max-width:var(--max-home);margin:0 auto}

  /* ── CURRENT ISSUE STRIP ──────────────────────────────── */
  .ajms-current-issue-strip{
    display:grid;grid-template-columns:200px 1fr;
    gap:0;border:1px solid var(--border);
    margin:var(--section-gap) var(--gutter);background:#fff;
  }
  .ajms-ci-label{
    background:var(--ink);color:#fff;
    display:flex;align-items:center;justify-content:center;
    writing-mode:vertical-lr;transform:rotate(180deg);
    font-size: var(--fs-2xs);letter-spacing:0.2em;text-transform:uppercase;
    font-weight:500;padding:2rem 1rem;
  }
  .ajms-ci-content{padding:2.5rem}
  .ajms-ci-vol{
    font-size: var(--fs-xs);letter-spacing:0.14em;text-transform:uppercase;
    color:var(--red);font-weight:500;margin-bottom:0.5rem;
  }
  .ajms-ci-title{
    font-family:'Cormorant Garamond',serif;
    font-size: var(--fs-issue-title);font-weight:400;margin-bottom:0.5rem;
  }
  .ajms-ci-meta{font-size: var(--fs-base);color:var(--muted);margin-bottom:1.5rem}
  .ajms-ci-articles{list-style:none;border-top:0.5px solid var(--border);padding-top:1rem}
  .ajms-ci-articles li{
    padding:0.7rem 0;border-bottom:0.5px solid var(--border);
    display:flex;justify-content:space-between;align-items:center;
    font-size: var(--fs-base);gap:1rem;
  }
  .ajms-ci-articles li:last-child{border-bottom:none}
  .ajms-ci-article-title{font-weight:400;color:var(--ink)}
  .ajms-ci-article-author{color:var(--muted);font-size: var(--fs-sm);white-space:nowrap;flex-shrink:0}

  /* ── SECTION HEADER ───────────────────────────────────── */
  .ajms-section-header{
    display:flex;align-items:baseline;justify-content:space-between;
    padding:var(--section-gap) var(--gutter) 1.5rem;
    /*border-top:0.5px solid var(--border);*/
  }
  .ajms-section-title{
    font-family:'Cormorant Garamond',serif;
    font-size: var(--fs-section-title);font-weight:300;
  }
  .ajms-section-link{
    font-size: var(--fs-sm);letter-spacing:0.1em;text-transform:uppercase;
    color:var(--red);text-decoration:none;font-weight:500;
  }
  .ajms-section-link:hover{text-decoration:underline}
  
  .ajms-section--tinted {
  background: var(--cream);
  padding: 0.5px 0 var(--section-gap);
  margin-left: calc(-1 * var(--gutter));
  margin-right: calc(-1 * var(--gutter));
  padding-left: var(--gutter);
  padding-right: var(--gutter);
}
.ajms-section--tinted .ajms-onlinefirst-grid,
.ajms-section--tinted .ajms-section-header {
  margin-left: 0;
  margin-right: 0;
  padding-left: 0;
  padding-right: 0;
}

  /* ── ARTICLE CARDS ────────────────────────────────────── */
  .ajms-articles-grid{
    display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
    gap:1px var(--border);
    margin:0 var(--gutter) var(--section-gap);
  }
  .ajms-article-card{
    background:#ffffff;padding:1.8rem;transition:background 0.2s;
  }
  .ajms-article-card:hover{background:var(--cream)}
  .ajms-ac-theme{
    font-size: var(--fs-2xs);letter-spacing:0.14em;text-transform:uppercase;
    color:var(--red);font-weight:500;margin-bottom:0.7rem;
  }
  .ajms-ac-title{
    font-family:'Cormorant Garamond',serif;
    font-size: var(--fs-section-num);font-weight:400;
    line-height:1.3;margin-bottom:0.5rem;color:var(--ink);
  }
  .ajms-ac-author{font-size: var(--fs-sm);color:var(--muted);margin-bottom:1rem}
  .ajms-ac-abstract{font-size: var(--fs-base);color:var(--muted);line-height:1.6;margin-bottom:1.2rem}
  .ajms-ac-link{
    font-size: var(--fs-xs);letter-spacing:0.1em;text-transform:uppercase;
    color:var(--red);text-decoration:none;font-weight:500;
  }
  .ajms-ac-link:hover{text-decoration:underline}

  /* ── ABOUT ────────────────────────────────────────────── */
  .ajms-about-body{max-width:var(--max-content);margin:0 auto;padding:var(--body-pad)}
  .ajms-about-body h2{
    font-family:'Cormorant Garamond',serif;
    font-size: var(--fs-issue-title);font-weight:400;
    margin-bottom:1rem;margin-top:2.5rem;
    /*padding-top:2rem;border-top:0.5px solid var(--border);*/
  }
  .ajms-about-body h2:first-child{border-top:none;padding-top:0;margin-top:0}
  .ajms-about-body p{font-size: var(--fs-lg);line-height:1.8;color:var(--muted);margin-bottom:1.2rem}
  .ajms-themes-list{list-style:none;margin:1rem 0 1.5rem}
  .ajms-themes-list li{
    padding:0.9rem 1.2rem;margin-bottom:6px;
    background:var(--cream);
    border-left:3px solid var(--red);
    font-size: var(--fs-md);color:var(--ink);
  }
  .ajms-publisher-box{
    background:var(--cream);border:0.5px solid var(--border);
    padding:2rem;margin-top:2rem;
  }
  .ajms-publisher-box h3{
    font-family:'Cormorant Garamond',serif;
    font-size: var(--fs-sub-heading);margin-bottom:0.8rem;color:var(--ink);
  }
  .ajms-publisher-box p{font-size: var(--fs-base);color:var(--muted);line-height:1.7}

  /* ── ISSUES ───────────────────────────────────────────── */
  .ajms-issues-tabs{
    display:flex;border-bottom:1px solid var(--border);
    max-width:var(--max-content);
    margin:0 auto;position:relative;
    padding:0 var(--gutter);margin-top:2rem;
  }
  .ajms-tab-btn{
    padding:1rem 1.5rem;font-size: var(--fs-base);font-weight:500;
    letter-spacing:0.06em;border:none;background:none;
    cursor:pointer;color:var(--muted);
    border-bottom:2px solid transparent;
    transition:all 0.2s;font-family:'DM Sans',sans-serif;
  }
  .ajms-tab-btn.active,.ajms-tab-btn:hover{color:var(--red);border-bottom-color:var(--red)}
  .ajms-tab-panel{display:none;padding:2rem var(--gutter)}
  .ajms-tab-panel.active{display:block}
  .ajms-tab-panel-inner{max-width:var(--max-content);margin:0 auto}
  .ajms-issue-card{
    border:0.5px solid var(--border);padding:2rem;
    margin-bottom:1rem;background:#fff;
    display:flex;align-items:flex-start;gap:2rem;
  }
  .ajms-issue-vol-box{
    background:var(--ink);color:#fff;
    padding:1rem 1.2rem;text-align:center;
    flex-shrink:0;min-width:80px;
  }
  .ajms-issue-vol-box .vol{
    font-size: var(--fs-2xs);letter-spacing:0.12em;text-transform:uppercase;
    opacity:0.6;margin-bottom:4px;
  }
  .ajms-issue-vol-box .num{
    font-family:'Cormorant Garamond',serif;
    font-size: var(--fs-vol-num);font-weight:300;line-height:1;
  }
  .ajms-issue-info h3{
    font-family:'Cormorant Garamond',serif;
    font-size: var(--fs-issue-num);font-weight:400;margin-bottom:0.4rem;
  }
  .ajms-issue-info p{font-size: var(--fs-base);color:var(--muted);margin-bottom:1rem}
  .ajms-coming-soon-badge{
    display:inline-block;background:var(--red);color:#fff;
    font-size: var(--fs-2xs);letter-spacing:0.12em;text-transform:uppercase;
    padding:4px 12px;font-weight:500;
  }
  .ajms-issue-action{margin-top:1rem}
  .ajms-archives-empty{
    padding:3rem var(--gutter);text-align:center;color:var(--muted);
  }
  .ajms-archives-empty p:first-child{
    font-family:'Cormorant Garamond',serif;
    font-size: var(--fs-cta-title);font-weight:300;margin-bottom:0.5rem;
  }
  .ajms-archives-empty p:last-child{font-size: var(--fs-base)}

  /* ── SUBMISSIONS ──────────────────────────────────────── */
  .ajms-sub-body{max-width:var(--max-content);margin:0 auto;padding:var(--body-pad)}
  .ajms-sub-body h2{
    font-family:'Cormorant Garamond',serif;
    font-size: var(--fs-issue-title);font-weight:400;
    margin-bottom:1rem;margin-top:2.5rem;
   /* padding-top:2rem;border-top:0.5px solid var(--border);color:var(--ink);*/
  }
  .ajms-sub-body h2:first-child{border-top:none;padding-top:0;margin-top:0}
  .ajms-sub-body p{font-size: var(--fs-md);line-height:1.8;color:var(--muted);margin-bottom:1rem}
  .ajms-checklist{list-style:none;margin:1rem 0 1.5rem}
  .ajms-checklist li{
    padding:0.7rem 0 0.7rem 2rem;position:relative;
    font-size: var(--fs-md);color:var(--ink);
  /*  border-bottom:0.5px solid var(--border); */
  }
  /* .ajms-checklist li::before{
    content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);
    width:14px;height:14px;border:1.5px solid var(--green);border-radius:2px; */
  }
  .ajms-sub-login-box{
    background:var(--cream);border:0.5px solid var(--border);
    padding:2rem;margin-bottom:2rem;
    display:flex;align-items:center;justify-content:space-between;
    gap:1rem;flex-wrap:wrap;
  }
  .ajms-sub-login-box p{font-size: var(--fs-md);color:var(--muted)}
  .ajms-sub-login-box strong{color:var(--ink)}

  /* ── EDITORIAL BOARD ──────────────────────────────────── */
  .ajms-board-body{padding:var(--body-pad);max-width:var(--max-content);margin:0 auto}
  .ajms-board-section{margin-bottom:3rem}
  .ajms-board-section h2{
    font-size: var(--fs-xs);letter-spacing:0.16em;text-transform:uppercase;
    color:var(--red);font-weight:500;
    padding-bottom:0.8rem;border-bottom:1px solid var(--border);
    margin-bottom:1.5rem;
  }
  .ajms-board-members{
    display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;
  }
  .ajms-board-member{
    padding:1.2rem;background:var(--cream);
    border-left:3px solid transparent;transition:border-color 0.2s;
  }
  .ajms-board-member:hover{border-left-color:var(--red)}
  .ajms-board-member h3{font-size: var(--fs-md);font-weight:500;margin-bottom:2px;color:var(--ink)}
  .ajms-board-member p{font-size: var(--fs-sm);color:var(--muted)}

  /* ── CONTACT ──────────────────────────────────────────── */
  .ajms-contact-body{
    display:grid;grid-template-columns:1fr 340px;
    gap:3rem;max-width:var(--max-content);margin:0 auto;
    padding:var(--body-pad);align-items:start;
  }
  .ajms-contact-form label{
    display:block;font-size: var(--fs-xs);letter-spacing:0.1em;
    text-transform:uppercase;font-weight:500;
    color:var(--muted);margin-bottom:6px;margin-top:1.2rem;
  }
  .ajms-contact-form label:first-child{margin-top:0}
  .ajms-contact-form input,
  .ajms-contact-form select,
  .ajms-contact-form textarea{
    width:100%;padding:10px 14px;
    border:1px solid var(--border);background:var(--cream);
    font-family:'DM Sans',sans-serif;font-size: var(--fs-md);color:var(--ink);
    outline:none;transition:border-color 0.2s,background 0.2s;
    border-radius:0;-webkit-appearance:none;
  }
  .ajms-contact-form input:focus,
  .ajms-contact-form select:focus,
  .ajms-contact-form textarea:focus{border-color:var(--ink);background:#fff}
  .ajms-contact-form input::placeholder,
  .ajms-contact-form textarea::placeholder{color:#9a9590}
  .ajms-contact-form textarea{resize:vertical;min-height:140px}
  .ajms-info-box{
    background:var(--cream);border:0.5px solid var(--border);
    padding:1.5rem;margin-bottom:1rem;
  }
  .ajms-info-box h3{
    font-size: var(--fs-xs);letter-spacing:0.12em;text-transform:uppercase;
    font-weight:500;color:var(--red);margin-bottom:0.8rem;
  }
  .ajms-info-box p{font-size: var(--fs-base);color:var(--muted);line-height:1.7}
  .ajms-contact-success{
    display:none;padding:2rem;
    background:#f0f9f4;border:0.5px solid #b8dfcb;
    text-align:center;margin-top:1rem;
  }
  .ajms-contact-success p{color:#166534;font-size: var(--fs-md)}
  .ajms-contact-error{
    display:none;padding:1rem 1.5rem;
    background:#fff5f5;border:0.5px solid #f5c6cb;
    margin-top:1rem;
  }
  .ajms-contact-error p{color:#9b1616;font-size: var(--fs-base)}

  /* ── FOOTER ───────────────────────────────────────────── */
  .ajms-footer{
    background:var(--ink);color:#fff;
    padding:var(--hero-py) var(--gutter) var(--hero-pb);
  }
  .ajms-footer-inner{
    max-width:var(--max-home);
    margin:0 auto;
  }
  .ajms-footer-grid{
    display:grid;grid-template-columns:2fr 1fr 1fr 1fr;
    gap:3rem;padding-bottom:2rem;
    border-bottom:0.5px solid rgba(255,255,255,0.1);
    margin-bottom:2rem;
  }
  .ajms-footer-brand img{
    height:36px;width:auto;
    mix-blend-mode:lighten;opacity:0.85;margin-bottom:1rem;
  }
  .ajms-footer-brand p{
    font-size: var(--fs-sm);color:rgba(255,255,255,0.5);line-height:1.7;max-width:260px;
  }
  .ajms-footer-col h4{
    font-size: var(--fs-2xs);letter-spacing:0.16em;text-transform:uppercase;
    font-weight:500;color:rgba(255,255,255,0.4);margin-bottom:1rem;
  }
  .ajms-footer-col a{
    display:block;font-size: var(--fs-base);color:rgba(255,255,255,0.65);
    text-decoration:none;margin-bottom:0.5rem;transition:color 0.2s;
  }
  .ajms-footer-col a:hover{color:#fff}
  .ajms-footer-bottom{
    display:flex;justify-content:space-between;align-items:center;
    font-size: var(--fs-xs);color:rgba(255,255,255,0.35);flex-wrap:wrap;gap:0.5rem;
  }
  .ajms-footer-flag{display:flex;gap:3px;align-items:center}
  .ajms-footer-flag span{width:16px;height:8px}

  /* ── OJS STRUCTURAL OVERRIDES ─────────────────────────── */
  /* Ensure OJS's own structural divs don't add extra spacing */
  .pkp_structure_main{margin:0;padding:0}
  .pkp_structure_content{margin:0;padding:0}

  /* Submission / Login form styling to match theme */
  .pkp_form .form_group label{
    font-size: var(--fs-xs);letter-spacing:0.1em;text-transform:uppercase;
    font-weight:500;color:var(--muted);
  }
  .pkp_form input[type="text"],
  .pkp_form input[type="email"],
  .pkp_form input[type="password"],
  .pkp_form textarea,
  .pkp_form select{
    border:1px solid var(--border);
    border-radius:0;font-family:'DM Sans',sans-serif;
    background:var(--cream);
  }
  .pkp_form input:focus,
  .pkp_form textarea:focus,
  .pkp_form select:focus{border-color:var(--ink)}
  .pkp_button_primary,.pkp_form .submit{
    background:var(--ink);color:#fff;border:none;
    padding:12px 24px;font-size: var(--fs-sm);
    letter-spacing:0.12em;text-transform:uppercase;
    font-weight:500;font-family:'DM Sans',sans-serif;
    cursor:pointer;transition:background 0.2s;border-radius:0;
  }
  .pkp_button_primary:hover,.pkp_form .submit:hover{background:var(--red)}

  /* ═══════════════════════════════════════════════════════════
    ARTICLE DETAIL PAGE — obj_article_details
    Fix: was targeting .article_details (wrong), now correct
    ═══════════════════════════════════════════════════════════ */

  .obj_article_details {
    max-width: var(--max-content);
    margin: 0 auto;
    padding: var(--body-pad);
  }

  /* Two-column layout: main content + sidebar */
  .obj_article_details .row {
    display: grid;
    grid-template-columns: 1fr 280px;
    gap: 3rem;
    align-items: start;
  }

  .obj_article_details .main_entry {
    min-width: 0; /* prevents overflow in grid */
  }

  .obj_article_details .entry_details {
    position: sticky;
    top: 90px; /* clears the 70px navbar */
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
  }

  /* Page title */
  .obj_article_details h1.page_title {
    font-family: 'Cormorant Garamond', serif;
    font-size: var(--fs-page-title);
    font-weight: 300;
    line-height: 1.15;
    margin-bottom: 0.5rem;
    color: var(--ink);
  }

  /* Article subtitle */
  .obj_article_details h2.subtitle {
    font-family: 'Cormorant Garamond', serif;
    font-size: var(--fs-sub-heading);
    font-weight: 300;
    font-style: italic;
    color: var(--muted);
    margin-bottom: 2rem;
  }

  /* Responsive: stack to single column */
  @media (max-width: 860px) {
    .obj_article_details .row {
      grid-template-columns: 1fr;
    }
    .obj_article_details .entry_details {
      position: static;
    }
  }

  /* ═══════════════════════════════════════════════════════════
    ARTICLE DETAIL — .item sections (abstract, doi, keywords…)
    ═══════════════════════════════════════════════════════════ */

  /* Spacing between each section block */
  .obj_article_details .item {
    margin-bottom: 2rem;
    padding-bottom: 2rem;
    border-bottom: 0.5px solid var(--border);
  }
  .obj_article_details .item:last-child {
    border-bottom: none;
    margin-bottom: 0;
  }

  /* Sub-items within an .item (e.g. published date + versions) */
  .obj_article_details .sub_item {
    margin-bottom: 1.2rem;
  }
  .obj_article_details .sub_item:last-child {
    margin-bottom: 0;
  }

  /* Section label (Abstract, Keywords, DOI, etc.) */
  .obj_article_details .label {
    font-family: 'DM Sans', sans-serif;
    font-size: var(--fs-2xs);
    letter-spacing: 0.14em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--red);
    margin-bottom: 0.6rem;
    display: block;
  }

  /* Section value (body text for each item) */
  .obj_article_details .value {
    font-size: var(--fs-md);
    line-height: 1.8;
    color: var(--muted);
  }

  /* Abstract specifically — slightly larger */
  .obj_article_details .item.abstract .value,
  .obj_article_details .item.abstract > p {
    font-size: var(--fs-md);
    line-height: 1.5;
    color: var(--ink);
  }

  /* DOI link */
  .obj_article_details .item.doi .value a {
    color: var(--red);
    word-break: break-all;
    font-size: var(--fs-base);
  }

  /* Keywords inline list */
  .obj_article_details .item.keywords .value {
    font-size: var(--fs-base);
    color: var(--muted);
  }

  /* References list */
  .obj_article_details .item.references .value p {
    font-size: var(--fs-base);
    line-height: 1.7;
    color: var(--muted);
    margin-bottom: 0.7rem;
    padding-left: 1.5rem;
    text-indent: -1.5rem; /* hanging indent */
  }

  /* ═══════════════════════════════════════════════════════════
    ARTICLE DETAIL — authors section
    ═══════════════════════════════════════════════════════════ */

  /* Author list reset */
  .obj_article_details .item.authors ul.authors {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 1rem;
  }

  /* Each author row */
  .obj_article_details .item.authors ul.authors li {
    display: flex;
    flex-direction: column;
    gap: 2px;
  }

  /* Author name */
  .obj_article_details .item.authors .name {
    font-family: 'Cormorant Garamond', serif;
    font-size: var(--fs-article-name);
    font-weight: 400;
    color: var(--ink);
    display: block;
  }

  /* Affiliation */
  .obj_article_details .item.authors .affiliation {
    font-size: var(--fs-sm);
    color: var(--muted);
    display: block;
  }

  /* User group role label (e.g. "Author", "Translator") */
  .obj_article_details .item.authors .userGroup {
    font-size: var(--fs-2xs);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--border);
    display: block;
  }

  /* ORCID row */
  .obj_article_details .item.authors .orcid {
    display: flex;
    align-items: center;
    gap: 5px;
    margin-top: 2px;
  }
  .obj_article_details .item.authors .orcid a {
    font-size: var(--fs-xs);
    color: #a6ce39; /* ORCID brand green */
    text-decoration: none;
  }
  .obj_article_details .item.authors .orcid a:hover {
    text-decoration: underline;
  }
  .obj_article_details .item.authors .orcid img,
  .obj_article_details .item.authors .orcid svg {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
  }

  /* Author biographies */
  .obj_article_details .item.author_bios .sub_item {
    padding-bottom: 1rem;
    border-bottom: 0.5px solid var(--border);
    margin-bottom: 1rem;
  }
  .obj_article_details .item.author_bios .sub_item:last-child {
    border-bottom: none;
    margin-bottom: 0;
  }
  .obj_article_details .item.author_bios .label {
    font-size: var(--fs-base);
    font-weight: 500;
    color: var(--ink);
    text-transform: none;
    letter-spacing: 0;
    margin-bottom: 0.4rem;
  }
  .obj_article_details .item.author_bios .value {
    font-size: var(--fs-base);
    line-height: 1.7;
    color: var(--muted);
  }

  /* ══════════════════════════════════════════════════════════════
    GALLEY LINK — obj_galley_link / obj_galley_link_supplementary
    Rendered by templates/frontend/objects/galley_link.tpl
    ══════════════════════════════════════════════════════════════ */

  /* Base button — shared by both primary and supplementary */
  a.obj_galley_link,
  a.obj_galley_link_supplementary {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 9px 18px;
    font-size: var(--fs-xs);
    font-family: 'DM Sans', sans-serif;
    font-weight: 500;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    text-decoration: none;
    border: none;
    transition: background 0.2s, color 0.2s;
    cursor: pointer;
    white-space: nowrap;
  }

  /* Primary galley — dark filled button (PDF, HTML, etc.) */
  a.obj_galley_link {
    background: var(--ink);
    color: #fff;
  }
  a.obj_galley_link:hover {
    background: var(--red);
    color: #fff;
  }

  /* Supplementary files — outlined/muted style */
  a.obj_galley_link_supplementary {
    background: none;
    color: var(--muted);
    border: 0.5px solid var(--border);
  }
  a.obj_galley_link_supplementary:hover {
    background: var(--ink);
    color: #fff;
    border-color: var(--ink);
  }

  /* PDF type — accent red left border */
  a.obj_galley_link.pdf {
    border-left: 3px solid var(--red);
  }

  /* Generic file type — accent gold left border */
  a.obj_galley_link.file,
  a.obj_galley_link_supplementary.file {
    border-left: 3px solid var(--gold);
  }

  /* Restricted state — muted + lock visual cue */
  a.obj_galley_link.restricted,
  a.obj_galley_link_supplementary.restricted {
    background: var(--panel);
    color: var(--muted);
    border: 0.5px solid var(--border);
    cursor: not-allowed;
    opacity: 0.75;
  }
  a.obj_galley_link.restricted:hover,
  a.obj_galley_link_supplementary.restricted:hover {
    background: var(--panel);
    color: var(--muted);
  }

  /* Screen reader text inside galley links — visually hidden */
  a.obj_galley_link .pkp_screen_reader,
  a.obj_galley_link_supplementary .pkp_screen_reader {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
  }

  /* Purchase price shown inside restricted + purchasable links */
  a.obj_galley_link .purchase_cost,
  a.obj_galley_link_supplementary .purchase_cost {
    font-size: var(--fs-2xs);
    font-weight: 400;
    letter-spacing: 0.08em;
    color: var(--gold);
    margin-left: 4px;
  }
  /* ═══════════════════════════════════════════════════════════
    ARTICLE DETAIL — .entry_details sidebar items
    ═══════════════════════════════════════════════════════════ */

  /* Cover image in sidebar */
  .obj_article_details .item.cover_image img {
    width: 100%;
    height: auto;
    display: block;
    border: 0.5px solid var(--border);
  }

  /* Galley download buttons */
  .obj_article_details .item.galleys ul.galleys_links,
  .obj_article_details .item.galleys ul.supplementary_galleys_links {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
  }

  .obj_article_details .item.galleys .galleys_links a,
  .obj_article_details .item.galleys .galleys_links .label {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 10px 16px;
    font-size: var(--fs-xs);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    font-weight: 500;
    background: var(--ink);
    color: #fff;
    text-decoration: none;
    border: none;
    transition: background 0.2s;
  }
  .obj_article_details .item.galleys .galleys_links a:hover {
    background: var(--red);
    color: #fff;
  }

  /* Published date + versions */
  .obj_article_details .item.published .value {
    font-size: var(--fs-base);
    color: var(--ink);
  }
  .obj_article_details .item.published .sub_item.versions ul {
    list-style: none;
    font-size: var(--fs-sm);
    color: var(--muted);
  }
  .obj_article_details .item.published .sub_item.versions a {
    color: var(--red);
  }

  /* Issue / section / category block */
  .obj_article_details .item.issue .value a.title {
    color: var(--red);
    font-size: var(--fs-base);
    text-decoration: none;
  }
  .obj_article_details .item.issue .value a.title:hover {
    text-decoration: underline;
  }
  .obj_article_details .item.issue .categories {
    list-style: none;
    font-size: var(--fs-base);
  }
  .obj_article_details .item.issue .categories a {
    color: var(--red);
  }

  /* Copyright / license block */
  .obj_article_details .item.copyright {
    background: var(--cream);
    border: 0.5px solid var(--border);
    padding: 1.2rem;
    margin-top: 0;
  }
  .obj_article_details .item.copyright p {
    font-size: var(--fs-sm);
    line-height: 1.7;
    color: var(--muted);
    margin-bottom: 0.5rem;
  }
  .obj_article_details .item.copyright a.copyright {
    font-size: var(--fs-sm);
    color: var(--red);
  }
  .obj_article_details .item.copyright img { /* CC badge */
    max-height: 24px;
    width: auto;
    margin-top: 0.4rem;
  }

  /* ═══════════════════════════════════════════════════════════
    ARTICLE SUMMARY — gaps: cover, meta wrapper, 
    published date, subtitle
    ═══════════════════════════════════════════════════════════ */

  /* Per-article cover image (optional, shows above title) */
  .obj_article_summary .cover {
    grid-column: 1 / -1;
    margin-bottom: 0.6rem;
  }
  .obj_article_summary .cover img {
    width: 100%;
    height: 120px;
    object-fit: cover;
    object-position: center top;
    display: block;
    border: 0.5px solid var(--border);
  }

  /* Subtitle inside .title link */
  .obj_article_summary .title .subtitle {
    display: block;
    font-style: italic;
    font-size: 0.9em;
    font-weight: 300;
    color: var(--muted);
    margin-top: 2px;
  }

  /* .meta wrapper — authors + pages + date as a group */
  .obj_article_summary .meta {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.3rem 1rem;
    margin-top: 0.3rem;
  }

  /* Published date inside .meta */
  .obj_article_summary .meta .published {
    font-size: var(--fs-xs);
    color: var(--border);
    letter-spacing: 0.06em;
    white-space: nowrap;
  }

  /* ── RESPONSIVE ───────────────────────────────────────── */
  @media(max-width:1000px){
    .ajms-hm-body{grid-template-columns:1fr 1fr}
    .ajms-hm-col-image{display:none}
    .ajms-footer-grid{grid-template-columns:1fr 1fr}
    .ajms-contact-body{grid-template-columns:1fr}
    .ajms-current-issue-strip{grid-template-columns:1fr}
    .ajms-ci-label{writing-mode:horizontal-tb;transform:none;padding:0.8rem 1.2rem}
  }
  @media(max-width:768px){
    :root{
      --gutter:1.25rem;
      --hero-py:3rem;
      --hero-pb:2.5rem;
      --body-pad:2.5rem var(--gutter);
      --section-gap:2rem;
    }
    .ajms-navbar{padding:0 var(--gutter)}
    .ajms-nav-menu{display:none}
    .ajms-hamburger{display:block}
    .ajms-topbar{padding:0 var(--gutter)}
    .ajms-topbar-search{display:none}
    .ajms-hm-body{grid-template-columns:1fr;border-left:none;border-right:none}
    .ajms-hm-col{border-right:none;border-bottom:0.5px solid var(--border)}
    .ajms-hm-col:last-child{border-bottom:none}
    .ajms-hm-title{font-size: var(--fs-mobile-hero)}
    .ajms-footer-grid{grid-template-columns:1fr}
  }
  @media(max-width:480px){
    .ajms-footer-bottom{flex-direction:column;text-align:center}
    .hero-btns{flex-direction:column}
    .hero-btns .btn{justify-content:center}
    .ajms-issue-card{flex-direction:column;gap:1rem}
  }

  /* ═══════════════════════════════════════════════════════════
    OJS 3.5 COMPATIBILITY & LAYOUT FIXES  (v2.4)
    ═══════════════════════════════════════════════════════════ */

  /* ── STICKY FOOTER ────────────────────────────────────────
    Footer is always pushed to the bottom of the viewport,
    even on short pages, without overlaying any content.     */
  html { height: 100%; }
  body {
    min-height: 100%;
    display: flex;
    flex-direction: column;
  }
  .pkp_structure_main {
    flex: 1 0 auto;   /* grows to fill all available space */
  }
  .ajms-footer {
    flex-shrink: 0;   /* never compressed */
    margin-top: 0;    /* no extra gap needed — flex handles it */
  }

  /* ── SEARCH PAGE ──────────────────────────────────────────
    Prevent the search container from stretching full-width  */
  .ajms-search-body {
    max-width: var(--max-content);
    margin: 0 auto;
    padding: var(--body-pad);
    box-sizing: border-box;
    width: 100%;
  }
  .ajms-search-body .ajms-articles-grid {
    margin: 0 0 var(--section-gap);
  }
  .ajms-search-form {
    display: flex;
    gap: 0;
    margin-bottom: 2.5rem;
    border: 1px solid var(--border);
    max-width: 100%;
  }
  .ajms-search-form input {
    flex: 1;
    padding: 12px 16px;
    border: none;
    outline: none;
    font-family: 'DM Sans', sans-serif;
    font-size: var(--fs-md);
    background: var(--cream);
    min-width: 0; /* prevents overflow in flex context */
  }
  .ajms-search-form .btn { border-radius: 0; flex-shrink: 0; }

  /* ── ARTICLE VIEW ─────────────────────────────────────────
    Fix spacing and responsive grid for single article page  */
  .ajms-article-body {
    max-width: var(--max-content);
    margin: 0 auto;
    padding: var(--body-pad);
    display: grid;
    grid-template-columns: 1fr 280px;
    gap: 3rem;
    align-items: start;
  }
  @media (max-width: 860px) {
    .ajms-article-body {
      grid-template-columns: 1fr;
    }
  }

  /* ── ARCHIVE / ISSUE TABS ─────────────────────────────────
    Fix spacing on issues archive page                       */
  .ajms-tab-panel {
    padding: 2rem var(--gutter);
  }
  .ajms-tab-panel-inner {
    max-width: var(--max-content);
    margin: 0 auto;
  }

  /* ── OJS NOTIFICATION / BREADCRUMB CLEANUP ────────────────
    Prevent OJS internal UI elements from breaking the layout */
  .pkp_structure_head { display: none !important; }
  .pkp_structure_sidebar { display: none !important; }

  /* ── ISSUE VIEW PAGE ──────────────────────────────────────
    Style the issue article listing OJS renders natively    */
  .pkp_page_issue .page_issue {
    max-width: var(--max-content);
    margin: 0 auto;
    padding: var(--body-pad);
  }
  .pkp_page_issue .section { margin-bottom: 2.5rem; }
  .pkp_page_issue .section h2 {
    font-family: 'Cormorant Garamond', serif;
    font-size: var(--fs-issue-title);
    font-weight: 400;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--red);
    border-bottom: 0.5px solid var(--border);
    padding-bottom: 0.6rem;
    margin-bottom: 1rem;
  }
  .pkp_page_issue .obj_article_summary {
    padding: 1rem 0;
    border-bottom: 0.5px solid var(--border);
  }
  .pkp_page_issue .obj_article_summary .title {
    font-family: 'Cormorant Garamond', serif;
    font-size: var(--fs-article-name);
    font-weight: 400;
    margin-bottom: 0.3rem;
  }
  .pkp_page_issue .obj_article_summary .title a {
    color: var(--ink);
    text-decoration: none;
  }
  .pkp_page_issue .obj_article_summary .title a:hover { color: var(--red); }
  .pkp_page_issue .obj_article_summary .authors {
    font-size: var(--fs-sm);
    color: var(--muted);
  }
  
  /* ═══════════════════════════════════════════════════════════
    CURRENT ISSUE STRIP — v2.7 (bordered card, cover + content)
    ═══════════════════════════════════════════════════════════ */

  /* Hide the old single-column strip if it still appears */
  .ajms-current-issue-strip { display: none !important; }

  /* ── Outer strip ─────────────────────────────────────────── */
  .ajms-ci-strip {
    margin: 0 var(--gutter) var(--section-gap);
    background: #fff;
    
    overflow: hidden;   /* clip child images to the border */
  }

  /* ── Left: cover image ───────────────────────────────────── */
  .ajms-ci-cover {
    background: var(--ink);
    min-height: 340px;
    position: relative;
    overflow: hidden;
  }
  .ajms-ci-cover-link {
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    inset: 0;
  }
  .ajms-ci-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    display: block;
  }

  /* Dark placeholder (used when no cover image is uploaded) */
  .ajms-ci-label-placeholder {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    height: 100%;
    min-height: 340px;
    padding: 2rem 1rem;
    font-family: 'Cormorant Garamond', serif;
    font-size: var(--fs-sub-heading);
    font-weight: 300;
    color: rgba(255,255,255,0.75);
    text-align: center;
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    letter-spacing: 0.2em;
    font-size: var(--fs-xs);
    text-transform: uppercase;
    font-family: 'DM Sans', sans-serif;
    font-weight: 500;
  }
  .ajms-ci-label-dot {
    color: rgba(255,255,255,0.25);
  }

  /* ── Right: content ──────────────────────────────────────── */
  .ajms-ci-strip .ajms-ci-content {
    padding: 2.5rem;
    display: flex;
    flex-direction: column;
  }
  .ajms-ci-vol {
    font-size: var(--fs-xs);
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--red);
    font-weight: 500;
    margin-bottom: 0.5rem;
  }
  .ajms-ci-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: var(--fs-issue-title);
    font-weight: 400;
    margin-bottom: 1rem;
    line-height: 1.2;
  }

  /* Issue description — sits between title and View Issue button */
  .ajms-ci-desc {
    font-size: var(--fs-md);
    line-height: 1.8;
    color: var(--muted);
    margin-bottom: 1.5rem;
  }

  /* View Issue button spacing */
  .ajms-ci-content > .btn {
    margin-top: auto;
    align-self: flex-start;
  }

  .ajms-ci-meta {
    font-size: var(--fs-base);
    color: var(--muted);
    margin-bottom: 1.5rem;
  }

  /* ── Article list ────────────────────────────────────────── */
  .ajms-ci-articles {
    list-style: none;
    border-top: 0.5px solid var(--border);
    padding-top: 0.5rem;
    flex: 1;
  }
  .ajms-ci-articles li {
    display: flex;
    align-items: baseline;
    gap: 1rem;
    padding: 0.7rem 0;
    border-bottom: 0.5px solid var(--border);
  }
  .ajms-ci-articles li:last-child { border-bottom: none; }

  .ajms-ci-article-num {
    font-family: 'Cormorant Garamond', serif;
    font-size: var(--fs-article-num);
    color: var(--border);
    flex-shrink: 0;
    min-width: 16px;
    text-align: right;
    line-height: 1.4;
  }
  .ajms-ci-article-body {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;        /* allow text to truncate in flex child */
  }
  a.ajms-ci-article-title,
  span.ajms-ci-article-title {
    font-size: var(--fs-base);
    font-weight: 400;
    color: var(--ink);
    text-decoration: none;
    line-height: 1.35;
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  a.ajms-ci-article-title:hover { color: var(--red); }

  .ajms-ci-article-author {
    font-size: var(--fs-sm);
    color: var(--muted);
  }
  .ajms-ci-more {
    display: inline-block;
    margin-top: 1rem;
    font-size: var(--fs-xs);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--red);
    text-decoration: none;
    font-weight: 500;
  }
  .ajms-ci-more:hover { text-decoration: underline; }

  /* ── Responsive ──────────────────────────────────────────── */
  @media (max-width: 860px) {
    .ajms-ci-strip { grid-template-columns: 160px 1fr; }
    .ajms-ci-cover,
    .ajms-ci-label-placeholder { min-height: 260px; }
  }
  @media (max-width: 600px) {
    .ajms-ci-strip { grid-template-columns: 1fr; }
    .ajms-ci-cover { min-height: 180px; }
    .ajms-ci-label-placeholder {
      writing-mode: horizontal-tb;
      transform: none;
      min-height: 60px;
      flex-direction: row;
      gap: 0.8rem;
      padding: 1rem 1.5rem;
      font-size: var(--fs-2xs);
    }
  }

  /* ═══════════════════════════════════════════════════════════
    OJS NATIVE PAGE FIXES — Archive, Issue View, Article List
    Targets OJS-rendered partials: obj_issue_summary,
    obj_article_summary, cmp_breadcrumbs, sections
    ═══════════════════════════════════════════════════════════ */

  /* ── GLOBAL: breadcrumbs ─────────────────────────────────── */
  .cmp_breadcrumbs {
    max-width: var(--max-content);
    margin: 0 auto;
    padding: 1rem var(--gutter) 0;
    font-size: var(--fs-xs);
    letter-spacing: 0.06em;
    color: var(--muted);
  }
  .cmp_breadcrumbs ol {
    list-style: none;
    display: flex;
    align-items: center;
    gap: 0.3rem;
    flex-wrap: wrap;
  }
  .cmp_breadcrumbs li { display: flex; align-items: center; gap: 0.3rem; }
  .cmp_breadcrumbs a { color: var(--muted); text-decoration: none; }
  .cmp_breadcrumbs a:hover { color: var(--red); }
  .cmp_breadcrumbs .separator { color: var(--border); }
  .cmp_breadcrumbs .current { color: var(--ink); font-weight: 500; }

  /* ── GLOBAL: suppress OJS's own h1 on pages we control ──── */
  /* These pages get AJMS hero treatment — native h1 is hidden */
  .page_issue_archive > h1,
  .page_issue > h1,
  .page_search > h1,
  .page_login > h1,
  .page_register > h1 {
    display: none !important;
  }

  /* ═══════════════════════════════════════════════════════════
    ARCHIVE PAGE  (.page_issue_archive)
    ═══════════════════════════════════════════════════════════ */

  .page_issue_archive {
    max-width: none;
    padding: 0 0 4rem;
  }

  /* Hide breadcrumbs */
  .page_issue_archive .cmp_breadcrumbs { display: none !important; }

  /* ── AJMS Hero for archive page ──────────────────────────── */
  .page_issue_archive::before {
    content: 'Issues';
    display: block;
    background: var(--ink);
    color: #fff;
    font-family: 'Cormorant Garamond', serif;
    font-size: var(--fs-hero);
    font-weight: 300;
    padding: var(--hero-py) var(--gutter) var(--hero-pb);
    margin: 0 0 2.5rem;
    letter-spacing: -0.01em;
    border-top: 3px solid var(--red);
    position: relative;
    overflow: hidden;
    box-shadow: inset 0 0 0 9999px rgba(0,0,0,0); /* keep stacking context */
  }

  /* Re-constrain content */
  .page_issue_archive .issues_archive {
    max-width: var(--max-content);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--gutter);
    padding-right: var(--gutter);
    margin-top: 0;
  }

  /* List wrapper */
  .issues_archive {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 1px;
    background: var(--border);
    border: 1px solid var(--border);
    margin-top: 2rem;
  }
  .issues_archive > li {
    background: #fff;
  }

  /* Each issue card */
  .obj_issue_summary {
    display: grid;
    grid-template-columns: 200px 1fr;
    grid-template-rows: auto 1fr auto;
    gap: 0;
  }

  /* Cover image */
  .obj_issue_summary .cover {
    display: block;
    overflow: hidden;
    grid-column: 1;
    grid-row: 1 / -1;
  }
  .obj_issue_summary .cover img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center center;
    display: block;
    opacity: 0.92;
    transition: opacity 0.2s;
  }
  .obj_issue_summary .cover:hover img { opacity: 1; }

  /* Title + series area */
  .obj_issue_summary h2 {
    /*padding: 1.5rem 1.5rem 0.3rem;*/
    font-family: 'Cormorant Garamond', serif;
    font-weight: 400;
    font-size: var(--fs-issue-num);
    line-height: 1.2;
    grid-column: 2;
  }
  .obj_issue_summary h2 a.title {
    color: var(--ink);
    text-decoration: none;
    display: block;
  }
  .obj_issue_summary h2 a.title:hover { color: var(--red); }
  .obj_issue_summary .series {
    font-size: var(--fs-xs);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--red);
    font-weight: 500;
    font-family: 'DM Sans', sans-serif;
    margin-top: 0.3rem;
  }

  /* Description */
  .obj_issue_summary .description {
    padding: 0.5rem 1.5rem 1.5rem;
    font-size: var(--fs-base);
    line-height: 1.7;
    color: var(--muted);
    grid-column: 2;
    align-self: start;
  }
  .obj_issue_summary .description p { margin-bottom: 0.5rem; }
  .obj_issue_summary .description p:last-child { margin-bottom: 0; }

  /* Mobile — stacked */
  @media (max-width: 600px) {
    .obj_issue_summary {
      grid-template-columns: 1fr;
      grid-template-rows: auto;
      min-height: unset;
    }

    .obj_issue_summary .cover {
      grid-column: 1;
      grid-row: auto;
      display: flex;
      align-items: center;
      justify-content: center;
      overflow: visible;
    }

    .obj_issue_summary .cover img {
      width: 100%;
      height: auto;
      object-fit: contain;
      object-position: center;
      opacity: 1;
    }
  }

  /* ═══════════════════════════════════════════════════════════
    ISSUE VIEW PAGE  (.page_issue)
    ═══════════════════════════════════════════════════════════ */

  .page_issue {
    max-width: none;
    padding: 0 0 4rem;
  }

  /* Hide breadcrumbs */
  .page_issue .cmp_breadcrumbs { display: none !important; }

  /* ── AJMS Hero for issue view page ───────────────────────── */
  .page_issue::before {
    content: 'Issue';
    display: block;
    background: var(--ink);
    color: #fff;
    font-family: 'Cormorant Garamond', serif;
    font-size: var(--fs-hero);
    font-weight: 300;
    padding: var(--hero-py) var(--gutter) var(--hero-pb);
    margin: 0 0 2.5rem;
    letter-spacing: -0.01em;
    border-top: 3px solid var(--red);
  }

  /* Re-constrain content */
  .page_issue .issue_header,
  .page_issue .sections {
    max-width: var(--max-content);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--gutter);
    padding-right: var(--gutter);
  }

  /* Issue header block (cover + description) */
  .page_issue .issue_header {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: 2.5rem;
    padding: 2rem 0 2.5rem;
    border-bottom: 1px solid var(--border);
    margin-bottom: 2.5rem;
  }
  .page_issue .issue_cover img,
  .page_issue .cover img {
    width: 100%;
    height: auto;
    display: block;
    border: 0.5px solid var(--border);
  }

  /* Issue description */
  .page_issue .issue_description h1,
  .page_issue > .description,
  .page_issue .obj_issue_full_meta .description {
    font-size: var(--fs-md);
    line-height: 1.8;
    color: var(--muted);
    margin-bottom: 1rem;
  }

  /* Published date */
  .page_issue .published {
    font-size: var(--fs-xs);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--muted);
    margin-bottom: 2rem;
  }

  /* ── Section headings ("Articles", etc.) ── */
  .page_issue .section > h2,
  .page_issue .sections .section h2 {
    font-family: 'DM Sans', sans-serif;
    font-size: var(--fs-2xs);
    letter-spacing: 0.18em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--red);
    border-bottom: 1px solid var(--border);
    padding-bottom: 0.6rem;
    margin: 2.5rem 0 0;
  }

  /* ── Article summary (obj_article_summary) ── */
  .obj_article_summary {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 0.5rem 1.5rem;
    align-items: baseline;
    padding: 1.1rem 0;
    border-bottom: 0.5px solid var(--border);
  }
  .obj_article_summary:last-child { border-bottom: none; }

  /* Article title */
  .obj_article_summary .title {
    grid-column: 1;
    font-family: 'Cormorant Garamond', serif;
    font-size: var(--fs-article-link);
    font-weight: 400;
    line-height: 1.3;
    margin: 0 0 0.3rem;
  }
  .obj_article_summary .title a {
    color: var(--ink);
    text-decoration: none;
  }
  .obj_article_summary .title a:hover { color: var(--red); }

  /* Authors — strip the raw "(Author)" OJS appends */
  .obj_article_summary .authors {
    grid-column: 1;
    font-size: var(--fs-sm);
    color: var(--muted);
    line-height: 1.4;
  }
  /* Hide the "(Author)" role label OJS appends */
  .obj_article_summary .authors .role { display: none; }

  /* Page numbers */
  .obj_article_summary .pages {
    grid-column: 2;
    grid-row: 1 / 3;
    font-size: var(--fs-xs);
    color: var(--border);
    white-space: nowrap;
    align-self: center;
    letter-spacing: 0.04em;
  }

  /* Galley links (PDF, HTML) */
  .obj_article_summary .galleys_links {
    grid-column: 1 / -1;
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-top: 0.4rem;
  }
  .obj_article_summary .galleys_links a,
  .obj_article_summary .galleys_links .label {
    display: inline-block;
    padding: 3px 10px;
    font-size: var(--fs-2xs);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    font-weight: 500;
    background: var(--panel);
    color: var(--ink);
    text-decoration: none;
    border: 0.5px solid var(--border);
    transition: background 0.2s, color 0.2s;
  }
  .obj_article_summary .galleys_links a:hover {
    background: var(--ink);
    color: #fff;
  }

  /* Issue view responsive */
  @media (max-width: 768px) {
    .page_issue .issue_header {
      grid-template-columns: 120px 1fr;
      gap: 1.5rem;
    }
    .obj_article_summary {
      grid-template-columns: 1fr;
    }
    .obj_article_summary .pages {
      grid-column: 1;
      grid-row: auto;
    }
  }

  /* ═══════════════════════════════════════════════════════════
    ISSUE TOC  (.obj_issue_toc)
    Targets issue_toc.tpl using OJS-native classes only —
    no new markup needed.
    ═══════════════════════════════════════════════════════════ */

  /* ── Root wrapper ────────────────────────────────────────── */
  .obj_issue_toc {
    max-width: var(--max-content);
    margin: 0 auto;
    padding: 0 var(--gutter) 4rem;
  }

  /* ── .heading block (cover image + description + pub IDs + date) */
  .obj_issue_toc .heading {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: 2.5rem;
    padding-bottom: 2.5rem;
    border-bottom: 1px solid var(--border);
    margin-bottom: 2.5rem;
    align-items: start;
  }
  /* Collapse to single column when no cover image is present */
  .obj_issue_toc .heading:not(:has(.cover)) {
    grid-template-columns: 1fr;
  }

  /* Cover image */
  .obj_issue_toc .heading .cover img {
    width: 100%;
    height: auto;
    display: block;
    border: 0.5px solid var(--border);
  }

  /* Issue description text */
  .obj_issue_toc .heading .description {
    font-size: var(--fs-md);
    line-height: 1.8;
    color: var(--muted);
    margin-bottom: 1rem;
  }
  .obj_issue_toc .heading .description p { margin-bottom: 0.8rem; }
  .obj_issue_toc .heading .description p:last-child { margin-bottom: 0; }

  /* ── Pub ID block (URN, DOI, etc.) ──────────────────────── */
  .obj_issue_toc .heading .pub_id {
    font-size: var(--fs-sm);
    color: var(--muted);
    margin-bottom: 0.5rem;
    display: flex;
    align-items: baseline;
    gap: 0.3rem;
  }
  .obj_issue_toc .heading .pub_id .type {
    font-size: var(--fs-2xs);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    font-weight: 500;
    color: var(--red);
    flex-shrink: 0;
  }
  .obj_issue_toc .heading .pub_id .id a {
    color: var(--ink);
    text-decoration: none;
    word-break: break-all;
  }
  .obj_issue_toc .heading .pub_id .id a:hover { color: var(--red); }

  /* ── Published date ──────────────────────────────────────── */
  .obj_issue_toc .heading .published {
    font-size: var(--fs-xs);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--muted);
    margin-top: 0.8rem;
    display: flex;
    align-items: baseline;
    gap: 0.4rem;
  }
  .obj_issue_toc .heading .published .label {
    color: var(--border);
    font-weight: 500;
  }
  .obj_issue_toc .heading .published .value {
    color: var(--ink);
  }

  /* ── Full-issue galley download block ────────────────────── */
  .obj_issue_toc .galleys {
    margin-bottom: 2.5rem;
    padding-bottom: 2rem;
    border-bottom: 0.5px solid var(--border);
  }
  .obj_issue_toc .galleys h2 {
    font-family: 'DM Sans', sans-serif;
    font-size: var(--fs-2xs);
    letter-spacing: 0.16em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--muted);
    margin-bottom: 0.8rem;
  }
  .obj_issue_toc .galleys .galleys_links {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    list-style: none;
  }
  .obj_issue_toc .galleys .galleys_links a,
  .obj_issue_toc .galleys .galleys_links .label {
    display: inline-block;
    padding: 5px 14px;
    font-size: var(--fs-2xs);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    font-weight: 500;
    background: var(--panel);
    color: var(--ink);
    text-decoration: none;
    border: 0.5px solid var(--border);
    transition: background 0.2s, color 0.2s;
  }
  .obj_issue_toc .galleys .galleys_links a:hover {
    background: var(--ink);
    color: #fff;
  }

  /* ── .sections wrapper ───────────────────────────────────── */
  .obj_issue_toc .sections { /* no extra padding — .obj_issue_toc already handles it */ }

  /* ── Section heading (e.g. "Articles", "Reviews") ────────── */
  .obj_issue_toc .section > h2 {
    font-family: 'DM Sans', sans-serif;
    font-size: var(--fs-2xs);
    letter-spacing: 0.18em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--red);
    border-bottom: 1px solid var(--border);
    padding-bottom: 0.6rem;
    margin: 2.5rem 0 0;
  }
  /* First section heading needs no top margin */
  .obj_issue_toc .sections .section:first-child > h2 { margin-top: 0; }

  /* ── Article list ul ─────────────────────────────────────── */
  .obj_issue_toc .cmp_article_list.articles {
    list-style: none;
    margin: 0;
    padding: 0;
  }
  .obj_issue_toc .cmp_article_list.articles > li {
    /* obj_article_summary inside handles its own padding/border */
  }

  /* ── TOC responsive ──────────────────────────────────────── */
  @media (max-width: 768px) {
    .obj_issue_toc .heading {
      grid-template-columns: 120px 1fr;
      gap: 1.5rem;
    }
  }
  @media (max-width: 480px) {
    .obj_issue_toc .heading {
      grid-template-columns: 1fr;
    }
    .obj_issue_toc .heading .cover {
      max-width: 180px;
    }
  }

  /* ═══════════════════════════════════════════════════════════
    ISSUE VIEW PAGE — custom template classes (view.tpl)
    ═══════════════════════════════════════════════════════════ */

  .ajms-issue-vol-label {
    font-size: var(--fs-xs);
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--gold);
    font-weight: 500;
    margin-bottom: 0.8rem;
  }

  .ajms-issue-view-body {
    max-width: var(--max-content);
    margin: 0 auto;
    padding: 2.5rem var(--gutter) 4rem;
  }

  /* Cover + description row */
  .ajms-issue-view-top {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: 2.5rem;
    padding-bottom: 2.5rem;
    border-bottom: 1px solid var(--border);
    margin-bottom: 2.5rem;
  }
  .ajms-issue-view-cover img {
    width: 100%;
    height: auto;
    display: block;
    border: 0.5px solid var(--border);
  }
  .ajms-issue-view-desc {
    font-size: var(--fs-md);
    line-height: 1.8;
    color: var(--muted);
    margin-bottom: 1rem;
  }
  .ajms-issue-view-desc p { margin-bottom: 0.8rem; }
  .ajms-issue-view-date {
    font-size: var(--fs-xs);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--border);
  }

  /* When no cover image: full-width description */
  .ajms-issue-view-top:has(.ajms-issue-view-meta:only-child) {
    grid-template-columns: 1fr;
  }

  /* Section headings */
  .ajms-issue-section { margin-bottom: 2.5rem; }
  .ajms-issue-section-title {
    font-family: 'DM Sans', sans-serif;
    font-size: var(--fs-2xs);
    letter-spacing: 0.18em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--red);
    border-bottom: 1px solid var(--border);
    padding-bottom: 0.6rem;
    margin-bottom: 0;
  }

  /* Article rows */
  .ajms-issue-article-list { list-style: none; }
  .ajms-issue-article-row {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 1rem 1.5rem;
    align-items: start;
    padding: 1.1rem 0;
    border-bottom: 0.5px solid var(--border);
  }
  .ajms-issue-article-row:last-child { border-bottom: none; }

  .ajms-iar-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: var(--fs-article-name);
    font-weight: 400;
    line-height: 1.3;
    margin: 0 0 0.35rem;
  }
  .ajms-iar-title a {
    color: var(--ink);
    text-decoration: none;
  }
  .ajms-iar-title a:hover { color: var(--red); }
  .ajms-iar-authors {
    font-size: var(--fs-sm);
    color: var(--muted);
    margin: 0;
  }

  .ajms-iar-aside {
    text-align: right;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.5rem;
    flex-shrink: 0;
  }
  .ajms-iar-pages {
    font-size: var(--fs-xs);
    color: var(--border);
    letter-spacing: 0.04em;
    white-space: nowrap;
  }
  .ajms-iar-galleys { display: flex; gap: 0.4rem; flex-wrap: wrap; justify-content: flex-end; }
  .ajms-galley-btn {
    display: inline-block;
    padding: 3px 10px;
    font-size: var(--fs-2xs);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    font-weight: 500;
    background: var(--panel);
    color: var(--ink);
    text-decoration: none;
    border: 0.5px solid var(--border);
    transition: background 0.2s, color 0.2s;
  }
  .ajms-galley-btn:hover { background: var(--ink); color: #fff; }

  .ajms-issue-back {
    margin-top: 2rem;
    padding-top: 2rem;
    border-top: 0.5px solid var(--border);
  }

  /* Responsive */
  @media (max-width: 768px) {
    .ajms-issue-view-top {
      grid-template-columns: 120px 1fr;
      gap: 1.5rem;
    }
    .ajms-issue-article-row {
      grid-template-columns: 1fr;
    }
    .ajms-iar-aside { align-items: flex-start; text-align: left; }
  }
  @media (max-width: 480px) {
    .ajms-issue-view-top { grid-template-columns: 1fr; }
  }
  /* ═══════════════════════════════════════════════════════════
    SEARCH PAGE  — exact selectors from live HTML
    .page.page_search inside .pkp_structure_content
    ═══════════════════════════════════════════════════════════ */

  .page_search {
    max-width: none;
    padding: 0 0 4rem;
  }

  /* Hide breadcrumbs */
  .page_search .cmp_breadcrumbs { display: none !important; }

  /* ── AJMS Hero for search page ───────────────────────────── */
  .page_search::before {
    content: 'Search';
    display: block;
    background: var(--ink);
    color: #fff;
    font-family: 'Cormorant Garamond', serif;
    font-size: var(--fs-hero);
    font-weight: 300;
    padding: var(--hero-py) var(--gutter) var(--hero-pb);
    margin: 0 0 2.5rem;
    letter-spacing: -0.01em;
    border-top: 3px solid var(--gold);
  }

  /* Re-constrain content below hero */
  .page_search .cmp_form,
  .page_search h2,
  .page_search ul.search_results,
  .page_search [role="status"] {
    max-width: var(--max-content);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--gutter);
    padding-right: var(--gutter);
  }

  /* Main search input row */
  .page_search .search_input {
    display: flex;
    align-items: center;
    gap: 0;
    margin-bottom: 1.5rem;
    border: 1px solid var(--border);
  }
  .page_search .search_input input.query {
    flex: 1;
    padding: 12px 16px;
    border: none;
    outline: none;
    font-family: 'DM Sans', sans-serif;
    font-size: var(--fs-md);
    color: var(--ink);
    background: var(--cream);
    min-width: 0;
  }
  .page_search .search_input input.query:focus {
    background: #fff;
  }

  /* Advanced filters fieldset */
  .page_search fieldset.search_advanced {
    border: 0.5px solid var(--border);
    padding: 1.5rem 2rem 2rem;
    margin-bottom: 1.5rem;
    background: var(--cream);
  }
  .page_search fieldset.search_advanced > legend {
    font-size: var(--fs-2xs);
    letter-spacing: 0.14em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--muted);
    padding: 0 0.6rem;
  }

  /* Date range — two fieldsets side by side */
  .page_search .date_range {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
    margin-bottom: 1.5rem;
  }
  .page_search .date_range fieldset {
    border: 0.5px solid var(--border);
    padding: 1rem 1.2rem;
    background: #fff;
  }
  .page_search .date_range fieldset legend {
    font-size: var(--fs-2xs);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    font-weight: 500;
    color: var(--muted);
    padding: 0 0.4rem;
  }
  .page_search .date_range label {
    font-size: var(--fs-xs);
    color: var(--muted);
    margin-right: 4px;
  }
  .page_search .date_range select {
    padding: 6px 10px;
    border: 1px solid var(--border);
    background: var(--cream);
    font-family: 'DM Sans', sans-serif;
    font-size: var(--fs-base);
    color: var(--ink);
    outline: none;
    border-radius: 0;
    -webkit-appearance: none;
    margin-right: 0.5rem;
    cursor: pointer;
  }
  .page_search .date_range select:focus { border-color: var(--ink); }

  /* By author row */
  .page_search .author {
    display: flex;
    align-items: center;
    gap: 1rem;
  }
  .page_search .author label.label {
    font-size: var(--fs-xs);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    font-weight: 500;
    color: var(--muted);
    white-space: nowrap;
  }
  .page_search .author input[type="text"] {
    width: 260px;
    max-width: 100%;
    padding: 9px 14px;
    border: 1px solid var(--border);
    background: #fff;
    font-family: 'DM Sans', sans-serif;
    font-size: var(--fs-md);
    color: var(--ink);
    outline: none;
  }
  .page_search .author input:focus { border-color: var(--ink); }

  /* Search submit button */
  .page_search .submit {
    margin-top: 1.5rem;
  }
  .page_search .submit button,
  .page_search button[type="submit"] {
    background: var(--ink);
    color: #fff;
    border: none;
    padding: 12px 32px;
    font-size: var(--fs-sm);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    font-weight: 500;
    font-family: 'DM Sans', sans-serif;
    cursor: pointer;
    transition: background 0.2s;
  }
  .page_search .submit button:hover { background: var(--red); }

  /* Screen-reader-only results heading — keep hidden */
  .page_search h2.pkp_screen_reader { display: none; }

  /* "No Results" / notification */
  .page_search .cmp_notification {
    margin-top: 2rem;
    padding: 1.2rem 1.5rem;
    border: 0.5px solid var(--border);
    font-size: var(--fs-md);
    color: var(--muted);
    background: var(--cream);
  }
  .page_search .cmp_notification.notice::before {
    content: '— ';
    color: var(--border);
  }

  /* Search results list */
  .page_search ul.search_results { list-style: none; margin-top: 1.5rem; }
  .page_search ul.search_results li { 
    padding: 1rem 0; 
    border-bottom: 0.5px solid var(--border); 
  }

  /* Search responsive */
  @media (max-width: 600px) {
    .page_search .date_range { grid-template-columns: 1fr; }
    .page_search .author { flex-direction: column; align-items: flex-start; }
    .page_search .author input[type="text"] { width: 100%; }
  }


  /* ═══════════════════════════════════════════════════════════
    LOGIN PAGE  — exact selectors from live HTML
    .page.page_login inside .pkp_structure_content
    ═══════════════════════════════════════════════════════════ */

  .page_login {
    max-width: none;
    padding: 0 0 4rem;
  }

  /* Hide breadcrumbs */
  .page_login .cmp_breadcrumbs { display: none !important; }

  /* ── AJMS Hero for login page ────────────────────────────── */
  .page_login::before {
    content: 'Login';
    display: block;
    background: var(--ink);
    color: #fff;
    font-family: 'Cormorant Garamond', serif;
    font-size: var(--fs-hero);
    font-weight: 300;
    padding: var(--hero-py) var(--gutter) var(--hero-pb);
    margin: 0 0 2.5rem;
    letter-spacing: -0.01em;
    border-top: 3px solid var(--gold);
  }

  /* Re-constrain form content */
  .page_login > p,
  .page_login > form {
    max-width: 520px;
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--gutter);
    padding-right: var(--gutter);
  }

  /* Required fields note */
  .page_login > p {
    font-size: var(--fs-sm);
    color: var(--muted);
    margin-bottom: 1.5rem;
  }

  /* Hide screen-reader legend */
  .page_login legend.pkp_screen_reader { 
    position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0);
  }

  /* Fieldset container */
  .page_login fieldset.fields {
    border: 0.5px solid var(--border);
    padding: 2rem;
    background: var(--cream);
  }

  /* Each field div */
  .page_login .username,
  .page_login .password {
    margin-bottom: 1.4rem;
  }

  /* Labels — span.label inside <label> */
  .page_login span.label {
    display: block;
    font-size: var(--fs-xs);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    font-weight: 500;
    color: var(--muted);
    margin-bottom: 6px;
  }
  .page_login span.required { color: var(--red); }
  .page_login span.pkp_screen_reader {
    position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0);
  }

  /* Inputs */
  .page_login input[type="text"],
  .page_login input[type="password"] {
    display: block;
    width: 100%;
    padding: 11px 14px;
    border: 1px solid var(--border);
    background: #fff;
    font-family: 'DM Sans', sans-serif;
    font-size: var(--fs-md);
    color: var(--ink);
    outline: none;
    border-radius: 0;
    transition: border-color 0.2s;
  }
  .page_login input[type="text"]:focus,
  .page_login input[type="password"]:focus { border-color: var(--ink); }

  /* Forgot password link — sits inside the <label> after the input */
  .page_login .password a {
    display: inline-block;
    margin-top: 6px;
    font-size: var(--fs-sm);
    color: var(--red);
    text-decoration: none;
  }
  .page_login .password a:hover { text-decoration: underline; }

  /* Remember me checkbox */
  .page_login .remember {
    margin-bottom: 1.8rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
  }
  .page_login .remember input[type="checkbox"] { 
    width: 16px; height: 16px; cursor: pointer; accent-color: var(--ink); 
  }
  .page_login .remember span.label {
    display: inline;
    font-size: var(--fs-base);
    text-transform: none;
    letter-spacing: 0;
    font-weight: 400;
    color: var(--ink);
    margin: 0;
  }

  /* Buttons row */
  .page_login .buttons {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    margin-top: 0.5rem;
  }
  .page_login button.submit {
    background: var(--ink);
    color: #fff;
    border: none;
    padding: 12px 32px;
    font-size: var(--fs-sm);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    font-weight: 500;
    font-family: 'DM Sans', sans-serif;
    cursor: pointer;
    transition: background 0.2s;
  }
  .page_login button.submit:hover { background: var(--red); }

  /* Register link beside submit */
  .page_login a.register {
    font-size: var(--fs-sm);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    font-weight: 500;
    color: var(--red);
    text-decoration: none;
  }
  .page_login a.register:hover { text-decoration: underline; }


  /* ═══════════════════════════════════════════════════════════
    REGISTER PAGE  — mirrors login structure
    .page.page_register inside .pkp_structure_content
    ═══════════════════════════════════════════════════════════ */

  .page_register {
    max-width: none;
    padding: 0 0 4rem;
  }

  /* Hide breadcrumbs */
  .page_register .cmp_breadcrumbs { display: none !important; }

  /* ── AJMS Hero for register page ─────────────────────────── */
  .page_register::before {
    content: 'Register';
    display: block;
    background: var(--ink);
    color: #fff;
    font-family: 'Cormorant Garamond', serif;
    font-size: var(--fs-hero);
    font-weight: 300;
    padding: var(--hero-py) var(--gutter) var(--hero-pb);
    margin: 0 0 2.5rem;
    letter-spacing: -0.01em;
    border-top: 3px solid var(--gold);
  }

  /* Full-bleed hero */
  .page_register > h1 {
    background: var(--ink);
    color: #fff;
    font-family: 'Cormorant Garamond', serif;
    font-size: var(--fs-hero);
    font-weight: 300;
    padding: var(--hero-py) var(--gutter) var(--hero-pb);
    margin: 0 0 2.5rem;
    letter-spacing: -0.01em;
    position: relative;
    overflow: hidden;
  }
  .page_register > h1::before {
    content: '';
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(
      135deg,
      rgba(255,255,255,0.015) 0px,
      rgba(255,255,255,0.015) 1px,
      transparent 1px,
      transparent 40px
    );
    pointer-events: none;
  }

  /* Re-constrain form content */
  .page_register > p,
  .page_register > form {
    max-width: 640px;
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--gutter);
    padding-right: var(--gutter);
  }
  .page_register > p { font-size: var(--fs-sm); color: var(--muted); margin-bottom: 1.5rem; }

  .page_register fieldset {
    border: 0.5px solid var(--border);
    padding: 2rem;
    background: var(--cream);
    margin-bottom: 1.5rem;
  }
  .page_register legend {
    font-size: var(--fs-xs);
    letter-spacing: 0.14em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--muted);
    padding: 0 0.5rem;
  }
  .page_register legend.pkp_screen_reader {
    position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0);
  }

  /* Field wrappers */
  .page_register .given_name,
  .page_register .family_name,
  .page_register .affiliation,
  .page_register .country,
  .page_register .email,
  .page_register .username,
  .page_register .password,
  .page_register .password2 { margin-bottom: 1.2rem; }

  .page_register span.label {
    display: block;
    font-size: var(--fs-xs);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    font-weight: 500;
    color: var(--muted);
    margin-bottom: 6px;
  }
  .page_register span.required { color: var(--red); }
  .page_register span.pkp_screen_reader {
    position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0);
  }

  .page_register input[type="text"],
  .page_register input[type="email"],
  .page_register input[type="password"],
  .page_register select,
  .page_register textarea {
    display: block;
    width: 100%;
    padding: 11px 14px;
    border: 1px solid var(--border);
    background: #fff;
    font-family: 'DM Sans', sans-serif;
    font-size: var(--fs-md);
    color: var(--ink);
    outline: none;
    border-radius: 0;
    -webkit-appearance: none;
    transition: border-color 0.2s;
  }
  .page_register input:focus,
  .page_register select:focus,
  .page_register textarea:focus { border-color: var(--ink); }

  /* Checkbox rows (Privacy options) */
  .page_register .checkbox label {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    cursor: pointer;
  }
  .page_register .checkbox input[type="checkbox"] {
    width: 16px; height: 16px; flex-shrink: 0;
    accent-color: var(--ink); margin-top: 2px;
    display: inline;
  }
  .page_register .checkbox span.label {
    display: inline;
    font-size: var(--fs-base);
    text-transform: none;
    letter-spacing: 0;
    font-weight: 400;
    color: var(--ink);
    margin: 0;
  }
  .page_register .checkbox { margin-bottom: 1rem; }
  .page_register a { color: var(--red); text-decoration: none; }
  .page_register a:hover { text-decoration: underline; }

  /* Buttons */
  .page_register .buttons {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    margin-top: 1.5rem;
  }
  .page_register button[type="submit"],
  .page_register input[type="submit"] {
    background: var(--ink);
    color: #fff;
    border: none;
    padding: 12px 32px;
    font-size: var(--fs-sm);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    font-weight: 500;
    font-family: 'DM Sans', sans-serif;
    cursor: pointer;
    transition: background 0.2s;
  }
  .page_register button[type="submit"]:hover { background: var(--red); }
  .page_register a.login {
    font-size: var(--fs-sm);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    font-weight: 500;
    color: var(--red);
    text-decoration: none;
  }
  .page_register a.login:hover { text-decoration: underline; }
  
.medu-neter-icon {
  max-height: 16px;
  width: auto; /* keeps aspect ratio */
}