/* ============================================================
   Al-Nakib Journal Theme — OJS 3.5
   Al-Nakib LTD · Authoritative / institutional
   Navy + Brass · Scholarly serif · Full RTL (Arabic)
   Webfonts (Spectral / Source Serif 4 / Amiri / IBM Plex Mono) are loaded via a
   <link rel="stylesheet"> emitted into <head> by the plugin (parallel fetch),
   not an @import here (which would chain behind this file's own download).
   ============================================================ */

:root{
  /* Navy scale */
  --navy-950:#06152b;
  --navy-900:#0a1f3c;
  --navy-800:#102a4c;
  --navy-700:#163a63;
  --navy-600:#1f4d7e;
  --navy-500:#2d6098;
  --navy-300:#7ea3c4;
  --navy-200:#aac3d9;
  --navy-100:#d6e2ee;

  /* Brass / gold accent */
  --brass-700:#7d5f2a;
  --brass-600:#a6812f;
  --brass-500:#b8973f;
  --brass-400:#cdae5e;
  --brass-100:#efe4c8;

  /* Paper neutrals (warm) */
  --paper:#faf8f3;
  --paper-2:#f3efe6;
  --paper-3:#ece6da;
  --card:#ffffff;
  --line:#ddd6c8;
  --line-soft:#e7e1d4;

  /* Ink */
  --ink:#1c2330;
  --ink-2:#3c4150;
  --ink-3:#5e6373;
  --ink-mute:#6a6e7c;

  /* Semantic */
  --bg:var(--paper);
  --primary:var(--navy-700);
  --primary-deep:var(--navy-900);
  --accent:var(--brass-600);
  --link:var(--navy-600);
  --link-hover:var(--brass-700);
  --primary-soft:color-mix(in srgb,var(--primary) 6%,transparent);

  /* Type */
  --serif:"Spectral",Georgia,"Times New Roman",serif;
  --body:"Source Serif 4","Spectral",Georgia,serif;
  --arabic:"Amiri","Source Serif 4",serif;
  --mono:"IBM Plex Mono",ui-monospace,monospace;

  /* Metrics */
  --wrap:1200px;
  --gutter:40px;
  --radius:3px;
  --shadow-sm:0 1px 2px rgba(10,31,60,.06),0 1px 3px rgba(10,31,60,.05);
  --shadow:0 2px 8px rgba(10,31,60,.08),0 8px 24px rgba(10,31,60,.06);
  --shadow-lg:0 12px 34px rgba(10,31,60,.16),0 5px 12px rgba(10,31,60,.08);
  --shadow-brass:0 8px 22px rgba(166,129,47,.30);

  /* Motion tokens — one easing + a 3-step duration scale so transitions/
     animations stay coherent across components (all gated by the global
     prefers-reduced-motion rule further down). */
  --ease:cubic-bezier(.22,.61,.36,1);
  --t-fast:.14s;
  --t:.2s;
  --t-slow:.55s;
  /* Vertical rhythm between major sections in the main content column. */
  --section-gap:2.4rem;
  /* Space between stacked sidebar widgets (admin-editable). */
  --sidebar-gap:26px;

  /* Native UI follows the active theme: scrollbars, the page canvas, and the
     default rendering of form controls switch to dark when data-theme=dark
     (the dark override sets color-scheme:dark). Without this, native widgets
     and the scrollbar stay light and clash on the dark canvas. */
  color-scheme:light;
  /* Tint native checkboxes/radios/range/progress on OJS forms to the brand. */
  accent-color:var(--navy-600);
}

/* ---------- Reset / base ---------- */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
/* Refined brand scrollbar — recolours through palette vars, so it follows
   light/dark automatically alongside color-scheme. Firefox uses
   scrollbar-color; WebKit/Blink use the pseudo-elements. */
html{scrollbar-color:var(--line) transparent;}
::-webkit-scrollbar{width:12px;height:12px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:var(--paper-3);border:3px solid var(--bg);border-radius:8px;}
::-webkit-scrollbar-thumb:hover{background:var(--brass-500);}
body{
  margin:0;
  font-family:var(--body);
  font-size:var(--fontsize,17px);
  line-height:var(--leading,1.65);
  color:var(--ink);
  background:var(--bg);
  font-variant-ligatures:common-ligatures;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
:lang(ar),[dir="rtl"]{font-family:var(--arabic);}
[dir="rtl"] body,html[dir="rtl"]{font-family:var(--arabic);}
h1,h2,h3,h4,h5{font-family:var(--serif);font-weight:600;color:var(--primary-deep);line-height:1.18;margin:0 0 .5em;letter-spacing:-.01em;}
[dir="rtl"] h1,[dir="rtl"] h2,[dir="rtl"] h3,[dir="rtl"] h4,[dir="rtl"] h5{font-family:var(--arabic);letter-spacing:0;}
p{margin:0 0 1em;text-wrap:pretty;}
a{color:var(--link);text-decoration:none;text-underline-offset:2px;}
a:hover{color:var(--link-hover);text-decoration:underline;text-decoration-thickness:1px;}
img{max-width:100%;display:block;}
/* Responsive media and authored content must stay inside the journal canvas,
   including long identifiers, URLs, preformatted text and embedded media. */
iframe,video,embed,object{max-inline-size:100%;}
pre{max-inline-size:100%;overflow:auto;}
.alnakib-rich,.prose,.reading,.references,.cite-text{overflow-wrap:anywhere;}
hr{border:0;border-top:1px solid var(--line);margin:2rem 0;}
::selection{background:var(--brass-100);color:var(--navy-900);}

.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter);}
.mono{font-family:var(--mono);}
.muted{color:var(--ink-3);}

/* eyebrow / institutional label */
.eyebrow{
  font-family:var(--serif);
  font-size:.72rem;
  font-weight:600;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--accent);
  display:inline-flex;align-items:center;gap:.6em;
}
[dir="rtl"] .eyebrow{font-family:var(--arabic);letter-spacing:.04em;text-transform:none;font-weight:700;}
.eyebrow::after{content:"";flex:0 0 28px;height:1px;background:var(--accent);opacity:.5}

.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:1.4rem;padding-bottom:.7rem;border-bottom:2px solid var(--navy-800);}
.section-head h2{margin:0;font-size:1.5rem;}
.section-head .more{font-size:.82rem;font-family:var(--serif);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);}
[dir="rtl"] .section-head .more{text-transform:none;font-family:var(--arabic);}

/* ============================================================
   TOP UTILITY BAR
   ============================================================ */
.util-bar{background:var(--navy-950);color:var(--navy-100);font-size:.78rem;}
.util-bar .wrap{display:flex;align-items:center;justify-content:space-between;min-height:38px;gap:1rem;}
.util-bar a{color:var(--navy-100);}
.util-bar a:hover{color:#fff;}
.util-left{display:flex;align-items:center;gap:1.1rem;font-family:var(--mono);letter-spacing:.02em;color:var(--navy-300);}
.util-left .issn{display:flex;gap:.5rem;}
/* Manager-editable utility-bar text (left + right). Prose-friendly font that
   overrides the .util-left monospace; inline links inherit the bar's colours. */
.util-text{font-family:var(--serif);letter-spacing:.02em;color:var(--navy-200);overflow-wrap:anywhere;}
[dir="rtl"] .util-text{font-family:var(--arabic);}
.util-text a{color:inherit;text-decoration:underline;text-underline-offset:2px;}
.util-text a:hover{color:#fff;}
.util-text--right{margin-inline-end:.5rem;color:var(--navy-300);}
.util-right{display:flex;align-items:center;gap:.2rem;}
.util-right .u-link{padding:.35rem .7rem;font-family:var(--serif);letter-spacing:.03em;}
[dir="rtl"] .util-right .u-link,[dir="rtl"] .lang-toggle{font-family:var(--arabic);}
.lang-toggle{display:inline-flex;border:1px solid rgba(255,255,255,.18);border-radius:2px;overflow:hidden;margin-inline-start:.4rem;}
/* The switcher is rendered as <a> links (see header.tpl + the .lang-toggle a
   block in the OJS-bridge section below, which also styles .current). */
.lang-toggle a:lang(ar){font-family:var(--arabic);font-size:.95rem;}

/* ============================================================
   MASTHEAD
   ============================================================ */
.masthead{background:linear-gradient(180deg,var(--navy-800),var(--navy-900));color:#fff;position:relative;overflow:hidden;border-bottom:3px solid var(--brass-600);}
.masthead::after{content:"";position:absolute;inset-block:0;inset-inline-end:-60px;width:420px;background:var(--alnakib-mark,url('assets/logo-mark-white.png')) no-repeat center/contain;opacity:.05;pointer-events:none;}
.masthead .wrap{display:flex;align-items:center;gap:var(--header-col-gap,1.6rem);padding-block:var(--masthead-pad,22px);position:relative;z-index:1;}
.brand-logo{flex:0 0 auto;height:var(--logo-h,72px);}
.brand-logo img{height:100%;width:auto;}
/* The dark-coloured logo variant is for paper and light backgrounds: shown in
   print, or when the masthead carries .masthead--light (custom CSS hook). */
.brand-logo__img--dark{display:none;}
.masthead--light .brand-logo__img--light{display:none;}
.masthead--light .brand-logo__img--dark{display:block;}
.brand-divider{flex:0 0 auto;width:1px;align-self:stretch;background:rgba(255,255,255,.16);}
.brand-text{display:flex;flex-direction:column;gap:.2rem;width:var(--brandtext-w,auto);min-width:0;}
.brand-text .jtitle{font-family:var(--serif);font-weight:700;font-size:1.62rem;line-height:1.12;color:#fff;letter-spacing:-.01em;}
.brand-text .jtitle .abbr{color:var(--brass-400);}
.brand-text .jsub{font-size:.86rem;color:var(--navy-100);letter-spacing:.02em;}
.brand-text .jmeta{font-family:var(--mono);font-size:.7rem;color:var(--navy-300);letter-spacing:.04em;margin-top:.25rem;}
[dir="rtl"] .brand-text .jtitle,[dir="rtl"] .brand-text .jsub{font-family:var(--arabic);}
.masthead-spacer{flex:1;}
.masthead-cta{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem;width:var(--cta-w,auto);flex-shrink:0;}
[dir="rtl"] .masthead-cta{align-items:flex-start;}
.masthead-cta__note{margin:0;max-width:22rem;font-size:.8rem;line-height:1.45;color:rgba(255,255,255,.78);text-align:end;}
[dir="rtl"] .masthead-cta__note{font-family:var(--arabic);}

/* ============================================================
   PRIMARY NAV
   ============================================================ */
.nav{background:var(--navy-700);position:sticky;top:0;z-index:50;box-shadow:0 2px 0 rgba(0,0,0,.12);}
.nav .wrap{display:flex;align-items:stretch;gap:0;padding-inline:calc(var(--gutter) - 14px);}
.nav a{
  color:#eaf1f8;font-family:var(--serif);font-weight:500;
  font-size:.92rem;letter-spacing:.04em;text-transform:uppercase;
  padding:.5rem .8rem;display:inline-flex;align-items:center;
  border-bottom:3px solid transparent;transition:background .12s,border-color .12s;
}
[dir="rtl"] .nav a{font-family:var(--arabic);text-transform:none;letter-spacing:0;font-weight:700;font-size:1.02rem;}
.nav a:hover{background:var(--navy-600);text-decoration:none;color:#fff;}
.nav a.active{border-bottom-color:var(--brass-500);color:#fff;background:var(--navy-800);}
.nav .nav-spacer{flex:1;}
.nav .nav-search{display:flex;align-items:center;padding-inline:1rem;}
.nav .nav-search button{background:transparent;border:0;color:#cfe0f0;cursor:pointer;padding:.4rem;font-size:1.05rem;line-height:1;}
.nav .nav-search button:hover{color:#fff;}

/* ============================================================
   LAYOUT: content + sidebar
   ============================================================ */
.page{padding-block:36px 60px;}
.layout{display:grid;grid-template-columns:1fr var(--sidebar-w,312px);gap:var(--content-gap,48px);align-items:start;}
.layout.reverse{grid-template-columns:var(--sidebar-w,312px) 1fr;}
@media(max-width:1024px){.layout,.layout.reverse{grid-template-columns:1fr;}}

/* Optional homepage hero band (admin-editable heading + text; off by default).
   Palette-driven, so it adapts to dark mode and RTL automatically. */
/* Soft hero band: --card becomes --paper-2. --card is a clean white in light mode (vs the
   muddy tan of --paper-3) and a distinct dark surface (#161f2c) in dark mode; both
   stops differ from --bg in BOTH schemes, so the band reads clean in light and
   visible in dark. (The old gradient ended at --paper == --bg, so it blended.)
   The shadow + border give elevation in both schemes. */
.home-hero{margin:0 0 2.2rem;padding:2.6rem 2rem;text-align:center;background:linear-gradient(180deg,var(--card),var(--paper-2));border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);}
.home-hero .hero-heading{font-family:var(--serif);font-size:2.5rem;line-height:1.12;color:var(--primary-deep);margin:0 0 .6rem;letter-spacing:-.01em;}
[dir="rtl"] .home-hero .hero-heading{font-family:var(--arabic);}
.home-hero .hero-text{font-size:1.08rem;color:var(--ink-2);max-width:760px;margin:0 auto 1.2rem;}
.home-hero .hero-text p:last-child{margin-bottom:0;}
.home-hero .hero-inner{max-width:820px;margin-inline:auto;}
.home-hero .btn{margin-top:.2rem;}
/* Hero CTA row + journal search box. */
.home-hero .hero-cta{display:flex;flex-wrap:wrap;gap:.7rem;justify-content:center;margin-top:1rem;}
.home-hero .hero-search{display:flex;gap:.5rem;max-width:560px;margin:.4rem auto 0;}
.home-hero .hero-search input{flex:1 1 auto;min-width:0;padding:.72rem .95rem;font-size:1rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);color:var(--ink);}
.home-hero .hero-search input:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.home-hero .hero-search .btn{flex:0 0 auto;margin-top:0;}
/* Bold "brand" hero variant — deep navy band with light text (vs the soft default). */
.home-hero.hero-brand{background:linear-gradient(135deg,var(--navy-800),var(--navy-950));border-color:var(--navy-900);}
.home-hero.hero-brand .hero-heading{color:#fff;}
.home-hero.hero-brand .hero-text{color:var(--navy-100);}
/* Dark scheme: the navy scale isn't re-mapped for dark, so the deep-navy brand
   band sits on a near-navy page and loses contrast. Lift it with a brass edge +
   a deeper shadow so it still reads as a distinct band. */
[data-theme="dark"] .home-hero.hero-brand{border-color:var(--brass-700);box-shadow:var(--shadow);}
/* Image-backed hero — the dark overlay + image come from the dynamic CSS; here we
   only flip the text to white and soften the search field for legibility. */
.home-hero.hero-has-bg .hero-heading{color:#fff;}
.home-hero.hero-has-bg .hero-text{color:var(--navy-100);}
.home-hero.hero-has-bg .hero-search input{background:rgba(255,255,255,.95);border-color:transparent;}
/* Safety net: .btn-ghost is white-on-transparent (made for the dark brand/image
   bands). On the LIGHT soft band it would be invisible (white-on-light), so force a
   scheme-aware, legible style there — covers older markup and any edge case. --ink
   is dark in light mode and light in dark mode, so it reads in both. */
.home-hero:not(.hero-brand):not(.hero-has-bg) .btn-ghost{color:var(--ink);border-color:var(--line);}
.home-hero:not(.hero-brand):not(.hero-has-bg) .btn-ghost:hover{background:var(--brass-600);border-color:var(--brass-600);color:var(--navy-950);}
@media(max-width:768px){.home-hero{padding:1.8rem 1.1rem;}.home-hero .hero-heading{font-size:1.5rem;}.home-hero .hero-search{flex-wrap:wrap;}.home-hero .hero-search .btn{width:100%;}}

/* breadcrumb */
.crumbs{font-size:.8rem;color:var(--ink-3);margin-bottom:1.4rem;font-family:var(--serif);letter-spacing:.02em;}
[dir="rtl"] .crumbs{font-family:var(--arabic);}
.crumbs a{color:var(--ink-3);}
.crumbs a:hover{color:var(--link-hover);}
.crumbs .sep{margin-inline:.5rem;color:var(--line);}

/* ============================================================
   SIDEBAR
   ============================================================ */
.sidebar{display:flex;flex-direction:column;gap:var(--sidebar-gap,26px);}
/* Reorder baseline: every sidebar child sits at order:50 so the default is plain
   source order; blockOrderCss() gives the journal widgets 1..N (ahead of this),
   leaving admin block-plugins after them. */
.sidebar > *{order:50;}
/* Same reorder baseline for the article-details content container; .art-blocks
   only becomes flex when a custom article order is saved (blockOrderCss). */
.art-blocks > *{order:50;}
.widget{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);}
.widget-head{margin:0;font-family:var(--serif);font-weight:600;font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:var(--navy-800);padding:.7rem 1rem;border-radius:var(--radius) var(--radius) 0 0;}
[dir="rtl"] .widget-head{font-family:var(--arabic);text-transform:none;letter-spacing:0;font-size:1rem;}
.widget-body{padding:1rem 1.1rem 1.15rem;}
/* Sidebar image / banner widget (admin-supplied promo image) */
.sidebar-promo{padding:0;overflow:hidden;}
.sidebar-promo a,.sidebar-promo img{display:block;}
.sidebar-promo img{width:100%;height:auto;}
.widget-body p{font-size:.92rem;color:var(--ink-2);}
.widget-list{list-style:none;margin:0;padding:0;}
.widget-list li{border-bottom:1px solid var(--line-soft);}
.widget-list li:last-child{border-bottom:0;}
.widget-list a{display:block;padding:.55rem 0;font-size:.93rem;font-family:var(--serif);}
[dir="rtl"] .widget-list a{font-family:var(--arabic);}

/* sidebar search */
.search-field{display:flex;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#fff;}
.search-field input{flex:1;border:0;padding:.6rem .8rem;font-family:var(--body);font-size:.92rem;color:var(--ink);background:transparent;outline:none;min-width:0;}
[dir="rtl"] .search-field input{font-family:var(--arabic);}
.search-field button{background:var(--navy-700);color:#fff;border:0;padding:0 1rem;cursor:pointer;font-size:1rem;}
.search-field button:hover{background:var(--brass-600);}

/* issue cover widget */
.cover-widget{text-align:center;}
.cover-widget .cover{margin:0 auto .9rem;}
.cover-widget .issue-label{font-family:var(--serif);font-weight:600;color:var(--navy-800);font-size:1rem;}
[dir="rtl"] .cover-widget .issue-label{font-family:var(--arabic);}

/* ============================================================
   BUTTONS
   ============================================================ */
.btn{display:inline-flex;align-items:center;gap:.55em;font-family:var(--serif);font-weight:600;font-size:.9rem;letter-spacing:.04em;padding:.7rem 1.3rem;border-radius:var(--radius);cursor:pointer;border:1px solid transparent;transition:background .14s,color .14s,border-color .14s;text-transform:uppercase;}
[dir="rtl"] .btn{font-family:var(--arabic);text-transform:none;letter-spacing:0;font-weight:700;}
.btn-primary{background:var(--brass-600);color:var(--navy-950);border-color:var(--brass-600);}
.btn-primary:hover{background:var(--brass-500);color:var(--navy-950);text-decoration:none;}
.btn-navy{background:var(--navy-700);color:#fff;}
.btn-navy:hover{background:var(--navy-800);color:#fff;text-decoration:none;}
.btn-ghost{background:transparent;border-color:rgba(255,255,255,.4);color:#fff;}
.btn-ghost:hover{background:rgba(255,255,255,.1);color:#fff;text-decoration:none;}
.btn-outline{background:#fff;border-color:var(--line);color:var(--navy-700);}
.btn-outline:hover{border-color:var(--brass-500);color:var(--brass-700);text-decoration:none;}
.btn-block{width:100%;justify-content:center;}
.btn-sm{padding:.45rem .85rem;font-size:.78rem;}

/* ============================================================
   PLACEHOLDER MEDIA (striped)
   ============================================================ */
.ph{
  position:relative;background:
    repeating-linear-gradient(135deg,var(--paper-3) 0 11px,var(--paper-2) 11px 22px);
  border:1px solid var(--line);color:var(--ink-mute);
  display:flex;align-items:center;justify-content:center;text-align:center;
  font-family:var(--mono);font-size:.7rem;letter-spacing:.04em;border-radius:var(--radius);
}
.ph.on-navy{background:repeating-linear-gradient(135deg,var(--navy-700) 0 11px,var(--navy-800) 11px 22px);border-color:var(--navy-600);color:var(--navy-300);}
.ph span{padding:.3rem .5rem;}

/* ============================================================
   ARTICLE / TOC ITEMS
   ============================================================ */
.toc-section{margin-bottom:2.2rem;}
/* Section labels — used in the issue TOC (section names) AND on the article page
   (References, Biographies, Data Availability, How to Cite). Unscoped so every
   use is styled, and margin:0 0 1rem so it looks identical whether rendered as a
   <div> or a real heading element (h2/h3 — zeroes the UA default top margin). */
.toc-section-title{font-family:var(--serif);font-weight:600;font-size:1.05rem;color:var(--brass-700);letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid var(--line);padding-bottom:.5rem;margin:0 0 1rem;}
[dir="rtl"] .toc-section-title{font-family:var(--arabic);text-transform:none;letter-spacing:0;}

.article-item{display:grid;grid-template-columns:1fr auto;gap:1rem 1.4rem;padding:1.1rem 0;border-bottom:1px solid var(--line-soft);}
.article-item:last-child{border-bottom:0;}
.article-item .article-meta-pages{font-family:var(--mono);font-size:.78rem;color:var(--ink-3);white-space:nowrap;padding-top:.3rem;}
.article-item .subtitle{font-size:.95rem;font-style:italic;margin:-.1rem 0 .35rem;}
[dir="rtl"] .article-item .subtitle{font-style:normal;}
.article-item .article-meta-date{font-family:var(--mono);font-size:.74rem;color:var(--ink-3);align-self:center;}
.article-item .article-meta-doi{flex:1 1 100%;min-width:0;font-family:var(--mono);font-size:.76rem;color:var(--ink-3);overflow-wrap:anywhere;}
.article-item .article-meta-doi a{color:var(--link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;}
.article-item .article-meta-label{font-family:var(--serif);font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin-inline-end:.25rem;}
[dir="rtl"] .article-item .article-meta-label{font-family:var(--arabic);letter-spacing:0;text-transform:none;}
/* Issue-page identifiers + full-issue galleys (issue_toc, !hideCover) */
.issue-meta-row{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;margin:0 0 1.4rem;font-family:var(--mono);font-size:.8rem;color:var(--ink-3);}
.issue-meta-row .mb-k{color:var(--brass-700);letter-spacing:.04em;margin-inline-end:.3rem;}
.issue-galleys{margin:0 0 1.8rem;}
.issue-galleys .db-fmt{text-align:start;}
/* Author biographies (article_details) */
.author-bios .author-bio:last-child{margin-bottom:0;}
.author-bio .au{font-family:var(--serif);}
.article-item h3{font-size:1.16rem;margin:0 0 .3rem;line-height:1.28;}
.article-item h3 a{color:var(--navy-900);}
.article-item h3 a:hover{color:var(--brass-700);}
.article-item .authors{font-size:.92rem;color:var(--ink-2);font-style:italic;margin-bottom:.45rem;}
[dir="rtl"] .article-item .authors{font-style:normal;}
.article-actions{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;margin-top:.5rem;}
.tag{display:inline-flex;align-items:center;gap:.35em;max-width:100%;overflow-wrap:anywhere;font-family:var(--serif);font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--navy-700);background:var(--navy-100);padding:.18rem .55rem;border-radius:2px;}
[dir="rtl"] .tag{font-family:var(--arabic);text-transform:none;letter-spacing:0;}
.pill-pdf{color:var(--brass-700);background:var(--brass-100);}
.galley{display:inline-flex;align-items:center;gap:.3em;font-family:var(--mono);font-size:.72rem;font-weight:500;color:#fff;background:var(--navy-700);padding:.2rem .5rem;border-radius:2px;letter-spacing:.03em;}
.galley:hover{background:var(--brass-600);color:var(--navy-950);text-decoration:none;}

/* ============================================================
   CARDS (homepage)
   ============================================================ */
.cardgrid{display:grid;gap:24px;}
.cardgrid.cols-3{grid-template-columns:repeat(3,1fr);}
.cardgrid.cols-2{grid-template-columns:repeat(2,1fr);}
@media(max-width:768px){.cardgrid.cols-3,.cardgrid.cols-2{grid-template-columns:1fr;}}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .15s,transform .15s;}
.card:hover{box-shadow:var(--shadow);}
.card .card-media{height:150px;}
.card .card-body{padding:1.1rem 1.2rem 1.3rem;display:flex;flex-direction:column;gap:.5rem;flex:1;}
.card .card-kicker{font-family:var(--serif);font-size:.7rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);}
[dir="rtl"] .card .card-kicker{font-family:var(--arabic);text-transform:none;letter-spacing:0;}
.card h3{font-size:1.12rem;margin:0;line-height:1.25;}
.card .card-meta{font-family:var(--mono);font-size:.72rem;color:var(--ink-3);margin-top:auto;}

/* ============================================================
   ANNOUNCEMENT / NOTICE
   ============================================================ */
.notice{display:flex;gap:1rem;padding:1rem 1.2rem;background:var(--card);border:1px solid var(--line);border-inline-start:4px solid var(--brass-500);border-radius:var(--radius);}
.notice .n-date{font-family:var(--mono);font-size:.74rem;color:var(--ink-3);white-space:nowrap;}
.notice h2,.notice h4{margin:0 0 .25rem;font-size:1.02rem;}
.notice p{margin:0;font-size:.92rem;color:var(--ink-2);}

/* ============================================================
   ARTICLE DETAIL PAGE
   ============================================================ */
.art-header{border-bottom:1px solid var(--line);padding-bottom:1.6rem;margin-bottom:1.6rem;}
.art-section-label{font-family:var(--serif);font-size:.74rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--brass-700);}
[dir="rtl"] .art-section-label{font-family:var(--arabic);text-transform:none;letter-spacing:0;}
.art-title{font-size:2.4rem;line-height:1.16;margin:.5rem 0 .9rem;color:var(--navy-900);letter-spacing:-.01em;}
[dir="rtl"] .art-title{font-size:2.45rem;letter-spacing:0;}
.art-authors{font-size:1.05rem;color:var(--ink);margin-bottom:.4rem;}
.art-authors .au{font-weight:600;}
.art-authors sup{color:var(--brass-700);font-size:.72em;}
.art-affil{font-size:.86rem;color:var(--ink-3);font-style:italic;line-height:1.5;}
[dir="rtl"] .art-affil{font-style:normal;}
.art-authors sup{vertical-align:super;}
.art-affiliations{margin:.7rem 0 0;padding-inline-start:1.4rem;font-size:.84rem;color:var(--ink-3);}
.art-affiliations li{margin-bottom:.2rem;line-height:1.5;}
.orcid-id,.ror-link{display:inline-block;font-family:var(--mono);font-size:.6rem;font-weight:600;letter-spacing:.02em;color:var(--brass-700);border:1px solid var(--brass-400);border-radius:2px;padding:0 .25rem;vertical-align:middle;margin-inline-start:.15rem;}
.orcid-id:hover,.ror-link:hover{background:var(--brass-600);color:#fff;border-color:var(--brass-600);text-decoration:none;}
[data-theme="dark"] .orcid-id,[data-theme="dark"] .ror-link{color:var(--brass-400);}
/* When the ORCID link holds the real ORCID logo (svg/img), drop the badge look */
.orcid-id:has(svg),.orcid-id:has(img){border:0;padding:0;background:transparent;}
.orcid-id:has(svg):hover,.orcid-id:has(img):hover{background:transparent;}
.orcid-id svg,.orcid-id img{width:14px;height:14px;display:block;vertical-align:middle;}
/* Author name links to search-by-author (colour inherits; underline only on hover, mode-safe) */
.au-link{color:inherit;text-decoration:none;}
.au-link:hover,.au-link:focus-visible{text-decoration:underline;text-underline-offset:2px;}
/* Article classification metadata (subjects / disciplines / funding / coverage) */
.art-classification{margin:1.1rem 0;}
.art-classification .kw-row{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin-bottom:.5rem;}
.art-classification .kw-row:last-child{margin-bottom:0;}
.kw-static{cursor:default;}
/* Article CRediT contributor roles (live; OJS 3.5 core author metadata) */
.credit-roles .credit-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.9rem;}
.credit-author{display:grid;grid-template-columns:minmax(140px,210px) 1fr;gap:.5rem 1.2rem;align-items:baseline;padding-bottom:.9rem;border-bottom:1px solid var(--line-soft);}
.credit-author:last-child{border-bottom:0;padding-bottom:0;}
.credit-author .ca-name{font-family:var(--serif);font-weight:600;color:var(--navy-900);}
[dir="rtl"] .credit-author .ca-name{font-family:var(--arabic);}
.credit-author .ca-roles{display:flex;flex-wrap:wrap;gap:.4rem;}
.credit-chip{display:inline-flex;align-items:center;gap:.35rem;font-size:.8rem;color:var(--navy-700);background:var(--navy-100);border:1px solid var(--navy-100);border-radius:2px;padding:.18rem .55rem;}
.credit-chip .ca-deg{font-style:normal;font-family:var(--mono);font-size:.66rem;letter-spacing:.04em;text-transform:uppercase;color:var(--brass-700);opacity:.95;}
[dir="rtl"] .credit-chip .ca-deg{text-transform:none;letter-spacing:0;font-family:var(--arabic);}
[data-theme="dark"] .credit-chip{background:var(--paper-3);color:var(--navy-100);border-color:var(--line);}
[data-theme="dark"] .credit-chip .ca-deg{color:var(--brass-400);}
@media(max-width:560px){.credit-author{grid-template-columns:1fr;gap:.3rem;}}
/* Article competing-interests declarations */
.competing-interests .ci-item{margin-bottom:1rem;}
.competing-interests .ci-item:last-child{margin-bottom:0;}
.competing-interests .ci-name{margin:0 0 .2rem;font-family:var(--serif);color:var(--navy-900);}
[dir="rtl"] .competing-interests .ci-name{font-family:var(--arabic);}
[data-theme="dark"] .competing-interests .ci-name strong,[data-theme="dark"] .credit-author .ca-name{color:var(--ink);}
.competing-interests .prose{font-size:.95rem;color:var(--ink-2);}

/* ============================================================
   CitationStyleLanguage plugin — "How to Cite" (when the journal
   enables CSL). Prefixed with .page_article so these win over the
   plugin's own stylesheet, which loads after theme.css.
   ============================================================ */
.page_article .item.citation{margin:2rem 0 0;background:var(--card);border:1px solid var(--line);border-inline-start:4px solid var(--brass-500);border-radius:var(--radius);padding:1.4rem 1.6rem;}
.page_article .item.citation .citation_display > .label{display:block;font-family:var(--serif);font-size:.82rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--brass-700);margin:0 0 .8rem;}
[dir="rtl"] .page_article .item.citation .citation_display > .label{font-family:var(--arabic);text-transform:none;letter-spacing:0;font-size:1.05rem;}
[data-theme="dark"] .page_article .item.citation .citation_display > .label{color:var(--brass-400);}
.page_article #citationOutput{font-size:.95rem;line-height:1.7;color:var(--ink);}
.page_article #citationOutput .csl-entry{margin:0;}
.page_article #citationOutput a{color:var(--link);word-break:break-word;}
.page_article .citation_formats{position:relative;margin-top:1rem;}
.page_article .citation_formats_button{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--serif);font-size:.85rem;font-weight:600;color:var(--ink);background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius);padding:.5rem .9rem;cursor:pointer;}
.page_article .citation_formats_button:hover,.page_article .citation_formats_button[aria-expanded="true"]{border-color:var(--brass-500);color:var(--brass-700);}
[data-theme="dark"] .page_article .citation_formats_button:hover{color:var(--brass-400);}
.page_article .citation_formats_list{margin-top:.7rem;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:.9rem 1.1rem;box-shadow:var(--shadow);}
.page_article .citation_formats_list[aria-hidden="true"]{display:none;}
.page_article .citation_formats_list .label{display:block;font-family:var(--serif);font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin:.2rem 0 .55rem;}
[dir="rtl"] .page_article .citation_formats_list .label{font-family:var(--arabic);text-transform:none;letter-spacing:0;}
.page_article .citation_formats_styles{list-style:none;margin:0 0 .4rem;padding:0;display:flex;flex-wrap:wrap;gap:.4rem;}
.page_article .citation_formats_styles li{margin:0;}
.page_article .citation_formats_styles a{display:inline-flex;align-items:center;gap:.35rem;font-size:.82rem;color:var(--ink-2);background:var(--paper-2);border:1px solid var(--line);border-radius:999px;padding:.32rem .8rem;text-decoration:none;transition:background .15s,color .15s,border-color .15s;}
.page_article .citation_formats_styles a:hover{background:var(--navy-700);color:#fff;border-color:var(--navy-700);}
.page_article .citation_formats_styles .fa{font-size:.78rem;opacity:.8;}
/* CSL block now lives in the sidebar (the Details hook fires there) — render it
   as a proper widget: navy header bar like Tools/Publication, padded body. */
.page_article .sidebar .item.citation{margin:1.2rem 0 0;padding:0;background:var(--card);border:1px solid var(--line);border-inline-start:1px solid var(--line);border-radius:var(--radius);overflow:hidden;}
.page_article .sidebar .item.citation .citation_display{margin:0;}
.page_article .sidebar .item.citation .citation_display > .label{display:block;margin:0;background:var(--navy-800);color:#fff;font-family:var(--serif);font-weight:600;font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;padding:.7rem 1rem;}
[dir="rtl"] .page_article .sidebar .item.citation .citation_display > .label{font-family:var(--arabic);text-transform:none;letter-spacing:0;font-size:1rem;}
[data-theme="dark"] .page_article .sidebar .item.citation .citation_display > .label{color:#fff;}
.page_article .sidebar .item.citation .value{padding:1rem 1.1rem;}
.page_article .sidebar #citationOutput{font-size:.85rem;line-height:1.6;}
.page_article .sidebar .citation_formats_styles a{font-size:.78rem;padding:.28rem .65rem;}

/* ============================================================
   recommendBySimilarity / recommendByAuthor — related lists
   ============================================================ */
.page_article #articlesBySimilarityList,.page_article #articlesBySameAuthorList{margin:2.6rem 0 0;padding-top:1.6rem;border-top:1px solid var(--line);}
.page_article #articlesBySimilarityList > .label,.page_article #articlesBySameAuthorList > .label{display:block;font-family:var(--serif);font-size:1.3rem;font-weight:600;color:var(--primary-deep);margin:0 0 1.2rem;}
[dir="rtl"] .page_article #articlesBySimilarityList > .label,[dir="rtl"] .page_article #articlesBySameAuthorList > .label{font-family:var(--arabic);}
.page_article #articlesBySimilarityList > ul,.page_article #articlesBySameAuthorList > ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:1rem;}
.page_article #articlesBySimilarityList > ul > li,.page_article #articlesBySameAuthorList > ul > li{margin:0;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.1rem;font-size:.88rem;line-height:1.5;color:var(--ink-2);transition:transform .2s ease,box-shadow .2s ease;}
.page_article #articlesBySimilarityList > ul > li:hover,.page_article #articlesBySameAuthorList > ul > li:hover{transform:translateY(-3px);box-shadow:var(--shadow-sm);}
.page_article #articlesBySimilarityList > ul > li a,.page_article #articlesBySameAuthorList > ul > li a{text-decoration:none;}
.page_article #articlesBySimilarityList > ul > li a:first-of-type,.page_article #articlesBySameAuthorList > ul > li a:first-of-type{display:block;margin:.25rem 0;font-weight:600;color:var(--primary);}
.page_article #articlesBySimilarityList > ul > li a:first-of-type:hover{text-decoration:underline;}
.page_article #articlesBySimilarityList > ul > li a:last-of-type,.page_article #articlesBySameAuthorList > ul > li a:last-of-type{font-size:.8rem;color:var(--ink-3);}
.page_article #articlesBySimilaritySearch,.page_article #articlesBySimilarityPages{font-size:.86rem;color:var(--ink-2);margin-top:1rem;}
.page_article #articlesBySimilarityList .cmp_pagination,.page_article #articlesBySameAuthorList .cmp_pagination{margin-top:1.1rem;}
/* Article cover image (publication coverImage) in the sidebar */
.art-cover-image{margin-bottom:0;}
.art-cover-image img{width:100%;aspect-ratio:3/4;object-fit:contain;background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);}
.art-share .share-btn svg{width:16px;height:16px;display:block;}

.art-meta-bar{display:flex;flex-wrap:wrap;gap:1.1rem 1.7rem;align-items:baseline;padding:.7rem 0;margin:1rem 0 1.5rem;font-size:.84rem;border-block:1px solid var(--line);}
.art-meta-bar .mb-item{display:flex;flex-direction:column;gap:.1rem;}
.art-meta-bar .mb-k{font-family:var(--serif);font-size:.66rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);}
[dir="rtl"] .art-meta-bar .mb-k{font-family:var(--arabic);text-transform:none;letter-spacing:0;}
.art-meta-bar .mb-v{font-family:var(--mono);font-size:.82rem;color:var(--navy-800);}
/* Per-article usage metrics (views/downloads) read as figures, not metadata. */
.art-meta-bar .mb-metric .mb-v{color:var(--brass-700);font-weight:600;}
[data-theme="dark"] .art-meta-bar .mb-metric .mb-v{color:var(--brass-400);}

/* Publication-history timeline (Received -> Published) — a premium, scannable
   alternative to the plain date list. Each step is a brass dot + label + date. */
.pub-history{display:flex;flex-wrap:wrap;gap:1.6rem;list-style:none;margin:0 0 1.5rem;padding:0;}
.pub-history .ph-step{position:relative;display:flex;flex-direction:column;gap:.12rem;padding-inline-start:1.05rem;}
.pub-history .ph-step::before{content:"";position:absolute;inset-block-start:.2rem;inset-inline-start:0;width:11px;height:11px;border-radius:50%;background:var(--brass-500);}
.pub-history .ph-label{font-family:var(--serif);font-size:.66rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);}
[dir="rtl"] .pub-history .ph-label{font-family:var(--arabic);text-transform:none;letter-spacing:0;}
.pub-history .ph-date{font-family:var(--mono);font-size:.9rem;color:var(--navy-800);font-weight:600;}

.abstract-block{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem 1.7rem;margin-bottom:1.6rem;}
.abstract-block h2{letter-spacing:.06em;text-transform:uppercase;color:var(--brass-700);margin-bottom:.7rem;font-size:.95rem;}
[dir="rtl"] .abstract-block h2{text-transform:none;letter-spacing:0;font-size:1.15rem;}
/* Additional-language abstracts — render each in its own direction/font regardless of page dir */
.abstract-alt{margin-top:1.5rem;padding-top:1.2rem;border-top:1px dashed var(--line);}
.abstract-block[dir="rtl"]{font-family:var(--arabic);}
.abstract-block[dir="rtl"] h2{font-family:var(--arabic);text-transform:none;letter-spacing:0;font-size:1.15rem;}
.abstract-block[dir="ltr"]{font-family:var(--body);}
.abstract-block[dir="ltr"] h2{font-family:var(--serif);text-transform:uppercase;letter-spacing:.06em;font-size:.95rem;}
.abstract-block p{font-size:1rem;color:var(--ink-2);}
.keywords{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem;align-items:center;}
.keywords .kw-label{font-family:var(--serif);font-weight:600;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin-inline-end:.3rem;}
[dir="rtl"] .keywords .kw-label{font-family:var(--arabic);text-transform:none;letter-spacing:0;}
.kw{font-size:.84rem;color:var(--navy-700);border:1px solid var(--navy-100);background:#fff;padding:.2rem .6rem;border-radius:2px;}
.kw:hover{border-color:var(--brass-400);color:var(--brass-700);text-decoration:none;}

.download-box{background:var(--navy-800);color:#fff;border-radius:var(--radius);padding:1.2rem;text-align:center;}
.download-box .db-fmt{margin:0 0 .7rem;font-family:var(--mono);font-size:.74rem;color:var(--navy-300);letter-spacing:.06em;}
/* Sidebar: publication dates (key/value rows) + article tools (action buttons) */
.sb-dates{margin:0;}
.sb-dates > div{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.32rem 0;border-bottom:1px solid var(--line-soft);}
.sb-dates > div:last-child{border-bottom:0;}
.sb-dates dt{margin:0;font-family:var(--serif);font-weight:600;font-size:.74rem;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);}
[dir="rtl"] .sb-dates dt{font-family:var(--arabic);text-transform:none;letter-spacing:0;font-size:.85rem;}
.sb-dates dd{margin:0;font-family:var(--mono);font-size:.8rem;color:var(--ink-2);white-space:nowrap;}
.sb-tools{display:flex;flex-wrap:wrap;gap:.5rem;}
.sb-tools .btn{flex:1 1 calc(50% - .25rem);justify-content:center;min-width:0;}
/* Article "On this page" scroll-spy reading nav (sticky; JS toggles .is-active) */
.reading-nav{position:sticky;top:5rem;z-index:1;overflow:hidden;margin-bottom:0;}
.reading-nav-list{list-style:none;margin:0;padding:.35rem 0;}
.reading-nav-list li{margin:0;}
.reading-nav-list a{display:inline-block;padding:.4rem 1rem;font-size:.86rem;line-height:1.3;color:var(--ink-2);text-decoration:none;border-inline-start:2px solid transparent;transition:color .15s,background .15s,border-color .15s;}
.reading-nav-list a:hover{color:var(--primary);background:var(--paper-2);}
.reading-nav-list a.is-active{color:var(--primary);font-weight:600;background:var(--primary-soft);border-inline-start-color:var(--brass-500);}
@media(max-width:1024px){.reading-nav{display:none;}}
/* "Recent articles" sidebar widget — small published-date under each title */
.widget-list .rec-date{display:block;font-size:.72rem;color:var(--ink-3);font-family:var(--mono);letter-spacing:.02em;margin-top:.1rem;}
.download-box .db-dl{font-size:.78rem;color:var(--navy-100);margin-top:.7rem;font-family:var(--mono);}

.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;}
.metrics .m{background:#fff;padding:.9rem;text-align:center;}
.metrics .m-n{font-family:var(--serif);font-weight:700;font-size:1.5rem;color:var(--navy-800);}
.metrics .m-l{font-family:var(--serif);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);}
[dir="rtl"] .metrics .m-l{font-family:var(--arabic);text-transform:none;letter-spacing:0;}

/* full-text reading view */
.reading{max-width:760px;}
.reading h2{font-size:1.4rem;margin:2rem 0 .8rem;padding-top:.4rem;}
.reading h3{font-size:1.12rem;margin:1.6rem 0 .6rem;color:var(--navy-800);}
.reading p{font-size:1.05rem;line-height:1.78;color:var(--ink-2);margin-bottom:1.1rem;}
.reading .lead{font-size:1.12rem;color:var(--ink);}
.reading figure{margin:1.8rem 0;}
.reading figure .ph{height:260px;}
.reading figcaption{font-size:.84rem;color:var(--ink-3);margin-top:.6rem;font-style:italic;text-align:center;}
[dir="rtl"] .reading figcaption{font-style:normal;}
.reading .eq{font-family:var(--mono);background:var(--paper-2);border:1px solid var(--line);padding:.8rem 1rem;border-radius:var(--radius);text-align:center;color:var(--navy-800);margin:1.2rem 0;font-size:.95rem;}
.reading blockquote{border-inline-start:3px solid var(--brass-500);margin:1.4rem 0;padding-inline-start:1.2rem;color:var(--ink-2);font-style:italic;}

.data-table{width:100%;border-collapse:collapse;font-size:.92rem;margin:1.4rem 0;}
.data-table caption{font-size:.84rem;color:var(--ink-3);font-style:italic;margin-bottom:.5rem;text-align:start;}
.data-table th,.data-table td{padding:.6rem .8rem;border-bottom:1px solid var(--line);text-align:start;}
.data-table thead th{background:var(--navy-800);color:#fff;font-family:var(--serif);font-weight:600;font-size:.84rem;letter-spacing:.03em;}
[dir="rtl"] .data-table thead th{font-family:var(--arabic);}
.data-table tbody tr:nth-child(even){background:var(--paper-2);}

/* references */
.ref-list{list-style:none;counter-reset:ref;margin:0;padding:0;}
.ref-list li{counter-increment:ref;position:relative;padding-inline-start:2.4rem;margin-bottom:.9rem;font-size:.9rem;color:var(--ink-2);line-height:1.55;}
.ref-list li::before{content:"["counter(ref)"]";position:absolute;inset-inline-start:0;font-family:var(--mono);font-size:.8rem;color:var(--brass-700);}
/* Skip rendering off-screen items in long lists (references, archive) until
   scrolled near — a free render-perf win; `auto` size remembers actual height
   so the scrollbar doesn't jump. Not applied on the homepage (no reveal clash). */
.ref-list li{content-visibility:auto;contain-intrinsic-size:auto 72px;}
/* Read more — admin-added .alnakib-readmore blocks (height-collapsed with a fade)
   and the reference-list "Show all" toggle. The toggle colour is scheme-aware. */
.alnakib-readmore{position:relative;}
.alnakib-readmore.rm-collapsed{max-height:var(--rm-max,260px);overflow:hidden;}
.alnakib-readmore.rm-collapsed::after{content:"";position:absolute;inset-inline:0;bottom:0;height:60px;background:linear-gradient(transparent,var(--rm-fade,var(--bg)));pointer-events:none;}
.rm-toggle{display:inline-flex;align-items:center;gap:.35rem;margin-top:.8rem;font-family:var(--serif);font-weight:600;font-size:.85rem;letter-spacing:.03em;color:var(--link,var(--navy-700));background:transparent;border:0;border-bottom:1px solid currentColor;padding:.05rem 0;cursor:pointer;}
.rm-toggle:hover{color:var(--brass-700);}
[dir="rtl"] .rm-toggle{font-family:var(--arabic);letter-spacing:0;}
.rm-refs-toggle{margin-top:1rem;}
/* When the abstract/alt-abstract collapses, its fade must blend into the card
   surface (not the page background). The card is --paper-2 in dark mode. */
.abstract-block .alnakib-readmore.rm-collapsed::after{--rm-fade:var(--card);}
[data-theme="dark"] .abstract-block .alnakib-readmore.rm-collapsed::after{--rm-fade:var(--paper-2);}
/* Current-issue banner description clamp fades into the card surface. */
.issue-banner .alnakib-readmore.rm-collapsed::after{--rm-fade:var(--card);}

/* TOC for reading view (sidebar) */
.reading-toc{position:sticky;top:80px;}
.reading-toc a{display:block;padding:.4rem 0;font-size:.88rem;font-family:var(--serif);border-inline-start:2px solid var(--line);padding-inline-start:.9rem;color:var(--ink-2);}
[dir="rtl"] .reading-toc a{font-family:var(--arabic);}
.reading-toc a:hover,.reading-toc a.active{border-inline-start-color:var(--brass-500);color:var(--navy-800);}

/* ============================================================
   ISSUE / ABOUT / TEAM
   ============================================================ */
.issue-banner{display:grid;grid-template-columns:200px 1fr;gap:2rem;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.6rem;margin-bottom:2.4rem;align-items:center;}
@media(max-width:768px){.issue-banner{grid-template-columns:1fr;}}
.issue-banner .cover{height:264px;}
.issue-banner h1,.issue-banner h2{font-size:1.7rem;margin-bottom:.4rem;}
/* Clickable issue title — looks like the heading, underlines on hover/focus. */
.issue-banner .issue-title-link{color:inherit;text-decoration:none;}
.issue-banner .issue-title-link:hover,.issue-banner .issue-title-link:focus-visible{color:var(--link,var(--navy-700));text-decoration:underline;text-underline-offset:2px;}
.issue-banner .issue-doi{font-family:var(--mono);font-size:.8rem;color:var(--ink-3);}

.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;}
@media(max-width:768px){.team-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.team-grid{grid-template-columns:1fr;}}
.person{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.2rem;display:flex;gap:1rem;align-items:flex-start;}
.person .avatar{flex:0 0 64px;height:64px;width:64px;border-radius:50%;overflow:hidden;}
.person .p-name{font-family:var(--serif);font-weight:600;font-size:1.02rem;color:var(--navy-900);margin:0;}
[dir="rtl"] .person .p-name{font-family:var(--arabic);}
.person .p-role{font-size:.82rem;color:var(--brass-700);font-weight:600;}
.person .p-affil{font-size:.82rem;color:var(--ink-3);font-style:italic;}
[dir="rtl"] .person .p-affil{font-style:normal;}
/* Editorial masthead (bespoke editorialMasthead.tpl) */
.masthead-role{font-size:1.1rem;color:var(--brass-700);letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid var(--line);padding-bottom:.4rem;margin:1.8rem 0 1rem;}
[dir="rtl"] .masthead-role{text-transform:none;letter-spacing:0;font-family:var(--arabic);}
.person .p-name{display:flex;align-items:center;gap:.1rem;margin:0;}
.person .p-orcid{display:inline-flex;vertical-align:middle;margin-inline-start:.25rem;}
.person .p-orcid svg,.person .p-orcid img{width:1em;height:1em;}
.person .p-since{font-family:var(--mono);font-size:.72rem;color:var(--ink-3);margin:.25rem 0 0;}
.reviewers-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;}
.person.compact{padding:.85rem 1rem;}
.person .p-country{font-size:.78rem;color:var(--ink-3);margin:.15rem 0 0;}
.person .p-bio{font-size:.82rem;color:var(--ink-2);line-height:1.5;margin:.5rem 0 0;}
.masthead-intro{margin:0 0 1.6rem;color:var(--ink-2);}
/* Masthead/history "list" layout — one column, each person a compact row. */
.team-grid.layout-list{display:block;}
.team-grid.layout-list .person{margin-bottom:.6rem;padding:.7rem 1rem;}
.team-grid.layout-list .person .p-bio{display:none;}
.masthead-history-link{margin:1.4rem 0;font-size:.95rem;}

/* Category browse (catalogCategory.tpl) */
.page_catalog_category .article_count{font-family:var(--mono);font-size:.8rem;margin:0 0 1.2rem;}
.page_catalog_category .about_section{display:flex;gap:1.6rem;align-items:flex-start;margin:0 0 1.6rem;}
.page_catalog_category .about_section .description{flex:1;}
.page_catalog_category .cat-cover{flex:0 0 160px;}
.page_catalog_category .cat-cover img{border:1px solid var(--line);border-radius:var(--radius);}
.page_catalog_category .subcategories{margin:1.2rem 0;}
@media(max-width:768px){.page_catalog_category .about_section{flex-direction:column;}.page_catalog_category .cat-cover{flex-basis:auto;}}

/* Multi-journal site index (indexSite.tpl) */
.journals-grid{list-style:none;margin:1.2rem 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:1.6rem;}
.journal-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s;}
.journal-card:hover{transform:translateY(-2px);box-shadow:var(--shadow);}
.journal-card .thumb{display:block;border-bottom:1px solid var(--line);}
.journal-card .thumb img{width:100%;height:auto;}
.journal-card .body{padding:1.1rem 1.2rem 1.3rem;display:flex;flex-direction:column;gap:.6rem;flex:1;}
.journal-card h3{margin:0;font-size:1.15rem;}
.journal-card .description{font-size:.9rem;color:var(--ink-2);max-height:8.5em;overflow:hidden;position:relative;}
/* Fade the clamped journal description; "View Journal" leads to the full text */
.journal-card .description::after{content:"";position:absolute;inset-inline:0;bottom:0;height:2.4em;background:linear-gradient(transparent,var(--card));pointer-events:none;}
.journal-card .description :first-child{margin-top:0;}
.journal-card .journal-links{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:auto;}
/* Site index "About the platform" — readable measure + proper prose hierarchy */
.page_index_site .about_site{max-width:840px;margin:0 auto 2.4rem;}
.page_index_site .about_site h2{font-size:1.4rem;margin-top:1.8rem;}
.page_index_site .about_site h3{font-size:1.12rem;}

/* Highlights / spotlights (highlights.tpl) — static branded grid */
.highlights{margin:0 0 2.4rem;}
.highlights-grid{display:grid;gap:1.6rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));}
.highlight-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s;}
.highlight-card:hover{transform:translateY(-2px);box-shadow:var(--shadow);}
.highlight-card .hc-media img{width:100%;height:190px;object-fit:cover;display:block;border-bottom:1px solid var(--line);}
.highlight-card .hc-body{padding:1.2rem 1.3rem 1.4rem;display:flex;flex-direction:column;gap:.6rem;flex:1;}
.highlight-card .hc-title{font-size:1.2rem;margin:0;}
.highlight-card .hc-desc{font-size:.92rem;color:var(--ink-2);}
.highlight-card .btn{align-self:flex-start;margin-top:auto;}

/* ---- Mobile navigation toggle (hamburger) + drawer ---- */
.nav-toggle{display:none;align-items:center;gap:.6rem;background:transparent;border:0;color:#eaf1f8;font-family:var(--serif);font-size:.85rem;letter-spacing:.06em;text-transform:uppercase;padding:.9rem 1.05rem;cursor:pointer;}
[dir="rtl"] .nav-toggle{font-family:var(--arabic);text-transform:none;letter-spacing:0;font-weight:700;}
.nav-toggle-bars{position:relative;}
.nav-toggle-bars,.nav-toggle-bars::before,.nav-toggle-bars::after{display:block;width:22px;height:2px;background:currentColor;border-radius:2px;transition:transform .2s,opacity .2s,background .2s;}
.nav-toggle-bars::before,.nav-toggle-bars::after{content:"";position:absolute;inset-inline-start:0;}
.nav-toggle-bars::before{top:-7px;}
.nav-toggle-bars::after{top:7px;}
.nav.nav-open .nav-toggle-bars{background:transparent;}
.nav.nav-open .nav-toggle-bars::before{transform:translateY(7px) rotate(45deg);}
.nav.nav-open .nav-toggle-bars::after{transform:translateY(-7px) rotate(-45deg);}
/* The mobile-nav media query lives at the END of this file (see "MOBILE PRIMARY
   NAV (authoritative)"). It MUST come after the OJS-bridge base rules below
   (.nav .wrap > ul{display:flex} / ul ul{display:none;position:absolute}); media
   queries add no specificity, so a copy here would lose on source order and the
   drawer/toggle would silently no-op. */

/* ---- Back-to-top button (wired by js/alnakib.js) ---- */
.to-top{position:fixed;inset-block-end:max(1.2rem,env(safe-area-inset-bottom));inset-inline-end:max(1.2rem,env(safe-area-inset-right));z-index:80;width:44px;height:44px;border-radius:50%;border:1px solid var(--brass-600);background:var(--navy-800);color:#fff;font-size:1.2rem;line-height:1;cursor:pointer;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .2s,transform .2s,visibility .2s,background .2s,color .2s;box-shadow:var(--shadow);}
[dir="rtl"] .to-top{inset-inline-end:max(1.2rem,env(safe-area-inset-left));}
.to-top.is-visible{opacity:1;visibility:visible;transform:none;}
.to-top:hover{background:var(--brass-600);color:var(--navy-950);}
@media print{.brand-logo__img--light:has(+ .brand-logo__img--dark){display:none;}.brand-logo__img--dark{display:block;}.to-top{display:none!important;}}

/* ---- Dark-mode toggle button (util bar) ---- */
.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;margin-inline-start:.4rem;padding:0;background:transparent;border:1px solid rgba(255,255,255,.18);border-radius:2px;color:var(--navy-100);font-size:.8rem;line-height:1;cursor:pointer;}
.theme-toggle:hover{color:#fff;border-color:rgba(255,255,255,.4);}
.theme-toggle svg,.nav .nav-search a svg,.search-field button svg,.to-top svg{display:block;}
.nav .nav-search a,.search-field button,.to-top{display:inline-flex;align-items:center;justify-content:center;}
.theme-toggle .tt-moon{display:none;}
[data-theme="dark"] .theme-toggle .tt-sun{display:none;}
[data-theme="dark"] .theme-toggle .tt-moon{display:block;}

/* ---- Article share row + copy-link ---- */
.art-share{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin:1.2rem 0;}
.art-share .share-label{font-family:var(--serif);font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin-inline-end:.2rem;}
[dir="rtl"] .art-share .share-label{font-family:var(--arabic);text-transform:none;letter-spacing:0;}
.share-btn{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;padding:0 .55rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);color:var(--navy-700);font-family:var(--serif);font-weight:600;font-size:.82rem;line-height:1;cursor:pointer;text-decoration:none;transition:background .15s,color .15s,border-color .15s,transform .15s;}
.share-btn:hover{background:var(--navy-700);color:#fff;border-color:var(--navy-700);text-decoration:none;transform:translateY(-1px);}
.share-btn.is-copied{background:var(--brass-600);color:var(--navy-950);border-color:var(--brass-600);}
[data-theme="dark"] .share-btn{color:var(--navy-100);}

/* ---- Issue cover thumbnail in the article sidebar ---- */
.art-issue-cover{display:block;margin-bottom:.7rem;}
.art-issue-cover img{width:150px;max-width:100%;aspect-ratio:3/4;object-fit:contain;background:var(--paper-2);border:1px solid var(--line);border-radius:2px;box-shadow:var(--shadow-sm);transition:transform .2s,box-shadow .2s;}
.art-issue-cover:hover img{transform:translateY(-2px);box-shadow:var(--shadow);}

/* ---- "How to cite" block (article pages) ---- */
.cite-box{background:var(--paper-2);border:1px solid var(--line);border-inline-start:3px solid var(--brass-500);border-radius:var(--radius);padding:1.1rem 1.3rem;margin:2rem 0;}
.cite-box .cite-text{font-size:.92rem;color:var(--ink-2);line-height:1.6;margin:0 0 .8rem;}
.cite-box .cite-actions{display:flex;gap:.5rem;flex-wrap:wrap;}

/* ---- Reading-progress bar (article pages) ---- */
.reading-progress{position:fixed;top:0;inset-inline:0;height:3px;z-index:90;pointer-events:none;background:transparent;}
.reading-progress > span{display:block;height:100%;width:0;background:var(--brass-500);transition:width .1s linear;}
@media print{.reading-progress{display:none!important;}}

/* ---- Keyboard-accessible nav dropdowns ---- */
.nav .wrap > ul li:focus-within > ul{display:block;}

/* ============================================================
   DARK MODE — remap paper/ink neutrals; navy + brass scales
   (masthead, nav, footer) are already dark and kept. Applied
   pre-paint by the inline <head> init script, so no flash.
   ============================================================ */
:root[data-theme="dark"]{
  --paper:#0e1621;--paper-2:#15202e;--paper-3:#1c2838;--card:#161f2c;--bg:#0e1621;
  --line:#2b3a4f;--line-soft:#243140;
  --ink:#e7ecf3;--ink-2:#c4ccd9;--ink-3:#9aa4b4;--ink-mute:#8a93a3;
  --primary:var(--navy-300);--primary-deep:#e9eff6;--link:#8fb6dd;--link-hover:var(--brass-400);--primary-soft:color-mix(in srgb,#fff 5%,transparent);
  --shadow-sm:0 1px 2px rgba(0,0,0,.4);--shadow:0 6px 22px rgba(0,0,0,.55);--shadow-lg:0 16px 40px rgba(0,0,0,.62),0 6px 16px rgba(0,0,0,.5);--shadow-brass:0 8px 24px rgba(0,0,0,.55);
  color-scheme:dark;        /* native scrollbars + form controls render dark */
  accent-color:var(--brass-500);
}
[data-theme="dark"] body{color:var(--ink);}
/* Accent labels use lighter brass for contrast on the dark canvas. */
[data-theme="dark"] .toc-section-title,[data-theme="dark"] .eyebrow,[data-theme="dark"] .card .card-kicker,
[data-theme="dark"] .art-section-label,[data-theme="dark"] .masthead-role,[data-theme="dark"] .abstract-block h2,
[data-theme="dark"] .index-strip .ix-item{color:var(--brass-400);}
/* Dark-on-light titles become light. */
[data-theme="dark"] .art-title,[data-theme="dark"] .obj_article_details .page_title,
[data-theme="dark"] .article-item h3 a,[data-theme="dark"] .obj_article_summary .title a,
[data-theme="dark"] .obj_issue_summary .title a,[data-theme="dark"] .issue-card .ic-title,
[data-theme="dark"] .cover-widget .issue-label,[data-theme="dark"] .person .p-name,
[data-theme="dark"] .cmp_pagination .current{color:var(--ink);}
/* Later-added components also use raw --navy-900 titles (which is NOT remapped for
   dark), so they read as deep-navy on a dark surface. Lift them the same way. */
[data-theme="dark"] .credit-author .ca-name,[data-theme="dark"] .competing-interests .ci-name,
[data-theme="dark"] .ann-more a,[data-theme="dark"] .ann-slide h2 a,[data-theme="dark"] .sections .section > h2,
[data-theme="dark"] .search-hero__title,[data-theme="dark"] .search-results-head .srh-title,
[data-theme="dark"] .search-adv__toggle:hover,[data-theme="dark"] .dir-hero__title,
[data-theme="dark"] .dir-section__head,[data-theme="dark"] .dir-card__name,
[data-theme="dark"] .page_contact .contact .name,[data-theme="dark"] .user_listing .name,
[data-theme="dark"] .latest-card .lc-title,[data-theme="dark"] .ed-person .ed-name,
[data-theme="dark"] .home-content .hc-summary,[data-theme="dark"] .sb-mostread .mostread-list a,
[data-theme="dark"] .obj_galley_link_supplementary:hover{color:var(--ink);}
[data-theme="dark"] .article-item h3 a:hover,[data-theme="dark"] .obj_article_summary .title a:hover{color:var(--brass-400);}
/* White-background widgets become dark surfaces. */
[data-theme="dark"] .kw{background:var(--paper-3);color:var(--navy-100);border-color:var(--line);}
[data-theme="dark"] .kw:hover{color:var(--brass-400);border-color:var(--brass-600);}
[data-theme="dark"] .tag{background:var(--paper-3);color:var(--navy-100);}
[data-theme="dark"] .abstract-block{background:var(--paper-2);}
[data-theme="dark"] .search-field{background:var(--paper-2);border-color:var(--line);}
[data-theme="dark"] .search-field input{color:var(--ink);}
[data-theme="dark"] .field input,[data-theme="dark"] .field select,[data-theme="dark"] .field textarea,
[data-theme="dark"] .pkp_structure_main input,[data-theme="dark"] .pkp_structure_main select,[data-theme="dark"] .pkp_structure_main textarea,
[data-theme="dark"] .search-bar input.query,[data-theme="dark"] .cmp_form input,[data-theme="dark"] .cmp_form select,[data-theme="dark"] .cmp_form textarea{background:var(--paper-2);color:var(--ink);border-color:var(--line);}
/* Dark fields: readable placeholder + a visible (brass) focus ring — the
   light-mode navy focus ring is invisible on the dark canvas. */
[data-theme="dark"] input::placeholder,[data-theme="dark"] textarea::placeholder{color:var(--ink-mute);opacity:1;}
[data-theme="dark"] .field input:focus,[data-theme="dark"] .field select:focus,[data-theme="dark"] .field textarea:focus,
[data-theme="dark"] .pkp_structure_main input:focus,[data-theme="dark"] .pkp_structure_main select:focus,[data-theme="dark"] .pkp_structure_main textarea:focus,
[data-theme="dark"] .cmp_form input:focus,[data-theme="dark"] .cmp_form textarea:focus,[data-theme="dark"] .search-bar:focus-within{border-color:var(--brass-500);box-shadow:0 0 0 3px rgba(184,151,63,.22);outline:none;}
/* Catch-all so EVERY frontend field (search bars, comment forms, OJS-native
   inputs the per-component rules miss) is dark-compatible. Excludes the native
   colour/checkbox/radio/range/button controls (color-scheme:dark handles those). */
[data-theme="dark"] input:not([type="color"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="submit"]):not([type="button"]):not([type="image"]),
[data-theme="dark"] select,[data-theme="dark"] textarea{background:var(--paper-2);color:var(--ink);border-color:var(--line);}
/* Search inputs sit on an already-tinted container — keep them transparent. */
[data-theme="dark"] .search-bar,[data-theme="dark"] .search-adv__toggle{background:var(--paper-2);border-color:var(--line);}
[data-theme="dark"] .search-bar:focus-within{background:var(--card);}
[data-theme="dark"] .search-bar input.query,[data-theme="dark"] .search-field input,[data-theme="dark"] .nav-search input,[data-theme="dark"] .search-field{background:transparent;color:var(--ink);}
[data-theme="dark"] .search-bar__icon{color:var(--ink-3);}
[data-theme="dark"] .search-results-head,[data-theme="dark"] .search-hero{background:var(--card);border-color:var(--line);}
/* Links on dark-bg chrome (belt-and-braces, light mode included). */
.masthead a:not(.btn),.nav .wrap > ul a,.index-strip a{color:var(--navy-100);}
.masthead a:not(.btn):hover,.index-strip a:hover{color:#fff;}
[data-theme="dark"] .btn-outline{background:transparent;color:var(--navy-100);border-color:var(--line);}
[data-theme="dark"] .btn-outline:hover{color:var(--brass-400);border-color:var(--brass-600);}
/* dark audit: remaining dark-on-light text/surfaces */
[data-theme="dark"] .prose h3,[data-theme="dark"] .reading h3,[data-theme="dark"] .reading .eq,
[data-theme="dark"] .art-meta-bar .mb-v,[data-theme="dark"] .field label,
[data-theme="dark"] .pkp_structure_main .cmp_form .label,[data-theme="dark"] .pkp_structure_main .cmp_form legend,[data-theme="dark"] .pkp_structure_main .cmp_form fieldset > legend,[data-theme="dark"] .page_search .search-adv legend,
[data-theme="dark"] .page_contact .contact .name,[data-theme="dark"] .user_listing .name,
[data-theme="dark"] .sections .section > h2,[data-theme="dark"] .metrics .m-n{color:var(--ink);}
[data-theme="dark"] .metrics .m,[data-theme="dark"] .form-card{background:var(--card);}
[data-theme="dark"] ::selection{background:var(--brass-700);color:#fff;}
[data-theme="dark"] .obj_galley_link_supplementary:hover{color:var(--ink);}

/* archive list */
.archive-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.6rem;}
@media(max-width:1024px){.archive-grid{grid-template-columns:repeat(3,1fr);}}
@media(max-width:768px){.archive-grid{grid-template-columns:repeat(2,1fr);}}
.issue-card{display:flex;flex-direction:column;gap:.7rem;}
.issue-card .cover{height:300px;box-shadow:var(--shadow-sm);transition:transform .15s,box-shadow .15s;}
.issue-card:hover .cover{transform:translateY(-3px);box-shadow:var(--shadow);}
.issue-card .ic-title{font-family:var(--serif);font-weight:600;color:var(--navy-900);font-size:1rem;line-height:1.3;}
[dir="rtl"] .issue-card .ic-title{font-family:var(--arabic);}
.issue-card .ic-meta{font-family:var(--mono);font-size:.74rem;color:var(--ink-3);}

/* cover composition (reusable) */
.cover{position:relative;background:linear-gradient(160deg,var(--navy-700),var(--navy-900));border:1px solid var(--navy-800);border-radius:2px;display:flex;flex-direction:column;justify-content:space-between;padding:1rem;color:#fff;overflow:hidden;aspect-ratio:3/4;}
.cover::before{content:"";position:absolute;inset-inline-start:0;inset-block:0;width:5px;background:var(--brass-600);}
.cover .c-top{font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;color:var(--navy-100);text-transform:uppercase;}
.cover .c-mark{position:absolute;inset:0;background:var(--alnakib-mark,url('assets/logo-mark-white.png')) no-repeat center 42%/62% auto;opacity:.12;}
.cover .c-abbr{font-family:var(--serif);font-weight:700;font-size:1.5rem;color:#fff;position:relative;z-index:1;line-height:1;}
.cover .c-vol{font-family:var(--serif);font-size:.82rem;color:var(--brass-400);position:relative;z-index:1;}
.cover .c-bot{font-family:var(--mono);font-size:.56rem;color:var(--navy-300);letter-spacing:.06em;position:relative;z-index:1;}
/* Real uploaded issue cover: the image fills the frame; keep the brass spine accent. */
.cover.cover-real{padding:0;background:var(--navy-900);}
.cover.cover-real img{width:100%;height:100%;object-fit:cover;display:block;}
.issue-banner .cover.cover-real{width:200px;}
.cover-widget .cover.cover-real{width:150px;}

/* indexing strip */
.index-strip{background:var(--paper-2);border-block:1px solid var(--line);padding-block:1.6rem;}
.index-strip .ix-row{display:flex;align-items:center;gap:2.2rem;flex-wrap:wrap;justify-content:center;}
.index-strip .ix-label{font-family:var(--serif);font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);}
[dir="rtl"] .index-strip .ix-label{font-family:var(--arabic);text-transform:none;letter-spacing:0;}
.index-strip .ix-item{font-family:var(--serif);font-weight:600;color:var(--navy-700);font-size:.95rem;opacity:.8;letter-spacing:.02em;}

/* ============================================================
   FORMS (submission / contact / login)
   ============================================================ */
.form-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:2rem;}
.field{margin-bottom:1.2rem;}
.field label{display:block;font-family:var(--serif);font-weight:600;font-size:.84rem;letter-spacing:.04em;color:var(--navy-800);margin-bottom:.4rem;}
[dir="rtl"] .field label{font-family:var(--arabic);}
.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:var(--radius);padding:.7rem .85rem;font-family:var(--body);font-size:.95rem;color:var(--ink);background:#fff;outline:none;}
[dir="rtl"] .field input,[dir="rtl"] .field textarea,[dir="rtl"] .field select{font-family:var(--arabic);}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--navy-500);box-shadow:0 0 0 3px rgba(45,96,152,.12);}
.field .hint{font-size:.78rem;color:var(--ink-3);margin-top:.3rem;}

/* steps list */
.steps{counter-reset:step;list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1.1rem;}
.steps li{counter-increment:step;display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:start;}
.steps li::before{content:counter(step);display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--navy-700);color:#fff;font-family:var(--serif);font-weight:600;font-size:1rem;flex:0 0 auto;}
.steps li h4{margin:.2rem 0 .25rem;font-size:1.05rem;}
.steps li p{margin:0;font-size:.92rem;color:var(--ink-2);}

/* ============================================================
   STAT BLOCK
   ============================================================ */
.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--navy-800);border-radius:var(--radius);overflow:hidden;}
@media(max-width:768px){.stat-row{grid-template-columns:repeat(2,1fr);}}
.stat-row .stat{background:var(--navy-900);color:#fff;padding:1.5rem 1rem;text-align:center;transition:transform .25s ease,background .25s ease;}
.stat-row .stat:hover{transform:translateY(-4px);background:var(--navy-800);}
/* Linked stat cards (count -> archive/search): read as cards, not links. */
.stat-row a.stat{text-decoration:none;color:#fff;display:block;cursor:pointer;}
.stat-row a.stat:hover{text-decoration:none;color:#fff;}
.stat-row a.stat:focus-visible{outline:3px solid var(--brass-500);outline-offset:-3px;}
.stat-row .stat .s-n{font-family:var(--serif);font-weight:700;font-size:2.2rem;color:var(--brass-400);line-height:1;}
.stat-row .stat .s-l{font-family:var(--serif);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--navy-100);margin-top:.4rem;}
[dir="rtl"] .stat-row .stat .s-l{font-family:var(--arabic);text-transform:none;letter-spacing:0;}
/* Editable per-stat tooltips (manager-authored; SVG info marker, no glyph). The row
   clips to its radius normally, but flips to overflow:visible only while a tip card is
   hovered/focused so the bubble can escape — rounded corners stay intact otherwise. */
.stat-row .stat{position:relative;}
.stat-row:has(.has-tip:hover),.stat-row:has(.has-tip:focus),.stat-row:has(.has-tip:focus-within){overflow:visible;}
.stat-info{position:absolute;top:.55rem;inset-inline-end:.55rem;width:14px;height:14px;color:var(--navy-100);opacity:.5;transition:opacity .2s;}
.stat.has-tip:hover .stat-info,.stat.has-tip:focus .stat-info,.stat.has-tip:focus-within .stat-info{opacity:1;}
.stat-tip{position:absolute;bottom:100%;left:50%;transform:translateX(-50%) translateY(-2px);background:var(--navy-950);color:#fff;padding:.55rem .75rem;border-radius:8px;font-family:var(--serif);font-size:.8rem;font-weight:400;letter-spacing:0;text-transform:none;line-height:1.45;width:max-content;max-width:230px;white-space:normal;z-index:30;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s ease,transform .18s ease;box-shadow:0 8px 22px rgba(0,0,0,.22);border:1px solid var(--navy-700);}
.stat-tip::after{content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);border:7px solid transparent;border-top-color:var(--navy-950);}
.stat.has-tip:hover .stat-tip,.stat.has-tip:focus .stat-tip,.stat.has-tip:focus-within .stat-tip{opacity:1;visibility:visible;transform:translateX(-50%) translateY(-6px);}
[dir="rtl"] .stat-tip{font-family:var(--arabic);}
/* Sidebar custom stats — compact number+label rows with the same hover/focus tooltip
   as the homepage cards; the widget un-clips only while a tip is active. */
.sb-statlist{display:flex;flex-direction:column;gap:.5rem;}
.widget.blk--sbStats:has(.has-tip:hover),.widget.blk--sbStats:has(.has-tip:focus-within){overflow:visible;}
.sb-stat{position:relative;display:flex;align-items:baseline;gap:.6rem;padding:.5rem .2rem;border-bottom:1px solid var(--line);}
.sb-stat:last-child{border-bottom:0;}
.sb-stat .sb-n{font-family:var(--serif);font-weight:700;font-size:1.5rem;color:var(--brass-600);line-height:1;flex:0 0 auto;}
.sb-stat .sb-l{font-size:.82rem;color:var(--ink-3);line-height:1.3;}
[dir="rtl"] .sb-stat .sb-l{font-family:var(--arabic);}
.sb-stat .stat-info{position:static;margin-inline-start:auto;align-self:center;color:var(--ink-3);opacity:.55;}
[dir="rtl"] .sb-stat .stat-tip{font-family:var(--arabic);}

/* prose */
.prose h2{font-size:1.45rem;margin:2rem 0 .7rem;}
.prose h3{font-size:1.15rem;margin:1.5rem 0 .5rem;color:var(--navy-800);}
.prose p{font-size:1.02rem;color:var(--ink-2);line-height:1.75;}
.prose ul{padding-inline-start:1.3rem;color:var(--ink-2);}
.prose li{margin-bottom:.5rem;}
.lead-para{font-size:1.18rem;line-height:1.7;color:var(--ink);font-family:var(--serif);}
[dir="rtl"] .lead-para{font-family:var(--arabic);}

/* ============================================================
   FOOTER
   ============================================================ */
.footer{background:var(--navy-950);color:var(--navy-100);margin-top:var(--footer-mt,60px);border-top:3px solid var(--brass-600);}
.footer .wrap{padding-block:var(--footer-pad,48px) 30px;}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:40px;}
@media(max-width:1024px){.foot-grid{grid-template-columns:1fr 1fr;gap:32px;}}
@media(max-width:560px){.foot-grid{grid-template-columns:1fr;}}
.foot-brand img{height:54px;width:auto;margin-bottom:1rem;}
.foot-brand p{font-size:.86rem;color:var(--navy-300);line-height:1.6;}
[dir="rtl"] .foot-brand p{font-family:var(--arabic);}
.foot-col h2{font-family:var(--serif);font-size:.78rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--brass-400);margin:0 0 1rem;line-height:1.2;}
[dir="rtl"] .foot-col h2{font-family:var(--arabic);text-transform:none;letter-spacing:0;font-size:1rem;}
.foot-col ul{list-style:none;margin:0;padding:0;}
.foot-col li{margin-bottom:.55rem;}
.foot-col a{color:var(--navy-100);font-size:.9rem;font-family:var(--serif);}
[dir="rtl"] .foot-col a{font-family:var(--arabic);}
.foot-col a:hover{color:#fff;}
.foot-bottom{border-top:1px solid rgba(255,255,255,.1);margin-top:36px;padding-top:22px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;font-size:.8rem;color:var(--navy-300);}
.foot-bottom .mono{font-family:var(--mono);letter-spacing:.02em;}
.foot-issn{display:flex;gap:1.4rem;flex-wrap:wrap;}
.foot-dir-link{color:var(--navy-100);text-decoration:none;border-bottom:1px solid rgba(255,255,255,.25);padding-bottom:1px;}
.foot-dir-link:hover{color:#fff;border-bottom-color:var(--brass-400,#caa44a);}

/* license / DOAJ row */
.oa-badge{display:inline-flex;align-items:center;gap:.5rem;border:1px solid rgba(255,255,255,.18);border-radius:2px;padding:.4rem .7rem;font-size:.76rem;color:var(--navy-100);font-family:var(--serif);letter-spacing:.04em;}
[dir="rtl"] .oa-badge{font-family:var(--arabic);}
.oa-badge .dot{width:8px;height:8px;border-radius:50%;background:var(--brass-500);}
/* Footer social links (socialLinks option) */
.foot-social{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:.9rem;}
.foot-social a{color:var(--navy-100);font-family:var(--serif);font-size:.85rem;}
[dir="rtl"] .foot-social a{font-family:var(--arabic);}
.foot-social a:hover{color:#fff;}
/* Homepage additional announcements (announcementsCount option) */
.ann-more{list-style:none;margin:.8rem 0 0;padding:0;display:flex;flex-direction:column;gap:.45rem;}
.ann-more li{display:flex;justify-content:space-between;gap:1rem;align-items:baseline;border-bottom:1px solid var(--line-soft);padding-bottom:.45rem;}
.ann-more li:last-child{border-bottom:0;}
.ann-more a{font-family:var(--serif);font-size:.95rem;color:var(--navy-900);}
[dir="rtl"] .ann-more a{font-family:var(--arabic);}
.ann-more a:hover{color:var(--brass-700);}
.ann-more .ann-date{font-family:var(--mono);font-size:.74rem;color:var(--ink-3);white-space:nowrap;}
[data-theme="dark"] .ann-more a{color:var(--ink);}

/* utilities */
.stack-sm > * + *{margin-top:.6rem;}
.mt0{margin-top:0}.mb0{margin-bottom:0}
[hidden]{display:none !important;}
.only-en{}.only-ar{display:none;}
[dir="rtl"] .only-en{display:none;}
[dir="rtl"] .only-ar{display:initial;}

/* ============================================================
   OJS BRIDGE — map core OJS DOM onto the Al-Nakib design
   (this theme is a child of Default but ships its own CSS; these
    rules style the inherited article/issue/about pages + the
    navigation/locale widgets that core renders)
   ============================================================ */

/* ---- Page layout: content + sidebar ---- */
.pkp_structure_page{display:flex;flex-direction:column;min-height:100vh;}
.pkp_structure_content{
  flex:1 0 auto;max-width:var(--wrap);margin-inline:auto;width:100%;
  padding:36px var(--gutter) 60px;
  display:grid;grid-template-columns:1fr;gap:48px;align-items:start;
}
.pkp_structure_main{min-width:0;}
#pkp_content_footer{display:block;}

/* ---- Primary nav: style the {load_menu} <ul><li><a> output ---- */
.nav .wrap > ul{display:flex;align-items:stretch;list-style:none;margin:0;padding:0;flex-wrap:wrap;}
.nav .wrap > ul > li{display:flex;align-items:center;position:relative;padding-block:.42rem;}
.nav .wrap > ul ul{display:none;position:absolute;top:100%;inset-inline-start:0;background:var(--navy-800);min-width:200px;list-style:none;margin:0;padding:.3rem 0;box-shadow:var(--shadow);z-index:60;}
.nav .wrap > ul li:hover > ul{display:block;}
/* Dropdown submenu items: the WHOLE ROW (full width of the flyout) is clickable —
   display:block fills the container, unlike the text-only top-level bar items. This
   also makes mobile inline-expanded submenus full-width, while the top-level drawer
   items stay text-only (they keep the base inline-flex). */
.nav .wrap > ul ul a{display:block;padding:.55rem 1rem;border-bottom:0;}

/* ---- Locale toggle styling lives in the theme-built block further down
        (.lang-toggle a / .current), since the switcher is now built in PHP. ---- */

/* ---- Breadcrumbs ---- */
.cmp_breadcrumbs{font-size:.8rem;color:var(--ink-3);margin-bottom:1.4rem;font-family:var(--serif);}
.cmp_breadcrumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:.35rem;margin:0;padding:0;}
.cmp_breadcrumbs a{color:var(--ink-3);}
.cmp_breadcrumbs a:hover{color:var(--link-hover);}

/* ---- Inherited issue / article object templates ---- */
.obj_issue_toc > h2,.obj_issue_toc .heading,
.sections .section > h2{font-family:var(--serif);color:var(--navy-900);}
[dir="rtl"] .obj_issue_toc > h2,[dir="rtl"] .sections .section > h2{font-family:var(--arabic);}
.sections .section > h2{border-bottom:1px solid var(--line);padding-bottom:.5rem;margin:1.6rem 0 1rem;color:var(--brass-700);font-size:1.05rem;letter-spacing:.06em;text-transform:uppercase;}
[dir="rtl"] .sections .section > h2{text-transform:none;letter-spacing:0;}

.obj_article_summary{padding:1.1rem 0;border-bottom:1px solid var(--line-soft);}
.obj_article_summary .title{font-family:var(--serif);font-size:1.16rem;line-height:1.28;margin:0 0 .3rem;}
.obj_article_summary .title a{color:var(--navy-900);}
.obj_article_summary .title a:hover{color:var(--brass-700);}
.obj_article_summary .authors{font-size:.92rem;color:var(--ink-2);font-style:italic;margin-bottom:.45rem;}
[dir="rtl"] .obj_article_summary .authors{font-style:normal;}
.obj_article_summary .galleys_links{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center;margin-top:.5rem;}

/* galley links (lists + article page) -> brass pills */
.obj_galley_link,.obj_article_details .galleys_links .obj_galley_link{
  display:inline-flex;align-items:center;gap:.3em;font-family:var(--mono);
  font-size:.72rem;font-weight:500;color:#fff;background:var(--navy-700);
  padding:.25rem .6rem;border-radius:2px;letter-spacing:.03em;
}
.obj_galley_link:hover{background:var(--brass-600);color:var(--navy-950);text-decoration:none;}
.galley-btn .galley-ico{display:inline-flex;align-items:center;}
.galley-btn .galley-ico svg{display:block;width:1em;height:1em;}
.galley-btn .galley-label{display:inline-flex;align-items:baseline;gap:.4em;}
.galley-btn .purchase_cost{font-size:.92em;opacity:.85;}
.obj_galley_link_supplementary{background:transparent;color:var(--navy-700);border:1px solid var(--line);}
.obj_galley_link_supplementary:hover{background:var(--paper-2);color:var(--navy-900);}
.obj_galley_link.restricted{opacity:.92;}
/* Prominent primary download button when used inside the article download box */
.download-box .article-actions{justify-content:center;flex-direction:column;gap:.5rem;}
.download-box .article-actions .galley-btn{width:100%;justify-content:center;font-size:.82rem;padding:.6rem .9rem;border-radius:var(--radius);background:var(--brass-500);color:var(--navy-950);}
.download-box .article-actions .galley-btn:hover{background:var(--brass-400);transform:translateY(-1px);}
.download-box .article-actions .obj_galley_link_supplementary{background:transparent;color:#fff;border:1px solid var(--navy-600);}
.download-box .article-actions .obj_galley_link_supplementary:hover{background:var(--navy-700);color:#fff;}

/* ---- Article detail page ---- */
.obj_article_details .page_title{font-family:var(--serif);font-size:2.05rem;line-height:1.18;color:var(--navy-900);}
[dir="rtl"] .obj_article_details .page_title{font-family:var(--arabic);}
.obj_article_details .authors,.obj_article_details .item.authors .value{font-size:1.05rem;color:var(--ink);}
.obj_article_details .item .label{font-family:var(--serif);font-size:.66rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);}
[dir="rtl"] .obj_article_details .item .label{font-family:var(--arabic);text-transform:none;letter-spacing:0;}
.obj_article_details .item.abstract{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem 1.7rem;margin:1.4rem 0;}
.obj_article_details .item.abstract .label{color:var(--brass-700);font-size:.95rem;}
.obj_article_details .item.keywords .value,.obj_article_details .item.subjects .value{display:flex;flex-wrap:wrap;gap:.5rem;}
.obj_article_details .item.doi .value a{font-family:var(--mono);font-size:.84rem;word-break:break-all;}

/* ---- Issue archive ---- */
.obj_issue_summary{display:flex;flex-direction:column;gap:.7rem;}
.obj_issue_summary .title a{font-family:var(--serif);font-weight:600;color:var(--navy-900);}
[dir="rtl"] .obj_issue_summary .title a{font-family:var(--arabic);}
.obj_issue_summary .series,.obj_issue_summary .description{font-size:.9rem;color:var(--ink-3);}

/* ---- Pagination ---- */
.cmp_pagination{font-family:var(--mono);font-size:.85rem;margin-top:1.4rem;}
.cmp_pagination a{color:var(--link);}
.cmp_pagination .current{color:var(--navy-900);font-weight:700;}

/* ---- Core form polish (login, register, search results) ---- */
.pkp_structure_main input[type="text"],.pkp_structure_main input[type="email"],
.pkp_structure_main input[type="password"],.pkp_structure_main input[type="search"],
.pkp_structure_main select,.pkp_structure_main textarea{
  border:1px solid var(--line);border-radius:var(--radius);padding:.7rem .85rem;
  font-family:var(--body);font-size:.95rem;color:var(--ink);background:#fff;
}
[dir="rtl"] .pkp_structure_main input,[dir="rtl"] .pkp_structure_main textarea,[dir="rtl"] .pkp_structure_main select{font-family:var(--arabic);}
.pkp_structure_main input:focus,.pkp_structure_main textarea:focus,.pkp_structure_main select:focus{
  border-color:var(--navy-500);box-shadow:0 0 0 3px rgba(45,96,152,.12);outline:none;
}

/* ---- Accessibility: focus ring ---- */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{
  outline:3px solid var(--brass-500);outline-offset:2px;
}
.pkp_screen_reader{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;}

/* ---- Reduced motion ---- */
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important;}}

/* ---- High-contrast & forced-colors (Windows High Contrast / a11y) ---- */
@media(prefers-contrast:more){
  :root{--ink-3:#41434d;--ink-mute:#41434d;--line:#9aa0ab;--link:#0b3e72;}
  a{text-decoration:underline;}
  .btn,.share-btn,.kw,.tag{border-width:1px;border-style:solid;}
}
@media(forced-colors:active){
  .btn,.share-btn,.theme-toggle,.nav-toggle,.to-top,.kw,.tag,.widget,.cite-box,.card,.journal-card,.highlight-card{border:1px solid CanvasText;}
  .nav a.active{border-bottom:3px solid Highlight;}
  .reading-progress>span{background:Highlight;}
  .masthead::after,.cover .c-mark{display:none;}
}

/* ---- Article detail responsive grid + issue cover image ---- */
.art-detail-grid{display:grid;grid-template-columns:1fr var(--sidebar-w,312px);gap:var(--content-gap,48px);align-items:start;}
/* Let the sidebar fill the article's height so the sticky reading-nav can travel its full length. */
.art-detail-grid > .sidebar{align-self:stretch;}
@media(max-width:1024px){
  .art-detail-grid{grid-template-columns:1fr!important;}
  /* Stacked sidebar is now full width — keep the article cover a sane size. */
  .art-detail-grid .sidebar .art-cover-image{max-width:260px;margin-inline:auto;}
}
.issue-cover-full img{width:220px;max-width:100%;aspect-ratio:3/4;object-fit:contain;background:var(--paper-2);border:1px solid var(--line);border-radius:2px;box-shadow:var(--shadow-sm);}
/* Previous/next issue pager (issue page) */
.issue-pager{display:flex;justify-content:space-between;gap:1rem;margin:2.6rem 0 0;padding-top:1.4rem;border-top:1px solid var(--line);}
.issue-pager-link{display:inline-flex;align-items:center;gap:.6rem;min-width:0;max-width:48%;overflow-wrap:anywhere;text-decoration:none;color:var(--ink-2);}
.issue-pager-link:hover{color:var(--primary);}
.issue-pager .ip-text{display:flex;flex-direction:column;min-width:0;}
.issue-pager-link.next .ip-text{align-items:flex-end;text-align:end;}
.issue-pager .ip-dir{font-family:var(--mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-3);}
.issue-pager .ip-id{font-family:var(--serif);font-weight:600;}
[dir="rtl"] .issue-pager .ip-dir{font-family:var(--arabic);text-transform:none;letter-spacing:0;}
@media(max-width:560px){.issue-pager .ip-id{font-size:.9rem;}}
/* Real issue covers: show the WHOLE cover at its natural aspect (no crop). Was
   height:300px + object-fit:cover, which clipped portrait covers top & bottom. */
.issue-card .ic-cover-img{width:100%;height:300px;object-fit:contain;background:var(--paper-2);display:block;border-radius:var(--radius);}

/* ============================================================
   DESIGN COLLECTIONS — structural families
   The default Institutional family intentionally needs no overrides. These
   families change hierarchy and component composition, not only palette.
   All selectors use logical properties so the same recipes remain RTL-safe.
   ============================================================ */

/* Contemporary — open, asymmetric hero; soft modular surfaces; compact labels. */
.design-contemporary .home-hero{text-align:start;padding:3.2rem clamp(1.5rem,4vw,4rem);border-inline-start:6px solid var(--accent);}
.design-contemporary .home-hero .hero-inner{max-width:920px;margin-inline:0;}
.design-contemporary .home-hero .hero-text{margin-inline:0;max-width:720px;}
.design-contemporary .home-hero .hero-search{margin-inline:0;max-width:660px;}
.design-contemporary .home-hero .hero-cta{justify-content:flex-start;}
.design-contemporary .section-head{border-bottom-width:1px;padding-bottom:.85rem;}
.design-contemporary .section-head h2{font-weight:700;letter-spacing:-.025em;}
.design-contemporary .latest-card,.design-contemporary .widget,.design-contemporary .issue-banner,.design-contemporary .home-content .hc-panel{box-shadow:var(--shadow-sm);border-color:color-mix(in srgb,var(--primary) 16%,var(--line));}
.design-contemporary .latest-card{border-inline-start-width:1px;}
.design-contemporary .widget-head{background:transparent;color:var(--primary-deep);border-bottom:1px solid var(--line);letter-spacing:.08em;}
.design-contemporary .nav a,.design-contemporary .btn{font-family:var(--body);}

/* Editorial — print-like rules, sharp surfaces, stronger type hierarchy. */
.design-editorial .section-head{align-items:flex-end;border-bottom:3px double var(--primary-deep);padding-bottom:.55rem;}
.design-editorial .section-head h2{font-size:1.75rem;font-weight:700;}
.design-editorial .home-hero{background:transparent;border:0;border-block:4px double var(--primary-deep);box-shadow:none;border-radius:0;text-align:start;padding:3rem 0;}
.design-editorial .home-hero .hero-inner,.design-editorial .home-hero .hero-text,.design-editorial .home-hero .hero-search{margin-inline:0;}
.design-editorial .home-hero .hero-heading{font-size:clamp(2.4rem,5vw,4.6rem);max-width:15ch;letter-spacing:-.035em;}
.design-editorial .home-hero .hero-cta{justify-content:flex-start;}
.design-editorial .home-hero.hero-brand{background:linear-gradient(135deg,var(--navy-800),var(--navy-950));}
.design-editorial .home-hero.hero-brand,.design-editorial .home-hero.hero-has-bg{border:1px solid var(--navy-900);padding-inline:clamp(1.5rem,4vw,3.5rem);}
.design-editorial .issue-banner{border:0;border-block:1px solid var(--line);box-shadow:none;padding:2rem 0;grid-template-columns:minmax(150px,190px) 1fr;}
.design-editorial .latest-card,.design-editorial .widget,.design-editorial .home-content .hc-panel,.design-editorial .abstract-block,.design-editorial .cite-box{border-radius:0;box-shadow:none;}
.design-editorial .latest-card{border:0;border-bottom:1px solid var(--line);padding:1.2rem 0;}
.design-editorial .latest-card:hover{transform:none;box-shadow:none;border-bottom-color:var(--accent);}
.design-editorial .widget-head{background:transparent;color:var(--primary-deep);border-bottom:2px solid var(--primary-deep);border-radius:0;padding:.65rem 0;}
.design-editorial .widget-body{padding:1rem 0;}
.design-editorial .nav{box-shadow:none;border-bottom:1px solid color-mix(in srgb,#fff 22%,transparent);}
.design-editorial .footer{border-top-width:1px;}

/* Minimal — reading-first, low chrome, single-column content cards. */
.design-minimal .masthead{background:var(--navy-950);border-bottom-width:1px;}
.design-minimal .nav{box-shadow:none;border-bottom:1px solid var(--line);}
.design-minimal .nav a{padding-block:.7rem;text-transform:none;letter-spacing:0;}
.design-minimal .section-head{border-bottom:1px solid var(--line);}
.design-minimal .section-head h2{font-size:1.7rem;}
.design-minimal .home-hero{background:transparent;border:0;box-shadow:none;padding:3.5rem 0;text-align:start;}
.design-minimal .home-hero .hero-inner,.design-minimal .home-hero .hero-text,.design-minimal .home-hero .hero-search{margin-inline:0;}
.design-minimal .home-hero .hero-heading{font-size:clamp(2.3rem,5vw,4rem);max-width:16ch;}
.design-minimal .home-hero .hero-cta{justify-content:flex-start;}
.design-minimal .home-hero.hero-brand{background:var(--navy-950);}
.design-minimal .home-hero.hero-brand,.design-minimal .home-hero.hero-has-bg{border:1px solid var(--line);padding-inline:clamp(1.25rem,4vw,3rem);}
.design-minimal .latest-grid{grid-template-columns:1fr!important;gap:0;}
.design-minimal .latest-card{min-height:0;background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:1.25rem 0;box-shadow:none;}
.design-minimal .latest-card:hover{transform:none;box-shadow:none;background:var(--primary-soft);}
.design-minimal .issue-banner{background:transparent;border:0;box-shadow:none;padding:0 0 2.5rem;}
.design-minimal .widget{background:transparent;border:0;border-radius:0;}
.design-minimal .widget-head{background:transparent;color:var(--primary-deep);border-bottom:1px solid var(--primary-deep);border-radius:0;padding:.6rem 0;}
.design-minimal .widget-body{padding:1rem 0;}
.design-minimal .footer{border-top:1px solid var(--line);}

/* Compact — high information density without reducing touch targets. */
.design-compact .page{padding-block:24px 40px;}
.design-compact .pkp_structure_content{padding-block:24px 40px;}
.design-compact .nav a{font-size:.82rem;padding:.45rem .7rem;min-height:44px;}
.design-compact .section-head{margin-bottom:1rem;padding-bottom:.45rem;}
.design-compact .section-head h2{font-size:1.3rem;}
.design-compact .home-hero{padding:1.6rem 1.4rem;margin-bottom:1.5rem;}
.design-compact .home-hero .hero-heading{font-size:2rem;}
.design-compact .issue-banner{grid-template-columns:150px 1fr;gap:1.25rem;padding:1.1rem;margin-bottom:1.5rem;}
.design-compact .issue-banner .cover{height:205px!important;}
.design-compact .latest-grid{gap:.65rem;}
.design-compact .latest-card{min-height:6.4rem;padding:.75rem .85rem;}
.design-compact .widget-head{padding:.55rem .75rem;font-size:.75rem;}
.design-compact .widget-body{padding:.75rem .85rem;}
.design-compact .article-item{padding:.75rem 0;}
.design-compact .toc-section{margin-bottom:1.5rem;}
.design-compact .footer .wrap{padding-bottom:24px;}

@media(max-width:768px){
  .design-contemporary .home-hero,.design-editorial .home-hero,.design-minimal .home-hero{padding-inline:1rem;}
  .design-editorial .issue-banner,.design-compact .issue-banner{grid-template-columns:1fr;}
}
/* Article sidebar now spaces its widgets with the shared --sidebar-gap too
   (no more gap:0 + per-widget inline margins), so spacing is one admin control. */

/* ---- Locale toggle (theme-built, uses <a> not <button>) ---- */
.lang-toggle a{display:inline-block;color:var(--navy-300);font-family:var(--serif);font-size:.78rem;font-weight:600;letter-spacing:.04em;padding:.3rem .7rem;line-height:1.6;}
.lang-toggle a:hover{color:#fff;text-decoration:none;}
.lang-toggle a.current{background:var(--brass-600);color:var(--navy-950);}
[dir="rtl"] .lang-toggle a{font-family:var(--arabic);}

/* ============================================================
   DEEP-PASS HARDENING — contrast (WCAG AA), core-page bridge,
   has_sidebar layout, print
   ============================================================ */

/* --- WCAG AA contrast fixes (computed) --- */
.eyebrow,.card .card-kicker{color:var(--brass-700);}   /* was brass-600 3.41:1 -> 4.73:1 */
.pill-pdf{color:#76571f;}                                /* was 3.97:1 -> 5.26:1 on brass-100 */
/* In dark mode .tag remaps to a dark surface (higher specificity), so the dark
   brown text would sit on dark — lift it to light brass for contrast. */
[data-theme="dark"] .pill-pdf{color:var(--brass-400);}

/* --- Sidebar layout: two columns when a sidebar element is present. footer.tpl
       renders .pkp_structure_sidebar (the shared journalSidebar + any block-plugin
       output) on every non-full-width page, and header.tpl adds .has_sidebar to
       match. Keying off the real element via :has() is the primary rule; the
       .has_sidebar class is the fallback for browsers without :has(). --- */
.pkp_structure_content.has_sidebar,
.pkp_structure_content:has(> .pkp_structure_sidebar){grid-template-columns:1fr var(--sidebar-w,312px);}
@media(max-width:1024px){
  .pkp_structure_content.has_sidebar,
  .pkp_structure_content:has(> .pkp_structure_sidebar){grid-template-columns:1fr;}
}

/* ============================================================
   MOBILE RESPONSIVENESS — tighten gutters, stack & shrink the
   masthead, wrap the utility bar, scale type, and guard against
   horizontal overflow. (Redefining --gutter cascades to every
   .wrap and the nav's calc()-based padding in one place.)
   ============================================================ */
@media(max-width:768px){
  :root{--gutter:20px;}
  /* Utility bar: let it wrap instead of overflowing */
  .util-bar{font-size:.72rem;}
  .util-bar .wrap{flex-wrap:wrap;gap:.3rem .9rem;min-height:0;padding-block:6px;}
  /* Masthead: smaller logo + title, CTA drops to a full-width row */
  .masthead .wrap{flex-wrap:wrap;gap:.9rem;padding-block:16px;}
  .brand-divider{display:none;}
  .brand-logo{height:min(var(--logo-h,72px),54px);max-width:100%;}
  /* Reset the optional desktop column widths so a fixed px value can never
     overflow a phone (the masthead stacks here anyway). */
  .brand-text{width:auto;}
  .brand-text .jtitle{font-size:1.3rem;}
  .brand-text .jsub{font-size:.8rem;}
  .masthead-spacer{display:none;}
  .masthead-cta{width:100%;align-items:stretch;}
  .masthead-cta .btn{width:100%;justify-content:center;text-align:center;}
  /* Type scale for dense headings on small screens */
  .obj_article_details .page_title,.art-title{font-size:1.5rem;}
  .section-head{flex-wrap:wrap;gap:.4rem .8rem;}
  .section-head h1,.section-head h2{font-size:1.3rem;}
  /* Wide content must not force the whole page to scroll sideways */
  .prose table,.abstract-block table,.obj_article_details table,.alnakib-rich table,.reading table,.data-table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;}
  .mb-v,.art-meta-bar a,.issue-doi,.keywords .kw,.prose{overflow-wrap:anywhere;}
  /* Keep native mobile browsers from zooming the page when a field receives
     focus, even when the manager selects a compact site type scale. */
  .pkp_structure_main input,.pkp_structure_main select,.pkp_structure_main textarea{font-size:16px;max-width:100%;}
}
@media(max-width:560px){
  .util-left{display:none;}            /* default ISSN also lives in the footer — reclaim the row */
  .util-left--has-text{display:flex;width:100%;justify-content:center;}  /* but keep manager-entered text visible */
  .util-right{width:100%;justify-content:flex-end;flex-wrap:wrap;}
  .art-authors{font-size:.95rem;}
  .article-item{grid-template-columns:minmax(0,1fr);gap:.35rem;}
  .article-item .article-meta-pages,.article-item .article-meta-date{white-space:normal;justify-self:start;}
  .notice{flex-direction:column;gap:.35rem;}
  .notice .n-date,.ann-more .ann-date{white-space:normal;}
  .issue-pager{flex-direction:column;}
  .issue-pager-link{max-width:none;width:100%;}
  .issue-pager-link.next{justify-content:flex-start;}
  .issue-pager-link.next .ip-text{align-items:flex-start;text-align:start;}
}
@media(max-width:400px){
  :root{--gutter:14px;}
  .brand-logo{height:min(var(--logo-h,72px),46px);}
  .brand-text .jtitle{font-size:1.16rem;}
}

/* --- Core form submit buttons: login/register/search use <button class="submit"> --- */
.pkp_structure_main button.submit,
.pkp_structure_main .cmp_form button[type="submit"]{
  display:inline-flex;align-items:center;gap:.5em;font-family:var(--serif);font-weight:600;
  font-size:.9rem;letter-spacing:.04em;text-transform:uppercase;padding:.7rem 1.3rem;cursor:pointer;
  border:1px solid var(--brass-600);border-radius:var(--radius);background:var(--brass-600);color:var(--navy-950);
  transition:background .14s,box-shadow .14s;
}
.pkp_structure_main button.submit:hover{background:var(--brass-500);}
[dir="rtl"] .pkp_structure_main button.submit{font-family:var(--arabic);text-transform:none;letter-spacing:0;font-weight:700;}

/* --- Shared form layout (login, register, search) --- */
.pkp_structure_main .cmp_form{max-width:560px;}
.pkp_structure_main .cmp_form fieldset{border:0;margin:0;padding:0;}
.pkp_structure_main .cmp_form legend{font-family:var(--serif);font-weight:600;color:var(--navy-800);font-size:1.05rem;margin-bottom:.6rem;}
[dir="rtl"] .pkp_structure_main .cmp_form legend{font-family:var(--arabic);}
.pkp_structure_main .cmp_form .label{display:block;font-family:var(--serif);font-weight:600;font-size:.84rem;color:var(--navy-800);margin-bottom:.3rem;}
[dir="rtl"] .pkp_structure_main .cmp_form .label{font-family:var(--arabic);}
.pkp_structure_main .cmp_form .fields > *{margin-bottom:1.1rem;}
.pkp_structure_main .cmp_form .required{color:#a3261c;}
.pkp_structure_main .cmp_form .buttons{display:flex;align-items:center;gap:1rem;margin-top:1.3rem;flex-wrap:wrap;}
.pkp_structure_main .cmp_form .buttons a{font-family:var(--serif);font-size:.88rem;color:var(--link);}
[dir="rtl"] .pkp_structure_main .cmp_form .buttons a{font-family:var(--arabic);}
.pkp_structure_main .pkp_form_error,
.pkp_structure_main .form_errors{background:#fbeceb;border:1px solid #e3a9a3;border-inline-start:4px solid #a3261c;border-radius:var(--radius);padding:.7rem 1rem;color:#7a1c14;margin-bottom:1rem;}
[data-theme="dark"] .pkp_structure_main .pkp_form_error,
[data-theme="dark"] .pkp_structure_main .form_errors{background:#3a1f1c;border-color:#7a3a33;color:#f0a9a1;}
[data-theme="dark"] .pkp_structure_main .cmp_form .required{color:#f08a80;}

/* --- Search page (redesigned): hero search bar + advanced disclosure --- */
.page_search ul.search_results{list-style:none;margin:0;padding:0;}
.page_search form.search-form{max-width:none;}

/* Hero panel: brass-topped card holding the whole search experience */
.search-hero{position:relative;background:var(--card,#fff);border:1px solid var(--line);border-top:3px solid var(--brass-500);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:1.9rem 1.8rem 1.7rem;margin-bottom:1.9rem;}
.search-hero__title{font-family:var(--serif);font-size:1.85rem;line-height:1.15;color:var(--navy-900);margin:0 0 .35rem;}
[dir="rtl"] .search-hero__title{font-family:var(--arabic);}
.search-hero__sub{color:var(--ink-2);font-size:.98rem;line-height:1.5;margin:0 0 1.3rem;max-width:62ch;}

/* The prominent search bar: icon + input + button share one rounded surface */
.search-bar{display:flex;align-items:center;gap:.4rem;background:var(--paper-2,#f7f5f0);border:1.5px solid var(--line);border-radius:calc(var(--radius) + 3px);padding:.3rem .3rem;padding-inline-start:.95rem;transition:border-color .14s,box-shadow .14s,background .14s;}
.search-bar:focus-within{border-color:var(--navy-600);box-shadow:0 0 0 4px rgba(22,58,99,.13);background:var(--card,#fff);}
.search-bar__icon{flex:0 0 auto;display:flex;color:var(--ink-3);}
.search-bar__icon svg{width:21px;height:21px;}
.page_search .search-bar input.query,.page_search .search-bar input[type="search"]{flex:1 1 auto;min-width:0;width:auto;border:0;background:transparent;font-size:1.1rem;padding:.7rem .3rem;outline:none;color:var(--ink);box-shadow:none;}
.page_search .search-bar input.query:focus{box-shadow:none;border:0;}
.search-bar__submit{flex:0 0 auto;border:0;background:var(--navy-700);color:#fff;font-family:var(--serif);font-weight:600;font-size:.97rem;padding:.74rem 1.65rem;border-radius:var(--radius);cursor:pointer;transition:background .14s;}
[dir="rtl"] .search-bar__submit{font-family:var(--arabic);}
.search-bar__submit:hover{background:var(--navy-800);}
.search-bar__submit:focus-visible{outline:2px solid var(--navy-600);outline-offset:2px;}
@media(max-width:560px){
  .search-bar{flex-wrap:wrap;gap:.5rem;padding:.6rem;}
  .page_search .search-bar input.query{flex:1 1 100%;order:1;}
  .search-bar__icon{order:0;}
  .search-bar__submit{order:2;width:100%;}
}

/* Advanced filters — zero-JS <details> disclosure */
.search-adv{margin-top:1rem;border-top:1px solid var(--line);}
.search-adv__toggle{display:flex;align-items:center;gap:.55rem;list-style:none;cursor:pointer;padding:.85rem .15rem .2rem;font-family:var(--serif);font-weight:600;font-size:.95rem;color:var(--navy-700);user-select:none;}
[dir="rtl"] .search-adv__toggle{font-family:var(--arabic);}
.search-adv__toggle::-webkit-details-marker{display:none;}
.search-adv__toggle:hover{color:var(--navy-900);}
.search-adv__ico{width:17px;height:17px;flex:0 0 auto;color:var(--brass-600);}
.search-adv__label{flex:1;}
.search-adv__chev{width:17px;height:17px;flex:0 0 auto;color:var(--ink-3);transition:transform .16s;}
.search-adv[open] .search-adv__chev{transform:rotate(180deg);}
.search-adv__body{padding:.6rem .15rem .2rem;}
.search-adv__dates{display:flex;gap:1.1rem;flex-wrap:wrap;}
.search-adv__dates > div{flex:1 1 220px;}
.search-adv__grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem 1.4rem;align-items:start;margin-top:1.1rem;}
.search-adv__grid .field input,.search-adv__grid .field select{width:100%;}
@media(max-width:560px){.search-adv__grid{grid-template-columns:1fr;}}
.page_search .search-adv legend{font-family:var(--serif);font-weight:600;color:var(--navy-800);font-size:.92rem;margin-bottom:.4rem;}
[dir="rtl"] .page_search .search-adv legend{font-family:var(--arabic);}

/* Results header: title + count pill + query echo */
.search-results-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:.3rem .8rem;border-bottom:2px solid var(--line);padding-bottom:.6rem;margin:0 0 1.3rem;}
.search-results-head .srh-title{font-family:var(--serif);font-size:1.32rem;color:var(--navy-900);margin:0;}
[dir="rtl"] .search-results-head .srh-title{font-family:var(--arabic);}
.search-results-head .srh-title .count{display:inline-block;min-width:1.4em;text-align:center;font-size:.78rem;font-weight:700;color:#fff;background:var(--brass-700);border-radius:999px;padding:.12rem .5rem;vertical-align:middle;margin-inline-start:.25rem;}
.search-results-head .srh-for{margin:0;color:var(--ink-3);font-size:.95rem;}
.search-results-head .srh-term{color:var(--navy-700);font-weight:600;}
.search-results-head .srh-term::before{content:"\201C";}
.search-results-head .srh-term::after{content:"\201D";}

/* Result rows: gentle dividers between summaries */
.page_search ul.search_results > li{border-bottom:1px solid var(--line);}
.page_search ul.search_results > li:last-child{border-bottom:0;}
.cmp_pagination .prev,.cmp_pagination .next{font-family:var(--serif);font-weight:600;}

/* ============================================================
   Contributor directory  (public …/directory page; …/alnakibdirectory = legacy alias)
   Editorial team and/or published authors, with an instant
   client-side filter (alnakib.js). Card grid, brass accents,
   dark-mode aware via the same --card/--line/--paper-2 tokens.
   ============================================================ */
/* ---- HTML site-map page ---- */
.alnakib-sitemap .sm-hero{margin-bottom:1.4rem;}
.alnakib-sitemap .sm-hero__title{font-family:var(--serif);font-size:1.85rem;line-height:1.15;color:var(--primary-deep);margin:0 0 .3rem;}
[dir="rtl"] .alnakib-sitemap .sm-hero__title{font-family:var(--arabic);}
.alnakib-sitemap .sm-hero__sub{color:var(--ink-2);font-size:.98rem;margin:0;max-width:64ch;}
.alnakib-sitemap .sm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.2rem;}
.alnakib-sitemap .sm-col{background:var(--card,#fff);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:1.2rem 1.3rem;}
.alnakib-sitemap .sm-col__head{font-size:1.05rem;color:var(--primary-deep);margin:0 0 .6rem;padding-bottom:.45rem;border-bottom:1px solid var(--line);}
.alnakib-sitemap .sm-list{list-style:none;margin:0;padding:0;}
.alnakib-sitemap .sm-list li{margin:.3rem 0;}
.alnakib-sitemap .sm-list a{color:var(--link,var(--navy-700));text-decoration:none;}
.alnakib-sitemap .sm-list a:hover{text-decoration:underline;}
.alnakib-sitemap .sm-issues{margin-top:1.4rem;background:var(--card,#fff);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:1.2rem 1.3rem;}
.alnakib-sitemap .sm-list--issues{columns:2;column-gap:1.6rem;}
@media(max-width:560px){.alnakib-sitemap .sm-list--issues{columns:1;}}
.alnakib-sitemap .sm-xml{margin-top:1.4rem;color:var(--ink-2);font-size:.92rem;}
.dir-hero{position:relative;background:var(--card,#fff);border:1px solid var(--line);border-top:3px solid var(--brass-500);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:1.8rem 1.8rem 1.6rem;margin-bottom:1.5rem;}
.dir-hero__title{font-family:var(--serif);font-size:1.85rem;line-height:1.15;color:var(--navy-900);margin:0 0 .35rem;}
[dir="rtl"] .dir-hero__title{font-family:var(--arabic);}
.dir-hero__sub{color:var(--ink-2);font-size:.98rem;line-height:1.5;margin:0;max-width:64ch;}
.dir-hero__intro{color:var(--ink-2);font-size:.98rem;line-height:1.6;max-width:70ch;}
.dir-hero__intro :last-child{margin-bottom:0;}

.dir-search{display:flex;align-items:center;gap:.4rem;background:var(--paper-2,#f7f5f0);border:1.5px solid var(--line);border-radius:calc(var(--radius) + 3px);padding:.3rem .3rem;padding-inline-start:.95rem;margin-bottom:1.8rem;transition:border-color .14s,box-shadow .14s,background .14s;}
.dir-search:focus-within{border-color:var(--navy-600);box-shadow:0 0 0 4px rgba(22,58,99,.13);background:var(--card,#fff);}
.dir-search__icon{flex:0 0 auto;display:flex;color:var(--ink-3);}
.dir-search__icon svg{width:20px;height:20px;}
.dir-search__input{flex:1 1 auto;min-width:0;border:0;background:transparent;font-size:1.05rem;padding:.7rem .3rem;outline:none;color:var(--ink);box-shadow:none;}
.dir-search__input:focus{box-shadow:none;border:0;}

.dir-section{margin:0 0 2.4rem;}
.dir-section__head{font-family:var(--serif);font-size:1.4rem;color:var(--navy-900);margin:0 0 1.1rem;display:flex;align-items:baseline;gap:.5rem;border-bottom:2px solid var(--line);padding-bottom:.55rem;}
[dir="rtl"] .dir-section__head{font-family:var(--arabic);}
.dir-count{display:inline-block;min-width:1.4em;text-align:center;font-size:.74rem;font-weight:700;color:#fff;background:var(--brass-700);border-radius:999px;padding:.12rem .5rem;}
.dir-group{margin:0 0 1.6rem;}
.dir-group__head{font-family:var(--serif);font-size:1.04rem;color:var(--brass-700,#9a7b2e);margin:0 0 .7rem;letter-spacing:.01em;}
[dir="rtl"] .dir-group__head{font-family:var(--arabic);}

.dir-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:.85rem;}
.dir-card{display:flex;flex-direction:column;gap:.18rem;background:var(--card,#fff);border:1px solid var(--line);border-inline-start:3px solid var(--brass-500);border-radius:var(--radius);padding:.85rem 1rem;content-visibility:auto;contain-intrinsic-size:auto 92px;}
.dir-card__name{font-family:var(--serif);font-weight:600;font-size:1rem;color:var(--navy-900);}
[dir="rtl"] .dir-card__name{font-family:var(--arabic);}
.dir-card__affil{font-size:.85rem;color:var(--ink-2);line-height:1.4;}
.dir-card__meta{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem .8rem;margin-top:.25rem;}
.dir-card__count{font-size:.78rem;color:var(--ink-3);}
.dir-card__orcid{display:inline-flex;align-items:center;gap:.32rem;font-size:.76rem;color:var(--ink-3);text-decoration:none;}
.dir-card__orcid:hover .dir-card__orcid-id{text-decoration:underline;color:var(--navy-700);}
.dir-orcid-mark{width:15px;height:15px;flex:0 0 auto;border-radius:50%;}
.dir-card__orcid-id{font-family:var(--mono);letter-spacing:.01em;}

.dir-empty,.dir-noresults{color:var(--ink-3);font-size:.95rem;padding:.6rem 0;}
/* NO `border-color` here: it is a FOUR-SIDE shorthand, so it silently overwrote
   .dir-hero's `border-top:3px solid var(--brass-500)` and .dir-card's brass
   inline-start spine — measured in Chromium: the hero's top border came back
   rgb(43,58,79) (dark --line) instead of rgb(184,151,63) (--brass-500), while
   .metric-card in the same shot kept its brass. Both declarations were redundant
   anyway: --card and --line are already remapped by :root[data-theme="dark"]. */
[data-theme="dark"] .dir-hero,[data-theme="dark"] .dir-card{background:var(--card);}
[data-theme="dark"] .dir-search{background:var(--paper-2);border-color:var(--line);}
@media(max-width:560px){.dir-grid{grid-template-columns:1fr;}}

/* --- Optional inline PDF reader (article page; admin opt-in) --- */
.pdf-embed{margin:1.8rem 0;}
.pdf-embed iframe{width:100%;height:80vh;min-height:480px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-2);}
.pdf-embed-fallback{margin:.6rem 0 0;font-size:.88rem;}
@media(max-width:768px){.pdf-embed iframe{height:70vh;min-height:360px;}}
@media print{.pdf-embed{display:none!important;}}

/* ============================================================
   pdfJsViewer galley page — the standalone, full-screen PDF reader.
   init() drops the Default theme's compiled stylesheet
   (removeStyle('stylesheet')), and that bundle is where the
   .header_view + .galley_view full-height rules lived. Without
   them the embedded reader collapsed to the iframe's inline
   min-height:500px and read as "a banner at the bottom". The plugin
   page is a bare <html><body> (no .pkp_structure_page) that still
   loads THIS stylesheet, so the layout is restored here. No :has()
   is needed — these class/id hooks exist only on that page, and the
   height is viewport-relative so it never depends on <body> height. */
.header_view{display:flex;align-items:center;gap:.9rem;height:56px;padding:0 1rem;margin:0;background:linear-gradient(180deg,var(--navy-800),var(--navy-900));color:#fff;border-bottom:3px solid var(--brass-600);}
.header_view .title{flex:1 1 auto;min-width:0;font-family:var(--serif);font-weight:600;font-size:1rem;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.header_view .title:hover{color:#fff;text-decoration:none;}
.header_view .return{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:4px;background:rgba(255,255,255,.08);color:#fff;}
.header_view .return:hover{background:rgba(255,255,255,.18);}
.header_view .return::before{content:"";width:18px;height:18px;background-color:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 18l-6-6 6-6'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 18l-6-6 6-6'/%3E%3C/svg%3E") center/contain no-repeat;}
.header_view .download{flex:0 0 auto;display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .9rem;border-radius:var(--radius);background:var(--brass-500);color:var(--navy-950);font-family:var(--serif);font-weight:600;font-size:.85rem;}
.header_view .download:hover{background:var(--brass-400);color:var(--navy-950);text-decoration:none;}
#pdfCanvasContainer.galley_view{display:flex;flex-direction:column;height:calc(100vh - 56px);margin:0;background:var(--paper-2);}
#pdfCanvasContainer.galley_view > iframe{flex:1 1 auto;width:100%;min-height:0;border:0;display:block;}
.galley_view_notice{flex:0 0 auto;}
.galley_view_notice_message{margin:0;padding:.55rem 1rem;background:var(--brass-100);color:var(--navy-900);font-size:.85rem;text-align:center;}
/* This standalone page sets <html lang> but no dir attribute, so key
   the RTL adjustments off :lang(ar) rather than [dir="rtl"]. */
:lang(ar) .header_view{flex-direction:row-reverse;}
:lang(ar) .header_view .return::before{transform:scaleX(-1);}
:lang(ar) .header_view .title,:lang(ar) .header_view .download{font-family:var(--arabic);}

/* --- Auth pages (login / register / lost password): premium branded card.
       CSS only — the core form markup/logic is left untouched. --- */
.page_login,.page_lost_password{max-width:440px;margin-inline:auto;}
.page_register{max-width:640px;margin-inline:auto;}
.page_login h1,.page_register h1,.page_lost_password h1{text-align:center;font-size:1.55rem;margin:.2rem 0 1.3rem;}
.page_login .cmp_form,.page_register .cmp_form,.page_lost_password .cmp_form{background:var(--card);border:1px solid var(--line);border-top:3px solid var(--brass-500);border-radius:var(--radius);padding:1.9rem 2rem;box-shadow:var(--shadow);}
.page_login .cmp_form input[type="text"],.page_login .cmp_form input[type="email"],.page_login .cmp_form input[type="password"],
.page_register .cmp_form input[type="text"],.page_register .cmp_form input[type="email"],.page_register .cmp_form input[type="password"]{padding:.6rem .85rem;}
.page_login button.submit,.page_lost_password button.submit{width:100%;justify-content:center;font-size:.95rem;}
.page_login .remember label,.page_register .remember label{display:flex;align-items:center;gap:.5rem;}
.page_login .remember input,.page_register .remember input{width:auto;}
.page_login .password label a,.page_login .lost a{display:inline-block;margin-top:.35rem;font-size:.82rem;}
.page_login a.register,.page_register a.login{display:inline-block;font-family:var(--serif);font-weight:600;color:var(--link);}
[dir="rtl"] .page_login a.register,[dir="rtl"] .page_register a.login{font-family:var(--arabic);}
.page_login .recaptcha_wrapper,.page_register .recaptcha_wrapper,.page_register .altcha_wrapper{display:flex;margin:1rem 0;border:0;padding:0;}

/* ---- Auth pages: modern, clearly-sectioned form design ---- */
.page_register .cmp_form,.page_login .cmp_form,.page_lost_password .cmp_form{padding:2.2rem;}
/* Divide the register form into clear sections */
.page_register .cmp_form fieldset{margin:0 0 1.5rem;padding:0 0 1.4rem;border-bottom:1px solid var(--line);}
.page_register .cmp_form fieldset:last-of-type{margin-bottom:0;padding-bottom:0;border-bottom:0;}
/* Modern small-caps section headers (mode-safe: dark override above recolours to --ink) */
.page_register .cmp_form fieldset > legend,.page_register .cmp_form legend,
.page_login .cmp_form fieldset > legend,.page_login .cmp_form legend{font-family:var(--serif);font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-3);margin:0 0 1rem;}
[dir="rtl"] .page_register .cmp_form legend,[dir="rtl"] .page_login .cmp_form legend{font-family:var(--arabic);text-transform:none;letter-spacing:0;font-size:1rem;}
/* The privacy/email consent and reviewer opt-ins read as a grouped soft card */
.page_register .cmp_form fieldset.consent,.page_register .cmp_form fieldset.reviewer{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius);padding:1.2rem 1.3rem;}
.page_register .cmp_form .optin{margin-bottom:.65rem;}
.page_register .cmp_form .optin:last-child{margin-bottom:0;}
.page_register .cmp_form .optin label,.page_register .cmp_form .reviewer label{display:flex;align-items:flex-start;gap:.55rem;font-size:.9rem;line-height:1.5;}
/* Full-width primary submit, consistent input sizing */
.page_register button.submit,.page_register .cmp_form button[type="submit"]{width:100%;justify-content:center;}
.page_register .cmp_form input,.page_register .cmp_form select,.page_login .cmp_form input{font-size:.95rem;}

/* --- Registration & label-wrapped forms (registrationForm + contexts) --- */
.pkp_structure_main .cmp_form fieldset{border:0;margin:0 0 1.4rem;padding:0;}
.pkp_structure_main .cmp_form fieldset > legend{font-family:var(--serif);font-weight:600;color:var(--navy-800);font-size:1.05rem;margin:0 0 .7rem;}
[dir="rtl"] .pkp_structure_main .cmp_form fieldset > legend{font-family:var(--arabic);}
.pkp_structure_main .cmp_form .fields > div{margin-bottom:1.1rem;}
.pkp_structure_main .cmp_form .fields label{display:block;}
.pkp_structure_main .cmp_form .fields .label{display:block;font-family:var(--serif);font-weight:600;font-size:.84rem;color:var(--navy-800);margin-bottom:.3rem;}
[dir="rtl"] .pkp_structure_main .cmp_form .fields .label{font-family:var(--arabic);}
.pkp_structure_main .cmp_form .required{color:#a3261c;margin-inline-start:.15rem;}
/* Two-up identity fields on wider screens */
@media(min-width:560px){
  .page_register .cmp_form .identity .fields{display:grid;grid-template-columns:1fr 1fr;gap:0 1.2rem;}
  .page_register .cmp_form .identity .fields .affiliation,
  .page_register .cmp_form .identity .fields .country{grid-column:1 / -1;}
}
/* Site-wide registration: per-journal role selection */
.cmp_form .contexts{list-style:none;margin:.4rem 0 0;padding:0;display:grid;gap:1rem;}
.cmp_form .contexts .context{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.2rem;}
.cmp_form .contexts .context > .name{font-family:var(--serif);font-weight:600;color:var(--navy-800);margin-bottom:.5rem;}
[dir="rtl"] .cmp_form .contexts .context > .name{font-family:var(--arabic);}
.cmp_form .roles{margin:.3rem 0 0;}
.cmp_form .roles > legend{font-size:.8rem;color:var(--ink-3);font-weight:600;margin-bottom:.3rem;}
.cmp_form .roles label,.cmp_form .context_privacy label,.cmp_form .remember label{display:flex;align-items:flex-start;gap:.5rem;font-size:.9rem;margin-bottom:.35rem;line-height:1.45;}
.cmp_form input[type="checkbox"],.cmp_form input[type="radio"]{width:auto;margin-top:.2rem;flex:0 0 auto;}
.cmp_form .context_privacy{margin-top:.6rem;font-size:.88rem;}
[data-theme="dark"] .cmp_form .contexts .context{background:var(--paper-2);}
[data-theme="dark"] .cmp_form .contexts .context > .name{color:var(--ink);}
/* Dark mode: make EVERY form label/legend/consent text readable. Field labels are
   `.fields .label` (navy by a later rule that ties the generic dark override on
   specificity), and the privacy/email consent text is a bare <span> inside the
   .optin <label> — both were dark-on-dark. Set the form's base text + beat the
   navy label/legend rules with the higher-specificity [data-theme] selectors. */
[data-theme="dark"] .pkp_structure_main .cmp_form{color:var(--ink);}
[data-theme="dark"] .pkp_structure_main .cmp_form .label,
[data-theme="dark"] .pkp_structure_main .cmp_form .fields .label,
[data-theme="dark"] .pkp_structure_main .cmp_form label,
[data-theme="dark"] .pkp_structure_main .cmp_form legend,
[data-theme="dark"] .pkp_structure_main .cmp_form fieldset > legend,
[data-theme="dark"] .pkp_structure_main .cmp_form .optin span,
[data-theme="dark"] .pkp_structure_main .cmp_form .roles > legend{color:var(--ink);}

/* --- Manager "Edit" links (editLink.tpl, shown on about/contact/submissions…) --- */
.cmp_edit_link{display:inline-block;margin-inline-start:.5rem;font-family:var(--mono);font-size:.64rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--brass-700);border:1px solid var(--brass-400);border-radius:2px;padding:.05rem .4rem;vertical-align:middle;}
.cmp_edit_link:hover{background:var(--brass-600);color:#fff;border-color:var(--brass-600);text-decoration:none;}
[data-theme="dark"] .cmp_edit_link{color:var(--brass-400);}

/* --- Contact page blocks --- */
.page_contact .contact_section{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.4rem;margin-top:1.2rem;}
.page_contact .contact,.page_contact .address{background:var(--card);border:1px solid var(--line);border-inline-start:3px solid var(--brass-500);border-radius:var(--radius);padding:1.2rem;}
.page_contact .contact .name{font-family:var(--serif);font-weight:600;color:var(--navy-900);}
[dir="rtl"] .page_contact .contact .name{font-family:var(--arabic);}
.page_contact .contact .title,.page_contact .contact .affiliation{color:var(--ink-3);font-size:.9rem;}
.page_contact .contact .phone .label,.page_contact .contact .email .label{color:var(--ink-3);font-size:.74rem;text-transform:uppercase;letter-spacing:.06em;}
.page_contact .contact .email a,.page_contact .contact .phone a{color:var(--link);}
.page_contact .contact .email a:hover,.page_contact .contact .phone a:hover{color:var(--link-hover);}
.page_contact .contact h2,.page_contact .address h2{display:flex;align-items:center;gap:.5rem;font-size:1.05rem;margin:0 0 .8rem;}
.page_contact .c-ico{flex:0 0 auto;color:var(--brass-600);}
[data-theme="dark"] .page_contact .c-ico{color:var(--brass-400);}
.page_contact .contact .phone,.page_contact .contact .email{margin-top:.5rem;}

/* --- Issue archive: core emits <ul class="issues_archive"> of issue_summary cards --- */
.page_issue_archive .issues_archive{list-style:none;margin:1.4rem 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:1.6rem;}
.page_issue_archive .issues_archive > li{content-visibility:auto;contain-intrinsic-size:auto 380px;}
.page_issue_archive .volume-head{font-family:var(--serif);font-size:1.15rem;color:var(--brass-700);letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid var(--line);padding-bottom:.5rem;margin:2.2rem 0 1.2rem;}
.page_issue_archive .volume-head:first-of-type{margin-top:.6rem;}
[dir="rtl"] .page_issue_archive .volume-head{text-transform:none;letter-spacing:0;font-family:var(--arabic);}
.page_issue_archive .vol-year{color:var(--ink-3);font-weight:400;font-family:var(--mono);font-size:.82rem;}
[data-theme="dark"] .page_issue_archive .volume-head{color:var(--brass-400);}
@media(max-width:1024px){.page_issue_archive .issues_archive{grid-template-columns:repeat(3,1fr);}}
@media(max-width:768px){.page_issue_archive .issues_archive{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.page_issue_archive .issues_archive{grid-template-columns:1fr;}}
.page_issue_archive .issues_archive > li{margin:0;}

/* --- Article lists core wraps in <ul class="cmp_article_list"> (category browse) --- */
.cmp_article_list{list-style:none;margin:0;padding:0;}
.cmp_article_list > li{margin:0;}

/* --- Editorial masthead / history: <ul class="user_listing"> as a clean card grid --- */
.user_listing{list-style:none;margin:1rem 0 1.6rem;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;}
.user_listing > li{background:var(--card);border:1px solid var(--line);border-inline-start:3px solid var(--brass-500);border-radius:var(--radius);padding:.9rem 1.1rem;}
.user_listing .name{display:block;font-family:var(--serif);font-weight:600;color:var(--navy-900);}
[dir="rtl"] .user_listing .name{font-family:var(--arabic);}
.user_listing .affiliation{display:block;font-size:.86rem;color:var(--ink-3);font-style:italic;margin-top:.15rem;}
[dir="rtl"] .user_listing .affiliation{font-style:normal;}
.user_listing .date_start{display:block;font-family:var(--mono);font-size:.72rem;color:var(--ink-3);margin-bottom:.15rem;}
.user_listing .orcid{display:inline-flex;vertical-align:middle;margin-inline-start:.3rem;}
.user_listing .orcid a{display:inline-flex;}
.user_listing .orcid svg,.user_listing .orcid img{width:1em;height:1em;}

/* --- Announcements list page: core emits .obj_announcement_summary --- */
.obj_announcement_summary{background:var(--card);border:1px solid var(--line);border-inline-start:4px solid var(--brass-500);border-radius:var(--radius);padding:1rem 1.2rem;margin-bottom:1.1rem;overflow:hidden;}
.obj_announcement_summary .date{font-family:var(--mono);font-size:.74rem;color:var(--ink-3);margin-bottom:.2rem;}
.obj_announcement_summary h2,.obj_announcement_summary h3{font-size:1.05rem;margin:0 0 .35rem;}
.obj_announcement_summary .summary{font-size:.92rem;color:var(--ink-2);}
.obj_announcement_summary_image{max-width:160px;float:right;margin:0 0 .5rem 1rem;border-radius:var(--radius);}
[dir="rtl"] .obj_announcement_summary_image{float:left;margin:0 1rem .5rem 0;}
.page_announcements .read_more{font-family:var(--serif);font-weight:600;font-size:.85rem;}

/* --- Shared components: notification.tpl (warning/error/notice), breadcrumb
       separator, announcements list wrapper --- */
.cmp_notification{background:var(--card);border:1px solid var(--line);border-inline-start:4px solid var(--brass-500);border-radius:var(--radius);padding:.9rem 1.2rem;margin:1rem 0;color:var(--ink-2);font-size:.93rem;}
.cmp_notification.warning{border-inline-start-color:#b07d12;background:#fbf3df;color:#6b4e07;}
.cmp_notification.error{border-inline-start-color:#a3261c;background:#fbeceb;color:#7a1c14;}
.cmp_notification.success{border-inline-start-color:#2e7d32;background:#eef7ef;color:#1f5723;}
/* Dark mode: the status colours above are light "islands" on the dark canvas;
   remap to deep-tinted backgrounds with light text. */
[data-theme="dark"] .cmp_notification.warning{background:#3a2f12;color:#f0d692;border-inline-start-color:#caa53a;}
[data-theme="dark"] .cmp_notification.error{background:#3a1f1c;color:#f0a9a1;border-inline-start-color:#d06a60;}
[data-theme="dark"] .cmp_notification.success{background:#15301a;color:#a7d8ab;border-inline-start-color:#4a9d4f;}
.cmp_breadcrumbs .separator{margin-inline:.35rem;color:var(--line);}
.cmp_breadcrumbs .current span{color:var(--ink-2);}
.cmp_announcements{list-style:none;margin:0;padding:0;}

/* --- About page prose --- */
.page_about{max-width:820px;}
.page_about p,.page_about li{line-height:1.75;}

/* ============================================================
   MOTION — modern, restrained entrance + micro-interactions.
   Base states keep opacity:1, so when prefers-reduced-motion is on
   (the rule above forces animation/transition:none) nothing is hidden.
   ============================================================ */
@keyframes alnakib-fade-up{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes alnakib-fade{from{opacity:0}to{opacity:1}}

/* Masthead + homepage entrance, gently staggered */
.masthead .brand-logo,.masthead .brand-text,.masthead-cta{animation:alnakib-fade-up .6s cubic-bezier(.22,.61,.36,1) both;}
.masthead .brand-text{animation-delay:.06s;}
.masthead-cta{animation-delay:.12s;}
.layout .section-head,.issue-banner,.notice,.lead-para{animation:alnakib-fade-up .55s cubic-bezier(.22,.61,.36,1) both;}
.issue-banner{animation-delay:.06s;}
/* On the homepage the scroll-reveal (JS adds .alnakib-anim) owns these elements;
   drop the load-time keyframe so it doesn't win the cascade and show them early. */
.alnakib-anim .layout .section-head,.alnakib-anim .issue-banner,.alnakib-anim .notice,.alnakib-anim .lead-para,.alnakib-anim .stat-row,
.alnakib-anim .sidebar .widget,.alnakib-anim .toc-section .article-item,.alnakib-anim .stat-row .stat{animation:none;}
.stat-row{animation:alnakib-fade .9s ease both;}
.sidebar .widget{animation:alnakib-fade-up .55s ease both;}
.toc-section .article-item{animation:alnakib-fade-up .5s ease both;}
.toc-section .article-item:nth-child(1){animation-delay:.03s}
.toc-section .article-item:nth-child(2){animation-delay:.08s}
.toc-section .article-item:nth-child(3){animation-delay:.13s}
.toc-section .article-item:nth-child(4){animation-delay:.18s}
.toc-section .article-item:nth-child(5){animation-delay:.23s}

/* Primary nav: brass underline that slides in (centre-out) */
.nav a{position:relative;}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--brass-500);transform:scaleX(0);transform-origin:center;transition:transform .24s cubic-bezier(.22,.61,.36,1);}
.nav a:hover::after,.nav a.active::after{transform:scaleX(1);}

/* Buttons: subtle lift */
.btn{transition:background .16s,color .16s,border-color .16s,transform .16s,box-shadow .16s;}
.btn:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(10,31,60,.16);}
.btn:active{transform:translateY(0);box-shadow:none;}

/* Cards / widgets / covers / pills micro-interactions */
.widget,.person{transition:transform .2s cubic-bezier(.22,.61,.36,1),box-shadow .2s,border-color .2s;}
.widget:hover,.person:hover{transform:translateY(-2px);box-shadow:var(--shadow);}
.cover{transition:transform .25s cubic-bezier(.22,.61,.36,1),box-shadow .25s;}
a.cover:hover{transform:translateY(-3px) scale(1.01);box-shadow:var(--shadow);}
.kw,.tag,.galley,.obj_galley_link{transition:background .16s,color .16s,border-color .16s,transform .16s;}
.kw:hover,.galley:hover,.obj_galley_link:hover{transform:translateY(-1px);}
.user_listing > li{transition:transform .2s,box-shadow .2s;}
.user_listing > li:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm);}

/* Animated underline for in-content prose / rich-text links */
.prose a,.alnakib-rich a{background-image:linear-gradient(var(--link-hover),var(--link-hover));background-size:0% 1px;background-position:0 100%;background-repeat:no-repeat;transition:background-size .25s ease,color .15s;}
.prose a:hover,.alnakib-rich a:hover{background-size:100% 1px;text-decoration:none;}

/* --- Print: clean scholarly output --- */
@media print{
  .util-bar,.masthead,.nav,.pkp_structure_footer_wrapper,.index-strip,.sidebar,.pkp_structure_sidebar,.masthead-cta,.lang-toggle,.obj_galley_link,.download-box,.cmp_breadcrumbs,.cmp_skip_to_content,.art-share,.theme-toggle,.nav-toggle,.to-top,.reading-progress{display:none!important;}
  body{background:#fff;color:#000;font-size:11pt;}
  .pkp_structure_page{display:block;}
  .pkp_structure_content{display:block;max-width:none;margin:0;padding:0;}
  .art-detail-grid{display:block!important;}
  a{color:#000;text-decoration:none;}
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:8pt;color:#555;word-break:break-all;}
  h1,h2,h3,.art-title,.obj_article_details .page_title{color:#000;}
  .abstract-block,.art-meta-bar{border:1px solid #ccc;background:none;}
  .kw,.tag,.galley-btn{background:none!important;color:#000!important;border:1px solid #999;padding:0 .3em;}
  .references li,.abstract-block{page-break-inside:avoid;}
}

/* ---- Print / "Save as PDF" refinements (augment the block above) ----
   Adds page geometry, hides the interactive elements added since the base
   print rules were written (the consent banner is position:fixed, so without
   this it stamps onto EVERY printed sheet; charts render poorly on paper),
   and controls page breaks so headings/figures/tables don't split badly.
   Screen rendering is untouched — these are print-only. */
@page{margin:1.8cm 1.6cm;}
@media print{
  .consent-banner,.art-usage,.journal-chart,.alnakib-chart,.blk--sbChart,
  .dir-search,.dir-noresults,#dirStatus,.ann-ctrls,.ann-dots,.ann-dot,.alnakib-lightbox{display:none!important;}
  .page,.pkp_structure_main{max-width:none!important;width:auto!important;float:none!important;margin:0!important;padding:0!important;}
  /* keep a heading with the content it introduces */
  h1,h2,h3,h4,.art-title{page-break-after:avoid;break-after:avoid;}
  h2{font-size:14pt;}
  h3{font-size:12.5pt;}
  p,li,blockquote{orphans:3;widows:3;}
  figure,img,table,blockquote,.references li,.abstract-block,.mb-item{page-break-inside:avoid;break-inside:avoid;}
  /* tables: a visible grid + compact type so wide tables fit the sheet */
  table{border-collapse:collapse!important;width:100%!important;font-size:9pt;}
  th,td{border:1px solid #999!important;padding:3px 6px!important;}
  figcaption,caption{font-size:8.5pt;color:#333;}
  /* metric chips (cited-by, downloads) read fine as plain text on paper */
  .mb-metric,.mb-item{background:none!important;border:0!important;}
}

/* ============================================================
   SECTION-BY-SECTION HARDENING — restore base utilities removed
   with the default stylesheet, rich admin content, custom widgets
   ============================================================ */

/* ---- Skip links: visually hidden until focused (default theme used to hide these) ---- */
.cmp_skip_to_content{position:absolute;z-index:9999;}
.cmp_skip_to_content a{position:absolute;inset-inline-start:-2000px;top:0;width:1px;height:1px;overflow:hidden;
  background:var(--navy-900);color:#fff;padding:.7rem 1.1rem;font-family:var(--serif);text-decoration:none;}
.cmp_skip_to_content a:focus{inset-inline-start:0;width:auto;height:auto;overflow:visible;outline:3px solid var(--brass-500);}
/* Skip-link landing targets: clear the sticky nav and show where focus moved. */
#pkp_content_main,#pkp_content_footer{scroll-margin-top:96px;}
#pkp_content_main:focus-visible,#pkp_content_footer:focus-visible{outline:3px solid var(--brass-500);outline-offset:3px;border-radius:2px;}

/* ---- Other visually-hidden helpers the default sheet provided ---- */
.pkp_helpers_display_none{display:none !important;}
.pkp_screen_reader,.element-invisible{position:absolute !important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}

/* ---- Rich admin content (FieldRichTextarea output via strip_unsafe_html) ---- */
.alnakib-rich a,.foot-bottom a,.foot-brand a,.widget-body a{
  color:var(--link);text-decoration:underline;text-decoration-color:var(--brass-400);text-underline-offset:2px;}
.alnakib-rich a:hover{color:var(--link-hover);text-decoration-color:var(--brass-600);}
/* Links on the ALWAYS-dark surfaces (footer, masthead note, navy sidebar box)
   must stay light — the base --link is a dark navy that's unreadable there in
   light mode. Higher specificity / later source so they win over .alnakib-rich a. */
.foot-brand a,.foot-bottom a,.footer .alnakib-rich a,.footer a{color:var(--navy-100);text-decoration-color:var(--brass-400);}
.foot-brand a:hover,.foot-bottom a:hover,.footer .alnakib-rich a:hover,.footer a:hover{color:#fff;text-decoration-color:var(--brass-500);}
.masthead-cta__note a,.blk--sbSubmit a{color:#cfe0f0;text-decoration:underline;text-decoration-color:var(--brass-400);text-underline-offset:2px;}
.masthead-cta__note a:hover,.blk--sbSubmit a:hover{color:#fff;}
.alnakib-rich > :first-child{margin-top:0;}
/* Usage-chart container with server-rendered data and native SVG enhancement. */
.alnakib-chart{color:var(--ink);}
.journal-chart{margin-top:var(--section-gap,2.4rem);}
.journal-chart .alnakib-chart,.art-usage .alnakib-chart{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1rem;}
.alnakib-chart__legend{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:.55rem;font-size:.82rem;color:var(--ink-2);}
.alnakib-chart__legend-item{display:inline-flex;align-items:center;gap:.4rem;}
.alnakib-chart__swatch{inline-size:1.5rem;block-size:3px;border-radius:3px;background:var(--primary);}
.alnakib-chart__legend-item--secondary .alnakib-chart__swatch{background:var(--brass-600);}
.alnakib-chart__plot{min-height:220px;inline-size:100%;}
.alnakib-chart__svg{display:block;inline-size:100%;block-size:auto;overflow:visible;}
.alnakib-chart__grid line{stroke:var(--line);stroke-width:1;stroke-dasharray:3 4;}
.alnakib-chart__grid text{fill:var(--ink-3);font-family:var(--mono);font-size:11px;}
[dir="rtl"] .alnakib-chart__grid text{font-family:var(--arabic);}
.alnakib-chart__line{fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;}
.alnakib-chart__area{fill:currentColor;opacity:.12;stroke:none;}
.alnakib-chart__series--primary{color:var(--primary);fill:var(--primary);}
.alnakib-chart__series--secondary{color:var(--brass-600);fill:var(--brass-600);}
.alnakib-chart__series circle{fill:var(--card);stroke:currentColor;stroke-width:2;}
.alnakib-chart__controls{display:flex;justify-content:flex-end;margin-top:.4rem;}
.alnakib-chart__export{min-height:44px;}
.alnakib-chart__data{margin-top:.55rem;border-top:1px solid var(--line);}
.alnakib-chart__data summary{display:flex;align-items:center;min-height:44px;color:var(--link);font-weight:600;cursor:pointer;}
.alnakib-chart__data summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.alnakib-chart__table-wrap{overflow-x:auto;padding-bottom:.35rem;}
.alnakib-chart__table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;font-size:.84rem;}
.alnakib-chart__table caption{text-align:start;color:var(--ink-3);padding:.25rem 0 .6rem;}
.alnakib-chart__table th,.alnakib-chart__table td{padding:.5rem .65rem;border-bottom:1px solid var(--line);text-align:end;white-space:nowrap;}
.alnakib-chart__table th:first-child{text-align:start;}
.alnakib-chart__table thead th{background:var(--paper-2);color:var(--ink-2);font-weight:700;}
.widget .alnakib-chart{font-size:.9rem;}
.widget .alnakib-chart__plot{min-height:200px;}
.widget .alnakib-chart__legend{gap:.65rem;font-size:.76rem;}
@media(max-width:560px){
  .journal-chart .alnakib-chart,.art-usage .alnakib-chart{padding:.75rem;}
  .alnakib-chart__plot{min-height:200px;}
  .alnakib-chart__table th,.alnakib-chart__table td{padding:.45rem .5rem;}
}
.cite-chart-note{font-size:.85rem;color:var(--ink-3);margin:.15rem 0 .9rem;line-height:1.5;}
.cite-chart-since{opacity:.8;white-space:nowrap;}
/* Admin-authored custom content blocks (placed via the Customizer). */
.alnakib-cblock{margin:1.6rem 0;}
/* Cookie / privacy consent banner. Its measured block size is reserved on the
   page by JS, so visitors can still scroll every footer control above it. */
.consent-banner{position:fixed;inset-inline:0;inset-block-end:0;z-index:90;max-block-size:calc(100vh - 8px);max-block-size:calc(100dvh - max(8px,env(safe-area-inset-top)));overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:var(--navy-900);color:#fff;border-top:3px solid var(--brass-600);box-shadow:0 -6px 24px rgba(0,0,0,.28);}
.consent-banner[hidden]{display:none;}
.consent-inner{inline-size:100%;max-width:var(--wrap,1200px);min-width:0;margin-inline:auto;padding-block:14px max(14px,env(safe-area-inset-bottom));padding-left:max(var(--gutter,28px),env(safe-area-inset-left));padding-right:max(var(--gutter,28px),env(safe-area-inset-right));display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap;}
.consent-text{flex:1 1 28rem;min-width:0;font-size:.9rem;line-height:1.5;color:var(--navy-100);overflow-wrap:anywhere;}
.consent-text > :last-child{margin-bottom:0;}
.consent-text a{color:var(--brass-400);text-decoration:underline;text-underline-offset:2px;}
.consent-text a:hover{color:#fff;}
.consent-actions{display:flex;gap:.6rem;align-items:center;flex:0 1 auto;min-width:0;flex-wrap:wrap;}
.consent-accept,.consent-decline{min-height:44px;max-width:100%;white-space:normal;text-align:center;justify-content:center;overflow-wrap:anywhere;}
.consent-decline{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.65);}
.consent-decline:hover{background:rgba(255,255,255,.1);}
.foot-bottom button.foot-dir-link{font:inherit;background:none;border:0;padding:0;cursor:pointer;}
.pkp_structure_page{padding-block-end:var(--alnakib-consent-offset,0px);}
.alnakib-consent-visible .to-top,.alnakib-consent-visible .saved-launcher,.alnakib-consent-visible .saved-pop{visibility:hidden!important;pointer-events:none;}
@media(max-width:560px){
  .consent-inner{padding-block:12px max(12px,env(safe-area-inset-bottom));padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right));gap:.75rem;align-items:flex-start;}
  .consent-text{flex-basis:100%;font-size:.875rem;}
  .consent-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;}
  .consent-accept,.consent-decline{width:100%;padding-inline:.75rem;}
}
@media(max-width:400px){.consent-actions{grid-template-columns:1fr;}}
@media(max-height:420px) and (orientation:landscape){.consent-inner{align-items:flex-start;}.consent-text{font-size:.82rem;line-height:1.4;}}
@media(forced-colors:active){.consent-banner{border:2px solid CanvasText;}.consent-accept,.consent-decline{border:1px solid ButtonText;}}
/* Announcements slider (scroll-snap carousel). */
.ann-slider{position:relative;}
.ann-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;border-radius:var(--radius);}
.ann-track::-webkit-scrollbar{display:none;}
.ann-slide{scroll-snap-align:start;flex:0 0 100%;min-width:100%;padding:1.5rem 1.7rem;background:var(--card);border:1px solid var(--line);border-inline-start:3px solid var(--brass-500);border-radius:var(--radius);}
.ann-slide .n-date{font-family:var(--mono);font-size:.74rem;color:var(--ink-3);}
.ann-slide h2{font-size:1.18rem;line-height:1.25;margin:.35rem 0 .45rem;}
.ann-slide h2 a{color:var(--navy-900);}
.ann-slide h2 a:hover{color:var(--brass-700);}
.ann-slide p{color:var(--ink-2);font-size:.95rem;margin:0 0 .7rem;}
.ann-ctrls{display:flex;align-items:center;justify-content:center;gap:.7rem;margin-top:.9rem;}
.ann-dots{display:flex;gap:0;}
.ann-dot{position:relative;width:44px;height:44px;border:0;background:transparent;cursor:pointer;padding:0;}
.ann-dot::before{content:"";position:absolute;inset:50% auto auto 50%;width:9px;height:9px;border-radius:50%;background:var(--line);transform:translate(-50%,-50%);transition:background .15s,transform .15s;}
.ann-dot.on::before{background:var(--brass-500);transform:translate(-50%,-50%) scale(1.2);}
.ann-dot:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.ann-arrow{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;min-width:44px;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--ink-2);cursor:pointer;padding:0;transition:color .15s,border-color .15s,background .15s;}
.ann-arrow:hover{color:var(--brass-700);border-color:var(--brass-400);}
.ann-arrow:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
[data-theme="dark"] .ann-arrow{background:var(--paper-2);}

/* Opt-in article metric badges (Altmetric / Dimensions / Crossmark) */
.art-badges{display:flex;align-items:center;gap:1.1rem;flex-wrap:wrap;margin:0 0 1.4rem;}
.art-badges .crossmark-link{display:inline-flex;line-height:0;}
.art-badges .crossmark-link img{height:44px;width:auto;}

/* Figure lightbox: click a content image to view it enlarged */
.lb-zoomable{cursor:zoom-in;}
.alnakib-lightbox{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(6,21,43,.86);opacity:0;transition:opacity .2s;}
.alnakib-lightbox.on{opacity:1;}
.alnakib-lightbox img{max-width:96vw;max-height:90vh;border-radius:var(--radius);box-shadow:0 12px 44px rgba(0,0,0,.45);background:#fff;}
.alnakib-lightbox .lb-close{position:fixed;top:16px;inset-inline-end:16px;width:44px;height:44px;border-radius:50%;border:0;background:rgba(255,255,255,.16);color:#fff;font-size:24px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.alnakib-lightbox .lb-close:hover{background:rgba(255,255,255,.3);}
.alnakib-lightbox .lb-close:focus-visible{outline:2px solid #fff;outline-offset:2px;}

/* Graphical abstract (article cover shown prominently at the top of the article) */
.graphical-abstract{margin:0 0 1.6rem;}
.blk--references,.blk--authorBios,.blk--creditRoles,.blk--competingInterests,.blk--dataAvailability,.blk--usageChart{margin-top:2rem;}
.graphical-abstract img{max-width:100%;height:auto;border-radius:var(--radius);border:1px solid var(--line);}
/* Per-reference "Scholar" search link */
.ref-scholar{font-family:var(--mono);font-size:.72rem;white-space:nowrap;color:var(--brass-700);text-decoration:none;border-bottom:1px dotted currentColor;margin-inline-start:.4rem;}
.ref-scholar:hover{color:var(--link);}

/* Previous / next article pager (foot of the article) */
.art-pager{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:2.4rem 0 0;}
.art-pager__link{display:flex;flex-direction:column;gap:.3rem;padding:.9rem 1.1rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);text-decoration:none;color:var(--ink-2);transition:border-color .15s,color .15s,transform .15s;}
.art-pager__link:hover{border-color:var(--brass-400);color:var(--link);transform:translateY(-2px);}
.art-pager__link:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.art-pager__next{text-align:end;align-items:flex-end;}
.art-pager .ap-dir{font-family:var(--mono);font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;color:var(--brass-700);display:inline-flex;align-items:center;gap:.3rem;}
[dir="rtl"] .art-pager .ap-dir{font-family:var(--arabic);letter-spacing:0;text-transform:none;}
.art-pager .ap-title{font-family:var(--serif);font-size:.92rem;line-height:1.35;color:var(--ink);}
[dir="rtl"] .art-pager .ap-title{font-family:var(--arabic);}
@media(max-width:560px){.art-pager{grid-template-columns:1fr;}.art-pager__next{text-align:start;align-items:flex-start;}}
/* "Follow this journal" footer link — brass accent so it reads as a CTA */
.foot-follow{font-weight:600;}

/* Save-to-reading-list: per-article button + floating launcher + popover */
.art-save-wrap{margin:0 0 1.4rem;}
.art-save .art-save-ico{vertical-align:-2px;margin-inline-end:.25rem;}
.art-save.is-saved{border-color:var(--brass-500);color:var(--brass-700);background:var(--brass-100);}
[data-theme="dark"] .art-save.is-saved{color:var(--brass-400);background:transparent;}
.saved-launcher{position:fixed;inset-block-end:max(18px,env(safe-area-inset-bottom));inset-inline-start:max(18px,env(safe-area-inset-left));z-index:60;display:inline-flex;align-items:center;gap:.4rem;min-height:44px;padding:0 .9rem;border-radius:22px;border:1px solid var(--line);background:var(--card);color:var(--ink-2);box-shadow:var(--shadow);cursor:pointer;}
[dir="rtl"] .saved-launcher{inset-inline-start:max(18px,env(safe-area-inset-right));}
.saved-launcher:hover{color:var(--brass-700);border-color:var(--brass-400);}
.saved-launcher:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.saved-launcher .sl-count{font-family:var(--mono);font-size:.8rem;font-weight:600;}
.saved-pop{position:fixed;inset-block-end:calc(68px + env(safe-area-inset-bottom));inset-inline-start:max(18px,env(safe-area-inset-left));z-index:61;width:min(340px,calc(100vw - 36px));max-height:60vh;max-height:60dvh;overflow:auto;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 12px 40px rgba(0,0,0,.25);padding:.6rem;}
[dir="rtl"] .saved-pop{inset-inline-start:max(18px,env(safe-area-inset-right));}
.saved-pop .sp-head{font-family:var(--serif);font-weight:600;font-size:.85rem;padding:.3rem .5rem .5rem;color:var(--primary-deep);}
[dir="rtl"] .saved-pop .sp-head{font-family:var(--arabic);}
.saved-pop .sp-list{list-style:none;margin:0;padding:0;}
.saved-pop .sp-list li{display:flex;align-items:flex-start;gap:.5rem;padding:.4rem .5rem;border-top:1px solid var(--line);}
.saved-pop .sp-link{flex:1;font-size:.85rem;line-height:1.35;color:var(--link);text-decoration:none;}
.saved-pop .sp-link:hover{text-decoration:underline;}
.saved-pop .sp-rm{flex:0 0 auto;width:44px;height:44px;border:0;border-radius:50%;background:transparent;color:var(--ink-3);font-size:18px;line-height:1;cursor:pointer;}
.saved-pop .sp-rm:hover{color:#b3261e;background:var(--paper-2);}
.saved-pop .sp-empty{padding:.6rem .5rem;color:var(--ink-3);font-size:.85rem;}
@media print{.saved-launcher,.saved-pop{display:none!important;}}
[data-theme="dark"] .ann-slide h2 a{color:var(--ink);}
[data-theme="dark"] .ann-slide h2 a:hover{color:var(--brass-400);}
.pkp_structure_main > .alnakib-cblock:first-child{margin-top:0;}
.sidebar .alnakib-cblock.widget .widget-body{padding:1.1rem 1.2rem;}
.alnakib-rich > :last-child{margin-bottom:0;}
.alnakib-rich p{margin:0 0 .75rem;}
.alnakib-rich ul,.alnakib-rich ol{padding-inline-start:1.25rem;margin:.4rem 0 .8rem;}
.alnakib-rich li{margin-bottom:.3rem;}
.alnakib-rich strong,.alnakib-rich b{color:var(--ink);font-weight:700;}
.alnakib-rich em,.alnakib-rich i{font-style:italic;}
[dir="rtl"] .alnakib-rich em,[dir="rtl"] .alnakib-rich i{font-style:normal;}

/* ---- Custom sidebar widgets (admin HTML with hyperlinks) ---- */
.widget.alnakib-custom .widget-body{font-size:.92rem;color:var(--ink-2);line-height:1.62;}
.widget.alnakib-custom .widget-body img{border-radius:var(--radius);margin:.4rem 0;}

/* ---- Design polish (go-deep) ----
   These transition shorthands come AFTER the MOTION section, so each must
   carry the FULL property list — a shorthand here silently drops any
   property the earlier rules transitioned (hover lifts would snap). */
.article-item{transition:background .15s ease;}
.article-item:hover{background:linear-gradient(90deg,var(--primary-soft,rgba(31,77,126,.04)),transparent);}
.widget{transition:transform .2s cubic-bezier(.22,.61,.36,1),box-shadow .18s ease,border-color .2s ease;}
.widget:hover{box-shadow:var(--shadow-sm);}
.obj_galley_link{transition:background .15s ease,color .15s ease,border-color .15s ease,transform .12s ease;}
.obj_galley_link:hover{transform:translateY(-1px);}
.btn{transition:background .15s ease,color .15s ease,border-color .15s ease,transform .12s ease,box-shadow .15s ease;}
.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(166,129,47,.32);}
.section-head h2{position:relative;padding-inline-start:.85rem;}
.section-head h2::before{content:"";position:absolute;inset-inline-start:0;top:.15em;bottom:.15em;width:4px;border-radius:2px;background:var(--brass-500);}

/* Direction-aware inline arrows: mirror the glyph in RTL so a "forward" arrow
   points the reading-forward way (left) in Arabic, and "back" points right. */
.rtl-flip{display:inline-block;}
[dir="rtl"] .rtl-flip{transform:scaleX(-1);}
/* Inline link chevron (SVG, not a glyph) — sits on the text baseline. */
.lnk-arrow{vertical-align:-.08em;}
/* Anchor targets (in-page links, #data-availability, issue/section ids) must
   clear the sticky nav instead of hiding beneath it. */
:target{scroll-margin-top:5rem;}

/* ---- Homepage entrance animations ----
   JS adds .alnakib-anim to <html> ONLY when motion is allowed (and only on the
   homepage), so non-JS / reduced-motion visitors see everything immediately. */
.alnakib-anim .reveal{opacity:0;transform:translateY(18px);transition:opacity .6s cubic-bezier(.22,.61,.36,1),transform .6s cubic-bezier(.22,.61,.36,1);}
.alnakib-anim .reveal.in{opacity:1;transform:none;}
@media(prefers-reduced-motion:reduce){.alnakib-anim .reveal{opacity:1!important;transform:none!important;transition:none!important;}}
/* Gentle hover lifts (homepage + site index) */
.issue-banner .cover{transition:transform .3s ease,box-shadow .3s ease;}
.issue-banner:hover .cover{transform:translateY(-3px);box-shadow:var(--shadow);}
.journal-card{transition:transform .2s ease,box-shadow .2s ease;}
.journal-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);}

/* ============================================================
   MOBILE PRIMARY NAV (authoritative) — declared AFTER the OJS-bridge
   base rules (.nav .wrap > ul …, ul ul …) so these win on source order
   without !important. Turns the horizontal bar into a stacked,
   scrollable drawer toggled by the hamburger, and expands the
   hover-only dropdowns inline (touch pointers can't hover, so the
   children must be revealed when the drawer is open).
   ============================================================ */
@media(max-width:768px){
  .nav .wrap{flex-wrap:wrap;align-items:center;padding-inline:calc(var(--gutter) - 6px);}
  .nav-toggle{display:inline-flex;order:0;margin-inline-end:auto;}
  .nav .nav-search{order:1;}
  .nav .nav-spacer{display:none;}
  /* Collapsed by default; the toggle adds .nav-open to reveal it. Capping the
     height keeps a long menu from pushing the sticky bar off-screen — the list
     scrolls inside itself, and overscroll-behavior stops scroll-chaining. */
  .nav .wrap > ul{order:5;flex-basis:100%;width:100%;display:none;flex-direction:column;flex-wrap:nowrap;border-top:1px solid rgba(255,255,255,.12);max-height:min(72vh,560px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;}
  .nav.nav-open .wrap > ul{display:flex;animation:alnakib-fade-up .24s cubic-bezier(.22,.61,.36,1) both;}
  .nav .wrap > ul > li{width:100%;display:block;position:static;border-bottom:1px solid rgba(255,255,255,.08);}
  /* On mobile EVERY item is a full-width tap row (top-level and submenu) — coarse
     pointers want a big target; the row divider lives on the <li>. (Desktop top-bar
     items stay text-only via the base inline-flex outside this media query.) */
  .nav a{display:block;width:100%;padding-block:.95rem;}
  .nav a::after{display:none;}
  /* Submenus: shown inline (static, not the desktop absolute flyout) inside the
     open drawer so every child link is tappable; indented + tinted for hierarchy. */
  .nav .wrap > ul ul{position:static;display:none;min-width:0;box-shadow:none;background:rgba(0,0,0,.22);padding:0;}
  .nav.nav-open .wrap > ul ul{display:block;}
  .nav.nav-open .wrap > ul ul a{padding-block:.7rem;padding-inline-start:2.2rem;font-size:.85rem;text-transform:none;letter-spacing:.02em;color:#cfe0f0;}
  [dir="rtl"] .nav.nav-open .wrap > ul ul a{font-size:.96rem;font-weight:600;}
}

/* ============================================================
   TOUCH TARGETS (WCAG 2.2 SC 2.5.8) — on coarse pointers (phones /
   tablets) grow the small utility & nav controls to a comfortable
   ≈44px tap area, leaving the tighter mouse/desktop sizing untouched.
   ============================================================ */
@media(pointer:coarse){
  .util-right .u-link{padding:.6rem .8rem;}
  .lang-toggle a{padding:.55rem .9rem;}
  .theme-toggle{width:44px;height:44px;}
  .nav .nav-search a{min-width:44px;min-height:44px;padding:.55rem;}
  .nav-toggle{padding-block:1rem;}
  .share-btn{min-height:38px;}
  .to-top{width:48px;height:48px;}
}

/* Belt-and-braces guard against accidental horizontal scrolling on small
   screens (long unbroken strings, wide embeds). overflow-x:clip does NOT
   establish a scroll container — unlike overflow-x:hidden — so the sticky
   primary nav keeps working. */
.pkp_structure_page{overflow-x:clip;}

/* ============================================================
   INTERACTION POLISH — affordances + micro-transitions that were
   missing on a handful of interactive elements. Reduced-motion is
   neutralised by the global @media rule, so these are safe.
   ============================================================ */
/* Sidebar widget-list links (recent articles / info links) — were inert */
.widget-list a{transition:color var(--t-fast,.14s),padding-inline-start var(--t-fast,.14s);}
.widget-list a:hover{color:var(--brass-700);padding-inline-start:.25rem;text-decoration:none;}
[data-theme="dark"] .widget-list a:hover{color:var(--brass-400);}
/* Sidebar promo image — signal it is a link */
.sidebar-promo a img{transition:transform var(--t,.2s),box-shadow var(--t,.2s);}
.sidebar-promo a:hover img{transform:scale(1.02);box-shadow:var(--shadow);}
/* Utility-bar links — a visible hover surface on the dark bar */
.util-right .u-link{border-radius:2px;transition:background var(--t-fast,.14s),color var(--t-fast,.14s);}
.util-right .u-link:hover{background:rgba(255,255,255,.12);color:#fff;text-decoration:none;}
/* Dark-mode toggle — press + on-state feedback */
.theme-toggle{transition:background var(--t-fast,.14s),color var(--t-fast,.14s),border-color var(--t-fast,.14s),transform var(--t-fast,.14s);}
.theme-toggle:active{transform:scale(.92);}
.theme-toggle[aria-pressed="true"]{background:rgba(255,255,255,.12);}
/* Contact + address cards — match the lift other cards already have */
.page_contact .contact,.page_contact .address{transition:transform var(--t,.2s),box-shadow var(--t,.2s),border-color var(--t,.2s);}
.page_contact .contact:hover,.page_contact .address:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm);border-inline-start-color:var(--brass-600);}
/* Phone / email links on the contact card — clearer they're actionable */
.page_contact .contact .email a:hover,.page_contact .contact .phone a:hover{text-decoration:underline;text-underline-offset:2px;}
/* Data-table rows — readable hover in wide tables */
.data-table tbody tr{transition:background var(--t-fast,.14s);}
.data-table tbody tr:hover{background:var(--primary-soft);}
/* Issue archive card — reinforce that the cover is a link */
.issue-card .cover-link{display:block;}
.issue-card:hover .ic-title{color:var(--brass-700);}
[data-theme="dark"] .issue-card:hover .ic-title{color:var(--brass-400);}
/* Restricted (paywalled) galley — a dashed brass outline reads as "gated"
   far better than the near-invisible opacity dim alone (no glyph needed). */
.obj_galley_link.restricted{opacity:1;background:transparent;color:var(--brass-700);border:1px dashed var(--brass-500);}
.obj_galley_link.restricted:hover{background:var(--brass-100);color:var(--brass-700);border-style:solid;}
[data-theme="dark"] .obj_galley_link.restricted{color:var(--brass-400);}
[data-theme="dark"] .obj_galley_link.restricted:hover{background:rgba(184,151,63,.16);color:var(--brass-400);}
/* Logo wordmark link — subtle feedback so it reads as clickable */
.brand-logo{transition:opacity var(--t-fast,.14s);}
.brand-logo:hover{opacity:.9;}
/* Back-to-top — fade in (not an instant pop) while staying out of layout */
.to-top{transition:opacity var(--t,.2s),transform var(--t,.2s),visibility var(--t,.2s),background var(--t-fast,.14s),color var(--t-fast,.14s);}

/* ============================================================
   COMPONENT POLISH — empty states, secondary section heads, count
   pills, pager cards, search panel + highlights framing.
   ============================================================ */
/* Reusable empty-state card (no results / no current issue / none yet) */
.empty-state{text-align:center;max-width:560px;margin:2.2rem auto;padding:2.6rem 1.8rem;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);}
.empty-state .es-ico{display:block;width:46px;height:46px;margin:0 auto 1rem;color:var(--brass-500);}
.empty-state .es-ico svg{width:100%;height:100%;display:block;}
.empty-state .es-title{font-family:var(--serif);font-size:1.18rem;font-weight:600;color:var(--primary-deep);margin:0 0 .4rem;}
[dir="rtl"] .empty-state .es-title{font-family:var(--arabic);}
.empty-state .es-hint{font-size:.93rem;color:var(--ink-3);margin:0 auto;max-width:44ch;line-height:1.6;}
.empty-state .es-actions{margin-top:1.3rem;display:flex;gap:.6rem;justify-content:center;flex-wrap:wrap;}
.empty-state .cmp_notification{text-align:start;}

/* Secondary ("sub") section head — lighter weight than the page's primary head */
.section-head.sub{margin-top:var(--section-gap,2.4rem);}
.section-head.sub h2{font-size:1.2rem;}
/* Count pill beside a sub-head title (e.g. "Search results  42") */
.section-head .count{font-family:var(--mono);font-size:.74rem;font-weight:500;color:var(--ink-3);background:var(--paper-2);border:1px solid var(--line);border-radius:999px;padding:.12rem .6rem;vertical-align:middle;margin-inline-start:.5rem;}
[data-theme="dark"] .section-head .count{background:var(--paper-3);}

/* Previous/next issue pager — render the two links as interactive cards */
.issue-pager-link{border:1px solid var(--line);border-radius:var(--radius);padding:.7rem 1rem;background:var(--card);transition:transform var(--t,.2s),box-shadow var(--t,.2s),border-color var(--t,.2s),color var(--t,.2s);}
.issue-pager-link:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm);border-color:var(--brass-400);color:var(--primary);text-decoration:none;}

/* Highlights — eyebrow label above the spotlight grid */
.highlights .highlights-eyebrow{margin-bottom:1rem;}

/* ============================================================
   LATEST ARTICLES — homepage strip of the most recently published
   articles journal-wide (live data, accent-edged cards).
   ============================================================ */
.latest-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;}
@media(max-width:1024px){.latest-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:768px){.latest-grid{grid-template-columns:1fr;}}
.latest-card{display:flex;flex-direction:column;gap:.4rem;min-height:7.5rem;background:var(--card);border:1px solid var(--line);border-inline-start:3px solid var(--brass-500);border-radius:var(--radius);padding:1rem 1.1rem;text-decoration:none;transition:transform var(--t,.2s),box-shadow var(--t,.2s),border-color var(--t,.2s);}
.latest-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm);text-decoration:none;}
.latest-card .lc-title{font-family:var(--serif);font-weight:600;font-size:1.02rem;line-height:1.3;color:var(--navy-900);}
[dir="rtl"] .latest-card .lc-title{font-family:var(--arabic);}
.latest-card .lc-authors{font-size:.85rem;color:var(--ink-2);font-style:italic;line-height:1.45;}
[dir="rtl"] .latest-card .lc-authors{font-style:normal;}
.latest-card .lc-date{font-family:var(--mono);font-size:.73rem;color:var(--ink-3);margin-top:auto;padding-top:.3rem;}
[data-theme="dark"] .latest-card .lc-title{color:var(--ink);}
[data-theme="dark"] .latest-card:hover .lc-title{color:var(--brass-400);}

/* ============================================================
   EDITORIAL-TEAM HOMEPAGE TEASER — compact people cards (live masthead).
   ============================================================ */
.ed-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;}
.ed-person{background:var(--card);border:1px solid var(--line);border-inline-start:3px solid var(--brass-500);border-radius:var(--radius);padding:.9rem 1.1rem;transition:transform var(--t,.2s),box-shadow var(--t,.2s);}
.ed-person:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm);}
.ed-person .ed-name{font-family:var(--serif);font-weight:600;color:var(--navy-900);margin:0;display:flex;align-items:center;gap:.35rem;flex-wrap:wrap;}
[dir="rtl"] .ed-person .ed-name{font-family:var(--arabic);}
.ed-person .ed-role{font-family:var(--serif);font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--brass-700);margin:.22rem 0 0;}
[dir="rtl"] .ed-person .ed-role{font-family:var(--arabic);text-transform:none;letter-spacing:0;font-size:.82rem;}
.ed-person .ed-affil{font-size:.84rem;color:var(--ink-3);font-style:italic;margin:.25rem 0 0;line-height:1.45;}
[dir="rtl"] .ed-person .ed-affil{font-style:normal;}
[data-theme="dark"] .ed-person .ed-name{color:var(--ink);}
[data-theme="dark"] .ed-person .ed-role{color:var(--brass-400);}

/* ============================================================
   MOBILE NAV COLLAPSE — BULLETPROOF.
   The primary menu (<ul id="navigationPrimary"> from {load_menu}) must be
   COLLAPSED on phones and revealed only when the hamburger adds .nav-open.
   Scoping to the id + !important guarantees this beats the parent Default
   theme's stylesheet AND any source-order accident, so the menu can never be
   stuck open. If it still shows expanded after upload, it's a STALE CSS cache
   — Clear Template Cache + hard-refresh (Ctrl/Cmd+Shift+R).
   ============================================================ */
@media(max-width:768px){
  .nav .wrap > ul#navigationPrimary{display:none !important;}
  .nav.nav-open .wrap > ul#navigationPrimary{display:flex !important;}
}

/* ============================================================
   HOMEPAGE CONTENT PANELS — toggleable journal-content accordions
   (About / Summary / Author guidelines / policies). Native <details>,
   zero-JS, accessible; CSS chevron (no glyph) rotates on open.
   ============================================================ */
.home-content .hc-panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);margin-bottom:.7rem;overflow:hidden;transition:box-shadow var(--t,.2s),border-color var(--t,.2s);}
.home-content .hc-panel:last-child{margin-bottom:0;}
.home-content .hc-panel[open]{box-shadow:var(--shadow-sm);}
.home-content .hc-summary{cursor:pointer;list-style:none;padding:.9rem 1.1rem;font-family:var(--serif);font-weight:600;font-size:1rem;color:var(--navy-900);display:flex;align-items:center;justify-content:space-between;gap:1rem;transition:background var(--t-fast,.14s),color var(--t-fast,.14s);}
[dir="rtl"] .home-content .hc-summary{font-family:var(--arabic);}
.home-content .hc-summary:hover{background:var(--paper-2);color:var(--brass-700);}
.home-content .hc-summary::-webkit-details-marker{display:none;}
/* Physical (not logical) borders: the rotate(45deg) chevron must keep its
   down-pointing shape in RTL too — border-inline-end would mirror it sideways. */
.home-content .hc-summary::after{content:"";flex:0 0 auto;width:9px;height:9px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform var(--t,.2s);}
.home-content .hc-panel[open] .hc-summary::after{transform:rotate(-135deg);}
.home-content .hc-content{padding:.2rem 1.2rem 1.2rem;}
.home-content .hc-content > :first-child{margin-top:0;}
.home-content .hc-content > :last-child{margin-bottom:0;}
[data-theme="dark"] .home-content .hc-summary{color:var(--ink);}
[data-theme="dark"] .home-content .hc-summary:hover{color:var(--brass-400);}

/* ============================================================
   ARTICLE SIDEBAR — "Indexed in" widget + premium "How to Cite"
   (de-generic-ised: a branded card + format chips, not a grey box).
   ============================================================ */
/* Indexed-in list — tidy rows, each with a small brass marker. */
.sb-index{list-style:none;margin:0;padding:0;}
.sb-index li{position:relative;padding-block:.42rem;padding-inline-start:1.1rem;font-family:var(--serif);font-size:.9rem;color:var(--ink-2);border-bottom:1px solid var(--line-soft);}
.sb-index li:last-child{border-bottom:0;}
.sb-index li::before{content:"";position:absolute;inset-inline-start:0;top:.95em;width:6px;height:6px;border-radius:50%;background:var(--brass-500);}
[dir="rtl"] .sb-index li{font-family:var(--arabic);}

/* Theme "How to Cite" fallback (shown when the CSL plugin is off) as a card. */
.cite-card .cite-quote{margin:0 0 .9rem;padding:.15rem 0 .15rem .9rem;border-inline-start:3px solid var(--brass-500);font-family:var(--body);font-size:.86rem;line-height:1.62;color:var(--ink-2);font-style:normal;}
[dir="rtl"] .cite-card .cite-quote{padding:.15rem .9rem .15rem 0;font-family:var(--arabic);}
.cite-chips{display:flex;flex-wrap:wrap;gap:.4rem;}
.cite-chip{display:inline-flex;align-items:center;gap:.3rem;font-family:var(--serif);font-size:.74rem;font-weight:600;letter-spacing:.02em;color:var(--navy-700);background:var(--paper-2);border:1px solid var(--line);border-radius:999px;padding:.32rem .8rem;cursor:pointer;text-decoration:none;transition:background var(--t-fast,.14s),color var(--t-fast,.14s),border-color var(--t-fast,.14s),transform var(--t-fast,.14s);}
[dir="rtl"] .cite-chip{font-family:var(--arabic);letter-spacing:0;}
.cite-chip:hover{background:var(--navy-700);color:#fff;border-color:var(--navy-700);transform:translateY(-1px);text-decoration:none;}
.cite-chip.is-primary{background:var(--brass-600);color:var(--navy-950);border-color:var(--brass-600);}
.cite-chip.is-primary:hover{background:var(--brass-500);color:var(--navy-950);}
.cite-chip.is-copied{background:var(--brass-600);color:var(--navy-950);border-color:var(--brass-600);}
[data-theme="dark"] .cite-chip{color:var(--navy-100);}
[data-theme="dark"] .cite-chip:hover{color:#fff;}

/* Polish the CitationStyleLanguage sidebar block so it reads as a designed
   widget: soft shadow + a brass-edged citation body + a full-width formats
   button. (Prefixed .page_article so it still beats the CSL plugin's own CSS.) */
.page_article .sidebar .item.citation{box-shadow:var(--shadow-sm);}
.page_article .sidebar .item.citation .value{padding:1rem 1.1rem 1.15rem;}
.page_article .sidebar #citationOutput{border-inline-start:3px solid var(--brass-500);padding-inline-start:.8rem;color:var(--ink-2);}
[dir="rtl"] .page_article .sidebar #citationOutput{padding-inline-start:0;padding-inline-end:.8rem;}
.page_article .sidebar .citation_formats_button{width:100%;justify-content:center;margin-top:.85rem;}

/* ============================================================
   AUTH PAGES (login / register / lost password) — focused design.
   The sidebar is suppressed in PHP (isFullWidth), so these render as a
   single centred column. Core 3.5 markup facts these rules target:
   labels WRAP inputs as `label > span.label + input`; field wrappers are
   .username/.password/.remember/.buttons (login) and fieldset.identity
   (.given_name/.family_name/.affiliation/.country) + fieldset.login
   (.email/.username/.password x2) + .consent/.reviewer (register); the
   ORCID connect button is #connect-orcid-button > .orcid_button_container.
   Declared at EOF so equal-specificity earlier rules can't clobber it.
   ============================================================ */
.page_login,.page_lost_password{max-width:460px;}
.page_register{max-width:680px;}
.page.page_login,.page.page_register,.page.page_lost_password{padding-top:44px;}
.page_login h1,.page_register h1,.page_lost_password h1{font-size:1.7rem;letter-spacing:-.01em;}
/* The card: stronger elevation + a thicker brass crest */
.page_login .cmp_form,.page_register .cmp_form,.page_lost_password .cmp_form{border-top-width:4px;box-shadow:var(--shadow-lg);padding:2.3rem 2.4rem 2.4rem;}
@media(max-width:768px){.page_login .cmp_form,.page_register .cmp_form,.page_lost_password .cmp_form,.page_lost_password .cmp_form{padding:1.5rem 1.15rem 1.6rem;}}

/* LABEL POSITIONS — the span.label sits as a small-caps block ABOVE its
   input with a consistent gap (core wraps the input inside the label). */
.page_login .cmp_form .label,.page_register .cmp_form .label,
.page_lost_password .cmp_form .label{display:block;margin:0 0 .4rem;font-family:var(--serif);font-size:.76rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);}
[dir="rtl"] .page_login .cmp_form .label,[dir="rtl"] .page_register .cmp_form .label{font-family:var(--arabic);text-transform:none;letter-spacing:0;font-size:.92rem;}
.page_login .cmp_form .required,.page_register .cmp_form .required{color:#a3261c;margin-inline-start:.15rem;font-size:1em;}
[data-theme="dark"] .page_login .cmp_form .required,[data-theme="dark"] .page_register .cmp_form .required{color:#f08a80;}
/* The remember-me / consent / reviewer rows are sentence-case checkbox rows,
   not field captions — undo the small-caps treatment inside them. */
.page_login .remember label,.page_register .cmp_form .optin label,.page_register .cmp_form .reviewer label{font-family:var(--body);font-size:.9rem;font-weight:400;letter-spacing:0;text-transform:none;color:var(--ink);}
[dir="rtl"] .page_login .remember label,[dir="rtl"] .page_register .cmp_form .optin label{font-family:var(--arabic);}

/* FIELD SIZES — uniform full-width controls with one comfortable height,
   consistent vertical rhythm between rows. */
.page_login .cmp_form input[type="text"],.page_login .cmp_form input[type="email"],.page_login .cmp_form input[type="password"],
.page_register .cmp_form input[type="text"],.page_register .cmp_form input[type="email"],.page_register .cmp_form input[type="password"],
.page_register .cmp_form select,
.page_lost_password .cmp_form input{width:100%;padding:.72rem .9rem;font-size:.96rem;line-height:1.4;}
.page_register .cmp_form select{height:auto;}
.page_login .cmp_form .username,.page_login .cmp_form .password,
.page_register .cmp_form .fields > div,
.page_lost_password .cmp_form .fields > div{margin-bottom:1.05rem;}
.page_login .cmp_form input[type="checkbox"],.page_register .cmp_form input[type="checkbox"]{width:17px;height:17px;flex:0 0 auto;}
/* Register: pair short fields on wider screens — names two-up (existing),
   plus the two password fields side by side; email/username stay full row. */
@media(min-width:560px){
  .page_register .cmp_form fieldset.login .fields{display:grid;grid-template-columns:1fr 1fr;gap:0 1.2rem;}
  .page_register .cmp_form fieldset.login .fields .email,
  .page_register .cmp_form fieldset.login .fields .username{grid-column:1 / -1;}
}

/* Buttons row: full-width primary action, centred cross-link beneath. */
.page_login .cmp_form .buttons,.page_register .cmp_form .buttons{flex-direction:column;align-items:stretch;gap:.8rem;margin-top:1.5rem;}
.page_login .cmp_form .buttons a.register,.page_register .cmp_form .buttons a.login{text-align:center;font-size:.9rem;}
.page_login .cmp_form .buttons button.submit,.page_register .cmp_form .buttons button.submit{padding-block:.85rem;font-size:.95rem;}

/* ICON SIZE — the ORCID connect button ships an unconstrained icon; pin it
   and restyle the button to match the theme's controls. */
#connect-orcid-button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;width:100%;margin:0 0 1.1rem;padding:.7rem 1rem;font-family:var(--serif);font-weight:600;font-size:.9rem;color:var(--ink-2);background:var(--card);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;transition:border-color var(--t-fast,.14s),color var(--t-fast,.14s),box-shadow var(--t-fast,.14s);}
#connect-orcid-button:hover{border-color:#a6ce39;color:var(--ink);box-shadow:var(--shadow-sm);}
#connect-orcid-button .orcid_button_container{display:flex;align-items:center;gap:.5rem;padding:0;}
#connect-orcid-button img,#connect-orcid-button svg{width:20px;height:20px;display:block;flex:0 0 auto;}
[data-theme="dark"] #connect-orcid-button{background:var(--paper-2);color:var(--ink-2);}
/* Any stray ORCID mark elsewhere in the auth forms stays text-sized. */
.page_register .cmp_form img[src*="orcid"],.page_login .cmp_form img[src*="orcid"]{width:18px;height:18px;vertical-align:middle;}

/* ============================================================
   PER-BLOCK SPACING — base defaults
   Each manageable homepage section / sidebar widget carries a
   `.blk .blk--<key>` hook (see AlnakibThemePlugin::blockDefs). These
   single-class rules restore the spacing that used to live in inline
   styles; the Customizer's per-block overrides are injected as
   `.blk.blk--<key>{…}` (specificity 0,2,0) so they always win over
   these (0,1,0) AND over the widget defaults. Order matters for the
   submit-CTA box, so this sits after the .widget rules above.
   ============================================================ */
.blk--latest,.blk--trending,.blk--about,.blk--editorialTeam,.blk--homeContent{margin-top:var(--section-gap,2.4rem);}
.blk--announcements{margin-bottom:34px;}
.blk--sbSubmit{background:var(--navy-800);border-color:var(--navy-800);text-align:center;padding:1.4rem 1.2rem;}

/* Lost-password / sign-in helper links */
.page_login .password label a,.page_login .lost a{font-size:.84rem;color:var(--link);}
/* Captcha wrappers centred, no fieldset chrome */
.page_login .recaptcha_wrapper,.page_login .altcha_wrapper{display:flex;margin:1.1rem 0 0;border:0;padding:0;}

/* ============================================================
   CASCADE REPAIRS (audit) — mid-file generic .cmp_form rules were
   beating the auth design on source order / specificity. Re-asserted
   here at EOF with matching-or-higher specificity, so the intended
   auth design actually applies.
   ============================================================ */
/* Register fieldset section dividers (generic `.pkp_structure_main .cmp_form
   fieldset{border:0;padding:0}` was wiping them). */
.page_register .cmp_form fieldset{border:0;border-bottom:1px solid var(--line);margin:0 0 1.5rem;padding:0 0 1.4rem;}
.page_register .cmp_form fieldset:last-of-type,
.page_register .cmp_form fieldset.recaptcha_wrapper,
.page_register .cmp_form fieldset.altcha_wrapper{border-bottom:0;margin-bottom:0;padding-bottom:0;}
.page_register .cmp_form fieldset.consent,.page_register .cmp_form fieldset.reviewer{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-2);padding:1.2rem 1.3rem;margin:0 0 1.5rem;}
/* Legends: the small-caps section headers (the generic 1.05rem navy legend
   rule was producing a big-uppercase hybrid). */
.page_register .cmp_form fieldset > legend,.page_register .cmp_form legend,
.page_login .cmp_form fieldset > legend,.page_login .cmp_form legend,
.page_lost_password .cmp_form fieldset > legend{font-family:var(--serif);font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.11em;color:var(--ink-3);margin:0 0 1rem;}
[dir="rtl"] .page_register .cmp_form legend,[dir="rtl"] .page_login .cmp_form legend,[dir="rtl"] .page_lost_password .cmp_form legend{font-family:var(--arabic);text-transform:none;letter-spacing:0;font-size:1rem;}
/* Field captions: the 4-class `.pkp_structure_main .cmp_form .fields .label`
   rule was beating the 3-class auth caption rule — match its specificity. */
.page_register .cmp_form .fields .label,.page_login .cmp_form .fields .label,
.page_lost_password .cmp_form .fields .label,
.page_login .cmp_form .label,.page_lost_password .cmp_form .label{display:block;margin:0 0 .4rem;font-family:var(--serif);font-size:.76rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);}
[dir="rtl"] .page_register .cmp_form .fields .label,[dir="rtl"] .page_login .cmp_form .label,[dir="rtl"] .page_lost_password .cmp_form .label{font-family:var(--arabic);text-transform:none;letter-spacing:0;font-size:.92rem;}
/* Checkbox rows carry their text in a span.label too — un-caption BOTH the
   label element and the span, or "Remember me"/consent text shouts in caps. */
.page_login .remember label,.page_login .remember .label,
.page_register .cmp_form .optin label,.page_register .cmp_form .optin .label,
.page_register .cmp_form .reviewer label,.page_register .cmp_form .reviewer .label{display:inline;margin:0;font-family:var(--body);font-size:.9rem;font-weight:400;letter-spacing:0;text-transform:none;color:var(--ink);}
.page_login .remember label,.page_register .cmp_form .optin label,.page_register .cmp_form .reviewer label{display:flex;align-items:flex-start;gap:.55rem;line-height:1.5;}
[dir="rtl"] .page_login .remember label,[dir="rtl"] .page_login .remember .label,[dir="rtl"] .page_register .cmp_form .optin label,[dir="rtl"] .page_register .cmp_form .optin .label{font-family:var(--arabic);}
[data-theme="dark"] .page_login .remember .label,[data-theme="dark"] .page_register .cmp_form .optin .label{color:var(--ink);}

/* Submissions page: the submitToSection locale string carries its own <a> —
   style THAT link as the call-to-action (wrapping it again nests anchors). */
.section_policy .section-submit{margin:.6rem 0 0;}
.section_policy .section-submit a{display:inline-flex;align-items:center;gap:.45em;font-family:var(--serif);font-weight:600;font-size:.86rem;color:var(--navy-700);background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:.5rem .95rem;text-decoration:none;transition:border-color var(--t-fast,.14s),color var(--t-fast,.14s),transform var(--t-fast,.14s);}
.section_policy .section-submit a:hover{border-color:var(--brass-500);color:var(--brass-700);transform:translateY(-1px);text-decoration:none;}
[data-theme="dark"] .section_policy .section-submit a{color:var(--navy-100);}
[data-theme="dark"] .section_policy .section-submit a:hover{color:var(--brass-400);}

/* Print: a page printed before the scroll-reveal fires must not be blank —
   force every reveal-managed block visible on paper. */
@media print{.alnakib-anim .reveal{opacity:1!important;transform:none!important;transition:none!important;}}

/* ============================================================
   INDEXING LOGOS — "Name | logo URL | link URL" items render as real
   service logos in the footer strip and as icon rows in the sidebar.
   Plain-text items keep the original chip/text look.
   ============================================================ */
.index-strip .ix-item{display:inline-flex;align-items:center;text-decoration:none;}
.index-strip a.ix-item:hover{opacity:1;text-decoration:none;}
.index-strip .ix-logo{height:34px;width:auto;max-width:150px;object-fit:contain;display:block;filter:grayscale(1);opacity:.78;transition:filter var(--t,.2s),opacity var(--t,.2s),transform var(--t,.2s);}
.index-strip a.ix-item:hover .ix-logo{filter:none;opacity:1;transform:translateY(-1px);}
/* Dark canvas: most service logos are drawn for light backgrounds — give
   each a small white chip so dark logo art stays legible. */
[data-theme="dark"] .index-strip .ix-logo{background:#fff;padding:4px 9px;border-radius:3px;filter:grayscale(1) opacity(.92);}
[data-theme="dark"] .index-strip a.ix-item:hover .ix-logo{filter:none;}
/* Sidebar "Indexed in" rows: small icon + name; rows stay aligned without one */
.sb-index li.has-logo{padding-inline-start:0;}
.sb-index li.has-logo::before{display:none;}
.sb-index li a,.sb-index li > span{display:inline-flex;align-items:center;gap:.55rem;color:inherit;text-decoration:none;}
.sb-index li a:hover{color:var(--brass-700);text-decoration:none;}
[data-theme="dark"] .sb-index li a:hover{color:var(--brass-400);}
.sb-index .ix-ico{width:22px;height:22px;object-fit:contain;flex:0 0 auto;}
[data-theme="dark"] .sb-index .ix-ico{background:#fff;border-radius:2px;padding:1px;}

/* Sidebar usage-statistics widget — 2x2 metric grid (total row + month row). */
.sb-stats .sbstat-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;}
.sb-stats .sbstat{background:var(--card);padding:.85rem .6rem;text-align:center;display:flex;flex-direction:column;gap:.22rem;}
.sb-stats .ss-n{font-family:var(--serif);font-weight:700;font-size:1.45rem;line-height:1;color:var(--navy-800);}
[dir="rtl"] .sb-stats .ss-n{font-family:var(--arabic);}
[data-theme="dark"] .sb-stats .ss-n{color:var(--brass-400);}
.sb-stats .ss-l{font-family:var(--serif);font-size:.66rem;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);line-height:1.25;}
[dir="rtl"] .sb-stats .ss-l{font-family:var(--arabic);text-transform:none;letter-spacing:0;font-size:.78rem;}
/* The "this month" pair reads as the secondary metric. */
.sb-stats .sbstat-month .ss-n{font-size:1.12rem;color:var(--navy-600);}
[data-theme="dark"] .sb-stats .sbstat-month .ss-n{color:var(--brass-500);}

/* Sidebar "Most read" widget — ranked list with a brass rank badge + view count. */
.sb-mostread .mostread-list{list-style:none;counter-reset:mr;margin:0;padding:0;}
.sb-mostread .mostread-list li{counter-increment:mr;position:relative;padding:.6rem 0 .6rem 2rem;border-bottom:1px solid var(--line-soft);}
[dir="rtl"] .sb-mostread .mostread-list li{padding:.6rem 2rem .6rem 0;}
.sb-mostread .mostread-list li:last-child{border-bottom:0;}
.sb-mostread .mostread-list li::before{content:counter(mr);position:absolute;inset-inline-start:0;top:.62rem;width:1.4rem;height:1.4rem;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-weight:700;font-size:.74rem;color:var(--brass-700);background:var(--brass-100);border-radius:50%;}
.sb-mostread .mostread-list a{display:block;font-family:var(--serif);font-size:.9rem;line-height:1.32;color:var(--navy-900);text-decoration:none;}
[dir="rtl"] .sb-mostread .mostread-list a{font-family:var(--arabic);}
.sb-mostread .mostread-list a:hover{color:var(--brass-700);text-decoration:none;}
.sb-mostread .mr-views{display:block;font-family:var(--mono);font-size:.71rem;color:var(--ink-3);margin-top:.18rem;}
[data-theme="dark"] .sb-mostread .mostread-list a{color:var(--ink);}
[data-theme="dark"] .sb-mostread .mostread-list a:hover{color:var(--brass-400);}
[data-theme="dark"] .sb-mostread .mostread-list li::before{background:var(--paper-3);color:var(--brass-400);}

/* ============================================================
   AUTHOR PROFILE PAGE (…/author; …/alnakibauthor = legacy alias). Reuses the directory hero/ORCID
   styles; only the affiliation, meta row, and article list are new. All
   colours are mode-aware vars; spacing is logical (RTL-safe).
   ============================================================ */
.alnakib-author .author-affil{color:var(--ink-2);font-size:1rem;margin:.35rem 0 0;}
.alnakib-author .author-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin-top:.75rem;}
.alnakib-author .author-count{font-family:var(--mono);font-size:.82rem;color:var(--ink-3);}
.alnakib-author .author-orcid-verified{font-family:var(--mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--brass-700);border:1px solid var(--line);border-radius:3px;padding:.06rem .4rem;}
[data-theme="dark"] .alnakib-author .author-orcid-verified{color:var(--brass-400);}
.alnakib-author .author-art-list{list-style:none;margin:1.2rem 0 0;padding:0;}
.alnakib-author .author-art{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.3rem 1rem;padding:.75rem 0;border-bottom:1px solid var(--line);}
.alnakib-author .author-art__title{font-family:var(--serif);font-size:1.05rem;line-height:1.35;color:var(--primary);text-decoration:none;flex:1 1 60%;}
.alnakib-author .author-art__title:hover{color:var(--link-hover);text-decoration:underline;}
.alnakib-author .author-art__date{font-family:var(--mono);font-size:.78rem;color:var(--ink-3);white-space:nowrap;}
.alnakib-author .author-back{margin-top:1.7rem;}
.alnakib-author .author-back a{font-family:var(--serif);color:var(--link);text-decoration:none;}
.alnakib-author .author-back a:hover{text-decoration:underline;}
/* Directory author name as a link to its profile page (when author pages are on). */
.dir-card__name--link{color:var(--primary);text-decoration:none;}
.dir-card__name--link:hover{color:var(--link-hover);text-decoration:underline;}

/* ============================================================
   JOURNAL METRICS / TRANSPARENCY PAGE (…/alnakibmetrics). Stat-card grid + a
   pure-CSS articles-per-year bar list. Mode-aware vars; logical spacing (RTL-safe).
   ============================================================ */
.alnakib-metrics .metrics-section{margin-top:2.2rem;}
.alnakib-metrics .metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-top:1.1rem;}
.alnakib-metrics .metric-card{background:var(--card);border:1px solid var(--line);border-top:3px solid var(--brass-500);border-radius:var(--radius);padding:1.2rem 1rem;text-align:center;display:flex;flex-direction:column;gap:.35rem;}
.alnakib-metrics .metric-num{font-family:var(--serif);font-weight:700;font-size:1.9rem;line-height:1;color:var(--primary-deep);}
[dir="rtl"] .alnakib-metrics .metric-num{font-family:var(--arabic);}
.alnakib-metrics .metric-lbl{font-family:var(--mono);font-size:.72rem;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);}
[dir="rtl"] .alnakib-metrics .metric-lbl{font-family:var(--arabic);text-transform:none;letter-spacing:0;font-size:.84rem;}
.alnakib-metrics .citation-card{gap:.45rem;}
.alnakib-metrics .citation-card.is-selected{border-color:var(--primary);}
.alnakib-metrics .citation-card__status{font-size:.75rem;line-height:1.4;color:var(--ink-3);}
.alnakib-metrics .citation-card--available .citation-card__status{color:var(--primary);}
.alnakib-metrics .citation-card--cached .citation-card__status{color:var(--brass-700);}
.alnakib-metrics .metrics-range{margin-top:.9rem;font-family:var(--mono);font-size:.8rem;color:var(--ink-3);}
.alnakib-metrics .metrics-bars{list-style:none;margin:1.2rem 0 0;padding:0;display:flex;flex-direction:column;gap:.55rem;}
.alnakib-metrics .metrics-bar{display:flex;align-items:center;gap:.8rem;}
.alnakib-metrics .mbar-year{flex:0 0 3.2rem;font-family:var(--mono);font-size:.82rem;color:var(--ink-2);text-align:end;}
.alnakib-metrics .mbar-track{flex:1 1 auto;height:.85rem;background:var(--paper-3);border-radius:999px;overflow:hidden;}
.alnakib-metrics .mbar-fill{display:block;height:100%;min-inline-size:2px;background:linear-gradient(90deg,var(--brass-500),var(--brass-400));border-radius:999px;}
[dir="rtl"] .alnakib-metrics .mbar-fill{background:linear-gradient(270deg,var(--brass-500),var(--brass-400));}
.alnakib-metrics .mbar-count{flex:0 0 2.5rem;font-family:var(--mono);font-size:.82rem;font-weight:700;color:var(--primary);}
.alnakib-metrics .metrics-note{margin-top:1rem;font-size:.82rem;color:var(--ink-3);font-style:italic;}

/* ============================================================
   JOURNAL INSIGHTS (…/insights; …/alnakibinsights is a legacy alias)
   The page root carries BOTH `alnakib-metrics` and `alnakib-insights`: the whole
   card/grid/note/bar vocabulary above is inherited verbatim (including its
   [dir="rtl"] var(--arabic) overrides), so this page needed zero edits to the
   selectors the retired metrics page relied on. The coupling is deliberate — any
   future `.alnakib-metrics …` rule also lands here.
   The timeline is a FRESH .ins-tl* family, NOT .mbar-*: .mbar-year is
   `flex:0 0 3.2rem`, and flex-basis beats inline-size on a flex item, so a stage
   label ("Submission to decision after review") would crush to 3.2rem.
   Tokens only — every var used here is remapped by :root[data-theme="dark"]
   EXCEPT --brass-100, which is not; the pill therefore carries its own dark rule.
   ============================================================ */
.alnakib-insights .ins-pill{display:inline-flex;align-items:center;padding-inline:.6rem;padding-block:.2rem;border:1px solid var(--brass-500);border-radius:var(--radius);background:var(--brass-100);color:var(--brass-700);font-family:var(--mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;}
/* --brass-100 is NOT remapped for dark (see :755-763) — without this the pill is a cream slab. */
[data-theme="dark"] .alnakib-insights .ins-pill{background:transparent;color:var(--brass-400);}
/* Spacing only — the measure is already capped by .dir-hero__sub / .ins-prose (both
   64ch). Setting a third max-width here just raced them depending on source order. */
.alnakib-insights .ins-excerpt{margin-block-start:.7rem;}
.alnakib-insights .ins-more,.alnakib-insights .ins-list__item a{display:inline-flex;align-items:center;gap:.4em;}
/* border-TOP brass, matching .dir-hero and .metric-card — an inline-start accent made
   this the only card on the page wearing its brass on a different edge. */
.alnakib-insights .ins-card{background:var(--card);border:1px solid var(--line);border-top:3px solid var(--brass-500);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:1.4rem 1.4rem 1.2rem;margin-top:2.2rem;}
.alnakib-insights .ins-defs{display:grid;grid-template-columns:auto 1fr;column-gap:1rem;row-gap:.45rem;margin:.8rem 0 0;}
.alnakib-insights .ins-defs dt{font-family:var(--mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);}
.alnakib-insights .ins-defs dd{margin:0;color:var(--ink);}
/* Fact values are not bare numbers — a manager types "3.4 (2024, Scopus)" or "USD 3,720".
   .metric-num's 1.9rem display size is sized for "412" and wraps those to three lines at
   375px, wrecking the card rhythm. Step it down for facts only; the output/reach cards
   keep the big number because they really are one. */
.alnakib-insights .ins-num{overflow-wrap:anywhere;font-size:1.35rem;line-height:1.25;}
/* Cards in a row stretch to the tallest; centre the contents so a short value doesn't
   float at the top of a card made tall by a long neighbour. */
.alnakib-insights .metric-card{justify-content:center;}
.alnakib-insights .ins-prose{max-width:64ch;color:var(--ink-2);line-height:1.65;}
.alnakib-insights .ins-sub-head{font-family:var(--serif);font-size:1.05rem;color:var(--ink);margin:1.4rem 0 .6rem;}
/* --serif has no Arabic coverage, and this selector (0,2,0) outranks the global
   [dir="rtl"] h3 Amiri rule (0,1,1) — without this the only Arabic heading on the
   page rendering in a fallback serif. */
[dir="rtl"] .alnakib-insights .ins-sub-head{font-family:var(--arabic);}
.alnakib-insights .ins-chips{display:flex;flex-wrap:wrap;gap:.45rem;list-style:none;padding:0;margin:1.1rem 0 0;}
.alnakib-insights .ins-chip{border:1px solid var(--line);border-radius:var(--radius);padding:.25rem .6rem;font-size:.85rem;color:var(--ink-2);background:var(--paper-2);}
.alnakib-insights .ins-tl{list-style:none;margin:.6rem 0 0;padding:0;display:flex;flex-direction:column;gap:.7rem;}
.alnakib-insights .ins-tl__row{display:grid;grid-template-columns:minmax(9rem,16rem) 1fr auto;align-items:center;gap:.8rem;}
.alnakib-insights .ins-tl__lbl{color:var(--ink-2);font-size:.9rem;}
.alnakib-insights .ins-tl__track{block-size:.85rem;background:var(--paper-3);border-radius:999px;overflow:hidden;}
.alnakib-insights .ins-tl__fill{display:block;block-size:100%;min-inline-size:2px;background:linear-gradient(90deg,var(--brass-500),var(--brass-400));border-radius:999px;}
.alnakib-insights .ins-tl__val{font-family:var(--mono);font-weight:700;color:var(--primary);white-space:nowrap;}
.alnakib-insights .ins-rate{display:block;block-size:4px;inline-size:100%;background:var(--paper-3);border-radius:999px;overflow:hidden;margin-block:.35rem;}
.alnakib-insights .ins-rate__fill{display:block;block-size:100%;background:var(--brass-500);}
.alnakib-insights .ins-list{list-style:none;padding:0;margin:1.1rem 0 0;columns:2;column-gap:2rem;}
.alnakib-insights .ins-list__item{padding-block:.35rem;border-bottom:1px solid var(--line-soft);break-inside:avoid;}
.alnakib-insights .ins-prov{margin-top:2.2rem;}
/* `auto-fit` + `1fr` stretches every row to fill, so the SAME stat card came out at
   three different widths down one page — measured at the 760px main column: facts
   243px, output 178px, editorial 372px. Cap the track so they all agree (3 per row
   here, which also turns the 6 output cards from a ragged 4+2 into a clean 3+3).
   Must stay AFTER .alnakib-metrics .metrics-grid — same specificity, source order
   decides — so the retired metrics page's own rule is left byte-identical.
   `justify-content:start` is flow-relative: RTL packs to the right by itself. */
@media(min-width:48em){
  .alnakib-insights .metrics-grid{grid-template-columns:repeat(auto-fit,minmax(9.5rem,13.5rem));justify-content:start;}
}
/* RTL: mirror the gradient (as .mbar-fill already does) and flip the chevrons. */
[dir="rtl"] .alnakib-insights .ins-tl__fill{background:linear-gradient(270deg,var(--brass-500),var(--brass-400));}
[dir="rtl"] .alnakib-insights .ins-tl__val,[dir="rtl"] .alnakib-insights .ins-defs dd{font-family:var(--arabic);}
[dir="rtl"] .alnakib-insights .ins-defs dt,[dir="rtl"] .alnakib-insights .ins-pill{font-family:var(--arabic);text-transform:none;letter-spacing:0;font-size:.84rem;}
[dir="rtl"] .alnakib-insights .ins-more svg,[dir="rtl"] .alnakib-insights .ins-list__item svg{transform:scaleX(-1);}
@media(max-width:40em){
  /* Label + value share row 1; the track spans row 2. The placement MUST be explicit:
     grid auto-placement is sparse, so once .ins-tl__track claims a full-width row the
     cursor never goes back to r1c2 and the value drops onto a row of its own (verified
     in Chromium at 375px before this rule existed). */
  .alnakib-insights .ins-tl__row{grid-template-columns:1fr auto;}
  .alnakib-insights .ins-tl__lbl{grid-area:1 / 1 / 2 / 2;}
  .alnakib-insights .ins-tl__val{grid-area:1 / 2 / 2 / 3;}
  .alnakib-insights .ins-tl__track{grid-area:2 / 1 / 3 / -1;}
  .alnakib-insights .ins-list{columns:1;}
}

/* ============================================================
   HOMEPAGE TRENDING — ONE section, N manager-defined windows as tabs.
   The tablist is hidden until js/alnakib.js adds .trend-js, so a no-JS
   visitor (or a crawler) sees every window stacked under its own heading
   rather than a row of dead buttons. Tokens only; the ACTIVE tab uses the
   brass/navy-950 pairing of .btn-primary rather than var(--primary) —
   --primary becomes a light blue in dark mode, where white-on-it would
   fail contrast.
   ============================================================ */
.blk--trending .trend-tabs{display:none;}
.blk--trending.trend-js .trend-tabs{display:flex;flex-wrap:wrap;gap:.4rem;margin:0 0 1.2rem;}
.blk--trending .trend-tab{font-family:var(--mono);font-size:.74rem;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);background:transparent;border:1px solid var(--line);border-radius:999px;padding:.4rem .9rem;cursor:pointer;transition:background .15s,color .15s,border-color .15s;}
.blk--trending .trend-tab:hover{color:var(--primary);border-color:var(--brass-500);}
.blk--trending .trend-tab.is-on{background:var(--brass-600);border-color:var(--brass-600);color:var(--navy-950);}
[dir="rtl"] .blk--trending .trend-tab{font-family:var(--arabic);text-transform:none;letter-spacing:0;font-size:.86rem;}
.blk--trending .trend-panel + .trend-panel{margin-top:1.8rem;}
.blk--trending .trend-panel__head{font-family:var(--serif);font-size:1.02rem;color:var(--ink-2);margin:0 0 .7rem;}
[dir="rtl"] .blk--trending .trend-panel__head{font-family:var(--arabic);}
/* With JS the tab label already names the panel — the heading would be a duplicate. */
.blk--trending.trend-js .trend-panel__head{display:none;}
.blk--trending.trend-js .trend-panel:not(.is-on){display:none;}
.blk--trending.trend-js .trend-panel + .trend-panel{margin-top:0;}
@media(pointer:coarse){.blk--trending .trend-tab{padding:.55rem 1.05rem;}}

/* ============================================================
   SCHOLARLY PRESENTATION SAFEGUARDS
   Journal interfaces prioritize bibliographic hierarchy, stable reading
   surfaces and institutional authority. Layout families remain distinct,
   while promotional scale and decorative motion stay deliberately limited.
   ============================================================ */
.art-title{max-width:32ch;text-wrap:balance;}
.art-meta-bar .mb-k,.pub-history .ph-label{font-size:.72rem;}
.ref-list li{font-size:.95rem;line-height:1.62;}
.share-btn{min-width:44px;height:44px;}
.nav .nav-search button{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;}
.lang-toggle a{min-height:44px;display:inline-flex;align-items:center;}

/* Institutional is the formal default: a journal introduction, not a
   marketing billboard. The manager's colors, image and content still apply. */
.design-institutional .home-hero{text-align:start;padding:1.9rem 2rem;border-radius:0;box-shadow:none;border-inline-start:4px solid var(--accent);}
.design-institutional .home-hero .hero-inner{max-width:880px;margin-inline:0;}
.design-institutional .home-hero .hero-heading{font-size:clamp(1.8rem,3vw,2.35rem);max-width:28ch;text-wrap:balance;}
.design-institutional .home-hero .hero-text{max-width:72ch;margin-inline:0;}
.design-institutional .home-hero .hero-search{max-width:640px;margin-inline:0;}
.design-institutional .home-hero .hero-cta{justify-content:flex-start;}
.design-institutional .search-hero{border-radius:0;box-shadow:none;}
.design-institutional .latest-card{box-shadow:none;}

/* Publication-led and reading-first variants use expressive typography
   without the oversized headline proportions associated with magazines. */
.design-editorial .home-hero .hero-heading{font-size:clamp(2rem,4vw,3.2rem);max-width:24ch;}
.design-minimal .home-hero .hero-heading{font-size:clamp(2rem,4vw,3.1rem);max-width:24ch;}
.design-editorial .search-hero,.design-minimal .search-hero{border-radius:0;box-shadow:none;}

/* Content appears immediately and remains spatially stable. Motion is kept
   for functional state changes such as navigation drawers and disclosures. */
.masthead .brand-logo,.masthead .brand-text,.masthead-cta,
.layout .section-head,.issue-banner,.notice,.lead-para,.stat-row,
.sidebar .widget,.toc-section .article-item{animation:none;}
.alnakib-anim .reveal{opacity:1;transform:none;transition:none;}

body .btn:hover,body .share-btn:hover,body .widget:hover,body .person:hover,
body a.cover:hover,body .issue-banner:hover .cover,body .issue-card:hover .cover,
body .latest-card:hover,body .highlight-card:hover,body .journal-card:hover,
body .ed-person:hover,body .user_listing>li:hover,body .dir-card:hover,
body .art-pager__link:hover,body .issue-pager-link:hover,
body .art-issue-cover:hover img,body .stat-row .stat:hover,
body .page_contact .contact:hover,body .page_contact .address:hover,
body .page_article #articlesBySimilarityList>ul>li:hover,
body .page_article #articlesBySameAuthorList>ul>li:hover,
body .kw:hover,body .galley:hover,body .obj_galley_link:hover{transform:none;}
body .widget:hover,body .person:hover,body .latest-card:hover,
body .highlight-card:hover,body .journal-card:hover,body .ed-person:hover,
body .user_listing>li:hover,body .dir-card:hover{box-shadow:var(--shadow-sm);}
body .article-item:hover{background:var(--primary-soft);}

/* ============================================================
   DEVICE RESPONSIVENESS AND INPUT HARDENING
   ============================================================ */
html,body,.pkp_structure_page,.pkp_structure_content,.pkp_structure_main{min-inline-size:0;}
.pkp_structure_main :is(input,select,textarea,button){max-inline-size:100%;}
.pkp_structure_main :is(.doi,.url,.value,.citation,.references,code){overflow-wrap:anywhere;}
.nav .wrap > ul li:focus-within > ul{display:block;}
.to-top{inset-block-end:max(22px,env(safe-area-inset-bottom));}

@media(max-width:1024px){
  .sidebar,.pkp_structure_sidebar{min-width:0;}
}

@media(max-width:768px){
  .masthead .wrap{align-items:center;}
  .brand-logo{max-inline-size:min(28vw,180px);}
  .brand-logo img{max-inline-size:100%;object-fit:contain;}
  .brand-text{flex:1 1 14rem;}
  .brand-text .jtitle,.brand-text .jsub,.brand-text .jmeta{overflow-wrap:anywhere;}
  .nav .wrap > ul{max-height:min(72vh,560px);max-height:min(72dvh,560px);}
  .section-head .more{min-height:44px;display:inline-flex;align-items:center;}
  .cmp_pagination{display:flex;flex-wrap:wrap;gap:.4rem .75rem;align-items:center;}
  .foot-col a,.foot-social a,.foot-dir-link{display:inline-flex;min-height:44px;align-items:center;}
  .art-meta-bar{align-items:stretch;}
  .art-meta-bar > *{min-width:0;}
}

@media(max-width:480px){
  .brand-logo{height:min(var(--logo-h,72px),44px);max-inline-size:26vw;}
  .brand-text{flex-basis:calc(74% - 1rem);}
  .brand-text .jtitle{font-size:clamp(1.05rem,5.2vw,1.22rem);}
  .brand-text .jsub{font-size:.76rem;line-height:1.4;}
  .brand-text .jmeta{font-size:.64rem;}
  .stat-row{grid-template-columns:1fr;}
  .section-head{align-items:flex-start;}
  .foot-bottom{flex-direction:column;align-items:flex-start;}
}

@media(pointer:coarse){
  .share-btn,.obj_galley_link,.page_article .citation_formats_button,
  .cmp_pagination a,.cmp_pagination .current{min-height:44px;}
  .cmp_pagination a,.cmp_pagination .current{display:inline-flex;align-items:center;}
}

/* ============================================================
   RESEARCH ARTICLE CARDS
   Five publication-grade presets backed by one semantic article
   summary. Manager overrides use --article-card-* custom properties.
   ============================================================ */
.article-list--cards{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:var(--article-card-gap,1rem);
  counter-reset:alnakib-article;
}
.article-list--cards.article-list--cols-two{grid-template-columns:repeat(2,minmax(0,1fr));}
.article-list--cards.article-list--cols-auto{grid-template-columns:repeat(auto-fit,minmax(min(100%,26rem),1fr));}
.article-card{
  --ac-surface:var(--article-card-surface,var(--card));
  --ac-border:var(--article-card-border,var(--line));
  --ac-accent:var(--article-card-accent,var(--brass-600));
  --ac-title:var(--article-card-title,var(--navy-900));
  --ac-radius:var(--article-card-radius,12px);
  --ac-padding:var(--article-card-padding,1.35rem);
  --ac-title-size:var(--article-card-title-size,1.18rem);
  position:relative;
  isolation:isolate;
  min-width:0;
  margin:0;
  padding:var(--ac-padding);
  border:1px solid var(--ac-border);
  border-radius:var(--ac-radius);
  background:var(--ac-surface);
  box-shadow:0 1px 2px rgba(10,31,60,.04),0 10px 30px rgba(10,31,60,.055);
  overflow:hidden;
  transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease,transform .2s cubic-bezier(.2,.8,.2,1);
  counter-increment:alnakib-article;
}
.article-card:last-child{border-bottom:1px solid var(--ac-border);}
.article-card .article-card__body{min-width:0;}
.article-card .title,.article-card h3{
  margin:0 0 .55rem;
  font-size:var(--ac-title-size);
  line-height:1.34;
  letter-spacing:-.012em;
}
.article-card .title a,.article-card h3 a{color:var(--ac-title);text-decoration:none;}
.article-card .title a:hover,.article-card h3 a:hover{color:var(--link-hover);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em;}
.article-card .authors{margin:0 0 .72rem;font-size:.9rem;line-height:1.5;color:var(--ink-2);font-style:normal;}
.article-card .subtitle{margin:0 0 .55rem;line-height:1.45;}
.article-card .article-actions{gap:.5rem .65rem;margin-top:.7rem;}
.article-card .article-meta-doi{flex-basis:100%;font-size:.72rem;line-height:1.5;direction:ltr;unicode-bidi:isolate;text-align:start;}
.article-card .article-meta-doi a{word-break:break-word;overflow-wrap:anywhere;}
.article-card .article-meta-pages{align-self:start;padding:.12rem .6rem;border:1px solid var(--ac-border);border-radius:999px;background:var(--paper-2);font-size:.72rem;line-height:1.7;direction:ltr;unicode-bidi:isolate;}
.article-card .tag{background:color-mix(in srgb,var(--ac-accent) 12%,var(--ac-surface));color:var(--navy-800);border:1px solid color-mix(in srgb,var(--ac-accent) 34%,transparent);border-radius:999px;padding:.2rem .62rem;}
.article-card .obj_galley_link{min-height:36px;padding:.42rem .72rem;border-radius:7px;}
.article-card:focus-within{border-color:color-mix(in srgb,var(--ac-accent) 72%,var(--ac-border));box-shadow:0 0 0 3px color-mix(in srgb,var(--ac-accent) 20%,transparent),0 14px 36px rgba(10,31,60,.09);}

/* 1. Executive Surface — premium, restrained elevation and a clear action edge. */
.article-card--executive{grid-template-columns:minmax(0,1fr) auto;border-top:3px solid var(--ac-accent);padding-block-start:calc(var(--ac-padding) - 2px);}
.article-card--executive:hover{border-color:color-mix(in srgb,var(--ac-accent) 52%,var(--ac-border));box-shadow:0 16px 38px rgba(10,31,60,.10);}
.article-card--executive .article-meta-pages{margin-inline-start:.8rem;}

/* 2. Editorial Folio — typographic index with a numbered publication rail. */
.article-card--folio{
  --ac-radius:var(--article-card-radius,0px);
  display:grid;
  grid-template-columns:3.4rem minmax(0,1fr) auto;
  gap:0 1.15rem;
  border-width:0 0 1px;
  box-shadow:none;
  background:transparent;
  overflow:visible;
}
.article-card--folio::before{
  content:counter(alnakib-article,decimal-leading-zero);
  grid-column:1;
  grid-row:1;
  padding-top:.1rem;
  border-inline-end:1px solid var(--ac-border);
  color:var(--ac-accent);
  font-family:var(--mono);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.08em;
}
.article-card--folio .article-card__body{grid-column:2;}
.article-card--folio .article-meta-pages{grid-column:3;margin-inline-start:.5rem;background:transparent;}
.article-card--folio .title,.article-card--folio h3{font-size:calc(var(--ac-title-size) + .08rem);line-height:1.3;}
.article-card--folio:hover{background:color-mix(in srgb,var(--primary-soft) 55%,transparent);border-color:var(--ac-accent);}

/* 3. Citation Glass — crisp citation object with a strong scholarly side rule. */
.article-card--citation{
  --ac-radius:var(--article-card-radius,6px);
  grid-template-columns:minmax(0,1fr) auto;
  border-inline-start:5px solid var(--ac-accent);
  box-shadow:0 1px 0 rgba(10,31,60,.04);
}
.article-card--citation .title,.article-card--citation h3{font-family:var(--body);font-weight:700;letter-spacing:-.018em;}
.article-card--citation .authors{font-family:var(--serif);}
.article-card--citation .article-meta-doi{order:10;padding-top:.55rem;border-top:1px solid var(--line-soft);}
.article-card--citation:hover{background:color-mix(in srgb,var(--ac-surface) 95%,var(--ac-accent));border-inline-start-color:var(--navy-700);}

/* 4. Research Matrix — title and authors balanced against a metadata/action rail. */
.article-card--matrix{grid-template-columns:minmax(0,1fr) auto;padding:0;}
.article-card--matrix .article-card__body{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(13rem,.7fr);grid-template-rows:auto auto 1fr;column-gap:1.35rem;padding:var(--ac-padding);}
.article-card--matrix .title,.article-card--matrix h3,.article-card--matrix .subtitle,.article-card--matrix .authors{grid-column:1;}
.article-card--matrix .article-actions{grid-column:2;grid-row:1 / span 3;align-content:start;align-self:stretch;margin:0;padding-inline-start:1.2rem;border-inline-start:1px solid var(--ac-border);}
.article-card--matrix .article-meta-doi{margin-top:.2rem;}
.article-card--matrix .article-meta-pages{margin:var(--ac-padding) var(--ac-padding) 0 0;}
[dir="rtl"] .article-card--matrix .article-meta-pages{margin:var(--ac-padding) 0 0 var(--ac-padding);}
.article-card--matrix:hover{border-color:color-mix(in srgb,var(--navy-500) 48%,var(--ac-border));box-shadow:0 14px 34px rgba(10,31,60,.085);}

/* 5. Compact Index — a dense, Q1-style scanning row for large issues. */
.article-card--index{
  --ac-radius:var(--article-card-radius,4px);
  --ac-padding:var(--article-card-padding,.9rem 1rem);
  --ac-title-size:var(--article-card-title-size,1.02rem);
  grid-template-columns:minmax(0,1fr) auto;
  box-shadow:none;
  border-color:transparent transparent var(--ac-border);
  background:transparent;
}
.article-card--index::before{content:"";position:absolute;inset-block:.75rem;inset-inline-start:0;width:2px;background:var(--ac-accent);opacity:.55;}
.article-card--index .authors{margin-bottom:.35rem;font-size:.84rem;}
.article-card--index .article-actions{margin-top:.35rem;}
.article-card--index .article-meta-doi{flex:1 1 auto;}
.article-card--index .tag{background:transparent;border:0;padding-inline:0;}
.article-card--index .obj_galley_link{min-height:32px;padding:.3rem .6rem;}
.article-card--index:hover{background:var(--primary-soft);border-color:transparent transparent var(--ac-accent);}

/* Preset-native galley treatments; an explicit manager action style below wins. */
.article-card--folio.article-card--actions-preset .obj_galley_link,
.article-card--index.article-card--actions-preset .obj_galley_link{min-height:32px;padding:.25rem 0;background:transparent;color:var(--link);border:0;border-radius:0;border-bottom:1px solid currentColor;}
.article-card--citation.article-card--actions-preset .obj_galley_link{background:transparent;color:var(--navy-700);border:1px solid var(--navy-500);}
.article-card--matrix.article-card--actions-preset .obj_galley_link{width:100%;justify-content:center;}

/* Manager overrides: density, elevation, interaction, and action treatment. */
.article-card--density-compact{--ac-padding:var(--article-card-padding,.85rem 1rem);--ac-title-size:var(--article-card-title-size,1.02rem);}
.article-card--density-balanced{--ac-padding:var(--article-card-padding,1.35rem);--ac-title-size:var(--article-card-title-size,1.18rem);}
.article-card--density-spacious{--ac-padding:var(--article-card-padding,1.75rem);--ac-title-size:var(--article-card-title-size,1.28rem);}
.article-card--shadow-none{box-shadow:none;}
.article-card--shadow-soft{box-shadow:0 1px 2px rgba(10,31,60,.04),0 8px 24px rgba(10,31,60,.06);}
.article-card--shadow-elevated{box-shadow:0 18px 42px rgba(10,31,60,.13);}
.article-card--motion-none:hover{transform:none;}
.article-card--motion-lift:hover{transform:translateY(-3px);}
.article-card--motion-highlight:hover{transform:none;background:var(--primary-soft);}
.article-card--actions-solid .obj_galley_link{background:var(--navy-700);color:#fff;border:1px solid var(--navy-700);}
.article-card--actions-outline .obj_galley_link{background:transparent;color:var(--navy-700);border:1px solid var(--navy-500);}
.article-card--actions-minimal .obj_galley_link{min-height:32px;padding:.25rem 0;background:transparent;color:var(--link);border:0;border-radius:0;border-bottom:1px solid currentColor;}

[data-theme="dark"] .article-card{
  --ac-surface:var(--article-card-surface,var(--card));
  --ac-border:var(--article-card-border,var(--line));
  --ac-title:var(--article-card-title,var(--ink));
  box-shadow:0 10px 28px rgba(0,0,0,.18);
}
[data-theme="dark"] .article-card .tag{color:var(--navy-100);}
[data-theme="dark"] .article-card .article-meta-pages{background:var(--paper-3);}
[data-theme="dark"] .article-card--folio,[data-theme="dark"] .article-card--index{box-shadow:none;background:transparent;}
[data-theme="dark"] .article-card--actions-outline .obj_galley_link,[data-theme="dark"] .article-card--actions-minimal .obj_galley_link{color:var(--navy-100);}
[data-theme="dark"] .article-card--citation.article-card--actions-preset .obj_galley_link,
[data-theme="dark"] .article-card--folio.article-card--actions-preset .obj_galley_link,
[data-theme="dark"] .article-card--index.article-card--actions-preset .obj_galley_link{color:var(--navy-100);}

@media(max-width:1100px){
  .article-list--cards.article-list--cols-two{grid-template-columns:minmax(0,1fr);}
}
@media(max-width:760px){
  .article-list--cards{gap:.75rem;}
  .article-card{--ac-padding:var(--article-card-padding,1rem);--ac-title-size:var(--article-card-title-size,1.06rem);grid-template-columns:minmax(0,1fr);}
  .article-card .title,.article-card h3{font-size:clamp(1rem,var(--ac-title-size),1.45rem);}
  .article-card .article-meta-pages{justify-self:start;margin:.65rem 0 0;}
  .article-card--folio{grid-template-columns:2.5rem minmax(0,1fr);gap:0 .8rem;}
  .article-card--folio .article-meta-pages{grid-column:2;}
  .article-card--matrix .article-card__body{grid-template-columns:minmax(0,1fr);padding:var(--ac-padding);}
  .article-card--matrix .title,.article-card--matrix h3,.article-card--matrix .subtitle,.article-card--matrix .authors,.article-card--matrix .article-actions{grid-column:1;}
  .article-card--matrix .article-actions{grid-row:auto;margin-top:.75rem;padding:0;padding-top:.75rem;border-inline-start:0;border-top:1px solid var(--ac-border);}
  .article-card--matrix .article-meta-pages{margin:0 var(--ac-padding) var(--ac-padding);}
}
@media(pointer:coarse){
  .article-card .obj_galley_link{min-height:44px;}
}
@media(prefers-reduced-motion:reduce){
  .article-card,.article-card:hover{transform:none!important;transition:none!important;}
}
@media print{
  .article-list--cards{display:block;}
  .article-card{display:block!important;margin:0 0 10pt;padding:10pt!important;border:1px solid #bbb!important;background:#fff!important;box-shadow:none!important;break-inside:avoid;}
  .article-card::before,.article-card::after{display:none!important;}
  .article-card .article-card__body{display:block!important;padding:0!important;}
  .article-card .article-actions{display:flex!important;border:0!important;padding:0!important;margin-top:5pt!important;}
  .article-card .article-meta-pages{display:inline-block;margin:5pt 0 0!important;}
}


/* ============================================================
   PAGE BLOCKS
   Frontend styling for the block types the block editor places.
   Rich-text blocks keep inheriting the surrounding prose styles;
   everything below is for the typed blocks, which otherwise render
   structurally correct but unstyled. Logical properties throughout,
   so RTL needs no separate rules beyond the two noted below.
   ============================================================ */
.blk__h{margin:0 0 .6rem;color:var(--primary);font-family:var(--serif);line-height:1.3;}
h2.blk__h{font-size:1.5rem;}
h3.blk__h{font-size:1.25rem;}
h4.blk__h{font-size:1.06rem;}

.blk__fig{margin:0;}
.blk__img{display:block;width:100%;height:auto;border-radius:var(--radius);}
.blk__imglink{display:block;text-decoration:none;border-radius:var(--radius);transition:opacity var(--t) var(--ease);}
.blk__imglink:hover{opacity:.9;}
.blk__imglink:focus-visible{outline:3px solid var(--brass-500);outline-offset:3px;}
.blk__cap{margin-top:.55rem;color:var(--ink-3);font-size:.84rem;font-style:italic;line-height:1.5;text-align:center;}
[dir="rtl"] .blk__cap{font-style:normal;}

.blk__quote{margin:0;padding-inline-start:1.2rem;border-inline-start:3px solid var(--brass-500);color:var(--ink-2);}
.blk__quote p{margin:0;font-size:1.06rem;font-style:italic;line-height:1.6;}
[dir="rtl"] .blk__quote p{font-style:normal;}
.blk__cite{display:block;margin-top:.5rem;color:var(--ink-3);font-size:.84rem;font-style:normal;}
.blk__cite::before{content:"\2014\00a0";}

.blk__cta{padding:1.15rem 1.3rem;background:var(--paper-2);border:1px solid var(--line);border-inline-start:4px solid var(--brass-500);border-radius:var(--radius);}
.blk__cta-h{margin:0;color:var(--primary);font-family:var(--serif);font-size:1.18rem;line-height:1.35;}
.blk__cta-b{margin:.4rem 0 0;color:var(--ink-2);font-size:.94rem;line-height:1.6;}
.blk__cta-a{display:inline-flex;align-items:center;min-height:44px;margin-top:.85rem;padding:.55rem 1.1rem;color:var(--paper);background:var(--primary);border:1px solid var(--primary);border-radius:var(--radius);font-weight:650;text-decoration:none;transition:background var(--t) var(--ease);}
.blk__cta-a:hover{background:var(--primary-deep);}
.blk__cta-a:focus-visible{outline:3px solid var(--brass-500);outline-offset:3px;}

.blk__cols{display:grid;gap:var(--gutter);}
.blk__cols>.blk__col{min-width:0;}
@media (min-width:720px){
  .blk__cols--50-50{grid-template-columns:1fr 1fr;}
  .blk__cols--60-40{grid-template-columns:3fr 2fr;}
  .blk__cols--40-60{grid-template-columns:2fr 3fr;}
  .blk__cols--70-30{grid-template-columns:7fr 3fr;}
  .blk__cols--30-70{grid-template-columns:3fr 7fr;}
}

[data-theme="dark"] .blk__cta{background:var(--paper-3);border-color:var(--line);}
[data-theme="dark"] .blk__cta-h{color:var(--navy-100);}
[data-theme="dark"] .blk__cta-a{color:var(--navy-950);background:var(--brass-400);border-color:var(--brass-400);}
[data-theme="dark"] .blk__cta-a:hover{background:var(--brass-500);}
[data-theme="dark"] .blk__h{color:var(--navy-100);}
[data-theme="dark"] .blk__quote{border-inline-start-color:var(--brass-400);}

@media print{
  .blk__spacer{display:none;}
  .blk__cta{background:none;border:1px solid var(--line);}
  .blk__cta-a{color:var(--ink);background:none;border-color:var(--ink-3);}
  .blk__cols{grid-template-columns:1fr 1fr;}
}

/* Inside the Customizer preview only: show that blocks are clickable. Never
   present on an ordinary page load, because the bridge script that sets the
   attribute is only registered for the preview. */
[data-alnakib-preview] [data-alnakib-block]{cursor:pointer;outline-offset:2px;transition:outline-color var(--t) var(--ease);outline:2px dashed transparent;}
[data-alnakib-preview] [data-alnakib-block]:hover{outline-color:var(--brass-500);}

/* Per-block width and alignment. Widths collapse to full below the tablet
   breakpoint, because a narrow column on a phone is just a cramped one. Start
   and End use logical margins, so they mirror in Arabic without extra rules. */
.blk-w-full{max-width:none;}
@media (min-width:900px){
  .blk-w-wide{max-width:82%;}
  .blk-w-medium{max-width:64%;}
  .blk-w-narrow{max-width:46%;}
  .blk-a-start{margin-inline:0 auto;}
  .blk-a-center{margin-inline:auto;}
  .blk-a-end{margin-inline:auto 0;}
}

/* Content blocks inside the flex-ordered homepage column. Ordered sections use
   order:1..N and .additional_content uses 999; without a value of their own the
   blocks defaulted to 0 and a "Homepage bottom" block jumped to the very top. */
.home-main>.alnakib-cblock{order:900;}


/* ============================================================
   AUTH FORMS ON SMALL SCREENS  (login / register / lost password)

   The captcha could scroll the entire page sideways on a phone.
   reCAPTCHA renders a fixed 304px iframe - the markup is
   fieldset.recaptcha_wrapper > div.fields > div.recaptcha > div.g-recaptcha
   (pkp-lib 3.5 userLogin.tpl) - and inside the card a 360px screen has
   less room than that. Two separate things had to change:

     - A fieldset defaults to min-inline-size:min-content, so the wrapper
       refused to shrink below the widget and a max-width guard on its own
       would never have engaged. min-inline-size:0 releases that floor.

     - The wrapper centred its contents with justify-content, and a centred
       flex item that overflows gets its START edge clipped - which is
       exactly where reCAPTCHA puts its checkbox. Centring is now done with
       auto margins on the inner .fields instead: they centre the widget
       while it fits and collapse to 0 once it does not, so the checkbox
       stays reachable at every width. In RTL the start edge is the right
       one and the same rule holds.

   Deliberately NOT transform:scale() - shrinking reCAPTCHA drops its
   checkbox below a comfortable touch target.

   Checked while fixing this, recorded so it is not re-investigated: the
   page wrappers really are .page_login / .page_register /
   .page_lost_password (snake_case, confirmed against pkp-lib
   stable-3_5_0 - the camelCase spelling is wrong), the viewport meta
   comes from core headerHead.tpl, and .masthead already clips its
   oversized ::after decoration.
   ============================================================ */
.recaptcha_wrapper,.altcha_wrapper{max-width:100%;min-inline-size:0;overflow-x:auto;-webkit-overflow-scrolling:touch;}
.recaptcha_wrapper > *,.altcha_wrapper > *{flex:0 0 auto;max-width:none;}
.recaptcha_wrapper > .fields,.altcha_wrapper > .fields{margin-inline:auto;}
.page_lost_password .recaptcha_wrapper,.page_lost_password .altcha_wrapper{display:flex;margin:1rem 0;border:0;padding:0;}

/* The card holds 2.2rem of padding down to 768px, where it drops to
   ~1.15rem. That is still generous at 320-360px, and every pixel returned
   to the field is a pixel the captcha does not have to scroll for. */
@media(max-width:460px){
  .page_login .cmp_form,.page_register .cmp_form,.page_lost_password .cmp_form{padding:1.35rem 1.05rem;}
  .page_login h1,.page_register h1,.page_lost_password h1{font-size:1.32rem;margin-bottom:1rem;}
  .page_register .cmp_form fieldset.consent,.page_register .cmp_form fieldset.reviewer{padding:.9rem .95rem;}
}

/* ---- 1.1.7.6 audit fixes ---------------------------------------------- */
/* Consent-gated badge images have no src until accepted: never show the broken glyph. */
img[data-consent-src]:not([src]){display:none;}
/* Galleys repeated near the top for stacked (phone/tablet) layouts only. */
.art-galleys-inline{display:none;gap:.5rem;flex-wrap:wrap;margin:.6rem 0 .9rem;}
@media(max-width:1024px){.art-galleys-inline{display:flex;}}
/* Issue title follows the same mobile type scale as every other heading. */
.section-head h1.issue-h1{margin:0;font-size:1.7rem;}
@media(max-width:768px){.section-head h1.issue-h1{font-size:1.3rem;}}
/* Comfortable measure for the abstract. */
.abstract-block p{max-width:72ch;}
/* Focus ring on the search box in both schemes (its input has outline:none). */
.search-field:focus-within{box-shadow:0 0 0 3px var(--brass-500,#a6812f);}
[data-theme="dark"] .ref-scholar{color:var(--brass-400);}
@media(pointer:coarse){.share-btn{min-width:44px;min-height:44px;}.kw-list .kw,.keywords .kw{min-height:40px;display:inline-flex;align-items:center;}}
/* Watermark should not sit behind the title on narrow mastheads. */
@media(max-width:768px){.masthead::after{display:none;}}
/* Print: the theme's own Print button must not print a clamped abstract and 3 references. */
@media print{.alnakib-readmore.rm-collapsed{max-height:none!important;overflow:visible!important;}.alnakib-readmore.rm-collapsed::after{display:none!important;}.ref-list li[hidden]{display:list-item!important;}.rm-toggle{display:none!important;}}

/* ---- 1.1.7.7 audit round 2 -------------------------------------------- */
/* Portal cards: a summary, not a faded wall of About text. */
.journal-card .description{max-height:none;}
.journal-card .description::after{content:none;}
.journals-grid{max-width:960px;}
.journal-card .thumb img{aspect-ratio:4/3;object-fit:contain;}
/* Prose pages (About, Submissions, Privacy) need a readable measure. */
.prose{max-width:72ch;}
.prose table,.prose .alnakib-chart{max-width:none;}
/* Archive: three columns beside a sidebar, two on phones. */
@media(min-width:1025px){.has_sidebar .page_issue_archive .issues_archive,.has_sidebar .issues_archive{grid-template-columns:repeat(3,1fr);}}
@media(max-width:560px){.page_issue_archive .issues_archive{grid-template-columns:repeat(2,1fr);gap:1rem;}
  .issue-card .ic-cover-img{height:auto;aspect-ratio:210/297;}
  .issue-card .cover{height:auto;aspect-ratio:210/297;}}
/* Search: core's accessible date selects need a flex row. */
.search-adv__dates fieldset{display:flex;flex-wrap:wrap;gap:.4rem .7rem;align-items:center;border:0;padding:0;margin:0;}
.search-adv__dates fieldset legend{font-family:var(--mono);font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);padding:0 0 .3rem;}
.search-adv__dates label{display:inline-flex;align-items:center;gap:.3rem;font-size:.85rem;color:var(--ink-2);}
[data-theme="dark"] .search-results-head .srh-term{color:var(--brass-400);}
/* An announcement whose summary is only <br>s must not reserve space. */
.obj_announcement_summary .summary p:empty{display:none;}
.obj_announcement_summary .summary:has(> p:only-child > br:only-child){display:none;}
