/* =====================================================================
   LAWVUL Theme — Journal of Law, Gender & Vulnerable Groups
   Child theme stylesheet for the OJS 3.4/3.5 Default Theme — v1.3 (styled inner pages: issue, article, archive, forms)
   Palette: aubergine · teal · saffron on warm ivory
   Original design. Free to modify for the journal's own use.
   ===================================================================== */

/* ---------- 1. Design tokens ---------------------------------------- */
:root {
  --lv-plum-950: #1F1129;
  --lv-plum-900: #2E1A3D;
  --lv-plum-800: #3B2250;
  --lv-plum-700: #4A2C5E;
  --lv-plum-500: #6B4A80;
  --lv-plum-100: #EFE8F3;
  --lv-plum-50:  #F7F3F9;
  --lv-teal-800: #175754;
  --lv-teal-700: #1F6F6B;
  --lv-teal-400: #3FA39D;
  --lv-teal-50:  #E6F2F1;
  --lv-saffron:  #E0A33A;
  --lv-saffron-300: #F2C97A;
  --lv-saffron-50:  #FCF3E3;
  --lv-ivory:    #FAF7F2;
  --lv-white:    #FFFFFF;
  --lv-ink:      #2B2B2B;
  --lv-muted:    #5C5563;
  --lv-line:     #E6E0EA;

  --lv-serif: "Lora", Georgia, "Times New Roman", serif;
  --lv-sans: "Atkinson Hyperlegible", "Noto Sans", "Segoe UI", Roboto, Arial, sans-serif;

  --lv-radius: 10px;
  --lv-radius-sm: 6px;
  --lv-shadow: 0 1px 2px rgba(46, 26, 61, .06), 0 4px 14px rgba(46, 26, 61, .06);
  --lv-shadow-hover: 0 2px 4px rgba(46, 26, 61, .08), 0 10px 24px rgba(46, 26, 61, .10);
  --lv-stripe: linear-gradient(90deg, var(--lv-saffron) 0 33.33%, var(--lv-teal-400) 33.33% 66.66%, var(--lv-plum-500) 66.66% 100%);
  --lv-i-target: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.9%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%229%22/%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%225%22/%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%221%22/%3E%3C/g%3E%3C/svg%3E");
  --lv-i-users: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.9%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%229%22 cy=%228%22 r=%223.5%22/%3E%3Cpath d=%22M3 20c0-3.3 2.7-6 6-6s6 2.7 6 6%22/%3E%3Ccircle cx=%2217%22 cy=%229%22 r=%222.5%22/%3E%3Cpath d=%22M16.5 14.2c2.6.4 4.5 2.7 4.5 5.8%22/%3E%3C/g%3E%3C/svg%3E");
  --lv-i-usercheck: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.9%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2210%22 cy=%228%22 r=%224%22/%3E%3Cpath d=%22M3 20c0-3.9 3.1-7 7-7 1.3 0 2.5.3 3.5.9%22/%3E%3Cpath d=%22M15 18l2 2 4-4%22/%3E%3C/g%3E%3C/svg%3E");
  --lv-i-clipboard: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.9%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M9 4H6.5A1.5 1.5 0 0 0 5 5.5v14A1.5 1.5 0 0 0 6.5 21h11a1.5 1.5 0 0 0 1.5-1.5v-14A1.5 1.5 0 0 0 17.5 4H15%22/%3E%3Crect x=%229%22 y=%222.5%22 width=%226%22 height=%223%22 rx=%221%22/%3E%3Cpath d=%22M9 13l2 2 4-4%22/%3E%3C/g%3E%3C/svg%3E");
  --lv-i-shield: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.9%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M12 3l8 3v6c0 4.5-3.4 8.2-8 9-4.6-.8-8-4.5-8-9V6z%22/%3E%3Cpath d=%22M8.5 12l2.5 2.5 4.5-5%22/%3E%3C/g%3E%3C/svg%3E");
  --lv-i-heart: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.9%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M12 20s-7.5-4.6-7.5-10.2A4 4 0 0 1 12 7.4a4 4 0 0 1 7.5 2.4C19.5 15.4 12 20 12 20z%22/%3E%3C/g%3E%3C/svg%3E");
  --lv-i-chip: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.9%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%226%22 y=%226%22 width=%2212%22 height=%2212%22 rx=%222%22/%3E%3Crect x=%229.5%22 y=%229.5%22 width=%225%22 height=%225%22 rx=%22.5%22/%3E%3Cpath d=%22M9 3v3M15 3v3M9 18v3M15 18v3M3 9h3M3 15h3M18 9h3M18 15h3%22/%3E%3C/g%3E%3C/svg%3E");
  --lv-i-chat: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.9%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M4 5h16v11H9l-5 4z%22/%3E%3Cpath d=%22M8 9.5h8M8 12.5h5%22/%3E%3C/g%3E%3C/svg%3E");
  --lv-i-access: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.9%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%224.5%22 r=%221.8%22/%3E%3Cpath d=%22M5 8.5l7 1.5 7-1.5M12 10v4.5M12 14.5l-3 6M12 14.5l3 6%22/%3E%3C/g%3E%3C/svg%3E");
  --lv-i-coin: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.9%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%229%22/%3E%3Cpath d=%22M14.5 9.5c-.5-1-1.5-1.5-2.5-1.5-1.4 0-2.5.8-2.5 2s1.1 1.6 2.5 2 2.5.9 2.5 2-1.1 2-2.5 2c-1 0-2-.5-2.5-1.5M12 6.5V8M12 16v1.5%22/%3E%3C/g%3E%3C/svg%3E");
  --lv-i-copyright: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.9%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%229%22/%3E%3Cpath d=%22M14.6 9.6a3.4 3.4 0 1 0 0 4.8%22/%3E%3C/g%3E%3C/svg%3E");
  --lv-i-unlock: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.9%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%224%22 y=%2211%22 width=%2216%22 height=%2210%22 rx=%222%22/%3E%3Cpath d=%22M8 11V7a4 4 0 0 1 7.7-1.5%22/%3E%3Cpath d=%22M12 15v2%22/%3E%3C/g%3E%3C/svg%3E");
  --lv-i-book: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.9%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M4 19.5V5.5A2.5 2.5 0 0 1 6.5 3H20v14H6.5A2.5 2.5 0 0 0 4 19.5 2.5 2.5 0 0 0 6.5 22H20%22/%3E%3C/g%3E%3C/svg%3E");
  --lv-i-file: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.9%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M14 3H6.5A1.5 1.5 0 0 0 5 4.5v15A1.5 1.5 0 0 0 6.5 21h11a1.5 1.5 0 0 0 1.5-1.5V8z%22/%3E%3Cpath d=%22M14 3v5h5M8.5 13h7M8.5 17h5%22/%3E%3C/g%3E%3C/svg%3E");
  --lv-i-eye: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.9%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12z%22/%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%223%22/%3E%3C/g%3E%3C/svg%3E");
  --lv-i-percent: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.9%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M19 5L5 19%22/%3E%3Ccircle cx=%227%22 cy=%227%22 r=%222.5%22/%3E%3Ccircle cx=%2217%22 cy=%2217%22 r=%222.5%22/%3E%3C/g%3E%3C/svg%3E");
  --lv-i-trend: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.9%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M3 17l6-6 4 4 8-8%22/%3E%3Cpath d=%22M15 7h6v6%22/%3E%3C/g%3E%3C/svg%3E");
  --lv-i-mail: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.9%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%223%22 y=%225%22 width=%2218%22 height=%2214%22 rx=%222%22/%3E%3Cpath d=%22M3.5 6.5l8.5 6.5 8.5-6.5%22/%3E%3C/g%3E%3C/svg%3E");
  --lv-i-pin: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.9%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M12 21s-7-6.2-7-11.5a7 7 0 0 1 14 0C19 14.8 12 21 12 21z%22/%3E%3Ccircle cx=%2212%22 cy=%229.5%22 r=%222.5%22/%3E%3C/g%3E%3C/svg%3E");
  --lv-i-globe: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.9%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%229%22/%3E%3Cpath d=%22M3 12h18M12 3c2.5 2.5 3.8 5.5 3.8 9s-1.3 6.5-3.8 9c-2.5-2.5-3.8-5.5-3.8-9S9.5 5.5 12 3z%22/%3E%3C/g%3E%3C/svg%3E");
  --lv-i-arrow: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.9%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M5 12h14M13 6l6 6-6 6%22/%3E%3C/g%3E%3C/svg%3E");
  --lv-i-chevron: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23000%22 stroke-width=%222.4%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M9 6l6 6-6 6%22/%3E%3C/g%3E%3C/svg%3E");
  --lv-i-upload: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.9%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M12 16V4M7 9l5-5 5 5M5 20h14%22/%3E%3C/g%3E%3C/svg%3E");
  --lv-i-scale: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.9%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M12 4v16M7 20h10M5 7h14M5 7l-3 6a3 3 0 0 0 6 0zM19 7l-3 6a3 3 0 0 0 6 0z%22/%3E%3C/g%3E%3C/svg%3E");
  --lv-i-link: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.9%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M10 14a4 4 0 0 0 5.7 0l3-3a4 4 0 0 0-5.7-5.7l-1 1%22/%3E%3Cpath d=%22M14 10a4 4 0 0 0-5.7 0l-3 3a4 4 0 0 0 5.7 5.7l1-1%22/%3E%3C/g%3E%3C/svg%3E");
  --lv-i-pen: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.9%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M4 20l4-1 11-11-3-3L5 16z%22/%3E%3Cpath d=%22M14 6l3 3%22/%3E%3C/g%3E%3C/svg%3E");
  --lv-i-info: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.9%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%229%22/%3E%3Cpath d=%22M12 11v5M12 7.6v.2%22/%3E%3C/g%3E%3C/svg%3E");
  --lv-i-calendar: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.9%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%223%22 y=%225%22 width=%2218%22 height=%2216%22 rx=%222%22/%3E%3Cpath d=%22M3 10h18M8 3v4M16 3v4%22/%3E%3C/g%3E%3C/svg%3E");
  --lv-i-hash: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.9%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M5 9h15M4 15h15M10 3L8 21M16 3l-2 18%22/%3E%3C/g%3E%3C/svg%3E");
  --lv-i-contrast: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.9%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%229%22/%3E%3C/g%3E%3Cpath d=%22M12 3a9 9 0 0 1 0 18z%22 fill=%22%23000%22/%3E%3C/svg%3E");
  --lv-i-phone: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.9%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2%22/%3E%3C/g%3E%3C/svg%3E");
  --lv-i-top: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cg fill=%22none%22 stroke=%22%23000%22 stroke-width=%222.4%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M6 15l6-6 6 6%22/%3E%3C/g%3E%3C/svg%3E");
  --lv-emblem-dark: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 64 64%22 role=%22img%22 aria-label=%22LAWVUL emblem%22%3E%3Cpath d=%22M43.27 12.81A24 24 0 1 1 20.73 12.81%22 fill=%22none%22 stroke=%22%23FAF7F2%22 stroke-width=%223.6%22 stroke-linecap=%22round%22/%3E%3Ccircle cx=%2232%22 cy=%2210%22 r=%223.6%22 fill=%22%23E0A33A%22/%3E%3Ccircle cx=%2226%22 cy=%2236%22 r=%2210%22 fill=%22%23E0A33A%22/%3E%3Ccircle cx=%2238%22 cy=%2236%22 r=%2210%22 fill=%22%233FA39D%22/%3E%3Cpath d=%22M32 28A10 10 0 0 1 32 44A10 10 0 0 1 32 28Z%22 fill=%22%23FAF7F2%22/%3E%3C/svg%3E");
  --lv-emblem-light: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 64 64%22 role=%22img%22 aria-label=%22LAWVUL emblem%22%3E%3Cpath d=%22M43.27 12.81A24 24 0 1 1 20.73 12.81%22 fill=%22none%22 stroke=%22%234A2C5E%22 stroke-width=%223.6%22 stroke-linecap=%22round%22/%3E%3Ccircle cx=%2232%22 cy=%2210%22 r=%223.6%22 fill=%22%23E0A33A%22/%3E%3Ccircle cx=%2226%22 cy=%2236%22 r=%2210%22 fill=%22%23E0A33A%22/%3E%3Ccircle cx=%2238%22 cy=%2236%22 r=%2210%22 fill=%22%231F6F6B%22/%3E%3Cpath d=%22M32 28A10 10 0 0 1 32 44A10 10 0 0 1 32 28Z%22 fill=%22%234A2C5E%22/%3E%3C/svg%3E");
  --lv-cover-art: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cg fill='none' stroke='%23E0A33A' stroke-linecap='round'%3E%3Ccircle cx='100' cy='100' r='92' stroke-opacity='.35' stroke-width='1.2'/%3E%3Ccircle cx='86' cy='100' r='76' stroke-opacity='.8' stroke-width='1.6'/%3E%3Ccircle cx='114' cy='100' r='76' stroke-opacity='.8' stroke-width='1.6'/%3E%3Ccircle cx='100' cy='100' r='62' stroke-opacity='.5' stroke-width='1.2'/%3E%3C/g%3E%3Cg transform='translate(64 62) scale(1.125)'%3E%3Cpath d='M43.27 12.81A24 24 0 1 1 20.73 12.81' fill='none' stroke='%23FAF7F2' stroke-width='3.6' stroke-linecap='round'/%3E%3Ccircle cx='32' cy='10' r='3.6' fill='%23E0A33A'/%3E%3Ccircle cx='26' cy='36' r='10' fill='%23E0A33A'/%3E%3Ccircle cx='38' cy='36' r='10' fill='%233FA39D'/%3E%3Cpath d='M32 28A10 10 0 0 1 32 44A10 10 0 0 1 32 28Z' fill='%23FAF7F2'/%3E%3C/g%3E%3C/svg%3E");

  /* header emblem split in two layers: the ring + dot turns, the centre stays */
  --lv-emblem-ring: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath d='M43.27 12.81A24 24 0 1 1 20.73 12.81' fill='none' stroke='%23FAF7F2' stroke-width='3.6' stroke-linecap='round'/%3E%3Ccircle cx='32' cy='10' r='3.6' fill='%23E0A33A'/%3E%3C/svg%3E");
  --lv-emblem-core: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Ccircle cx='26' cy='36' r='10' fill='%23E0A33A'/%3E%3Ccircle cx='38' cy='36' r='10' fill='%233FA39D'/%3E%3Cpath d='M32 28A10 10 0 0 1 32 44A10 10 0 0 1 32 28Z' fill='%23FAF7F2'/%3E%3C/svg%3E");
  --lv-emblem-size: clamp(88px, 8.5vw, 132px);
  --lv-emblem-left: clamp(0px, 5vw, 110px);

  --lv-i-close: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cpath d=%22M6 6l12 12M18 6L6 18%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222.2%22 stroke-linecap=%22round%22/%3E%3C/svg%3E");
  --lv-i-check: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cpath d=%22M5 12.5l4.5 4.5L19 7.5%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222.4%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22/%3E%3C/svg%3E");

  --lv-head: #3E2150;
  --lv-hero: #3A3354;
  --lv-side: #2C1834;
}

/* ---------- 2. Base ------------------------------------------------- */
html { font-size: 15px; }
html.lv-text-lg { font-size: 16.5px; }
html.lv-text-xl { font-size: 18px; }

body,
.pkp_structure_page {
  background: var(--lv-ivory);
  color: var(--lv-ink);
  font-family: var(--lv-sans);
  line-height: 1.6;
}
.pkp_structure_content,
.pkp_structure_main { background: transparent; }

.pkp_structure_page h1, .pkp_structure_page h2, .pkp_structure_page h3,
.pkp_structure_page h4, .page_title, .pkp_structure_main h1 {
  font-family: var(--lv-serif);
  color: var(--lv-plum-700);
  letter-spacing: -.005em;
}

.pkp_structure_page a { color: var(--lv-teal-700); text-underline-offset: 3px; }
.pkp_structure_page a:hover,
.pkp_structure_page a:focus { color: var(--lv-teal-800); }
.pkp_structure_main p a,
.pkp_structure_main li a { text-decoration: underline; text-decoration-thickness: 1px; }

:focus-visible {
  outline: 3px solid var(--lv-saffron) !important;
  outline-offset: 2px;
  border-radius: 3px;
}

::selection { background: var(--lv-saffron-300); color: var(--lv-plum-950); }

.cmp_skip_to_content a:focus {
  background: var(--lv-saffron);
  color: var(--lv-plum-950) !important;
  font-weight: 700;
}

/* ---------- 3. Masthead --------------------------------------------- */
.pkp_structure_head {
  position: relative;
  padding: 0;
  border-bottom: 0;
  background:
    radial-gradient(circle at 9% 118%, rgba(255, 255, 255, .07) 0 300px, transparent 301px),
    linear-gradient(120deg, #4A2758 0%, var(--lv-head) 45%, #2B173A 100%);
}
.pkp_structure_head::after {            /* tri-colour stripe under the header */
  content: "";
  position: absolute; left: 0; right: 0; bottom: 0;
  height: 6px;
  background: var(--lv-stripe);
}

/* The masthead is found by lawvul.js (the parent of .pkp_site_name) and marked
   .lv-masthead, so the layout does not depend on one OJS version's markup. */
.lv-masthead {
  position: relative !important;
  display: block !important;
  text-align: center !important;
  padding: 2rem 0 1.5rem;
}
html body .lv-masthead .pkp_site_name {
  position: static !important;
  float: none !important;
  display: block !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  text-align: center !important;
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
}
html body .pkp_structure_head .lv-title {
  display: inline-block;
  max-width: 100%;
  margin: 0;
  padding: 0 !important;
  font-family: var(--lv-serif) !important;
  font-weight: 500 !important;
  font-size: clamp(1.45rem, 2.1vw, 2.05rem) !important;
  line-height: 1.2 !important;
  letter-spacing: 0 !important;
  color: var(--lv-ivory) !important;
  text-decoration: none !important;
  white-space: normal !important;
}
html body .pkp_structure_head .lv-title:hover { color: var(--lv-white) !important; }
.lv-title__pre, .lv-title__main { display: block; }

/* Emblem: a real inline SVG inserted by lawvul.js; its ring turns */
/* Logo lock-up built by lawvul.js: emblem + (title over tagline), centred
   as one unit, so the emblem always sits right beside the name at a size
   matched to the two lines of text. */
.lv-brand {
  display: inline-flex;
  align-items: center;
  gap: clamp(1rem, 2vw, 1.75rem);
  max-width: 100%;
  text-align: left;
}
.lv-brand__text { min-width: 0; }
.lv-brand .pkp_site_name,
html body .lv-masthead .lv-brand .pkp_site_name { text-align: left !important; }
.lv-brand .lv-tagline { margin: .45rem 0 0; max-width: none; text-align: left; }
.lv-emblem {
  position: relative;
  flex: none;
  display: block;
  width: var(--lv-emblem-size);
  height: var(--lv-emblem-size);
  pointer-events: none;
}
.lv-emblem svg { display: block; width: 100%; height: 100%; overflow: visible; }
.lv-emblem__ring { transform-box: view-box; transform-origin: 32px 34px; }
@keyframes lv-orbit { to { transform: rotate(360deg); } }
.lv-spin-always .lv-emblem__ring { animation: lv-orbit 14s linear infinite; }
.lv-spin-always .lv-masthead:hover .lv-emblem__ring { animation-duration: 3.5s; }
.lv-spin-hover .lv-emblem__ring { transition: transform .9s cubic-bezier(.45, 0, .25, 1); }
.lv-spin-hover .lv-masthead:hover .lv-emblem__ring { transform: rotate(360deg); }

.pkp_site_name .is_img { display: inline-block; }
.pkp_site_name .is_img img { max-height: 130px; width: auto; }

.lv-tagline {
  margin: .9rem auto 0;
  max-width: 44em;
  font-family: var(--lv-sans);
  font-size: .95rem;
  line-height: 1.4;
  color: rgba(250, 247, 242, .82);
}

/* Register / Login + display buttons, top right (wrapper marked .lv-usernav by lawvul.js) */
.pkp_navigation_user_wrapper,
.lv-usernav { display: flex; align-items: center; gap: 1.25rem; }
.pkp_navigation_user > li > a { font-size: .95rem; text-decoration: none; }
.pkp_structure_head .lv-usernav a { color: rgba(250, 247, 242, .9) !important; text-decoration: none !important; font-size: .95rem; }
.pkp_structure_head .lv-usernav a:hover { color: var(--lv-saffron-300) !important; }
.lv-usernav .lv-usermenu,
.lv-usernav .pkp_navigation_user { display: flex; flex-wrap: wrap; justify-content: center; gap: .25rem 1rem; margin: 0; padding: 0; list-style: none; }

.lv-a11y { display: inline-flex; align-items: center; gap: .25rem; }
.lv-a11y button {
  font: inherit; font-size: .8125rem; font-weight: 700; line-height: 1;
  color: var(--lv-ivory);
  background: transparent;
  border: 1px solid rgba(255, 255, 255, .25);
  border-radius: 4px;
  min-width: 30px; height: 28px; padding: 0 .4rem;
  cursor: pointer;
}
.lv-a11y button:hover:not(:disabled) { background: rgba(255, 255, 255, .12); }
.lv-a11y button:disabled { opacity: .4; cursor: default; }
.lv-a11y button[aria-pressed="true"] { background: var(--lv-saffron); color: var(--lv-plum-950); border-color: var(--lv-saffron); }
.lv-a11y .lv-a11y__contrast::before {
  content: ""; display: inline-block; width: 13px; height: 13px; vertical-align: -2px;
  background: currentColor;
  -webkit-mask: var(--lv-i-contrast) center / contain no-repeat;
          mask: var(--lv-i-contrast) center / contain no-repeat;
}

/* ---------- 4. Navigation (desktop) ---------------------------------- */
@media (min-width: 992px) {
  html .pkp_head_wrapper {
    position: relative;
    width: auto;
    max-width: 1480px;
    margin: 0 auto;
    padding: 1.25rem 2rem 0;
  }
  .lv-masthead {
    padding: 3rem 2rem 1.9rem !important;
  }
  /* ancestors between the user menu and the header stop being positioned,
     so Register / Login always sit at the header's top right */
  html body .pkp_structure_head .lv-static { position: static !important; }
  html body .pkp_structure_head .lv-usernav {
    position: absolute !important;
    top: 1.1rem !important; right: 2rem !important;
    left: auto !important; bottom: auto !important;
    width: auto !important; height: auto !important;
    margin: 0 !important; padding: 0 !important;
    display: flex !important; justify-content: flex-end;
    background: transparent !important;
    z-index: 5;
  }
  /* whatever box the parent theme paints behind the menu (its "base colour") */
  html body .pkp_structure_head .lv-clear-bg {
    background: transparent !important;
    background-image: none !important;
    box-shadow: none !important;
    border-color: transparent !important;
  }
  html body .pkp_structure_head .lv-clear-bg > li { background: transparent !important; }

  html .pkp_navigation_user_wrapper {
    position: absolute;
    top: 1.1rem; right: 2rem; left: auto;
    width: auto; height: auto;
    z-index: 4;
  }
  .pkp_navigation_user { margin: 0; }
  .pkp_navigation_user > li > a {
    color: rgba(250, 247, 242, .9) !important;
    font-weight: 400;
    padding: 4px 8px;
  }
  .pkp_navigation_user > li > a:hover { color: var(--lv-saffron-300) !important; }

  html .pkp_navigation_primary_row {
    background: transparent;
    border: 0;
    padding: .25rem 0 1.4rem;
  }
  html .pkp_navigation_primary_wrapper {
    display: flex;
    align-items: center;
    width: auto;
    max-width: 1240px;
    margin: 0 auto;
    padding: 0;
  }
  html .pkp_navigation_primary {
    display: flex;
    flex: 1 1 auto;
    justify-content: space-evenly;
    margin: 0;
    padding: 0;
  }
  html .pkp_navigation_primary > li { float: none; }
  .pkp_navigation_primary > li > a,
  html .pkp_navigation_search_wrapper a {
    display: inline-block;
    color: rgba(250, 247, 242, .92) !important;
    font-family: var(--lv-sans);
    font-size: .95rem;
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: .07em;
    padding: .55rem .35rem;
    margin: 0;
    background: none;
    border: 0;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    text-decoration: none;
  }
  .pkp_navigation_primary > li > a:hover,
  .pkp_navigation_primary > li > a:focus,
  .pkp_navigation_primary > li.current > a,
  html .pkp_navigation_search_wrapper a:hover,
  html .pkp_navigation_search_wrapper a:focus {
    color: var(--lv-white) !important;
    background: none;
    border-bottom-color: var(--lv-saffron);
    text-decoration: none;
  }
  html .pkp_navigation_search_wrapper {
    float: none;
    position: static;
    flex: 0 1 auto;
    margin: 0;
    padding: 0 0 0 1rem;
  }
  .pkp_navigation_search_wrapper .fa { display: none; }

  .pkp_navigation_primary ul {                 /* dropdowns */
    background: var(--lv-white);
    border: 1px solid var(--lv-line);
    border-top: 3px solid var(--lv-saffron);
    border-radius: 0 0 var(--lv-radius-sm) var(--lv-radius-sm);
    box-shadow: var(--lv-shadow-hover);
    padding: 6px 0;
    text-transform: none;
  }
  .pkp_navigation_primary ul a {
    color: var(--lv-ink) !important;
    font-size: .95rem;
    letter-spacing: 0;
    text-transform: none;
    padding: 9px 18px;
    border-left: 3px solid transparent;
  }
  .pkp_navigation_primary ul a:hover,
  .pkp_navigation_primary ul a:focus {
    background: var(--lv-plum-50);
    border-left-color: var(--lv-plum-700);
    color: var(--lv-plum-700) !important;
    text-decoration: none;
  }
}

/* ---------- 4b. Navigation + masthead (mobile) ----------------------- */
@media (max-width: 991px) {
  .lv-masthead { padding: 1.25rem 3.25rem 1.25rem !important; }
  html body .pkp_structure_head .lv-title { font-size: 1.35rem !important; }
  .lv-brand { flex-direction: column; gap: .7rem; text-align: center; }
  .lv-brand .pkp_site_name,
  html body .lv-masthead .lv-brand .pkp_site_name,
  .lv-brand .lv-tagline { text-align: center !important; }
  .lv-masthead .lv-emblem { width: 72px; height: 72px; margin: 0; }
  .lv-tagline { font-size: .875rem; margin-top: .5rem; }
  .pkp_site_nav_toggle { background: var(--lv-saffron); color: var(--lv-plum-950); border-radius: var(--lv-radius-sm); }
  .pkp_site_nav_menu { background: var(--lv-plum-900); }
  .pkp_site_nav_menu a { color: var(--lv-ivory) !important; }
  .pkp_navigation_primary ul { background: transparent; }
  .pkp_navigation_user_wrapper { flex-wrap: wrap; padding-top: .75rem; }
}

/* ---------- 5. Page layout: main column + dark sidebar column --------- */
@media (min-width: 992px) {
  html .pkp_structure_content {
    width: auto;
    max-width: none;
    margin: 0;
    padding: 0;
  }
  html .pkp_structure_content::before,
  html .pkp_structure_content::after,
  html .pkp_structure_main::before,
  html .pkp_structure_main::after { display: none; content: none; }

  html .pkp_structure_content.has_sidebar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) clamp(290px, 24vw, 400px);
    align-items: stretch;
  }
  html .pkp_structure_main {
    float: none;
    width: auto;
    min-width: 0;
    margin: 0;
    padding: 2.5rem clamp(1.5rem, 2.8vw, 3rem) 3rem;
  }
  html .has_sidebar .pkp_structure_main { grid-column: 1; grid-row: 1; }
  html .pkp_structure_content:not(.has_sidebar) .pkp_structure_main { max-width: 1240px; margin: 0 auto; }
  html .pkp_structure_sidebar {
    float: none;
    width: auto;
    grid-column: 2; grid-row: 1;
    margin: 0;
  }
}

.pkp_structure_sidebar {
  background: var(--lv-side);
  color: rgba(250, 247, 242, .86);
  border-left: 6px solid var(--lv-saffron);
  padding: 2.75rem clamp(1.25rem, 2.2vw, 2.5rem) 3rem;
}
@media (max-width: 991px) {
  .pkp_structure_sidebar { border-left: 0; border-top: 6px solid var(--lv-saffron); }
}

/* ---------- 6. Content blocks: common ------------------------------- */
.cmp_breadcrumbs { font-size: .875rem; color: var(--lv-muted); }
.cmp_breadcrumbs a { color: var(--lv-teal-700); }

.page_title,
.pkp_structure_main > .page > h1 {
  font-size: 1.75rem;
  padding-bottom: .5rem;
  border-bottom: 2px solid var(--lv-line);
  position: relative;
}
.page_title::after,
.pkp_structure_main > .page > h1::after {
  content: ""; position: absolute; left: 0; bottom: -2px;
  width: 72px; height: 2px; background: var(--lv-saffron);
}

/* Buttons */
.cmp_button, .pkp_button, .cmp_form .buttons button, button.submit,
.pkp_structure_main .cmp_button_wire, .block_make_submission a,
.cmp_form .buttons a.submit {
  font-family: var(--lv-sans);
  font-weight: 700;
  background: var(--lv-teal-700);
  color: var(--lv-white) !important;
  border: 0;
  border-radius: 999px;
  box-shadow: none;
  text-decoration: none !important;
  min-height: 44px;
  padding: .55rem 1.3rem;
  font-size: .95rem;
  cursor: pointer;
  transition: background .15s ease;
}
.cmp_button:hover, .pkp_button:hover, .cmp_form .buttons button:hover,
button.submit:hover, .block_make_submission a:hover {
  background: var(--lv-teal-800);
  color: var(--lv-white) !important;
}

/* Galley links (PDF, HTML, JATS) */
.obj_galley_link {
  display: inline-flex; align-items: center; gap: .4rem;
  min-height: 34px; box-sizing: border-box;
  font-weight: 700;
  color: var(--lv-plum-700) !important;
  background: var(--lv-white);
  border: 1.5px solid var(--lv-plum-700);
  border-radius: 999px;
  padding: .2rem .9rem;
  text-decoration: none !important;
}
.obj_galley_link:hover, .obj_galley_link:focus {
  background: var(--lv-plum-700);
  color: var(--lv-white) !important;
}
.pkp_structure_page .obj_galley_link::before {
  content: ""; font-family: inherit; margin: 0;
  width: 14px; height: 14px; flex: none;
  background: currentColor;
  -webkit-mask: var(--lv-i-file) center / contain no-repeat;
          mask: var(--lv-i-file) center / contain no-repeat;
}

/* ---------- 7. Homepage -------------------------------------------- */
.page_index_journal .homepage_image img {
  border-radius: var(--lv-radius);
  box-shadow: var(--lv-shadow);
}
.page_index_journal .homepage_about,
.page_index_journal .cmp_announcements,
.page_index_journal .current_issue,
.page_index_journal .additional_content {
  background: var(--lv-white);
  border: 1px solid var(--lv-line);
  border-radius: var(--lv-radius);
  padding: 1.5rem 1.75rem;
  margin-bottom: 1.75rem;
  box-shadow: var(--lv-shadow);
}
.page_index_journal h2 {
  font-size: 1.375rem;
  margin: 0 0 1rem;
  display: flex; align-items: center; gap: .6rem;
}
.page_index_journal h2::before {
  content: ""; width: 6px; height: 1.4em; border-radius: 3px;
  background: linear-gradient(var(--lv-saffron), var(--lv-teal-400));
}
/* the cover is already shown beside the hero */
.page_index_journal.lv-has-cover .current_issue .obj_issue_toc .cover { display: none; }

/* 7a. Cover + hero grid (built by lawvul.js) */
.lv-home { display: grid; gap: clamp(1.25rem, 2.4vw, 2.25rem); margin: 0 0 2rem; }
.lv-home--with-cover { grid-template-columns: minmax(170px, 26%) minmax(0, 1fr); align-items: start; }
.lv-home__main { min-width: 0; }
.lv-home__cover { container-type: inline-size; }

/* 7b. Issue cover */
.pkp_structure_page .lv-cover {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: 2px 5px 5px 2px;
  box-shadow: 0 2px 4px rgba(31, 17, 41, .18), 0 22px 40px -12px rgba(31, 17, 41, .55);
  text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease;
}
.lv-cover::before {                         /* book spine */
  content: "";
  position: absolute; top: 0; bottom: 0; left: 0;
  width: 6%;
  z-index: 1;
  background: linear-gradient(90deg, rgba(0, 0, 0, .38), rgba(255, 255, 255, .10) 65%, rgba(0, 0, 0, .18));
  pointer-events: none;
}
.pkp_structure_page .lv-cover:hover { transform: translateY(-3px); box-shadow: 0 4px 8px rgba(31, 17, 41, .2), 0 28px 48px -12px rgba(31, 17, 41, .6); }
.lv-cover img { display: block; width: 100%; height: auto; }

.pkp_structure_page .lv-cover--drawn {
  box-sizing: border-box;
  overflow: visible;      /* lets the cover grow taller instead of clipping text */
  aspect-ratio: 210 / 297;
  display: flex; flex-direction: column; align-items: center; justify-content: space-between;
  padding: 13% 9% 9% 14%;
  text-align: center;
  background:
    radial-gradient(circle at 20% 55%, rgba(224, 163, 58, .10) 0 22%, transparent 22.5%),
    radial-gradient(circle at 85% 40%, rgba(224, 163, 58, .08) 0 14%, transparent 14.5%),
    linear-gradient(180deg, #43305A 0%, var(--lv-hero) 45%, #2F2A48 100%);
}
.lv-cover__title {
  font-family: var(--lv-serif);
  font-weight: 500;
  font-size: 1.35rem;
  font-size: clamp(.9rem, 7.4cqi, 1.65rem);
  line-height: 1.2;
  color: #E7DCEA;
}
.lv-cover__title span { display: block; }
.lv-cover__art {
  flex: none;
  width: 88%;
  aspect-ratio: 1;
  margin: 6% 0;
  background: var(--lv-cover-art) center / contain no-repeat;
}
.lv-cover__meta {
  display: flex; flex-direction: column; gap: .15em;
  font-size: .8rem;
  font-size: clamp(.62rem, 3.9cqi, .85rem);
  letter-spacing: .05em;
  text-transform: uppercase;
  color: rgba(250, 247, 242, .88);
}

/* 7c. Hero */
.lv-hero {
  position: relative; overflow: hidden;
  background:
    radial-gradient(circle at 100% 0, rgba(210, 150, 150, .20) 0 170px, transparent 171px),
    radial-gradient(circle at 96% 104%, rgba(140, 150, 190, .20) 0 140px, transparent 141px),
    var(--lv-hero);
  color: var(--lv-ivory);
  border-radius: var(--lv-radius);
  padding: clamp(1.4rem, 2.6vw, 2.25rem) clamp(1.2rem, 2.6vw, 2.25rem) clamp(1.4rem, 2.4vw, 2rem);
  margin: 0 0 1.25rem;
}
.pkp_structure_page .lv-hero__kicker {
  display: inline-block;
  margin: 0;
  font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  color: var(--lv-plum-950); background: var(--lv-saffron);
  border-radius: 999px; padding: .25rem .8rem;
}
.pkp_structure_page .lv-hero h2 {
  color: var(--lv-white);
  font-size: clamp(1.3rem, 1.9vw, 1.75rem);
  line-height: 1.25;
  margin: .8rem 0 .7rem;
  display: block;
}
.pkp_structure_page .lv-hero h2::before { display: none; }
.pkp_structure_page .lv-hero__text { margin: 0 0 1.2rem; max-width: 46em; font-size: 1rem; line-height: 1.65; color: rgba(250, 247, 242, .92); }
.lv-hero__tags { display: flex; flex-wrap: wrap; gap: .45rem; margin: 0 0 1.4rem; padding: 0; list-style: none; }
.lv-hero__tags li {
  font-size: .85rem; padding: .25rem .75rem; border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, .28); background: rgba(255, 255, 255, .06);
}
.lv-hero__actions { display: flex; flex-wrap: wrap; gap: .7rem; }
.pkp_structure_page .lv-btn {
  display: inline-flex; align-items: center; gap: .5rem;
  font-size: .95rem; font-weight: 700; text-decoration: none;
  border-radius: 999px; padding: .6rem 1.2rem;
}
.pkp_structure_page .lv-btn--primary { background: var(--lv-saffron); color: var(--lv-plum-950); }
.pkp_structure_page .lv-btn--primary:hover { background: var(--lv-saffron-300); color: var(--lv-plum-950); }
.pkp_structure_page .lv-btn--ghost { color: var(--lv-ivory); border: 1.5px solid rgba(255, 255, 255, .55); }
.pkp_structure_page .lv-btn--ghost:hover { background: rgba(255, 255, 255, .1); color: var(--lv-white); }
.lv-btn::after {
  content: ""; width: 16px; height: 16px; background: currentColor;
  -webkit-mask: var(--lv-i-arrow) center / contain no-repeat;
          mask: var(--lv-i-arrow) center / contain no-repeat;
}

/* 7d. Journal at a glance */
.lv-glance {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(112px, 1fr));
  gap: .9rem; margin: 0; padding: 0; list-style: none;
}
.lv-glance li {
  background: var(--lv-white);
  border: 1px solid var(--lv-line);
  border-top: 4px solid var(--lv-teal-700);
  border-radius: var(--lv-radius-sm);
  padding: .95rem 1rem 1.1rem;
  box-shadow: var(--lv-shadow);
}
.lv-glance li:nth-child(3n+2) { border-top-color: var(--lv-saffron); }
.lv-glance li:nth-child(3n) { border-top-color: var(--lv-plum-800); }
.lv-glance__label { display: block; font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; color: var(--lv-muted); font-weight: 400; }
.lv-glance__value { display: block; font-family: var(--lv-serif); font-weight: 500; color: var(--lv-ink); font-size: 1.05rem; line-height: 1.4; margin-top: .3rem; }

@media (max-width: 767px) {
  .lv-home--with-cover { grid-template-columns: 1fr; }
  .lv-home__cover { order: 2; width: min(240px, 70%); margin: 0 auto; }
}

/* ---------- 8. Issue pages, archive & article cards ------------------ */
/* Cover images drawn as a book: shadow + spine (image covers are links in OJS markup) */
.obj_issue_toc .heading a.cover,
.obj_issue_summary a.cover,
.obj_article_details .cover_image a {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: 2px 5px 5px 2px;
  box-shadow: 0 2px 4px rgba(31, 17, 41, .18), 0 18px 34px -12px rgba(31, 17, 41, .5);
}
.obj_issue_toc .heading a.cover::before,
.obj_issue_summary a.cover::before,
.obj_article_details .cover_image a::before {
  content: "";
  position: absolute; top: 0; bottom: 0; left: 0;
  width: 6%;
  background: linear-gradient(90deg, rgba(0, 0, 0, .38), rgba(255, 255, 255, .10) 65%, rgba(0, 0, 0, .18));
  pointer-events: none;
}
.obj_issue_toc .heading a.cover img,
.obj_issue_summary a.cover img,
.obj_article_details .cover_image img { display: block; width: 100%; height: auto; border-radius: 0; box-shadow: none; }
.lv-cover-wrap { container-type: inline-size; }

/* 8a. Issue table of contents */
.obj_issue_toc .heading {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  column-gap: 2rem;
  row-gap: .6rem;
  align-content: start;
  border-bottom: 0;
  padding-bottom: 0;
  margin: 0 0 1.75rem;
}
.obj_issue_toc .heading .cover { float: none; width: auto; margin: 0; grid-column: 1; grid-row: 1 / span 8; }
.obj_issue_toc .heading > :not(.cover) { grid-column: 2; margin: 0; }
.obj_issue_toc .heading:not(:has(.cover)),
.lv-has-cover .current_issue .obj_issue_toc .heading { display: block; }
.obj_issue_toc .heading .description { font-size: 1.0625rem; line-height: 1.7; max-width: 44em; }
.obj_issue_toc .heading :is(.published, .pub_id) { font-size: 1rem; }
.obj_issue_toc .heading :is(.published .label, .pub_id .type) { color: var(--lv-muted); margin-right: .5rem; }
.current_issue_title { font-size: 1rem; color: var(--lv-muted); margin: -.4rem 0 1rem; }

.obj_issue_toc .galleys { margin: 0 0 1.75rem; }
.obj_issue_toc .galleys > h2,
.obj_issue_toc .section > h2,
.obj_issue_toc .section > h3 {
  display: block;
  margin: 0 0 .9rem;
  font-size: .875rem; text-transform: uppercase; letter-spacing: .08em;
  color: var(--lv-teal-700); font-family: var(--lv-sans); font-weight: 700;
  border-bottom: 1px solid var(--lv-line); padding-bottom: .45rem;
}
.obj_issue_toc .galleys > h2::before,
.obj_issue_toc .section > h2::before { display: none; }
.obj_issue_toc .galleys_links { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.pkp_structure_page .obj_issue_toc .galleys .obj_galley_link {
  min-height: 48px; padding: 0 1.4rem;
  background: var(--lv-teal-700); border-color: var(--lv-teal-700); color: var(--lv-white) !important;
}
.pkp_structure_page .obj_issue_toc .galleys .obj_galley_link:hover { background: var(--lv-teal-800); border-color: var(--lv-teal-800); }
.obj_issue_toc .section { margin-bottom: 1.75rem; }

/* 8b. Article summaries (issue, homepage, search results) */
.cmp_article_list { list-style: none; margin: 0; padding: 0; }
.cmp_article_list > li { margin-bottom: 1rem; }
.obj_article_summary {
  background: var(--lv-white);
  border: 1px solid var(--lv-line);
  border-left: 4px solid var(--lv-plum-700);
  border-radius: var(--lv-radius-sm);
  padding: 1rem 1.25rem;
  transition: box-shadow .15s ease, border-color .15s ease;
}
.obj_article_summary:hover { box-shadow: var(--lv-shadow-hover); border-left-color: var(--lv-saffron); }
.obj_article_summary > .title,
.obj_article_summary > h3,
.obj_article_summary > h4 { font-family: var(--lv-serif); font-size: 1.1rem; font-weight: 600; line-height: 1.35; margin: 0 0 .35rem; }
.obj_article_summary > .title a,
.obj_article_summary h3 a,
.obj_article_summary h4 a { color: var(--lv-plum-800); text-decoration: none; }
.obj_article_summary > .title a:hover,
.obj_article_summary h3 a:hover,
.obj_article_summary h4 a:hover { color: var(--lv-teal-700); text-decoration: underline; }
.obj_article_summary .subtitle { display: block; font-size: .95em; font-weight: 500; color: var(--lv-muted); }
.obj_article_summary .meta { display: flex; justify-content: space-between; gap: 1rem; font-size: .9375rem; color: var(--lv-muted); }
.obj_article_summary .galleys_links { list-style: none; margin: .7rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }

/* 8c. Archive: grid of covers */
.pkp_structure_page .issues_archive {
  list-style: none; margin: 1.75rem 0 0; padding: 0;
  display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 2.5rem 2rem;
}
.pkp_structure_page .issues_archive > li { margin: 0; padding: 0; border: 0; }
.obj_issue_summary { display: flex; flex-direction: column; gap: .8rem; }
.obj_issue_summary .cover { float: none; width: 100%; max-width: 230px; margin: 0; }
.obj_issue_summary h2 { margin: 0; font-family: var(--lv-serif); font-size: 1.15rem; line-height: 1.35; }
.obj_issue_summary h2::before { display: none; }
.obj_issue_summary h2 a.title { color: var(--lv-plum-800); text-decoration: none; }
.obj_issue_summary h2 a.title:hover { color: var(--lv-teal-700); text-decoration: underline; }
.obj_issue_summary .series { display: block; font-family: var(--lv-sans); font-size: .9375rem; font-weight: 400; color: var(--lv-muted); }
.obj_issue_summary .description { font-size: .9375rem; color: var(--lv-muted); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }

/* ---------- 9. Article landing page -------------------------------- */
.obj_article_details .page_title { font-size: 1.7rem; line-height: 1.3; }
.obj_article_details .subtitle { margin: .4rem 0 0; color: var(--lv-muted); font-family: var(--lv-serif); font-size: 1.25rem; font-weight: 500; }
@media (min-width: 992px) {
  html .obj_article_details .row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 290px;
    gap: 2.25rem;
    align-items: start;
    margin: 1.75rem 0 0;
  }
  html .obj_article_details .row::before,
  html .obj_article_details .row::after { display: none; content: none; }
  html .obj_article_details .main_entry,
  html .obj_article_details .entry_details { float: none; width: auto; margin: 0; border: 0; }
  html .obj_article_details .main_entry { padding: 0; }
}
.obj_article_details .item .label,
.obj_article_details .entry_details .label {
  display: block; margin: 0 0 .35rem;
  font-family: var(--lv-sans); font-size: .8125rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .06em; color: var(--lv-teal-700);
}
.obj_article_details .main_entry .item { margin: 0; padding: 0 0 1.5rem; border: 0; }
.obj_article_details .authors { list-style: none; margin: 0; padding: 0; }
.obj_article_details .authors li { margin: 0 0 .7rem; }
.obj_article_details .authors .name { font-weight: 700; color: var(--lv-plum-700); font-size: 1.0625rem; }
.obj_article_details .authors :is(.affiliation, .userGroup) { display: block; font-size: .9375rem; color: var(--lv-muted); }
.obj_article_details .item.abstract { background: var(--lv-white); border: 1px solid var(--lv-line); border-radius: var(--lv-radius-sm); padding: 1.25rem 1.5rem; margin-bottom: 1.5rem; }
.obj_article_details .item.abstract p { font-size: 1.0625rem; line-height: 1.75; }
.obj_article_details .item.references .value p { font-size: .9375rem; line-height: 1.7; margin: 0 0 .5rem; }
.obj_article_details .item.doi a { word-break: break-all; }

.pkp_structure_page .obj_article_details .entry_details {
  background: var(--lv-plum-50);
  border-radius: var(--lv-radius-sm);
  padding: 1.25rem;
}
.obj_article_details .entry_details > .item {
  margin: 0 0 1rem; padding: 0 0 1rem;
  border: 0; border-bottom: 1px solid var(--lv-line);
}
.obj_article_details .entry_details > .item:last-child { border-bottom: 0; margin-bottom: 0; padding-bottom: 0; }
.obj_article_details .entry_details .sub_item + .sub_item { margin-top: .9rem; }
.obj_article_details .entry_details .galleys_links { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .5rem; }
.pkp_structure_page .obj_article_details .entry_details .obj_galley_link {
  display: flex; align-items: center; justify-content: center;
  width: 100%; min-height: 48px; box-sizing: border-box;
  background: var(--lv-plum-700); border-color: var(--lv-plum-700); color: var(--lv-white) !important;
}
.pkp_structure_page .obj_article_details .entry_details .obj_galley_link:hover { background: var(--lv-plum-800); }
.obj_article_details .entry_details .cover_image a { max-width: 200px; margin: 0 auto; }
.obj_article_details .citation_display .value { font-size: .9375rem; line-height: 1.55; }
.obj_article_details .citation_formats { margin-top: .6rem; font-size: .9rem; }

/* ---------- 10. Sidebar (dark column) ------------------------------- */
.pkp_structure_sidebar .pkp_block {
  background: none;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  padding: 0;
  margin: 0 0 2.25rem;
  overflow: visible;
}
.pkp_structure_sidebar .pkp_block:last-child { margin-bottom: 0; }
.pkp_structure_sidebar .pkp_block .title {
  display: block;
  margin: 0 0 .75rem;
  padding: 0 0 .55rem;
  font-family: var(--lv-serif);
  font-size: 1rem; font-weight: 600;
  letter-spacing: 0; text-transform: none;
  color: var(--lv-saffron-300);
  background: none;
  border-bottom: 1px solid rgba(255, 255, 255, .14);
}
.pkp_structure_sidebar .pkp_block .content { padding: 0; font-size: 1rem; color: rgba(250, 247, 242, .82); }
.pkp_structure_sidebar .pkp_block .content > :first-child { margin-top: 0; }
.pkp_structure_sidebar .pkp_block .content > :last-child { margin-bottom: 0; }
.pkp_structure_sidebar .pkp_block ul { list-style: none; margin: 0; padding: 0; }
.pkp_structure_sidebar .pkp_block li { margin: 0; }
.pkp_structure_sidebar .pkp_block a { color: var(--lv-saffron-300); }
.pkp_structure_sidebar .pkp_block a:hover,
.pkp_structure_sidebar .pkp_block a:focus { color: var(--lv-white); }

/* 10a. Link lists (Journal Menu, Statistics, Citation, built-in Information) — plain, large */
.pkp_structure_sidebar :is(#customblock-lvmenu, #customblock-lvstats, #customblock-lvcitation, .lv-list, .block_information) li a {
  display: block;
  padding: .36rem 0;
  font-size: 1.1rem;
  line-height: 1.3;
  font-weight: 400;
  color: var(--lv-ivory);
  text-decoration: none;
  transition: color .15s ease, padding-left .15s ease;
}
.pkp_structure_sidebar :is(#customblock-lvmenu, #customblock-lvstats, #customblock-lvcitation, .lv-list, .block_information) li a:hover,
.pkp_structure_sidebar :is(#customblock-lvmenu, #customblock-lvstats, #customblock-lvcitation, .lv-list, .block_information) li a:focus {
  color: var(--lv-saffron-300);
  padding-left: .35rem;
}
.pkp_structure_sidebar :is(#customblock-lvmenu, #customblock-lvstats, #customblock-lvcitation, .lv-list, .block_information) li a[aria-current="page"] {
  color: var(--lv-saffron-300);
}

/* 10b. Submit CTA */
.pkp_structure_sidebar :is(#customblock-lvsubmit, .lv-submit) p { margin: 0 0 .8rem; color: rgba(250, 247, 242, .75); font-size: .95rem; }
.pkp_structure_sidebar :is(#customblock-lvsubmit, .lv-submit) a[href*="submission"],
.pkp_structure_sidebar .block_make_submission a {
  display: flex; align-items: center; justify-content: center; gap: .5rem;
  width: 100%; box-sizing: border-box;
  background: var(--lv-saffron);
  color: var(--lv-plum-950) !important;
  font-weight: 700; font-size: .95rem;
  border-radius: 999px;
  padding: .65rem 1rem;
  text-decoration: none;
}
.pkp_structure_sidebar :is(#customblock-lvsubmit, .lv-submit) a[href*="submission"]:hover,
.pkp_structure_sidebar .block_make_submission a:hover { background: var(--lv-saffron-300); }
.pkp_structure_sidebar :is(#customblock-lvsubmit, .lv-submit) a[href*="submission"]::before {
  content: ""; width: 18px; height: 18px; background: currentColor;
  -webkit-mask: var(--lv-i-upload) center / contain no-repeat;
          mask: var(--lv-i-upload) center / contain no-repeat;
}

/* 10c. Policy summaries */
.pkp_structure_sidebar :is(#customblock-lvpolicy, .lv-policy) li { padding: .8rem 0; }
.pkp_structure_sidebar :is(#customblock-lvpolicy, .lv-policy) li + li { border-top: 1px solid rgba(255, 255, 255, .12); }
.pkp_structure_sidebar :is(#customblock-lvpolicy, .lv-policy) li:first-child { padding-top: 0; }
.pkp_structure_sidebar :is(#customblock-lvpolicy, .lv-policy) strong {
  display: block;
  font-family: var(--lv-serif); font-weight: 600; color: var(--lv-ivory); font-size: 1.05rem;
}
.pkp_structure_sidebar :is(#customblock-lvpolicy, .lv-policy) p { margin: .3rem 0 .35rem; font-size: .95rem; color: rgba(250, 247, 242, .72); line-height: 1.5; }
.pkp_structure_sidebar :is(#customblock-lvpolicy, .lv-policy) p a {
  display: inline-flex; align-items: center; gap: .3rem;
  font-size: .9rem; font-weight: 700; text-decoration: none;
}
.pkp_structure_sidebar :is(#customblock-lvpolicy, .lv-policy) p a::after {
  content: ""; width: 13px; height: 13px; background: currentColor;
  -webkit-mask: var(--lv-i-arrow) center / contain no-repeat;
          mask: var(--lv-i-arrow) center / contain no-repeat;
}

/* 10d. Journal information table */
.pkp_structure_sidebar :is(#customblock-lvinfo, .lv-info) table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.pkp_structure_sidebar :is(#customblock-lvinfo, .lv-info) th,
.pkp_structure_sidebar :is(#customblock-lvinfo, .lv-info) td { text-align: left; vertical-align: top; padding: .45rem 0; border-bottom: 1px solid rgba(255, 255, 255, .12); }
.pkp_structure_sidebar :is(#customblock-lvinfo, .lv-info) tr:last-child :is(th, td) { border-bottom: 0; }
.pkp_structure_sidebar :is(#customblock-lvinfo, .lv-info) th { width: 42%; color: rgba(250, 247, 242, .62); font-weight: 400; padding-right: .5rem; }
.pkp_structure_sidebar :is(#customblock-lvinfo, .lv-info) td { color: var(--lv-ivory); }

/* 10e. Reference tools: 2×2 chips */
.pkp_structure_sidebar :is(#customblock-lvtools, .lv-tools) ul { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
.pkp_structure_sidebar :is(#customblock-lvtools, .lv-tools) li a {
  display: block; text-align: center;
  padding: .55rem .4rem;
  border: 1px solid rgba(255, 255, 255, .22); border-radius: var(--lv-radius-sm);
  background: rgba(255, 255, 255, .04);
  color: var(--lv-ivory); font-weight: 700; font-size: .95rem;
  text-decoration: none;
}
.pkp_structure_sidebar :is(#customblock-lvtools, .lv-tools) li a:hover { border-color: var(--lv-saffron); color: var(--lv-saffron-300); }

/* 10f. Partner logos sit on a light plate so any logo stays readable */
.pkp_structure_sidebar :is(#customblock-lvpartner, .lv-partner) .content { text-align: center; }
.pkp_structure_sidebar :is(#customblock-lvpartner, .lv-partner) img {
  max-width: 100%; height: auto;
  background: var(--lv-ivory); border-radius: var(--lv-radius-sm); padding: .5rem;
}

/* 10g. Other built-in blocks */
.pkp_structure_sidebar select { max-width: 100%; }
.pkp_structure_sidebar .block_web_feed img { filter: brightness(1.1); }

/* ---------- 11. Footer --------------------------------------------- */
.pkp_structure_footer_wrapper {
  position: relative;
  background: var(--lv-plum-900);
  color: rgba(250, 247, 242, .86);
  border-top: 0;
  margin-top: 0;          /* the dark sidebar column runs straight into the footer */
}
.pkp_structure_footer_wrapper::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px;
  background: var(--lv-stripe);
}
.pkp_structure_footer { padding-top: 2.5rem; }
.pkp_footer_content { padding: 0 0 1.5rem; font-size: .9375rem; }
.pkp_footer_content a { color: var(--lv-saffron-300) !important; text-decoration: none; }
.pkp_footer_content a:hover { color: var(--lv-white) !important; text-decoration: underline; }
.pkp_footer_content h3, .pkp_footer_content h4 {
  font-family: var(--lv-serif); color: var(--lv-white);
  font-size: 1.05rem; margin: 0 0 .8rem;
}
.pkp_footer_content p { margin: 0 0 .6rem; line-height: 1.6; }
.pkp_footer_content ul { list-style: none; margin: 0; padding: 0; }
.pkp_footer_content li { margin: 0 0 .4rem; }

.lv-footer { display: grid; grid-template-columns: 1.5fr 1.2fr 1fr 1.2fr; gap: 2rem; }
.lv-footer__brand h3 {
  display: flex; align-items: center; gap: .75rem;
  font-size: 1.15rem; line-height: 1.3;
}
.lv-footer__brand h3::before {
  content: ""; width: 46px; height: 46px; flex: none;
  background: var(--lv-emblem-dark) center / contain no-repeat;
}
.lv-footer__brand h3.lv-has-emblem::before { display: none; }
.lv-emblem.lv-emblem--footer {
  position: static; transform: none;
  width: 46px; height: 46px; flex: none; margin: 0;
}
.lv-spin-always .lv-footer__brand:hover .lv-emblem__ring { animation-duration: 3.5s; }
.lv-spin-hover .lv-footer__brand:hover .lv-emblem__ring { transform: rotate(360deg); }
.lv-footer__meta { font-size: .875rem; opacity: .9; }
.lv-footer__contact li {
  display: flex; gap: .55rem; align-items: flex-start;
}
.lv-footer__contact li::before {
  content: ""; width: 17px; height: 17px; flex: none; margin-top: .2rem;
  background: var(--lv-saffron-300);
  -webkit-mask: var(--lv-contact-icon, var(--lv-i-info)) center / contain no-repeat;
          mask: var(--lv-contact-icon, var(--lv-i-info)) center / contain no-repeat;
}
.lv-footer__contact li:nth-child(1) { --lv-contact-icon: var(--lv-i-scale); }
.lv-footer__contact li:nth-child(2) { --lv-contact-icon: var(--lv-i-pin); }
.lv-footer__contact li:nth-child(3) { --lv-contact-icon: var(--lv-i-mail); }
.lv-footer__contact li:nth-child(4) { --lv-contact-icon: var(--lv-i-phone); }
.lv-footer__links li a { display: inline-flex; align-items: center; gap: .35rem; }
.lv-footer__links li a::before {
  content: ""; width: 12px; height: 12px; background: currentColor; opacity: .8;
  -webkit-mask: var(--lv-i-chevron) center / contain no-repeat;
          mask: var(--lv-i-chevron) center / contain no-repeat;
}
.lv-footer__license .lv-badge {
  display: inline-flex; align-items: center; gap: .4rem;
  font-weight: 700; font-size: .8125rem;
  color: var(--lv-plum-950); background: var(--lv-saffron-300);
  border-radius: 999px; padding: .2rem .7rem; margin-bottom: .6rem;
}
.lv-footer__bottom {
  grid-column: 1 / -1;
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem;
  border-top: 1px solid rgba(255, 255, 255, .14);
  padding-top: 1rem; margin-top: .5rem;
  font-size: .8125rem; opacity: .85;
}
/* Footer built by the theme */
.lv-footer--cols-3 { grid-template-columns: 1.5fr 1.2fr 1.2fr; }
.lv-footer--cols-2 { grid-template-columns: 1.5fr 1.2fr; }
.lv-footer--cols-1 { grid-template-columns: 1fr; }
.lv-footer__col ul { list-style: none; margin: 0; padding: 0; }
.lv-footer__col li { margin: 0 0 .45rem; }
.pkp_structure_footer .lv-footer__bottom a { color: inherit !important; }
.lv-footer-built .pkp_brand_footer { display: none; }
.lv-footer-built .pkp_footer_content { padding-bottom: 1.5rem; }
html .pkp_structure_footer {
  width: auto;
  max-width: 1440px;
  margin: 0 auto;
  padding-left: clamp(1.25rem, 4vw, 4rem);
  padding-right: clamp(1.25rem, 4vw, 4rem);
  box-sizing: border-box;
}
.pkp_brand_footer { opacity: .75; filter: grayscale(1) brightness(1.8); }
.pkp_brand_footer:hover { opacity: 1; filter: none; }

@media (max-width: 991px) {
  .lv-footer { grid-template-columns: 1fr 1fr; gap: 1.5rem; }
}
@media (max-width: 600px) {
  .lv-footer { grid-template-columns: 1fr; }
  .lv-hero { padding: 1.4rem 1.2rem; }
  .pkp_structure_page .lv-hero h2 { font-size: 1.35rem; }
}

/* ---------- 12. Back to top ---------------------------------------- */
.lv-top {
  position: fixed; right: 22px; bottom: 84px; z-index: 50;
  width: 44px; height: 44px; border-radius: 50%;
  border: 0; cursor: pointer;
  background: var(--lv-plum-700); color: var(--lv-white);
  box-shadow: var(--lv-shadow-hover);
  opacity: 0; visibility: hidden; transform: translateY(8px);
  transition: opacity .2s ease, transform .2s ease, visibility .2s;
}
.lv-top.is-visible { opacity: 1; visibility: visible; transform: none; }
.lv-top:hover { background: var(--lv-teal-700); }
.lv-top::before {
  content: ""; position: absolute; inset: 12px; background: currentColor;
  -webkit-mask: var(--lv-i-top) center / contain no-repeat;
          mask: var(--lv-i-top) center / contain no-repeat;
}

/* ---------- 13. Inner pages: breadcrumbs, cards, forms -------------- */
/* 15a. Breadcrumbs */
.cmp_breadcrumbs { margin: 0 0 1.25rem; }
.cmp_breadcrumbs ol { display: flex; flex-wrap: wrap; gap: .45rem; margin: 0; padding: 0; list-style: none; font-size: .9375rem; color: var(--lv-muted); }
.cmp_breadcrumbs li { display: inline-flex; align-items: center; gap: .45rem; }
.cmp_breadcrumbs .separator { color: #9C93A5; }

/* 15b. Content cards: About / Editorial team / Submissions / Announcements / Contact */
.lv-card,
.page_submissions :is(.submission_checklist, .author_guidelines, .copyright_notice, .privacy_statement),
.page_editorial_masthead,
.page_contact .contact_section,
.page_announcements .obj_announcement_summary,
.page_announcement .obj_announcement_full {
  background: var(--lv-white);
  border: 1px solid var(--lv-line);
  border-radius: var(--lv-radius);
  padding: 1.6rem 1.9rem;
  margin: 0 0 1.5rem;
  box-shadow: var(--lv-shadow);
}
.lv-card > :first-child,
.page_submissions :is(.submission_checklist, .author_guidelines, .copyright_notice, .privacy_statement) > :first-child { margin-top: 0; }
.lv-card > :last-child,
.page_submissions :is(.submission_checklist, .author_guidelines, .copyright_notice, .privacy_statement) > :last-child { margin-bottom: 0; }
.lv-card h2,
.page_submissions :is(.submission_checklist, .author_guidelines, .copyright_notice, .privacy_statement) h2,
.page_contact .contact_section h2 { font-size: 1.5rem; font-weight: 600; margin: 0 0 .8rem; }
.lv-card h3,
.page_editorial_masthead h3 {
  margin: 1.4rem 0 .4rem;
  font-family: var(--lv-sans); font-size: .875rem; font-weight: 700;
  letter-spacing: .08em; text-transform: uppercase; color: var(--lv-teal-700);
}
.lv-card p, .lv-card li,
.page_submissions :is(.author_guidelines, .copyright_notice, .privacy_statement) p { font-size: 1.0625rem; line-height: 1.7; max-width: 44em; }
.lv-card ul.lv-people,
.page_editorial_masthead .user_listing { list-style: none; margin: 0; padding: 0; }
.lv-card ul.lv-people li,
.page_editorial_masthead .user_listing li { padding: .6rem 0; border-top: 1px solid var(--lv-line); }

/* Submissions: notice + checklist with ticks */
.page_submissions .cmp_notification {
  background: var(--lv-saffron-50);
  border: 1px solid var(--lv-saffron-300);
  border-left: 1px solid var(--lv-saffron-300);
  border-radius: var(--lv-radius);
  padding: 1.1rem 1.4rem;
  margin: 0 0 1.5rem;
  font-size: 1.0625rem;
}
.page_submissions .submission_checklist ul { list-style: none; margin: 0; padding: 0; }
.page_submissions .submission_checklist li {
  display: flex; gap: .75rem; align-items: flex-start;
  padding: .65rem 0; border-top: 1px solid var(--lv-line);
  font-size: 1rem;
}
.page_submissions .submission_checklist li .fa { display: none; }
.page_submissions .submission_checklist li::before {
  content: ""; flex: none; width: 20px; height: 20px; margin-top: .2rem;
  background: var(--lv-teal-700);
  -webkit-mask: var(--lv-i-check) center / contain no-repeat;
          mask: var(--lv-i-check) center / contain no-repeat;
}

/* Announcements */
.page_announcements .cmp_announcements { list-style: none; margin: 0; padding: 0; background: none; border: 0; box-shadow: none; }
.obj_announcement_summary h2,
.obj_announcement_summary h3 { margin: 0 0 .3rem; font-size: 1.35rem; }
.obj_announcement_summary h2::before { display: none; }
.obj_announcement_summary h2 a,
.obj_announcement_summary h3 a { color: var(--lv-plum-800); text-decoration: none; }
.obj_announcement_summary :is(h2, h3) a:hover { color: var(--lv-teal-700); text-decoration: underline; }
.obj_announcement_summary .date { font-size: .9375rem; color: var(--lv-muted); margin-bottom: .5rem; }
.obj_announcement_summary .date .fa { margin-right: .35rem; }
.obj_announcement_summary .read_more { font-weight: 700; }

/* 15c. Forms (login, register, search, lost password, contact) */
.pkp_structure_main .cmp_form fieldset { border: 0; margin: 0 0 1.5rem; padding: 0; min-width: 0; }
.pkp_structure_main .cmp_form legend {
  margin: 0 0 .9rem; padding: 0;
  font-family: var(--lv-serif); font-size: 1.25rem; font-weight: 600; color: var(--lv-plum-700);
}
.pkp_structure_main .cmp_form .fields > div { margin: 0 0 1.1rem; }
.pkp_structure_main .cmp_form .label { display: block; margin: 0 0 .35rem; font-size: .9375rem; font-weight: 700; color: var(--lv-ink); }
.pkp_structure_main .cmp_form .required { color: #A3431F; }
.pkp_structure_main .cmp_form :is(input[type="text"], input[type="email"], input[type="password"], input[type="search"], input[type="url"], input[type="tel"], select, textarea) {
  width: 100%; max-width: 100%; box-sizing: border-box;
  min-height: 46px; padding: .6rem .75rem;
  border: 1px solid #B9AFC2; border-radius: 6px;
  background: var(--lv-white);
  font: inherit; font-size: 1rem; color: var(--lv-ink);
  margin: 0;
}
.pkp_structure_main .cmp_form textarea { min-height: 8rem; }
.pkp_structure_main .cmp_form :is(input, select, textarea):focus { border-color: var(--lv-teal-700); }
.pkp_structure_main .cmp_form input[type="checkbox"],
.pkp_structure_main .cmp_form input[type="radio"] { width: 20px; height: 20px; margin: .15rem .6rem 0 0; accent-color: var(--lv-teal-700); flex: none; vertical-align: top; }
/* Checkbox rows: the box hangs in a fixed gutter so the sentence (and any
   link inside it) flows as normal text, without flex gaps around the link. */
.pkp_structure_main .cmp_form :is(.optin, .consent, .remember, .reviewer) label,
.pkp_structure_main .cmp_form label:has(> input[type="checkbox"]) {
  display: block; position: relative;
  padding-left: 2rem;
  font-size: 1rem; font-weight: 400; line-height: 1.5;
}
.pkp_structure_main .cmp_form :is(.optin, .consent, .remember, .reviewer) label > input:is([type="checkbox"], [type="radio"]),
.pkp_structure_main .cmp_form label:has(> input[type="checkbox"]) > input[type="checkbox"] {
  position: absolute; left: 0; top: .1rem; margin: 0;
}
.pkp_structure_main .cmp_form .buttons { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.25rem; margin-top: 1.25rem; }
.pkp_structure_main .cmp_form .buttons a:not(.submit) { font-size: 1rem; }
.pkp_structure_main .cmp_form .pkp_form_error,
.pkp_structure_main .cmp_notification.warning,
.pkp_structure_main .cmp_form .error { color: #8A2B12; }

.page_login .cmp_form,
.page_register .cmp_form,
.page_lost_password .cmp_form,
.page_search .cmp_form {
  background: var(--lv-white);
  border: 1px solid var(--lv-line);
  border-radius: var(--lv-radius);
  padding: 1.8rem;
  box-shadow: var(--lv-shadow);
}
.page_login .cmp_form,
.page_lost_password .cmp_form { max-width: 480px; }
.page_login .cmp_form .password a,
.page_login .cmp_form .forgot { font-size: .9375rem; }
@media (min-width: 768px) {
  .page_register .cmp_form :is(.identity, .login) .fields {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1.4rem;
  }
}

/* Search */
.page_search .search_input .query,
input[type="search"] { font-size: 1.0625rem; }
.page_search .search_input { margin-bottom: 1.5rem; }
html body .pkp_structure_main select.lv-search-dates__select[name*="Month" i] { min-width: 7.5rem; }
html body .pkp_structure_main select.lv-search-dates__select[name*="Day" i] { min-width: 4.5rem; }
html body .pkp_structure_main select.lv-search-dates__select[name*="Year" i] { min-width: 6rem; }
.page_search .search_results,
.pkp_structure_main .search_results { list-style: none; margin: 1.75rem 0 0; padding: 0; display: flex; flex-direction: column; gap: .9rem; }
.page_search .search_results > li,
.pkp_structure_main .search_results > li { margin: 0; }

/* Date-range table (Published After / Before), rebuilt by lawvul.js from
   whatever table markup this OJS version renders, so it never depends on
   guessed class names. */
.lv-search-dates { display: flex; flex-wrap: wrap; gap: 1.5rem 2.5rem; margin: 1rem 0 1.5rem; }
.lv-search-dates__group { display: flex; flex-direction: column; gap: .5rem; }
.lv-search-dates__label {
  display: block; margin: 0 0 .5rem; padding: 0; border: 0; float: none;
  font-family: var(--lv-serif); font-weight: 600; font-size: .95rem; color: var(--lv-plum-700);
}
.lv-search-dates__selects { display: flex; flex-wrap: wrap; gap: .5rem; }
/* Higher specificity than the generic form-field rule, which would
   otherwise stretch these to 100% width like a normal text input. */
.pkp_structure_main .cmp_form select.lv-search-dates__select,
.pkp_structure_main select.lv-search-dates__select {
  width: auto; min-width: 4.5rem; min-height: 42px;
}
/* A wrapper a date-select or its label used to sit in, now empty. */
.lv-emptied { display: none !important; }

/* Any notice box OJS renders (e.g. "No results"), whatever its exact class
   name — matched by a class containing "notification" or "notice". */
.pkp_structure_main [class*="notification"],
.pkp_structure_main [class*="notice"] {
  background: var(--lv-plum-50);
  border: 0; border-left: 4px solid var(--lv-plum-700);
  border-radius: var(--lv-radius-sm);
  padding: 1rem 1.25rem;
  margin: 1rem 0;
  color: var(--lv-ink);
  font-size: 1rem;
}

/* Any native <button> or submit/button <input> OJS renders in the main
   column, whatever its own class names or icon markup — this normalises
   search, login, form and dialog buttons to the theme's pill style and
   strips any icon chip's own background so it never shows as two colours. */
.pkp_structure_main :is(button, input[type="submit"], input[type="button"]) {
  display: inline-flex; align-items: center; justify-content: center; gap: .4rem;
  min-height: 44px; box-sizing: border-box;
  margin: 0; padding: .55rem 1.4rem;
  border: 0; border-radius: 999px;
  background: var(--lv-teal-700); color: var(--lv-white) !important;
  font: inherit; font-weight: 700; font-size: .9rem;
  text-decoration: none; box-shadow: none;
  cursor: pointer;
}
.pkp_structure_main :is(button, input[type="submit"], input[type="button"]):hover {
  background: var(--lv-teal-800);
}
.pkp_structure_main :is(button, input[type="submit"], input[type="button"]) {
  position: relative; overflow: hidden; width: auto; height: auto;
}
.pkp_structure_main button::before,
.pkp_structure_main button::after { display: none !important; }
.pkp_structure_main :is(button, input[type="submit"], input[type="button"]) * {
  position: static !important; margin: 0 !important;
  background: transparent !important; color: inherit !important; box-shadow: none !important;
  border: 0 !important; width: auto !important; height: auto !important;
}
.pkp_structure_main button *::before,
.pkp_structure_main button *::after { background: transparent !important; }

/* ---------- 14. High-contrast mode (toggle next to Register/Login) ---- */
html.lv-contrast body,
html.lv-contrast .pkp_structure_page { background: #FFFFFF; color: #000000; }
html.lv-contrast .pkp_structure_main a { color: #0B3D3B; text-decoration: underline !important; }
html.lv-contrast .obj_article_summary .meta,
html.lv-contrast .lv-glance__label { color: #000000; }
html.lv-contrast .pkp_structure_head,
html.lv-contrast .lv-hero,
html.lv-contrast .lv-cover--drawn,
html.lv-contrast .pkp_structure_footer_wrapper { background: #14081C; }
html.lv-contrast .pkp_structure_head a,
html.lv-contrast .lv-tagline,
html.lv-contrast .lv-hero,
html.lv-contrast .lv-hero__text,
html.lv-contrast .lv-hero__tags li,
html.lv-contrast .pkp_structure_footer_wrapper { color: #FFFFFF !important; }
html.lv-contrast .lv-hero__tags li,
html.lv-contrast .pkp_structure_page .lv-btn--ghost { border-color: #FFFFFF; background: transparent; }
html.lv-contrast .pkp_structure_page .lv-btn--ghost { color: #FFFFFF; }
html.lv-contrast .pkp_structure_sidebar { background: #000000; color: #FFFFFF; }
html.lv-contrast .pkp_structure_sidebar .pkp_block .content,
html.lv-contrast .pkp_structure_sidebar .pkp_block li a,
html.lv-contrast .pkp_structure_sidebar :is(#customblock-lvpolicy, .lv-policy) p,
html.lv-contrast .pkp_structure_sidebar :is(#customblock-lvinfo, .lv-info) :is(th, td) { color: #FFFFFF; }
html.lv-contrast .pkp_structure_sidebar .pkp_block a { color: #FFE08A; text-decoration: underline; }
html.lv-contrast .pkp_navigation_primary ul a { color: #000000 !important; }
html.lv-contrast .pkp_structure_footer_wrapper a { color: #FFE08A !important; text-decoration: underline; }
html.lv-contrast .obj_article_summary,
html.lv-contrast .lv-glance li,
html.lv-contrast .page_index_journal :is(.homepage_about, .cmp_announcements, .current_issue, .additional_content) { border-color: #000000; box-shadow: none; }

/* ---------- 15. Help desk pop-up ------------------------------------ */
.lv-help__toggle {
  position: fixed; right: 18px; bottom: 18px; z-index: 55;
  display: inline-flex; align-items: center; gap: .5rem;
  min-height: 52px; box-sizing: border-box;
  background: var(--lv-teal-700); color: var(--lv-white);
  border: 0; border-radius: 999px; cursor: pointer;
  padding: 0 1.1rem;
  font: inherit; font-weight: 700; font-size: .9375rem;
  box-shadow: var(--lv-shadow-hover);
  transition: background .15s ease;
}
.lv-help__toggle:hover { background: var(--lv-teal-800); }
.lv-help__toggle-icon {
  width: 20px; height: 20px; flex: none;
  background: currentColor;
  -webkit-mask: var(--lv-i-chat) center / contain no-repeat;
          mask: var(--lv-i-chat) center / contain no-repeat;
}

.lv-help__backdrop {
  position: fixed; inset: 0; z-index: 54;
  background: rgba(31, 17, 41, .35);
}
.lv-help__backdrop[hidden] { display: none; }

.lv-help__panel {
  position: fixed; right: 18px; bottom: 84px; z-index: 56;
  width: min(380px, calc(100vw - 36px));
  max-height: min(70vh, 560px);
  flex-direction: column;
  overflow: hidden;
  background: var(--lv-white); color: var(--lv-ink);
  border-radius: var(--lv-radius);
  box-shadow: var(--lv-shadow-hover);
}
.lv-help__panel[hidden] { display: none; }
.lv-help__panel:not([hidden]) { display: flex; }

.lv-help__head {
  flex: none; display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; padding: .9rem 1.1rem;
  background: var(--lv-plum-700); color: var(--lv-ivory);
}
.lv-help__head h2 { margin: 0; font-family: var(--lv-serif); font-size: 1.0625rem; font-weight: 600; color: inherit; }
.lv-help__close {
  flex: none; width: 32px; height: 32px; padding: 0;
  border: 0; border-radius: 50%;
  background: transparent; color: inherit; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  font-size: .9rem; line-height: 1;
}
.lv-help__close:hover { background: rgba(255, 255, 255, .16); }

.lv-help__body {
  flex: 1 1 auto; overflow-y: auto;
  padding: 1rem 1.1rem 1.2rem;
  display: flex; flex-direction: column; gap: 1rem;
}
.lv-help__intro { margin: 0; font-size: .9375rem; line-height: 1.55; color: var(--lv-muted); }

.lv-help__faq { display: flex; flex-direction: column; gap: .55rem; }
.lv-help__faq details {
  border: 1px solid var(--lv-line); border-radius: 6px; overflow: hidden;
}
.lv-help__faq summary {
  cursor: pointer; list-style: none;
  display: flex; align-items: center; justify-content: space-between; gap: .6rem;
  padding: .7rem .9rem;
  font-weight: 700; font-size: .9rem; color: var(--lv-plum-700);
}
.lv-help__faq summary::-webkit-details-marker { display: none; }
.lv-help__faq summary::after {
  content: ""; width: 13px; height: 13px; flex: none;
  background: var(--lv-teal-700);
  -webkit-mask: var(--lv-i-chevron) center / contain no-repeat;
          mask: var(--lv-i-chevron) center / contain no-repeat;
  transition: transform .15s ease;
}
.lv-help__faq details[open] summary::after { transform: rotate(90deg); }
.lv-help__faq-a { padding: 0 .9rem .8rem; font-size: .875rem; line-height: 1.55; color: var(--lv-ink); }
.lv-help__faq-a p { margin: 0; }

.lv-help__divider { border: 0; border-top: 1px solid var(--lv-line); margin: 0; }

.lv-help__form { display: flex; flex-direction: column; gap: .7rem; }
.lv-help__form label { display: block; margin: 0 0 .3rem; font-size: .8125rem; font-weight: 700; color: var(--lv-ink); }
.lv-help__form :is(input, textarea) {
  width: 100%; box-sizing: border-box; min-height: 42px;
  padding: .5rem .65rem; border: 1px solid #B9AFC2; border-radius: 6px;
  background: var(--lv-white); font: inherit; font-size: .9rem; color: var(--lv-ink);
}
.lv-help__form textarea { min-height: 88px; resize: vertical; }
.lv-help__form :is(input, textarea):focus { border-color: var(--lv-teal-700); }
.lv-help__form button[type="submit"] {
  align-self: flex-start;
  min-height: 44px; box-sizing: border-box;
  padding: .55rem 1.3rem; border: 0; border-radius: 999px;
  background: var(--lv-saffron); color: var(--lv-plum-950);
  font: inherit; font-weight: 700; font-size: .9rem; cursor: pointer;
}
.lv-help__form button[type="submit"]:hover { background: var(--lv-saffron-300); }
.lv-help__note { margin: 0; font-size: .8rem; color: var(--lv-muted); }

@media (max-width: 600px) {
  .lv-help__toggle-label { display: none; }
  .lv-help__toggle { width: 56px; height: 56px; padding: 0; justify-content: center; border-radius: 50%; }
  .lv-help__panel {
    left: 0; right: 0; bottom: 0; width: auto;
    max-height: 82vh;
    border-radius: var(--lv-radius) var(--lv-radius) 0 0;
  }
}

html.lv-contrast .lv-help__panel { background: #FFFFFF; color: #000000; border: 2px solid #000000; }
html.lv-contrast .lv-help__head { background: #000000; color: #FFFFFF; }
html.lv-contrast .lv-help__toggle { background: #000000; color: #FFFFFF; border: 2px solid #FFFFFF; }
html.lv-contrast .lv-help__faq details { border-color: #000000; }
html.lv-contrast .lv-help__faq summary { color: #000000; }
html.lv-contrast .lv-help__faq-a { color: #000000; }

/* ---------- 16. Motion & print -------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; scroll-behavior: auto !important; }
  .lv-emblem__ring { animation: none !important; transform: none !important; }
}
@media print {
  .lv-top, .lv-a11y, .lv-home__cover, .lv-help, .pkp_structure_sidebar, .pkp_navigation_primary_row { display: none !important; }
  .pkp_structure_head, .pkp_structure_footer_wrapper { background: none !important; color: #000 !important; }
}
