/**
 * Pustaka Inspirasi Minang (PIM) - Theme Stylesheet
 * Completely redesigned visual shell and design system for OJS 3.5.
 */

/* ==========================================================================
   1. Design System Variables & Core Resets
   ========================================================================== */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Playfair+Display:ital,wght@0,500;0,600;0,700;1,500&display=swap');

:root {
  /* Brand Accent Colors */
  --pim-crimson: #A91D22;
  --pim-crimson-hover: #8B181C;
  --pim-gold: #D2A758;
  --pim-gold-hover: #BFA065;
  
  /* Monochromatic Base Palette */
  --pim-dark: #1E2022;        /* High-contrast headings */
  --pim-text: #334155;        /* Body text */
  --pim-muted: #64748B;       /* Secondary details */
  --pim-border: #E2E8F0;      /* Modern thin lines */
  --pim-bg-main: #FFFFFF;     /* Base white BG */
  --pim-bg-neutral: #F8FAFC;  /* Soft slate background */
  
  /* Layout Constraints */
  --pim-max-width: 1200px;    /* Prevents stretching on 2K/4K monitors */
  --pim-gutter: 24px;         /* Standard responsive padding */
  
  /* Typography */
  --pim-font-sans: 'Inter', -apple-system, sans-serif;
  --pim-font-serif: 'Playfair Display', Georgia, serif;
}

/* Base resets & overflow control */
html, body {
  overflow-x: hidden !important;
  max-width: 100vw !important;
  margin: 0 !important;
  padding: 0 !important;
  background-color: var(--pim-bg-main) !important;
  font-family: var(--pim-font-sans) !important;
  color: var(--pim-text) !important;
  -webkit-font-smoothing: antialiased;
}

/* Hide OJS core layout leftovers */
.pkp_structure_navigation_skip, 
.screen-reader-text, 
.cmp_skip_to_content, 
.pkp_skip_links, 
.pkp_screen_reader,
.task_count {
  display: none !important;
}

/* ==========================================================================
   2. Page Layout Shell
   ========================================================================== */
.pkp_structure_page {
  margin-top: 0 !important;
  padding-top: 0 !important;
  background: var(--pim-bg-main) !important;
  display: flex !important;
  flex-direction: column !important;
  min-height: 100vh !important;
}

/* Centered & Max-width constrained main content */
.pkp_structure_content {
  max-width: 1200px !important;
  margin: 0 auto !important;
  width: 100% !important;
  box-sizing: border-box !important;
  padding: 30px var(--pim-gutter) !important;
  flex: 1 !important;
}

/* Strip OJS default vertical line separators and background gradients */
.pkp_structure_content,
.pkp_structure_main,
.pkp_structure_sidebar,
.pkp_structure_sidebar.left,
.pkp_structure_sidebar.right,
.pim-layout-journal-public,
.pim-journal-tools,
.pim-journal-sidebar {
  background-image: none !important;
  border-left: none !important;
  border-right: none !important;
  border: none !important;
  border-left-width: 0 !important;
  border-right-width: 0 !important;
  box-shadow: none !important;
}

/* Deactivate absolute positioned layout divider line pseudo-elements globally */
.pkp_structure_main::before,
.pkp_structure_main::after,
.pkp_structure_content::before,
.pkp_structure_content::after,
.pkp_structure_sidebar::before,
.pkp_structure_sidebar::after,
.pim-layout-journal-public::before,
.pim-layout-journal-public::after,
.pim-journal-tools::before,
.pim-journal-tools::after,
.pim-journal-sidebar::before,
.pim-journal-sidebar::after {
  display: none !important;
  content: none !important;
  background: none !important;
  border: none !important;
  width: 0 !important;
  height: 0 !important;
}

/* Modern announcements section layout using CSS Flexbox */
.cmp_announcements {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 24px !important;
  margin-bottom: 40px !important;
  width: 100% !important;
  box-sizing: border-box !important;
}
.pkp_page_index .cmp_announcements h2,
.cmp_announcements h2 {
  position: static !important;
  width: 100% !important;
  height: auto !important;
  padding: 0 0 12px 0 !important;
  margin: 0 0 24px 0 !important;
  overflow: visible !important;
  clip: auto !important;
  border-bottom: 2px solid var(--pim-crimson) !important;
  display: block !important;
  font-size: 1.6rem !important;
  font-weight: 800 !important;
  color: var(--pim-dark) !important;
}

/* Featured announcement card spans 2/3 width when more exist */
.cmp_announcements > .obj_announcement_summary {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
  flex: 2 1 0% !important;
  min-width: 0 !important;
}

.cmp_announcements:not(:has(.more)) > .obj_announcement_summary {
  flex: 1 1 100% !important;
}

/* Secondary announcements stack vertically */
.cmp_announcements .more {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  flex: 1 1 0% !important;
  min-width: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 16px !important;
}
.cmp_announcements .more .obj_announcement_summary {
  border-radius: 8px !important;
  padding: 16px !important;
}

/* Premium Announcement Card Styling */
.obj_announcement_summary {
  background: var(--pim-bg-main) !important;
  border: 1px solid var(--pim-border) !important;
  border-radius: 6px !important;
  padding: 24px !important;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.01) !important;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1) !important;
  box-sizing: border-box !important;
  display: flex !important;
  flex-direction: column !important;
  position: relative !important;
}
.obj_announcement_summary:hover {
  border-color: rgba(169, 29, 34, 0.15) !important;
  box-shadow: 0 10px 25px rgba(169, 29, 34, 0.04) !important;
  transform: translateY(-2px) !important;
}
.obj_announcement_summary h3,
.obj_announcement_summary h4 {
  margin: 0 0 8px 0 !important;
  font-family: var(--pim-font-sans) !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
}
.obj_announcement_summary h3 {
  font-size: 17px !important;
}
.obj_announcement_summary h4 {
  font-size: 14px !important;
}
.obj_announcement_summary h3 a,
.obj_announcement_summary h4 a {
  color: var(--pim-dark) !important;
  text-decoration: none !important;
  transition: color 0.15s ease !important;
}
.obj_announcement_summary h3 a:hover,
.obj_announcement_summary h4 a:hover {
  color: var(--pim-crimson) !important;
}
.obj_announcement_summary .date {
  font-size: 11px !important;
  color: var(--pim-muted) !important;
  margin-bottom: 14px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
}
.obj_announcement_summary .date::before {
  content: "\f073" !important;
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 900 !important;
  font-size: 12px !important;
  color: var(--pim-crimson) !important;
}
.obj_announcement_summary .summary {
  font-size: 13.5px !important;
  line-height: 1.6 !important;
  color: var(--pim-text) !important;
}
.obj_announcement_summary .announcement_excerpt {
  margin-bottom: 12px !important;
}
.obj_announcement_summary .read_more {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  color: var(--pim-crimson) !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  margin-top: auto !important;
  padding-top: 10px !important;
  font-size: 12.5px !important;
  transition: color 0.15s ease !important;
}
.obj_announcement_summary .read_more:hover {
  color: var(--pim-crimson-hover) !important;
}
.obj_announcement_summary .read_more::after {
  content: "\f061" !important;
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 900 !important;
  font-size: 10px !important;
  transition: transform 0.2s ease !important;
}
.obj_announcement_summary .read_more:hover::after {
  transform: translateX(3px) !important;
}

/* Clear-fix removal for child components */
.cmp_announcements::before,
.cmp_announcements::after,
.cmp_announcements > .obj_announcement_summary::before,
.cmp_announcements > .obj_announcement_summary::after,
.cmp_announcements .more::before,
.cmp_announcements .more::after {
  display: none !important;
  content: none !important;
}

@media (max-width: 768px) {
  .cmp_announcements {
    flex-direction: column !important;
    gap: 24px !important;
  }
}


/* Mobile Journal Tools Bar - Hidden by default on desktop */
.pim-mobile-tools-backdrop,
.pim-mobile-tools-bar {
  display: none !important;
}

.pkp_structure_main {
  background: var(--pim-bg-main) !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  width: 100% !important;
  max-width: 100% !important;
}

/* Sizing when layout contains sidebars */
.pkp_has_sidebar .pkp_structure_main,
.pim-layout-journal-public .pkp_structure_main {
  flex: 1 1 0% !important;
  min-width: 0 !important;
  width: 100% !important;
  max-width: none !important;
  float: none !important;
}

/* ==========================================================================
   3. Top Bar & Main Header
   ========================================================================== */
/* Top bar utility line */
.pim-topbar {
  background: var(--pim-bg-neutral) !important;
  border-bottom: 1px solid var(--pim-border) !important;
  padding: 6px 0 !important;
  position: relative !important;
  z-index: 1001 !important;
}
.pim-topbar .pim-container {
  width: 100% !important;
  max-width: 1200px !important;
  margin: 0 auto !important;
  padding: 0 var(--pim-gutter) !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  box-sizing: border-box !important;
}
.pim-topbar-left a,
.pim-topbar-right a {
  color: var(--pim-muted) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
}
.pim-topbar-left a:hover,
.pim-topbar-right a:hover {
  color: var(--pim-crimson) !important;
}

/* Main Site Header */
.pim-header {
  background: var(--pim-bg-main) !important;
  border-bottom: 1px solid var(--pim-border) !important;
  padding: 16px 0 !important;
  position: sticky !important;
  top: 0 !important;
  z-index: 1000 !important;
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.02) !important;
}
.pim-header .pim-container {
  width: 100% !important;
  max-width: 1200px !important;
  margin: 0 auto !important;
  padding: 0 var(--pim-gutter) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  box-sizing: border-box !important;
  gap: 24px !important;
}

/* Logo brand mark */
.pim-brand {
  display: inline-flex !important;
  align-items: center !important;
  flex-shrink: 0 !important;
}
.pim-brand img {
  height: 80px !important;
  width: auto !important;
  object-fit: contain !important;
}

/* Primary Horizontal Navigation */
.pim-nav {
  display: flex !important;
  align-items: center !important;
  gap: 28px !important;
  margin: 0 auto 0 24px !important;
}
.pim-nav a {
  color: var(--pim-text) !important;
  font-family: var(--pim-font-sans) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
  text-decoration: none !important;
  padding: 6px 0 !important;
  position: relative !important;
  transition: color 0.15s ease !important;
  white-space: nowrap !important;
}
.pim-nav a:hover,
.pim-nav a.active {
  color: var(--pim-crimson) !important;
}
.pim-nav a::after {
  content: "" !important;
  position: absolute !important;
  bottom: 0 !important;
  left: 0 !important;
  width: 0 !important;
  height: 2px !important;
  background: var(--pim-crimson) !important;
  transition: width 0.2s ease !important;
}
.pim-nav a:hover::after,
.pim-nav a.active::after {
  width: 100% !important;
}

/* Header Actions & Mobile toggles */
.pim-header-actions {
  display: flex !important;
  align-items: center !important;
  gap: 16px !important;
  flex-shrink: 0 !important;
}
.btn-login {
  color: var(--pim-text) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
}
.btn-login:hover {
  color: var(--pim-crimson) !important;
}
.btn-publish {
  background: var(--pim-gold) !important;
  color: var(--pim-bg-main) !important;
  border: 1px solid var(--pim-gold) !important;
  border-radius: 6px !important;
  padding: 8px 16px !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  transition: all 0.2s ease !important;
}
.btn-publish:hover {
  background: var(--pim-gold-hover) !important;
  border-color: var(--pim-gold-hover) !important;
  box-shadow: 0 4px 12px rgba(210, 167, 88, 0.15) !important;
}

/* Mobile Hamburger */
.nav-toggle {
  background: transparent !important;
  border: 1px solid var(--pim-border) !important;
  border-radius: 6px !important;
  padding: 6px !important;
  cursor: pointer !important;
  width: 38px !important;
  height: 38px !important;
  display: none !important;
  align-items: center !important;
  justify-content: center !important;
  color: var(--pim-text) !important;
}
.nav-toggle svg {
  width: 22px !important;
  height: 22px !important;
}

/* ==========================================================================
   4. User Dropdown Menu & Hover-Bridge
   ========================================================================== */
/* Hide default OJS absolute containers */
.pkp_navigation_user_wrapper {
  display: none !important;
}

.pim-user-topbar {
  position: relative !important;
  z-index: 1050 !important;
}
.pim-user-topbar .pkp_navigation_user {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: block !important;
  width: auto !important;
  max-width: max-content !important;
}
.pim-user-topbar .pkp_navigation_user > li {
  position: relative !important;
}

/* Hover-Bridge on the parent LI itself to bridge the 8px gap reliably */
.pim-user-topbar .pkp_navigation_user > li::after {
  content: "" !important;
  position: absolute !important;
  top: 100% !important;
  left: 0 !important;
  right: 0 !important;
  height: 12px !important;
  background: transparent !important;
  z-index: 10050 !important;
  pointer-events: auto !important;
}

/* The parent profile profile button pill */
.pim-user-topbar .pkp_navigation_user > li > a {
  background: var(--pim-bg-neutral) !important;
  border: 1px solid var(--pim-border) !important;
  color: var(--pim-text) !important;
  border-radius: 99px !important;
  padding: 8px 16px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  transition: all 0.2s ease !important;
}
.pim-user-topbar .pkp_navigation_user > li > a:hover {
  border-color: var(--pim-crimson) !important;
  color: var(--pim-crimson) !important;
}
.pim-user-topbar .pkp_navigation_user > li > a::after {
  content: "\f107" !important;
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 900 !important;
  font-size: 11px !important;
}

/* Dropdown list container - absolute */
.pim-user-topbar .pkp_navigation_user > li > ul {
  display: none !important; /* Managed by JS toggle classes */
  position: absolute !important;
  top: calc(100% + 8px) !important;
  right: 0 !important;
  left: auto !important;
  transform: none !important;
  background: var(--pim-bg-main) !important;
  border: 1px solid var(--pim-border) !important;
  border-radius: 6px !important;
  padding: 6px 0 !important;
  min-width: 210px !important;
  box-shadow: 0 10px 25px -5px rgba(0,0,0,0.1), 0 8px 10px -6px rgba(0,0,0,0.1) !important;
  z-index: 10060 !important;
  list-style: none !important;
  margin: 0 !important;
}

/* Hover-Bridge Pseudo Element on UL as a fallback */
.pim-user-topbar .pkp_navigation_user > li > ul::before {
  content: "" !important;
  position: absolute !important;
  top: -12px !important;
  left: 0 !important;
  right: 0 !important;
  height: 12px !important;
  background: transparent !important;
  pointer-events: auto !important;
}

/* Show submenu when parent li is hovered or has active classes from JS/Bootstrap */
.pim-user-topbar .pkp_navigation_user > li.is-open > ul,
.pim-user-topbar .pkp_navigation_user > li.show > ul,
.pim-user-topbar .pkp_navigation_user > li.open > ul,
.pim-user-topbar .pkp_navigation_user > li > ul.show,
.pim-user-topbar .pkp_navigation_user > li > ul.open {
  display: block !important;
}

.pim-user-topbar .pkp_navigation_user ul li {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
}
.pim-user-topbar .pkp_navigation_user ul li a {
  display: block !important;
  padding: 10px 18px !important;
  font-size: 13px !important;
  color: var(--pim-text) !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  transition: all 0.15s ease !important;
}
.pim-user-topbar .pkp_navigation_user ul li a:hover {
  background: var(--pim-bg-neutral) !important;
  color: var(--pim-crimson) !important;
}

/* ==========================================================================
   5. Portal Index (IndexSite)
   ========================================================================== */
/* Welcome/Hero Section */
.pim-hero {
  background: radial-gradient(circle at top right, #FFFDF8 0%, #FFFFFF 100%) !important;
  border: 1px solid var(--pim-border) !important;
  border-radius: 6px !important;
  padding: 64px 32px !important;
  text-align: center !important;
  margin-bottom: 40px !important;
  position: relative !important;
  overflow: hidden !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.01) !important;
}
.pim-hero::before {
  content: "" !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 4px !important;
  background: linear-gradient(90deg, var(--pim-dark) 0%, var(--pim-crimson) 50%, var(--pim-gold) 100%) !important;
}
.pim-hero h1 {
  font-family: var(--pim-font-serif) !important;
  font-size: 40px !important;
  font-weight: 700 !important;
  color: var(--pim-dark) !important;
  margin: 0 0 12px 0 !important;
}
.pim-hero h1 span {
  color: var(--pim-crimson) !important;
}
.pim-hero p {
  font-size: 15px !important;
  color: var(--pim-muted) !important;
  max-width: 680px !important;
  margin: 0 auto 30px auto !important;
  line-height: 1.6 !important;
}

/* Centered Search Box */
.pim-hero-search-wrap {
  position: relative !important;
  max-width: 500px !important;
  margin: 0 auto !important;
  border-radius: 99px !important;
  overflow: visible !important;
  border: 1px solid var(--pim-border) !important;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.02) !important;
  transition: all 0.3s ease !important;
  background: var(--pim-bg-main) !important;
}
.pim-hero-search-wrap:focus-within {
  border-color: var(--pim-crimson) !important;
  box-shadow: 0 10px 30px rgba(169, 29, 34, 0.06) !important;
}
.pim-hero-search-wrap input {
  width: 100% !important;
  padding: 16px 60px 16px 52px !important;
  border: none !important;
  font-size: 14px !important;
  background: transparent !important;
  color: var(--pim-dark) !important;
  box-sizing: border-box !important;
  border-radius: 99px !important;
}
.pim-hero-search-wrap input:focus {
  outline: none !important;
}
.pim-hero-search-wrap > i.fa-search-icon {
  position: absolute !important;
  left: 22px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  color: var(--pim-muted) !important;
  font-size: 16px !important;
  pointer-events: none !important;
}
.pim-hero-search-btn {
  position: absolute !important;
  right: 6px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  background: var(--pim-crimson) !important;
  color: white !important;
  border: none !important;
  border-radius: 99px !important;
  width: 36px !important;
  height: 36px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
  z-index: 5 !important;
  padding: 0 !important;
}
.pim-hero-search-btn:hover {
  background: #87161a !important;
}
.pim-hero-search-btn i {
  position: static !important;
  transform: none !important;
  color: white !important;
  font-size: 13px !important;
}

/* 3-Column Portal Grid Layout */
.pim-portal-layout {
  display: grid !important;
  grid-template-columns: 300px 1fr 320px !important;
  gap: 20px !important;
  align-items: start !important;
}

/* Left column */
.pim-portal-left-col {
  position: sticky !important;
  top: 90px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 20px !important;
}

/* Center column */
.pim-portal-mid-col {
  min-width: 0 !important;
}

/* Right column */
.pim-portal-right-col {
  position: sticky !important;
  top: 90px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 20px !important;
  width: 320px !important;
  flex-shrink: 0 !important;
}

.pim-sidebar-journal-scroller {
  scrollbar-width: thin !important;
  scrollbar-color: var(--pim-border) transparent !important;
}
.pim-sidebar-journal-scroller::-webkit-scrollbar {
  width: 4px !important;
}
.pim-sidebar-journal-scroller::-webkit-scrollbar-thumb {
  background: var(--pim-border) !important;
  border-radius: 99px !important;
}
.pim-sidebar-journal-link:hover {
  background-color: var(--pim-bg-neutral) !important;
  color: var(--pim-crimson) !important;
}
.pim-sidebar-card {
  background: var(--pim-bg-main) !important;
  border: 1px solid var(--pim-border) !important;
  border-radius: 6px !important;
  padding: 16px !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.01) !important;
}
.pim-sidebar-card h3 {
  font-size: 13px !important;
  font-weight: 800 !important;
  color: var(--pim-dark) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.8px !important;
  margin: 0 0 16px 0 !important;
  border-bottom: 2px solid var(--pim-bg-neutral) !important;
  padding-bottom: 8px !important;
}
.pim-sidebar-list {
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
}

/* Filter buttons */
.pim-sidebar-btn {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  width: 100% !important;
  padding: 10px 14px !important;
  border: 1px solid var(--pim-border) !important;
  border-radius: 8px !important;
  background: var(--pim-bg-neutral) !important;
  color: var(--pim-text) !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
  text-align: left !important;
}
.pim-sidebar-btn:hover {
  border-color: var(--pim-crimson) !important;
  color: var(--pim-crimson) !important;
  background-color: #FFF8F8 !important;
}
.pim-sidebar-btn.is-active {
  border-color: var(--pim-crimson) !important;
  background-color: var(--pim-crimson) !important;
  color: var(--pim-bg-main) !important;
}
.pim-sidebar-btn .count {
  font-size: 10px !important;
  background: var(--pim-border) !important;
  color: var(--pim-muted) !important;
  padding: 2px 6px !important;
  border-radius: 99px !important;
  font-weight: 700 !important;
}
.pim-sidebar-btn.is-active .count {
  background: rgba(255, 255, 255, 0.2) !important;
  color: var(--pim-bg-main) !important;
}
.pim-sidebar-reset-btn {
  width: 100% !important;
  padding: 12px !important;
  border: 1px dashed var(--pim-crimson) !important;
  border-radius: 8px !important;
  background: #FFF8F8 !important;
  color: var(--pim-crimson) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
  cursor: pointer !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  transition: all 0.2s ease !important;
}
.pim-sidebar-reset-btn:hover {
  background: var(--pim-crimson) !important;
  color: var(--pim-bg-main) !important;
}

/* Right main column directory */
.pim-portal-main {
  display: flex !important;
  flex-direction: column !important;
  gap: 28px !important;
}
.pim-main-toolbar {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  border-bottom: 1px solid var(--pim-border) !important;
  padding-bottom: 14px !important;
}
.pim-toolbar-title {
  font-size: 18px !important;
  font-weight: 800 !important;
  color: var(--pim-dark) !important;
  margin: 0 !important;
}
.pim-toolbar-summary {
  font-size: 13px !important;
  color: var(--pim-muted) !important;
}
.pim-main-toolbar-right {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
}
.pim-sort-label {
  font-size: 13px !important;
  font-weight: 600 !important;
  color: var(--pim-muted) !important;
}
.pim-sort-btn-group {
  display: flex !important;
  background: var(--pim-bg-neutral) !important;
  padding: 3px !important;
  border-radius: 6px !important;
  gap: 2px !important;
}
.pim-sort-btn {
  border: none !important;
  background: transparent !important;
  color: var(--pim-text) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  padding: 5px 10px !important;
  border-radius: 4px !important;
  cursor: pointer !important;
  transition: all 0.15s ease !important;
}
.pim-sort-btn.is-active {
  background: var(--pim-bg-main) !important;
  color: var(--pim-crimson) !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.05) !important;
}

/* Journal Grid Cards */
.pim-journals-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)) !important;
  gap: 16px !important;
}
.jl-letter-header {
  grid-column: 1 / -1 !important;
  width: 100% !important;
  margin: 16px 0 8px 0 !important;
  padding: 0 0 8px 0 !important;
  border-bottom: 2px solid var(--pim-border) !important;
  font-size: 18px !important;
  font-weight: 800 !important;
  color: var(--pim-dark) !important;
  box-sizing: border-box !important;
}

/* Premium card styling */
.pim-journal-card {
  background: var(--pim-bg-main) !important;
  border: 1px solid var(--pim-border) !important;
  border-radius: 4px !important;
  padding: 16px !important;
  box-shadow: none !important;
  display: flex !important;
  flex-direction: column !important;
  position: relative !important;
  transition: all 0.25s ease !important;
}
.pim-journal-card:hover {
  border-color: var(--pim-crimson) !important;
  box-shadow: 0 6px 15px rgba(0, 0, 0, 0.03) !important;
  transform: translateY(-2px) !important;
}

/* Card Header elements */
.pim-card-header {
  display: flex !important;
  gap: 12px !important;
  margin-bottom: 10px !important;
  align-items: flex-start !important;
}

/* Aspect-ratio fixed thumbnail boxes */
.pim-card-thumb {
  width: 76px !important;
  height: 76px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  background: transparent !important;
  flex-shrink: 0 !important;
  border-radius: 0 !important;
  border: none !important;
  overflow: hidden !important;
  box-shadow: none !important;
}
.pim-card-thumb img {
  max-width: 100% !important;
  max-height: 100% !important;
  width: auto !important;
  height: auto !important;
  object-fit: contain !important;
}
.pim-card-thumb-placeholder {
  width: 100% !important;
  height: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: var(--pim-muted) !important;
  font-size: 24px !important;
}

.pim-card-title-group {
  flex-grow: 1 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
}
.pim-card-badges {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 6px !important;
}
.pim-badge {
  font-size: 9px !important;
  font-weight: 700 !important;
  padding: 2px 6px !important;
  border-radius: 4px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.2px !important;
}
.pim-badge-oa {
  background: #FFF5F5 !important;
  color: var(--pim-crimson) !important;
  border: 1px solid #FCDEDE !important;
}
.pim-badge-pr {
  background: #FFFDF5 !important;
  color: var(--pim-gold) !important;
  border: 1px solid #FDF3D9 !important;
}
.pim-journal-title {
  font-size: 15px !important;
  font-weight: 700 !important;
  color: var(--pim-dark) !important;
  margin: 0 !important;
  line-height: 1.4 !important;
}
.pim-journal-title a {
  color: inherit !important;
  text-decoration: none !important;
}
.pim-journal-title a:hover {
  color: var(--pim-crimson) !important;
}

/* Academic e-ISSN / p-ISSN styled as MDPI metadata labels */
.pim-journal-issn {
  font-size: 11px !important;
  color: var(--pim-muted) !important;
  font-weight: 600 !important;
  margin-top: 4px !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
}
.pim-journal-issn span {
  display: inline-flex !important;
  align-items: center !important;
  background: var(--pim-bg-neutral) !important;
  border: 1px solid var(--pim-border) !important;
  border-radius: 4px !important;
  padding: 2px 6px !important;
}

.pim-card-body {
  margin-bottom: 12px !important;
  flex-grow: 1 !important;
}
.pim-journal-desc {
  font-size: 12.5px !important;
  line-height: 1.5 !important;
  color: var(--pim-text) !important;
  margin: 0 !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 3 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}

/* Card Actions */
.pim-card-actions {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  border-top: 1px solid var(--pim-border) !important;
  padding-top: 10px !important;
  margin-top: auto !important;
  gap: 12px !important;
}
.pim-view-link {
  font-size: 12px !important;
  font-weight: 600 !important;
  color: var(--pim-gold) !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
}
.pim-view-link:hover {
  color: var(--pim-gold-hover) !important;
}
.pim-btn-submit {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 6px 12px !important;
  background-color: var(--pim-crimson) !important;
  color: #FFFFFF !important;
  border: 1px solid var(--pim-crimson) !important;
  border-radius: 4px !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
  text-decoration: none !important;
  transition: all 0.2s ease !important;
}
.pim-btn-submit:hover {
  background-color: var(--pim-crimson-hover) !important;
  border-color: var(--pim-crimson-hover) !important;
  box-shadow: 0 4px 10px rgba(169, 29, 34, 0.15) !important;
}

/* Empty states */
.pim-empty-results {
  grid-column: 1 / -1 !important;
  background: var(--pim-bg-main) !important;
  border: 1px solid var(--pim-border) !important;
  border-radius: 6px !important;
  padding: 60px 40px !important;
  text-align: center !important;
}
.pim-empty-results i {
  font-size: 40px !important;
  color: var(--pim-muted) !important;
  margin-bottom: 12px !important;
}
.pim-empty-results p {
  font-size: 15px !important;
  color: var(--pim-muted) !important;
  margin: 0 !important;
}

/* Featured insights bottom row */
.pim-featured-section {
  grid-column: 1 / -1 !important;
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 24px !important;
  margin-top: 24px !important;
}
.jl-insight-card {
  background: var(--pim-bg-main) !important;
  border: 1px solid var(--pim-border) !important;
  border-radius: 6px !important;
  padding: 24px !important;
}
.jl-insight-card h2 {
  font-size: 16px !important;
  font-weight: 800 !important;
  color: var(--pim-dark) !important;
  margin: 0 0 16px 0 !important;
  border-bottom: 2px solid var(--pim-bg-neutral) !important;
  padding-bottom: 8px !important;
}

/* Dynamic scrapers rendering */
.jl-mini-list {
  display: flex !important;
  flex-direction: column !important;
  gap: 12px !important;
}
.jl-dynamic-article {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  text-decoration: none !important;
  padding: 8px !important;
  border-radius: 8px !important;
  border: 1px solid transparent !important;
  transition: all 0.2s ease !important;
}
.jl-dynamic-article:hover {
  background: var(--pim-bg-neutral) !important;
  border-color: var(--pim-border) !important;
}
.jl-dynamic-article img {
  width: 44px !important;
  height: 44px !important;
  object-fit: contain !important;
  border-radius: 0 !important;
  border: none !important;
  background: transparent !important;
}
.jl-dynamic-article span {
  display: flex !important;
  flex-direction: column !important;
  gap: 2px !important;
}
.jl-dynamic-article strong {
  font-size: 13px !important;
  color: var(--pim-dark) !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}
.jl-dynamic-article em {
  font-size: 11px !important;
  color: var(--pim-muted) !important;
  font-style: normal !important;
  font-weight: 600 !important;
}

.jl-issue-chip-row {
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
}
.jl-dynamic-issue {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  text-decoration: none !important;
  padding: 8px !important;
  border-radius: 8px !important;
  border: 1px solid transparent !important;
  transition: all 0.2s ease !important;
}
.jl-dynamic-issue:hover {
  background: var(--pim-bg-neutral) !important;
  border-color: var(--pim-border) !important;
}
.jl-dynamic-issue img {
  width: 44px !important;
  height: 44px !important;
  object-fit: contain !important;
  border-radius: 0 !important;
  border: none !important;
  background: transparent !important;
}
.jl-dynamic-issue span {
  font-size: 13px !important;
  color: var(--pim-dark) !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
}

/* ==========================================================================
   6. Journal Homepage (IndexJournal) & Sidebars
   ========================================================================== */
/* Main page container for public journal homepage */
.pim-layout-journal-public {
  display: flex !important;
  gap: 32px !important;
  align-items: start !important;
}

/* Left journal navigation tools sidebar */
.pim-journal-tools {
  width: 260px !important;
  flex-shrink: 0 !important;
  position: sticky !important;
  top: 90px !important;
}
.pim-journal-tools-panel {
  background: var(--pim-bg-main) !important;
  border: 1px solid var(--pim-border) !important;
  border-radius: 6px !important;
  padding: 20px !important;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.01) !important;
}
.pim-journal-tools-head {
  border-bottom: 2px solid var(--pim-bg-neutral) !important;
  padding-bottom: 12px !important;
  margin-bottom: 16px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 4px !important;
}
.pim-journal-tools-head span {
  font-size: 11px !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  color: var(--pim-gold) !important;
  letter-spacing: 0.5px !important;
}
.pim-journal-tools-head strong {
  font-size: 14px !important;
  color: var(--pim-dark) !important;
  font-weight: 800 !important;
  line-height: 1.3 !important;
}

.pim-journal-tools-group {
  margin-bottom: 16px !important;
}
.pim-journal-tools-group h2 {
  font-size: 11px !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  color: var(--pim-muted) !important;
  letter-spacing: 0.8px !important;
  margin: 0 0 8px 0 !important;
}
.pim-journal-tools-group a {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 8px 12px !important;
  border-radius: 6px !important;
  color: var(--pim-text) !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  transition: all 0.2s ease !important;
  margin-bottom: 2px !important;
}
.pim-journal-tools-group a:hover,
.pim-journal-tools-group a.is-active {
  background: var(--pim-bg-neutral) !important;
  color: var(--pim-crimson) !important;
}
.pim-journal-tools-group a i {
  font-size: 13px !important;
  width: 16px !important;
  text-align: center !important;
  color: var(--pim-muted) !important;
}
.pim-journal-tools-group a:hover i,
.pim-journal-tools-group a.is-active i {
  color: var(--pim-crimson) !important;
}

/* Submission action button in sidebar */
.pim-journal-submit {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  padding: 12px 16px !important;
  background: var(--pim-crimson) !important;
  color: var(--pim-bg-main) !important;
  border: 1px solid var(--pim-crimson) !important;
  border-radius: 8px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
  text-decoration: none !important;
  gap: 8px !important;
  transition: all 0.2s ease !important;
  box-shadow: 0 4px 12px rgba(169, 29, 34, 0.15) !important;
}
.pim-journal-submit:hover {
  background: var(--pim-crimson-hover) !important;
  border-color: var(--pim-crimson-hover) !important;
}

/* Journal Right Widget sidebar */
.pim-journal-sidebar {
  width: 260px !important;
  flex-shrink: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 24px !important;
}
.pim-journal-sidebar .pkp_block {
  background: var(--pim-bg-main) !important;
  border: 1px solid var(--pim-border) !important;
  border-radius: 6px !important;
  padding: 20px !important;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.01) !important;
  margin-bottom: 0 !important;
}
.pim-journal-sidebar .pkp_block .title {
  font-size: 13px !important;
  font-weight: 800 !important;
  color: var(--pim-dark) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.8px !important;
  margin: 0 0 14px 0 !important;
  border-bottom: 2px solid var(--pim-bg-neutral) !important;
  padding-bottom: 8px !important;
  display: block !important;
  text-align: center !important;
}
.pim-journal-sidebar .pkp_block ul {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
}
.pim-journal-sidebar .pkp_block ul li {
  margin: 0 !important;
  padding: 0 !important;
}
.pim-journal-sidebar .pkp_block ul li a {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 10px 14px !important;
  background: var(--pim-bg-neutral) !important;
  border: 1px solid var(--pim-border) !important;
  border-radius: 8px !important;
  color: var(--pim-text) !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  transition: all 0.2s ease !important;
  box-sizing: border-box !important;
}
.pim-journal-sidebar .pkp_block ul li a:hover {
  background: var(--pim-bg-main) !important;
  border-color: var(--pim-crimson) !important;
  color: var(--pim-crimson) !important;
  box-shadow: 0 4px 10px rgba(169, 29, 34, 0.04) !important;
}

/* Sidebar block image styling (indexing & recommended tools) */
.pim-journal-sidebar .pkp_block img {
  max-width: 100% !important;
  height: auto !important;
  display: block !important;
  margin: 0 auto 12px auto !important;
}
.pim-journal-sidebar .pkp_block img:last-child {
  margin-bottom: 0 !important;
}
.pim-journal-sidebar .pkp_block a img {
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease !important;
  border: 1px solid var(--pim-border) !important;
  border-radius: 6px !important;
  background: var(--pim-bg-main) !important;
  padding: 8px !important;
  box-shadow: 0 2px 6px rgba(0,0,0,0.02) !important;
  box-sizing: border-box !important;
}
.pim-journal-sidebar .pkp_block a:hover img {
  transform: translateY(-2px) !important;
  box-shadow: 0 6px 15px rgba(169, 29, 34, 0.06) !important;
  border-color: rgba(169, 29, 34, 0.2) !important;
}

/* Make a Submission block specific overrides */
.pim-journal-sidebar .block_make_submission {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  box-shadow: none !important;
}
.pim-journal-sidebar .block_make_submission .title {
  display: none !important;
}
.pim-journal-sidebar .block_make_submission a {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  padding: 12px !important;
  background: var(--pim-crimson) !important;
  color: var(--pim-bg-main) !important;
  border: 1px solid var(--pim-crimson) !important;
  border-radius: 8px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
  text-decoration: none !important;
  gap: 8px !important;
  transition: all 0.2s ease !important;
  box-shadow: 0 4px 12px rgba(169, 29, 34, 0.15) !important;
  box-sizing: border-box !important;
}
.pim-journal-sidebar .block_make_submission a:hover {
  background: var(--pim-crimson-hover) !important;
  border-color: var(--pim-crimson-hover) !important;
  color: var(--pim-bg-main) !important;
}

/* Journal Homepage Cover and About details */
.additional_content.homepage_about {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  justify-content: space-between !important;
  align-items: flex-start !important;
  gap: 32px !important;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  box-shadow: none !important;
  margin-bottom: 32px !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}
.additional_content.homepage_about .pim-journal-hero-text {
  flex: 1 1 0% !important;
  min-width: 0 !important;
  width: auto !important;
}
.additional_content.homepage_about .homepage_image {
  width: 170px !important;
  min-width: 170px !important;
  flex-shrink: 0 !important;
  margin: 0 !important;
  margin-top: 0 !important;
}
.homepage_image img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-height: 230px !important;
  object-fit: contain !important;
  border-radius: 0 !important;
  border: none !important;
  box-shadow: none !important;
  background: transparent !important;
}
.gp-journal-description {
  font-size: 14px !important;
  line-height: 1.75 !important;
  color: var(--pim-text) !important;
  margin: 0 !important;
}
.pim-additional-home-content {
  font-size: 14px !important;
  line-height: 1.75 !important;
  color: var(--pim-text) !important;
}

@media (max-width: 768px) {
  .additional_content.homepage_about {
    flex-direction: column-reverse !important;
    gap: 24px !important;
    padding: 0 !important;
    align-items: center !important;
  }
  .additional_content.homepage_about .pim-journal-hero-text {
    width: 100% !important;
    flex: none !important;
  }
  .additional_content.homepage_about .homepage_image {
    width: 140px !important;
    min-width: 140px !important;
    margin: 0 auto !important;
  }
}


/* Current Issue spotlight details */
.pim-home-current-issue h2 {
  font-size: 18px !important;
  font-weight: 800 !important;
  color: var(--pim-dark) !important;
  margin: 0 0 16px 0 !important;
  border-bottom: 2px solid var(--pim-border) !important;
  padding-bottom: 8px !important;
}
.pim-home-current-issue-card {
  background: var(--pim-bg-main) !important;
  border: 1px solid var(--pim-border) !important;
  border-radius: 6px !important;
  padding: 24px !important;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.01) !important;
  display: flex !important;
  gap: 24px !important;
}
.pim-home-current-cover {
  width: 160px !important;
  flex-shrink: 0 !important;
}
.pim-home-current-cover img {
  width: 100% !important;
  height: auto !important;
  border-radius: 0 !important;
  border: none !important;
  box-shadow: none !important;
}
.pim-home-current-body {
  flex-grow: 1 !important;
  display: flex !important;
  flex-direction: column !important;
}
.pim-home-current-body h3 {
  font-size: 18px !important;
  font-weight: 700 !important;
  color: var(--pim-dark) !important;
  margin: 0 0 6px 0 !important;
}
.pim-home-current-body h3 a {
  color: inherit !important;
  text-decoration: none !important;
}
.pim-home-current-body h3 a:hover {
  color: var(--pim-crimson) !important;
}
.pim-home-current-series {
  font-size: 12px !important;
  font-weight: 700 !important;
  color: var(--pim-gold) !important;
  margin-bottom: 12px !important;
}
.pim-home-current-description {
  font-size: 13px !important;
  line-height: 1.6 !important;
  color: var(--pim-text) !important;
  margin-bottom: 16px !important;
}
.pim-home-current-meta {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 16px !important;
  font-size: 11px !important;
  color: var(--pim-muted) !important;
  border-top: 1px solid var(--pim-bg-neutral) !important;
  padding-top: 12px !important;
  margin-top: auto !important;
}
.pim-home-current-meta strong {
  color: var(--pim-dark) !important;
}
.pim-home-current-meta a {
  color: var(--pim-crimson) !important;
  text-decoration: none !important;
}
.pim-home-current-link {
  display: inline-flex !important;
  align-items: center !important;
  margin-top: 16px !important;
  padding: 10px 20px !important;
  background: var(--pim-crimson) !important;
  color: var(--pim-bg-main) !important;
  border-radius: 6px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  width: max-content !important;
  transition: background 0.2s ease !important;
}
.pim-home-current-link:hover {
  background: var(--pim-crimson-hover) !important;
}

/* Latest issue article list */
.pim-homepage-articles {
  margin-top: 36px !important;
}
.pim-homepage-articles h3 {
  font-size: 15px !important;
  font-weight: 800 !important;
  color: var(--pim-dark) !important;
  padding-bottom: 8px !important;
  border-bottom: 2px solid var(--pim-crimson) !important;
  display: inline-block !important;
  margin: 0 0 16px 0 !important;
}
.pim-homepage-articles h4 {
  font-size: 11px !important;
  font-weight: 800 !important;
  color: var(--pim-muted) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.8px !important;
  margin: 18px 0 10px 0 !important;
}
.cmp_article_list.articles {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 16px !important;
}

/* Standard Article Summary Item */
.obj_article_summary {
  background: var(--pim-bg-main) !important;
  border: 1px solid var(--pim-border) !important;
  border-radius: 6px !important;
  padding: 16px 20px !important;
  transition: all 0.2s ease !important;
}
.obj_article_summary:hover {
  border-color: var(--pim-gold) !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.02) !important;
}
.obj_article_summary h4.title,
.obj_article_summary h3.title {
  font-size: 15px !important;
  font-weight: 700 !important;
  color: var(--pim-dark) !important;
  margin: 0 0 6px 0 !important;
  line-height: 1.4 !important;
}
.obj_article_summary h4.title a,
.obj_article_summary h3.title a {
  color: inherit !important;
  text-decoration: none !important;
}
.obj_article_summary h4.title a:hover,
.obj_article_summary h3.title a:hover {
  color: var(--pim-crimson) !important;
}
.obj_article_summary .authors {
  font-size: 12px !important;
  color: var(--pim-crimson) !important;
  font-weight: 600 !important;
  margin-bottom: 8px !important;
}
.obj_article_summary .pages {
  font-size: 11px !important;
  color: var(--pim-muted) !important;
  margin-bottom: 12px !important;
}

/* Galley download links list (PDF) */
.obj_article_summary .galleys_links {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  margin-top: 10px !important;
}
.obj_article_summary .obj_galley_link {
  display: inline-flex !important;
  align-items: center !important;
  padding: 6px 12px !important;
  border: 1px solid var(--pim-crimson) !important;
  border-radius: 4px !important;
  background: transparent !important;
  color: var(--pim-crimson) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
  text-decoration: none !important;
  transition: all 0.2s ease !important;
}
.obj_article_summary .obj_galley_link:hover {
  background: var(--pim-crimson) !important;
  color: var(--pim-bg-main) !important;
}

/* ==========================================================================
   7. Core Article Details Page & OJS Tables
   ========================================================================== */
.obj_article_details {
  display: flex !important;
  flex-direction: column !important;
  gap: 24px !important;
}

/* Strip OJS default column dividing borders and container borders on article page */
.obj_article_details .row,
.obj_article_details .main_entry,
.obj_article_details .entry_details,
.obj_article_details .entry_details .item {
  border: none !important;
  border-left: none !important;
  border-right: none !important;
  border-top: none !important;
  border-bottom: none !important;
  box-shadow: none !important;
}
.obj_article_details .entry_details {
  margin-left: 0 !important;
}

.obj_article_details h1.page_title {

  font-family: var(--pim-font-serif) !important;
  font-size: 26px !important;
  font-weight: 700 !important;
  color: var(--pim-dark) !important;
  line-height: 1.35 !important;
  margin: 0 !important;
}
.obj_article_details .authors {
  font-size: 14px !important;
  font-weight: 600 !important;
  color: var(--pim-crimson) !important;
}
.obj_article_details .item.doi {
  font-size: 12px !important;
  color: var(--pim-muted) !important;
}
.obj_article_details .item.doi a {
  color: var(--pim-crimson) !important;
  text-decoration: none !important;
  font-weight: 700 !important;
}

/* Abstract box */
.obj_article_details .item.abstract {
  background: var(--pim-bg-main) !important;
  border: 1px solid var(--pim-border) !important;
  border-radius: 6px !important;
  padding: 24px !important;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.01) !important;
}
.obj_article_details .item.abstract h3 {
  font-size: 14px !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  color: var(--pim-dark) !important;
  letter-spacing: 0.8px !important;
  border-left: 3px solid var(--pim-crimson) !important;
  padding-left: 10px !important;
  margin: 0 0 16px 0 !important;
}
.obj_article_details .item.abstract p {
  font-size: 14px !important;
  line-height: 1.7 !important;
  color: var(--pim-text) !important;
  text-align: justify !important;
}

/* OJS Core Tables Overrides */
.pkp_structure_main table {
  width: 100% !important;
  border-collapse: collapse !important;
  margin: 20px 0 !important;
  font-size: 13px !important;
}
.pkp_structure_main table th,
.pkp_structure_main table td {
  padding: 10px 14px !important;
  border: 1px solid var(--pim-border) !important;
  color: var(--pim-text) !important;
  text-align: left !important;
  vertical-align: top !important;
}
.pkp_structure_main table th {
  background: var(--pim-bg-neutral) !important;
  font-weight: 700 !important;
  color: var(--pim-dark) !important;
  text-transform: uppercase !important;
  font-size: 11px !important;
  letter-spacing: 0.5px !important;
}
.pkp_structure_main table td {
  background: var(--pim-bg-main) !important;
}
.pkp_structure_main table tr:nth-child(even) td {
  background: var(--pim-bg-neutral) !important;
}
.pkp_structure_main table td a {
  color: var(--pim-crimson) !important;
  font-weight: 700 !important;
  text-decoration: underline !important;
}

/* Sidebar/Widget Legacy Table Reset: Preserve custom block inline backgrounds and padding */
.pim-journal-sidebar table,
.pkp_structure_sidebar table {
  width: 100% !important;
  border-collapse: separate !important;
  border-spacing: 3px !important;
  margin: 0 0 10px 0 !important;
  border: none !important;
}
.pim-journal-sidebar table td,
.pim-journal-sidebar table th,
.pkp_structure_sidebar table td,
.pkp_structure_sidebar table th {
  padding: 6px 10px !important;
  border: none !important;
  background: transparent; /* Allows inline background-color styles to take effect */
  color: inherit; /* Allows inline color styles to take effect */
}



/* ==========================================================================
   8. Form Fields & Other OJS Subpages
   ========================================================================== */
.pkp_structure_main h1 {
  font-size: 24px !important;
  font-weight: 800 !important;
  color: var(--pim-dark) !important;
  margin: 0 0 20px 0 !important;
}

/* Breadcrumbs */
.pkp_breadcrumbs ol {
  display: flex !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 0 0 20px 0 !important;
  gap: 8px !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
}
.pkp_breadcrumbs ol li {
  display: inline-flex !important;
  align-items: center !important;
}
.pkp_breadcrumbs ol li a {
  color: var(--pim-crimson) !important;
  text-decoration: none !important;
}
.pkp_breadcrumbs ol li + li::before {
  content: "/" !important;
  margin-right: 8px !important;
  color: var(--pim-muted) !important;
  font-weight: 400 !important;
}

/* Form layouts */
form.pkp_form input[type="text"],
form.pkp_form input[type="password"],
form.pkp_form input[type="email"],
form.pkp_form select,
form.pkp_form textarea {
  width: 100% !important;
  padding: 10px 14px !important;
  border: 1px solid var(--pim-border) !important;
  border-radius: 6px !important;
  background: var(--pim-bg-main) !important;
  font-size: 14px !important;
  color: var(--pim-dark) !important;
  box-sizing: border-box !important;
  transition: border-color 0.2s ease !important;
}
form.pkp_form input:focus,
form.pkp_form select:focus,
form.pkp_form textarea:focus {
  border-color: var(--pim-crimson) !important;
  outline: none !important;
}
form.pkp_form button[type="submit"],
form.pkp_form .buttons button {
  background: var(--pim-crimson) !important;
  color: var(--pim-bg-main) !important;
  border: 1px solid var(--pim-crimson) !important;
  border-radius: 6px !important;
  padding: 10px 20px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
  cursor: pointer !important;
  transition: background 0.2s ease !important;
}
form.pkp_form button[type="submit"]:hover {
  background: var(--pim-crimson-hover) !important;
}

/* ==========================================================================
   9. Premium Dark Footerredesign
   ========================================================================== */
/* ==========================================================================
   9. Premium Light Footer redesign
   ========================================================================== */
.footer.pkp_structure_footer_wrapper {
  background: var(--pim-bg-neutral) !important;
  color: var(--pim-text) !important;
  border-top: 3px solid var(--pim-gold) !important;
  padding: 64px 0 32px 0 !important;
  margin-top: 60px !important;
  font-size: 13px !important;
  width: 100% !important;
  box-sizing: border-box !important;
}
.footer .pim-container {
  width: 100% !important;
  max-width: 1200px !important;
  margin: 0 auto !important;
  padding: 0 var(--pim-gutter) !important;
  box-sizing: border-box !important;
}

/* Top footer tag line */
.footer-topline {
  border-bottom: 1px solid var(--pim-border) !important;
  padding-bottom: 24px !important;
  margin-bottom: 36px !important;
}
.footer-kicker {
  font-family: var(--pim-font-serif) !important;
  font-size: 20px !important;
  color: var(--pim-crimson) !important;
  font-weight: 700 !important;
  display: block !important;
  margin-bottom: 4px !important;
}
.footer-topline strong {
  font-size: 14px !important;
  color: var(--pim-dark) !important;
  font-weight: 500 !important;
}

/* Grid layout */
.footer-grid {
  display: grid !important;
  grid-template-columns: 2fr 1fr 1fr !important;
  gap: 40px !important;
  margin-bottom: 40px !important;
}
.footer-brand h3 {
  font-size: 16px !important;
  font-weight: 800 !important;
  color: var(--pim-dark) !important;
  margin: 12px 0 8px 0 !important;
}
.footer-brand p {
  line-height: 1.6 !important;
  margin: 0 !important;
  font-size: 13px !important;
  color: var(--pim-text) !important;
}
.footer-logo-mark img {
  height: 48px !important;
  width: auto !important;
  filter: none !important;
}

.footer-grid h4 {
  font-size: 12px !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  color: var(--pim-crimson) !important;
  letter-spacing: 0.8px !important;
  margin: 0 0 16px 0 !important;
  border-bottom: 1px solid var(--pim-border) !important;
  padding-bottom: 8px !important;
}

/* Link columns */
.footer-links-list {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
.footer-links-list li {
  margin-bottom: 8px !important;
}
.footer-links-list li a {
  color: var(--pim-text) !important;
  text-decoration: none !important;
  transition: color 0.15s ease !important;
}
.footer-links-list li a:hover {
  color: var(--pim-crimson) !important;
}

/* Contact Details */
.footer-contact-item {
  display: flex !important;
  gap: 10px !important;
  margin-bottom: 12px !important;
  line-height: 1.5 !important;
  color: var(--pim-text) !important;
}
.footer-contact-item i {
  color: var(--pim-crimson) !important;
  margin-top: 3px !important;
  width: 14px !important;
  text-align: center !important;
}
.footer-contact-item a {
  color: var(--pim-text) !important;
  text-decoration: none !important;
}
.footer-contact-item a:hover {
  color: var(--pim-crimson) !important;
}

/* Bottom copyright row */
.footer-bottom {
  border-top: 1px solid var(--pim-border) !important;
  padding-top: 24px !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 16px !important;
  font-size: 11px !important;
  color: var(--pim-muted) !important;
}
.footer-bottom a {
  color: var(--pim-crimson) !important;
  text-decoration: none !important;
}
.footer-bottom a:hover {
  text-decoration: underline !important;
}

/* ==========================================================================
   10. Responsive Media Queries
   ========================================================================== */
@media (max-width: 1280px) {
  .pim-portal-layout {
    grid-template-columns: 280px 1fr !important;
    gap: 24px !important;
  }
  .pim-portal-right-col {
    grid-column: span 2 !important;
    position: static !important;
    width: 100% !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    gap: 24px !important;
  }
  .pim-portal-right-col > .pim-sidebar-card {
    flex: 1 1 calc(50% - 12px) !important;
    min-width: 280px !important;
  }
}

@media (max-width: 1200px) {
  .pim-nav {
    gap: 16px !important;
  }
}

@media (max-width: 992px) {
  /* Collapse grids and flex containers to single columns */
  .pim-portal-layout {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }
  .pim-portal-left-col,
  .pim-portal-right-col {
    position: static !important;
    width: 100% !important;
  }
  .pim-portal-right-col {
    grid-column: span 1 !important;
    flex-direction: column !important;
    gap: 24px !important;
  }
  .pim-portal-right-col > .pim-sidebar-card {
    flex: 1 1 100% !important;
  }
  .pim-layout-journal-public {
    flex-direction: column !important;
    gap: 32px !important;
  }
  .pim-portal-sidebar,
  .pim-journal-tools,
  .pim-journal-sidebar {
    position: static !important;
    width: 100% !important;
  }
  .footer-grid {
    grid-template-columns: 1fr 1fr !important;
  }
  .pim-header-actions {
    margin-left: auto !important;
  }
  .nav-toggle {
    display: inline-flex !important;
  }
  .pim-nav {
    display: none !important; /* Managed by mobile drawer */
  }

  /* Mobile tools styling inside 992px breakpoint */
  .pim-mobile-tools-backdrop {
    display: block !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background: rgba(0, 0, 0, 0.4) !important;
    z-index: 1040 !important;
    opacity: 0;
    visibility: hidden;
    transition: all 0.25s ease !important;
  }
  .pim-mobile-tools-backdrop.is-active {
    opacity: 1 !important;
    visibility: visible !important;
  }
  
  .pim-mobile-tools-bar {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    position: fixed !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    height: 54px !important;
    background: var(--pim-bg-main) !important;
    border-top: 1px solid var(--pim-border) !important;
    box-shadow: 0 -4px 12px rgba(0,0,0,0.08) !important;
    z-index: 1045 !important;
    padding: 0 16px !important;
  }
  
  .pim-mobile-tools-toggle {
    background: var(--pim-crimson) !important;
    color: var(--pim-bg-main) !important;
    border: none !important;
    border-radius: 6px !important;
    padding: 8px 14px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    cursor: pointer !important;
  }
  
  .pim-mobile-tools-tabs {
    display: flex !important;
    gap: 4px !important;
    border: 1px solid var(--pim-border) !important;
    background: var(--pim-bg-neutral) !important;
    padding: 2px !important;
    border-radius: 6px !important;
  }
  
  .pim-mobile-tools-tabs button {
    border: none !important;
    background: transparent !important;
    color: var(--pim-muted) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    padding: 6px 12px !important;
    border-radius: 4px !important;
    cursor: pointer !important;
    transition: all 0.15s ease !important;
  }
  
  .pim-mobile-tools-tabs button.is-active {
    background: var(--pim-bg-main) !important;
    color: var(--pim-crimson) !important;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05) !important;
  }
}

@media (max-width: 768px) {
  .pim-header {
    padding: 10px 0 !important;
  }
  .pim-brand img {
    height: 56px !important;
  }
  .pim-hero {
    padding: 40px 16px !important;
  }
  .pim-hero h1 {
    font-size: 28px !important;
  }
  .pim-journals-grid {
    grid-template-columns: 1fr !important;
  }
  .pim-home-current-issue-card {
    flex-direction: column !important;
  }
  .pim-home-current-cover {
    width: 100% !important;
    max-width: 180px !important;
    margin: 0 auto !important;
  }
  .pim-featured-section {
    grid-template-columns: 1fr !important;
  }
  .footer-grid {
    grid-template-columns: 1fr !important;
    gap: 30px !important;
  }
  .footer-bottom {
    flex-direction: column !important;
    text-align: center !important;
  }
}

/* ==========================================================================
   11. Search Portal Overrides (.pkp_page_search)
   ========================================================================== */
.pkp_page_search .pkp_structure_main .page_search {
  max-width: 1200px !important;
  margin: 0 auto !important;
  padding: 0 !important;
}
.pkp_page_search .pkp_structure_main .page_search h1 {
  font-family: var(--pim-font-serif) !important;
  font-size: 28px !important;
  color: var(--pim-dark) !important;
  margin: 0 0 24px 0 !important;
  font-weight: 700 !important;
}
.pkp_page_search .pkp_structure_main form.cmp_form {
  background: var(--pim-bg-neutral) !important;
  border: 1px solid var(--pim-border) !important;
  border-radius: 6px !important;
  padding: 30px !important;
  margin-bottom: 40px !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.01) !important;
}
.pkp_page_search .pkp_structure_main .search_input {
  margin-bottom: 24px !important;
}
.pkp_page_search .pkp_structure_main .search_input input.query {
  width: 100% !important;
  padding: 14px 20px !important;
  font-size: 15px !important;
  font-family: var(--pim-font-sans) !important;
  border: 1px solid var(--pim-border) !important;
  border-radius: 8px !important;
  background: var(--pim-bg-main) !important;
  color: var(--pim-dark) !important;
  box-sizing: border-box !important;
  transition: all 0.2s ease !important;
}
.pkp_page_search .pkp_structure_main .search_input input.query:focus {
  border-color: var(--pim-crimson) !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(169,29,34,0.08) !important;
}
.pkp_page_search .pkp_structure_main .search_advanced {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 30px !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 0 24px 0 !important;
}
.pkp_page_search .pkp_structure_main .search_advanced legend {
  grid-column: 1 / -1 !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  color: var(--pim-dark) !important;
  margin-bottom: 16px !important;
  padding: 0 0 8px 0 !important;
  border-bottom: 2px solid var(--pim-border) !important;
  width: 100% !important;
  text-transform: uppercase !important;
  letter-spacing: 0.8px !important;
}
.pkp_page_search .pkp_structure_main .search_advanced .date_range {
  display: flex !important;
  flex-direction: column !important;
  gap: 20px !important;
}
.pkp_page_search .pkp_structure_main .date_range fieldset {
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 8px !important;
}
.pkp_page_search .pkp_structure_main .date_range fieldset legend {
  grid-column: 1 / -1 !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  color: var(--pim-muted) !important;
  text-transform: uppercase !important;
  border-bottom: none !important;
  margin-bottom: 6px !important;
  padding: 0 !important;
  letter-spacing: 0.5px !important;
}
.pkp_page_search .pkp_structure_main .date_range select {
  width: 100% !important;
  margin-right: 0 !important;
  box-sizing: border-box !important;
  padding: 8px 10px !important;
  font-size: 13px !important;
  border: 1px solid var(--pim-border) !important;
  border-radius: 6px !important;
  background: var(--pim-bg-main) !important;
  color: var(--pim-text) !important;
  font-family: var(--pim-font-sans) !important;
  outline: none !important;
}
.pkp_page_search .pkp_structure_main .date_range select:focus {
  border-color: var(--pim-crimson) !important;
}
.pkp_page_search .pkp_structure_main .search_advanced .author {
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
}
.pkp_page_search .pkp_structure_main .author label.label {
  font-size: 11px !important;
  font-weight: 700 !important;
  color: var(--pim-muted) !important;
  text-transform: uppercase !important;
  margin: 0 !important;
  letter-spacing: 0.5px !important;
}
.pkp_page_search .pkp_structure_main .author input[type="text"],
.pkp_page_search .pkp_structure_main .author select {
  width: 100% !important;
  padding: 10px 14px !important;
  font-size: 13px !important;
  border: 1px solid var(--pim-border) !important;
  border-radius: 6px !important;
  background: var(--pim-bg-main) !important;
  color: var(--pim-text) !important;
  font-family: var(--pim-font-sans) !important;
  outline: none !important;
  box-sizing: border-box !important;
}
.pkp_page_search .pkp_structure_main .author input[type="text"]:focus,
.pkp_page_search .pkp_structure_main .author select:focus {
  border-color: var(--pim-crimson) !important;
}
.pkp_page_search .pkp_structure_main .author input#authors {
  margin-bottom: 14px !important;
}
.pkp_page_search .pkp_structure_main .submit {
  text-align: right !important;
  margin-top: 12px !important;
}
.pkp_page_search .pkp_structure_main button.submit {
  background: var(--pim-crimson) !important;
  color: var(--pim-bg-main) !important;
  border: 1px solid var(--pim-crimson) !important;
  border-radius: 6px !important;
  padding: 10px 24px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
  position: relative !important;
}
.pkp_page_search .pkp_structure_main button.submit:hover {
  background: var(--pim-crimson-hover) !important;
  border-color: var(--pim-crimson-hover) !important;
  box-shadow: 0 4px 12px rgba(169, 29, 34, 0.15) !important;
}
.pkp_page_search .pkp_structure_main button.submit::before,
.pkp_page_search .pkp_structure_main button.submit::after,
.pkp_page_search .pkp_structure_main .submit button::before,
.pkp_page_search .pkp_structure_main .submit button::after {
  display: none !important;
  content: none !important;
  background: none !important;
}
.pkp_page_search .pkp_structure_main .search_results {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 20px !important;
}
.pkp_page_search .pkp_structure_main .search_results li {
  margin: 0 !important;
  padding: 0 !important;
}
@media (max-width: 767px) {
  .pkp_page_search .pkp_structure_main .search_advanced {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }
}
.obj_article_summary {
  background: var(--pim-bg-main) !important;
  border: 1px solid var(--pim-border) !important;
  border-radius: 6px !important;
  padding: 24px !important;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.01) !important;
  transition: all 0.3s ease !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 12px !important;
  position: relative !important;
}
.obj_article_summary:hover {
  border-color: rgba(169,29,34,0.15) !important;
  box-shadow: 0 10px 25px rgba(169,29,34,0.03) !important;
}
.obj_article_summary .title {
  font-size: 16px !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  margin: 0 0 6px 0 !important;
  font-family: var(--pim-font-sans) !important;
}
.obj_article_summary .title a {
  color: var(--pim-dark) !important;
  text-decoration: none !important;
  transition: color 0.15s ease !important;
}
.obj_article_summary .title a:hover {
  color: var(--pim-crimson) !important;
}
.obj_article_summary .title .subtitle {
  display: block !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  color: var(--pim-muted) !important;
  margin-top: 4px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.8px !important;
}
.obj_article_summary .meta {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 12px !important;
  font-size: 12px !important;
  color: var(--pim-muted) !important;
}
.obj_article_summary .meta .authors {
  font-weight: 600 !important;
  color: var(--pim-text) !important;
}
.obj_article_summary .meta .published,
.obj_article_summary .meta .pages {
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
}
.obj_article_summary .meta .published::before {
  content: "\f073" !important;
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 900 !important;
}
.obj_article_summary .meta .pages::before {
  content: "\f02d" !important;
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 900 !important;
}
.obj_article_summary .galleys_links {
  list-style: none !important;
  padding: 0 !important;
  margin: 8px 0 0 0 !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
}
.obj_article_summary .galleys_links li {
  margin: 0 !important;
}
.obj_article_summary .galleys_links a.obj_galley_link {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  padding: 6px 14px !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
  text-decoration: none !important;
  border-radius: 4px !important;
  transition: all 0.2s ease !important;
}
.obj_article_summary .galleys_links a.obj_galley_link.pdf {
  background: #FFF0F0 !important;
  color: var(--pim-crimson) !important;
  border: 1px solid #FFD6D6 !important;
}
.obj_article_summary .galleys_links a.obj_galley_link.pdf:hover {
  background: var(--pim-crimson) !important;
  color: var(--pim-bg-main) !important;
  border-color: var(--pim-crimson) !important;
}
.obj_article_summary .galleys_links a.obj_galley_link.pdf::before {
  content: "\f1c1" !important;
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 900 !important;
}
.obj_article_summary .galleys_links a.obj_galley_link.file {
  background: #FFFDF5 !important;
  color: var(--pim-gold) !important;
  border: 1px solid #FDF0D5 !important;
}
.obj_article_summary .galleys_links a.obj_galley_link.file:hover {
  background: var(--pim-gold) !important;
  color: var(--pim-bg-main) !important;
  border-color: var(--pim-gold) !important;
}
.obj_article_summary .galleys_links a.obj_galley_link.file::before {
  content: "\f15b" !important;
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 900 !important;
}

/* ==========================================================================
   12. Issue Archives Grid Overrides (.pkp_page_issue .obj_issue_summary)
   ========================================================================== */
.pkp_page_issue.pkp_op_archive .issues {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)) !important;
  gap: 24px !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
.pkp_page_issue.pkp_op_archive .obj_issue_summary {
  background: var(--pim-bg-main) !important;
  border: 1px solid var(--pim-border) !important;
  border-radius: 6px !important;
  padding: 16px !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.01) !important;
  display: flex !important;
  flex-direction: column !important;
  transition: all 0.25s ease !important;
  margin-bottom: 0 !important;
}
.pkp_page_issue.pkp_op_archive .obj_issue_summary:hover {
  transform: translateY(-4px) !important;
  border-color: var(--pim-gold) !important;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.06) !important;
}
.pkp_page_issue.pkp_op_archive .obj_issue_summary .cover {
  width: 100% !important;
  height: 220px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 6px !important;
  overflow: hidden !important;
  border: 1px solid var(--pim-border) !important;
  background: var(--pim-bg-neutral) !important;
  margin-bottom: 14px !important;
}
.pkp_page_issue.pkp_op_archive .obj_issue_summary .cover img {
  max-width: 100% !important;
  max-height: 100% !important;
  width: auto !important;
  height: auto !important;
  object-fit: contain !important;
  margin: 0 auto !important;
}
.pkp_page_issue.pkp_op_archive .obj_issue_summary h2.title {
  font-size: 14px !important;
  font-weight: 700 !important;
  color: var(--pim-dark) !important;
  margin: 0 0 6px 0 !important;
  line-height: 1.35 !important;
}
.pkp_page_issue.pkp_op_archive .obj_issue_summary h2.title a {
  color: inherit !important;
  text-decoration: none !important;
}
.pkp_page_issue.pkp_op_archive .obj_issue_summary h2.title a:hover {
  color: var(--pim-crimson) !important;
}
.pkp_page_issue.pkp_op_archive .obj_issue_summary .series {
  font-size: 11px !important;
  font-weight: 700 !important;
  color: var(--pim-gold) !important;
  margin-bottom: 14px !important;
}
.pkp_page_issue.pkp_op_archive .obj_issue_summary .description {
  font-size: 12px !important;
  color: var(--pim-text) !important;
  line-height: 1.5 !important;
  margin-bottom: 14px !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 3 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}
/* View Issue button link */
.pkp_page_issue.pkp_op_archive .obj_issue_summary .read_more {
  display: block !important;
  width: 100% !important;
  padding: 8px !important;
  text-align: center !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
  border: 1px solid var(--pim-border) !important;
  border-radius: 6px !important;
  color: var(--pim-crimson) !important;
  background: var(--pim-bg-neutral) !important;
  text-decoration: none !important;
  margin-top: auto !important;
  transition: all 0.2s ease !important;
}
.pkp_page_issue.pkp_op_archive .obj_issue_summary .read_more:hover {
  background: var(--pim-crimson) !important;
  color: var(--pim-bg-main) !important;
  border-color: var(--pim-crimson) !important;
}

/* ==========================================================================
   13. About Pages & Editorial Team (.pkp_page_about)
   ========================================================================== */
/* Editorial Board and Team Lists */
.pkp_page_about.pkp_op_editorialTeam .pkp_structure_main ul {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
.pkp_page_about.pkp_op_editorialTeam .pkp_structure_main ul li {
  background: var(--pim-bg-main) !important;
  border: 1px solid var(--pim-border) !important;
  border-radius: 8px !important;
  padding: 16px 20px !important;
  margin-bottom: 12px !important;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.01) !important;
}
.pkp_page_about.pkp_op_editorialTeam .pkp_structure_main ul li strong {
  font-size: 15px !important;
  color: var(--pim-crimson) !important;
  font-weight: 700 !important;
  display: block !important;
  margin-bottom: 4px !important;
}
.pkp_page_about.pkp_op_editorialTeam .pkp_structure_main ul li span {
  font-size: 13px !important;
  color: var(--pim-text) !important;
  font-style: italic !important;
}

/* ORCID link indicator */
.orcid-icon, 
.orcid-link {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  color: #a6ce39 !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  font-size: 12px !important;
  margin-left: 8px !important;
}
.orcid-icon::before {
  content: "\f8d2" !important;
  font-family: "Font Awesome 6 Brands" !important;
}

/* Submissions Guideline Checklist */
.pkp_page_about.pkp_op_submissions .submission_checklist {
  list-style: none !important;
  padding: 0 !important;
}
.pkp_page_about.pkp_op_submissions .submission_checklist li {
  position: relative !important;
  padding-left: 32px !important;
  margin-bottom: 16px !important;
  line-height: 1.65 !important;
}
.pkp_page_about.pkp_op_submissions .submission_checklist li::before {
  content: "\f00c" !important;
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 900 !important;
  position: absolute !important;
  left: 0 !important;
  top: 3px !important;
  color: var(--pim-gold) !important;
  font-size: 14px !important;
}

/* Guidelines section dividers */
.pkp_page_about.pkp_op_submissions h2,
.pkp_page_about.pkp_op_submissions h3 {
  border-bottom: 1px solid var(--pim-border) !important;
  padding-bottom: 8px !important;
  margin-top: 32px !important;
}

/* ==========================================================================
   14. Centered User Login & Registration Forms (.pkp_page_login / .pkp_page_user)
   ========================================================================== */
.pkp_page_login .pkp_structure_content,
.pkp_page_user .pkp_structure_content {
  grid-template-columns: 1fr !important;
}
.pkp_page_login .pkp_structure_main,
.pkp_page_user .pkp_structure_main {
  max-width: 480px !important;
  margin: 40px auto !important;
  background: var(--pim-bg-main) !important;
  border: 1px solid var(--pim-border) !important;
  border-radius: 6px !important;
  padding: 40px !important;
  box-shadow: 0 10px 30px rgba(0,0,0,0.03) !important;
}
.pkp_page_login .pkp_structure_main h1,
.pkp_page_user .pkp_structure_main h1 {
  text-align: center !important;
  font-family: var(--pim-font-serif) !important;
  font-size: 26px !important;
  margin-bottom: 24px !important;
  color: var(--pim-dark) !important;
}
.pkp_page_login .pkp_structure_main form.login,
.pkp_page_user .pkp_structure_main form.register {
  display: flex !important;
  flex-direction: column !important;
  gap: 16px !important;
}
.pkp_page_login .pkp_structure_main form.login fieldset,
.pkp_page_user .pkp_structure_main form.register fieldset {
  display: flex !important;
  flex-direction: column !important;
  gap: 14px !important;
}
.pkp_page_login .pkp_structure_main .fields > div,
.pkp_page_user .pkp_structure_main .fields > div {
  margin-bottom: 0 !important;
}
.pkp_page_login .pkp_structure_main button[type="submit"],
.pkp_page_user .pkp_structure_main button[type="submit"] {
  width: 100% !important;
  padding: 12px !important;
  margin-top: 10px !important;
}

/* ==========================================================================
   15. Mobile User Menu Visibility Fix
   ========================================================================== */
.pim-user-topbar,
.pim-user-topbar .pkp_navigation_user {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}
.pim-user-topbar .pkp_navigation_user > li {
  display: inline-block !important;
}

/* ==========================================================================
   16. Premium Article Cards & Statistics Display (GPI style)
   ========================================================================== */
.pim-article-card {
  background: var(--pim-bg-main) !important;
  border: 1px solid var(--pim-border) !important;
  border-radius: 6px !important;
  padding: 24px !important;
  margin-bottom: 24px !important;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.01) !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 12px !important;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1) !important;
  box-sizing: border-box !important;
}
.pim-article-card:hover {
  border-color: rgba(169, 29, 34, 0.2) !important;
  box-shadow: 0 10px 25px rgba(169, 29, 34, 0.04) !important;
  transform: translateY(-2px) !important;
}

.pim-article-title {
  font-size: 16px !important;
  font-weight: 700 !important;
  color: var(--pim-dark) !important;
  line-height: 1.4 !important;
  margin: 0 !important;
}
.pim-article-title a {
  color: var(--pim-crimson) !important;
  text-decoration: none !important;
  transition: color 0.15s ease !important;
}
.pim-article-title a:hover {
  color: var(--pim-crimson-hover) !important;
  text-decoration: underline !important;
}

.pim-article-authors {
  font-size: 13px !important;
  color: #475569 !important;
  font-weight: 500 !important;
  margin: 0 !important;
}

/* Badges Row */
.pim-article-tags-row {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  margin: 4px 0 !important;
}
.pim-article-tag {
  display: inline-flex !important;
  align-items: center !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  border: 1px solid var(--pim-border) !important;
  border-radius: 4px !important;
  overflow: hidden !important;
  background: var(--pim-bg-neutral) !important;
}
.pim-article-tag .tag-label {
  padding: 3px 6px !important;
  background: #E2E8F0 !important;
  color: #475569 !important;
  font-weight: 700 !important;
  font-size: 9px !important;
  letter-spacing: 0.5px !important;
}
.pim-article-tag .tag-val {
  padding: 3px 8px !important;
  color: #334155 !important;
}
.pim-article-tag .tag-val a {
  color: var(--pim-crimson) !important;
  text-decoration: none !important;
}
.pim-article-tag .tag-val a:hover {
  text-decoration: underline !important;
}

/* Tag Specific Colors */
.pim-tag-doi .tag-label {
  background: #FEE2E2 !important;
  color: #991B1B !important;
}
.pim-tag-published .tag-label {
  background: #FEF3C7 !important;
  color: #92400E !important;
}
.pim-tag-pages .tag-label {
  background: #E0F2FE !important;
  color: #075985 !important;
}

.pim-article-excerpt {
  font-size: 13px !important;
  line-height: 1.6 !important;
  color: #64748B !important;
  margin: 0 !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 3 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}

/* Footer & Galleys */
.pim-article-footer {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  border-top: 1px solid var(--pim-border) !important;
  padding-top: 16px !important;
  margin-top: 4px !important;
  flex-wrap: wrap !important;
  gap: 12px !important;
}

.pim-article-galleys ul.galleys_links li a.pdf {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  padding: 6px 16px !important;
  background: #FFF5F5 !important;
  border: 1px solid #FCA5A5 !important;
  color: var(--pim-crimson) !important;
  border-radius: 6px !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  transition: all 0.2s ease !important;
}
.pim-article-galleys ul.galleys_links li a.pdf::before {
  content: "\f1c1" !important;
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 900 !important;
  color: var(--pim-crimson) !important;
  margin-right: 6px !important;
}
.pim-article-galleys ul.galleys_links li a.pdf:hover {
  background: var(--pim-crimson) !important;
  color: white !important;
  border-color: var(--pim-crimson) !important;
}
.pim-article-galleys ul.galleys_links li a.pdf:hover::before {
  color: white !important;
}

/* Statistics display */
.pim-article-stats {
  display: flex !important;
  align-items: center !important;
  gap: 16px !important;
  flex-shrink: 0 !important;
}
.pim-stat-item {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  font-size: 12px !important;
  color: #64748B !important;
  font-weight: 500 !important;
}
.pim-stat-item i {
  font-size: 13px !important;
  color: #94A3B8 !important;
}
.pim-stat-item .stat-count {
  font-weight: 700 !important;
  color: var(--pim-dark) !important;
}

/* ==========================================================================
   17. Responsive Mobile Filtering Drawer for Portal Directory
   ========================================================================== */

/* Mobile Backdrop Overlay */
.pim-sidebar-drawer-bg {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  width: 100vw !important;
  height: 100vh !important;
  background: rgba(15, 23, 42, 0.5) !important;
  backdrop-filter: blur(4px) !important;
  z-index: 9999 !important;
  opacity: 0 !important;
  pointer-events: none !important;
  transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

/* Mobile Toggle Buttons */
.pim-mobile-filter-toggle {
  display: none !important;
  align-items: center !important;
  gap: 8px !important;
  background: var(--pim-bg-main) !important;
  border: 1px solid var(--pim-border) !important;
  border-radius: 6px !important;
  padding: 8px 14px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  color: var(--pim-text) !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
}
.pim-mobile-filter-toggle:hover {
  border-color: var(--pim-crimson) !important;
  color: var(--pim-crimson) !important;
}
.pim-mobile-filter-toggle i {
  font-size: 12px !important;
}

/* Drawer Header inside the side panel */
.pim-sidebar-drawer-header {
  display: none !important;
  justify-content: space-between !important;
  align-items: center !important;
  border-bottom: 2px solid var(--pim-border) !important;
  padding-bottom: 16px !important;
  margin-bottom: 20px !important;
}
.pim-sidebar-drawer-header h3 {
  font-size: 16px !important;
  font-weight: 800 !important;
  color: var(--pim-dark) !important;
  margin: 0 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.8px !important;
}
.pim-sidebar-drawer-close {
  background: transparent !important;
  border: none !important;
  color: var(--pim-muted) !important;
  font-size: 20px !important;
  cursor: pointer !important;
  padding: 4px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: color 0.15s ease !important;
}
.pim-sidebar-drawer-close:hover {
  color: var(--pim-crimson) !important;
}

@media (max-width: 991px) {
  /* Show mobile filter toggle button */
  .pim-mobile-filter-toggle {
    display: inline-flex !important;
  }

  /* Make sidebar drawer behavior */
  #sidebarDrawer.pim-portal-left-col {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 300px !important;
    height: 100vh !important;
    background: var(--pim-bg-main) !important;
    z-index: 10000 !important;
    padding: 24px !important;
    box-sizing: border-box !important;
    overflow-y: auto !important;
    transform: translateX(-100%) !important;
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
    box-shadow: 20px 0 40px rgba(0, 0, 0, 0.15) !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 20px !important;
  }
  
  /* Show drawer header on mobile */
  .pim-sidebar-drawer-header {
    display: flex !important;
  }

  /* When tools are open */
  .is-tools-open #sidebarDrawer.pim-portal-left-col {
    transform: translateX(0) !important;
  }
  .is-tools-open .pim-sidebar-drawer-bg {
    opacity: 1 !important;
    pointer-events: auto !important;
  }
  
  /* Stack portal grid on tablet/mobile */
  .pim-portal-layout {
    grid-template-columns: 1fr !important;
    gap: 30px !important;
  }
  .pim-portal-right-col {
    width: 100% !important;
  }
}
